基于变分自编码器的融入知识和感情的端到端对话方法与流程

文档序号:30364662发布日期:2022-06-10 22:27阅读:155来源:国知局
基于变分自编码器的融入知识和感情的端到端对话方法与流程

1.本发明属于自然语言处理领域,特别涉及文本生成和对话系统,尤其涉及一种基于变分自编码器的融入知识和感情的端到端对话方法。


背景技术:

2.1950年,阿兰图灵在《computing machinery and intelligence》中提出了图灵测试作为检测机器人能否像人一样聊天的方法。图灵测试可以表述为让测试者与被测试者(一个人和一台机器)隔开,通过一些装置(如键盘)向被测试者随意提问。进行多次测试后,如果有超过30%的测试者不能确定出被测试者是人还是机器,那么这台机器就通过了测试,并被认为具有人工智能。图灵提出了一个检验聊天机器人是否拥有智能的标准。可以认为这是研究聊天机器人的开端。
3.1966年,麻省理工大学的joseph weizenbaum开发了一个名为eliza的对话机器人,它是一个心理治疗师,通过和用户对话帮助有心理疾病的人。eliza用模式匹配和回复选择的方法实现对话,对话能力有限,只能回答特定领域的问题。eliza作为先驱启发了之后聊天机器人的研究。
4.1972年,出现了名为parry的聊天机器人,它被设计为一个精神分裂症患者。与eliza相比,parry拥有了个性,并且有更好的对话控制结构。然而总体来说parry的语言理解能力较低,不能从对话中学习知识,甚至响应也很慢。
5.1988年,jabberwacky聊天机器人出现,它用cleverscript脚本开发,通过对历史对话记录进行模式匹配来进行回复,表现出了对话记忆能力。
6.1995年,richard wallance开发出了alice。它被认为是聊天机器人发展史上又一个进步。alice与eliza类似,也是基于模板匹配的方法。为了开发alice专门创造了aiml(artificial intelligence markup language)语言。alice包含约41000个模板和相关模式,这使它可以进行多轮次多主体的对话。alice优异的表现获得了2000年和2001年的loebner奖。然而,它依然是基于规则的聊天机器人,谈不上多智能。
7.随着移动互联网和智能手机的普及,聊天机器人有了进一步的发展。2010年苹果手机上线siri语音助手,可以认为是智能手机个人语音助手的先驱。用户通过语音和siri交互,siri可以调用丰富的互联网资源服务于用户。siri也可以根据积累的用户数据向用户推荐合适的商品或服务。
8.2011年,ibm开发的watson机器人在问答节目jeopardy上击败了两位人类冠军选手,展现出了强大的自然语言理解和信息检索能力。2012年google now开始研发,2014年微软推出个人服务助手cortana。同年amazon推出alexa,是一个致力于智能家居和物联网的语音助手。语音助手的研究达到了一波热潮。2014年微软发布了微软小冰聊天机器人,致力于社交场景,拥有自己的人设。它被设定为18岁的少女,拥有iq和eq。她能生成长轮次带感情的回复,并支持多种语言,在发布之后取得了广泛的影响。但是它是一套复杂的系统,不是一个端到端模型。
9.深度学习的兴起对自然语言处理领域产生了深远影响。逐渐出现了基于大规模语料训练模型来生成回复的方法,并取得了良好的效果。在大规模语料上训练的模型能够处理未知的对话,能够处理多轮对话,在生成回复的流畅性和逻辑性上取得了良好的效果。典型的模型如gpt系列,dialogpt,meena,blender和百度的plato系列等。深度学习使得端到端的聊天机器人架构展现出越来越强大的能力。
10.目前的端到端模型可以根据历史对话记录生成可读的回复,但是在生成对话的丰富性上有待加强。如何使模型能够生成指定情感的回复,如何使模型能够参考已有知识生成包含知识的回复是一个值得研究的问题。包含指定情感和相关知识的回复将极大提高回复的质量,改善用户的对话体验。


技术实现要素:

