APP下载

对话中融入丰富历史信息的回应选择

2022-06-21司博文

中文信息学报 2022年5期
关键词:交叉语义向量

司博文,孔 芳

(苏州大学 计算机科学与技术学院,江苏 苏州 215006)

0 引言

人机对话(Human-Computer Conversations[1])是自然语言处理(Natural Language Process,NLP[2])领域的关键任务,旨在最大限度地模仿人与人之间的对话方式,使得人类能够用更自然的方式与机器进行交流。当前,人机对话系统主要分为任务型对话系统(Task-Oriented Dialogue Systems[3])和聊天机器人(Chatbots[4]),任务型对话系统面向垂直领域,目的是使用尽可能少的对话轮数帮助用户完成预定任务或动作,例如,预订酒店、机票和电影票等,典型的应用有Siri[5]、Cortana[6]等。任务型对话针对特定任务,这也限制了其在其他领域的使用。聊天机器人面向开放领域,话题没有特定领域的限制,因此对系统的要求极高,典型的应用有微软的小冰[7]。这两种对话系统都需要根据历史信息进行回应,而给出的回应都需要确保回应与对话历史在语义上具有连贯性。

产生回应目前有两种方法: 检索式和生成式。检索式又称回应选择(Response Selection),旨在针对对话上文从备选回应池中选择最相关的回应;生成式则要求模型自动生成合适的回应。本文主要关注回应选择任务。已有的回应选择方法存在对对话历史的语义挖掘不充分、对话上文和备选回应之间语义关联不够的问题。针对这两个问题,本文提出了融合丰富历史信息的回应选择方法,记为AICRS(All Information Combination for Response Selection),具体而言,首先将对话上文拼接,形成一个长文,以保证对话历史的序列特性;其次使用交叉注意力机制(Cross-attention Mechanism[8])将对话历史与回应进行软对齐,从而挖掘历史和回应间的关联信息;接着使用多头自注意力机制(Multi-Head Attention Mechanism[9])挖掘对话历史及回应的语义信息并使用高速路神经网络(Highway Network[10])进行信息桥接;最后整合各类信息进行最终的回应选择。该方法能深度挖掘对话历史及回应间的潜在语义和相互的关联关系,提升回应选择的性能。

本文的贡献包括如下几点: ①提出了一个结构简单,没有使用任何外部资源的轻量级回应选择模型; ②使用交叉注意力机制挖掘对话历史和备选回应之间的语义关联; ③将信息桥接的方法应用到回应选择任务,在深度挖掘信息的同时保证信息的完整性; ④通过Ubuntu Corpus V1数据集上的实验验证模型的有效性。

本文的组织结构如下: 第1节介绍相关工作;第2节阐述AICRS模型;第3节介绍具体的实验设置,并对实验结果进行分析;第4节对本文进行总结,并给出下一步的研究计划。

1 相关研究

早期关于对话回应选择的研究主要侧重于短文本的单回合对话。2013年Wang等人[11]提出了相关数据集和一个基于向量空间和语义匹配的方法。2014年Ji等人[12]提出使用深度神经网络来匹配对话上文和回应之间的语义信息的方法。2016年Wu等人[13]提出了一个用于短文本回应选择的主题感知卷积神经网络框架。这些方法在单回合回应选择任务取得了一定成果,但是无法解决多回合问题。

当前的研究主要集中于多轮对话的回应选择任务。该任务更具挑战性,因为模型需要整合整个对话上文中信息。2015年Lowe[14]提出一个大型多轮对话数据集UDC(Ubuntu Dialogue Corpus),此外Lowe提出使用RNN编码对话上文和备选回应的方法,此类方法又被称为平行编码方法。不久,Kadlec等人[15]研究了不同种类编码器在平行编码网络上的性能。2016年Yan等人[16]采用了另一种做法,他们使用一个CNN计算对话上文和备选回应的匹配分数。但这些方法处理信息相对简单,没有充分挖掘对话上文和回应之间的深层语义信息。

之后的研究人员对平行编码方法进行了各种拓展。2016年Zhou等人[17]采用了两个并行的编码器,一个处理单词级别的信息,另一个处理话语级别的信息。2016年Wang等人提出Match_LSTM[18]模型,通过基于LSTM的注意力加权句子表示法来提升模型的性能。Tan等人提出的QA-LSTM[19],使用一个简单的注意力机制与LSTM编码器相结合的方法。此外,研究人员还提出一些将回应选择任务与句子评分任务相结合的方法。这些方法在挖掘文本信息方面均取得了一定的成果,但是没有将得到的信息进行充分整合,回应选择任务要求模型选出合适的回应,因此,模型必须能够充分整合出对话上文和备选回应之间的关联信息。

2017年Wu等人提出顺序匹配网络(Sequential Matching Network,SMN[20]),将备选回应分别与对话上文中的每一次对话匹配,2018年Zhang等人[21]提出深度话语汇聚网络(Deep Utterance Aggregation Network,DUA),该网络细化处理对话,同时使用自注意力机制来寻找每次对话中的重要信息。Zhou等人[22]提出深度注意力匹配网络(Deep Attention Matching network,DAM),该网络构造了具有不同的粒度的表示形式,并具有堆叠式的自我注意力和交叉注意力。2019年Tao等人[23]提出交互模型(Interaction Over Interaction Model,IOI),该模型通过堆叠多个交互块来执行匹配。以上四种做法主张将每一次对话与备选回应进行匹配,使用了前文对话信息,但是忽视了对话之间的语义信息。

现有的工作取得了一定成果并推动了多回合对话回应选择任务的发展,但已有研究存在对话历史和回应间关联关系挖掘不够、潜在语义利用及多种信息整合效率不足的问题。对此,本文提出AICRS方法,借助交叉注意力机制挖掘对话历史和回应间的关联关系,借助多头自注意力机制和高速路神经网络进行丰富信息的整合。

2 AICRS模型

多回合对话回应选择任务要求模型在备选回应池中为对话上文选择合适的回应。本文将多回合对话回应选择任务转化为分类任务,要求模型在得到对话上文和备选回应的情况下判断备选回应是否为对话上文的合适回应。

2.1 任务描述

给定数据集D={(yi,ci,ri)}Ni=1,其中,ci表示对话上文,ri表示备选回应,yi∈{0,1}表示标签,yi=1表示ri是ci合适的回应,yi=0表示ri不是ci合适的回应。检索式对话的目标是根据数据集D训练出一个匹配模型s(·,·)。对于任意一个对话上文-回应对(c,r),匹配模型都能给出对话上文c和回应r之间的匹配分数。

2.2 模型概述

图1为AICRS模型框架图,该模型主要有以下结构:

图1 AICRS模型框架

(1)编码层: 首先将对话上文拼接成一个长文,保证对话的序列特性,之后使用BiGRU[24]编码器,获得长文和备选回应的内部信息。

(2)嵌入交叉注意力机制的匹配层: 使用交叉注意力机制获取对话上文和备选回应相关的信息,并对获得的信息进行第一次整合。

(3)融入多头自注意力机制的信息桥接层: 首先,使用多头自注意力机制深度挖掘对话上文的语义信息,之后,使用高速路神经网络对信息进行桥接。

(4)输出层: 首先,融合得到的语义信息,之后,对结果进行预测。

下面我们将逐步介绍AICRS模型中的各个组成部分。

2.3 编码层

本文首先将对话上文拼接成一个长文并控制长文的长度,对话之间用特殊的连接符连接,这样做可以在编码的时候尽量将整个对话上文的语义信息整合成一个语义向量,相比复杂的层次编码,该做法在一定程度上保证了挖掘到的对话上文语义信息的完整。此时,对话上文可以表示为:c=(c1,…,cm),备选的回应可以表示为:r=(r1,…,rn),m表示拼接后对话上文的长度,n表示备选回应的长度。之后,使用预训练词向量Rde×|V|将每个词转为其对应的词向量。特别的,如果某个词在表中不存在,则赋予一个随机值。此时,对话上文c和回应r变成词向量序列W(c)=[W(c1),W(c2),W(c3),…,W(cm)],W(r)=[W(r1),W(r2),W(r3),…,W(rn)]。为了得到对话上文和备选回应的语义向量ce,re,本文将对话上文和回应向量序列传入BiGRU,具体计算如式(1)、式(2)所示。

其中,i和j表示对话长文中的第i个单词和回应中的第j个单词,式(1)和式(2)中的BiGRU1是同一个。2.4 嵌入交叉注意力机制的匹配层基于编码的方法在得到对话上文和回应的语义信息后直接将两个向量拼接,传入输出层,这样做只挖掘到了对话上文和回应本身的浅层语义信息,并没有将二者的交互语义信息挖掘出来。而能否对对话上文和回应之间的局部语义关系进行正确建模是确定回应是否为正确回应的关键步骤。正确的回应一定与对话上文中一些关键信息相关,这些关键信息可以通过本地建模得到。本文使用交叉注意力机制将对话上文与备选回应进行对齐,计算对话上文与备选回应之间单词级别的语义信息,具体如图2所示。

图2 交叉注意力机制

交叉注意力机制权重的计算如式(3)所示。

(3)本文使用软对齐[25]获取对话上文和回应之间的局部相关性,其通过式(8)中的注意力矩阵e∈m×n计算得到。对话上文中第i个单词的隐藏层向量与备选回应中相关的语义部分被标识为向量称之为的对偶向量, 这个向量表示所有相关信息的加权和。备选回应对偶向量的计算方法和对话上文对偶向量的计算方法相同,如式(4)、式(5)所示。

其中,α∈m×n,β∈m×n表示标准化注意力权重矩阵。为了融合已经得到的所有相关信息,本文使用启发式匹配方法分别处理对话上文和回应语义向量以获得局部匹配向量和具体如式(6)、式(7)所示。

图3 信息桥接

具体计算如式(8)~式(11)所示。

其中,两式中的BiGRU2是同一个。其次,对BiGRU2的输出进行最大化和平均化处理;最后,将处理后的向量合并成固定长度的向量,并传入分类器中,如式(14)~式(19)所示。

(16)

(17)

(18)

label=softmax(W2·tanh(W1·f+b1)+b2)(19)其中,“0”表示在第0维上做max和mean,“[]”表示向量的拼接操作,label表示最终预测的结果,W1和b1分别表示tanh层的权重和偏置,W2和b2分别表示softmax层的权重和偏置。2.7 优化策略在模型训练的过程中,本文选择交叉熵误差作为损失函数,如式(20)所示。

(20)

3 实验设置与结果分析

本节将分析所提出的方法在多轮对话回应选择任务上的实验结果及分析。

3.1 实验数据集

本文主要使用Ubuntu Corpus V1[14]数据集验证所提出的方法,该数据集中的对话主要是关于Ubuntu系统故障排除的多回合对话,训练集包含50万组多回合对话,每组对话都配对一个由人工产生的正确回应,一个随机产生的负回应,验证集和测试集都包含5万组多回合对话,每组对话都配对1个正确回应,9个负回应。

为了弄清楚数据集中不同类型问题的分布,我们从以下角度对数据集中对话数据进行统计。首先,根据对话是否需要整合前文信息,我们将问题分为以下两种情况: 单回合对话,通过最近一次对话语义信息即可得到合适的回应,如表1中例子所示,回应可以直接通过最近的一次对话“How it helps”直接得到;多回合对话,必须将对话上文信息整合才能得到合适的回应,如表2中的例子所示,想要找到合适的回应就必须找到最近一次对话“What is that like?”中“What”代指什么。

表1 单回合对话样例

表2 多回合对话样例

