基于单向Transformer和孪生网络的多轮任务型对话技术
2021-07-26刘超辉郑青青黄嘉曦
王 涛,刘超辉,郑青青,黄嘉曦
(深圳市易马达科技有限公司,广东深圳518055)
0 概述
使机器以自然语言的方式与人类进行交流,完成人类下达的任务,是人工智能[1-3]领域最具挑战的一项研究。1951年,图灵在《计算机与智能》一文中提出用人机对话来测试机器智能水平[4],随后掀起了关于人机对话研究的热潮。近年来,工业界更是将对话系统视为下一代人机交互的主要形式。2003年,BENGIO 等[5]率先将神经网络应用于自然语言处理任务,并取得了较好的效果。2010年,MIKOLOV等[6]提出的RNNLM 更是显著提高了语言模型的准确性,之后的循环神经网络(RNN)及其各种变体如LSTM[7]、GRU[8],开始逐渐成为自然语言处理领域的常用技术。Google 于2017年提出了一种新的序列建模模型Transformer[9],在自然语言处理(NLP)领域引起了极大的反响,而后BERT[10]的发布更是将自然语言处理技术推上了一个新的台阶。
任务型对话系统[11-12],即接受人类指令完成特定任务的对话系统是被工业界广泛使用的对话系统之一。相比于闲聊型对话系统,任务型对话系统存在以下难点:可供使用的数据集相对较小,面向任务的对话系统因为其任务的特殊性,很难像闲聊系统项目启动之初即拥有大量的闲聊对话数据可以使用,而面向任务的对话系统针对不同的任务,通常只能生成或取得非常少量的数据。任务型对话系统对应答的准确性要求较高,闲聊型对话系统应答出错一般情况下不会引起使用者的不适,而任务型对话系统应答出错会直接导致用户下达的指令或任务无法被完成。
为了解决上述问题,本文构建一种面向小数据集的任务型多轮对话控制模型。引入多个预训练模型[13]与工具,借助外部知识对句子语意和对话过程进行深度编码。通过对Transformer 模型做进一步精简,仅保留编码器[14]部分的单向Transformer,从而充分利用了多头自注意力机[9]优秀的特征提取能力,并且使精简后的单向模型可以支持并行计算,提升计算效率。在此基础上,将应答部分抽象成指令,利用孪生神经网络[15]在小数据集上的优势对指令进行基于相似度的排序,最终选取相似度最高的指令生成应答。
1 相关工作
无论是学术界还是工业界,关于对话机器人的研究一直都没有停止过。ZHOU[16]等提出了基于卷积神经网络[17]和循环神经网络的多轮对话检索模型,该模型将对话上下文信息作为输入,并从词序列和句子序列2 个视角来计算匹配分数,最终结合2 个分数来选择回复。基于词序列的视角将文本中所有词按顺序输入到一个GRU 中,将其隐藏向量作为文本的语义表示;句子序列的视角则基于卷积神经网络,先通过卷积和池化得到每个话语的表示,再输入到另一个GRU 中输出文本的表示。
随着Transformer的流行,越来越多的研究人员开始尝试用Transformer构建多轮对话模型。HENDERSON[18]等利用Transformer 在Reddit 数据集上构建了一个大型的多轮对话模型,其中在对话控制和回复生成上全都采用了Transformer 结构,取得了较好的效果,证明了Transformer 在多轮对话系统建模上的优秀性能。DINAN[19]等采用了一个类似的结构使用Transformer 对多轮对话进行建模,只是在回复生成部分,其设计提供了2 种方式:一种是检索式的,即Transformer 模型用于对回复部分进行排序:另一种是生成式的,即使用Transformer 直接生成token-bytoken 的回复。
2 多轮对话控制模型
本文提出的基于单向Transformer和孪生网络的多轮对话控制技术,引入了多个预训练模型来弥补数据样本集较小和信息不足的问题,借助外部知识对模型输入和对话过程进行深度编码,同时对Transformer 模型进行进一步精简,仅保留编码器部分的单向Transformer。最后的应答部分没有采用传统的分类模型,而是采用孪生神经网络,通过最大化对话之间的相似度来为当前的对话状态和每个回复指令进行建模。在预测阶段,将当前的对话状态与所有可能的回复指令进行比较,并选择具有最高相似度的指令生成回复。具体的模型结构如图1所示。
图1 控制模型结构Fig.1 Structure of control model
2.1 预训练模型
为了解决样本数量较小的问题,本文引入多个预训练模型和工具对句子语意和对话过程进行深度编码。首先充分利用预训练模型BERT 的先天优势将用户输入的文本编码成特征向量,同时利用斯坦福大学的StanfordNLP[20]工具对用户输入的文本进行进一步处理,提取出文本中包含的实体、预定义插槽等深度语义特征,并将上述抽取的特征统一进行one-hot 编码。除此以外,为了尽可能地保存对话状态,将上一轮对话输出的目标指令同样进行one-hot编码,一起加入到本轮对话的输入中,最后将上述3 种编码后的向量进行拼接,作为单向Transformer的输入。
2.2 单向Transformer
单向Transformer 的输入包含了系统的历史指令和文本的深度语义特征,如实体、插槽、预训练特征向量等,这样就可以充分利用Transformer 的自注意力机制,使其自发地选择一些重要的特征,同时忽略一些对对话过程影响不大的非重要特征,这一点在复杂多变的多轮对话中尤其重要。
2.3 孪生神经网络
本文将单向Transformer 的输出作为孪生神经网络的其中一个输入,再将目标指令的one-hot 编码作为另一个输入。在输出部分将正确的样本标记为1,错误的样本标记为0,同时由于某些指令要比其他指令多很多,负样本的数量也要比正样本多,因此采用随机采样算法处理样本均衡问题,最后通过优化孪生网络的损失函数训练模型。在预测阶段选用相似度最高的指令生成本轮对话中系统的回复。孪生神经网络的结构如图2所示。
图2 孪生神经网络结构Fig.2 Structure siamese network structure
3 实验验证
本文实验使用了2 个基线模型作为对比模型:第1 个是传统的基于LSTM 的seq2seq 模型[21],该模型是现阶段最稳定也是工业界应用最广泛的模型之一;第2 个是HENDERSON 等于2019年提出的基于Transformer 的模型,该模型是现阶段在任务型对话系统中表现最出色的模型之一。同时,使用MultiWOZ 2.1 数据集[22]分别进行了3 组实验:第1 组实验对比了预训练模型对最终结果的影响;第2 组实验通过缩减数据集规模,对比在小数据集下本文模型的表现效果;第3 组实验对比了本文模型与另外2 个模型在时间效率上的差别。
3.1 MultiWOZ 数据集
在任务型对话系统中,需要对下一步的指令进行预测,因此类似WikiQA[23]或DailyDialog[24]这样的数据集无法满足需求,因为例如“ok”“copy that”等回复实际对应的是同一个指令“YES”。因此,选用MultiWOZ 2.1 数据集作为本文的实验数据集。
MultiWOZ 2.1 数据集包含了酒店、饭馆、火车站、出租车、旅游景点、医院、警察局等7 个不同情境的对话数据集,共包含10 438 条数据。所有的对话都发生在用户和接待员之间。用户会问接待员相关问题,要求接待员完成相关任务,接待员会响应用户请求或要求用户补充相关信息,如要求用户提供姓名等。
在本次任务中,将数据集按7∶3 的比例划分成训练集和测试集,训练集7 307条数据,测试集3 131条数据。
3.2 深度编码实验结果
第1 轮实验中,采用全量的数据对上文基于LSTM、基于Transformer和本文模型进行有无深度编码的对比实验。在无深度编码的分组,使用常用的词向量[25]技术对用户输入进行编码;在深度编码分组,采用本文提出的使用预训练的BERT 对用户输入进行编码,同时融入了实体、插槽等深度特征。最终的实验结果如表1所示。
表1 深度编码实验数据Table 1 Experimental data of deep encoding
通过对比表1 的数据可以发现,在任务型对话系统中,由于机器的每轮回复都是非常明确的指令,因此传统的基于词向量的编码方式由于缺少任务中的关键信息而难以取得好的效果。分别对比3 个模型的词向量编码方式和深度编码方式,可以发现本文提出的深度编码方式总能取得更好的效果,特别是本文提出的模型相比于传统的LSTM 基于词向量的模型,在F1 Score 上取得了近3 倍的提升。
3.3 小数据集实验结果
第2 轮实验中,为了验证本文模型在小数据集上的表现效果,仅使用第1 轮实验1/5 的数据量,采用上述同样的深度编码的方式进行实验。实验结果如表2所示。
表2 小数据集实验数据Table 2 Experimental data of small dataset
通过对比表2 和表1 的数据可以发现,当训练数据缩减为原来的1/5 后,3 个模型的F1 Score 都有不同程度的下降,但本文提出模型的下降幅度远小于另外2 种模型,仅下降了9.8%,而另外2 种模型分别下降了35.9%和20.8%。HENDERSON 等提出的基于Transformer 的模型在数据集缩减后,分类的准确率甚至不如传统的基于LSTM 的模型。而本文提出的精简后的单向Transformer 模型融合孪生神经网络,在小数据集上取得了比传统LSTM 和HENDERSON 等提出的基于Transformer 模型都要好的效果。
3.4 预测时间对比实验结果
第3 轮实验中,为了验证本文模型在时间效率上的表现效果,随机取出1 000 条数据,然后分别使用3 种模型进行预测,从而对比3 种模型在计算性能上的表现效果。实验结果如表3所示。
表3 预测时间实验结果Table3 Experimental results of prediction time
通过对比表3 数据可以发现,本文提出模型的预测时间比HENDERSON 等提出的基于Transformer的模型要短24.1%,与传统的基于LSTM 的模型的预测速度相近。
4 结束语
本文研究面向任务型对话系统的多轮对话控制技术。通过引入预训练模型和工具,借助外部知识对模型输入和对话过程进行深度编码,同时对Transformer 模型进行精简,仅保留编码器部分的单向Transformer。本文在应答部分采用孪生网络对对话过程进行基于相似度的建模,最终选取相似度最高的指令生成回复。实验结果表明:在任务型对话系统中,当数据集比较大时,本文提出的模型效果优于传统的基于LSTM 的模型,与现阶段先进的基于Transformer 的模型的表现效果相当,且本文提出的深度编码方式更加适合任务型对话系统;当数据集规模减小时,在小数据集上,本文提出的模型准确率损失幅度远小于传统的基于LSTM 的模型和目前最先进的基于Transformer 的模型,且总体表现效果比LSTM、Transformer2 种模型都更加优秀,本文提出的模型在计算效率上也有一定幅度的提升,说明本文模型相比另外2 种模型在速度上更快且更加适用于小型数据集。