第 1 章 引言
1.1 研究背景及意义
现今由于人工智能研究领域的大热,应答机器人作为人工智能领域里面的热门方向,国内外许多大型互联网企业不惜砸重金也要投入到研发应答机器人技术的竞赛中[3]。现如今市场上已经出现了大量不同类型的应答机器人,主要有家居控制机器人、客服机器人、教育机器人以及各种服务类型的机器人[4]等等。
PARRY 是第一个使用 Eliza[4]系统进行图灵测试(Turing Test)评估的,其被设计的初衷是使用大量偏执狂患者对话模板,以此来模仿该类病人。实验中将 PARRTY 的应答对话记录与真正的偏执狂患者的应答对话记录同时提供给医生进行查看。最后医生只有 48%的概率可以成功鉴别哪个是机器人哪个是真实的患者。
Loebner 作为第一个正式实现的图灵测试[6]。Loebner 比赛是一年举办一次的应答机器人竞赛,竞赛的模式规则是对参赛的所有机器人进行图灵测试,如果通过了测试则可以称之为智能。直到 1966 年,随着一种名叫 ELIZA 的机器人问世,这激发了很多研发人员对机器人的兴趣,研发人员们致力于研发一个能够通过图灵测试的智能机器人。研发人员们通过各种不同的方法进行机器人语料库的开发。就应答语料库应用技术而言,常见的构建技术有基于人工模板、基于检索、基于机器翻译、基于深度学习的技术。
基于人工模板的技术[7]依靠人工设定对话场景,针对每个场景编写一些特定的对话模板,模板用于编写用户可能会问到的问题以及与之一一对应的答案。这种方法技术路线的优点是精准,缺点是需要大量人工相对应的编写模板,而且可扩展性差,需要对每一个场景进行扩展。由于基于人工模板的技术精准性要远远高于其他方法,目前市场上大部分的应答产品都使用到了基于人工模板的技术来构建自己的应答语料库。
基于检索技术的应答语料库技术[8]和日常中使用的搜索引擎相似。整个过程可以概括为当输入一个问题时,检索出的答案可能不止一个,需要找出最适合回复的内容。这种技术优点是便捷,但是缺点非常明显,需要完全依赖自然语言处理技术来达到应答的效果。
.............................
1.2 国内外研究现状
目前对于应答机器人的研究是人工智能的热门方向,国内外许多大型互联网企业不惜砸重金也要投入到研发应答机器人技术的竞赛中,其中应答机器人的关键内容在于应答语料库的构建。
在基于人工模板的情景式应答语料库方面,世界上第一款应答对话系统早在 1966 年已经由斯洛文尼亚卢布尔雅那的 Jozef Stefan[12]实验室研究完成并命名为 Eliza(基于人工模板的构建方法)。主要实现模式是通过模式匹配以问题的形式响应用户的语句,主要应用于临床治疗,但是这种效果并没有多好,不过在人们还没听对话系统这一名词时,它已经给人们的视觉带来了很大的冲击。第一款基于 AIML(人工智能标记语言)的问答系统 ALICE 由 Wallace 博士[13]开发,该系统中的类库非常丰富,受到很多开发人员的青睐。De Pietro,Orlando,Frontera 等人[14]使用 AIML 构建的 Tutor Bot 情景式应答库可以让学习者直接与虚拟导师和真实的虚拟世界互动来扩展他们的学习体验。Mahapatra,R.P.,Sharma 等人[15]提出了一种基于 AIML 的 ChatterBots 应答机器人实现人工支持实体(ASE)的解决方案。Wei Yun Gang,Sun Bo,Sun Ming Chen 等人[16]针对基于 AIML 的中文智能应答机器人缺乏完善的语料库问题,提出了将类似问题合并在一起,以解决语料库的不足,为同义句的处理提供一种手段的解决方案。张文[17]实现了基于ALICE的语音对话机器人并在编写相应AIML语料库的基础上实现了一定智能化水平的人机语音对话功能。
..........................
第 2 章 相关技术介绍
2.1 中文自然语言处理
中文自然语言处理[23]作为一种人工智能方法,可用于解决人类自然语言和计算机机器之间无法交互的问题,让两者建立某种联系即中文自然语言处理技术帮助计算机机器通过各种形式使用人类语言进行交流,包括进行分析、改变、理解或生成自然语言。中文自然语言处理技术覆盖的领域有中文自动分词[24]、文本分类、信息抽取、词性标注、句法分析、机器翻译、自动摘要、知识图谱、问答系统和自动应答机器人等。
本文在设计基于深度学习的生成式应答语料库库构建时使用中文分词技术对网络爬取的数据进行分词,之后使用 Word Embedding 技术用于将语言中的词进行数字化,即把词转化为向量,通过降低词向量的维度避免维度灾难,解决向量稀疏的问题以及降低计算复杂度和训练的难度。Word Embedding 将自然语言中的单词转化为计算机可以理解的语言,即将词表示成向量。
...........................
2.2 深度学习模型
深度学习模型是一种通过自动学习特征的方法[25],可以用于降低信息的维度、剔除冗余的信息、抽取到丰富的特征向量进而优化特征向量。
2.2.1 深度学习模型和训练方法
深度学习的常用模型主要有七种分别是受限玻尔兹曼机、稀疏编码、深度信念网络、自动编码器、卷积神经网络、循环神经网络[26]。在深度学习网络中,训练方法有监督学习、无监督学习、半监督学习以及强化学习。
监督学习可以看作分类[27],通过已有的训练样本去训练最优模型然后通过这个模型将所有的输入映射为输出从而达到分类的目的。
无监督学习使用的是没有任何标签标识的数据进行直接建模。例如在对书本分类时,就算没有提前看过这些书本,但是在看过这些书之后一样可以对这些陌生的书本进行准确的分类。无监督学习中最经典的算法是聚类算法。无监督深度学习的框架如图 3.1 所示:
受限玻尔兹曼机 RBM[28]是一种特殊的玻尔兹曼机,其特殊点在于拥有两层结构,一层是可视层,一层是隐藏层,层内无连接,它所有的连接都集中于可见节点与隐含节点之间。RBM 中的每一层的节点都是随机的布尔型二元变量节点。
稀疏编码(Sparse Coding)[29]是一种基于自动编码器结构的无监督学习方法,其本质是将一个信号表示成一组基的线性组合。它的目的是找到一组最优的基向量来表示样本数据。这里的最优基向量可以更加有效的找出隐含在输入数据内部的结构和模式。
...........................
第 3 章 基于深度学习的智能应答语料库模型 ................................. 15
3.1.1 传统的 RNN Encoder-Decoder 模型 ............................... 15
3.1.2Attention 机制的 Encoder-Decoder 模型 ..................................... 15
第 4 章 智能应答语料库构建方法 .......................................... 20
4.1 智能应答语料采集 .............................................. 20
4.1.1Scrapy 爬虫项目的搭建 ........................................ 20
4.1.2 网络爬虫实现数据的抓取 ................................... 20
第 5 章 验证 ......................................... 38
5.1 实验环境构建 ......................................... 38
5.2 生成式智能应答语料库构建方法对比 .............................. 39
5.3 情景式智能应答语料库实验结果分析 .............................. 40
第 5 章 验证
5.1 实验环境构建
生成式智能应答语料库构建方法实验验证环境 为了实验验证本文所述的生成式智能应答语料库构建方法,使用 PyCharm作为开发工具构建了验证环境。整个环境的搭建是建立在 Windows 10 家庭中文版的操作系统、Anaconda 开源包、Python 3.5 基础之上的。本文由于采用的是 windows 系统,所以不能直接通过 PyCharm 安装 Tensorflow,采用的是先安装 Anaconda 之后在其配置文件中添加清华镜像库的方式下载 Tensorflow。最后使用 python 语言开发出本文的生成式智能应答语料库。
情景式智能应答语料库构建方法实验验证环境
为了实验验证本文所述的情景式智能应答语料库构建方法,构建了 PC 网页版智能应答机器人作为验证环境。它是采用 PHP 进行开发的一款网页版智能应答机器人,用户通过在输入框中输入对话,点击发送按钮将对话传入知识库中,情景式智能应答语料库会根据输入内容,返回给网页回复的信息。同时为了避免应答信息过多造成页面拥挤,设计了清除按钮,及时清理过多的对话。
混合式智能应答语料库构建方法实验验证环境
为了实验验证本文所述的混合式智能应答语料库构建方法,构建了智能语音课程答疑手机 APP 作为验证环境。这是一款集合语音与文字一体化的智能应答 APP。它不但拥有基于深度学习生成式应答语料库中对上文的分析理解、记忆能力同时还拥有基于 AIML 情景式应答语料库对话内容的丰富性。既能很好的完成正常的应答又不显得对话太过于呆板,同时具备对上下文拥有一定的理解、记忆能力。
...........................
第 6 章 总结与展望
6.1 总结
本文主要研究了基于 AIML 的情景式应答语料库构建方法和基于深度学习的生成式应答语料库构建方法,并将两者都写成 API 接口的方式,结合安卓开发技术,最终以一款智能语音课程答疑 APP 的方式呈现了出来。它具备了软件工程领域答疑解惑的能力同时具备日常应答中对上下文内容的理解记忆能力。本文充分利用了深度学习里面的框架模型来训练生成式应答模型并生成对话,同时针对 AIML 的情景式应答语料库无法友好的支持中文。通过重构 AIML 解释器让 AIML 的情景式应答语料库可以更好的支持中文。
本文的主要工作如下:
⑴ 基于深度学习的生成式应答语料库构建之前需要使用网络爬虫爬取百度知道和知乎里面的对话数据作为训练的语料资源。通过研究 Python 的 Scrapy框架,完成 Scrapy 网络爬虫项目的搭建,之后使用 Scrapy 网络爬虫为应答语料库的构建抓取用于训练的对话语料数据。
⑵ 学习了中文的分词技术中的 jieba 分词技术。理解与研究了词嵌入文本方法(word embedding)中的 word2vec 模型工具,采用分布式的 Distributed Representation 方法将对话语料库生成词向量。
⑶ 学习了深度学习中的几种常见神经网络,掌握了这几种神经网络的优点和缺陷,并提出了基于深度学习的生成式应答语料库的带 Attention 机制的双向LSTM 编码模型。
⑷ 研究了基于 AIML 的情景式应答语料库无法友好的支持中文问题。通过重构 AIML 解释器让 AIML 的情景式应答语料库可以更好的支持中文。
⑸ 构建了数据存储服务,在该平台中,后台数据库保存所有应答信息。在实现存储的前提下,方便用户查询应答记录。
⑹ 将本文构建的基于深度学习的生成式应答语料库以及 AIML 的情景式应答语料库写成了接口的方式供智能语音课程答疑 APP 调用。
⑺ 构建了智能应答语料库平台,智能应答语料库平台包括客户端和服务器端,客户端(智能语音课程答疑 APP)的主要功能是完成专业答疑解惑,学习专业知识。服务器端的主要功能是实现客户端数据交互任务。智能应答语料库平台使用主流 Apache 服务器,通过 NetBeans IDE 开发环境,基于 MVC 框架搭建后台服务平台,基于在校师生的需求进行开发设计,实现用户通过移动设备在线完成课程答疑。
参考文献(略)