基于自步学习的时序加权差异感知回复生成方法及系统

未命名 09-20 阅读:81 评论:0


1.本发明属于自然语言处理领域,具体涉及一种基于自步学习的时序加权差异感知回复生成方法及系统。


背景技术:

2.对话系统是自然语言处理领域的研究热点之一,旨在研究让机器理解人类的对话并模仿人类的语言习惯与人类进行交谈。随着自然语音处理技术的发展,对话系统取得了很大的进展,各式各样的对话系统逐渐走入人们的工作和生活中。如苹果的siri,各大电商平台上的智能客服,地图app上的智能语音导航系统等。其中,苹果的siri通过语音识别用户的指令,从而理解并满足用户的需求;电商平台上的智能客服通过分析用户话语中的意图,并提供相应的购买建议、退换货服务等,在提高用户与商家沟通效率的同时也减轻了人工客服人员的负担;地图app的智能导航系统可以识别用户的文字或者语音来确定用户的行程目的地,并通过语音的方式将用户导航至相应地点。另外,部分对话系统如微软的cortana,ibmwatson等不仅能为用户提供服务,还可以与用户闲聊,排解用户的情绪,具有强大的应用价值。
3.目前开放域对话系统的主要实现方法有检索式对话和生成式对话两种,其中,生成式对话因其灵活性强,生成回复的多样性强以及泛用性高的特点逐渐成为业界主流的发展趋势。随着深度学习方法研究的不断深入,许多研究人员也将深度学习模型应用到对话生成领域中。vinyals等人提出使用lstm作为编码器和解码器,先将对话上下文输入编码器进行编码,再将编码后的对话上下文信息输入解码器并按顺序生成回复,这是最早的基于seq2seq框架构建的生成式多轮对话模型,开启了使用深度学习方法构建生成式对话系统的序幕。serban等人在seq2seq的基础上进一步提出了基于层次seq2seq框架的hred、vhred、mrrnn等模型,这些模型可以对文本序列的层次结构进行建模,更加契合多轮对话的场景。随着transformer在nlp领域中的大放异彩,基于transformer的预训练语言生成模型gpt-2、plato、ernie-gen]等也随之掀起了一波高潮。预训练模型通过在大型语料库中进行预训练,然后在特定的任务中进行微调,在下游任务中能够获得比较好的效果,得到了广泛的应用。
4.在进一步的研究过程中,即模型倾向于生成诸如“我不知道”,“好的”等无意义、空洞的回复。为了解决该问题,部分研究者尝试模仿人类对话时采用的思维方式:人在组织对话时通常会将当前对话信息以及与对话相关的背景知识结合起来组织语言。因此,研究者们尝试将外部知识融入到对话生成模型中来提升生成回复的信息量,以更好的满足人们的需求。dinan等人首先提出将基于非结构化知识的对话生成任务进一步细分为知识选择任务和回复生成任务两个子任务,前者是在知识库中选择适合下一个回复的知识,而后者则是结合前者选择的知识生成自然的回复,这也成为了解决基于非结构化知识的对话生成问题的主要范式。针对知识选择任务,一些研究者尝试通过不同的匹配算法将对话上下文和背景知识进行匹配以获取恰当的知识。zhang等人提出了一种知识预选择方法,他们将对话
上下文作为先验信息,通过动态的双向注意力机制在文本中选择最相关的知识,以构造基于背景知识的动态词分布。meng等人将选择本轮次的知识和追踪上一轮选择的知识视为一个对偶任务,并设计了一种对偶知识交互学习方法,让两者互相学习优化,以促进两者之间的交互。zhao等人首次将预训练语言模型gpt-2用于知识对话任务中,并提出了基于强化学习和课程学习的无监督联合优化策略分别对知识选择模块和回复生成模块进行优化。
5.也有部分研究者将一些影响知识选择过程的因素视为潜在变量,并采用潜在变量建模的方法进行知识选择。lian等人提出利用后验知识分布指导知识选择,从而在对话中产生更合适和信息更丰富的回复。kim等人提出了连续型知识选择的潜变量模型,通过对历史知识选择进行建模,减少可能的候选知识范围,提高知识选择的准确性。zhan等人提出了一个协同潜变量模型,将知识选择和回复生成集成在独立但协作的潜在空间中,以捕捉知识选择和回复生成之间的关联。但以上模型在进行知识选择时,模型仍然存在对对话上下文和候选知识之间的语义理解不够充分、训练时易受到噪声干扰的问题,这些问题都对生成回复的质量造成了影响。


