您好, 访客   登录/注册

基于深度学习的智能聊天机器人的研究与实现

来源:用户上传      作者:

  摘要:伴随着深度学习不断深入的研究,该技术已经被应用到词向量表示、机器翻译、自然语言理解、情感分析和中文分词领域。目前,许多研究人员已经对聊天机器人的主要技术进行了深入的研究,机器学习中的深度学习技术也被逐渐的应用到研究中。本文阐述了聊天机器人存在的主要问题,针对存在的问题分别阐述了本文提出的LSTM-LDA神经网络主题模型以及Attention+Bi-LSTM的seq2seq模型,描述聊天机器人的模型,最后对本文提出的BT-DLL Model(基于Sequence to Se-quence框架)进行了实验设计。
  关键词:深度学习;神经网络主题模型;聊天机器人;LDA;长短期期记忆网络
  0引言
  目前,可在商场或者电商网站见到很多种类的聊天机器人。从功能的角度,聊天机器人可以分为任务型聊天机器人、问答型聊天机器人与闲聊型聊天机器人。从模式角度,聊天机器人可以分为检索模式的机器人和生成模式的机器人。从领域分类角度,聊天机器人可以分为开放领域的机器人与封闭领域的机器人。封闭领域的chatbot是有着准确的聊天对象以及目的,并且尝试实现一个明确的聊天目标,所以其输入与输出的空间是有数量限制的,并且比较容易实现。开放领域的chatbot是没有明确的意图与目标(聊天的范围与界限),其主要适用于聊天以及娱乐。检索模式聊天chatbot,依靠预定义响应的对话资源库与设定的启发式推理方法,利用上下文信息以及输入信息做出适合的响应。生成模式聊天chatbot,当用户输入一些语句,该机器人则利用一些技术形成自动回复。深度学习(DL,DeepLearning)或阶层学习(hierarchical learning)是机器学习的重要技术。它可以辅助聊天机器人拥有自动生成式与开放的特征。所以,诸多知名学者针对人工智能展开研究的过程之中,均将聊天chatbot作为一项重点内容。
  检索模式聊天chatbot拥有丰富的对话资源库,通过不断地匹配用户的聊天内容,可以完成一定的聊天。在实际聊天中,各种语句都会存在,而语句的逻辑性、词语的词性等均存在一定的不确定性,有的问句中的同词的不同含义等现象。为了将对话进行下去,机器人必须要具备较强的语义消歧能力,并且还要对回答过的问题进行记忆,不然机器人就不能解析输入的聊天内容。为了提高聊天对话的趣味性,应当将人类情感“赋予”机器人,使其具备一定的“情商”,并且可以获取知识与理解信息。随着我國大数据行业的快速发展,应用聊天的内容或者数据进行训练聊天chatbot。已经成为人工智能领域研究的重点。本文重点研究与实现的是一个拥有生成式与开放领域特性的聊天chatbot。
  1 LSTM-LDA神经网络主题模型
  对于传统的LDA主体模型而言,其在具体应用过程中存在诸多问题,首先是可扩展性不高,其次是主题语义不连贯,再次是推断上下文一致性不足,最后则是在特征表述方面,存在能力较弱的基本问题。随着社会的不断发展,深度学习技术得到了极大的改进与优化,而其应用范围也扩展至自然语言领域,表现出了十分优异的性能。同时,在主体模型方面,也取得了重大突破,为构建合理、完善并且语义连贯的模型提供了重要基础,确保了其可行性。本文在研究分析的过程中,运用合理化的方式把LDA、深度长期记忆神经网络进行高效融合,搭建了一种完备、科学的神经网络主体模型,即LSTM-LDA。
  对此种神经网络主体模型进行设计的基本思路为:依靠LSTM(长短期记忆网络)的隐藏层,对主题一词汇和文档一主题层进行了编码:把所得到的一系列信息数据进行整合,做为神经网络输入层的输入部分。而在输入层之中,神经网络输出功能的实现主要是借助softmax函数实现。本模型不仅是一个神经网络,还获得了一定的主题功能。该模型的整体架构如图1所示:
  图1中左边的部分(文档-主题)是依靠神经网络获得文档的语义编码,简单来说,就是获取文档级别的语句含义信息。文档一主题的神经网络的处理过程如下:
  (1)在词汇的嵌入表示层中,借助Skip-gram模型,经过深度分析,求出词嵌入表示V={V1,V2,V3…Vm}(其中m表示维度),然后对其进行重新定义,即作为LSTM神经网络的输入,将文档表示成一个序列矩阵。
  (2)结合实际情况,通过恰当的方式对LSTM层文档中的序列矩阵进行重新编码,使其成为一个语义向量。
  (3)文档语义编码层主要是将LSTM层定义为输出语义向量,然后将其建设成一个语义矩阵。
  (4)连接文档-主题层主要作用是使主题、文档之间能够进行映射,进而快速、准确的获取文档语义词向量的信息表示。
  图1的右边部分是LSTM-LDA的主题-词汇网络部分。输入的是文档的词汇列表,将获得的词汇中的词进行嵌入表示,接着连接上述的主题一词汇层,并最终获得词汇处在文档之中时的主题分布向量。
  最后,结合实际需求,通过恰当的方式把左部分的词向量、右部分的词向量进行相乘处理,得到相应的输出值。
  2 Attention+Bi-LSTM的seq2seq模型
  对话活动中的上下文信息对于对话有着非常重要的意义,特别是针对长期对话。若将过去上下文信息的访问形式直接套用于未来上下文的访问,将有益于生成多轮会话。从本质意义上讲,本文在研究分析过程中所提出的Attention+Bi-LSTM的seq2seq模型实质上是以文献所提出的Attention+LSTM的Encoder-Decoder模型为重要基础,通过优化改进之后所得。在文献中所提出的单向LSTM模型,所有数据均是根据顺序进行输入、输出,但是该模型在具体应用过程中也存在十分明显的缺点,即未对下文信息进行高效运用,进而导致部分语义信息失效。因此,本文主要运用双向的LSTM模型,可以对上下文信息进行综合性运用,此种模型的基本思想主要是使向后序列、向前序列均包含两个LSTM,并且均同输出层进行高效联通。此种模型的基本特点是把数据中所包含的一系列信息定义为输入,并通过特定渠道快速传输于解码层。Bi-LSTM模型的基本架构,如图2所示。   Bi-LSTM的整体过程分为三个阶段:
  (1)通过特定途径向前快速传输所获取到的输入序列的上文信息。
  (2)通過特定途径向后快速传输所获取到的输入序列的下文信息。
  (3)前向、后向分别传输正序语义编码A、逆序语义编码B,将A与B合并得到最后的语义编码。
  而最终所得到的语义编码不但具有上文信息,而且也包含下文信息。Attention+Bi-LSTM的seq2seq的结构如图3所示。
  通过对图3深入观察与分析可知。此种模型主要可以细化为三部分:Encoder编码、词嵌入、及Decoder的解码部分。Encoder编码阶段应用的是Bi-LSTM。该种模型充分考虑到了上下文信息,并且使输出语句更加准确,提供了丰富的语义信息。
  3聊天机器人模型
  本文提出的BT-DLL Model是依靠语言模型(基于深度学习)与主题模型实现的。由于深度语言模型在Encoder编码阶段产生了语义词向量,则主题模型将会快速得到主题语义信息。BT-DLL Model如图4所示。由图4中可以看出,BT-DLL Model分为两部分:其一是主题模型、LSTM神经网络进行融合处理之后而形成的主题模型:其二是Attention机制、Bi-LSTM模型进行融合处理之后而形成的深度学习语言模型seq2seq。这两种模型联系紧密。语义向量、主题模型之间的输出开展相似度分析与运算,其结果就是当前主题信息,将上述两个不同部分进行高效融合之后便构成了聊天机器人模型。
  4 实验设计
  4.1 实验环境
  本文的实验需求均是通过Google的Tensorflow所实现完成,其实质上属于一个灵活度较高、便捷高效的学习系统,可以运用到不同服务上。实验环境参数见表1.
  4.2 实验数据
  为了完成本实验。必须要以海量的聊天语料作为支撑。本文主要借助Scrapy网络爬虫实现信息数据的抓取,从而获取大量字幕文件,经过整理,获得1GB的数据语料库。
  4.3 实验具体设计
  为了达到BT-DLL Model生成对话的具体要求,本文在进行分析的过程中需要完成以下任务:
  (1)每个语句中的单词是word2vec的输入。在字幕语料库之中,所包含的句子均十分完整,因此需要先对句子进行切词,对切割完成的文件进行处理。使其转变成为“|”隔开的问答对。
  (2)将问答对中的“|”前语句部分作为输入集,将“|”后部分作预测输出集。
  (3)取预测输出集。一般选取首条数据作为输入,得到输入语句的主题词t1,根据实际情况与需求,设定上文、下文的主题词t2,利用COS距离计算相似度,假如相似度在指定的阈值内,那么则代表此聊天为完全相同的主题,并把与之相关的主题信息快速复制于当前结构之中。每当用户输入语句,便会借助主题模型获取与之相对应的输入主题信息,然后将其同主题信息进行高效融合,并对相似度进行分析与运算,如果相似度值在指定的范围内,就认定与当前聊天的主题有关。因输入内容之中,引入了聊天信息,因此可通过恰当的方式对目前主题信息进行叠加处理,反之,便可以对目前主题信息进行快速替换,并作为最后的主题信息。该主题信息与编码阶段所共同形成的语义向量均属于Decoder的输入语句,其可以实现预测输出语句。
  (4)word2vec训练词向量。借助切词工具,通过科学的方式对语料库之中所包含的语句进行分词操作处理,获得词向量,并将其定义为Encoder的输入,最后创建模型。
  (5)构建模型。其主要是Attention+Bi-LSTM的seq2seq模型与LSTM-LDA神经网络主题模型的创建。
  4.4 实验结果
  将本文提出的BT-DLL Model聊天模型与基于RNN的Encoder-Decoder聊天模型的对话效果进行对比,结果如图5所示。
  图5的左边是基于RNN的Encoder-Decoder聊天模型的对话效果,右边是基于BT-DLL Model的对话效果。通过图5可以明显看出,本文提出BT-DLL Model可以利用聊天内容的上下文进行会话,但是传统的聊天模型不依靠上下文聊天进行会话,有时候还会出现脱离会话的主题。
  5 结束语
  通过对智能聊天机器人的研究与实现,发现做出一个智能聊天机器人关系到了多个方面的知识,并且制作过程对聊天的语料与技术支持有着很高的要求。因此,想要研究出一个真正随意交流的聊天机器人还需克服很多的技术难题,例如如何获取大量的标准化的训练语料。现在使用到聊天机器人上的深度学习技术研究正处于初期。还有很大的发展空间,希望本文的研究与实现对人工智能行业有一定的推动价值。
转载注明来源:https://www.xzbu.com/8/view-15125468.htm