一种基于知识驱动的多路筛选融合对话生成方法

文档序号:32399271发布日期:2022-12-02 18:27阅读:40来源:国知局
一种基于知识驱动的多路筛选融合对话生成方法

1.本发明属于自然语言处理中对话生成领域,具体涉及一种基于知识驱动的多路筛选融合对话生成方法。


背景技术:

2.对话生成的作用是将机器的语言转化为用户能够理解的自然语言。随着社交媒体的迅速普及积累了海量的对话语料以及计算机算力的迅速提升,引发了深度学习技术的热潮,深度学习技术近年来在人工智能多个领域都取得了非常好的成绩,利用深度学习技术让模型从海量的对话语料中自动学习语言特征,掌握语言能力成为当前对话生成技术研究的热门方向。基于深度学习的对话生成方法不需要提前准备模板或者语料库,而是从大量的对话语料中自动归纳总结对话信息,学习语言能力来生成回复。
3.近年来,许多研究致力于在对话系统中引入外部知识改善生成效果。该任务分为两个重要的子任务:知识选择以及响应生成,恰当的知识对响应生成起到推动作用,不恰当的知识不仅不会提高响应生成的质量甚至会对响应生成起到反作用,因此,如何选择合适的知识是至关重要的一步。zhou等人在2018年提出一种图注意力机制将结构化三元组知识与生成式对话模型结合,通过静态注意力机制融合知识增强编码器语义向量,通过动态注意力机制增强解码器生成效果。lian等人在2019年提出了利用后验知识帮助指导选择合适的知识。zhang 等人在2019年提出一种基于上下文感知的知识预选模型(cake),该模型引入了动态双向注意预选过程,利用历史上下文作为先验信息来选择最相关的背景材料。liu等人在2019年提出了一种知识发散网络,通过事实匹配和事实发散机制来选择知识。
4.专利号为cn113656569a的发明中提及一种基于上下文信息推理的生成式对话方法,首先对获取的输入信息进行数据清洗,并处理为后续模型需要的输入格式,然后引入自注意力机制分别对历史上下文中的重要单词和重要句子进行关注权重计算,得到相应的语义向量表示,并使用该语义向量表示选取与历史上下文相关的外部知识,在解码过程中通过两步解码,分别将筛选的历史上下文信息和选取的外部知识融入回复的成过程中,得到更加准确的高质量回复。然而该发明是根据历史上下文中的重要单词和重要句子来得到外部知识,知识筛选的准确度不高,另外,无法将知识信息与语义信息直接融合。


技术实现要素:

5.解决的技术问题:本发明提出一种基于知识驱动的多路筛选融合对话生成方法,通过设计多路知识筛选模块选择与对话上下文更相关知识使得响应包含更多的信息;另外,利用双向gru将知识信息与语义信息融合,以一种更高效的方式进行响应生成。
6.技术方案:。
7.一种基于知识驱动的多路筛选融合对话生成方法,所述生成方法包括以下步骤:
8.s10,对当前对话的上下文进行包括分词、词嵌入在内的预处理,将预处理结果送入由双向gru组成的话语编码器中对上下文信息进行编码,获取相应的语义向量{hi};i=
1,2,

,n;
9.s20,基于多路知识筛选机制,通过计算步骤s10得到的语义向量信息与知识集合{ki}中每条知识的相似度,从知识集合中选择与当前对话最相关的知识信息ka和kb,融合得到筛选后的知识信息k
′i;
10.s30,基于双向gru神经网络构建知识融合模块,采用知识融合模块将步骤s20得到的知识信息k
′i与步骤s10中获取的上下文的语义信息{hi}融合,借助注意力机制计算得到中间语义向量c
t

