本文作者:kaifamei

一种增强文本特征的对话生成方法和系统

更新时间:2025-12-22 03:19:55 0条评论

一种增强文本特征的对话生成方法和系统



1.本发明涉及人机对话领域,特别涉及增强对话特征表达的开放领域生成模型,具体涉及一种增强文本特征的对话生成方法和系统。


背景技术:



2.人机对话主要分为面向任务和非任务的对话(开放领域)应用系统。与任务型的对话系统相比,开放领域的对话系统不需要执行特定的任务,所生成的回复相较任务型也更随意。聊天机器人目前可分为三种类型,即检索式,生成式和知识图谱式。检索式的聊天机器人利用排序和匹配等技术从已有的对话语料库中抽取最合适的回复,但这种方法只能生成语料库中存在的文本,无法实现对话的多样性,若语料库中的对话较多,生成回复的速度就会变慢,影响聊天的体验感。
3.随着端到端深度学习模型的深入发展,开放领域的对话系统模型已经解决相应部分问题,使所生成的对话回复更为丰富。其中,生成式的聊天机器人所使用的端到端的编码器解码器模型,通过将对话编码为特定的特征向量,由解码器从词表中采样得到生成对话的每一个词,使生成语料库中没有的对话得以生成,弥补了检索式对话只能按照语料库的模板生成对话的缺陷,使得回复更加丰富。但由于该生成模型从词表中采样,然后再将采样得到的词按采样顺序组合成回复的句子,对对话特征的表示不够完整,使得它极易产生低质量或不相关的语义反应。
4.以seq2seq模型为例详细说明这类问题,seq2seq是最早的端到端生成模型,对文本生成领域做出了重大的贡献。后续的聊天机器人基本都是基于seq2seq的范式。其包含两个循环神经网络(rnn),分别是编码器和解码器。编码器将输入序列编码为语义向量,解码器则将语义向量解码为输出序列。而rnn编码序列和解码序列都必须以自回归的方式从左到右依次进行,难以并行,处理长序列时间复杂度高。同时rnn难以建立长距离的上下文依赖模型,导致提取到的特征缺失了重要信息。
5.现有深度模型对文本序列中不同位置的单词的关注度是一样的。虽然现在有注意力机制来解决文本序列中单词权重的问题,但是现在的对话系统模型仍然以生成文本与参考文本的最大似然函数作为优化函数,而缺乏专门的优化函数来学习注意力权重,导致模型学习到的不同单词之间的重要性权重不准确。如果不使用注意力机制又会导致所有单词在文本特征中的权重相同,从而不符合开放式对话的场景。


技术实现要素:



