基于HRED和内外记忆网络单元的情感对话生成方法与流程

文档序号:15492353发布日期:2018-09-21 20:52阅读:2042来源:国知局

本发明涉及自动对话生成领域,更具体地,涉及一种基于hred和内外记忆网络单元的情感对话生成方法。



背景技术:

encoder-decoder模型:又叫做编码-解码模型,这是一种应用于seq2seq问题的模型。而seq2seq简单的说,就是根据一个输入序列x,来生成另一个输出序列y。seq2seq有很多的应用,例如翻译,文档摘取,问答系统等等。在翻译中,输入序列是待翻译的文本,输出序列是翻译后的文本;在问答系统中,输入序列是提出的问题,而输出序列是答案。为了解决seq2seq问题,有人提出了encoder-decoder模型,也就是编码-解码模型。所谓编码,就是将输入序列转化成一个固定长度的向量;解码,就是将之前生成的固定向量再转化成输出序列。

层次循环编码解码模型(hred):hierarchicalrecurrentencoder-decodermodel,这是一个两层的seq2seq模型。在hred当中,包含了三个rnn,即一个encoderrnn,一个contextrnn和一个decoderrnn。对于一个输入,首先通过encoderrnn计算得到一个real-valuedvector,然后将这个vector作为contextrnn的输入,做一些归纳的工作得到summary,最后再把这个summary作为decoderrnn的输入,最终生成回答。而传统的seq2seq(encoderdecoder)则只包含一个encoderrnn和一个decoderrnn,这里的contextrnn每一个dialogue当中只更新一次,并且每次更新都使用相同的参数。

情感智能是人工智能一个很重要的组成部分,让机器拥有感知和理解人类情绪和情感是人工智能的一个长期目标。对话系统的初衷是让机器能够如同人一样进行对话,要想对话系统的对话水平达到人类的水准,感知和理解人类情感是一个很重要的因素。但是到目前为止,情感因素在大规模对话生成中并没有得到解决。目前对话系统/聊天机器人主要分为检索式对话系统和生成式聊天对话系统。对于基于检索技术的模型,由于使用了知识库且数据为预先定义好的,因此进行回复的内容语法上较为通顺,较少出现语法错误;但是基于检索技术的模型中没有会话概念,不能结合上下文给出更加智能的回复。而生成式模型则更加智能一些,它能够更加有效地利用上下文信息从而知道你在讨论的东西是什么;然而生成式模型比较难以训练,并且输出的内容经常存在一些语法错误(尤其对于长句子而言),以及模型训练需要大规模的数据。基于检索的对话系统无法利用附加信息,所以很难解决情感因素在对话系统中的嵌入问题。

就目前所知,已经有人采用基于神经网络的生成模型来生成对话系统中的回答,但是暂时还没有人将情感因素嵌入到网络模型中以解决对话系统中的情感嵌入的问题。在多轮对话系统中解决情感嵌入的问题更是亟待解决。



技术实现要素:

本发明提供一种基于层次循环神经网络和内外记忆单元的情感智能客服对话生成系统生成方法,该方法可以解决情感因素在对话系统中的嵌入问题。

为了达到上述技术效果,本发明的技术方案如下:

一种基于hred和内外记忆网络单元的情感对话生成方法,包括以下步骤:

s1:准备情感对话系统数据;

s2:对于s1得到的数据集若是单轮对话,利用该单轮对话数据集对编码-解码模型进行训练,其中在解码模块中添加预先训练的情感类别的词向量以及内外记忆单元,模型训练完毕后进行测试;

s3:对于s1中得到的数据集若是多轮对话,利用该多轮对话数据集采用层次循环神经网络模型进行训练,将每轮对话的中间上下文向量与该轮对话的情感向量拼接作为输入另构建一层循环神经网络,模型训练完毕后进行测试,给定一句话和接下来两句话的情感标签,可以生成接下来两轮对话的语句。

进一步地,所述步骤s1中训练文本情感分类器的模型对比基于词汇的情感分析,选择bi-lstm模型,该模型在测试集上的准确率为0.623。

进一步地,所述步骤s2中情感类别的词向量是经过单独训练的,解码阶段是原始输入与情感向量和上下文向量进行拼接作为新的输入,如果情感向量是静态不变的那么在语句生成的过程中为了考虑情感的影响会导致输出产生比较严重的语法错误,采用一个内部记忆网络模块来捕获情感的动态变化,情感状态将会随着语句的生成逐渐减弱,当语句生成完成时情感状态的值将会衰减到0,依靠内部记忆模块无法显示情感状态与当前步所选词汇之间的关系,通过构建了一个外部记忆模块,通过训练出不同的情感词和非情感词的生成概率分布来显式的表达情感。