技术实现要素:

6.本发明的目的在于提供一种基于自步学习的时序加权差异感知回复生成方法及系统,该方法及系统有利于提高生成回复的准确性。
7.为实现上述目的,本发明采用的技术方案是:一种基于自步学习的时序加权差异感知回复生成方法,包括以下步骤:
8.步骤a:在社交平台中采集自然的、开放领域的对话,并检索该对话相关的背景知识,然后标注真实回复和真实知识的标签,以此来构建训练数据集de;
9.步骤b:使用训练数据集de训练基于自步学习的时序加权差异感知深度学习网络模型m,通过此模型选择需要的背景知识,并根据选择的背景知识生成回复;
10.步骤c:将对话上下文、背景知识输入到训练好的深度学习网络模型m中,生成对应的回复。
11.进一步地,所述步骤b具体包括以下步骤:
12.步骤b1:对训练数据集de中的所有训练样本进行初始编码,从而得到本轮对话上文的句子表示向量本轮真实回复的句子表示向量本轮候选知识的句子表示向量
13.步骤b2:将步骤b1得到的本轮对话上文的句子表示向量以及本轮真实回复的句子表示向量通过gru编码得到对话历史信息表示将候选知识表示向量通过bigru进行编码得到带有句间关系信息的向量表示r
t

14.步骤b3:将先前m轮模型选择的候选知识的句子表示与步骤b2中得到的带有句间关系信息的当前轮次的候选知识向量表示r
t
进行差异计算,并根据轮次的先后通过基于时间衰减的加权函数对不同轮次的差异信息进行求和,得到候选知识的差异信息表示
15.步骤b4:知识选择器将上一轮的对话历史信息和本轮的对话上文的句子表示向量进行拼接作为查询向量,再将候选知识的句子表示向量与步骤b3中得到的差异信息表示进行拼接作为知识选择器的键向量,计算其注意力得分,将得分最高的知识作为本轮知识选择器选择的知识
16.步骤b5:采用基于自步学习的两阶段训练策略,根据不同的训练阶段分别将本轮选择的知识或伪真实知识对话上文信息输入解码器生成本轮次的回复,预训练阶段采用真实知识进行训练,微调阶段采用自步学习策略,根据评分函数的大小来决定采用真实知识或本轮选择的知识将选择的知识、上下文信息输入解码器,生成本轮的回复y
t

17.步骤b6:当深度学习网络模型迭代产生的损失值变化小于所给定阈值、或者达到最大迭代次数,则终止深度学习网络模型的训练过程。
18.进一步地,所述步骤b1具体包括以下步骤:
19.步骤b11:对训练数据集de进行遍历,同时对对话内容和知识进行分词处理并去除特殊符号和停用词之后,de中的每个训练样本表示为de=(x
t
,y
t
,k
t
);其中,x
t
为对话上文内容,y
t
为x
t
对应的真实回复集合,k
t
为本轮对话对应的背景知识集合;
20.对话上文的文本内容x
t
表示为:
[0021][0022]
其中,为对话上文x
t
中的第i个词,i=1,2,

,|x
t
|,x
t
为对话上文x
t
的词语数量;
[0023]
真实回复y
t
表示为:
[0024][0025]
其中,为真实回复y
t
中的第i个词,i=1,2,