6.为解决现有生成式模型不能完全表征对话文本的特征、循环神经网络造成特征缺失、文本序列中所有单词在文本特征中权重相同导致极易生成一些通用的或者语义不准确的对话回复的问题,本发明提供了一种增强文本特征的对话生成方法和系统。
7.在第一方面,本发明提供了一种增强文本特征的对话生成方法,包括以下步骤:
8.s1.获取问题文本和回复文本,通过textrank算法提取问题文本中的关键词,得到
关键词序列;通过输入编码器获取问题文本的问题文本向量;
9.s2.引入关键词编码器,关键词编码器通过注意力机制对关键词序列进行编码得到关键词向量;
10.s3.将关键词向量与语义向量拼接后输入第一多层感知机,得到包含丰富语义的关键词语义向量;
11.s4.将关键词语义向量与问题文本向量拼接后通过第二多层感知机,得到输入向量;
12.s5.根据输入向量和回复文本训练对话生成模型,采用损失函数计算损失值并反向传播,调整对话生成模型的参数;
13.s6.将待回复文本输入训练好的对话生成模型中生成对话。
14.进一步的,步骤s4还包括:
15.采用输出编码器获取回复文本的回复文本向量;
16.将关键词语义向量和问题文本向量拼接后通过第二层感知机,得到第一融合特征,将第一融合特征输入先验网络获取先验分布参数;
17.将关键词语义向量、问题文本向量和回复文本向量拼接后通过第三层感知机,得到第二融合特征,将第二融合特征输入识别网络获取近似后验分布参数;
18.对近似后验分布参数进行重参数化得到隐变量,通过线性变换将隐变量初始化,得到输入向量。
19.进一步的,关键词编码器通过注意力机制对关键词序列进行编码得到关键词向量,包括:
20.h
t
=enc
key
(e(k))
21.enc
key
(e(ki))=lstm(inputi)
[0022][0023][0024]
其中,enc
key
()表示关键词编码器,k=k1,k2,...,k
t
表示关键词序列,ki表示第i个关键词,h
t
表示关键词向量,e()表示计算单词的词向量,inputi表示关键词ki的加权向量,lstm()表示长短时记忆网络lstm,α(e(ki),e(kj))表示关键词ki与关键词kj间的注意力权重,且1≤j<i。
[0025]
进一步的,采用语义编码器获取语义向量,包括:
[0026]hs
=enc
sem
(e(s),(h0,c0))
[0027]
其中,enc
sem
()表示语义编码器,hs表示语义向量,h0表示语义编码器初始隐状态,c0表示语义编码器初始细胞状态,s表示问题文本对应的语义文本。
[0028]
在第二方面,基于第一方面提出的方法,本发明提供了一种增强文本特征的对话生成系统,包括样本模块、关键词提取模块、编码模块、融合模块、训练模块,其中:
[0029]
样本模块,用于获取多组对话样本,对话样本中包括问题文本和回复文本;
[0030]
关键词提取模块,用于在问题文本中提取多个关键词,组成关键词序列;
[0031]
编码模块包括输入编码器、输出编码器、关键词编码器和语义编码器,用于对样本模块和关键词提取模块的数据进行编码;
[0032]
融合模块包括第一融合模块和第二融合模块:
[0033]
第一融合模块,用于融合关键词向量与语义向量得到包含丰富语义的关键词语义向量;
[0034]
第二融合模块,用于融合关键词语义向量与问题文本向量;
[0035]
训练模块,用于训练对话生成模型,采用损失函数计算损失并反向传播,调整对话生成模型的参数。
[0036]
进一步的,还包括第三融合模块、先验网络和识别网络:
[0037]
第三融合模块,用于融合关键词语义向量、问题文本向量和回复文本向量;
[0038]
先验网络,用于接收第二融合模块的输出结果,获取先验分布参数;
[0039]
识别网络,用于接收第三融合模块的输出结果,获取近似后验分布参数。
[0040]
本发明的有益效果:
[0041]
本发明提出了一种增强对话文本特征表达的开放式对话生成方法。采用普通rnn对文本进行编码时,文本的前部分内容易受到忽视,而文本越靠后的内容,其权重越大,故普通rnn无法编码长文本。通过使用lstm可以解决长文本依赖问题,但是文本的所有词之间具有相同的权重;若只使用注意力机制来解决这个问题的话,由于没有专门优化注意力的优化函数,而是借用对话生成的最大似然优化函数,所以极难学习到正确的权重,可能会导致关键文本的权重低,而不关键文本的权重高,从而误导模型优化。所以本发明选择使用关键词抽取方法从文本中显式的提取关键词,并通过注意力机制来编码关键词,而不是整个文本。具体是将使用注意力机制编码后的关键词特征与语义类别特征做注意力计算,然后将结果作为文本特征的一部分,融合到文本特征中。以此来达到增加文本序列中比较关键的词在文本特征中的权重。这样的方法不仅能正确的增强关键文本的权重,还能避免模型学习到错误的权重,造成不关键的词汇占有比较高权重。
附图说明
[0042]
图1为本发明的增强文本特征的对话生成方法流程图;
[0043]
图2为本发明实施例的seq2seq模型示意图;
[0044]
图3为本发明实施例的cave模型示意图。
具体实施方式
[0045]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0046]
本发明提供了一种增强文本特征的对话生成方法和系统,将关键字与类别语义集成以提取语义更加丰富、权重更加准确的特征表示,并将集成后的特征与原始的文本特征融合,得到更高质量的输入特征,训练对话生成模型,得到更高质量的对话。
[0047]
在一实施例中,采用如图2所示的seq2seq模型,描述本发明的增强文本特征的对话生成模型训练方法,如图1所示,包括:
[0048]
s11.获取问题文本c=c1,c2,...,cm和回复文本x=x1,x2,...,xn,cu表示问题文本中的第u∈{1,2,...,m}个词,xv表示回复文本中的第v∈{1,2,...,n}个词,m表示问题文本中的词数量,n表示回复文本中的词数量;通过textrank算法提取问题文本中的关键词,得到关键词序列k=k1,k2,...,k
t
,ki表示第i∈{1,2,...,t}个关键词;
[0049]
s12.通过输入编码器获取问题文本的问题文本向量,语义编码器获取语义向量,表示为:
[0050]hci
,c
ci
=enc
in
(e(ci),(h
ci-1
,c
ci-1
))
[0051]hs
=enc
sem
(e(s),(h0,c0))
[0052]hci
,c
ci
分别表示输入编码器第i步的隐状态和第i步的细胞状态,enc
in
()表示输入编码器,enc
sem
()表示语义编码器,hs表示语义向量,h0表示语义编码器初始隐状态,c0表示语义编码器初始细胞状态,s表示问题文本的语义类别;
[0053]
s13.引入关键词编码器,关键词编码器通过注意力机制对每一个关键词进行编码得到对应的关键词向量;
[0054]
s14.将关键词向量与语义向量拼接后输入第一多层感知机,得到包含丰富语义的关键词语义向量,且一个问题文本对应一个语义向量,表示为:
[0055]
h'=mlp([h
t
:hs])
[0056]
h'表示关键词语义向量,h
t
表示关键词向量,hs表示语义向量,mlp()表示第一多层感知机;
[0057]
s15.将关键词语义向量与问题文本向量拼接后通过第二多层感知机,得到输入向量,表示为:
[0058][0059]
表示解码器的输入向量,即为解码器的初始隐状态,hm表示问题文本向量,mlp