11.针对现有技术不足,本发明提出了基于变分自编码器的融入知识和感情的端到端对话方法。
12.为实现上述技术目的,本发明的技术方案为:本发明实施例的第一方面提供了一种基于变分自编码器的融入知识和感情的端到端对话方法,所述方法包括以下步骤:(1)采集情感标签、对话、知识和回复,并进行预处理,得到训练数据;(2)搭建由变分自编码器模块和拷贝模块组成的模型;所述变分自编码器模块包括编码器和解码器;编码器用于对情感标签、对话的语义信息进行编码,得到对话编码矩阵;解码器包括编码端和解码端,用于结合知识生成知识编码矩阵,再结合知识编码矩阵自回归生成解码向量和预测情感标签;拷贝模块利用变分自编码器模块生成的对话编码矩阵和知识编码矩阵结合当前的解码向量更新状态向量;利用更新后的状态向量再结合对话编码矩阵、知识编码矩阵预测生成输出回复;(3)将步骤(1)预处理后的训练数据输入步骤(2)构建的模型进行训练模型并保存;(4)采集情感标签和对话,选取知识,将情感标签和对话进行包括拼接在内的预处理,得到预测数据;(5)将步骤(4)预处理后的预测数据输入步骤(3)训练好的模型中进行模型预测,得到回复。
13.进一步地,所述步骤(1)和步骤(4)中的预处理包括将情感标签转为独热的类别标签,拼接情感标签和对话;其中拼接情感标签和对话的过程具体为:以分隔符[cls]为开始,之后拼接情感标签和分隔符[sep],之后拼接历史对话,并以[sep]分隔,且长度不超过512。
[0014]
进一步地,模型训练的损失函数公式如下:其中,loss为损失值,em’为预测的情感标签,y’为预测的回复,为t时刻预测的字符,为t时刻的标签字符,为t时刻之前已经预测的字符;u为对话,k为知识,
em为情感标签。
[0015]
进一步地,对话编码矩阵输入前馈神经网络,生成正态分布的均值和方差;将知识输入变分自编码器的解码器的编码端,得到知识编码矩阵;对正态分布进行采样得到采样向量;模型预测生成回复时,将该采样向量加入对话开始字符对应的字嵌入向量中;变分自编码器模块解码器的解码端输出解码矩阵,用于预测生成回复的情感标签。
[0016]
进一步地,拷贝模块将对话编码矩阵进行加权求和得到对话选读向量,将知识编码矩阵进行加权求和得到知识选读向量;将对话选读向量、知识选读向量、状态向量与当前解码器生成的输出向量进行拼接,经过前馈神经网络后得到新的状态向量。
[0017]
进一步地,拷贝模块具有生成模式和拷贝模式;在生成模式下,更新后的状态向量经过线性层生成各个字符的评分;在拷贝模式下,知识编码矩阵中每个输入字符对应的向量经过线性层的映射和激活函数后与更新后的状态向量做内积得到生成该输入字符的评分;对话编码矩阵中每个输入字符对应的向量经过线性层的映射和激活函数后与更新后的状态向量和从正态分布中采样得到的向量的和做内积得到生成该输入字符的概率;结合生成模式和拷贝模式,将各个模式下生成字符的评分相加,归一化后得到模型生成字符的概率。
[0018]
进一步地,所述步骤(5)具体为:基于模型生成字符的概率,采用贪心搜索或集束搜索选取字符,生成回复;直至生成[cls]、[sep]、开始符或结束符,完成回复的生成;将变分自编码器模块解码器的解码端输出的解码矩阵经平均池化后输入前馈神经网络得到预测的情感标签;将模型生成的回复给用户后,用户回复新的内容;将模型生成的回复和用户的新回复拼接到对话中;选取新的情感标签拼接到对话前面;选取知识,输入模型,持续进行端到端对话。
[0019]
本发明实施例的第二方面提供了一种用于融入知识和感情的端到端对话的神经网络,包括:变分自编码器模块,所述变分自编码器模块包括编码器和解码器;编码器用于对情感标签、对话的语义信息进行编码,生成对话编码矩阵和正态分布的参数;解码器用于结合知识生成知识编码矩阵,再结合知识编码矩阵自回归生成解码向量和预测情感标签;所述变分自编码器模块中的编码器由若干层编码层组成,采用transformer模型结构实现,为transformer的编码器端;每层编码层包括依次连接的多头注意力层、残差连接、归一化层、线性层、残差连接层和归一化层;变分自编码器模块中的解码器由若干层解码层组成,采用transformer模型结构实现,为transformer模型的编码端和解码端;每层解码层包括依次连接的多头掩码注意力层、残差连接层、归一化层、交叉注意力层、残差连接层、归一化层、线性层、残差连接层和归一化层;拷贝模块,所述拷贝模块利用变分自编码器模块生成的对话编码矩阵和知识编码矩阵结合当前的解码向量更新状态向量;利用更新后的状态向量再结合对话编码矩阵、知识编码矩阵预测生成输出回复。
[0020]
本发明实施例的第三方面提供了一种基于变分自编码器的融入知识和感情的端到端对话装置,包括存储器和处理器,所述存储器与所述处理器耦接;其中,所述存储器用于存储程序数据,所述处理器用于执行所述程序数据以实现上述的基于变分自编码器的融入知识和感情的端到端对话方法。
[0021]
本发明实施例的第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述的基于变分自编码器的融入知识和感情的端到端对话方法。
[0022]
本发明的有益效果为:1、采用变分自编码器结构,通过将情感类型和对话记录编码为特定的正态分布,再从该正态分布中采集样本向量的方式输入解码器以生成丰富的回复。
[0023]
2、将transformer结构用于变分自编码器的解码器结构。transformer的encoder端用于编码知识,将采集的样本向量输入transformer的decoder端用于生成回复。将情感类型、对话和知识的信息进行深度的融合用于生成回复。
[0024]
3、将变分自编码器和transformer结构相结合,使模型能结合知识生成情感可控且多样的回复。
[0025]
4、采用了能从对话和知识拷贝信息的拷贝方式,使得模型具有生成如名字等出现在对话中的低频词的能力,也具有生成如专业术语等出现在知识中的低频词的能力,使生成回复兼具丰富性和可控性。
[0026]
5、能从对话和知识拷贝信息的方式在拷贝对话和知识中的信息时采用了不同的策略。从对话中拷贝信息时融入了从生成的正态分布中采样的样本向量,而从知识中拷贝信息时没有融入该样本向量。该样本向量包含情感标签的信息。从对话中拷贝信息时融入该样本向量以使模型能更多的关注对话中关于情感的特征。从知识中拷贝信息时不融入该样本向量,以使从知识中拷贝信息更客观。
附图说明
[0027]
图1为本发明方法的流程图;图2为本发明所述的整体模型结构图;图3为transformer的encoder结构图;图4为transformer的decoder结构图;图5为拷贝模块结构图;图6为模型运行的示例图;图7为本发明实施例提供的装置的示意图。
具体实施方式
[0028]
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
[0029]
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0030]
下面结合附图,对本发明的基于变分自编码器的融入知识和感情的端到端对话方
法进行详细说明。在不冲突的情况下,下述的实施例及实施方式中的特征可以相互组合。
[0031]
如图1所示,本发明提出的基于变分自编码器的融入知识和感情的端到端对话方法,包括如下步骤:(1)采集情感标签、对话、知识和回复,并进行预处理,得到训练数据。
[0032]
具体地,训练数据包括情感标签、对话、知识和回复。情感标签是表示某种情感的标签,用于控制生成的回复带有该类情感。对话是聊天对话记录。知识是与聊天内容相关的知识信息。回复是根据当前情感标签、对话和知识,模型应该预测生成的输出。
[0033]
例如下述训练数据:情感标签:“疑问”。
[0034]
对话:“我确保人们在水里或水附近不会溺水或受伤”。
[0035]
知识:“在一些地区,救生员是事故应急服务系统的一部分,在一些社区,救生员可能是主要的ems提供者。”。
[0036]
回复:
“ꢀ
在一些地方,救生员是不是还会帮助处理其他紧急情况,比如山区救援”。
[0037]
情感标签:“高兴”。
[0038]
对话:“我确保人们在水里或水附近不会溺水或受伤”。
[0039]
知识:“在一些地区,救生员是事故应急服务系统的一部分,在一些社区,救生员可能是主要的ems提供者。”。
[0040]
回复:
“ꢀ
能从事这种救死扶伤的工作真是太有意义了。”。
[0041]
处理训练数据时,将情感标签转为独热(one-hot)的类别标签。判断模型生成结果的情感类型时用独热的类别标签计算分类损失。例如假设一共有中立、疑问、高兴、悲伤和愤怒这五种情绪,分别对应独热向量[1,0,0,0,0],[0,1,0,0,0],[0,0,1,0,0],[0,0,0,1,0],[0,0,0,0,1]。
[0042]
以分隔符[cls]开始,将对话用[sep]符号进行拼接,并将[cls]符号和情感标签拼接到对话记录之前,得到输入形式如:[cls]情感标签[sep]对话1[sep]对话2[sep]
……
[sep]。该拼接的对话输入变分自编码器的编码器端得到对话编码矩阵。
[0043]
当拼接的对话长度超过512时,之前的对话将被舍弃。例如对话:来访者:老师,您好。我最近心情很是郁闷,内心深处更多的是一种烦躁。我以前的朋友,我们的能力水平几乎是不相上下,有的甚至还不如我呢。而现在,每次大家一起聚餐聊天时,在不知不觉中,我就会感觉到,我们之间的差距越来越大。为此,内心有强烈的挫败感,让我很难接受这样的结果。我并不是见不得别人比我优秀比我好,而是相比之下,我却显得特别失败。
[0044]
咨询师:那你的意思是你不满意自己的现状来访者:是的。大学应该是一个全新的开始,我想只要我努力就能取得好成绩,可是大学两年已经结束了,而我自己却没有预期中的那么努力,现在却是颓废的不行,我上课也听讲,但学习效率不高,心不在焉。对于这种没有状态的自己,我很无奈,所以很想改变。
[0045]
咨询师:你说你现在没有努力的状态,那你以前有没有很努力勤奋的时候呢来访者:嗯,这个肯定有啊。我记得在我初中的时候,爸爸把我转到了一个城市里教学条件比较好的学校,对于新环境新同学新老师,自己总有那种格格不入的感觉。同学和
老师对我的学习能力充满了质疑,所以为了向他们证明我不是差生,也为了不辜负父母的期望,我每天都很勤奋的学习,利用早操的时间背诵单词和课文,充分利用课余时间的每分每秒。终于功夫不负有心人,在第一次月考中我取得了优异的成绩,老师和同学们都对我刮目相看。
[0046]
情感标签为疑问,拼接的输入为:[cls]疑问[sep]那你的意思是你不满意自己的现状 [sep]是的。大学应该是一个全新的开始,我想只要我努力就能取得好成绩,可是大学两年已经结束了,而我自己却没有预期中的那么努力,现在却是颓废的不行,我上课也听讲,但学习效率不高,心不在焉。对于这种没有状态的自己,我很无奈,所以很想改变。[sep]你说你现在没有努力的状态,那你以前有没有很努力勤奋的时候呢 [sep]嗯,这个肯定有啊。我记得在我初中的时候,爸爸把我转到了一个城市里教学条件比较好的学校,对于新环境新同学新老师,自己总有那种格格不入的感觉。同学和老师对我的学习能力充满了质疑,所以为了向他们证明我不是差生,也为了不辜负父母的期望,我每天都很勤奋的学习,利用早操的时间背诵单词和课文,充分利用课余时间的每分每秒。终于功夫不负有心人,在第一次月考中我取得了优异的成绩,老师和同学们都对我刮目相看。[sep]由于长度限制,来访者说的第一句“老师,您好
……”
被舍弃。当单轮对话的长度已经超过512时,截断超出长度的部分以保持拼接的输入长度不超过512。
[0047]
拼接好对话后,将其转化为整数索引向量。知识和回复也用同样的方法转化为整数索引向量。
[0048]
(2)搭建由变分自编码器模块和拷贝模块组成的模型;所述变分自编码器模块包括编码器和解码器;编码器用于对情感标签、对话的语义信息进行编码,得到对话编码矩阵;解码器包括编码端和解码端,用于结合知识生成知识编码矩阵,再结合知识编码矩阵自回归生成解码向量和预测情感标签;拷贝模块利用变分自编码器模块生成的对话编码矩阵和知识编码矩阵结合当前的解码向量更新状态向量;利用更新后的状态向量再结合对话编码矩阵、知识编码矩阵预测生成输出回复。
[0049]
具体地,模型结构如图2所示,模型主要分为两部分:变分自编码器模块和拷贝模块。
[0050]
变分自编码器的编码器如图2左边一列所示。采用transformer模型结构实现,利用transformer的编码器端。本实例采用的transformer的编码器端由6层encoder(编码层)组成。每层编码层encoder的结构如图3所示,输入先后经过多头注意力层,残差连接层,归一化层,线性层,残差连接层,归一化层处理。所述变分自编码器模块包括编码器和解码器;编码器用于对情感标签、对话的语义信息进行编码,得到对话编码矩阵;变分自编码器模块中的编码器输出的对话编码矩阵会经过多层前馈网络预测正态分布的均值和方差;解码器包括编码端和解码端,用于结合知识生成知识编码矩阵,再结合知识编码矩阵自回归生成解码向量和预测情感标签;将知识输入变分自编码器的解码器的编码端,得到知识编码矩阵;对正态分布进行采样得到采样向量;模型预测生成回复时,将该采样向量加入对话开始字符对应的字嵌入向量中;变分自编码器模块解码器的解码端输出解码矩阵,用于预测生成回复的情感标签。
[0051]
其中,变分自编码器的解码器如图2中间和右边一列所示,采用transformer结构
实现。图2中间一列表示transformer的编码端,右边一列表示transformer的解码端。本实例采用6层结构的transformer。transformer编码端的encoder结构如图3所示,解码端的decoder(解码层)如图4所示。decoder的输入先后经过多头掩码注意力层,残差连接层,归一化层,交叉注意力层,残差连接层,归一化层,线性层,残差连接层,归一化层得到输出。当完成回复生成后,transformer解码端的输出会经过多层前馈网络预测输出的情感类型。拷贝模块利用变分自编码器模块生成的对话编码矩阵和知识编码矩阵结合当前的解码向量更新状态向量;利用更新后的状态向量再结合对话编码矩阵、知识编码矩阵预测生成输出回复。
[0052]
其中,拷贝模块的结构如图5所示。将对话编码矩阵进行加权求和得到对话选读向量,将知识编码矩阵进行加权求和得到知识选读向量。之后将对话选读向量、知识选读向量、状态向量和当前时刻解码器生成的输出向量进行拼接,经过前馈神经网络后得到新的状态向量。新的状态向量将用于生成输出。拷贝模块具有生成模式和拷贝模式。
[0053]
在生成模式下,新的状态向量经过线性层生成各个字符的评分。
[0054]
在拷贝模式下,知识编码矩阵中每个输入字符对应的向量经过线性层的映射和激活函数后与新的状态向量做内积得到生成该输入字符的评分。对话编码矩阵中每个输入字符对应的向量经过线性层的映射和激活函数后与新的状态向量和从正态分布中采样得到的向量的和做内积,得到生成该输入字符的评分。
[0055]
将生成模式和拷贝模式下生成的各个字符的评分相加,再除以归一化因子,得到各个字符的生成概率。
[0056]
(3)将步骤(1)预处理后的训练数据输入步骤(2)构建的模型进行训练模型并保存。
[0057]
准备好训练数据,搭建好模型之后,开始训练模型。本发明实施例中,采用teacher forcing的方法训练模型。模型训练的损失函数为生成回复、目标回复的损失与生成回复的情感标签、目标情感标签的损失之和,公式表示如下:其中,loss为损失值,em’为预测的情感标签,y’为预测的回复,为t时刻预测的字符,为t时刻的标签字符,为t时刻之前已经预测的字符;u为对话,k为知识,em为情感标签。
[0058]
训练好模型后保存模型。
[0059]
(4)采集情感标签和对话,选取知识,将情感标签和对话进行包括拼接在内的预处理,得到预测数据。
[0060]
具体地,训练好模型之后,可以利用模型生成回复。将希望生成回复的情感类型和对话记录进行拼接,拼接成[cls]情感标签[sep]对话1[sep]对话2[sep]
……
[sep]的形式。当拼接的对话长度超过512时,之前的对话将被舍弃。当单轮对话的长度已经超过512时,截断超出长度的部分以保持拼接的输入长度不超过512。将拼接的字符串转为整数索引向量。
选取相关知识,相关知识的长度控制在512内,将相关知识转为整数索引向量。
[0061]
(5)将步骤(4)预处理后的预测数据输入步骤(3)训练好的模型中进行模型预测,得到回复。
[0062]
具体为:基于模型生成字符的概率,采用贪心搜索或集束搜索选取字符,生成回复;直至生成[cls]、[sep]、开始符或结束符,完成回复的生成;将变分自编码器模块解码器的解码端输出的解码矩阵经平均池化后输入前馈神经网络得到预测的情感标签;将模型生成的回复给用户后,用户回复新的内容;将模型生成的回复和用户的新回复拼接到对话中;选取新的情感标签拼接到对话前面;选取知识,输入模型,持续进行端到端对话。
[0063]
进一步地,将拼接的对话整数索引向量,相关知识的整数索引向量输入模型,由模型生成回复。
[0064]
具体地,将对话的整数索引向量输入模型变分自编码器的编码器,编码器先将整数索引对应的嵌入向量和位置编码信息相加得到矩阵,用公式表示为:其中为得到结果矩阵,u为拼接的对话整数索引向量,为获取字嵌入矩阵运算,为获取位置编码矩阵运算。
[0065]
获取位置编码矩阵运算通过构造三角函数来表征位置信息,具体的:其中为位置k的编码向量的第2i个分量,为位置k的编码向量的第2i+1个分量,k为位置,i为维度分量。
[0066]
之后将得到的矩阵输入多层encoder得到对话编码输出。计算过程可表示为:其中,为第i层encoder的输出,encoder通过transformer的encoder端编码运算得到,为对话编码矩阵。
[0067]
其中encoder运算输入先后经过多头注意力,残差连接,层归一化,线性层,残差连接,层归一化处理。公式表达如下:
其中为第i层encoder的输入,为中间结果矩阵,为第i层encoder的输出,layernormalization为层归一化。multiheadattention为多头注意力计算,具体计算公式为:其中q、k、v为输入矩阵,concat为向量拼接运算,h为头数,、、为第i头的权重。
[0068]
上述的将拼接的对话整数索引向量经过模型得到对话编码矩阵的过程是transformer的编码过程,这一个过程用公式概括为如下形式:得到对话编码矩阵后,将输入前馈网络层得到正态分布的均值和方差矩阵,公式表示如下:其中m为均值,d为标准差,mlp为多层前馈神经网络。
[0069]
将相关知识的整数索引向量输入变分自编码器的解码器,得到知识编码矩阵。由知识的整数索引向量得到知识编码矩阵的运算,与上述的由拼接的对话整数索引向量得到对话编码矩阵的运算相同,用公式表达如下:其中为知识编码矩阵,k为知识索引向量。
[0070]
得到知识编码矩阵后,开始transformer的解码运算。先从正态分布中采样,再乘以标准差,之后加上均值得到样本向量。公式表达如下:其中s为从标准正态分布中采集的样本,n(0,i)为标准正态分布,m为均值,d为标准差,为元素相乘,b为得到的样本向量。
[0071]
将得到的样本向量加入开始字符串对应的嵌入向量中用于自回归的生成解码向量。具体的,transformer的解码器先将整数索引对应的嵌入向量和位置编码信息相加得到矩阵,如果输入的是开始字符串对应的整数索引,还将加入采样得到的样本向量。用公式表示为:
其中t表示生成的字符的计数,t=0表示开始字符。为生成第t个字符时得到的矩阵,为获取字嵌入矩阵运算,为获取位置编码矩阵运算,为t时刻之前已经生成的字符串,b为采样向量。
[0072]
之后将得到的矩阵输入多层decoder得到解码矩阵。计算过程可表示为:其中decoder输入先后经过多头掩码注意力,残差连接,层归一化,交叉注意力,残差连接,层归一化,线性层,残差连接,层归一化得到输出。公式表达如下:差连接,层归一化,线性层,残差连接,层归一化得到输出。公式表达如下:其中,为生成t时刻字符时第i层decoder的输入,和为生成的中间结果矩阵,为知识编码矩阵,为生成t时刻字符时第i层decoder的输出。为多头注意力计算,与transformer的encoder中的计算相同。为带有掩码的多头注意力计算,具体计算过程为:其中,q、k、v为输入矩阵,concat为向量拼接运算,h为头数,、、为第i头的权重,m为掩码矩阵。
[0073]
把变分自编码器生成的对话编码矩阵、知识编码矩阵、样本向量和解码矩阵输入拷贝模块用于生成输出。拷贝模块结构如图5所示。拷贝模块利用对话编码矩阵、知识编码矩阵和采样向量更新状态向量生成对话选读向量和知识选读向量,再利用状态向量、采样向量、对话选读向量和知识选读向量生成回复字符。
[0074]
拷贝模块通过输入的拼接对话中与上一时刻生成字符相同的字符对应的生成概率进行归一化得到权重,再与对话编码矩阵中各个字符对应的向量加权求和生成对话选读向量。公式表示为:
其中,为归一化因子,为从对话拷贝时生成的概率,为t时刻第i个对话字符对应的权重,为对话编码矩阵中第i个字符对应的向量,为t时刻的对话选读矩阵。
[0075]
以同样的方式生成知识选读向量,拼接知识中与上一时刻生成字符相同的字符对应的生成概率进行归一化得到权重,再与知识编码矩阵中各个字符对应的向量加权求和生成知识选读向量。公式表示为:其中为归一化因子,为从知识拷贝时生成的概率,为t时刻第i个知识字符对应的权重,为知识编码矩阵中第i个字符对应的向量,为t时刻的知识选读向量。
[0076]
得到对话选读向量和知识选读向量后,将上一时刻状态向量,解码矩阵中上一时刻生成的解码向量,对话选读向量和知识选读向量进行拼接,之后输入前馈神经网络得到新的状态向量。公式表示为:得到新的状态向量用于生成回复字符。在生成模式下,新的状态向量经过线性层
映射到字符空间,得到每个字符的评分,即:其中为生成模式的评分函数,为当前时刻生成的字符,为词库中第i个字符,为第i个元素为1,其余元素为0的独热向量,为线性层,为新的状态向量。
[0077]
在拷贝模式下,利用新的状态向量分别从对话和知识中进行拷贝。
[0078]
从对话中拷贝时,对话编码矩阵中每个输入字符对应的向量经过线性层的映射和激活函数后与新的状态向量和从正态分布中采用得到的向量的和做内积得到生成该输入字符的评分。
[0079]
具体地:其中为从对话中拷贝时的评分函数,为当前时刻生成的字符,为拼接对话中第i个字符,为拼接对话中第i个字符对应的编码向量,为线性层,为激活函数,为新的状态向量,b为采样向量。
[0080]
从知识中拷贝时,知识编码矩阵中每个输入字符对应的向量经过线性层的映射和激活函数后与新的状态向量做内积得到生成该输入字符的评分。具体的:其中,为从知识中拷贝时的评分函数,为当前时刻生成的字符,为知识中第i个字符,为知识中第i个字符对应的编码向量,为线性层,为激活函数,为新的状态向量。
[0081]
结合模型的词库,输入对话的字符集和输入知识的字符集,得到归一化因子:其中z为归一化因子,v为字符,为模型的词库,unk为未知字符,为生成模式的评分函数,为从对话中拷贝时的评分函数,为从知识中拷贝时的评分函数。
[0082]
将各个模式下的评分除以归一化因子得到生成字符的概率。具体的,生成模式下生成字符的概率为:
从对话中拷贝字符的概率为:从知识中拷贝字符的概率为:结合生成模式和拷贝模式,模型生成字符的概率为各个模式下生成字符的概率和,具体表示为:其中,为生成模式生成的概率,为从输入对话中拷贝的概率,为从知识中拷贝的概率,为t时刻生成的字符,为t时刻的状态向量,为t-1时刻生成的字符,为变分自编码器的编码器模块输出的对话编码矩阵,为变分自编码器的解码器transformer的encoder端输出的知识编码矩阵,b为采样样本,g表示生成模式,c表示拷贝模式。
[0083]
模型输出各个字符的概率后,可以采用贪心搜索、集束搜索等方法选取字符,各种方法有各自的优点,本实施用例采用简洁的贪心搜索选取生成字符,即选概率最大的字符作为生成字符。
[0084]
模型自回归的生成回复,直到生成[cls]、[sep]、开始符或结束符时停止生成。若一直没有生成[cls]、[sep]、开始符或结束符,则生成回复长度等于设置的阈值时停止生成。设置的阈值应小于512。
[0085]
自回归的生成回复完成后,将变分自编码器的解码器生成的解码矩阵做平均池化后输入前馈神经网络预测回复的情感标签,公式表达如下:其中em’为预测的情感标签,为第6层transformer的decoder的输出,即解码矩阵。avgpool为平均池化运算。
[0086]
模型生成的输出回复给用户后,用户回复新的内容。将模型的输出和用户的新回复拼接到之前的对话记录中,并将情感标签设为新的标签得到新的拼接对话。选取新的知
识,将新的拼接对话和知识输入模型得到模型回复。如此循环便可以与用户进行持续对话。
[0087]
模型运行的一个示例如图6所示。示例中变分自编码器的编码器采用了bert模型。输入情感标签“疑问”,输入对话“我确保人们在水里或水附近不会溺水或受伤”和输入相关知识“在一些地区,救生员是事故应急服务系统的一部分,在一些社区,救生员可能是主要的ems提供者。”。模型输出回复
“ꢀ
在一些地方,救生员是不是还会帮助处理其他紧急情况,比如山区救援”。模型预测的情感标签为“疑问”。模型生成了与输入知识相关,且带有疑问情感的回复,与输入情感标签要求的一致。模型预测的情感标签也与输入情感标签一致。
[0088]
将情感标签换成“高兴”,输入的拼接对话变为[cls]高兴[sep] 我确保人们在水里或水附近不会溺水或受伤[sep]。输入的相关知识保持不变。模型输出回复“太棒了,能从事这种救死扶伤的职业真是光荣。”,模型预测的情感标签为“高兴”。一个多轮对话的示例为: 输入情感标签“疑问”,输入对话“你好”,拼接的对话为[cls]疑问[sep]你好[sep]。输入相关知识“心理咨询师是指运用心理学以及相关知识,遵循心理学原则,通过心理咨询的技术与方法,帮助求助者解除心理问题的专业人员。心理咨询师遵循的七个原则是保密性原则、理解性原则、时限性原则、助人自助原则、“来者不拒、去者不追”原则、客观中立和无条件积极关注原则、重大决定拖延原则。”。模型生成回复“请坐,你以前有没有过心理咨询的经验呢”,预测的情感标签为“疑问”。用户回答“没有。我想问一个问题,我们的谈话会不会被人听到啊”,希望模型生成中立的回复。将情感标签设置为中立,将用户回复拼接到对话后面,得到拼接的输入“[cls]中立[sep]你好[sep] 请坐,你以前有没有过心理咨询的经验呢 [sep] 没有。我想问一个问题,我们的谈话会不会被人听到啊 [sep]”,输入知识保持不变,即输入知识“心理咨询师是指运用心理学以及相关知识,遵循心理学原则,通过心理咨询的技术与方法,帮助求助者解除心理问题的专业人员。心理咨询师遵循的七个原则是保密性原则、理解性原则、时限性原则、助人自助原则、“来者不拒、去者不追”原则、客观中立和无条件积极关注原则、重大决定拖延原则。”。模型生成回复“请你相信我,心理咨询师首要原则就是保密,而且这个咨询室隔音效果很好,不会被人听到。”,模型预测情感标签为“中立”。
[0089]
与前述基于变分自编码器的融入知识和感情的端到端对话方法的实施例相对应,本发明还提供了发明名称装置的实施例。
[0090]
参见图7,本发明实施例提供的一种基于变分自编码器的融入知识和感情的端到端对话装置,包括一个或多个处理器,用于实现上述实施例中的基于变分自编码器的融入知识和感情的端到端对话方法。
[0091]
本发明基于变分自编码器的融入知识和感情的端到端对话装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图7所示,为本发明基于变分自编码器的融入知识和感情的端到端对话装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图7所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常
根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
[0092]
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0093]
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0094]
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的基于变分自编码器的融入知识和感情的端到端对话方法。
[0095]
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备,例如所述设备上配备的插接式硬盘、智能存储卡(smart media card,smc)、sd卡、闪存卡(flash card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
[0096]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1