[发明专利]一种用于强化回复个性化表达的开放域对话方法有效
| 申请号: | 202010950990.0 | 申请日: | 2020-09-11 |
| 公开(公告)号: | CN112100350B | 公开(公告)日: | 2022-02-08 |
| 发明(设计)人: | 蒋斌;周婉月;杨超 | 申请(专利权)人: | 湖南大学 |
| 主分类号: | G06F16/332 | 分类号: | G06F16/332;G06F16/33;G06Q50/12;G06N3/04 |
| 代理公司: | 长沙新裕知识产权代理有限公司 43210 | 代理人: | 梁小林 |
| 地址: | 410082 湖*** | 国省代码: | 湖南;43 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 用于 强化 回复 个性化 表达 开放 对话 方法 | ||
1.一种用于强化回复个性化表达的开放域对话方法,其特征在于:
包括一对拥有相同编码器-解码器骨干的子网络,由Context-Dominated Network,简写为CDNet和Persona-Dominated Network,简写为PDNet两个子网络构成;
CDNet是一个基于记忆网络的对话生成模型,主要用来学习从个性化档案中选择个性的能力,并且保证生成的回复与用户输入消息在语义上相关联;
PDNet在学习的过程中直接根据一条预先给出的个性文本标签生成回复,主要用来学习将一条个性充分表达在回复中的能力;
CDNet与PDNet两个子网络通过多任务学习的方式交替训练,在交替训练的过程中更新编码器-解码器骨干的参数,从而让整个模型获得两个子网络在训练过程中学习到的个性化选择与个性化嵌入的能力;
CDNet和PDNet通过多任务训练的方式在训练阶段更新编码器和解码器的参数;分别使用两个独立的任务来训练这两个网络:
Context-Dominated任务采用{X,Y,P}训练样本来训练CDNet;{X,Y,P}表示Context-Dominated task的一条训练样本,其中X表示用户输入消息,Y表示用户输入消息对应的回复,P是个性化档案,由一组个性化文本组成;
Context-Dominated任务采用{X,Y,P}训练样本来训练CDNet;{X,Y,P}表示Context-Dominated task的一条训练样本,其中X表示用户输入消息,Y表示用户输入消息对应的回复,P是个性化档案,由一组个性化文本组成;
Persona-Dominated任务采用训练样本来训练PDNet;
表示Persona-Dominated task的一条训练样本,其中表示一组与当前用户消息同类的用户输入消息,Y表示当前用户输入消息对应的回复,p*是从个性化档案P中选出的一条与当前对话关联的个性化文本;
在每个训练批次中,所有的训练数据只从一个任务中采样,对于每一个训练批次,从这两个任务中随机选择一个任务,其中Persona-Dominated任务的概率为γ,Context-Dominated任务的概率为1-γ;在整个训练过程中,两个网络的编码器-解码器骨干共享参数。
2.根据权利要求1所述的一种用于强化回复个性化表达的开放域对话方法,其特征在于,包括以下步骤:
步骤1,通过逐点互信息PMI预测用户输入消息中的特定单词集合Q,给定一个输入样本{X,Y,P},其中X=(x1...xn)是一条包含n个词的用户输入消息,个性化档案由一组个性化文本组成;对于X中的单词wx和P中的单词wp,单词wx针对个性化档案P的PMI(wx,P)得分计算如下:
通过设置PMI得分阈值为3.5并将特定单词的最大数量限制为5来选择特定单词;
步骤2,对于一个对话生成任务,给定一个用户输入消息X=(x1...xn)和个性化档案其中xi表示X的第i个单词,yi表示Y的第i个单词,pi是个性化档案的第i条个性化文本;对话模型的目的是生成一个与给出的个性化档案P一致的回复Y=(y1...ym);对话生成任务可以简述为:
对话生成任务是基于序列到序列(Seq2Seq)框架实现的,该框架包括编码器和解码器两个部分;对于一个基于门控循环单元GRU的序列到序列对话生成模型,其对话生成过程具体如下:
先将对话上下文编码成向量,编码器的目的是将一个句子S编码为一个隐层变量序列,定义u(S),h(S)=Encode(S),其中u(S)表示GRU的最终时间步的隐层状态,h(S)=(h1,...,hn)表示GRU单元在所有时间步的输出;
编码过程结束后进行解码生成回复,解码器将句子的上下文向量ct和前一个时间步解码得到的词yt-1的词向量作为输入,用另一个GRU单元更新当前时间步的隐层变量st:
st=GRU([e(yt-1);ct],st-1).
其中,ct是用户输入消息在t时间步的上下文向量,在解码过程中动态关注上下文信息;
e(yt-1)是前一个时间步解码得到的词yt-1的词向量;
ct由解码器中上一个时间步的隐层变量st-1和用户输入消息的编码输出h(S)使用注意力机制得到,该过程定义为ct=Attention(st-1,h(S));注意力机制的具体过程为:
ei=MLP(st-1,hi), (4)
一旦获得当前时间步的隐层变量向量st,解码器就会根据词汇表上的输出概率分布生成一个单词yt:
yt~ot=softmax(st,ct). (7)
步骤21,模型的子网络CDNet基于一条用户输入消息X和一组个性化输入文本生成回复,CDNet需要在这组个性化文本中选出一条合适的个性pi并且在生成的回复中嵌入pi;CDNet是基于序列到序列(Seq2Seq)框架设计的,CDNet的对话生成过程如下:
首先使用一个用户输入消息编码器和个性编码器分别将用户输入消息X和个性化档案P={p1,p2,...,pM}中的每一条个性化文本pi转换为向量表示:
u(X),h(X)=Encode(X); (8)
同时通过以下方式计算用户输入消息X中个特定单词的向量表示:
q=∑w∈QΨ(w), (10)
其中Q表示用户输入消息中的特定单词的集合,而Ψ(·)将单词转换成词向量;
再通过拼接u(X)和q来获得个性感知向量z;
使用z结合一个多层的记忆网络来选择一条个性化文本:
mk+1=ok+mk, (13)
其中,k表示记忆网络的层数,且m1=zT,具体而言,使用网络层数为3的记忆网络并在记忆网络的最后一层中选择概率最高的个性作为个性文本标签:其中
记忆网络在CDNet中使用的具体过程:
个性感知向量z的转置m1作为记忆网络中第一层网络的输入,与每一个个性文本的向量表示做相关度计算得到与每条个性的相关度其中i=1,...,M;第一层网络输出的相关度与每个个性文本的向量表示做加权和得到第一层网络的输出向量o1,o1与m1相加得到第二层网络输入m2;依次类推直到得到第三层网络中每条个性化文本的相关度其中i=1,...,M;
编码完成后进入解码过程,在解码过程中,通过注意力机制动态获取用户输入消息和个性化文本的上下文向量:
ct=Attention(st-1,h(X)), (15)
解码器根据用户输入消息和个性化文本的上下文向量更新隐层状态:
得到新的隐层状态st后,根据st计算出解码时间步的概率分布,以生成下一个单词yt;
步骤22,模型的子网络PDNet,PDNet中的输入与CDNet相比,进行了相应的调整;
首先用特殊符号“<KEY>”替换用户输入消息中的特定单词Q,以将用户输入消息X更改为修订形式之后,检索语料库中与相似的额外K-1条用户输入消息,以构造一个同类消息集合
同时,使用预训练的BERT模型来计算Y与每个个性文本之间的相似度,从而选择具有最高相似度得分的个性文本p*作为当前对话的个性文本标签;
因此,获得新的输入样本
此后,同类消息集合和个性文本标签p*被用户输入消息编码器和个性编码器分别编码:
这些用户输入消息向量通过平均池化操作成为新的向量,表示当前用户输入消息的泛化特征:
在解码过程中,解码器嵌入个性文本标签p*,依次逐字生成回复;解码器在时间t的隐层状态为:
其中是由一系列子注意力机制计算得出的,每个子注意力机制负责关注检索到同类消息;基于st,方程(16)计算出解码时间步的概率分布,以生成下一个单词yt;
步骤3,CDNet和PDNet通过多任务训练的方式在训练阶段更新编码器和解码器的参数;分别使用两个独立的任务来训练这两个网络,两个网络的编码器-解码器骨干共享参数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖南大学,未经湖南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010950990.0/1.html,转载请声明来源钻瓜专利网。