()表示第二多层感知机;
[0060]
s16.根据输入向量和回复文本训练对话生成模型,采用损失函数计算损失值并反向传播,调整对话生成模型的参数。
[0061]
具体地,如图2所示,解码器的第一个输入是《sos》(start of sentence)标签和初始隐状态,即输入向量后面每一步的输入为回复序列中的单词x
t
和上一步输出的隐状态s
t-1
。最后使用softmax将解码器的输出映射到词表空间,取词表中概率最大的单词为生成的结果,表示为:
[0062]st
=dec(s
t-1
,e(x
t
));
[0063][0064]st
表示解码器第t步的隐状态,dec()表示解码器,表示解码器第t步生成的单词,mlp()表示通过多层感知机映射输出到词表空间;
[0065]
具体地,基于seq2seq的对话生成模型使用交叉熵作为损失函数,表示为:
[0066]
[0067]
x表示参考回复文本,表示解码器生成文本。
[0068]
在一实施例中,采用如图3所示的cvae模型,描述本发明的增强文本特征的对话生成模型训练方法,包括:
[0069]
s21.获取问题文本c=c1,c2,...,cm和回复文本x=x1,x2,...,xn,cu表示问题文本中的第u∈{1,2,...,m}个词,xv表示回复文本中的第v∈{1,2,...,n}个词,m表示问题文本中的词数量,n表示回复文本中的词数量;通过textrank算法提取问题文本中的关键词,得到关键词序列k=k1,k2,...,k
t
,ki表示第i∈{1,2,...,t}个关键词;
[0070]
s22.通过输入编码器获取问题文本的问题文本向量,语义编码器获取语义向量,输出编码器获取回复文本的回复文本向量,表示为:
[0071]hci
,c
ci
=enc
in
(e(ci),(h
ci-1
,c
ci-1
))
[0072]hxi
,c
xi
=enc
out
(e(xi),(h
xi-1
,c
xi-1
))
[0073]hs
=enc
sem
(e(s),(h0,c0))
[0074]hci
,c
ci
分别表示输入编码器第i步的隐状态和第i步的细胞状态,h
xi
,c
xi
分别表示输出编码器第i步的隐状态和第i步的细胞状态,enc
out
()表示输出编码器,enc
in
()表示输入编码器,enc
sem
()表示语义编码器,hs表示语义向量,h0表示语义编码器初始隐状态,c0表示语义编码器初始细胞状态,s表示问题文本的语义类别;
[0075]
s23.引入关键词编码器,关键词编码器通过注意力机制对每一个关键词进行编码得到对应的关键词向量;
[0076]
s24.将关键词向量与语义向量拼接后输入第一多层感知机,得到包含丰富语义的关键词语义向量,表示为:
[0077]
h'=mlp([h
t
:hs])
[0078]
h'表示关键词语义向量,h
t
表示关键词向量,hs表示语义向量,mlp()表示第一多层感知机;
[0079]
s25.将关键词语义向量与问题文本向量拼接后通过第二多层感知机,得到第一融合特征,将第一融合特征输入先验网络获取先验分布参数;
[0080]
s26.将关键词语义向量、问题文本向量和回复文本向量拼接后通过第三层感知机,得到第二融合特征,将第二融合特征输入识别网络获取近似后验分布参数;
[0081]
s27.对近似后验分布参数进行重参数化得到隐变量,通过线性变换将隐变量初始化,得到输入向量;
[0082]
s28.根据输入向量和回复文本训练对话生成模型,采用损失函数计算损失值并反向传播,调整对话生成模型的参数。
[0083]
具体地,基于cvae的对话生成模型使用重构损失和kl距离作为损失函数,表示为:
[0084][0085]
其中,q
φ
(z|x,c,k,s)表示近似后验分布,表示先验分布,表示在近似后验分布下重构回复文本x的期望,kl表示求两个分布的kl散度,x表示回复文本,c表示问题文本,k表示关键词文本,s表示语义文本,z表示隐变量。
[0086]
在一实施例中,关键词编码器通过注意力机制对每一个关键词进行编码得到对应的关键词向量,包括:
[0087]ht
=enc
key
(e(k))
[0088]
enc
key
(e(ki))=lstm(inputi)
[0089][0090][0091]
其中,enc
key
()表示关键词编码器,k=k1,k2,...,k
t
表示关键词序列,ki表示第i个关键词,h
t
表示关键词编码器第t步的隐状态,在本实施例中也为关键词向量,e()表示计算词向量,inputi表示关键词ki的加权向量,lstm()表示长短时记忆网络lstm,α(e(ki),e(kj))表示关键词ki与关键词kj间的注意力权重,且1≤j<i。
[0092]
在一实施例中,本发明提供了一种增强文本特征的对话生成系统,包括样本模块、关键词提取模块、编码模块、融合模块、训练模块,其中:
[0093]
样本模块,用于获取多组对话样本,对话样本中包括问题文本和回复文本;
[0094]
关键词提取模块,用于在问题文本中提取多个关键词,组成关键词序列;
[0095]
编码模块包括输入编码器、输出编码器、关键词编码器和语义编码器,用于对样本模块和关键词提取模块的数据进行编码;
[0096]
融合模块包括第一融合模块和第二融合模块:
[0097]
第一融合模块,用于融合关键词向量与语义向量得到包含丰富语义的关键词语义向量;
[0098]
第二融合模块,用于融合关键词语义向量与问题文本向量;
[0099]
训练模块,用于训练对话生成模型,采用损失函数计算损失并反向传播,调整对话生成模型的参数。
[0100]
具体地,该系统还包括第三融合模块、先验网络和识别网络:
[0101]
第三融合模块,用于融合关键词语义向量、问题文本向量和回复文本向量;
[0102]
先验网络,用于接收第二融合模块的输出结果,获取先验分布参数;
[0103]
识别网络,用于接收第三融合模块的输出结果,获取近似后验分布参数。
[0104]
表1带有行为标签的dailydialogs数据集评估结果
[0105][0106]
表2带有情感标签的dailydialogs数据集评估结果
[0107][0108]
表3带有情感标签的empatheticdialogues数据集评估结果
[0109][0110]
表1,2,3展示了我们的模型和其余模型的自动评估结果。表1展示了在dailydialog dataset数据集中使用动机语义的结果。表2展示了在dailydialog dataset数据集中使用情感语义的结果。表3展示了在empatheticdialogues dataset数据集中使用情感语义的结果。
[0111]
可以看到我们的模型在3个不同的数据集上都取得了不错的效果。我们的模型在bleu和meteot上都是优于其他的比较模型的,在rouge上仅仅低于transformer。这说明我们的模型能够生成更高质量的对话文本,尤其是在不同数据集上都得到了提升,所以我们的方法是有不错的泛化能力的。但是在加入了我们的方法后,模型的error bar变高了,这说明加入了我们的方法虽然能够提升对话模型的生成效果,但是却会使模型变得更加复杂,从而模型的波动变大。
[0112]
在本发明中,除非另有明确的规定和限定,术语“安装”、“设置”、“连接”、“固定”、“旋转”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0113]
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