,|y
t
|,|y
t
|为真实回复y
t
的词语数量;
[0026]
背景知识集合k
t
表示为:
[0027][0028]
其中,n表示本轮候选知识个数,每个候选知识表示为:
[0029][0030]
其中,为每个候选知识中的第j个词,为候选知识的词语数量;
[0031]
步骤b12:对步骤b11得到对话上文通过bert进行编码,再通过平均池化层得到对话上文的表示向量计算过程如下:
[0032][0033][0034]
其中,meanpool(
·
)表示平均池化函数;
[0035]
步骤b13:对步骤b11得到对话上文通过bert进行编码,再通过平均池化层得到真实回复的句子表示向量计算过程如下:
[0036][0037][0038]
其中,meanpool(
·
)表示平均池化函数;
[0039]
步骤b14:对步骤b11得到的背景知识逐个通过bert进行编码,再通过平均池化层得到候选知识的句子表示向量计算过程如下:
[0040][0041][0042]
其中,meanpool(
·
)表示平均池化函数。
[0043]
进一步地,所述步骤b2具体包括以下步骤:
[0044]
步骤b21:通过gru对对话上文的向量表示和真实回复的向量表示进行编码,得到对话历史信息表示计算过程如下:
[0045][0046]
步骤b22:对步骤b14得到的候选知识的句子表示向量通过bigru进一步编码,以获得句间关系感知的候选知识向量表示其计算过程如下:
[0047][0048]
进一步地,所述步骤b3具体包括以下步骤:
[0049]
步骤b31:通过时间衰减函数分别计算每个轮次的权值λm,其计算过程如下:
[0050][0051]
f(m)=e-αm
[0052]
步骤b32:将过去m轮模型选择过的知识与步骤b22得到的句间关系感知的候选知识向量表示进行差异计算,并根据步骤b31得到的结果λm对不同轮次的差异信息进行加权求和,得到候选知识的差异信息表示其计算结果如下:
[0053][0054]
diff(a,b)=fullconnect([a-b;a

b])
[0055]
其中,;表示连接操作,fullconnect(
·
)为由tanh激活的全连接层,α为衰减系数。
[0056]
进一步地,所述步骤b4具体包括以下步骤:
[0057]
步骤b41:知识选择器使用步骤b21得到的对话历史信息和步骤b12得到的本轮的对话上文向量进行拼接作为查询,将步骤b14得到的候选知识向量和步骤b32得到
的差异信息表示作为键,通过计算attention分数得到知识选择分布计算过程如下:
[0058][0059]
其中,tanh(
·
)是激活函数,w
que
,w
key
,v
t
是可训练的参数,;表示向量的拼接操作;
[0060]
步骤b42:将步骤b41获得的知识选择分布进行归一化操作,并取概率最大的知识作为本轮知识选择器的选择知识计算过程如下:
[0061][0062][0063]
其中,softmax()是归一化函数,argmax()是求函数最大值对应的自变量的函数;
[0064]
步骤b43:采用交叉熵损失对知识选择器进行训练,计算过程如下:
[0065][0066]
其中,表示交叉熵损失,是真实知识标签,表示知识选择器的选择分布。
[0067]
进一步地,所述步骤b5具体包括以下步骤:
[0068]
步骤b51:采用基于自步学习策略的两阶段训练方法,预训练阶段采用真实知识替代选择知识进行回复生成,微调阶段采用自步学习策略,将知识选择器选择的知识视为复杂样本,将真实知识视为简单样本,将学生知识选择器的损失作为自步学习的评分score,并设定一个权值v表示是否应该采用复杂样本进行回复生成,v的计算如下:
[0069][0070][0071]
δ=h(t)=δ0e
t
[0072]
步骤b52:将选择的知识对话上文x
t
进行拼接,输入结合复制机制的transformer解码器生成本轮的回复,过程如下:
[0073][0074][0075][0076][0077][0078][0079]
其中,;表示连接操作,transformerdecoder()表示transformer解码器,是本轮回复中第n个单词的隐藏向量,multhead()表示多头注意力机制,表示词汇表,是最终的生成分布;
[0080]
步骤b53:根据步骤b51获得的权值v计算生成损失值计算公式如下:
[0081][0082][0083][0084]
步骤b54:将步骤b43获得的知识选择损失和步骤b53获得的生成损失之和作为总损失,利用反向传播迭代更新模型参数,以最小化损失函数来训练模型,总损失的计算如下:
[0085][0086]
本发明还提供了采用上述方法的基于自步学习的时序加权差异感知回复生成系统,包括:
[0087]
数据收集模块,用于提取社交平台中开放域对话的对话内容和背景知识,并对真实回复和真实知识进行标注,构建训练集;
[0088]
预处理模块,用于对训练集中的训练样本进行预处理,包括分词处理、去除停用词等;
[0089]
编码模块,用于在预训练的词向量矩阵中查找经过预处理的输入内容、回复内容和背景知识内容中词的词向量,并对这些信息进行编码,得到输入内容、回复内容、背景知识的表征向量;
[0090]
差异信息构造模块,将先前轮次选择的知识与当前轮候选知识进行差异计算,并使用时间衰减加权函数对不同轮次的差异信息进行加权并求和,得到本轮次知识的差异信息表示;
[0091]
网络模型训练模块,用于将输入对话的表征向量、回复的表征向量、背景知识的表示向量和差异信息表示输入到深度学习网络中,选择本轮对话需要的背景知识,并将选择的知识和上下文输入到解码器生成本轮次的回复,并通过与训练集中的真实回复作为对比计算损失,以最小化损失为目标来对整个深度学习网络进行训练,得到基于自步学习策略的时序加权差异感知回复生成的深度学习网络模型;
[0092]
回复生成模块,用于生成回复,利用训练好的基于自步学习策略的时序加权差异感知回复生成的深度学习网络模型对输入的对话进行分析处理,根据上下文和差异信息选择本轮次的知识,之后,根据选择的知识生成回复。
[0093]
与现有技术相比,本发明具有以下有益效果:本发明提供了一种基于自步学习的时序加权差异感知回复生成方法及系统,该方法构建了基于自步学习的时序加权差异感知深度学习网络模型,并通过此模型来选择需要的背景知识,并根据选择的背景知识生成回复,从而提高回复生成的准确性。
附图说明
[0094]
图1是本发明实施例的方法实现流程图;
[0095]
图2是本发明实施例中时序加权差异感知深度学习网络模型的架构图;
[0096]
图3是本发明实施例中对对话上文及候选知识进行处理的流程图;
[0097]
图4是本发明实施例的系统结构示意图。
具体实施方式
[0098]
下面结合附图及实施例对本发明做进一步说明。
[0099]
应该指出,以下详细说明都是示例性的,旨在对本技术提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本技术所属技术领域的普通技术人员通常理解的相同含义。
[0100]
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本技术的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
[0101]
如图1所示,本实施例提供了一种基于自步学习的时序加权差异感知回复生成方法,其特征在于,包括以下步骤:
[0102]
步骤a:在社交平台中采集自然的、开放领域的对话,并检索该对话相关的背景知识,然后标注真实回复和真实知识的标签,以此来构建训练数据集de。
[0103]
步骤b:使用训练数据集de训练基于自步学习的时序加权差异感知深度学习网络模型m,通过此模型选择需要的背景知识,并根据选择的背景知识生成回复。
[0104]
步骤c:将对话上下文、背景知识输入到训练好的深度学习网络模型m中,生成对应的回复。
[0105]
本实施例中,基于自步学习的时序加权差异感知深度学习网络模型m的架构及其对对话上文及候选知识进行处理的具体流程如图2、3所示。在本实施例中,所述步骤b具体包括以下步骤:
[0106]
步骤b1:对训练数据集de中的所有训练样本进行初始编码,从而得到本轮对话上文的句子表示向量本轮真实回复的句子表示向量本轮候选知识的句子表示向量
[0107]
在本实施例中,所述步骤b1具体包括以下步骤:
[0108]
步骤b11:对训练数据集de进行遍历,同时对对话内容和知识进行分词处理并去除特殊符号和停用词之后,de中的每个训练样本表示为de=(x
t
,y
t
,k
t
);其中,x
t
为对话上文内容,y
t
为x
t
对应的真实回复集合,k
t
为本轮对话对应的背景知识集合。
[0109]
对话上文的文本内容x
t
表示为:
[0110][0111]
其中,为对话上文x
t
中的第i个词,i=1,2,

