CN114328866A - 应答流畅准确的强拟人化智能对话机器人 - Google Patents
应答流畅准确的强拟人化智能对话机器人 Download PDFInfo
- Publication number
- CN114328866A CN114328866A CN202111595891.6A CN202111595891A CN114328866A CN 114328866 A CN114328866 A CN 114328866A CN 202111595891 A CN202111595891 A CN 202111595891A CN 114328866 A CN114328866 A CN 114328866A
- Authority
- CN
- China
- Prior art keywords
- output
- network
- vector
- model
- anthropomorphic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Machine Translation (AREA)
Abstract
本申请基于深度学习的智能对话机器人优势十分明显,不用刻意制作对话模板,只需要海量的聊天数据即可,训练时无需人工干预,问题的覆盖面很广,智能对话机器人中的对话交流网络基于改进后的PerAttent交流模型再次改进,让上文关联的信息PerAttent的计算基于拟人解码上一时刻的输出,而不是原来的本时刻的输出,然后再加上自适应变分编码器,用于产生平滑的输出语句,克服了固定词语搭配循环输出,或是丢失新主语的两个问题,机器人不仅可以回答用户的某一个问题,还可以人性化的与用户交流,了解用户的需求,就像用户的好朋友一样,本申请对话机器人最大的优势在于回答是有趣、生动、富于多样性而不是沉闷无聊的,具有非常好的应用前景。
Description
技术领域
本申请涉及一种应答流畅准确的智能对话机器人,特别涉及一种应答流畅准确的强拟人化智能对话机器人,属于智能对话机器人技术领域。
背景技术
当前在在很多场合,对话机器人都有其重要的应用。比如在某个具体的场景,学校图书馆的智能对话机器人,教师和学生可以在和其对话的过程中,轻松掌握当前的图书借阅信息和图书馆的开馆闭馆时间。在网站客服系统中,人工服务是十分繁杂的一项任务,很多时候在非工作时间也有很多客户的询问,为了解决这个问题,智能对话机器人可以发挥很大的作用,在某些重复率较高的问题上,对话机器人可以很好的胜任这种重复性的劳动。另外,在游戏娱乐领域,对话机器人还可以成为人们的朋友,用户可以定制自己喜欢的聊天机器人。
经过长期的发展,工业界对于如何把信息检索等相关技术应用到信息服务中的探索也取得了很多成功经验。近似于搜索引擎会根据用户查询返回一个链接列表,每个链接都带有一小段摘要信息。用户逐个浏览搜索引擎返回的这个链接列表中的每个文档,以寻找自己期望的信息,这会消耗用户很多时间来判别哪些文档是包含自己想要的信息,哪些不是。很多时候用户需要的是答案而不是文档,很多时候用户会对搜索引擎返回的大量信息感到迷茫。
对话机器人可以应对上述信息过载问题的,智能对话机器人分为两类:开发领域的对话机器人和特定领域的对话机器人,如果一个对话机器人可以处理的问题是多种多样,涉及到生活方方面面的,依赖于宇宙中各种本体和信息,那这种问答系统叫做开放领域问答系统;在另一面,特定领域的问答系统仅仅处理特定领域中的问题,例如与体育相关的问题或与天气预报相关的问题等。对话机器人提交用自然语言表达的问题,系统会返回紧凑又准确的答案,而不像搜索引擎那样仅返回一个网页集合。问答系统的目标是为问题找到精确的答案,而不是像信息检索系统那样返回全文文档或最匹配的文章。
对话机器人不仅可以回答用户的某一个问题,还可以人性化的与用户交流,了解用户的需求,就像用户的好朋友一样,对话机器人的回答应该是有趣、生动、富于多样性而不是沉闷无聊的。在线上交易平台中,智能对话机器人发挥了不小的作用,问答系统不仅减少了人力资源的消耗,也在对客户服务的效率上大大提高了,服务质量也有显著提升,京东的自助客服查询系统、航空系统订票领域,阿里巴巴聊天机器人等,智能对话机器人今后具有非常好的应用前景。
当前,机器学习得到了很大发展,自然语言处理中也有相关技术的发展,新型的智能对话机器人采用的技术层出不穷,主要有以下几类:一是基于人工模板技术,通过人工设定对话场景,并对每个场景写一些针对性的对话模板,模板描述用户可能的问题及对应的答案模板,这个技术路线的好处是精准,缺点是需要大量人工工作,而且可扩展性差,需要一个场景一个场景去扩展;二是基于检索的技术,走的是近似搜索引擎的路线,事先存储好对话库并建立索引,根据用户问句,在对话库中进行模糊匹配找到最合适的应答内容;三是基于机器翻译的技术,把聊天过程比拟成机器翻译过程,将用户输入聊天信息Message,然后聊天机器人应答Response的过程看做是把Message翻译成Response的过程,基于这种假设,将统计机器翻译领域里相对成熟的技术直接应用到对话机器人开发领域来;四是基于深度学习的技术,采用深度学习技术来开发聊天机器人相对传统方法来说整体思路是非常简单可扩展的。它原本是被设计用来进行机器翻译的,通过平行语料库中的数据训练。
现有技术的智能对话机器人中采用较多的技术是基于人工模板和检索的混合技术,而本申请的智能对话机器人则采用深度神经网络RNN,结构相对简单,应答效果不错。相对于检索类或人工模板类传统技术而言,基于深度学习框架的智能对话机器人具有以下明显优点:一是模型的构建过程是端到端数据驱动,只需处理好训练数据,马上就可以训练出效果尚可的对话机器人,减少很多例如语义分析、句法分析等各种纷繁复杂的中间步骤,这些步骤在传统的NLP中是绕不开的,这样能够使得系统的开发速度大幅提高;二是与具体对话语言无关,可拓展性强,采用传统NLP方法无法同时处理不同语言的对话,因为每种不同语言之间的语义和语句结构差别非常大,各个语言之间的语法结构分析基本上不能通用,传统NLP方法针对每种语言都做详尽的分析才能采用,这样会做大量重复工作,效率极低,而采用神经网络框架后,将此工作简化,不同语言的对话机器人可采用同一套模型,只需采用不同的分词软件将词语分开即可,输入都是向量化与文字无关;三是目前该技术仍处于发展前期,模型还处于发展初期,所以改进和提升的空间非常广阔,它可以混合各种已有的NLP技术,使得效果达到最大化。
综合来看,现有技术的对话机器人存在明显不足,其主要缺陷和设计难点包括:
第一,现有技术的对话机器人一般需要刻意制作对话模板,还需要海量的聊天数据,训练时需要人工干预,问题的覆盖面范围较窄,但缺陷是平滑不带噪声的聊天数据难以寻找,产生的输出语句不够平滑,经常出现固定词语搭配循环输出,或是丢失新主语的问题,有些强拟人化问题回答起来各不一样,给人造成“人格分裂”的不好印象,无法判断输入的语句是否是具有个性倾向的问题,强拟人化的识别准确率差,无法解决对话身份一致性问题,无论是作为日常休闲,还是运用于专业领域的知识问答,效果都不够理想;
第二,对于一个对话机器人来说,它往往会被用户当做一个具有个性化特性的虚拟人,比如经常会问:“你多大了”、“你的爱好是什么”、“你是哪里人啊”等,如果将对话机器人当做一个虚拟人,那么这位虚拟人相关的个性化信息比如年龄、性别、爱好、语言风格等个性特征信息应该维护回答的一致性,而现有技术通过深度学习训练出的模型往往很难保持这种个性回答,因为从巨量信息中不能区分哪些是个性拟人信息哪些是通用信息,无法解决身份一致性问题,最终造成对话机器人的拟人化形象差;
第三,现有技术基于深度学习的智能对话机器人,在模型返回答案的过程中,容易丢失新主语,例如,应该回答“他说他很好”,却回答成“他很好”,另外,有时候还会不断重复“固定搭配”的短语,例如,一直循环输出“他说他说他说”,造成丢失新主语的问题和循环重复输出固定词组的问题,对话机器人的交流、检索和服务效率很低,关键环节的体验较差,应用受到极大限制,在一些正式场景下失去了实际利用价值;
第四,现有技术的智能对话机器人中采用较多的技术是基于人工模板和检索的混合技术,模型的构建过程不是端到端数据驱动,即使处理好训练数据,也不能马上训练出效果尚可的对话机器人,增加很多例如语义分析、句法分析等各种纷繁复杂的中间步骤,这些步骤在的NLP中是绕不开的;与具体对话语言直接,可拓展性差,无法同时处理不同语言的对话,因为每种不同语言之间的语义和语句结构差别非常大,各个语言之间的语法结构分析基本上不能通用,针对每种语言都做详尽的分析才能采用,会做大量重复工作,效率极低;对话机器人的离有趣、生动、富于多样性的目标相去甚远,经常是沉闷无聊且明显不像人的对话,信息的检索、在线快速答疑的实用价值低,娱乐性也很低,并且对话鲁棒性没有保障。
发明内容
本申请基于深度学习的智能对话机器人优势十分明显,不用刻意制作对话模板,只需要海量的聊天数据即可,训练时无需人工干预,问题的覆盖面很广,智能对话机器人中的对话交流网络基于改进后的PerAttent交流模型,在此基础上再次改进,让上文关联的信息PerAttent的计算基于拟人解码上一时刻的输出ci-1,而不是原来的本时刻的输出ci,然后再加上自适应变分编码器,用于产生平滑的输出语句,实验结果有力的证明了本申请设计的对话交流网络模型是有效的,克服了固定词语搭配循环输出,或是丢失新主语的两个问题,机器人不仅可以回答用户的某一个问题,还可以人性化的与用户交流,了解用户的需求,就像用户的好朋友一样,本申请对话机器人最大的优势在于回答是有趣、生动、富于多样性而不是沉闷无聊的,具有非常好的应用前景。
为实现以上技术效果,本申请所采用的技术方案如下:
应答流畅准确的强拟人化智能对话机器人,从对话机器人的对话生成质量和对个性拟人信息识别的准确度两个方面深入改进,设计并实现的一种智能对话机器人包括两个模型,分别是对话交流网络和强拟人化识别网络,对话交流网络采用自适应变分编码器PerAttent交流模型,强拟人化识别网络采用改进后的PerAttent交流模型;
第一,智能对话机器人结构设计包括:一是机器人总体架构;二是对话交流网络,包括PerAttent交流模型、自适应变分编码器PerAttent交流模型;三是强拟人化识别网络;
智能对话机器人主要由四个系统构成,分别是对话交流网络、强拟人化识别网络、用户接口和词向量变换系统,其中对话交流网络接收用户输入,并返回答案,其网络结构采用seq2seq模型上加以改进的自适应变分编码器PerAttent交流模型,采用双向GRU门循环神经网络单元作为基础RNN单元,加入PerAttent机制,使上文信息得到很好的利用,再结合自适应变分编码器,解决输出部分和上一时刻的输出依赖过紧的问题;提出一种新的且较为便捷的强拟人化网络,解决对话交流网络对个性拟人信息输出不一致的问题,采用和对话交流网络相同的网络结构,但参数和训练数据不同;
第二,强拟人化机器人算法设计包括:一是基于循环神经网络的个性编码-拟人解码模型,二是强拟人化识别网络的个性编码-拟人解码模型的详细算法,包括个性编码、拟人解码;三是确定和优化损失函数,包括固定训练数据长度噪声引入问题的确定、计算强拟人化识别网络的损失函数、计算变分自编码PerAttent网络的损失函数;
强拟人化机器人算法设计基于seq2seq模型改进GRU循环网络单元,并在PerAttent交流模型的基础进一步改进,最后确定损失函数的计算,实现整个强拟人化识别网络的数学模型,提出设置损失函数的方法,设置输出序列的长度为一个固定值,同时给出在此限制条件下的损失函数的加权计算方式,消除填充向量对模型的训练造成的影响,还提出对强拟人化识别网络的损失函数进行加权处理的方法,然后给出自适应变分编码器的WH训练方法,采用退火法避免WH在初期下降为0,最后基于对话交流网络和强拟人化识别网络的区别和关联度,变换交叉嫡的权重,提高强拟人化识别网络的目的性和准确率。
应答流畅准确的强拟人化智能对话机器人,进一步的,自适应变分编码器PerAttent交流模型:往模型中添加一种自适应变分编码器,通过自编码网络将语句映射到一个正态分布的随机变量上,然后在解码时通过对正态分布的随机变量采样,重新获取想要的语句,自适应变分编码器是一个生产模型,产生和训练集中近似数据,如果训练集是一个语句库,通过隐匿变量生产出近似的语句,通过采样获取隐匿变量,然后通过解码器获取训练集中近似输出;
本申请融合自适应变分编码器和PerAttent交流模型,构建一种新的自适应变分编码交流模型,在改进的PerAttent交流模型中加入自适应变分编码器,训练时能够学习到一个隐匿变量空间,回答语句在这个变量空间中是连续的,在训练过程中,生成的隐匿变量,即特征码x,直接初始化decoder的GRU,此时的z是后验概率,服从正态分布M(0,1),而在网络前向传播过程中,目标词向量不存在,需要变换网络结构,本申请提出前向传播时的自适应变分编码PerAttent交流模型,在前向传播时,z的采样来源于encoder隐匿状态的线性组合,这里的z是先验概率,服从M(O,1)分布,PerAttent变量获取上文语境,而自适应变分编码器寻求一个相对连续的隐匿变量空间,让模型能够输出相对平滑的语句。
应答流畅准确的强拟人化智能对话机器人,进一步的,强拟人化识别网络:采用和对话交流网络同样结构的改进PerAttent网络,只是训练时的样本不同,对对话交流网络进行训练时,对话数据采集自网络、字幕、聊天记录多个途径,不做筛选,最大程度保证样本的多样性和适当的噪声,而个性拟人信息识别网络的训练样本采用日常收集的固定句式,预先设定好对话机器人的拟人化角色,把个性拟人信息放到训练数据的答案中去,得到定制的强拟人化;与此同时,准备大量的非个性拟人问题,也加入到训练数据中去,作为反例,这样网络就会自行判别问题是否是个性拟人问题,如果有很大的概率是个性拟人问题,就直接输出答案,如果不是,就将问题交给对话交流网络处理;
在每个答案前面标注好<yes>和<no>标签,<yes>表示该问题是具有个性倾向的问题,需要直接输出答案,<no>表示该问题不是个性问题,应该交给对话交流网络回答;在训练时,对强拟人化网络做特别处理,采用加权的交叉熵,将第一个词就是yes和no的标签的权重设置为其余词语的2倍,即优先拟合这两个标签。
应答流畅准确的强拟人化智能对话机器人,进一步的,基于循环神经网络的个性编码-拟人解码模型:基于循环神经网络神经单元RNN Sell,在每一个时刻r,RNN Sell接受一个输入向量,并且经过内部的矩阵运算,产生一个输出向量yr,和一个状态向量br,整个模型接收一个输入序列,并输出一个输出序列:
X=(x1,x2,…,xr,…)
Y=(y1,y2,…,yr,…) 式1
输入序列和输出序列的长度可以不相同,对个性编码部分的每一个时刻r,RNNSell的隐匿状态br因为输入和上一时刻的隐匿状态br-1发生变化:
br=g(br-1,xr) 式2
其中函数g是门循环单元GRU,RNN被训练成在输入一个向量后,输出是一个概率分布,这个概率分布描述所有词语出现的概率,通过这些概率基于概率最大准则或寻找一条概率最大的路径,产生一组有意义的词语序列,在每一个时刻r,设输出yr的概率为条件概率Q(yr|yr-1,…,y2,y1),同时,设置词汇表的个数,即所有符号的个数为W,编号为1到W,将RNN单元的输出br经过Softmax激活函数,得到一个长度为W的向量,即输出yr,其中每一维表示的是编号为i的符号出现的概率,yr,i表示概率分布向量yr的第i维的概率:
其中Kj是Softmax层的权值矩阵K的第j行,将这些概率联合起来,得到整个语句y的概率:
获取输出序列的联合概率后,采用极大似然法求解模型中的变量,对于每个给定的输入,将对应的训练用的输出的概率最大化;
个性编码变长的输入序列X经过r次输入后,变换为一个固定长度的向量s,这个固定长度的向量s由输入序列决定,然后通过该向量,经过拟人解码再产生一个变长的输出序列Y,X和Y的长度可不同;
解码器拟人解码部分是另外一个RNN Sell,它被训练用来通过个性编码产生固定长度向量s,在每一时刻r产生隐匿状态br,然后经过Softmax激活函数生成概率分布向量yr,yr-1也需用于产生隐匿状态,隐匿状态的产生如式5所示:
br=g(br-1,s,yr-1) 式5
而r时刻输出的符号的概率分布向量yr-1:
Q(yr|yr-1,...,y1,s)=f(br,yr-1,s) 式6
其中g和f是特定激活函数,然后将编码器和解码器连接起来共同训练,根据极大似然法,求出模型中的各个变量:
其中a是模型的参数集合,每一对(xm,ym)是训练的一组输入输出,M是训练组数量,根据梯度下降法估算出模型参数。
应答流畅准确的强拟人化智能对话机器人,进一步的,强拟人化识别网络的个性编码-拟人解码模型的详细算法:在个性编码部分,编码器由双向gru组成,接受一个向量序列x作为输入,然后产生一个隐匿状态序列b,x和b的长度相同,个性编码部分是双向gru,生成的隐匿状态是两个单向gru隐匿状态的组合,即其中代表的是向前传播的gru的隐匿状态,是反方向的gru的隐匿状态;
在个性编码部分采用双向gru让网络充分理解输入序列x的特征,需要正向输入一遍,再反向输入一遍,将两遍得到的特征合并起来,这样获取的信息充分,而在拟人解码部分采用多层同向gru,多层的gru具备更强的泛化能力,让网络拟合性更好;
拟人解码部根据个性编码的隐匿状态序列b产生一个输出,这个输出是经过Softmax激活函数,是一个概率分布向量,每一个元素代表该具有元素所处位置索引的符号出现的概率,而第i步产生的输出,符号yi的概率是:
Q(yi|yi-1,…,y1,X)=f(ci,yi-1,si) 式8
其中ci是拟人解码的第二层gru的隐匿状态,它由上一时刻的隐匿状态和上一时刻的输出计算得到:
ci=g(ci-1,yi-1) 式9
隐匿状态序列(b1,b2,…,bn)作为注释,包含输入序列所有信息,而且其中每一个状态都是每一个词向量上下文的信息的集中,注释即si的计算,是和ci-1与个性编码的隐匿状态关联;注释不是隐匿状态简单加权求和,权值的计算也与ci-1关联:
每个注释Bj的权重e计算式为:
其中:
hij=D(ci-1,bj) 式12
式12是一个线性模型,衡量输入序列在j周围的上下文,和输出序列在i位置的符号的匹配程度,即依赖于个性编码部分的隐匿状态b和拟人解码部分的隐匿状态ci-1,函数D是一个线性模型,它的种类可不一样,线性模型D的变量可求导,能够和模型中的其它变量共同训练,本申请采用的线性模型D计算式为:
线性模型在一次输入序列长度为Rx、输出长度为Ry的过程中被采用Rx×Ry次,为减少计算量,本申请采用单层感知机,其中的变量在整个模型中共享,其中KD的维度是m×m,VD的维度是m×2m,的维度是m×1,即在整个模型计算过程中,都只有一份这一组变量,他们同时参与整个模型的回归学习。
应答流畅准确的强拟人化智能对话机器人,进一步的,个性编码:模型的输入是一个长度为Rx的词向量序列,词向量一共有W个:
输出长度为Ry的一个词向量序列:
其中Wx和Wy分别是输入词向量和输出词向量在整个词向量集合中的子集;
应答流畅准确的强拟人化智能对话机器人,进一步的,拟人解码:隐匿状态ci的计算如下所示:
其中:
zi=sigmoid(Kzyi-1+Vzci-1+Szsi)
ti=sigmoid(Ktyi-1+Vtci-l+Stsi) 式18
PerAttent向量si的计算如式10所示,最后,目标词向量yi的概率为:
Q(yi|yi-1,...,y1,x)=softmax(Ko[ci;si]+eo) 式20
e0为参数,得到整个模型的函数,然后损失函数采用交叉嫡,优化方案采用梯度下降法,求解出所有变量。
应答流畅准确的强拟人化智能对话机器人,进一步的,确定和优化损失函数:训练数据对(X,Y),其中X是词向量序列,长度是语句长度乘以词向量的维度,而Y是一个只有一个元素为1,其余元素为0的one-hot向量序列,向量长度是词向量的总个数,one-hot的每一维代表每一个词出现的概率,第i维是1代表这个词就是单词集合中的第i个词,将输入序列X和输出序列Y的长度固定,即输入的语句和输出的语句词汇不超过给定值,将训练数据的长度统一化,采用batch进行加速运算和回归;
本申请采用固定训练数据长度的方案,设定语句的词语数量最大是Rmax,输入的词向量序列长度为两倍的Rmax,包含两部分,分别给正向GRU输入和反向GRU输入,首先得到一对训练用的问答语句后,先用分词软件将其分词,然后再寻找语句中的所有词语的词向量,这个词向量集合事先利用语料库训练出来,将输入的词向量按顺序排成一个序列,后面不足Rmax长度的,采用全0向量补齐,最大程度减少无意义的补齐向量对网络训练时的干扰;
按顺序将输入序列中的词向量放进网络时,当语句实际长度的词向量进入完毕后,全0的END向量也进入到网络中,计算后只有偏置值有效,权值矩阵乘以全0的矩阵得到的输出仍是0,只有偏置值会对网络的隐匿状态和输出产生影响。
应答流畅准确的强拟人化智能对话机器人,进一步的,计算强拟人化识别网络的损失函数:采用交叉嫡作为损失函数,假设词向量总个数是S个,即最后一层Softmax有S个输出神经元,输出的概率分布向量有S个元素,每个元素表示的是第i个符号出现的概率,将输出概率最大的那个神经元所在的索引认定为该输出的类别,即:
第i个神经元的输出值是:
y=(y1,y2,…,yS)T 式23
其中:
表示第i个神经元的目标值,则样本(x,y)的似然函数为:
对两边求对数得到似然函数:
然后两边都取负号,得到最后的交叉嫡损失函数:
极小化该损失函数就是模型的目标,在训练数据中,首先将目标语句分词,然后根据词向量集合中词语的总个数S,给每个词语分配一个长度为S的,第i维为1,其余元素为0的one-hot向量,然后将这句话中的所有one-hot向量排成一个序列,该序列的长度不足Rmax的,用全0向量补足,其中每一个列向量都是拟人解码一个时刻r的输出的概率分布,一共输出Rmax个时刻,每一个列向量都会计算一次交叉嫡-H(Kr),将整个目标输出的交叉嫡达到最小,将这Rmax个交叉嫡求和:
本申请融入加权交叉嫡法,对每个单独的交叉嫡加权求和,设有一个权值向量V:
V=(v1,v2,…,vRmax) 式29
则一次目标输出加权交叉嫡为:
即采用的最终损失函数,权值向量V前H个元素都是1,其余元素都是0,H是输出语句的实际词个数,这样加权将后面的填充向量的交叉嫡都不计入总数中,完全只计算有意义的前H个词语的交叉嫡,将填充向量对模型的影响降到0;
本申请采用的权值向量V中元素为1的长度为H+1,有意义的部分加上一个END填充向量,将连在共同的END向量的交叉嫡也参与计算,输出的一句话总需要一个截止符号,这个截止符号也是有意义的,它表示对话循环神经网络在某个时刻第一次输出结束符END,该轮输出结束,这句话应该是有意义的,所有有意义的语句都应该有结束符号,结束符号出现的时刻也表达语句中各个词语之间的关系。
应答流畅准确的强拟人化智能对话机器人,进一步的,计算变分自编码PerAttent网络的损失函数:对话交流网络采用变分自编码网络,存在两个优化目标,一个是输出端的交叉嫡,还有一个是自适应变分编码器端的WH散度;
本申请基于退火法来调整WH散度降低的速率,具体方法是,给WH散度设置一个权值k,初始化为0,在最初迭代的过程中,由于k是0,因此WH模型先不会去优化WH,而是去优化输出端的交叉熵,等迭代次数增加较多后,再缓慢升高权值w,让WH散度的作用越来越大,模型再去优化WH散度。
与现有技术相比,本申请的创新点和优势在于:
第一,本申请基于深度学习的智能对话机器人优势十分明显,不用刻意制作对话模板,只需要海量的聊天数据即可,训练时无需人工干预,问题的覆盖面很广,智能对话机器人中的对话交流网络基于改进后的PerAttent交流模型,在此基础上再次改进,让上文关联的信息PerAttent的计算基于拟人解码上一时刻的输出ci-1,而不是原来的本时刻的输出ci,然后再加上自适应变分编码器,用于产生平滑的输出语句,实验结果有力的证明了本申请设计的对话交流网络模型是有效的,克服了固定词语搭配循环输出,或是丢失新主语的两个问题,机器人不仅可以回答用户的某一个问题,还可以人性化的与用户交流,了解用户的需求,就像用户的好朋友一样,本申请对话机器人最大的优势在于回答是有趣、生动、富于多样性而不是沉闷无聊的,具有非常好的应用前景;
第二,基于深度学习的智能对话机器人由于训练数据量大,内容是不可控的,有些强拟人化问题可能回答起来各不一样,给人造成“人格分裂”的不好印象,因此本申请提出了一种较便捷的解决方案,采用和改进PerAttent一样结构的循环神经网络,作为强拟人化识别网络,用户输入的语句首先进入判别网络,判别是否是具有个性倾向的问题,如果网络输出“no”,就将问题交给对话交流网络处理,否则,就直接输出训练好的个性拟人信息识别,强拟人化的识别准确率在测试集上达到了88.3%,结果明显优于基础seq2seq模型,机器人拟人化效果好,具有良好的实用价值和用户体验;
第三,在模型返回答案的过程中,容易丢失新主语,例如,应该回答“他说他很好”,却回答成“他很好”,另外,有时候还会不断重复“固定搭配”的短语,例如,一直循环输出“他说他说他说”,本申请提出的模型基于改进的PerAttent交流模型,在此基础之上再进行更加合理的改动,增加了自适应变分编码器,解决了上述问题,能够作为日常休闲的聊天机器人,也能够运用于专业领域的知识问答,能够解决对话身份一致性问题,丢失新主语的问题和循环重复输出固定词组的问题,从而获取良好的人机交互体验,同时也基于seq2seq模型,改进PerAttent交流模型的结构和损失函数,增加自适应变分编码器,并实现了一个完整的个性编码-拟人解码模型和一套完整的训练和回归方案,让智能对话机器人更流畅地与人交流、获取用户真正的意图;
第四,对于一个对话机器人来说,它往往会被用户当做一个具有个性化特性的虚拟人,比如经常会问:“你多大了”、“你的爱好是什么”、“你是哪里人啊”等,如果将对话机器人当做一个虚拟人,那么这位虚拟人相关的个性化信息比如年龄、性别、爱好、语言风格等个性特征信息应该维护回答的一致性,而通过深度学习训练出的模型往往很难保持这种个性回答,因为从巨量信息中不能区分哪些是个性拟人信息哪些是通用信息,本申请对seq2seq模型进行进一步的改进,采用两个单独分开的Rnn设计,能够作为日常休闲的聊天机器人,也能够运用于专业领域的知识问答,能够解决对话身份一致性问题,丢失新主语的问题和循环重复输出固定词组的问题,有助于机器人的拟人化水平大幅提高。
附图说明
图1是本申请设计的智能对话机器人的总体结构图。
图2是个性信息经过强拟人化识别网络产生答案过程示意图。
图3是训练时在改进的PerAttent模型中加入自适应变分编码器示意图。
图4是前向传播时的自适应变分编码PerAttent交流模型示意图。
图5是强拟人化识别网络的个性编码-拟人解码模型结构图。
图6是词语数量最大Rmax,输入的词向量序列示意图。
图7是强拟人化识别网络损失函数的输出序列示意图。
图8是本申请采用的自适应变分编码器示意图。
图9是本申请对抗评价实验的对抗分数比较结果示意图。
图10是两个模型在测试集上的拟人信息识别精度对比图。
具体实施方法
下面结合附图,对本申请应答流畅准确的强拟人化智能对话机器人的技术方案进行进一步的描述,使本领域的技术人员能够更好的理解本申请并能予以实施。
目前,采用智能对话机器人作为人机交互接口的案例越来越多,如何让智能对话机器人更流畅地与人交流、获取用户真正的意图,引起了众多关注。本申请主要从对话机器人的对话生成质量,对个性拟人信息识别的准确度两个方面进行改进。
本申请设计并实现的一种智能对话机器人包括两个模型,分别是对话交流网络和强拟人化识别网络,对话交流网络采用本申请提出的自适应变分编码器PerAttent交流模型,相对于基础的seq2seq模型来说,可以有效提高生成对话的质量;强拟人化识别网络采用本申请改进后的PerAttent交流模型,相对于基础seq2seq模型来说,能够有效区分问题是否是询问个性拟人信息的问题,在10万组对话的实验当中两种模型的表现均明显优于基础seq2seq模型。
一、智能对话机器人结构设计
智能对话机器人结构设计主要由四个系统构成,分别是对话交流网络、强拟人化识别网络、用户接口和词向量变换系统,其中对话交流网络接收用户输入,并返回答案,其网络结构是在seq2seq模型上加以改进的自适应变分编码器PerAttent交流模型,使其更适合中文对话,采用双向GRU门循环神经网络单元作为基础RNN单元,加入PerAttent机制,使上文信息得到很好的利用,再结合自适应变分编码器,能够很好的解决输出部分和上一时刻的输出依赖过紧的问题,本申请还解决了对话交流网络对个性拟人信息输出不一致的问题,提出一种新的且较为便捷的强拟人化网络,采用和对话交流网络相同的网络结构,只是参数和训练数据不同,可以较好的解决个性拟人信息输出的问题。
(一)机器人总体架构
智能对话机器人按用途来分为目标驱动和无目标驱动,如手机助手、信息检索、车载语音助手等就是目标驱动的,它们的设计思路明确,并且实用功能大于聊天功能;而无目标驱动的对话机器人用于娱乐和聊天,不要求有明确功能的回答,但对拟人化有更高需求。目标驱动的对话机器人采用检索式算法可以很精准的给用户有用的信息,而无目标驱动的对话机器人更适合采用生式算法即根据规则生成回答,不需要过多的对话模板,减少了很多人工操作,而且模型更容易维护。
本申请设计的智能对话机器人的总体结构如图1所示。包括四个部分,分别是:用户接口、词向量变换系统、强拟人化识别网络、对话交流网络,其中用户接口产生和用户进行交互的界面,词向量变换系统产生、加载词向量,并且将语句分词变换为词向量,同时也可将词向量还原成语句,两个核心系统是强拟人化识别网络和对话交流网络,其中强拟人化识别网络判别输入的问题是否是个性信息,如果不是个性信息,则将问题交给对话交流网络产生回答语句并返回给用户;如果问题是询问个性信息,那么就直接经过该网络产生答案并返回给用户,这种情况如图2所示。
(二)对话交流网络
1.PerAttent交流模型
对话交流网络基本的结构是利用一个lstm作为编码器encoder,每一步输入一个词向量,直到一句话输入完毕,lstm有很好的长时记忆性,这句话会被lstm里的神经网络编码成一个压缩的状态content,状态content是一个权值矩阵,代表输入语句经编码过后的信息,将状态向量S作为解码器decoder的初始状态,解码器将状态向量S逐步解码为想看到的词向量,完成解码过程。
该方法最大困难在于寻找和生成高质量的训练集合,但由于1stm的长时记忆部分能够进入长时保存的信息不够,导致状态向量S的信息量不足以表示前文所有细节信息,使得解码器部分的lstm非常依赖上一时间解码器的输入,导致解码器会输出与上文无关的语句,这样的网络泛化能力不强,是过拟合的。
首先模型在encoder部分采用双向lstm网络,输入的词向量序列需要正序输入一遍,再倒序输入到另单层lstm中,然后把词向量的正序倒序的lstm序列对齐,成为双向lstm,解码阶段,第r步输出yr的概率,与解码器的上一状态cr-1,上一步的输出yr-1,和PerAttent相关,通过正反两次输入得到的上文信息,再经过加权求和,一并输入到解码器中得到输出,充分提取上文信息,让解码器的输出更大程度依赖于输入的问题。
2.自适应变分编码器PerAttent交流模型
在改进后的PerAttent交流模型基础上,为能够使训练后的模型产生相对线性的数据空间,本申请往模型中添加一种自适应变分编码器,通过自编码网络将语句映射到一个正态分布的随机变量上,然后在解码时通过对正态分布的随机变量采样,重新获取想要的语句,自适应变分编码器是一个生产模型,产生和训练集中近似数据,如果训练集是一个语句库,通过隐匿变量生产出近似的语句,通过采样获取隐匿变量,然后通过解码器获取训练集中近似输出。
本申请融合自适应变分编码器和PerAttent交流模型,构建一种新的自适应变分编码交流模型,如图3所示,在改进的PerAttent交流模型中加入自适应变分编码器,训练时能够学习到一个隐匿变量空间,回答语句在这个变量空间中是连续的,在训练过程中,生成的隐匿变量,即特征码x,直接初始化decoder的GRU,此时的z是后验概率,服从正态分布M(0,1),而在网络前向传播过程中,目标词向量不存在,需要变换网络结构,本申请提出的前向传播时的自适应变分编码PerAttent交流模型如图4所示,在前向传播时,z的采样来源于encoder隐匿状态的线性组合,这里的z是先验概率,服从M(O,1)分布,PerAttent变量获取上文语境,而自适应变分编码器寻求一个相对连续的隐匿变量空间,让模型能够输出相对平滑的语句。
(三)强拟人化识别网络
用户对聊天机器人的拟人化要求越来越高,特别是涉及人机交互过程中,用户在和机器采用语言、语音、肢体交流时将机器当成一个虚拟朋友对待,希望潜在的交流对象是一个具有智能思维的人而不是机器,拟人的机器对用户有更亲近更高级的感觉。
基于此,让聊天机器人更像人无疑是一个正确的选择。本申请基于对人们日常聊天内容的研究,其中重要的内容就是个性拟人的一致性,如果和一个机器人对话的过程中,他的应该是固定回答但换个说法就改变了,会让人产生逻辑不连贯的感觉,即这个机器人的表现不像人。例如:>问:你家在哪?>答:我家在浙江。>问:你住在哪个城市?>答:我住在北京。
像这种固定信息的改变是神经网络对话机器人的缺陷,对于固定信息的返回功能很弱,比不上精确的模板匹配等算法,聊天回答的语句语法很接近人类习惯,但在相似的问题上回答却大相径庭,具体原因在于训练时并没有将个性拟人信息分离,和无意义的问答混在共同。
本申请的解决方案采用和对话交流网络同样结构的改进PerAttent网络,只是训练时的样本不同,对对话交流网络进行训练时,对话数据采集自网络、字幕、聊天记录多个途径,不做筛选,最大程度保证样本的多样性和适当的噪声,而个性拟人信息识别网络的训练样本采用日常收集的固定句式,例如“你家住哪”,“你家在哪”,“你喜欢什么颜色”等,预先设定好对话机器人的拟人化角色,如家住在哪,是什么工作,什么性别,是什么样的性格,把个性拟人信息放到训练数据的答案中去,得到定制的强拟人化。与此同时,准备大量的非个性拟人问题,也加入到训练数据中去,作为反例,这样网络就会自行判别问题是否是个性拟人问题,如果有很大的概率是个性拟人问题,就直接输出答案,如果不是,就将问题交给对话交流网络处理。
信息识别网络的训练数据实施例:
在每个答案前面标注好<yes>和<no>标签,<yes>表示该问题是具有个性倾向的问题,需要直接输出答案,<no>表示该问题不是个性问题,应该交给对话交流网络回答;在训练时,对强拟人化网络做特别处理,采用加权的交叉熵,将第一个词就是yes和no的标签的权重设置为其余词语的2倍,即优先拟合这两个标签。
这种方案实行方便,不用另外设计和增加模型,而且答案的针对性较强,有效区分是否是个性拟人问题,同时也容易更换答案中的信息,让用户可以定制对话机器人的背景和喜好。
二、强拟人化机器人算法设计
强拟人化机器人算法设计包括实现对话交流网络的全部算法,基于seq2seq模型改进GRU循环网络单元,在PerAttent交流模型的基础进一步改进,最后确定损失函数的计算,实现整个强拟人化识别网络的数学模型,提出设置损失函数的方法,解释了为什么输出序列的长度要是一个固定值,同时给出在此限制条件下的损失函数的加权计算方式,最大程度上消除填充向量对模型的训练造成的影响,还提出对强拟人化识别网络的损失函数进行加权处理的方法,然后给出自适应变分编码器的WH训练方法,采用退火法避免WH在初期下降为0,最后基于对话交流网络和强拟人化识别网络的区别和关联度,变换交叉嫡的权重,让强拟人化识别网络的目的性更加明确,准确率更高。
(一)基于循环神经网络的个性编码-拟人解码模型
基于循环神经网络神经单元RNN Sell,在每一个时刻r,RNN Sell接受一个输入向量,并且经过内部的矩阵运算,产生一个输出向量yr,和一个状态向量br,整个模型接收一个输入序列,并输出一个输出序列:
X=(x1,x2,…,xr,…)
Y=(y1,y2,…,yr,…) 式1
输入序列和输出序列的长度可以不相同,对个性编码部分的每一个时刻r,RNNSell的隐匿状态br因为输入和上一时刻的隐匿状态br-1发生变化:
br=g(br-1,xr) 式2
其中函数g是门循环单元GRU,RNN被训练成在输入一个向量后,输出是一个概率分布,这个概率分布描述所有词语出现的概率,通过这些概率基于概率最大准则或寻找一条概率最大的路径,产生一组有意义的词语序列,在每一个时刻r,设输出yr的概率为条件概率Q(yr|yr-1,…,y2,y1),同时,设置词汇表的个数,即所有符号的个数为W,编号为1到W,将RNN单元的输出br经过Softmax激活函数,得到一个长度为W的向量,即输出yr,其中每一维表示的是编号为i的符号出现的概率,yr,i表示概率分布向量yr的第i维的概率:
其中Kj是Softmax层的权值矩阵K的第j行,将这些概率联合起来,得到整个语句y的概率:
获取输出序列的联合概率后,采用极大似然法求解模型中的变量,对于每个给定的输入,将对应的训练用的输出的概率最大化。
个性编码变长的输入序列X(序列的长度不定,词向量的长度固定)经过r次输入后,变换为一个固定长度的向量s,这个固定长度的向量s由输入序列决定,然后通过该向量,经过拟人解码再产生一个变长的输出序列Y,X和Y的长度可不同。
解码器拟人解码部分是另外一个RNN Sell,它被训练用来通过个性编码产生固定长度向量s,在每一时刻r产生隐匿状态br,然后经过Softmax激活函数生成概率分布向量yr,yr-1也需用于产生隐匿状态,隐匿状态的产生如式5所示:
br=g(br-1,s,yr-1) 式5
而r时刻输出的符号的概率分布向量yr-1:
Q(yr|yr-1,...,y1,s)=f(br,yr-1,s) 式6
其中g和f是特定激活函数,例如Softmax,然后将编码器和解码器连接起来共同训练,根据极大似然法,求出模型中的各个变量:
其中a是模型的参数集合,每一对(xm,ym)是训练的一组输入输出,M是训练组数量,根据梯度下降法估算出模型参数。
(二)强拟人化识别网络的个性编码-拟人解码模型的详细算法
根据本申请强拟人化识别网络的结构,采用个性编码-拟人解码模型完整结构如图5所示。
在个性编码部分,编码器由双向gru组成,接受一个向量序列x作为输入,然后产生一个隐匿状态序列b,x和b的长度相同,个性编码部分是双向gru,生成的隐匿状态是两个单向gru隐匿状态的组合,即其中代表的是向前传播的gru的隐匿状态,是反方向的gru的隐匿状态。
在个性编码部分采用双向gru让网络充分理解输入序列x的特征,需要正向输入一遍,再反向输入一遍,将两遍得到的特征合并起来,这样获取的信息充分,而在拟人解码部分采用多层同向gru,多层的gru具备更强的泛化能力,让网络拟合性更好。
拟人解码部根据个性编码的隐匿状态序列b产生一个输出,这个输出是经过Softmax激活函数,是一个概率分布向量,每一个元素代表该具有元素所处位置索引的符号出现的概率,而第i步产生的输出,符号yi的概率是:
Q(yi|yi-1,...,y1,X)=f(ci,yi-1,si) 式8
其中ci是拟人解码的第二层gru的隐匿状态,它由上一时刻的隐匿状态和上一时刻的输出计算得到:
ci=g(ci-1,yi-1) 式9
隐匿状态序列(b1,b2,…,bn)作为注释,包含输入序列所有信息,而且其中每一个状态都是每一个词向量上下文的信息的集中,注释即si的计算,是和ci-1与个性编码的隐匿状态关联。注释不是隐匿状态简单加权求和,权值的计算也与ci-1关联:
每个注释Bj的权重e计算式为:
其中:
hij=D(ci-1,bj) 式12
式12是一个线性模型,衡量输入序列在j周围的上下文,和输出序列在i位置的符号的匹配程度,即依赖于个性编码部分的隐匿状态b和拟人解码部分的隐匿状态ci-1,函数D是一个线性模型,它的种类可不一样,线性模型D的变量可求导,能够和模型中的其它变量共同训练,本申请采用的线性模型D计算式为:
线性模型在一次输入序列长度为Rx、输出长度为Ry的过程中被采用Rx×Ry次,为减少计算量,本申请采用单层感知机,其中的变量在整个模型中共享,其中KD的维度是m×m,VD的维度是m×2m,的维度是m×1,即在整个模型计算过程中,都只有一份这一组变量,他们同时参与整个模型的回归学习。
1.个性编码
模型的输入是一个长度为Rx的词向量序列,词向量一共有W个:
输出长度为Ry的一个词向量序列:
其中Wx和Wy分别是输入词向量和输出词向量在整个词向量集合中的子集;
2.拟人解码
隐匿状态ci的计算如下所示:
其中:
zi=sigmoid(Kzyi-1+Vzci-1+Szsi)
ti=sigmoid(Ktyi-1+Vtci-l+Stsi) 式18
PerAttent向量si的计算如式10所示,最后,目标词向量yi的概率为:
Q(yi|yi-1,...,y1,x)=softmax(Ko[ci;si]+eo) 式20
得到整个模型的函数,然后损失函数采用交叉嫡,优化方案采用梯度下降法,求解出所有变量。
(三)确定和优化损失函数
训练数据对(X,Y),其中X是词向量序列,长度是语句长度乘以词向量的维度,而Y是一个只有一个元素为1,其余元素为0的one-hot向量序列,向量长度是词向量的总个数,one-hot的每一维代表每一个词出现的概率,第i维是1代表这个词就是单词集合中的第i个词,将输入序列X和输出序列Y的长度固定,即输入的语句和输出的语句词汇不超过给定值。将训练数据的长度统一化,能够采用batch进行加速运算和回归。固定输入和输出的词语的长度,固定长度虽然方便了计算和增加了计算速度,但同时也带来了一系列问题,以下将详细叙述问题的解决方案。
1.固定训练数据长度噪声引入问题的确定
本申请采用固定训练数据长度的方案,设定语句的词语数量最大是Rmax,输入的词向量序列如图6所示,图中就是一个典型的输入序列,长度为两倍的Rmax,包含两部分,分别给正向GRU输入和反向GRU输入,首先得到一对训练用的问答语句后,先用分词软件将其分词,然后再寻找语句中的所有词语的词向量,这个词向量集合事先利用语料库训练出来,将输入的词向量按顺序排成一个序列,后面不足Rmax长度的,采用全0向量补齐,最大程度减少无意义的补齐向量对网络训练时的干扰。
按顺序将输入序列中的词向量放进网络时,当语句实际长度的词向量进入完毕后,全0的END向量也进入到网络中,计算后只有偏置值有效,权值矩阵乘以全0的矩阵得到的输出仍是0,只有偏置值会对网络的隐匿状态和输出产生影响,影响比随机向量小很多。
另外,本申请采用的网络在个性编码部分,是双向循环网络,需要正序输入到正向GRU,然后反方向输入到反向GRU中,不能将一个batch尺寸的矩阵按列向量反向,需要另外寻找方案。本申请采用反向输入向量如图6右边部分所示,具体方法是将正向的输入向量反向,然后在前面填充上全0的向量直到整个序列的长度为Rmax,将该向量输入时依然是从左往右输入,输入完毕后,将每一步产生的隐匿状态序列反向,得到反向的GRU隐匿状态序列,前面全0向量输入时带来噪声影响小,将有用信息集中在最后几个状态中。
2.计算强拟人化识别网络的损失函数
采用交叉嫡作为损失函数,假设词向量总个数是S个,即最后一层Softmax有S个输出神经元,输出的概率分布向量有S个元素,每个元素表示的是第i个符号出现的概率,将输出概率最大的那个神经元所在的索引认定为该输出的类别,即:
第i个神经元的输出值是:
y=(y1,y2,…,yS)T 式23
其中:
表示第i个神经元的目标值,则样本(x,y)的似然函数为:
对两边求对数得到似然函数:
然后两边都取负号,得到最后的交叉嫡损失函数:
极小化该损失函数就是模型的目标,在训练数据中,首先将目标语句分词,然后根据词向量集合中词语的总个数S,给每个词语分配一个长度为S的,第i维为1,其余元素为0的one-hot向量,然后将这句话中的所有one-hot向量排成一个序列,该序列的长度不足Rmax的,用全0向量补足,如图7所示,其中每一个列向量都是拟人解码一个时刻r的输出的概率分布,一共输出Rmax个时刻,每一个列向量都会计算一次交叉嫡-H(Kr),将整个目标输出的交叉嫡达到最小,将这Rmax个交叉嫡求和:
问题是在图6所示的目标输出里,只有前三个列向量是有意义的,后面的填充向量是无意义的,如果将后面的填充向量也加入到交叉嫡中计算,会导致严重的训练失衡,出现后面的填充向量都匹配对,但前面有意义的向量却没有被拟合。因此,在这里不能将填充向量加入计算中,不能让填充向量的权重和有意义的向量一样,本申请融入加权交叉嫡法,对每个单独的交叉嫡加权求和,设有一个权值向量V:
V=(v1,v2,…,vRmax) 式29
则一次目标输出加权交叉嫡为:
即本申请采用的最终损失函数,权值向量V前H个元素都是1,其余元素都是0,H是输出语句的实际词个数,这样加权将后面的填充向量的交叉嫡都不计入总数中,完全只计算有意义的前H个词语的交叉嫡,将填充向量对模型的影响降到0。
本申请采用的权值向量V中元素为1的长度为H+1,有意义的部分加上一个END填充向量,将连在共同的END向量的交叉嫡也参与计算,输出的一句话总需要一个截止符号,这个截止符号也是有意义的,它表示对话循环神经网络在某个时刻第一次输出结束符END,该轮输出结束,这句话应该是有意义的,所有有意义的语句都应该有结束符号,结束符号出现的时刻也表达语句中各个词语之间的关系。
如果要公平的计算交叉嫡,减少填充向量对网络产生的误差影响,采用mask向量屏蔽掉填充向量产生的交叉嫡,在对话交流网络中,每个词语的权重相同,都是1,他们产生的交叉嫡依然无差别求和。
一对训练数据中,问题部分和对话交流网络一样,区别在于回答部分,在强拟人化识别网络中,回答部分在第一个词是固定的,<yes>或<no>,如果是<yes>后面才输出正常的回答,本申请认定第一个词的重要性高,强拟人化识别网络的首要任务是识别问题是否具有个性倾向性,回答则是次要的,第一个词的权值应该超过后面的正常对话,他们的拟合应该优先满足。本申请将前H全1的mask向量第一个元素改为3,用三倍的权值来强调第一个词的重要性,其余计算和上述的对话交流网络相同。
3.计算变分自编码PerAttent网络的损失函数
对话交流网络采用本申请提出的变分自编码PerAttent网络,在变分自编码网络中,存在两个优化目标,一个是输出端的交叉嫡,还有一个是自适应变分编码器端的WH散度,本申请采用的自适应变分编码器如图8所示。
优化WH散度时,模型另一个优化目标是输出端的交叉嫡,较难优化,因此模型优先去降低WH散度,造成WH散度迅速降为0,编码器实际上并没有学习到相应权值,只是因为RNN的模型化能力太强造成的。为解决这个问题,本申请基于退火法来调整WH散度降低的速率,具体方法是,给WH散度设置一个权值k,初始化为0,在最初迭代的过程中,由于k是0,因此WH模型先不会去优化WH,而是去优化输出端的交叉熵,等迭代次数增加较多后,再缓慢升高权值w,让WH散度的作用越来越大,模型就会再去优化WH散度。
三、实验分析
(一)对抗评价
对抗评价分数是训练好的分类器在测试集上的精度与50%的差的绝对值,这个值越接近0,说明对应模型产生的对话越接近人类的习惯,质量也就越好。首先让seq2seq模型生成10万组对话,作为负例,再取10万组原始对话作为正例,将这20万组数据按比例分为8:1:1,分别作为分类器的训练集,开发集合测试集,最后求得对抗评价分数,然再让本申请提出对话交流网络再次进行上述步骤,获取对抗评价分数。
本申请采用了两种类型的分类器,分别是LSTM和RNNLM。针对模型的不同层还有RNN单元内神经元个数,分别进行了实验。模型的层数,即RNN单元堆叠的层数,设置为2,4,8三种,单元内神经元个数有256和512这两种。评价分数比较如图9所示。
可以得出,本申请的对话交流网络模型在两种分类器的对抗实验中,结果均明显优于基础seq2seq模型,而且对话交流网络的最优结构是4层堆叠,每层RNN中节点数为256。
(二)强拟人化识别网络实验
在强拟人化识别网络的实验中,本申请采用了十万条左右的个性拟人问题数据,其训练集、开发集、测试集之间的比例为6:2:2,同样采用基础seq2seq模型作为比对,在同样的数据集上训练,强拟人化识别网络主要关心该问题是否是个性问题,因此是一个二元分类问题,同对话交流网络实验中的一样,本申请设定RNN堆叠层数和每层RNN中神经元数量两个变量。图10是两个模型在测试集上的精度。
可以得出,强拟人化识别网络的识别精度要大幅优于基础seq2seq模型,而且最优结构是4层RNN堆叠,每层RNN的神经元个数为256。
本申请设计的智能对话机器人中的对话交流网络是基于googlebrain小组改进后的PerAttent交流模型,在此基础上再次改进,让上文关联的信息PerAttent的计算基于拟人解码上一时刻的输出ci-1,而不是原来的本时刻的输出ci,然后再加上自适应变分编码器,用于产生平滑的输出语句,实验结果有力的证明了本申请设计的对话交流网络模型是有效的,克服了固定词语搭配循环输出,或是丢失新主语的两个问题。
基于深度学习的智能对话机器人由于训练数据量大,内容是不可控的,因此有些强拟人化问题可能回答起来各不一样,给人造成“人格分裂”的不好印象,因此本申请提出了一种较便捷的解决方案,采用和改进PerAttent一样结构的循环神经网络,作为强拟人化识别网络,用户输入的语句首先进入判别网络,判别是否是具有个性倾向的问题,如果网络输出“no”,就将问题交给对话交流网络处理,否则,就直接输出训练好的个性拟人信息识别,强拟人化的识别准确率在测试集上达到了88.3%,结果明显优于基础seq2seq模型。
Claims (10)
1.应答流畅准确的强拟人化智能对话机器人,其特征在于,从对话机器人的对话生成质量和对个性拟人信息识别的准确度两个方面深入改进,设计并实现的一种智能对话机器人包括两个模型,分别是对话交流网络和强拟人化识别网络,对话交流网络采用自适应变分编码器PerAttent交流模型,强拟人化识别网络采用改进后的PerAttent交流模型;
第一,智能对话机器人结构设计包括:一是机器人总体架构;二是对话交流网络,包括PerAttent交流模型、自适应变分编码器PerAttent交流模型;三是强拟人化识别网络;
智能对话机器人主要由四个系统构成,分别是对话交流网络、强拟人化识别网络、用户接口和词向量变换系统,其中对话交流网络接收用户输入,并返回答案,其网络结构采用seq2seq模型上加以改进的自适应变分编码器PerAttent交流模型,采用双向GRU门循环神经网络单元作为基础RNN单元,加入PerAttent机制,使上文信息得到很好的利用,再结合自适应变分编码器,解决输出部分和上一时刻的输出依赖过紧的问题;提出一种新的且较为便捷的强拟人化网络,解决对话交流网络对个性拟人信息输出不一致的问题,采用和对话交流网络相同的网络结构,但参数和训练数据不同;
第二,强拟人化机器人算法设计包括:一是基于循环神经网络的个性编码-拟人解码模型,二是强拟人化识别网络的个性编码-拟人解码模型的详细算法,包括个性编码、拟人解码;三是确定和优化损失函数,包括固定训练数据长度噪声引入问题的确定、计算强拟人化识别网络的损失函数、计算变分自编码PerAttent网络的损失函数;
强拟人化机器人算法设计基于seq2seq模型改进GRU循环网络单元,并在PerAttent交流模型的基础进一步改进,最后确定损失函数的计算,实现整个强拟人化识别网络的数学模型,提出设置损失函数的方法,设置输出序列的长度为一个固定值,同时给出在此限制条件下的损失函数的加权计算方式,消除填充向量对模型的训练造成的影响,还提出对强拟人化识别网络的损失函数进行加权处理的方法,然后给出自适应变分编码器的WH训练方法,采用退火法避免WH在初期下降为0,最后基于对话交流网络和强拟人化识别网络的区别和关联度,变换交叉嫡的权重,提高强拟人化识别网络的目的性和准确率。
2.根据权利要求1所述应答流畅准确的强拟人化智能对话机器人,其特征在于,自适应变分编码器PerAttent交流模型:往模型中添加一种自适应变分编码器,通过自编码网络将语句映射到一个正态分布的随机变量上,然后在解码时通过对正态分布的随机变量采样,重新获取想要的语句,自适应变分编码器是一个生产模型,产生和训练集中近似数据,如果训练集是一个语句库,通过隐匿变量生产出近似的语句,通过采样获取隐匿变量,然后通过解码器获取训练集中近似输出;
本申请融合自适应变分编码器和PerAttent交流模型,构建一种新的自适应变分编码交流模型,在改进的PerAttent交流模型中加入自适应变分编码器,训练时能够学习到一个隐匿变量空间,回答语句在这个变量空间中是连续的,在训练过程中,生成的隐匿变量,即特征码x,直接初始化decoder的GRU,此时的z是后验概率,服从正态分布M(0,1),而在网络前向传播过程中,目标词向量不存在,需要变换网络结构,本申请提出前向传播时的自适应变分编码PerAttent交流模型,在前向传播时,z的采样来源于encoder隐匿状态的线性组合,这里的z是先验概率,服从M(O,1)分布,PerAttent变量获取上文语境,而自适应变分编码器寻求一个相对连续的隐匿变量空间,让模型能够输出相对平滑的语句。
3.根据权利要求1所述应答流畅准确的强拟人化智能对话机器人,其特征在于,强拟人化识别网络:采用和对话交流网络同样结构的改进PerAttent网络,只是训练时的样本不同,对对话交流网络进行训练时,对话数据采集自网络、字幕、聊天记录多个途径,不做筛选,最大程度保证样本的多样性和适当的噪声,而个性拟人信息识别网络的训练样本采用日常收集的固定句式,预先设定好对话机器人的拟人化角色,把个性拟人信息放到训练数据的答案中去,得到定制的强拟人化;与此同时,准备大量的非个性拟人问题,也加入到训练数据中去,作为反例,这样网络就会自行判别问题是否是个性拟人问题,如果有很大的概率是个性拟人问题,就直接输出答案,如果不是,就将问题交给对话交流网络处理;
在每个答案前面标注好<yes>和<no>标签,<yes>表示该问题是具有个性倾向的问题,需要直接输出答案,<no>表示该问题不是个性问题,应该交给对话交流网络回答;在训练时,对强拟人化网络做特别处理,采用加权的交叉熵,将第一个词就是yes和no的标签的权重设置为其余词语的2倍,即优先拟合这两个标签。
4.根据权利要求1所述应答流畅准确的强拟人化智能对话机器人,其特征在于,基于循环神经网络的个性编码-拟人解码模型:基于循环神经网络神经单元RNN Sell,在每一个时刻r,RNN Sell接受一个输入向量,并且经过内部的矩阵运算,产生一个输出向量yr,和一个状态向量br,整个模型接收一个输入序列,并输出一个输出序列:
X=(x1,x2,…,xr,…)
Y=(y1,y2,…,yr,…) 式1
输入序列和输出序列的长度可以不相同,对个性编码部分的每一个时刻r,RNN Sell的隐匿状态br因为输入和上一时刻的隐匿状态br-1发生变化:
br=g(br-1,xr) 式2
其中函数g是门循环单元GRU,RNN被训练成在输入一个向量后,输出是一个概率分布,这个概率分布描述所有词语出现的概率,通过这些概率基于概率最大准则或寻找一条概率最大的路径,产生一组有意义的词语序列,在每一个时刻r,设输出yr的概率为条件概率Q(yr|yr-1,…,y2,y1),同时,设置词汇表的个数,即所有符号的个数为W,编号为1到W,将RNN单元的输出br经过Softmax激活函数,得到一个长度为W的向量,即输出yr,其中每一维表示的是编号为i的符号出现的概率,yr,i表示概率分布向量yr的第i维的概率:
其中Kj是Softmax层的权值矩阵K的第j行,将这些概率联合起来,得到整个语句y的概率:
获取输出序列的联合概率后,采用极大似然法求解模型中的变量,对于每个给定的输入,将对应的训练用的输出的概率最大化;
个性编码变长的输入序列X经过r次输入后,变换为一个固定长度的向量s,这个固定长度的向量s由输入序列决定,然后通过该向量,经过拟人解码再产生一个变长的输出序列Y,X和Y的长度可不同;
解码器拟人解码部分是另外一个RNN Sell,它被训练用来通过个性编码产生固定长度向量s,在每一时刻r产生隐匿状态br,然后经过Softmax激活函数生成概率分布向量yr,yr-1也需用于产生隐匿状态,隐匿状态的产生如式5所示:
br=g(br-1,s,yr-1) 式5
而r时刻输出的符号的概率分布向量yr-1:
Q(yr|yr-1,...,yl,s)=f(br,yr-1,s) 式6
其中g和f是特定激活函数,然后将编码器和解码器连接起来共同训练,根据极大似然法,求出模型中的各个变量:
其中a是模型的参数集合,每一对(xm,ym)是训练的一组输入输出,M是训练组数量,根据梯度下降法估算出模型参数。
5.根据权利要求1所述应答流畅准确的强拟人化智能对话机器人,其特征在于,强拟人化识别网络的个性编码-拟人解码模型的详细算法:在个性编码部分,编码器由双向gru组成,接受一个向量序列x作为输入,然后产生一个隐匿状态序列b,x和b的长度相同,个性编码部分是双向gru,生成的隐匿状态是两个单向gru隐匿状态的组合,即其中代表的是向前传播的gru的隐匿状态,是反方向的gru的隐匿状态;
在个性编码部分采用双向gru让网络充分理解输入序列x的特征,需要正向输入一遍,再反向输入一遍,将两遍得到的特征合并起来,这样获取的信息充分,而在拟人解码部分采用多层同向gru,多层的gru具备更强的泛化能力,让网络拟合性更好;
拟人解码部根据个性编码的隐匿状态序列b产生一个输出,这个输出是经过Softmax激活函数,是一个概率分布向量,每一个元素代表该具有元素所处位置索引的符号出现的概率,而第i步产生的输出,符号yi的概率是:
Q(yi|yi-1,...,yl,X)=f(ci,yi-1,si) 式8
其中ci是拟人解码的第二层gru的隐匿状态,它由上一时刻的隐匿状态和上一时刻的输出计算得到:
ci=g(ci-1,yi-1) 式9
隐匿状态序列(b1,b2,…,bn)作为注释,包含输入序列所有信息,而且其中每一个状态都是每一个词向量上下文的信息的集中,注释即si的计算,是和ci-1与个性编码的隐匿状态关联;注释不是隐匿状态简单加权求和,权值的计算也与ci-1关联:
每个注释Bj的权重e计算式为:
其中:
hij=D(ci-1,bj) 式12
式12是一个线性模型,衡量输入序列在j周围的上下文,和输出序列在i位置的符号的匹配程度,即依赖于个性编码部分的隐匿状态b和拟人解码部分的隐匿状态ci-1,函数D是一个线性模型,它的种类可不一样,线性模型D的变量可求导,能够和模型中的其它变量共同训练,本申请采用的线性模型D计算式为:
7.根据权利要求5所述应答流畅准确的强拟人化智能对话机器人,其特征在于,拟人解码:隐匿状态ci的计算如下所示:
其中:
zi=sigmoid(Kzyi-1+Vzci-1+Szsi)
ti=sigmoid(Ktyi-1+Vtci-1+Stsi) 式18
PerAttent向量si的计算如式10所示,最后,目标词向量yi的概率为:
Q(yi|yi-1,...,yl,x)=softmax(Ko[ci;si]+eo) 式20
e0为参数,得到整个模型的函数,然后损失函数采用交叉嫡,优化方案采用梯度下降法,求解出所有变量。
8.根据权利要求1所述应答流畅准确的强拟人化智能对话机器人,其特征在于,确定和优化损失函数:训练数据对(X,Y),其中X是词向量序列,长度是语句长度乘以词向量的维度,而Y是一个只有一个元素为1,其余元素为0的one-hot向量序列,向量长度是词向量的总个数,one-hot的每一维代表每一个词出现的概率,第i维是1代表这个词就是单词集合中的第i个词,将输入序列X和输出序列Y的长度固定,即输入的语句和输出的语句词汇不超过给定值,将训练数据的长度统一化,采用batch进行加速运算和回归;
本申请采用固定训练数据长度的方案,设定语句的词语数量最大是Rmax,输入的词向量序列长度为两倍的Rmax,包含两部分,分别给正向GRU输入和反向GRU输入,首先得到一对训练用的问答语句后,先用分词软件将其分词,然后再寻找语句中的所有词语的词向量,这个词向量集合事先利用语料库训练出来,将输入的词向量按顺序排成一个序列,后面不足Rmax长度的,采用全0向量补齐,最大程度减少无意义的补齐向量对网络训练时的干扰;
按顺序将输入序列中的词向量放进网络时,当语句实际长度的词向量进入完毕后,全0的END向量也进入到网络中,计算后只有偏置值有效,权值矩阵乘以全0的矩阵得到的输出仍是0,只有偏置值会对网络的隐匿状态和输出产生影响。
9.根据权利要求1所述应答流畅准确的强拟人化智能对话机器人,其特征在于,计算强拟人化识别网络的损失函数:采用交叉嫡作为损失函数,假设词向量总个数是S个,即最后一层Softmax有S个输出神经元,输出的概率分布向量有S个元素,每个元素表示的是第i个符号出现的概率,将输出概率最大的那个神经元所在的索引认定为该输出的类别,即:
第i个神经元的输出值是:
y=(y1,y2,...,ys)T 式23
其中:
表示第i个神经元的目标值,则样本(x,y)的似然函数为:
对两边求对数得到似然函数:
然后两边都取负号,得到最后的交叉嫡损失函数:
极小化该损失函数就是模型的目标,在训练数据中,首先将目标语句分词,然后根据词向量集合中词语的总个数S,给每个词语分配一个长度为S的,第i维为1,其余元素为0的one-hot向量,然后将这句话中的所有one-hot向量排成一个序列,该序列的长度不足Rmax的,用全0向量补足,其中每一个列向量都是拟人解码一个时刻r的输出的概率分布,一共输出Rmax个时刻,每一个列向量都会计算一次交叉嫡-H(Kr),将整个目标输出的交叉嫡达到最小,将这Rmax个交叉嫡求和:
本申请融入加权交叉嫡法,对每个单独的交叉嫡加权求和,设有一个权值向量V:
V=(v1,v2,…,vRmax) 式29
则一次目标输出加权交叉嫡为:
即采用的最终损失函数,权值向量V前H个元素都是1,其余元素都是0,H是输出语句的实际词个数,这样加权将后面的填充向量的交叉嫡都不计入总数中,完全只计算有意义的前H个词语的交叉嫡,将填充向量对模型的影响降到0;
本申请采用的权值向量V中元素为1的长度为H+1,有意义的部分加上一个END填充向量,将连在共同的END向量的交叉嫡也参与计算,输出的一句话总需要一个截止符号,这个截止符号也是有意义的,它表示对话循环神经网络在某个时刻第一次输出结束符END,该轮输出结束,这句话应该是有意义的,所有有意义的语句都应该有结束符号,结束符号出现的时刻也表达语句中各个词语之间的关系。
10.根据权利要求1所述应答流畅准确的强拟人化智能对话机器人,其特征在于,计算变分自编码PerAttent网络的损失函数:对话交流网络采用变分自编码网络,存在两个优化目标,一个是输出端的交叉嫡,还有一个是自适应变分编码器端的WH散度;
本申请基于退火法来调整WH散度降低的速率,具体方法是,给WH散度设置一个权值k,初始化为0,在最初迭代的过程中,由于k是0,因此WH模型先不会去优化WH,而是去优化输出端的交叉熵,等迭代次数增加较多后,再缓慢升高权值w,让WH散度的作用越来越大,模型再去优化WH散度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111595891.6A CN114328866A (zh) | 2021-12-24 | 2021-12-24 | 应答流畅准确的强拟人化智能对话机器人 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111595891.6A CN114328866A (zh) | 2021-12-24 | 2021-12-24 | 应答流畅准确的强拟人化智能对话机器人 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114328866A true CN114328866A (zh) | 2022-04-12 |
Family
ID=81013387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111595891.6A Pending CN114328866A (zh) | 2021-12-24 | 2021-12-24 | 应答流畅准确的强拟人化智能对话机器人 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114328866A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117034953A (zh) * | 2023-10-07 | 2023-11-10 | 湖南东良数智科技有限公司 | 一种利用个人著作库与其智能会话的系统 |
CN117093697A (zh) * | 2023-10-18 | 2023-11-21 | 深圳市中科云科技开发有限公司 | 实时自适应对话方法、装置、设备及存储介质 |
-
2021
- 2021-12-24 CN CN202111595891.6A patent/CN114328866A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117034953A (zh) * | 2023-10-07 | 2023-11-10 | 湖南东良数智科技有限公司 | 一种利用个人著作库与其智能会话的系统 |
CN117034953B (zh) * | 2023-10-07 | 2023-12-19 | 湖南东良数智科技有限公司 | 一种利用个人著作库与其智能会话的系统 |
CN117093697A (zh) * | 2023-10-18 | 2023-11-21 | 深圳市中科云科技开发有限公司 | 实时自适应对话方法、装置、设备及存储介质 |
CN117093697B (zh) * | 2023-10-18 | 2024-01-26 | 深圳市中科云科技开发有限公司 | 实时自适应对话方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108763284B (zh) | 一种基于深度学习和主题模型的问答系统实现方法 | |
Liu et al. | Knowledge diffusion for neural dialogue generation | |
CN108681610B (zh) | 生成式多轮闲聊对话方法、系统及计算机可读存储介质 | |
CN108734276B (zh) | 一种基于对抗生成网络的模仿学习对话生成方法 | |
CN112541063B (zh) | 一种基于自学习对话模型的人机对话方法及系统 | |
CN108830287A (zh) | 基于残差连接的Inception网络结合多层GRU的中文图像语义描述方法 | |
CN106448670A (zh) | 基于深度学习和强化学习的自动回复对话系统 | |
CN108595436B (zh) | 情感对话内容的生成方法和系统、存储介质 | |
CN111241250B (zh) | 一种情感对话生成系统和方法 | |
CN111274375B (zh) | 一种基于双向gru网络的多轮对话方法及系统 | |
CN113297364B (zh) | 一种面向对话系统中的自然语言理解方法及装置 | |
CN111966800A (zh) | 情感对话生成方法、装置及情感对话模型训练方法、装置 | |
CN112527966B (zh) | 基于Bi-GRU神经网络和自注意力机制的网络文本情感分析方法 | |
CN114328866A (zh) | 应答流畅准确的强拟人化智能对话机器人 | |
CN110334196B (zh) | 基于笔画和自注意力机制的神经网络中文问题生成系统 | |
CN112559706B (zh) | 对话生成模型的训练方法、对话方法、设备以及存储介质 | |
CN111125333B (zh) | 一种基于表示学习与多层覆盖机制的生成式知识问答方法 | |
KR20190143415A (ko) | 자질 선별을 통한 고성능 기계독해 방법 | |
CN110457661A (zh) | 自然语言生成方法、装置、设备及存储介质 | |
CN112364148B (zh) | 一种基于深度学习方法的生成型聊天机器人 | |
CN112131367A (zh) | 自审核的人机对话方法、系统及可读存储介质 | |
CN110597968A (zh) | 一种回复选择方法及装置 | |
CN112818106A (zh) | 一种生成式问答的评价方法 | |
CN111782788A (zh) | 一种面向开放域对话系统的情感回复自动生成方法 | |
CN111651661A (zh) | 一种图文跨媒体检索方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |