基于细粒度局部信息增强的对话结构感知对话方法及系统

文档序号:30062432发布日期:2022-05-17 23:58阅读:174来源:国知局
基于细粒度局部信息增强的对话结构感知对话方法及系统

1.本发明属于自然语言处理领域,具体涉及一种基于细粒度局部信息增强的对话结构感知对话方法及系统。


背景技术:

2.近些年来,随着机器学习和深度学习网络的发展,人类在与计算机的智能对话中取得了重大进步,对话系统逐渐走进了大家的视野。对话系统对工业界和学术界都有着重要的研究价值,并且可以广泛应用在很多领域。目前的对话系统算法主要有生成式对话和检索式对话两类,其中,生成式对话在推理阶段不依赖任何语料库就能根据一个问题逐字生成一个答案,其生成的答案具有多样性的优点,但获取的答案往往逻辑性不强,有时还会陷入安全回复的陷阱中。而检索式对话是让算法根据特定的一个问题到语料库中找到一个最合适的答案进行回复,能够从问题中提取出与正确回复相关联的信息,依据这些信息推理出合适的答案。检索式对话模型目前已广泛应用于微软小冰等多轮对话系统中,相较于生成式对话模型更加可靠,具有更好的实用性。
3.lowe等人针对检索式多轮对话中的回复选择任务构建了两个基准模型,分别基于循环神经网络(recurrent neural networks,rnns)算法和长短期记忆网络(long short term memory,lstm)算法。这两个基准模型在对文本进行编码的过程中借助rnn的隐藏层单元记忆上一时刻的文本特征,为模型引入时间顺序信息,克服了早期算法中使用词袋模型的缺点。但是在多轮对话中,对话历史可能是冗长的,并非所有的内容都与回复相关,上述的两个基准模型对整段对话数据直接进行编码,不能有针对性的从对话数据中提取出重要的信息,导致为模型带来不必要的噪声。为了从长文本中提取出重要的信息,研究人员提出通过将上下文和回复进行匹配来提取出重要的信息,将回复选择任务分解为三个步骤,第一步骤是使用基于rnn的算法从每一个话语和回复中提取特征,第二个步骤是将提取到的话语特征与回复特征去做匹配,第三个步骤就是使用cnn等方法在匹配矩阵中取出计算分数需要的信息。但是rnn能提取到的语义信息是有限的,rnn编码假设数据是序列相关的,但是在对话数据中话题是动态的,距离很远的两段话也可能高度相关,rnn编码难以准确学习到这两段话的关系,同时rnn在编码长度较长的段落时还可能会出现梯度消失的现象,不能很好获取远距离依赖关系。rnn的局限性导致上述方法可能在第一个步骤中就已经丢失了重要的信息。2017年vaswani提出的transformer架构借助大量的自注意力和交互注意力运算,能够充分掌握全局的依赖信息,不受序列距离的限制。研究人员将transformer的编码器部分改写并应用于模型的编码模块,加强了模型提取信息的能力,同时受transformer中多头注意力机制的影响,这些工作在匹配阶段利用多头注意力构建了多种粒度的语义信息,丰富了模型的特征表示,取得了明显的提升效果。但是,上述模型还存在着以下几点问题。第一,对于全局序列信息考虑不足。上述模型主要在匹配结束之后使用rnn等方法编码所有的语句表征,这些语句表征在编码,匹配阶段可能就已经丢失了重要的信息。第二,使用的词向量表示没有考虑到上下文语境。上述模型主要使用word2vec这样的静态词向量,
难以解决一词多义问题,无法根据不同的上下文语境准确表达语义信息,从而在编码阶段就带来噪声。
4.为了解决上述问题,多轮对话中回复选择任务的研究重点逐步转向了基于预训练语言模型的方法,该类方法的基本步骤是先使用具有多层transformer编码器的预训练语言模型编码整段对话数据,再将输出中能表示全局信息[cls]位置的输出表征输入到分类层进行预测。在近期,一些最新的研究工作为多轮对话任务从对话结构,语句结构等角度提出了有效的对话建模方法,为研究人员的未来工作提供了新的思路。liu等人从对话话语、对话人说话顺序等对话结构的角度上提出了mdfn(mask-based decoupling-fusing network)模型。具体的,mdfn设计了两类粒度的注意力计算方式,分别为话语粒度的注意力机制以及对话人粒度的注意力机制,同时话语粒度的注意力中又细分为了话语内部的注意力运算与话语之间的交互注意力运算,对话人粒度的注意力中细分为了对话人内部的注意力运算与对话人之间的交互注意力运算。借助上述两类四种的注意力计算机制,模型只需要在四种指定的粒度上提取信息,减轻模型提取重点信息的难度。但是mdfn模型在每个注意力通道中重点建模语句之间的关系,没有在此基础之上根据对话特点进一步提取,导致模型可能会错误提取到不相关的内容信息,同时限定四种注意力运算的方式也可能会限制了深度学习模型的表达能力。zhang等人从语句结构的角度入手,提出了新颖的句子骨干正则化(sentence backbone regularization,sbr)任务。sbr任务使用句法解析工具包将句子解析成词性结构的形式,并将bert的参数导出去使用主语和谓语预测宾语,将句法结构与预训练语言模型结合起来去学习对话语句结构,取得了不错的效果。但是,句法解析工具包得到的结果并不是百分之百准确的,错误的解析结果可能会干扰到模型的判断,同时sbr任务与主任务之间差距较大的优化目标也可能会为主任务最终的判断带来噪声。