,|x
t
|,|x
t
|为对话上文x
t
的词语数量。
[0112]
真实回复y
t
表示为:
[0113][0114]
其中,为真实回复y
t
中的第i个词,i=1,2,

,|y
t
|,|y
t
|为真实回复y
t
的词语数量。
[0115]
背景知识集合k
t
表示为:
[0116]
[0117]
其中,n表示本轮候选知识个数,每个候选知识表示为:
[0118][0119]
其中,为每个候选知识中的第j个词,为候选知识的词语数量。
[0120]
步骤b12:对步骤b11得到对话上文通过bert进行编码,再通过平均池化层得到对话上文的表示向量计算过程如下:
[0121][0122][0123]
其中,meanpool(
·
)表示平均池化函数。
[0124]
步骤b13:对步骤b11得到对话上文通过bert进行编码,再通过平均池化层得到真实回复的句子表示向量计算过程如下:
[0125][0126][0127]
其中,meanpool(
·
)表示平均池化函数。
[0128]
步骤b14:对步骤b11得到的背景知识逐个通过bert进行编码,再通过平均池化层得到候选知识的句子表示向量计算过程如下:
[0129][0130][0131]
其中,meanpool(
·
)表示平均池化函数。
[0132]
步骤b2:将步骤b1得到的本轮对话上文的句子表示向量以及本轮真实回复的句子表示向量通过gru编码得到对话历史信息表示将候选知识表示向量通过bigru进行编码得到带有句间关系信息的向量表示r
t