本文在数据集中随机抽取100个样例,统计每种问题的比重。统计结果如表3所示。从表3中可以看出,数据集中存在一定比例的单回合对话,但是多回合对话的比重明显更大。

表3 单回合与多回合样例比重

根据对话长度是否均匀,我们将问题分为以下两种情况: 对话长度均匀,对话之间长度相差不超过10个字符;对话长度不均匀,对话之间长度相差超过10个字符。上述100个随机抽取样例中两种情况的统计结果如表4所示。从表4中可以得出,数据集中有一定比例的问题对话长度相差较大。如果对每句话单独处理,在训练过程中就必须将对话填充成相同长度,这无疑增加了模型的计算量。

表4 对话长度分布是否均匀样例比重

为了充分了解数据集的特点,本文随机抽取100个样例,对其中对话的回合数平均值(取整后)和对话上文长度的平均值(取整后)进行了统计,结果见表5。从表5中的数据可以得出,对话上文多为多回合、短文本。因此本文没有使用层次匹配的方法,而是首先将多回合对话拼接成一个长文,保证上文对话的序列特性。其次,使用编码器挖掘其浅层语义信息。再次,使用交叉注意力机制挖掘对话上文和回应之间相关的语义信息,并用信息桥接方法对挖掘到的方法进行整合。最后,获取结果。

表5 样例中对话的回合数和对话上文长度平均值

本文的方法是在分析已有研究的问题和Ubuntu Corpus V1数据集的特点的基础上提出的。为了验证本文方法的普适性,我们还在Douban Conversation Corpus[20]数据集上验证了本文的方法,该数据集是从豆瓣中获取的开放域对话。

3.2 实验设置

实验采用Pytorch 0.4.0 框架,并用NVIDIA的1080 GPU进行加速。具体的模型参数配置为: 使用Word2Vec预训练词向量进行初始化,word_dim为300。BiGRU的输入是一个形状为[batch_size,seq_length,hidden]的张量,其中,第一个维度表示batchsize,训练中batch size设置为16;第二维表示batchsize个句子中最大句子长度,每个batch size的seq_length是不相同的,对话上文的seq_length设置为400,回应的seq_length设置为150;第三维表示隐藏层维数,实验中,hidden设置为300。Bi-GRU的输出是一个形状为[batch_size,seq_length,hidden×2]的张量,使用Adam(Adaptive Moment Estimation)算法优化模型参数,学习率lr设置为0.004,BiGRU的层数设置为1,dropout设置为0.5,Multi-head Attention中的多头设置为4,损失函数为交叉熵损失函数。

3.3 实验结果

模型被要求从备选的10个回应中选出最适合的k个回应。本文通过计算k个答案中正确答案的召回率作为主要的评价指标,如式(21)所示。

(21)

考虑到Douban数据集中的回应不止一个,我们增加MAP,MRR和P@1作为Douban数据集的评价指标。

本文选取的对比模型有:

(1) 基于句子编码的方法: BiLSTM[15]。首先,编码对话上文和各选回应;然后,计算对话上文和回应之间的语义相似度。

(2) 基于序列匹配的方法: MV-LSTM[27]和Match-LSTM[18]。使用注意力机制计算对话上文和回应之间单词级别的信息。

(3) 复杂的基于层次的方法: Multi-View[17],分别计算对话上文与回应之间单词级别和句子级别的相似语义;DAM[22],使用堆栈式自我注意模块和交叉注意模块获取对话上文中每句话与回应在不同级别的交互信息;IOI[23]通过堆叠多个交互块来执行匹配。

表6给出了本文模型和各个模型的实验结果。从结果可以看到,本文给出的方法虽然结构简单,但在Ubuntu Corpus V1 数据集上的性能与复杂的基于层次编码的方法相比并不逊色,在R10@1和R10@2两个指标上均取得了最佳性能。

表6 各个模型的实验结果