进一步地,所述步骤s3中多轮对话与单轮对话的区别在于对于人类对话而言,不只考虑当前对话的问题还考虑前几轮对话对当前对话的影响,而每轮对话编码完之后会生成一个上下文向量,将每轮对话的上下文向量作为一个新的上下文循环神经网络的输入,使得后面的对话会考虑到前面几轮对话的信息,将情感向量与上下文向量进行拼接将前几轮对话的情感状态信息传递给后面的对话。

进一步地,所述步骤s1中,使用nlpcc数据集训练一个文本情感分类器,并使用训练出来的分类器对stc数据集进行自动标注构建所需要的多轮情感对话数据集。

与现有技术相比,本发明技术方案的有益效果是:

本发明通过构建特殊的情感聊天对话语料和提出一种基于层次循环神经网络和内外记忆单元的情感对话生成模型来解决情感因素在大规模多轮对话中的嵌入和应用。内部记忆网络的提出提高了情感表达和语法表达之间的自动均衡,外部记忆网络的提出增加了情感的显式表达,使得模型生成的回答更具情感信息。

附图说明

图1为本发明基于层次循环神经网络和内外记忆单元的情感对话生成法的流程图。

具体实施方式

附图仅用于示例性说明,不能理解为对本专利的限制;

为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;

对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。

下面结合附图和实施例对本发明的技术方案做进一步的说明。

如图1所示,一种基于hred和内外记忆网络单元的情感对话生成方法,包括以下步骤:

s1:准备情感对话系统数据;

s2:对于s1得到的数据集若是单轮对话,利用该单轮对话数据集对编码-解码模型进行训练,其中在解码模块中添加预先训练的情感类别的词向量以及内外记忆单元,模型训练完毕后进行测试;

s3:对于s1中得到的数据集若是多轮对话,利用该多轮对话数据集采用层次循环神经网络模型进行训练,将每轮对话的中间上下文向量与该轮对话的情感向量拼接作为输入另构建一层循环神经网络,模型训练完毕后进行测试,给定一句话和接下来两句话的情感标签,可以生成接下来两轮对话的语句。

步骤s1中训练文本情感分类器的模型对比基于词汇的情感分析,选择bi-lstm模型,该模型在测试集上的准确率为0.623。

步骤s2中情感类别的词向量是经过单独训练的,解码阶段是原始输入与情感向量和上下文向量进行拼接作为新的输入,如果情感向量是静态不变的那么在语句生成的过程中为了考虑情感的影响会导致输出产生比较严重的语法错误,采用一个内部记忆网络模块来捕获情感的动态变化,情感状态将会随着语句的生成逐渐减弱,当语句生成完成时情感状态的值将会衰减到0,依靠内部记忆模块无法显示情感状态与当前步所选词汇之间的关系,通过构建了一个外部记忆模块,通过训练出不同的情感词和非情感词的生成概率分布来显式的表达情感。

步骤s3中多轮对话与单轮对话的区别在于对于人类对话而言,不只考虑当前对话的问题还考虑前几轮对话对当前对话的影响,而每轮对话编码完之后会生成一个上下文向量,将每轮对话的上下文向量作为一个新的上下文循环神经网络的输入,使得后面的对话会考虑到前面几轮对话的信息,将情感向量与上下文向量进行拼接将前几轮对话的情感状态信息传递给后面的对话。

步骤s1中,使用nlpcc数据集训练一个文本情感分类器,并使用训练出来的分类器对智能客服聊天数据集进行自动标注构建所需要的多轮情感对话数据集。

利用本方法进行微博爬取进行实际运用的过程如下:

s1:根据训练出来的情感分类器对语料进行自动标注。

对s1进一步说明:在上述技术方案中,步骤1中的语料为从开源网站获取的智能客服聊天数据集,由于智能客服聊天数据集中句子之间的关系三句以内联系比较紧密,且多轮对话的技术模型可以用三轮对话来模拟,本发明采用的语料为由连续三个对话的句子构成的数据集。使用额外训练的文本分类器对语料进行标注。

s2:构建情感对话系统模型,进行训练。

对s2进一步说明:首先对训练集进行词向量转换,然后对句子1进行编码,根据其上下文向量1和情感标签,以及内外记忆神经网络模块组合生成句子2,然后句子1和句子2同时作为句子3的上下文生成句子3。

s3:模型训练完毕后进行测试,给定一句话和接下来两句话的情感标签,可以生成接下来两轮对话的语句。

对s3进一步说明:进行测试时,给定某一句话,和两组不同的情感标签,比如(高兴,高兴)和(难过,生气),生成的两轮对话将会体现出不同的情感状态。

相同或相似的标号对应相同或相似的部件;

附图中描述位置关系的用于仅用于示例性说明,不能理解为对本专利的限制;

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1