技术特征:


1.一种增强文本特征的对话生成方法,其特征在于,包括以下步骤:s1.获取问题文本和回复文本,通过textrank算法提取问题文本中的关键词,得到关键词序列;通过输入编码器获取问题文本的问题文本向量;s2.引入关键词编码器,关键词编码器通过注意力机制对关键词序列进行编码得到关键词向量;s3.将关键词向量与语义向量拼接后输入第一多层感知机,得到包含丰富语义的关键词语义向量;s4.将关键词语义向量与问题文本向量拼接后通过第二多层感知机,得到输入向量;s5.根据输入向量和回复文本训练对话生成模型,采用损失函数计算损失值并反向传播,调整对话生成模型的参数;s6.将待回复文本输入训练好的对话生成模型中生成对话。2.根据权利要求1所述的一种增强文本特征的对话生成方法,其特征在于,步骤s4还包括:采用输出编码器获取回复文本的回复文本向量;将关键词语义向量和问题文本向量拼接后通过第二层感知机,得到第一融合特征,将第一融合特征输入先验网络获取先验分布参数;将关键词语义向量、问题文本向量和回复文本向量拼接后通过第三层感知机,得到第二融合特征,将第二融合特征输入识别网络获取近似后验分布参数;对近似后验分布参数进行重参数化得到隐变量,通过线性变换将隐变量初始化,得到输入向量。3.根据权利要求1所述的一种增强文本特征的对话生成方法,其特征在于,关键词编码器通过注意力机制对关键词序列进行编码得到关键词向量,包括:h
t
=enc
key
(e(k))enc
key
(e(k
i
))=lstm(input
i
))其中,enc
key
()表示关键词编码器,k=k1,k2,...,k
t
表示关键词序列,k
i
表示第i个关键词,h
t
表示关键词向量,e()表示计算单词的词向量,input
i
表示关键词k
i
的加权向量,lstm()表示长短时记忆网络lstm,α(e(k
i
),e(k
j
))表示关键词k
i
与关键词k
j
间的注意力权重,且1≤j<i。4.根据权利要求1所述的一种增强文本特征的对话生成方法,其特征在于,采用语义编码器获取语义向量,包括:h
s
=enc
sem
(e(s),(h0,c0))其中,enc
sem
()表示语义编码器,h
s
表示语义向量,h0表示语义编码器初始隐状态,c0表示语义编码器初始细胞状态,s表示问题文本对应的语义文本。
5.一种增强文本特征的对话生成系统,其特征在于,包括样本模块、关键词提取模块、编码模块、融合模块、训练模块,其中:样本模块,用于获取多组对话样本,对话样本中包括问题文本和回复文本;关键词提取模块,用于在问题文本中提取多个关键词,组成关键词序列;编码模块包括输入编码器、输出编码器、关键词编码器和语义编码器,用于对样本模块和关键词提取模块的数据进行编码;融合模块包括第一融合模块和第二融合模块:第一融合模块,用于融合关键词向量与语义向量得到包含丰富语义的关键词语义向量;第二融合模块,用于融合关键词语义向量与问题文本向量;训练模块,用于训练对话生成模型,采用损失函数计算损失并反向传播,调整对话生成模型的参数。6.根据权利要求5所述的一种增强文本特征的对话生成系统,其特征在于,还包括第三融合模块、先验网络和识别网络:第三融合模块,用于融合关键词语义向量、问题文本向量和回复文本向量;先验网络,用于接收第二融合模块的输出结果,获取先验分布参数;识别网络,用于接收第三融合模块的输出结果,获取近似后验分布参数。