11.s40,将步骤s30得到的中间语义向量c
t
和步骤s20中得到的知识信息k
′i一同送入解码器中进行响应的生成。
12.进一步地,步骤s10中,获取相应的语义向量{hi}的过程包括以下步骤:
13.s11,利用nltk工具将包含上下文信息的相关数据进行分词后,借助glove转换成固定维度的词向量;
14.s12,基于双向gru单元构成源句子编码器,将步骤s11的转换结果输送到源句子编码器中,将对话上下文编码成固定维度向量,编码的每一步输出该时间步的隐藏状态,最后一时刻时间步用以表示该上下文的语义信息,将输入上下文编码成一固定长度的语义向量,得到上下文的隐层状态h={h1,h2,

,hn}。
15.进一步地,步骤s20中,从知识集合中选择与当前对话最相关的知识信息ka和kb的过程包括以下步骤:
16.s21,利用余弦相似度,获取上下文信息对应的语义向量与知识集合中每条知识的相似度得分,获取得分最高的知识信息记为ka;
17.s22,根据后验知识信息获取后验知识分布,利用后验知识分布与先验知识分布进行知识的筛选;采用kl散度拉近先验知识分布与后验分布之间的距离,使先验分布不断逼近后验分布,借助先验分布获取相关的知识,将该知识记为kb;其中,根据如下公式获取先验知识分布和后验知识分布:
[0018][0019][0020]
其中,ki为知识集合中的每条知识,x为输入的上下文信息,y为数据集中真实响应信息, kj代表知识集合中的全部知识,j为知识的序列号,n代表知识集合中知识的条数。
[0021]
进一步地,步骤s30中,计算得到中间语义向量c
t
的过程包括以下步骤:
[0022]
s31,根据每条知识信息的相关系数,加权求和获取最终的知识信息表达形式;
[0023]
s32,采用双向gru神经网络对步骤s31获取的知识信息和步骤s10获取的上下文的语义信息{hi}共同进行编码,将筛选后的知识表示k
′i作为双向gru神经网络的初始状态,同时将每一时刻的隐藏状态hi作为双向gru神经网络的每一步输入,得到双向gru的最终状态作为中间语义向量c
t

[0024]
进一步地,步骤s40中,将步骤s30得到的中间语义向量c
t
和步骤s20中得到的知识
信息k
′i一同送入解码器中进行响应的生成的过程包括以下步骤:
[0025]
基于知识语义表达k
′i和中间语义向量c
t
,将每一时间步的解码状态通过全连接网络映射到词表大小的维度,并通过softmax函数计算出候选回复词的概率分布,选择概率最大的词作为当前时间步的回复y
t
,将所有时间步的预测回复联合起来得到最终的预测回复序列y。
[0026]
有益效果:
[0027]
本发明的基于知识驱动的多路筛选融合对话生成方法,针对基于背景知识的对话生成任务,同时考虑知识筛选与响应生成。考虑真实响应中使用的实际知识有助于提高知识筛选的准确性。本发明考虑到先验知识分布和后验分布之间的暴露偏差问题,利用余弦相似度计算源句子与各知识句子的相似度,提高模型的泛化能力。同时,为更好利用所选知识信息,对选择的知识信息和源句子共同进行编码。两方面的结合,既能提高知识筛选的准确性,又能更好的利用所选知识以生成高质量的回复。。
附图说明
[0028]
图1为本发明实施例的基于知识驱动的多路筛选融合对话生成方法流程图;
[0029]
图2为本发明实施例的多路筛选融合对话生成方法对应的网络模型总体架构图。
具体实施方式
[0030]
下面的实施例可使本专业技术人员更全面地理解本发明,但不以任何方式限制本发明。
[0031]
图1为本发明实施例的基于知识驱动的多路筛选融合对话生成方法流程图。参见图1,该生成方法包括以下步骤:
[0032]
s1,对当前对话的上下文进行包括分词、词嵌入在内的预处理,将预处理结果送入由双向gru组成的话语编码器中对上下文信息进行编码,获取相应的语义向量{hi};i=1,2,

,n。
[0033]
s2,基于多路知识筛选机制,通过计算步骤s10得到的语义向量信息与知识集合{ki}中每条知识的相似度,从知识集合中选择与当前对话最相关的知识信息ka和kb,融合得到筛选后的知识信息k
′i。
[0034]
s3,基于双向gru神经网络构建知识融合模块,采用知识融合模块将步骤s20得到的知识信息k
′i与步骤s10中获取的上下文的语义信息{hi}融合,借助注意力机制计算得到中间语义向量c
t