[0133]
在本实施例中,所述步骤b2具体包括以下步骤:
[0134]
步骤b21:通过gru对对话上文的向量表示和真实回复的向量表示进行编码,得到对话历史信息表示计算过程如下:
[0135][0136]
步骤b22:对步骤b14得到的候选知识的句子表示向量通过bigru进一步编码,以获得句间关系感知的候选知识向量表示其计算过程如下:
[0137][0138]
步骤b3:将先前m轮模型选择的候选知识的句子表示与步骤b2中得到的带有句间关系信息的当前轮次的候选知识向量表示r
t
进行差异计算,并根据轮次的先后通
过基于时间衰减的加权函数对不同轮次的差异信息进行求和,得到候选知识的差异信息表示
[0139]
在本实施例中,所述步骤b3具体包括以下步骤:
[0140]
步骤b31:通过时间衰减函数分别计算每个轮次的权值λm,其计算过程如下:
[0141][0142]
f(m)=e-αm
[0143]
步骤b32:将过去m轮模型选择过的知识与步骤b22得到的句间关系感知的候选知识向量表示进行差异计算,并根据步骤b31得到的结果λm对不同轮次的差异信息进行加权求和,得到候选知识的差异信息表示其计算结果如下:
[0144][0145]
diff(a,b)=fullconnect([a-b;a

b])
[0146]
其中,;表示连接操作,fullconnect(
·
)为由tanh激活的全连接层,α为衰减系数。
[0147]
步骤b4:知识选择器将上一轮的对话历史信息和本轮的对话上文的句子表示向量进行拼接作为查询向量,再将候选知识的句子表示向量与步骤b3中得到的差异信息表示进行拼接作为知识选择器的键向量,计算其注意力得分,将得分最高的知识作为本轮知识选择器选择的知识
[0148]
在本实施例中,所述步骤b4具体包括以下步骤:
[0149]
步骤b41:知识选择器使用步骤b21得到的对话历史信息和步骤b12得到的本轮的对话上文向量进行拼接作为查询,将步骤b14得到的候选知识向量和步骤b32得到的差异信息表示作为键,通过计算attention分数得到知识选择分布计算过程如下:
[0150][0151]
其中,tanh(
·
)是激活函数,w
que
,w
key
,v
t
是可训练的参数,;表示向量的拼接操作。
[0152]
步骤b42:将步骤b41获得的知识选择分布进行归一化操作,并取概率最大的知识作为本轮知识选择器的选择知识计算过程如下:
[0153][0154][0155]
其中,softmax()是归一化函数,argmax()是求函数最大值对应的自变量的函数。
[0156]
步骤b43:采用交叉熵损失对知识选择器进行训练,计算过程如下:
[0157][0158]
其中,表示交叉熵损失,是真实知识标签,表示知识选择器的选择分布。
[0159]
步骤b5:采用基于自步学习的两阶段训练策略,根据不同的训练阶段分别将本轮选择的知识或伪真实知识对话上文信息输入解码器生成本轮次的回复,预训练阶段采用真实知识进行训练,微调阶段采用自步学习策略,根据评分函数的大小来决定采用真实知识或本轮选择的知识将选择的知识、上下文信息输入解码器,生成本轮的回复y
t