技术总结


本发明涉及人机对话领域,具体涉及一种增强文本特征的对话生成方法和系统;该方法包括获取问题文本和回复文本,通过TextRank算法提取问题文本中的关键词,得到关键词序列;引入关键词编码器,关键词编码器通过注意力机制对每一个关键词进行编码得到对应的关键词向量;将关键词向量与语义向量拼接后输入第一多层感知机,得到包含丰富语义的关键词语义向量;将关键词语义向量与问题文本向量拼接后通过第二多层感知机,得到输入向量;根据输入向量训练对话生成模型,采用损失函数计算损失值并反向传播,调整对话生成模型的参数;本发明加强关键词的权重,增强对文本的特征表达,达到生成更高质量的对话文本的目的。生成更高质量的对话文本的目的。生成更高质量的对话文本的目的。


技术研发人员:

王烨 廖靖波 于洪 雷大江 黄昌豪 杨峻杰 卞政轩

受保护的技术使用者:

重庆邮电大学

技术研发日:

2022.10.11

技术公布日:

2022/12/19


文章投稿或转载声明

本文链接:http://www.wtabcd.cn/zhuanli/patent-1-56636-0.html

来源:专利查询检索下载-实用文体写作网版权所有,转载请保留出处。本站文章发布于 2022-12-22 13:14:09

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论