但在Douban Conversation Corpus数据集上,本文方法取得的效果不如层次匹配模型。分析其中原因,我们认为,Ubuntu Corpus V1数据集是一个任务驱动型对话数据集,其话题主要集中在Ubuntu系统方面,噪声相对较少;而Douban Conversation Corpus数据集是一个开放领域对话数据集,其话题面向开放领域,噪声相对较多。我们的模型结构较为简单,处理噪声的能力有限,同时Douban Conversation Corpus中对话上文相对较长,而本文的模型采用将对话上文拼接成一个长文之后对长文进行编码的方法。当长文达到编码器的极限时,模型性能将会下降。未来我们将针对这一问题探讨相应的解决方案,提升本文方法的普适性。

3.4 实验分析

为了验证不同模块的作用,本文在Ubuntu Corpus数据集上设置了四个不同的对比实验。

(1) B: 使用BiGRU编码,并把编码后的信息直接传入输出层。

(2) B+交叉注意力: 使用BiGRU编码,使用交叉注意力机制。

(3) B+交叉注意力+残差: 使用BiGRU编码,使用交叉注意力机制,使用多头自注意力机制和残差网络对整合后的信息进行深度挖掘和整合。

(4) AICRS: 使用BiGRU编码,使用交叉注意力机制,使用多头自注意力机制和高速路神经网络对整合后的信息进行桥接。

详细对比实验结果如表7所示。

表7 详细实验对比结果

3.4.1 交叉注意力机制效用分析

比较B和B+交叉注意力的结果,可以得出使用交叉注意力机制的模型相比没有使用交叉注意力机制的模型,模型性能在R10@1和R10@2上分别提升16.6%和11.12%,说明交叉注意力机制在挖掘对话上文和备选回应之间的相关语义信息方面发挥了不可忽视的作用,模型在整合到对话上文和备选回应之间相关联信息之后,性能有了可观的提升。

3.4.2 信息桥接效用分析

比较B+交叉注意力和AICRS可以看出: 模型在没有进行信息桥接的情况下,性能在R10@1,R10@2和R10@5上分别下降3.15%,0.62%和0.69%,说明信息桥接在整合对话上文信息时起到了一定的作用。比较B+交叉注意力和B+交叉注意力+残差: 可以看出,使用残差连接替代信息桥接,模型的性能在R10@1,R10@2和R10@5上反而下降了0.72%,3.39%和1.36%,同为连接,残差连接虽然将多种信息进行了组合,但是此时的语义向量包含十分复杂的信息,如果不做进一步的处理: 反而会对模型的性能起反作用。

3.4.3 模型处理过长对话上文能力分析

为了分析模型处理过长对话上文的能力,本文在Ubuntu Corpus V1数据集中随机抽取100个对话上文较长的样例,分析这100个样例在模型上的结果。实验表明,本文的模型处理过长对话上文能力不是很好。100个样例只有27个可以准确预测,其余73个均没能预测出来,分析原因,我们发现这是编码器造成的。当文本的长度达到编码器的极限后,编码器便不能有效地挖掘文本的信息,进而导致性能的下降。未来我们将进一步细化对话历史的表征,特别是长距离依赖问题,以弥补这一缺陷。

4 结论

本文借助多头自注意力机制多视角挖掘潜在语义,借助交叉注意力机制建立对话历史和回应间的关联,再借助高速路神经网络进行多种丰富信息的高效融合,据此构建了一个轻量级对话回应选择模型。相比基准方法,我们的系统简单有效,实验结果也证明给出的模型确实能提升对话回应选择的性能。

未来我们将进一步细化对话历史的表征,计划从挖掘历史对话中的全局和局部信息更好地融入对话的交互信息、时序信息等方面入手,尝试通过有效解决长距离依赖问题来进一步提升回应选择的性能。

猜你喜欢

交叉语义向量
真实场景水下语义分割方法及数据集
向量的分解
菌类蔬菜交叉种植一地双收
聚焦“向量与三角”创新题
“六法”巧解分式方程
连数
连一连
向量垂直在解析几何中的应用
“吃+NP”的语义生成机制研究
向量五种“变身” 玩转圆锥曲线