[0160]
在本实施例中,所述步骤b5具体包括以下步骤:
[0161]
步骤b51:采用基于自步学习策略的两阶段训练方法,预训练阶段采用真实知识替代选择知识进行回复生成,微调阶段采用自步学习策略,将知识选择器选择的知识视为复杂样本,将真实知识视为简单样本,将学生知识选择器的损失作为自步学习的评分score,并设定一个权值v表示是否应该采用复杂样本进行回复生成,v的计算如下:
[0162][0163][0164]
δ=h(t)=δ0e
t
[0165]
步骤b52:将选择的知识对话上文x
t
进行拼接,输入结合复制机制的transformer解码器生成本轮的回复,过程如下:
[0166][0167][0168][0169][0170][0171][0172]
其中,;表示连接操作,transformerdecoder()表示transformer解码器,是本轮回复中第n个单词的隐藏向量,multhead()表示多头注意力机制,表示词汇表,是最终的生成分布。
[0173]
步骤b53:根据步骤b51获得的权值v计算生成损失值计算公式如下:
[0174][0175][0176][0177]
步骤b54:将步骤b43获得的知识选择损失和步骤b53获得的生成损失之和作为总损失,利用反向传播迭代更新模型参数,以最小化损失函数来训练模型,总损失的计算如下:
[0178]
[0179]
步骤b6:当深度学习网络模型迭代产生的损失值变化小于所给定阈值、或者达到最大迭代次数,则终止深度学习网络模型的训练过程。
[0180]
如图4所示,本实施例提供了采用上述方法的基于自步学习的时序加权差异感知回复生成系统,包括:
[0181]
数据收集模块,用于提取社交平台中开放域对话的对话内容和背景知识,并对真实回复和真实知识进行标注,构建训练集;
[0182]
预处理模块,用于对训练集中的训练样本进行预处理,包括分词处理、去除停用词等;
[0183]
编码模块,用于在预训练的词向量矩阵中查找经过预处理的输入内容、回复内容和背景知识内容中词的词向量,并对这些信息进行编码,得到输入内容、回复内容、背景知识的表征向量;
[0184]
差异信息构造模块,将先前轮次选择的知识与当前轮候选知识进行差异计算,并使用时间衰减加权函数对不同轮次的差异信息进行加权并求和,得到本轮次知识的差异信息表示;
[0185]
网络模型训练模块,用于将输入对话的表征向量、回复的表征向量、背景知识的表示向量和差异信息表示输入到深度学习网络中,选择本轮对话需要的背景知识,并将选择的知识和上下文输入到解码器生成本轮次的回复,并通过与训练集中的真实回复作为对比计算损失,以最小化损失为目标来对整个深度学习网络进行训练,得到基于自步学习策略的时序加权差异感知回复生成的深度学习网络模型;
[0186]
回复生成模块,用于生成回复,利用训练好的基于自步学习策略的时序加权差异感知回复生成的深度学习网络模型对输入的对话进行分析处理,根据上下文和差异信息选择本轮次的知识,之后,根据选择的知识生成回复。
[0187]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0188]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0189]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0190]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或
其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0191]
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。

