《基于RNN句子编码器的聊天机器人》由会员分享,可在线阅读,更多相关《基于RNN句子编码器的聊天机器人(8页珍藏版)》请在金锄头文库上搜索。
1、基于RNN句子编码器的聊天机器人朱晶晶韩立新河海大学计算机与信息学院摘要:人机对话是自然语言处理领域衍生的一项现实应用场景,根据现实获取的大量 短文本知识数据,构建单轮短对话式智能应答聊天机器人。本文基于传统的信息 检索式聊天机器人,引入循环神经网络(RNN)深度表征交互式知识库中短文本 的语义向量,重构表达式语义空间。实验表明该编码向量的方法比传统的利用 TF-IDF向量的方法效果更好。关键词:聊天机器人;RNN句子编码器;TFTDF;作者简介:朱晶晶(1993-),男,安徽马鞍山人,河海大学计算机与信息学院 硕士研究生,研究方向:机器学习,自然语言处理;作者简介:韩立新(1967-),男,
2、江苏南京人,研究员,博士生导师,博士, 研究方向:信息检索,模式识别,数据挖掘。收稿日期:2017-05-22Chatterbots Based on RNN SentenceAuto-encoderZHU Jing-jing HAN Li-xinCollege of Computer and Information, HohaiUniversity;Abstract:Man-machine dialogue is a realistic application scenario which derived from the field of natural language processi
3、ng. Based on the large amount of short text knowledge obtained from reality, the man-made short dialogue intelligent response chatterbot is constructed. Based on the traditional information retrieval typed chatterbot, the Recurrent Neural Network (RNN) is introduced to characterize the semantic vect
4、or of short text in the interactive knowledge base and reconstructs the expression semantic space. Experiments show that the effect of the method of using the coding vector is improved compared with the traditional method of using TF-IDF vector.Keyword:chatterbot; R sentence auto-encoder; TFTDF;Rece
5、ived: 2017-05-220引言近些年人工智能的研究非常热门,聊天机器人作为人工智能的一个重要研究课 题,得到工业界和学术界的广泛关注1-2 目前很多大公司都有自己的聊天机 器人产品,如百度的小度、微软的小冰、苹果的Sir等。当下学术界对于聊天机 器人的研究主要产生了 2个模型:基于检索的模型(检索模型)和基于生成的模 型(生成模型)。检索模型比较简单,其效果主要依赖于知识库、检索技术和排 序特征的提取。生成模型依赖大量的训练数据,但其对自然语言的语义特征表示 能力是很强大的。Ji等也利用传统IT-IDF检索技术构建聊天机器人。Cho等也 使用R燃短语编码器表示短语语义向量。本文结合了检
6、索模型和生成模型的双重 优势,结构化统一端对端的句子语义向量训练方式,基于RNN的句子编码器构 建短对话式聊天机器人。相比传统的TF-IDF方法,利用该编码器对句子进行深 度语义编码能够更好地表示句子语义从而提升检索效果。在此基础上,基于此编 码器提取了新的特征用于回答排序训练。实验表明基于RNN句子编码器的聊天机 器人优于传统方法。1相关工作1. 1基于检索的聊天机器人模型基于检索的聊天机器人模型使用了一个预定义的知识库,制定一系列结构化策 略和模型规则:5-7o Ji等也利用微博上的大量短对话数据作为知识库设计了 一个基于检索的聊天机器人。主要采用传统的TF-IDF技术到知识库中检索候选
7、回答,然后对候选回答提取多个特征,训练针对性排序模型对候选回答进行排 序,把排在第一个的回答作为最终回答。Yan等1利用了非结构化的文档作为 知识库,采用了 BM25检索技术,提取不同的特征来训练排序模型。这类检索模 型的聊天机器人,无法重构回答结果,知识库检索依赖经验知识,并不会生成 新的文本。对于遇到过的问题,结果是比较好的,但是对于没有遇到过的问题, 则无法给出很好的结果,其给出的所有回答都是己经存在的,比较依赖于检索 技术和知识库。1. 2基于生成的聊天机器人模型基于生成的聊天机器人模型不需要一个预定义的知识库,它的回答都是新生成 的9T3,通常是基于机器翻译技术来做的。Ritter等
8、10使用了大量微博聊 天数据并利用统计机器翻译的技术,把问题(相当于翻译的源语言)翻译成答 案(相当于翻译的目标语言)o Vinyals等旦且采用了神经网络的机器翻译来做 聊天机器人。Shang等座1同样使用了大量微博聊天数据,采用了一个 Sequence-to-Sequence 框架的 RNN 网络,构造了一个 XRM (Neural Responding Machine)。Serban等回采用了一个分层网络来生成聊天机器人。这类模型的 聊天机器人,可以生成任意问题的回答,但是其回答往往语句不通,不够自然, 而且其模型的训练需要大量的问答对数据。2基于RNN句子编码器语义向量2.1 RNN句
9、子编码器结构Hinton等14设计了自动编码器(Auto-encoder) , Cho等也_提出一种新的对 RNN改进的网络GRU网络。基于上述工作,本文设计了一个RNN句子编码器 (Recurrent Neutral Network Sentence Auto-Encoder, RXSAE) o RXX-SAE 采用了 2个单隐层的GRU网络,本文选择GRU网络构造RNN句子编码器,是因为 在很多论文中都己证实RNN Encoder-decoder框架是很有用的。所谓Encoder 就是将输入的Sequence编码成一个固定长度的向量oDecoder是根据Vector (即 Encoder最
10、后输出的向量)生成一个Token序列,作为输出的Sequence,这里的 输出 Sequence 和输入 Sequence 是一样的。虽然 RXX 在这种 Sequence-toSequence 的任务中表现很好,但是当Sequence的长度过长时,则会出现梯度消失的问 题。为了解决这一问题,Sepp等15设计了一种增加RNN记忆功能的LSTM (Long Short-term Memory)网络。该网络虽然比较好地解决了基本RNN网络的梯度消 失问题,但是网络的参数增加了,网络变得复杂了。Cho等W改变了 LSTM网络 的结构,产生了一个变种的LSTM网络,即GRU网络,GRU网络保留了 L
11、STM网络 解决梯度消失问题的优点,但是其参数比LSTM网络少了很多。句子表示为X,编码向量表示为C, RNN-SAE可以表示成:这种基于Encoder-decoder的编码器网络框架在很多论文中都有使用,但他们 论文中用来训练此网络的数据都是标注好的数据。例如Ch。等也的翻译系统中 用来训练此网络的数据都是一种语言到另一种语言的映射对。Vinyals等11的 基于生成的聊天机器人中用来训练的数据是问题和答案的映射对,这种大量标注的数据不太容易获取。因此本文结合了自动编码器的思想,一致性输入输出, 这样用于训练的数据是很容易获得的。2.2 RNN-SAE语义向量对于训练好的RNN-SAE,只需
12、将句子X输入Encoder网络,即可获得X的语义向 量C。此向量是句子语义的深度性编码。Encoder网络的结构如下:对于一句话,在Encoder网络第t步中儿进入隐层单元,首先进入重置门口,其中。是sigmoid函数,W】是重置门的权重矩阵,h】,xj表示把上一 个隐层的输出向量和本层的输入向量联合在一起构成新的输入向量。重置门的计 算公式如下:接着进入更新门是更新门的权重矩阵,更新门的计算公式如下:最后隐层h.的输出的计算公式如下:h,的计算公式如下:其中,tanh是双曲正切函数,W为权重矩阵。在第T步得到的h即为句子的编 码语义向量Co3基于RNN-SAE的聊天机器人Ml基于RNN-SA
13、E检索的聊天机器人主要包括2个模型:回答检索模型和回答排G序 模型。3. 1基于语义向量的回答检索模型回答检索模型是为问题Q在知识库中检索出可能的回答。基于语义向量的回答检 索模型是从语义上匹配问题Q在知识库中可能的回答。知识库通过RNN-SAE进行 编码,构造一个语义空间,语义空间中的每个点表示一个句子的语义。问题Q 通过RNN-SAE进行编码后,成为该语义空间中的一个点。知识库D中的每一个问 题P都有一个语义向量,即语义空间中的一个点。在知识库D中检索与问题Q 语义最相似的问题P,就转化成在知识库D的语义空间中找到与问题Q语义点最 相似的那个语义点问题P,把问题P的所有回答作为问题Q的候选
14、回答集CoQ和表示Q, P通过RNN-SAE编码的语义向量,Q表示C。的转置。基于RNN-SAE 编码的语义向量的检索模型是对语义的检索,可以深度匹配问题Q和问题P的语 义相似性,提升了检索的效果。3.2基于语义向量的回答排序模型对回答检索模型检索出的结果候选回答集进行排序,选择排在第一位的回答作 为最终回答R。其中,饥(Q, (P, R)表示第i个用于排序的特征,Wj表示相应特征的权重。 基于语义向量提取了 Q和R的语义相似性作为回答排序模型的特征,把Q, R分 别经过RNN-SAE进行编码得到语义向量Q和G,计算Q和R的语义相似性:虽然并没有确切的理论证明问题和回答的语义相似性对回答适合问
15、题有直接的 影响,但是可以认为如果问题和回答的语义相似,那么回答适合这个问题的可 能性比较大,这是符合常理的,所以提取了 Q-R语义相似性这一特征。本文使用 学习排序方法来训练一个排序模型也,使用已经标注好的(Q, R)对提取上述 语义相似性的特征来作为训练数据。在这些标注的数据集(Q, (P, R) , (P, R) 中,满足条件:其中,(P, R)是R适合P的正例,(P, R)是负例。3.3相关工作比较本文把RXN-SAE方法加入基于检索模型的聊天机器人,相对于传统的基于检索 模型TF-IDF方法3, 8的聊天机器人,RNN-SAE方法可以深度性生成编码句子的 语义向量,从而可以深层匹配到
16、问题Q和问题P的语义相似性,这一点是TF-IDF方法无法做到的。由于是语义的深度性表示,因此也解决了 TF-IDF方法 中存在的实体不一致和逻辑不一致的问题。相对于基于生成模型的聊天机器人 9-13,本文的方法拥有基于检索模型的优点,回答更加的流畅自然。4实验4.1实验描述实验工具使用的是Tensor Flow和清华大学的分词工具,训练RNN句子编码器, 用于训练的数据集总共有656120句话,共有277742个词,笔者选取了词频排在 前49999位的词,这49999个词可以覆盖整个数据集的96. 7%的词,剩下的没有 覆盖的词用” UNK”来表示,用这50000个词构成一个50000维的one-hot词向 量,每个句子被编码成1000维的向量,即隐层采用1000个神经元,使用SGD 来训练基于R