[0035]
s4,将步骤s30得到的中间语义向量c
t
和步骤s20中得到的知识信息k
′i一同送入解码器中进行响应的生成。
[0036]
本实施案例同时考虑知识筛选与响应生成的重要性,设计基于后验知识分布与基于注意力机制组成的知识筛选模块进行知识选择,此外设计知识融合模块,以更好的利用所获取的知识进行对话生成。如图1所示,本方法包含如下步骤:
[0037]
步骤1),根据任务要求,对数据进行预处理,利用双向gru单元组成的编码器将输入上下文编码成一固定长度的语义向量。
[0038]
对数据集进行分词后,经过去停用词,再经过bert获取词嵌入;输送到双向gru中
对预处理好的上下文信息进行编码得到上下文的隐层状态h={h1,h2,

,hn}。具体的,包括以下子步骤:
[0039]
步骤101),利用nltk工具将数据进行分词后借助glove转换成固定维度的词向量。
[0040]
步骤102),根据gru组成的双向编码器将对话上下文编码成固定维度向量,编码的每一步输出该时间步的隐藏状态,最后一时刻时间步用以表示该上下文的语义信息。
[0041]
步骤2),根据上一步得到的文件访问频率,计算该上下文语义信息与知识集合中每条知识信息的相似度。
[0042]
步骤2)中根据步骤1)得到的语义向量,通过多路筛选模块获取相关知识;首先利用余弦相似度,获取上下文向量与知识集合中每条知识的相似度得分,获取得分最高的知识信息记为ka;其次利用后验知识信息获取后验知识分布,再利用kl散度拉近先验知识分布与后验分布之间的距离,使得在实际使用情况下也可以获取相关的知识,将该知识记为kb。具体的,包括以下子步骤:
[0043]
步骤201),利用后验知识分布与先验知识分布进行知识的筛选,在模型训练过程中,利用kl散度让先验分布不断逼近后验分布,以期在无法获取真实响应的训练阶段借助先验分布获取恰当的知识信息。
[0044]
步骤202),利用注意力机制计算步骤1)所获取的语义向量与知识集合中知识信息的相似程度,弥补先验知识分布与后验知识分布间的暴露偏差,提高知识筛选的准确度。
[0045]
对于先验知识分布和后验知识分布,根据如下公式获取,其中ki为知识集合中的每条知识,x为输入的上下文信息,y为数据集中真实响应信息;
[0046][0047][0048]
步骤3),根据上一步得到的与上下文相关的知识信息,通过知识融合模块将知识语义融入上下文用以生成响应回复。
[0049]
步骤3)根据步骤2)得到的知识信息,为了更好的使用筛选后的知识,相比于直接拼接两个向量,使用了一种更加柔和的方式对知识筛选和源句子进行融合,即采用双向gru神经网络对知识信息和源句子共同进行编码,将筛选后的知识表示ki作为双向gru神经网络的初始状态,同时将源句子编码器得到的隐层状态h={h1,h2,

,hn}作为双向gru神经网络的每一步输入,得到双向gru的最终状态作为中间语义向量c
t
。具体的,包括以下子步骤:
[0050]
步骤301),根据上一步获取的结果,根据每条知识信息的相关系数,加权求和获取最终的知识信息表达形式。
[0051]
步骤302),将步骤301)的结果与上下文语义信息利用双向gru组成的编码器进行共同编码,将知识语义信息作为该编码器的初始状态,将步骤1)中每一时刻的隐藏状态作为该编码器的每一步输入,获取最后的隐藏状态。
[0052]
步骤4),将步骤3)所获取的融入知识信息的上下文语义表达输入解码器,利用注意力机制进行响应回复生成。
[0053]
步骤4)中根据步骤3)得到的中间语义向量c
t
以及知识表示ki,将每一时间步的解码状态通过全连接网络映射到词表大小的维度,并通过softmax函数计算出候选回复词的概率分布。选择概率最大的词作为当前时间步的回复y
t
,所有时间步的预测回复联合起来即为最终的预测回复序列y。具体的,包括以下子步骤:
[0054]
步骤401),设计知识感知解码器灵活的整合知识信息,知识感知gru包括两部分,将知识语义表达,上一时刻输出预测词汇信息、隐藏状态以及步骤3)的结果作为该gru的输入,获取当前时刻隐藏状态s
t

[0055]
步骤402),将每一时间步的解码状态通过全连接网络映射到词表大小的维度并通过 softmax函数计算出候选回复词的概率分布,选择概率最大的词作为当前时间步的回复y
t
,将所有时间步的预测回复联合起来即为最终的预测回复序列s。
[0056]
与前述对话生成方法相应的,参见图2,本实施例还公开了一种基于知识驱动的多路筛选融合对话生成网络模型。
[0057]
在本实施例中,知识驱动的对话生成包括两个重要子任务:1.从知识集合中选择与当前对话上下文有关的知识信息,即知识选择;2.利用所选的知识生成与上下文一致且蕴含更多信息的响应。对于第一个任务,本实施例提出了一种基于背景知识的多通路知识筛选机制来有效准确的进行知识的选择。对于第二个任务,本实施例设计一种动态解码器,在解码过程中对知识进行二次筛选,避免了知识筛选的单一性,以此提高产生回复的多样性以及相关性。本实施例能充分利用上下文的语义信息,筛选与之高度相关的背景知识信息,将所筛选的知识信息融入对话生成的过程,提高了对话生成的质量。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1