技术特征:
1.一种基于自步学习的时序加权差异感知回复生成方法,其特征在于,包括以下步骤:步骤a:在社交平台中采集自然的、开放领域的对话,并检索该对话相关的背景知识,然后标注真实回复和真实知识的标签,以此来构建训练数据集de;步骤b:使用训练数据集de训练基于自步学习的时序加权差异感知深度学习网络模型m,通过此模型选择需要的背景知识,并根据选择的背景知识生成回复;步骤c:将对话上下文、背景知识输入到训练好的深度学习网络模型m中,生成对应的回复。2.根据权利要求1所述的基于自步学习的时序加权差异感知回复生成方法,其特征在于,所述步骤b具体包括以下步骤:步骤b1:对训练数据集de中的所有训练样本进行初始编码,从而得到本轮对话上文的句子表示向量本轮真实回复的句子表示向量本轮候选知识的句子表示向量步骤b2:将步骤b1得到的本轮对话上文的句子表示向量以及本轮真实回复的句子表示向量通过gru编码得到对话历史信息表示将候选知识表示向量通过bigru进行编码得到带有句间关系信息的向量表示r
t
;步骤b3:将先前m轮模型选择的候选知识的句子表示与步骤b2中得到的带有句间关系信息的当前轮次的候选知识向量表示r
t
进行差异计算,并根据轮次的先后通过基于时间衰减的加权函数对不同轮次的差异信息进行求和,得到候选知识的差异信息表示步骤b4:知识选择器将上一轮的对话历史信息和本轮的对话上文的句子表示向量进行拼接作为查询向量,再将候选知识的句子表示向量与步骤b3中得到的差异信息表示进行拼接作为知识选择器的键向量,计算其注意力得分,将得分最高的知识作为本轮知识选择器选择的知识步骤b5:采用基于自步学习的两阶段训练策略,根据不同的训练阶段分别将本轮选择的知识或伪真实知识对话上文信息输入解码器生成本轮次的回复,预训练阶段采用真实知识进行训练,微调阶段采用自步学习策略,根据评分函数的大小来决定采用真实知识或本轮选择的知识将选择的知识、上下文信息输入解码器,生成本轮的回复y
t
;步骤b6:当深度学习网络模型迭代产生的损失值变化小于所给定阈值、或者达到最大迭代次数,则终止深度学习网络模型的训练过程。3.根据权利要求2所述的基于自步学习的时序加权差异感知回复生成方法,其特征在于,所述步骤b1具体包括以下步骤:步骤b11:对训练数据集de进行遍历,同时对对话内容和知识进行分词处理并去除特殊符号和停用词之后,de中的每个训练样本表示为de=(x
t
,y
t
,k
t
);其中,x
t
为对话上文内容,y
t
为x
t
对应的真实回复集合,k
t
为本轮对话对应的背景知识集合;对话上文的文本内容x
t
表示为:
其中,为对话上文x
t
中的第i个词,i=1,2,

,|x
t
|,|x
t
|为对话上文x
t
的词语数量;真实回复y
t
表示为:其中,为真实回复y
t
中的第i个词,i=1,2,