技术实现要素:

[0005]
本发明的目的在于提供一种基于细粒度局部信息增强的对话结构感知对话方法及系统,该方法及系统有利于提高提高多轮对话回复选择的精确度。
[0006]
为实现上述目的,本发明采用的技术方案是:一种基于细粒度局部信息增强的对话结构感知对话方法,包括以下步骤:
[0007]
步骤a:获取特定场景的多轮对话文本,并标注每个多轮对话回复所属的类别,构建带正负类别标签的训练集d;
[0008]
步骤b:使用训练集d训练细粒度局部信息增强的对话结构感知深度学习网络模型safl,用于选择给定多轮对话上下文对应的回复;
[0009]
步骤c:将多轮对话上下文与回复集输入到训练后的深度学习网络模型safl中,得到对应多轮对话上下文最合适的回复。
[0010]
进一步地,所述步骤b具体包括以下步骤:
[0011]
步骤b1:将训练集d的每个三元组形式的训练样本作为safl模型的输入,所述三元组形式的训练样本包括多轮对话上下文、回复、标签;safl模型使用预训练语言模型bert作为基础,利用bert的多层注意力机制学习到结合语境的上下文语义表示;同时safl模型采用多任务学习方式挖掘bert的语义理解能力,主任务是多轮对话回复选择任务,辅助任务是随机滑动窗口回复预测任务以及对话结构感知任务;
[0012]
步骤b2:在辅助任务部分,safl模型导出预训练语言模型bert,利用随机滑动窗口回复预测任务以及对话结构感知任务优化预训练语言模型;随机滑动窗口回复预测任务在多轮对话上下文中采样不同位置、大小的窗口数据,使用预训练语言模型编码对话窗口,加强预训练语言模型对于对话局部信息的理解能力;对话结构感知任务根据对话人说话的先后顺序构造图结构,并使用gcn进行编码,促使预训练语言模型学习正确的对话结构所具备的特征,让预训练语言模型从另一个角度理解对话数据;
[0013]
步骤b3:在主任务,即多轮对话回复选择任务中,safl模型采用重点局部信息蒸馏模块从预训练语言模型的输出中提取出细粒度的局部语义信息,通过门控机制对全局信息和局部信息进行进一步的融合筛选,并将筛选得到的融合特征与多粒度局部信息进行融合,输入到分类层中进行多轮对话上下文与回复之间的合理性分数的计算,评估当前回复是否对应给定的多轮对话上下文;最后根据目标损失函数,利用反向传播方法计算深度学习网络模型safl中的各参数的梯度,并利用随机梯度下降方法更新参数;
[0014]
步骤b4:当深度学习网络模型safl产生的损失值迭代变化小于设定阈值或达到最大迭代次数,终止深度学习网络模型safl的训练。
[0015]
进一步地,所述步骤b1具体包括以下步骤:
[0016]
步骤b11:将u代表上下文中的话语,r代表回复,m代表着话语的个数,将safl的输入拼接成如下长序列形式:
[0017]
x={[cls],u1,[eot],u2,[eot],

,[eot],um,[sep],r,[sep]}
[0018]
其中,x为拼接得到的长文本;[cls]和[sep]为分隔符,[eot]为safl用于学习局部信息的特殊标记;
[0019]
步骤b12:通过预训练语言模型bert的词典与模型的嵌入层,将x分别映射为词嵌入表示、位置嵌入表示与段落嵌入表示;
[0020]
步骤b13:将每个词的词嵌入表示、位置嵌入表示与段落嵌入表示相加,得到融合后的嵌入表示,并使用bert的多层transformer网络进行编码,从而获取到序列的高层语义特征表示e。
[0021]
进一步地,所述步骤b2具体包括以下步骤:
[0022]
步骤b21:在随机滑动窗口回复预测任务,即模型的第一个辅助任务中,safl将滑动窗口的大小、位置都设为随机,采样落在滑动窗口内的局部对话上下文,并在局部对话上下文的每一个话语后面插入特殊标签[eot],如下列公式所示:
[0023][0024]
其中,x'是子任务的输入,与主任务不同,x'只保留窗口内部的信息,其他的信息由[pad]替代,w代表当前窗口的大小,m代表完整的对话上下文中的话语个数,κ是一个超参数,代表最小窗口的大小;
[0025]
步骤b22:将所述预训练语言模型bert,即导出bert模型的各项参数,利用它对落在滑动窗口内的局部对话上下文数据进行编码,让bert学习到不同质量的对话数据,增强预训练语言模型的语义理解能力,公式如下:
[0026]
e'=bert(x

)
[0027]
步骤b23:safl将距离窗口回复最近的[eot]表示e
[eot]
输入到分类层之中计算多轮
对话上下文与回复之间的合理性分数,公式如下:
[0028]
g(wc,wr)=σ(w
wte[eot]
+bw)
[0029]
其中,wc,wr表示窗口数据中的上下文和回复,ww是预测层中可训练的参数,σ(
·
)表示sigmoid激活函数;
[0030]
步骤b24:随机滑动窗口回复预测任务针对目标函数采用梯度下降的方式进行优化,目标函数采用交叉熵损失函数来评估当前打分与真实对话窗口标签的差异,具体公式如下:
[0031][0032]
其中d'代表窗口数据集;
[0033]
步骤b25:对话结构感知任务,即模型的第二个辅助任务在多轮对话上下文中采样连续的对话片段,并将其输入bert进行编码,具体公式如下:
[0034]”={[cls],u1,[eot],...,ui,[eot],...,us,[eot]}
[0035]e″
=bert(x”)
[0036]
其中输入数据中包含着s个话语以及其对应的局部语义标签,这些话语是从对话上下文中抽取出的连续对话片段,其中s为一个超参数,用于控制抽取片段的长度大小;
[0037]
步骤b26:safl将当前对话片段中的每一个话语作为一个节点,建立一个全连接的对话结构图,同时根据对话人说话的先后顺序赋予每条边不同的关系;
[0038]
步骤b27:safl模型从e”中抽取s个话语对应的语义表征,作为对话结构图中的节点表示,采用带关系的gcn进行编码,具体公式如下:
[0039][0040][0041]
其中,r表示所有的边关系集合,n表示图中所有节点的集合,c
i,r
是自动学习的边关系系数,wr、wm是模型需要学习的参数;得到带关系的gcn模块输出后,再采用非关系gcn进一步学习对话结构信息,具体公式如下:
[0042][0043]
其中,w
nr
、w
nm
是第二层gcn中需要学习的参数;
[0044]
步骤b28:得到对话结构模块的输出后,safl模型将所有输出进行拼接,获得整体的对话结构表示,并使用线性层计算分数:
[0045][0046]
g(ws)=σ(wte
s-ensemble
+b)
[0047]
步骤b29:对话结构感知任务针对目标函数采用梯度下降的方式进行优化,目标函
数采用交叉熵损失函数来评估当前对话片段结构是否合理,具体公式如下:
[0048][0049]
其中,ws表示着当前对话片段数据,d”表示对话片段数据集。
[0050]
进一步地,所述步骤b3具体包括以下步骤:
[0051]
步骤b31:重点局部信息蒸馏模块在对话上下文的每一句话后面都埋设了特殊标签[eot],如下列公式所示:
[0052]
x={[cls],u1,[eot],u2,[eot],

,[eot],um,[sep],r,[sep]}
[0053]
在预训练语言模型深度注意力机制与位置嵌入的共同作用下,每一个位置的特殊标签[eot]都学习到在各自特定位置上与周边文本的交互信息;同时,随机滑动窗口回复预测任务优化的过程中使用窗口之中的最后一个[eot]标签建立分类任务,逐步学习到鉴别窗口回复能力;[eot]这个特殊的标签的嵌入表示逐渐学习到一个正确句子的表示,且更加关注局部区域的文本;
[0054]
步骤b32:在特征融合阶段,重点局部信息蒸馏模块从预训练语言模型的输出之中选取距离回复最近的n个局部语义表征作为多粒度的局部信息,同时使用拼接的方式将局部信息聚合成一个整体,具体公式如下:
[0055][0056]
其中,l表示距离回复最近的条目,n是一个超参数,用于代表取出[eot]表征的个数;
[0057]
步骤b33:得到多粒度的局部信息表征后,重点局部信息蒸馏模块采用多路门控机制过滤全局语义表示中的噪声;具体的,该模块采用每一种粒度的局部语义表示去和全局语义表示做门控选择:
[0058][0059][0060]
步骤b34:全局语义表示在经过多路门控选择后,根据不同粒度局部语义表示蒸馏得到不同粒度的混和语义表示fusionk,受门控机制的影响,每一个粒度的混和语义表示都包含了全局语义表示与当前粒度局部语义表示中最重要的部分;重点局部信息蒸馏模块进一步将由多路门控选择得到的多粒度混合语义表示与多粒度的局部语义表示进行拼接作为预测层的输入:
[0061][0062]
步骤b35:将聚合后的特征表示输入到分类层中计算当前多轮对话上下文与回复的合理性分数,公式如下:
[0063]
g(c,r)=σ(wte
ensemble
+b)
[0064]
其中,w是可训练的参数,σ(
·
)表示sigmoid激活函数,b是当前分类层的偏置项;
[0065]
步骤b36:safl使用梯度下降的方式更新学习模型中的参数,同时针对多轮对话回复选择任务采用交叉熵作为损失函数,具体公式如下:
[0066][0067]
结合上随机滑动窗口回复预测任务以及对话结构感知任务的优化目标,safl最终的损失函数为:
[0068]
loss=loss
main
+αloss
window
+βloss
dsa
[0069]
其中α和β是两个超参数,分别用于控制两个辅助任务对于safl的影响力。
[0070]
本发明还提供了采用上述方法的基于细粒度局部信息增强的对话结构感知对话系统,包括:
[0071]
数据收集模块,用于收集特定领域的多轮对话样本,并标注多轮对话数据中的每个问题对应的回复的答案正负标签,构建带正负标签的多轮对话回复选择训练集d;
[0072]
预训练语言模型编码模块,包括预训练语言模型,预训练语言模型主要由嵌入层和多层多头注意力机制组成;将训练集d的每个三元组形式的训练样本被送入预训练语言模型bert之中,利用预训练语言模型的多层注意力机制学习到结合语境的上下文语义表示;同时safl采用多任务学习的方式充分挖掘预训练语言模型的语义理解能力;
[0073]
辅助任务模块,safl将预训练语言模型参数导出,使用随机滑动窗口回复预测任务进一步加强预训练语言模型对于对话局部信息的理解能力;同时采用了对话结构感知任务,通过图结构建立起语句之间的以来关系,让模型从对话结构的角度理解多轮对话上下文,进一步增强了对话系统的效果;
[0074]
重点局部信息蒸馏模块,在多轮对话回复选择任务中,safl模型采用重点局部信息蒸馏模块从预训练语言模型的输出中提取出细粒度的局部语义信息,通过门控机制对全局信息和局部信息进行进一步的融合筛选,并将筛选得到的融合特征与多粒度局部信息进行融合,输入到分类层中进行分类分数计算,评估当前回复是否对应给定的多轮对话上下文;最后根据目标损失函数,利用反向传播方法计算深度学习网络模型safl中的各参数的梯度,并利用随机梯度下降方法更新参数;
[0075]
网络训练模块,当深度学习网络模型safl产生的损失值迭代变化小于设定阈值不再降低或者达到最大迭代次数,终止深度学习网络模型safl的训练。
[0076]
与现有技术相比,本发明具有以下有益效果:提供了一种基于细粒度局部信息增强的对话结构感知对话方法及系统,该方法及系统基于细粒度局部信息增强的对话结构感知深度学习网络模型,利用预训练语言模型的多层注意力机制学习结合语境的上下文语义表示,同时采用多任务学习方式挖掘预训练语言模型的语义理解能力,还采用重点局部信息蒸馏模块从预训练语言模型的输出中提取出细粒度的局部语义信息,通过门控机制对全局信息和局部信息进行进一步的融合筛选,并将筛选得到的融合特征与多粒度局部信息进行融合,从而获取对应多轮对话上下文最合适的回复。本发明能够有效提高提高多轮对话回复选择的精确度,具有很强的实用性和广阔的应用前景。
附图说明
[0077]
图1是本发明实施例的方法实现流程图;
[0078]
图2是本发明实施例中深度学习模型safl架构图;
[0079]
图3是本发明实施例中对话结构感知任务结构图;
[0080]
图4是本发明实施例中重点局部信息蒸馏模块结构图。
具体实施方式
[0081]
下面结合附图及实施例对本发明做进一步说明。
[0082]
应该指出,以下详细说明都是示例性的,旨在对本技术提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本技术所属技术领域的普通技术人员通常理解的相同含义。
[0083]
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本技术的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
[0084]
如图1所示,本实施例提供了一种基于细粒度局部信息增强的对话结构感知对话方法,包括以下步骤:
[0085]
步骤a:获取特定场景的多轮对话文本,并标注每个多轮对话回复所属的类别,构建带正负类别标签的训练集d。
[0086]
步骤b:使用训练集d训练细粒度局部信息增强的对话结构感知深度学习网络模型safl,用于选择给定多轮对话上下文对应的回复。
[0087]
所述步骤b具体包括以下步骤:
[0088]
步骤b1:将训练集d的每个三元组形式的训练样本作为safl模型的输入,所述三元组形式的训练样本包括多轮对话上下文、回复、标签;safl模型使用预训练语言模型bert作为基础,利用bert的多层注意力机制学习到结合语境的上下文语义表示;同时safl模型采用多任务学习方式挖掘bert的语义理解能力,主任务是多轮对话回复选择任务,辅助任务是随机滑动窗口回复预测任务以及对话结构感知任务。深度学习模型safl架构如图2所示。所述步骤b1具体包括以下步骤:
[0089]
步骤b11:将u代表上下文中的话语,r代表回复,m代表着话语的个数,将safl的输入拼接成如下长序列形式:
[0090]
x={[cls],u1,[eot],u2,[eot],

,[eot],um,[sep],r,[sep]}
[0091]
其中,x为拼接得到的长文本;[cls]和[sep]为分隔符,[eot]为safl用于学习局部信息的特殊标记。
[0092]
步骤b12:通过预训练语言模型bert的词典与模型的嵌入层,将x分别映射为词嵌入表示、位置嵌入表示与段落嵌入表示。
[0093]
步骤b13:将每个词的词嵌入表示、位置嵌入表示与段落嵌入表示相加,得到融合后的嵌入表示,并使用bert的多层transformer网络进行编码,从而获取到序列的高层语义特征表示e。
[0094]
步骤b2:在辅助任务部分,safl模型导出预训练语言模型bert,利用随机滑动窗口回复预测任务以及对话结构感知任务优化预训练语言模型。随机滑动窗口回复预测任务在多轮对话上下文中采样不同位置、大小的窗口数据,使用预训练语言模型编码对话窗口,加强预训练语言模型对于对话局部信息的理解能力。对话结构感知任务结构如图3所示。对话结构感知任务根据对话人说话的先后顺序构造图结构,并使用gcn进行编码,促使预训练语
言模型学习正确的对话结构所具备的特征,让预训练语言模型从另一个角度理解对话数据。所述步骤b2具体包括以下步骤:
[0095]
步骤b21:在随机滑动窗口回复预测任务,即模型的第一个辅助任务中,safl将滑动窗口的大小、位置都设为随机,采样落在滑动窗口内的局部对话上下文,并在局部对话上下文的每一个话语后面插入特殊标签[eot],如下列公式所示:
[0096][0097]
其中,x'是子任务的输入,与主任务不同,x'只保留窗口内部的信息,其他的信息由[pad]替代,w代表当前窗口的大小,m代表完整的对话上下文中的话语个数,κ是一个超参数,代表最小窗口的大小。
[0098]
步骤b22:将所述预训练语言模型bert,即导出bert模型的各项参数,利用它对落在滑动窗口内的局部对话上下文数据进行编码,让bert学习到不同质量的对话数据,增强预训练语言模型的语义理解能力,公式如下:
[0099]
e'=bert(x

)。
[0100]
步骤b23:safl将距离窗口回复最近的[eot]表示e
[eot]
输入到分类层之中计算多轮对话上下文与回复之间的合理性分数,公式如下:
[0101]
g(wc,wr)=σ(w
wte[eot]
+bw)
[0102]
其中,wc,wr表示窗口数据中的上下文和回复,ww是预测层中可训练的参数,σ(
·
)表示sigmoid激活函数。
[0103]
步骤b24:随机滑动窗口回复预测任务针对目标函数采用梯度下降的方式进行优化,目标函数采用交叉熵损失函数来评估当前打分与真实对话窗口标签的差异,具体公式如下:
[0104][0105]
其中d'代表窗口数据集。
[0106]
步骤b25:对话结构感知任务,即模型的第二个辅助任务在多轮对话上下文中采样连续的对话片段,并将其输入bert进行编码,具体公式如下:
[0107]”={[cls],u1,[eot],...,ui,[eot],...,us,[eot]}
[0108]e″
=bert(x”)
[0109]
其中输入数据中包含着s个话语以及其对应的局部语义标签,这些话语是从对话上下文中抽取出的连续对话片段,其中s为一个超参数,用于控制抽取片段的长度大小。
[0110]
步骤b26:safl将当前对话片段中的每一个话语作为一个节点,建立一个全连接的对话结构图,同时根据对话人说话的先后顺序赋予每条边不同的关系。
[0111]
其中,定义关系如下表所示,p(ui)表示了上下文中的第i个话语所属的对话人,p1、p2分别表示第一个对话人与第二个对话人,i《j表示了第i个话语在上下文中的位置较第j个话语更加靠前。同时由于对话中每个话语都可能和其他的话语有一定的关联性,因此safl模型建立全连接图,并根据下表的关系赋予图中每一条边不同的边关系,最终得到图能够表达对话文本中各语句之间的关系。
[0112][0113]
步骤b27:safl模型从e”中抽取s个话语对应的语义表征,作为对话结构图中的节点表示,采用带关系的gcn进行编码,具体公式如下:
[0114][0115][0116]
其中,r表示所有的边关系集合,n表示图中所有节点的集合,c
i,r
是自动学习的边关系系数,wr、wm是模型需要学习的参数;得到带关系的gcn模块输出后,再采用非关系gcn进一步学习对话结构信息,具体公式如下:
[0117][0118]
其中,w
nr
、w
nm
是第二层gcn中需要学习的参数。
[0119]
步骤b28:得到对话结构模块的输出后,safl模型将所有输出进行拼接,获得整体的对话结构表示,并使用线性层计算分数:
[0120][0121]
g(ws)=σ(wt
es-ensemble
+b)
[0122]
步骤b29:对话结构感知任务针对目标函数采用梯度下降的方式进行优化,目标函数采用交叉熵损失函数来评估当前对话片段结构是否合理,具体公式如下:
[0123][0124]
其中,ws表示着当前对话片段数据,d”表示对话片段数据集。
[0125]
步骤b3:在主任务,即多轮对话回复选择任务中,safl模型采用如图4所示的重点局部信息蒸馏模块从预训练语言模型的输出中提取出细粒度的局部语义信息,通过门控机制对全局信息和局部信息进行进一步的融合筛选,并将筛选得到的融合特征与多粒度局部信息进行融合,输入到分类层中进行多轮对话上下文与回复之间的合理性分数的计算,评
估当前回复是否对应给定的多轮对话上下文;最后根据目标损失函数,利用反向传播方法计算深度学习网络模型safl中的各参数的梯度,并利用随机梯度下降方法更新参数。所述步骤b3具体包括以下步骤:
[0126]
步骤b31:重点局部信息蒸馏模块在对话上下文的每一句话后面都埋设了特殊标签[eot],如下列公式所示:
[0127]
x={[cls],u1,[eot],u2,[eot],

,[eot],um,[sep],r,[sep]}
[0128]
在预训练语言模型深度注意力机制与位置嵌入的共同作用下,每一个位置的特殊标签[eot]都学习到在各自特定位置上与周边文本的交互信息;同时,随机滑动窗口回复预测任务优化的过程中使用窗口之中的最后一个[eot]标签建立分类任务,逐步学习到鉴别窗口回复能力;[eot]这个特殊的标签的嵌入表示逐渐学习到一个正确句子的表示,且更加关注局部区域的文本。
[0129]
步骤b32:在特征融合阶段,重点局部信息蒸馏模块从预训练语言模型的输出之中选取距离回复最近的n个局部语义表征作为多粒度的局部信息,同时使用拼接的方式将局部信息聚合成一个整体,具体公式如下:
[0130][0131]
其中,l表示距离回复最近的条目,n是一个超参数,用于代表取出[eot]表征的个数。
[0132]
步骤b33:得到多粒度的局部信息表征后,重点局部信息蒸馏模块采用多路门控机制过滤全局语义表示中的噪声;具体的,该模块采用每一种粒度的局部语义表示去和全局语义表示做门控选择:
[0133][0134][0135]
步骤b34:全局语义表示在经过多路门控选择后,根据不同粒度局部语义表示蒸馏得到不同粒度的混和语义表示fusionk,受门控机制的影响,每一个粒度的混和语义表示都包含了全局语义表示与当前粒度局部语义表示中最重要的部分;重点局部信息蒸馏模块进一步将由多路门控选择得到的多粒度混合语义表示与多粒度的局部语义表示进行拼接作为预测层的输入:
[0136][0137]
步骤b35:将聚合后的特征表示输入到分类层中计算当前多轮对话上下文与回复的合理性分数,公式如下:
[0138]
g(c,r)=σ(w
teensemble
+b)
[0139]
其中,w是可训练的参数,σ(
·
)表示sigmoid激活函数,b是当前分类层的偏置项。
[0140]
步骤b36:safl使用梯度下降的方式更新学习模型中的参数,同时针对多轮对话回复选择任务采用交叉熵作为损失函数,具体公式如下:
[0141][0142]
结合上随机滑动窗口回复预测任务以及对话结构感知任务的优化目标,safl最终
的损失函数为:
[0143]
loss=loss
main
+αloss
window
+βloss
dsa
[0144]
其中α和β是两个超参数,分别用于控制两个辅助任务对于safl的影响力。
[0145]
步骤b4:当深度学习网络模型safl产生的损失值迭代变化小于设定阈值或达到最大迭代次数,终止深度学习网络模型safl的训练。
[0146]
步骤c:将多轮对话上下文与回复集输入到训练后的深度学习网络模型safl中,得到对应多轮对话上下文最合适的回复。
[0147]
本实施例还提供了采用上述方法的基于细粒度局部信息增强的对话结构感知对话系统,包括数据收集模块、预训练语言模型编码模块、辅助任务模块、重点局部信息蒸馏模块和网络训练模块。
[0148]
所述数据收集模块用于收集特定领域的多轮对话样本,并标注多轮对话数据中的每个问题对应的回复的答案正负标签,构建带正负标签的多轮对话回复选择训练集d。
[0149]
所述预训练语言模型编码模块包括预训练语言模型,预训练语言模型主要由嵌入层和多层多头注意力机制组成;将训练集d的每个三元组形式的训练样本被送入预训练语言模型bert之中,利用预训练语言模型的多层注意力机制学习到结合语境的上下文语义表示;同时safl采用多任务学习的方式充分挖掘预训练语言模型的语义理解能力。
[0150]
在辅助任务模块中,safl将预训练语言模型参数导出,使用随机滑动窗口回复预测任务进一步加强预训练语言模型对于对话局部信息的理解能力;同时采用了对话结构感知任务,通过图结构建立起语句之间的以来关系,让模型从对话结构的角度理解多轮对话上下文,进一步增强了对话系统的效果。
[0151]
在多轮对话回复选择任务中,safl模型采用重点局部信息蒸馏模块从预训练语言模型的输出中提取出细粒度的局部语义信息,通过门控机制对全局信息和局部信息进行进一步的融合筛选,并将筛选得到的融合特征与多粒度局部信息进行融合,输入到分类层中进行多轮对话上下文与回复的合理性分数计算,评估当前回复是否对应给定的多轮对话上下文;最后根据目标损失函数,利用反向传播方法计算深度学习网络模型safl中的各参数的梯度,并利用随机梯度下降方法更新参数。
[0152]
所述网络训练模块用于网络模型的训练,当深度学习网络模型safl产生的损失值迭代变化小于设定阈值不再降低或者达到最大迭代次数,终止深度学习网络模型safl的训练。
[0153]
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1