基于生成式预训练语言模型的检索式对话建模与优化方法
未命名
08-15
阅读:90
评论:0
1.本发明涉及自然语言处理的技术领域,尤其是指一种基于生成式预训练语言模型的检索式对话建模与优化方法。
背景技术:
2.对话系统是自然语言处理技术的一项重要应用,它能够模拟人类与计算机之间的交流,实现自然语言的输入与输出,从而完成任务或是提供服务。随着互联网的发展、大数据时代的来临,得益于更容易获取的海量数据,深度学习取得了突破性的发展,也推动了自然语言处理技术的进步。对话系统也从中受益,在客服和智能助理、金融和保险、医疗和健康、教育和培训、娱乐和社交等诸多领域都有广泛的应用。检索所对话系统就是对话系统中的一个重要类别,其目标是从一个预先定义好的候选池中选取最符合当前对话上下文的候选回复,此类系统实现简单,回复多样且可控,在业界有着重要应用。
3.预训练语言模型是最近几年自然语言处理领域的重要成果之一,这类具有巨大参数量的模型在多项自然语言处理任务上的表现取得了飞跃式的提升,有望在实际应用中解决更加棘手的问题,进一步地改善人类的生活、解放生产力。同样,这类模型在对话系统中的应用也具有极大潜力。由于其参数量巨大,往往所需要的计算时间也越长,而在多服务于在线场景中的对话系统而言,响应时间往往是最重要的指标之一。尤其对于检索式对话系统而言,回复的多样性和准确性取决于候选池的大小,而越大的候选池就意味着越多的计算量和越长的用户等待时间,这便给预训练语言模型的应用带来了一定的挑战。另一方面,现有基于预训练语言模型的检索式对话建模方法未能考虑对话数据结构的特点,模型对上下文和候选回复的建模不够明确,系统的召回率仍然有提升空间。
4.一个典型的现有方法为whang等人提出的使用bert为检索式对话系统建模的方法(whang t,lee d,lee c,et al.an effective domain adaptive post-training method for bert in response selection[j].arxiv preprint arxiv:1908.04812,2019)。该方法将对话上下文和候选回复拼接为一个长序列作为模型的输入。以这种方式建模,则计算时间正比于候选回复的数量,在在线场景中计算时间将会很长,用户可能会因为失去耐心而离开系统。此外,该方法仅使用了简单的训练方式,未能充分利用对话数据的结构特性。
技术实现要素:
[0005]
本发明的第一目的在于提出一种基于生成式与训练语言模型改进的检索式对话系统建模方法,通过可以有效地解耦合对话上下文和候选回复,从而降低系统在在线场景中的计算时间。
[0006]
本发明的第二目的在于提出一种基于去噪自编码器式预训练的模型优化方式,通过三种源文本破坏策略,使用去噪自编码器的方式让模型重构受损文本,充分利用生成式模型的表达能力,有效提升检索式对话系统的召回率。
[0007]
本发明至少通过如下技术方案之一实现。
[0008]
基于生成式预训练语言模型的检索式对话建模与优化方法,包括以下步骤:
[0009]
建立多轮对话数据集;
[0010]
构建基于bart改进的网络模型,并在多轮对话数据集上对基于bart改进的网络模型进行训练;
[0011]
使用训练完成后的基于bart改进的网络模型构建检索式对话系统,检索式对话系统接受任意输入作为对话上下文,读取储存的候选回复向量序列,并用基于bart改进的网络模型计算出候选回复与对话上下文相匹配的概率,并选择概率最高的作为对话系统输出的回复。
[0012]
进一步地,所述多轮对话数据集d,包括n个样本:
[0013][0014]
其中,每个样本为由ci,ri,yi组成的三元组,ci,ri,yi分别表示数据集中第i个样本的对话上下文、回复和标签,其中,对话上下文为ci={u
i,1
,u
i,2
,
…
,u
i,j
,
…
,u
i,m
},u
i,j
表示第j轮用户和系统交替产生的发言,每段发言u
i,j
={w
i,j,1
,
…
,w
i,j,k
}为若干个不同单词k组成的句子,m为对话上下文的总对话轮数;回复ri是与上下文ci成对的单一句子,由若干个单词构成;标签yi取值为0或1,表示回复ri是否为上下文ci正确的回复,yi=0则表示回复ri是上下文ci的错误回复,yi=1则表示回复ri是上下文ci的正确回复。
[0015]
进一步地,所述基于bart改进的网络模型包括transformer编码器模块、改进后的transformer解码器模块、softmax分类器;
[0016]
所述transformer编码器模块由若干层transformer编码器堆叠而成,改进后的transformer解码器模块由若干层transformer解码器堆叠而成。
[0017]
进一步地,所述transformer编码器模块的输入:ri=([s],ri,[/s])为一个候选回复的句子,将输入序列先转换为词嵌入向量,然后词嵌入向量和位置嵌入向量相加得到由q维向量组成的序列,此序列将通过若干层transformer编码器,得到候选回复的最终状态向量序列。
[0018]
进一步地,改进后的transformer解码器模块的输入为co=([s],u
i,1
,[eot],u
i,2
,[eot],
…
,u
i,m
,[/s])为对话上下文中所有句子拼接而成的序列,其中[s]与[/s]为标志句子开始和结束的特殊符号,[eot]为在对话上下文每一个发言之间插入的特殊符号,表示一轮发言结束(end of turn),u
i,m
表示第m轮用户和系统交替产生的发言;将输入序列先转换为词嵌入向量,然后词嵌入向量和位置嵌入向量相加得到由q维向量组成的序列;得到的序列通过若干层的transformer编码器,其中还接受来自编码器的候选回复的最终状态向量序列,得到上下文的最终状态向量组成的序列。
[0019]
进一步地,在得到解码器的最终状态后,在特殊符号[s]的最终状态上接上一个线性层,使用softmax分类器进行分类,判断编码器端输入的候选回复是否为解码器端输入的对话上下文的合适回复,记[s]特殊符号的最终状态为e
[s]
,则候选回复ri和上下文ci分类结果的概率pi表示为:
[0020]
pi=softmax(tanh(we
[s]
+b))
[0021]
其中w和b分别为线性神经网络层的参数和偏置。
[0022]
进一步地,基于bart改进的网络模型通过去噪自编码器进行训练,所述训练包括以下步骤:
[0023]
使用文本破坏策略对训练数据进行加噪处理;
[0024]
使用加噪文本对基于bart改进的网络模型进行预训练,在基于bart改进的网络模型的编码器端输入加噪文本,在解码器端输出去噪后的文本,训练目标函数为最小化模型输出文本和源文本的交叉熵:
[0025][0026]
其中h为加噪过程中所有被遮盖的单词的数量,pi为基于bart改进的网络模型预测正确单词的概率。
[0027]
进一步地,通过二分类交叉熵最小化损失函数微调基于bart改进的网络模型:
[0028]
l=-yilog(pi)-(1-yi)log(1-pi)
[0029]
其中l为数据集中单个三元组样本的损失函数,yi为候选回复ri与上下文ci的标签,取值为0或1;pi为基于bart改进的网络模型预测的上下文与候选回复为正确的概率。
[0030]
进一步地,文本破坏策略包括:
[0031]
如果训练的输入句子来自候选回复或是发言轮数为1的对话上下文,则使用文字填充策略来破坏文本:迭代地随机选择单词作为起点,若单词被选中,则从λ=3的泊松分布中抽样出需要破坏的文本的长度n,将该单词以及后续连续的n个单词都替换为单个[mask]特殊字符,连续的n个单词称作一个span;若n=0,则相当于在选中单词后面插入一个[mask]特殊字符,重复此步骤,直到对话上下文中有15%的单词被替换成[mask]字符。
[0032]
进一步地,文本破坏策略包括:
[0033]
如果训练的输入句子来自轮数大于1的对话上下文,则使用发言遮盖策略来破坏文本:随机选择上下文中的一句发言,将这句发言直接替换为单个特殊字符[mask]。
[0034]
与现有的技术相比,本发明的有益效果为:
[0035]
本发明充分地利用了生成式语言模型和检索式对话数据特点,创新地提出了3种预训练文本破坏策略,通过更难的生成式训练任务,在预训练阶段强迫模型学习到更多的语言基本模式和规律,从而提升模型在下游任务上的性能。此外,通过使用编码器-解码器的结构对检索式对话建模,可以有效地解耦合对话上下文和候选回复的计算,将一部分计算任务转移至离线进行,从而降低在线计算的时间。
附图说明
[0036]
图1为实施例基于生成式预训练语言模型的检索式对话建模与优化方法流程示意图;
[0037]
图2为实施例改进的transformer解码器模块示意图;
[0038]
图3为实施例基于bart改进的网络模型训练步骤示意图;
[0039]
图4为实施例基于bart改进的网络模型应用示意图。
具体实施方式
[0040]
为了使本技术领域的人员更好地理解本发明方案,以下将结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不
是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0041]
如图1所示,本实施例基于生成式预训练语言模型的检索式对话建模与优化方法,包括以下步骤:
[0042]
建立多轮对话数据集:考虑用户与系统的多轮对话数据集此数据集包含了n个三元组,其中ci,ri,yi分别表示数据集中第i个样本的对话上下文、回复和标签。对话上下文ci={u
i,1
,u
i,2
,
…
,u
i,j
,
…
,u
i,m
}由m轮过去由用户和系统交替产生的发言u
i,j
组成,每段发言u
i,j
={w
i,j,1
,
…
,w
i,j,k
}为若干个不同单词k组成的句子,m为对话上下文的总对话轮数,其中m对于每个上下文都可能是不同的。回复ri是与上下文ci成对的单一句子,也是由若干个单词构成。标签yi的取值为0或1,指示了回复ri是否为上下文ci正确的回复,yi=0则表示回复ri是上下文ci的错误回复,yi=1则表示回复ri是上下文ci的正确回复。
[0043]
构建基于bart改进的网络模型,并对基于bart改进的网络模型进行训练,使用训练完成后的基于bart改进的网络模型构建检索式对话系统,
[0044]
从数据集中构建任意大小的候选回复池,并用bart编码器将所有候选回复编码为向量的序列,用任意方式提前储存。对话系统接受任意输入作为对话上下文,读取储存好的候选回复向量序列,并用bart解码器编码器将某个候选回复的向量序列和对话上下文一同计算,计算出该候选回复与对话上下文相匹配的概率。用此方式计算出所有候选回复的匹配概率,并选择概率最高的作为对话系统输出的回复。此种方式构建的检索式对话系统可以用于电话智能客服、网页导航等场景。
[0045]
所述基于bart改进的网络模型包括transformer编码器模块、改进的transformer解码器模块、softmax分类器;
[0046]
如图1所示,在编码器端,输入序列为一个候选回复的句子:ri=([s],ri,[/s])。其中,[s]和[/s]为bart所使用的特殊符号,标记句子的开头与结束。在解码器端,输入为:ci=([s],u
i,1
,[eot],u
i,2
,[eot],
…
,u
i,m
,[/s]),为对话上下文中所有句子拼接而成的序列。在编码器端,输入序列将先转换为词嵌入,然后和位置嵌入相加得到一个由768维向量组成的序列。这些向量将通过若干层的transformer编码器模块,得到由词的最终状态组成的序列。解码器端,输入序列依旧通过词嵌入和位置嵌入转换为向量的序列,然后通过说话人嵌入序列。说话人嵌入设置如下,对于与候选回复为同一说话人的句子,说话人嵌入在其每个序列位置上均为1,否则为0。然后向量序列通过若干层transformer解码器,其中的自注意力机制被改进为双向注意力机制,以增强模型性能。在得到解码器的最终状态后,在特殊符号[s]的最终状态上接上一个线性层,使用softmax分类器进行分类,判断编码器端输入的候选回复是否为解码器端输入的对话上下文的合适回复。记[s]特殊符号的最终状态为e
[s]
,则候选回复ri和上下文ci分类结果pi的概率可以表示为:
[0047]
pi=softmax(tanh(we
[s]
+b))
[0048]
其中w和b分别为线性神经网络层的参数和偏置。通过二分类交叉熵最小化损失函数来训练整个模型:
[0049]
l=-yilog(pi)-(1-yi)log(1-pi)
[0050]
作为一种优选的实施例,所述transformer编码器模块由6层transformer编码器堆叠而成,改进的transformer解码器模块由6层transformer解码器堆叠而成;所述
transformer编码器模块的输入:ri=([s],ri,[/s])为一个候选回复的句子,transformer编码器模块将输入序列先转换为词嵌入向量,然后词嵌入向量和位置嵌入向量相加得到由1024维向量组成的序列,此序列将通过6层transformer编码器,得到候选回复的最终状态向量序列。
[0051]
图2所示为改进后的transformer解码器模块,在原transformer解码器基础上作出如下改进:原有transformer解码器的自注意力层为单向自注意力层,本发明将其改进为双向自注意力。与单向注意力相比,双向注意力可以让当前位置的单词与其前后单词都进行语义匹配,能够有效增强模型的理解能力。
[0052]
所述改进的transformer解码器模块的输入为co=([s],u
i,1
,[eot],u
i,2
,[eot],
…
,u
i,m
,[/s])为对话上下文中所有句子拼接而成的序列,其中[s]与[/s]为标志句子开始和结束的特殊符号,[eot]为在对话上下文每一个发言之间插入的特殊符号,表示一轮发言结束(end of turn),u
i,m
表示第m轮用户和系统交替产生的发言;将输入序列先转换为词嵌入向量,然后词嵌入向量和位置嵌入向量相加得到由1024维向量组成的序列;得到的序列通过6层的transformer编码器,其中还接受来自编码器的候选回复的最终状态向量序列,得到上下文的最终状态向量组成的序列。
[0053]
通过去噪自编码器的方式预训练基于bart改进的网络模型。首先使用三种文本破坏方式为源文本增加噪声:
[0054]
如果输入文本为候选回复,如果预训练的输入句子来自候选回复或是发言轮数为1的对话上下文,则使用文字填充策略来破坏文本。迭代地随机选择单词作为起点,若单词被选中,则从λ=3的泊松分布中抽样出需要破坏的文本的长度n,将该单词以及后续连续的n个单词都替换为单个[mask]特殊字符,这连续的n个单词称作一个span。若n=0,则相当于在选中单词后面插入一个[mask]特殊字符。重复此步骤,直到对话上下文中有15%的单词被替换成了[mask]字符。
[0055]
如果预训练的输入句子来自轮数大于1的对话上下文,则使用发言遮盖策略来破坏文本。随机选择上下文中的一句发言,将这句发言直接替换为单个特殊字符[mask]。这个策略可以看作是文字填充策略的一种特例,可以教会模型学习上下文关系。
[0056]
作为一种实施例,假设给定一个对话上下文c={[s],u1,[eot],
…
,[eot],um,[/s]},替换后可能有:c={[s],[mask],[eot],
…
,[eot],um,[/s]},其中特殊字符[mask]替换了发言u1中的所有词。
[0057]
如果预训练的输入句子来自对话上下文,在应用发言遮盖策略破坏了源文本后,继续对其使用上下文发言打乱策略。以[s]、[/s]和[eot]特殊字符为分隔,将上下文原文分割为多个完整的发言,然后将发言打乱。这个策略可以教会模型理解对话上下文内的逻辑关系。
[0058]
作为另一种实施例,给定一个对话上下文c={[s],u1,[eot],
…
,[eot],um,[/s]},将所有的对话发言u1,
…
,um打乱顺序,得到新的对话上下文可以是c
′
={[s],u3,[eot],um,[eot],
…
,u1,[/s])。
[0059]
使用以上方法损坏文本后,用其作为编码器的输入,去噪自编码器的方式进行预训练模型,以得到基于bart改进的对话检索模型。去噪自编码器的方式指的是通过输入有噪声文本至模型,并期望模型还原出无噪声文本的形式。具体做法为通过优化重构损失来
完成预训练,目标为最小化解码器输出和源文本的交叉熵,公式为:
[0060][0061]
其中h为所有被遮盖的单词的数量,pi为模型预测正确单词的概率。
[0062]
如图4所示,通过本发明获得训练好的模型以后,即可用于构建检索式对话系统。以电商客服为具体应用场景为例,原始对话数据可以来自现有的人工客服与客户的对话。通过从原始数据构建训练用的对话数据集,利用本发明所提出的方式进行预训练与微调后,将模型投入到实际对话系统中,作为智能客服与用户进行交互。电商对话通常由用户先发起,用户先对客服进行提问:“怎么发起退款?”假设此时候选池中有如下3个回复:(1)“请问您遇到什么问题需要退款呢?”(2)“我们会尽快为您发货”(3)“今天下单明天就会发货”。应用了本发明的对话系统已经为这3个候选回复提前计算好向量表示。在用户提问后,使用本发明提出的模型分别计算对话上下文“怎么发起退款?”与3个候选回复的匹配概率,然后选择概率最高的回复(1)作为回复。
[0063]
以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。
技术特征:
1.基于生成式预训练语言模型的检索式对话建模与优化方法,其特征在于,包括以下步骤:建立多轮对话数据集;构建基于bart改进的网络模型,并在多轮对话数据集上对基于bart改进的网络模型进行训练;使用训练完成后的基于bart改进的网络模型构建检索式对话系统,检索式对话系统接受任意输入作为对话上下文,读取储存的候选回复向量序列,并用基于bart改进的网络模型计算出候选回复与对话上下文相匹配的概率,并选择概率最高的作为对话系统输出的回复。2.根据权利要求1所述的基于生成式预训练语言模型的检索式对话建模与优化方法,其特征在于,所述多轮对话数据集d,包括n个样本:其中,每个样本为由c
i
,r
i
,y
i
组成的三元组,c
i
,r
i
,y
i
分别表示数据集中第i个样本的对话上下文、回复和标签,其中,对话上下文为c
i
={u
i,1
,u
i,2
,...,u
i,j
,...,u
i,m
},u
i,j
表示第j轮用户和系统交替产生的发言,每段发言u
i,j
={w
i,j,1
,...,w
i,j,k
}为若干个不同单词k组成的句子,m为对话上下文的总对话轮数;回复r
i
是与上下文c
i
成对的单一句子,由若干个单词构成;标签y
i
取值为0或1,表示回复r
i
是否为上下文c
i
正确的回复,y
i
=0则表示回复r
i
是上下文c
i
的错误回复,y
i
=1则表示回复r
i
是上下文c
i
的正确回复。3.根据权利要求1所述的基于生成式预训练语言模型的检索式对话建模与优化方法,其特征在于,所述基于bart改进的网络模型包括transformer编码器模块、改进后的transformer解码器模块、softmax分类器;所述transformer编码器模块由若干层transformer编码器堆叠而成,改进后的transformer解码器模块由若干层transformer解码器堆叠而成。4.根据权利要求3所述的基于生成式预训练语言模型的检索式对话建模与优化方法,其特征在于,所述transformer编码器模块的输入:r
i
=([s],r
i
,[/s])为一个候选回复的句子,将输入序列先转换为词嵌入向量,然后词嵌入向量和位置嵌入向量相加得到由q维向量组成的序列,此序列将通过若干层transformer编码器,得到候选回复的最终状态向量序列。5.根据权利要求3所述的基于生成式预训练语言模型的检索式对话建模与优化方法,其特征在于,改进后的transformer解码器模块的输入为c
o
=([s],u
i,1
,[eot],u
i,2
,[eot],...,u
i,m
,[/s])为对话上下文中所有句子拼接而成的序列,其中[s]与[/s]为标志句子开始和结束的特殊符号,[eot]为在对话上下文每一个发言之间插入的特殊符号,表示一轮发言结束(end of turn),u
i,m
表示第m轮用户和系统交替产生的发言;将输入序列先转换为词嵌入向量,然后词嵌入向量和位置嵌入向量相加得到由q维向量组成的序列;得到的序列通过若干层的transformer编码器,其中还接受来自编码器的候选回复的最终状态向量序列,得到上下文的最终状态向量组成的序列。6.根据权利要求5所述的基于生成式预训练语言模型的检索式对话建模与优化方法,其特征在于,在得到解码器的最终状态后,在特殊符号[s]的最终状态上接上一个线性层,使用softmax分类器进行分类,判断编码器端输入的候选回复是否为解码器端输入的对话
上下文的合适回复,记[s]特殊符号的最终状态为e
[s]
,则候选回复r
i
和上下文c
i
分类结果的概率p
i
表示为:p
i
=softmax(tanh(we
[s]
+b))其中w和b分别为线性神经网络层的参数和偏置。7.根据权利要求1~6任一项所述的基于生成式预训练语言模型的检索式对话建模与优化方法,其特征在于,基于bart改进的网络模型通过去噪自编码器进行训练,所述训练包括以下步骤:使用文本破坏策略对训练数据进行加噪处理;使用加噪文本对基于bart改进的网络模型进行预训练,在基于bart改进的网络模型的编码器端输入加噪文本,在解码器端输出去噪后的文本,训练目标函数为最小化模型输出文本和源文本的交叉熵:其中h为加噪过程中所有被遮盖的单词的数量,p
i
为基于bart改进的网络模型预测正确单词的概率。8.根据权利要求7所述的基于生成式预训练语言模型的检索式对话建模与优化方法,其特征在于,通过二分类交叉熵最小化损失函数微调基于bart改进的网络模型:其中为数据集中单个三元组样本的损失函数,y
i
为候选回复r
i
与上下文c
i
的标签,取值为0或1;p
i
为基于bart改进的网络模型预测的上下文与候选回复为正确的概率。9.根据权利要求7所述的基于生成式预训练语言模型的检索式对话建模与优化方法,其特征在于:文本破坏策略包括:如果训练的输入句子来自候选回复或是发言轮数为1的对话上下文,则使用文字填充策略来破坏文本:迭代地随机选择单词作为起点,若单词被选中,则从λ=3的泊松分布中抽样出需要破坏的文本的长度n,将该单词以及后续连续的n个单词都替换为单个[mask]特殊字符,连续的n个单词称作一个span;若n=0,则相当于在选中单词后面插入一个[mask]特殊字符,重复此步骤,直到对话上下文中有15%的单词被替换成[mask]字符。10.根据权利要求7所述的基于生成式预训练语言模型的检索式对话建模与优化方法,其特征在于:文本破坏策略包括:如果训练的输入句子来自轮数大于1的对话上下文,则使用发言遮盖策略来破坏文本:随机选择上下文中的一句发言,将这句发言直接替换为单个特殊字符[mask]。
技术总结
本发明公开了基于生成式预训练语言模型的检索式对话建模与优化方法,包括以下步骤:建立多轮对话数据集;构建基于BART改进的网络模型,并对基于BART改进的网络模型进行训练;使用训练完成后的基于BART改进的网络模型构建检索式对话系统,检索式对话系统接受任意输入作为对话上下文,读取储存的候选回复向量序列,并用基于BART改进的网络模型将某个候选回复的向量序列和对话上下文一同计算,计算出该候选回复与对话上下文相匹配的概率,并选择概率最高的作为对话系统输出的回复。率最高的作为对话系统输出的回复。率最高的作为对话系统输出的回复。
技术研发人员:钟竞辉 李江伟
受保护的技术使用者:华南理工大学
技术研发日:2023.04.14
技术公布日:2023/8/14
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