,|y
t
|,|y
t
|为真实回复y
t
的词语数量;背景知识集合k
t
表示为:其中,n表示本轮候选知识个数,每个候选知识表示为:其中,为每个候选知识中的第j个词,中的第j个词,为候选知识的词语数量;步骤b12:对步骤b11得到对话上文通过bert进行编码,再通过平均池化层得到对话上文的表示向量计算过程如下:计算过程如下:其中,meanpool(
·
)表示平均池化函数;步骤b13:对步骤b11得到对话上文通过bert进行编码,再通过平均池化层得到真实回复的句子表示向量计算过程如下:计算过程如下:其中,meanpool(
·
)表示平均池化函数;步骤b14:对步骤b11得到的背景知识逐个通过bert进行编码,再通过平均池化层得到候选知识的句子表示向量计算过程如下:计算过程如下:其中,meanpool(
·
)表示平均池化函数。4.根据权利要求3所述的基于自步学习的时序加权差异感知回复生成方法,其特征在于,所述步骤b2具体包括以下步骤:步骤b21:通过gru对对话上文的向量表示和真实回复的向量表示进行编码,得到对话历史信息表示计算过程如下:步骤b22:对步骤b14得到的候选知识的句子表示向量通过bigru进一步编码,以获得句
间关系感知的候选知识向量表示其计算过程如下:5.根据权利要求4所述的基于自步学习的时序加权差异感知回复生成方法,其特征在于,所述步骤b3具体包括以下步骤:步骤b31:通过时间衰减函数分别计算每个轮次的权值λ
m
,其计算过程如下:f(m)=e-αm
步骤b32:将过去m轮模型选择过的知识与步骤b22得到的句间关系感知的候选知识向量表示进行差异计算,并根据步骤b31得到的结果λ
m
对不同轮次的差异信息进行加权求和,得到候选知识的差异信息表示其计算结果如下:diff(a,b)=fullconnect([a-b;a

b])其中,[;]表示连接操作,fullconnect(
·
)为由tanh激活的全连接层,α为衰减系数。6.根据权利要求5所述的基于自步学习的时序加权差异感知回复生成方法,其特征在于,所述步骤b4具体包括以下步骤:步骤b41:知识选择器使用步骤b21得到的对话历史信息和步骤b12得到的本轮的对话上文向量进行拼接作为查询,将步骤b14得到的候选知识向量和步骤b32得到的差异信息表示作为键,通过计算attention分数得到知识选择分布计算过程如下:其中,tanh(
·
)是激活函数,w
que
,w
key
,v
t
是可训练的参数,[;]表示向量的拼接操作;步骤b42:将步骤b41获得的知识选择分布进行归一化操作,并取概率最大的知识作为本轮知识选择器的选择知识计算过程如下:计算过程如下:其中,softmax()是归一化函数,argmax()是求函数最大值对应的自变量的函数;步骤b43:采用交叉熵损失对知识选择器进行训练,计算过程如下:其中,表示交叉熵损失,是真实知识标签,表示知识选择器的选择分布。7.根据权利要求6所述的基于自步学习的时序加权差异感知回复生成方法,其特征在于,所述步骤b5具体包括以下步骤:
步骤b51:采用基于自步学习策略的两阶段训练方法,预训练阶段采用真实知识替代选择知识进行回复生成,微调阶段采用自步学习策略,将知识选择器选择的知识视为复杂样本,将真实知识视为简单样本,将学生知识选择器的损失作为自步学习的评分score,并设定一个权值v表示是否应该采用复杂样本进行回复生成,v的计算如下:score,并设定一个权值v表示是否应该采用复杂样本进行回复生成,v的计算如下:δ=h(t)=δ0e
t
步骤b52:将选择的知识对话上文x
t
进行拼接,输入结合复制机制的transformer解码器生成本轮的回复,过程如下:码器生成本轮的回复,过程如下:码器生成本轮的回复,过程如下:码器生成本轮的回复,过程如下:码器生成本轮的回复,过程如下:码器生成本轮的回复,过程如下:其中,[;]表示连接操作,transformerdecoder()表示transformer解码器,是本轮回复中第n个单词的隐藏向量,multhead()表示多头注意力机制,表示词汇表,是最终的生成分布;步骤b53:根据步骤b51获得的权值v计算生成损失值计算公式如下:计算公式如下:计算公式如下:步骤b54:将步骤b43获得的知识选择损失和步骤b53获得的生成损失之和作为总损失,利用反向传播迭代更新模型参数,以最小化损失函数来训练模型,总损失的计算如下:8.一种采用如权利要求1-7任一项所述方法的基于自步学习的时序加权差异感知回复生成系统,其特征在于,包括:数据收集模块,用于提取社交平台中开放域对话的对话内容和背景知识,并对真实回复和真实知识进行标注,构建训练集;预处理模块,用于对训练集中的训练样本进行预处理,包括分词处理、去除停用词等;编码模块,用于在预训练的词向量矩阵中查找经过预处理的输入内容、回复内容和背景知识内容中词的词向量,并对这些信息进行编码,得到输入内容、回复内容、背景知识的表征向量;
差异信息构造模块,将先前轮次选择的知识与当前轮候选知识进行差异计算,并使用时间衰减加权函数对不同轮次的差异信息进行加权并求和,得到本轮次知识的差异信息表示;网络模型训练模块,用于将输入对话的表征向量、回复的表征向量、背景知识的表示向量和差异信息表示输入到深度学习网络中,选择本轮对话需要的背景知识,并将选择的知识和上下文输入到解码器生成本轮次的回复,并通过与训练集中的真实回复作为对比计算损失,以最小化损失为目标来对整个深度学习网络进行训练,得到基于自步学习策略的时序加权差异感知回复生成的深度学习网络模型;回复生成模块,用于生成回复,利用训练好的基于自步学习策略的时序加权差异感知回复生成的深度学习网络模型对输入的对话进行分析处理,根据上下文和差异信息选择本轮次的知识,之后,根据选择的知识生成回复。

技术总结
本发明涉及一种基于自步学习的时序加权差异感知回复生成方法及系统,该方法包括以下步骤:步骤A:收集社交软件中自然的、开放领域的对话,并使用检索系统在维基百科中检索该对话相关的背景知识,并标注真实回复和真实知识的标签,以此来构建训练数据集DE;步骤B:使用训练数据集DE,训练基于自步学习策略的时序加权差异感知深度学习网络模型M,通过此模型选择需要的背景知识,并根据选择的背景知识生成回复;步骤C:将对话上下文、背景知识库输入到训练好的深度学习网络模型M中,生成对应的回复。该方法及系统有利于提高生成回复的准确性。性。性。


技术研发人员:陈羽中 郑旭 陈子阳
受保护的技术使用者:福州大学
技术研发日:2023.06.30
技术公布日:2023/9/19
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