秦汉忠,于重重,姜伟杰,赵 霞
(北京工商大学 人工智能学院,北京 100048)
人机对话系统是一个复杂的研究方向,构建人机对话系统的方法之一是检索式方法[1]。检索式方法首先需提取输入对话的特征,随后在候选回复库匹配多个目标候选回复,按照某种指标进行排序,输出得分最高的回复。将之前的对话输出作为历史对话,即形成多轮对话的形式。
近年来,随着深度学习的发展,关于人机对话的研究重点逐渐由基于模板、规则的传统方法转变为基于端到端的深度学习模型方法。Wu等人[2]提出序列匹配网络(Sequence Matching Network,SMN)模型,模型可分为“表示—匹配—融合”三个部分,整体上基于CNN和RNN实现以语义融合为中心的多轮对话回复选择。Zhang等人[3]提出深度表达融合(Deep Utterance Aggregation,DUA)模型,针对SMN模型将历史对话直接拼接为上下文存在噪声和冗余的问题,采用注意力机制挖掘关键信息并忽略冗余信息,最终获得对话表达和候选响应的匹配得分。Zhou等人[4]提出深度注意力匹配(Deep Attention Matching,DAM)模型。在SMN模型的基础上,省去CNN和RNN等结构,仅依靠注意力机制完成多轮对话的回复选择,使模型参数大量减少,大幅提升了训练速度。
在基于深度学习的检索式多轮对话系统研究领域中,DAM模型与SMN模型、DUA模型同属于以复杂的层级结构提取多粒度特征的模型。除该类模型外,过去的相关研究还包含两类模型,一类是早期利用句子编码器提取序列简单特征的模型,另一类是利用注意力机制提取序列关键匹配特征的模型。这三类模型在豆瓣、电商这两个多轮中文对话数据集的实验表现如表1所示,表中数据均来源于相关研究及论文。
表1 三类模型实验结果对比情况
由表1可以看出,第三类模型的效果普遍优于前两类,主要原因是此类模型从单词和句子两个角度考虑了多轮对话与候选回复的交互关系,从看似简单的问与答之间提取出了对话模式。而其中DAM模型由于网络结构层数多、计算过程交互相对复杂,能提取更细粒度的特征,表现更加出色。但DAM模型的局限性在于候选集中被选定的回复仅适用于本轮对话,与上下文并不能形成良好的匹配,或在匹配模型中没有学习到真正的语义关系,对多轮对话的内容产生了混淆,难以选择正确的候选回复。
在“表示—匹配—融合”这一框架下,同时优化三个部分是现阶段的研究难点。在前人研究的基础上,本文对比DAM模型,通过引入多头注意力机制,使模型更适合处理含有细微变化的数据,能让选定的目标候选回复与上下文形成良好的匹配关系。此外,本文在特征融合过程中采用BiLSTM模型,通过捕获多轮对话中的序列依赖关系,帮助模型建立每轮对话与前一轮对话、候选回复之间的匹配信息,使匹配模型学习到真正的语义关系,进一步提高选择目标候选回复的准确率,基于此建立基于多头注意力和BiLSTM改进的DAM模型Ex-DAM,在豆瓣、电商这两个多轮中文对话数据集上进行研究。
本文的组织结构为: 引言部分介绍“检索式人机多轮对话”的概念及特点,概述近几年深度学习模型方法;第1节介绍深度注意力匹配模型DAM的整体结构;第2节介绍基于多头注意力和BiLSTM网络的改进DAM模型Ex-DAM,主要包括多头注意力模块、语义表示网络和双通道BiLSTM特征融合网络;第3节介绍实验数据、实验内容、实验结果及分析,验证Ex-DAM模型的有效性;最后进行总结。
DAM模型的整体结构[4]如图1所示,可以分为输入、表示、匹配、聚合四个部分。模型的输入是多轮对话和候选回复,输出是每个候选回复的得分。
图1 DAM模型的整体结构
DAM模型的注意力模块含有查询向量Q、键向量K和值向量V三个输入。模块首先利用式(1)计算输入的缩放点积注意力:
Vatt=Attention(Q,K,V)
(1)
之后模块将Vatt和Q直接相加,产生的和包含二者的联合语义信息。为防止梯度消失或梯度爆炸,对Vatt和Q相加的结果应用层归一化[10],并将其结果记为Vln。接着将Vln传入一个基于ReLU函数[11]激活的双层前馈网络FFN,进一步处理融合信息。将FFN的输出与输入进行一次残差连接[12],产生的结果再次应用层归一化,此时的O是整个注意力模块计算过程的最终输出,如式(2)所示。
O=AttentionModule(Q,K,V)
(2)
DAM模型的语义表示网络[13]由多个相同的注意力模块首尾相连,形成堆叠的网络结构。网络中每个注意力模块的三个输入相同,自注意力计算如式(3)、式(4)所示。
(7)
在DAM模型中,Pi,l被称为像素点,由Pi,l组合形成的高维矩阵P被称为图像,P中的图像深度对应于多轮对话的轮次,图像宽度对应于每轮对话和候选回复在句子层级的匹配信息,图像高度对应于每轮对话和候选回复在单词层级的匹配信息。由于P含有三个维度的特征,DAM模型采用3D卷积[14]进行特征提取。经过两次3D卷积和最大池化,P最终变成一维特征f,再经过一个线性分类器即可获得匹配分数g(c,r)。
为使DAM模型更适合处理含有细微变化的数据,进一步提高选择目标候选回复的准确率,本文利用多头注意力表示网络和双通道特征融合网络,结合DAM模型中的交互匹配网络,基于此构成一个新的端到端检索式多轮对话系统模型,将该模型命名为基于多头注意力和BiLSTM的Ex-DAM模型。模型的整体结构如图2所示。
图2 Ex-DAM模型整体结构
模型的输入是词向量形式的多轮对话和候选回复,首先经过L个多头注意力层以获取它们的多粒度表示。在这些表示向量中,每一轮对话都和候选回复进行一次普通的注意力计算,得到多个主匹配矩阵。此外,候选回复再额外地与最后一轮对话计算一次注意力,以获得次匹配矩阵。随后,主、次匹配矩阵分别作为两个通道的输入进行特征融合。在这个过程中,所有的匹配矩阵经过BiLSTM和拼接操作依次进行序列特征提取和维度统一。最后,把两个通道的输出向量首尾拼接,经过多层感知器就能获得每个候选回复与多轮对话之间的匹配分数。
普通的注意力机制在文本序列中可以很好地从词向量角度提取关键信息,但几乎无法识别对词向量进行统一修改的操作。多头注意力机制正好可以解决此类问题。在计算时,首先输入多次映射,每个映射使用不同参数进行相同计算,最后将各个输出合并。这种做法比缩放点积注意力更适合处理含有细微变化的数据。本文使用多头注意力模块结构如图3所示。
图3 多头注意力模块
多头注意力模块含有查询向量Q、键向量K和值向量V三个输入,整体计算如式(8)所示。
MHAModule(Q,K,V)=LayerNorm(Q+MultiHead(Q,K,V))
(8)
本文在模块中应用了残差连接,将输入Q与前馈层的输出恒等叠加,不会引入额外的参数,也不会增加模型的计算复杂度,在叠加过程中可强化输入中的重点内容,提升训练效果。多头注意力的头部能在不同子空间处理同一序列,从而获得更丰富的语义表示信息。由多头注意力模块组成Ex-DAM模型的语义表示网络,结构如图2中的Representation模块所示。
第一个策略是当L数值较小时,保留所有Ui和R,即使用所有粒度的语义表示作为特征匹配网络的输入,记作Ex-DAML;第二个策略是当L数值较大时,保留Ui和R中的后m个元素,即仅使用深层粒度的语义表示作为特征匹配网络的输入,记作Ex-DAML-m;第三个策略是当L数值较大时,保留Ui和R中的第一个元素和后m个元素,将原始输入同时作为语义表示网络和特征匹配网络的输入,而后者的输入还包含原始输入的多粒度语义表示,记作Ex-DAML-0-m。
本文使用的中文多轮对话数据集是Wu等人[2]提供的豆瓣对话数据集和Zhang等人[3]提供的电商对话数据集。这两个数据集已由提供者进行了中文分词处理,每个数据集含有六个文件,其中,responses.txt用于索引特定候选回复,word2vec.txt用于预训练词向量,vocab.txt用于索引特定单词,test.txt作为测试集,train.txt作为训练集,valid.txt作为验证集。本文针对两个数据集中的数据组成进行了统计,结果如表2所示。
表2 数据集统计结果
(11)
则表示ri中的单词数符合常规,其中,Wmax是本文自行设置的单词处理最大值,本文设为100。
t≤Tmax
(12)
(13)
(14)
经过上述处理,每个多轮对话都由T轮对话组成,每轮对话和每个候选回复都由W个单词组成。借助vocab.txt中单词与词序之间的对应关系表,本文将数据中的所有单词(包括
得到上述规范数据,其中将单词转化成的数字同时与word2vec.txt文件中的预训练词向量一一对应,根据这种对应关系可将每个数字转换成200维的词向量,其中
本文将200维的意图嵌入向量直接与相应的词向量相加,由
3.3.1 评价指标及实验设置
本文采用检索式多轮对话系统常用的几种评价指标来衡量模型的性能。假设多轮对话数据集C由N个集合c组成,每个集合c包含正确回复t个、错误回复f个。在整个数据集上计算各项评价指标的平均值,得到平均精度均值[15](Mean Average Precision,MAP)、倒数排序均值[16](Mean Reciprocal Rank,MRR)、首位准确率(Precision-at-1,P@1)和计算召回率(Recall-n-at-k,Rn@k),如式(17)~式(20)所示。
其中,AP为平均精度(Average Precision),RR为倒数排序指数(Reciprocal Rank)。
本次实验中使用的数据均已经过数据预处理,训练过程相关配置使用Adam优化器[17]调节模型参数,DAM模型和Ex-DAM模型超参数的取值均如表3所示。
表3 DAM模型和Ex-DAM模型超参数表
3.3.2 DAM模型实验结果
本实验以DAM模型为基线模型,分别进行数据预处理和词向量增强,在现有实验环境下评估模型的表现,实验结果如表4所示。
表4 DAM模型实验结果
由表4可以看出,数据预处理有助于模型性能的提升,对原始数据集进行数据预处理,在豆瓣对话数据集上的各项评价指标获得了0.5%~0.7%的提升,在电商对话数据集上的各项评价指标获得了0.8%~1%的提升。还可以看出,将基于意图识别的词向量增强直接应用于DAM模型产生了不理想的效果,在两个数据集上的各项评价指标均下降了1%以上,即使经过数据预处理,模型效果有了略微提升,但也始终低于基线水平。此结果的产生原因主要是DAM模型完全由自注意力机制构造而成,其中的计算过程依赖于词向量,本文在词向量层面进行的任何改动都将逐层干扰注意力机制的计算,从而导致DAM模型性能急剧下降。
3.3.3 Ex-DAM模型实验结果
为了验证本文提出的Ex-DAM模型是否有效,将经过数据预处理的两种实验模型作为基线模型,从是否进行词向量增强的角度进行了独立实验。其中,Ex-DAM5表示堆叠注意力模块数设置为5,保留所有Ui和R,即使用所有粒度的语义表示作为特征匹配网络的输入;Ex-DAM5-4表示模块数设置为5,保留Ui和R中的后4个元素;Ex-DAM5-0-4表示模块数设置为5,保留Ui和R中的第1个元素和后4个元素,实验结果分别如表5和表6所示。
表5 不含词向量增强的Ex-DAM模型实验结果
表6 含有词向量增强的Ex-DAM模型实验结果
由表5和表6看出,无论是否对数据集进行词向量增强,Ex-DAM模型的实际表现都优于基线模型。即使词向量增强曾在之前的实验中导致基线模型的性能不升反降,却帮助Ex-DAM模型达到了最佳性能,说明多头注意力机制与BiLSTM的共同作用要优于普通自注意力机制。
表5中,Ex-DAM5模型性能优于其余模型,该模型与其余模型的不同之处在于语义表示网络的输出含有5种粒度的语义表示。若将最底层粒度语义表示去除或者以原始输入替换最底层语义表示,都将损失一部分模型的性能。然而在表6中,以原始输入替换最底层语义表示的Ex-DAM5-0-4模型却比Ex-DAM5模型性能更优。这是由于对原始输入进行了词向量增强,导致原始输入含有额外的意图特征,而语义表示网络中每个粒度的语义表示都源于原始输入,相当于在计算过程中不断强化这种意图特征,促使模型重点对意图特征建模。
本文进行的实验均将堆叠注意力模块数设置为5,为探究Ex-DAML-0-m模型中L和m的取值对模型性能的影响,本文使用经数据预处理和词向量增强的电商对话数据集进行了额外的实验,将评价指标R10@1结果绘制成折线图,如图4所示。
图4 不同参数搭配对Ex-DAML-0-m模型的影响
本实验始终保持语义表示网络的输出粒度不超过5,这是由模型占用的显存所致,若超出此值必须修改超参数,而计算方面的消耗将呈指数级增长,很难与之前的实验做对比。图4标记的模型对比点是上一实验中的Ex-DAM5-0-4模型,由图4可知,多粒度语义表示确实能在一定程度上提升模型性能,当模型将4个堆叠多头注意力模块的输出与原始输入共同作为语义表示网络的输出时,通常能取得最高性能。若堆叠多头注意力模块数超过5,无论如何选择m的值,模型都将逐渐出现过拟合现象,这是由于随着堆叠多头注意力模块数的增加,被多头注意力机制重点关注的信息会从前一层不断累加到下一层,导致这些信息在深层计算过程中基本保持不变,严重影响模型训练。
本文提出了基于多头注意力和BiLSTM改进的DAM模型Ex-DAM,该模型用于处理中文多轮对话问答匹配问题。本文将DAM模型作为基线模型,利用多头注意力机制在多个不同子空间内计算特征,从而有能力建模较长的多轮对话。Ex-DAM模型的卷积核使用BiLSTM来捕获序列上的依赖关系。实验证明,Ex-DAM模型性能在电商和豆瓣的数据集上均优于基线模型。
在未来的研究中,我们将尝试加入命名实体识别、情感分析等多种辅助手段,使得Ex-DAM模型可以在文本片段中尽可能提取更多的特征,实现对现有模型进行改进和优化。