文主要参考2019年3月出版的《自然语言处理实践-聊天机器人技术原理与应用》一书,结合个人理解对原理进行阐述,若有不当之处,请联系本文作者。另在此感谢此书作者王昊奋、邵浩、李方圆、张凯、宋亚楠(排名不SEO靠我分先后)。
目录
一、聊天机器人分类
1.1基于应用场景分类
1.2基于实现方式分类
1.3基于功能分类
二、对话机器人技术原理
2.1 AI对话机器人实现流程
2.2 语音识别&语音合成
2.3 自然语言理解(NLSEO靠我P)
2.4 自然语言生成
2.5 对话管理
以下这段描述出自CSDN人工智能专栏:
对话系统(对话机器人)本质上是通过机器学习和人工智能等技术让机器理解人的语言。它包含了诸多学科方法的融合SEO靠我使用,是人工智能领域的一个技术集中演练营。
在这段话中,以最简要的词语总结了市面上大部分AI聊天机器人的主要功能,那就是“让机器理解人的语言”,此后机器人会根据自身功能定位,以不同的行为模式对人类做出回SEO靠我复,例如生活中常见的个人助理型对话机器人(如:siri,小度等),就能够在任何语境下对用户的提问做出相对合理的反应,而一些任务问答型的对话机器人则只能对固定的提问模式和领域中解答用户提问(如:淘宝客服SEO靠我机器人等),根据机器人服务场景以及实现技术的不同,我们首先对此类AI对话机器人进行大致的分类。
前三者为当下聊天机器人的主要的3个方向,问答系统主要应用的是语言理解、匹配与检索技术;任务型对话系统主要技术是意图识别、对话管理;闲聊主SEO靠我要是自然语言检索与生成,最后一种在这里不做论述。
语音识别:语音转换成文本
自然语言理解:将自然语言转换成计算机能理解的表征
对话管理:根据当前对话管理SEO靠我状态判断系统应采取的策略
自然语言生成:将系统策略转换为自然语言回复给用户
语音合成:将文本转换为语音在以对话而非文本作为交流方式的对话机器人中,需要使用的语音技术主要分两块:一SEO靠我块是语音转文字,即语音识别;另一块是文字转语音,即语音合成。
语音识别技术(ASR):将人说话的语音信号转换为可被计算机识别的文字信息,从而识别说话人的语音指令以及文字内容的技术。
其大致过程由上图所示,SEO靠我在用户通过语音激活(按键确认后发声)/语音唤醒(特定声波捕获)向搭载了对话机器人的设备进行语音输入后,由系统对声音波段进行处理以提取语音特征,之后由训练完成的一套体系(譬如一个训练完成的神经网络)判断SEO靠我不同特征最有可能对应哪一个字的发音,将得到的单字进行排列后,输出一句完整的文本作为对话机器人之后阶段的输入。
当然在这个过程中可能还包括将词组或常见短句作为依据对文本进行修正的情况,在这里不详细描述。
语SEO靠我音合成技术(TTS):将文字信息转变为语音数据,以语音的方式播放出来的技术。
理解为ASR的反向操作就可以。
对话机器人的自然语言理解一般包含以下几个方面:
NPL解释实体识别SEO靠我识别文本中出现的专有名词,如国家,地名等意图识别分辨文本中包含的显式意图与隐式意图,如询问外貌评价时渴望得到赞美回应的行为情感识别分辨用户的显式情感与隐式情感,如反话、气话等场合指代消解明确用户使用的SEO靠我代词的指代对象省略恢复恢复被用户省略掉的句子成分回复确认当用户意图模糊时,将由对话机器人主动询问,确认用户意图拒绝判断主动拒绝识别及恢复超出范围的或者设计敏感话题的用户输入,尽可能终止当前话题为了完成SEO靠我上述表格所示的用于自然语言理解种种功能,词法分析、句法分析及语义分析这三种基础的技术常常在NPL过程中被使用。其中语法分析主要用于将汉语分词并进行词性标注;句法分析在此基础上解析短语的结构及深层文法;SEO靠我语义分析则是在获得了这些自然语言的表征后将它转化为机器能够理解的向量表示形式。
2.3.1基于知识图谱的自然语言理解
知识图谱可以被看成是结构化的语义知识库,其中包含实体-关系-实体这样的三元组以及实体-SEO靠我属性这样的对,其目的旨在以符号的形式描述真实世界中存在的各种实体或概念及其互相关系。
构建:
从传统数据库的结构化数据中映射到知识图谱;
从HRML等半结构数据中利用AI与规则抽取模式信息到知识图谱中;
在非SEO靠我结构化的文本与图像中利用文本挖掘技术进行信息抽取,利用图像技术进行图像处理。融合:
将多个数据源抽取的指数进行融合
价值:
个性化的知识图谱可以支撑对话机器人应对用户的多样化需求,能够将问答、对话、闲聊等多SEO靠我个功能集中在同一个对话机器人身上,使得其应用场景的限制逐渐减少
自然语言生成系统的两大主要架构:
1. 流线型pipline自然语言生成系统
系统由几个不同的模块组成,模块之前相互独立,SEO靠我一般包括文本规划(决定说什么),句子规划(决定怎么说),句子实现(让句子更连贯)
2. 一体型integrated自然语言生成系统
模块之间相互左右,后续模块可以参与前面模块的决策。更符合人脑思维,但实现SEO靠我较为困难。因此较常用的未流线型自然语言生成系统
自然语言生成系统的目前的两大主要技术:检索、生成
2.4.1 检索技术
需前期准备大量的qa对语料库,通过排序与深度匹配技术,在已有语料库中找到适合当前输入的SEO靠我最佳回复。
缺点:
(1)强烈依赖对话库 (2)回复不够灵活 (3)缺乏多样性
优点:
(1)实现相对简单 (2)容易部署2.4.2 生成技术
基于深度学习,通过编码-解码的过程,逐字或逐词地生成回复。
通过对抗SEO靠我圣城网络GAN生成自然语言。
缺点:
(1)实现困难 (2)训练数据难以整理
优点:
(1)回复灵活 (2)答案具有多样性对话管理的主要任务:维护更新对话状态,动作选择。
对话状态是指当前用户与SEO靠我机器对话数据的表征;
动作选择是指基于当前的对话状态,选择接下来合适的动作为了实现对话管理的功能,常用的有四种实现技术:
对话行为识别:相当于是意图识别,封闭式的行为识别是讲用户意图映射到预先设定好的意图SEO靠我类别中,如在任务型对话中有订机票、点外卖、搜美食等。开放式行为识别是没有预先设定的行为类别的,一般用于闲聊系统。
对话状态识别:对法状态识别需要考虑进对话的上下文与对话行为的相关信息,在某时刻的对话行为SEO靠我序列即为某时刻的对话状态。
对话策略学习:通过离线的方式,预先让机器进行对话策略学习,从人-人的真实对话中学习对话行为、状态等,然后再人-机对话过程中进行策略选择。
对话奖励:评价对话系统的评价机制,比如SEO靠我槽位填充效率、回复的流行度,以及日渐火爆的强化学习中的长期奖励机制。
2.5 1 对话管理的4种方法
1.基于有限状态自动机 finit state machine, FSM
人工显式地定义出对话系统可能出SEO靠我现的所有状态,对话状态会根据当前输入在预定的状态间进行跳转,从而根据新的状态去选择合适的动作。
优点:简单易用。
缺点:人工设计状态,与状态对应的动作,难以应用于复杂场景。
2.基于统计的对话管理
将对话过程SEO靠我表示成一个部分可见的马尔科夫决策过程。设定系统在每个特定的状态下执行某一特定动作都会获得对应的回报,因此选择动作时会选择期望回报最大的那个动作。
优点:(1)只需定义马尔科夫决策过程中的状态与动作,机器SEO靠我可以通过学习得到不同状态下的转移冠关系;(2)可以使用强化学习的方法学习出最有的动作选择策略
缺点:仍然需要人工定义对话系统的状态,在不同的领域中通用性不强。
3.基于神经网络对话管理方法
将自然语言理解的SEO靠我输出以及其他各类特征作为神经网络的输入,将选择的动作作为神经网络的输出。对话状态由神经网络的隐状态表示。
优点:不需要人工定义对话状态
缺点:需要大量的训练数据
4.基于框架的对话管理
框架即槽值对,明确规定SEO靠我特征槽状态下的用户动作对应的系统动作。
优点:用于特定领域的对话系统
缺点:难以衍生到其他领域
由上述介绍我们最终可以认为一个基础的AI对话机器人的实现原理大致为:
通过语音识别技术获取用户输入后SEO靠我,使用自然语言理解技术将得到的输入文本转换为计算机能够理解的向量形式,之后借由一个训练完好的对话管理系统(如一个基于深度学习的神经网络)判断用户意图并根据学习到的人类行为模式做出策略选择,之后通过自然SEO靠我语言生成技术规划出符合人类思维的回答并通过语音合成技术转化为语音播放,从而与用户进行互动。
网站备案号:浙ICP备17034767号-2