自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型

公众号关注 “ML_NLP”
设为 “星标”,重磅干货,第一时间送达!
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

来自 | 知乎
地址 | https://zhuanlan.zhihu.com/p/39920446
作者 | 是江晚晚呀
编辑 | 机器学习算法与自然语言处理公众号
本文仅作学术分享,若侵权,请联系后台删文处理
Answer selection是QA中的一个重要任务。基本定义是:给出问题q和该问题的答案候选池 (s是池大小),目标是从答案池中找到可以准确回答问题最佳答案候选 。这项任务的主要挑战是正确的答案可能不会直接与问题共享词汇单位。相反,它们可能只是在语义上相关。此外,答案有时很嘈杂,并且包含大量不相关的信息。
text matching是nlp中一个重要的基础问题,nlp中的许多任务都可以抽象为文本匹配任务。文本匹配的算法,主要用于搜索引擎、问答系统等,主要是为了找到与目标文本最相关的文本,比如在问答系统中找到和问题最相关的答案,在搜索引擎中找到与搜索框中关键词最相关的网页等。
解决answer selction的一般思路是:首先用LSTM或者CNN的神经编码器学习问题和答案的表示,然后进行text matching,将任务转换为分类或者learning-to-rank问题。神经排序模型在QA中对候选答案进行排序以回答问题,核心是问答表示之间交互函数的设计。
下表是answer selection近几年表现最好的几个模型,本篇阅读笔记主要针对表中的几个模型进行阐述:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

TrecQA数据集:
QA答案选择任务广泛应用的基准评估数据集,评价标准是MAR和MPP。形式为一个问题及其所有答案(包括一个positive-answer和多个negative-answer)。任务是对这些答案进行排序。
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

an example of TrecQA corpus
《Lstm-based Deep Learning Models for Non- factoid Answer Selection》&《Improved Representation Learning for Question Answer Matching》
Tan(2015)-QA-LSTM/CNN+attention
这两篇来自同一个作者,第一篇发于ICLR 2016,第二篇发于ACL 2016,内容基本一致。
本文针对答案选择任务应用了通用深度学习框架,该框架不依赖于手动定义的特征或语言工具。基本框架是建立基于双向长期短期记忆(biLSTM)模型的问题和答案的嵌入,并通过余弦相似度来衡量它们的相似程度。
在两个方面进一步扩展这个基本模型。一个方向是通过将卷积神经网络CNN与基本框架相结合,为问题和答案学习更复合的表示。另一个方向是利用简单而有效的注意力机制来根据问题上下文生成答案表示。模型由两个数据集检验,包括TREC-QA和InsuranceQA。
1、QA-LSTM
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

(1)给定一个(q,a)对,q是问题,a是一个候选答案,首先生成问题和答案的词向量,然后将两个词向量序列分别输入到biLSTM中,生成问题和答案的固定长度的分布式向量表示,然后利用余弦相似度来衡量它们的距离。有三种方式得到表示:
将biLSTM的两个方向的最后一个输出向量进行拼接;
对biLSTM的所有输出向量做average pooling;
对biLSTM的所有输出向量做max pooling。
(2)将训练目标定义hinge loss:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

其中a +是ground truth答案,a-是从整个答案空间中随机选取的一个不正确答案,M是常量margin。
2、QA-LSTM/CNN
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

模型1仅通过简单操作(如max或mean pooling)生成问题和答案表示。模型2在biLSTM输出基础上加入CNN结构,以便给出问题和答案的更多复合表示。CNN用在biLSTM后面可以获取biLSTM输出的向量之间的局部信息。这里还做了一个变换,将biLSTM输出的 矩阵以每个词为中心向两边扩展k个(这也是卷积层的filter gram size),得到 矩阵再做卷积,这样做可以增强对局部信息的利用,在模型复杂度不是很高的情况下,确实有更好的效果。经过卷积层以后(c个卷积核),得到 的输出矩阵,接着利用max pooling得到 和 :
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

3、QA-LSTM with attention
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

当biLSTM模型必须在问题和答案上长距离传播依赖关系时,隐藏向量的固定宽度成为瓶颈。通过动态调整问题答案的更多信息部分,可以使用注意力机制来缓解这种弱点。这一策略已被用于许多其他自然语言处理任务中。在max或mean pooling之前,每个biLSTM输出向量将乘以softmax权重,该权重由biLSTM的问题嵌入确定。具体来说,就是将 与 之间做一个特征的交互,给定在时间t时答案侧的biLSTM的输出向量 和问题嵌入 ,每个答案标记的更新向量如下获得:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

从结果来看, Attentive LSTM达到了最好的效果。attention机制已经成了序列模型中的一个经典的应用了。本文主要结合了CNN与LSTM的优点,并验证了attention机制在Answer Selection任务上的有效性,这对以后相关方向的工作提供了一个简单的指引。
《Attentive Pooling Networks》
dos Santos (2016) - Attentive Pooling CNN (AP-CNN & AP-biLSTM )
传统的Attention机制被应用于特征抽取器,例QA_LSTM_ATTENTION。但是该attention设计仅仅只是通过问题对答案进行特征加权,而忽略了答案对问题的影响,本文考虑到可以同时将attention应用到问题和答案,从而提高算法的准确率,提出了一种双向注意力机制Attentive Pooling(AP),通过实现联合学习两种输入的表示以及它们的相似性测量,可以显著提高这种判别模型在pair-wise ranking或分类方面的表现。创新点在于将成对输入投射到一个共同的表示空间,用Q和A的representation构造了一个矩阵G,分别对G的row和column做max pooling, 这样就能分别能得到Q和A的attention vector。
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

1、模型概述:
AP-BILSTM算法的设计是将问题和答案经过BILSTM抽取特征,然后通过问题和答案的特征计算soft alignment,该矩阵包含了问题和答案相互作用的重要性得分,对该矩阵的列取最大,即可得到答案对问题的重要性得分,而对该矩阵行取最大,即可得到问题对答案的重要性得分。即:通过在输入对中的映射单元学习相似度矩阵,利用单元之间的相似度得分来计算attention vector。
模型前期的处理与基本模型-Siamense network部分相同,在获得question和candidate answer的特征矩阵后,计算相似性矩阵 。在矩阵G上应用column-wise max pooling和row-wise max pooling,并使用softmax函数处理后可分别获得question和candidate answer对应的注意力向量 ,与question矩阵和answer矩阵对应相乘后得到向量 和 。
2、细节
(1)假设问题、答案长度分别为M、L,经过CNN或者biLSTM后生成问题和答案嵌入为 和 。计算相似度矩阵 ,其中U是神经网络待学习的参数矩阵。
(2)对于CNN:
对于问题或答案中的一个词,它以这个词为中心,将它与附近的k个词向量拼接组成新的问题(答案)矩阵,这里的k其实相当于filter的宽度,之后卷积filter的size是 ,d是embedding size。矩阵G包含q和a的卷积大小为k的上下文窗口之间的soft alignment的分数。
对于biLSTM:
矩阵G包含q和a每个标记的隐藏层向量之间的soft alignment的分数。对G应用column-wise和row-wise max-pooling,分别生成向量 :
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

其中: 的第j个元素代表问题q中的第j个词对答案a的重要程度, 的第j个元素代表答案a中的第j个词对问题q的重要程度。
(3)然后用softmax生成q的attention vector(a同理):
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

Q、A分别点乘各自的attention vector,得到attentive表示:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

(4)计算 和 的cosine值,表征问题和答案的语义相似度。
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

(5)训练损失函数用的是hinge loss(pair-wise loss function):
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

《aNMM: Ranking Short Answer Texts with Attention-Based Neural Matching Model 》
Yang (2016) - Attention-Based Neural Matching Model
在基于检索的问答系统中,很重要的一步是将检索到的答案进行排序得到最佳的答案。使用深度学习的方法,如建立在CNN和LSTM模型基础上的神经网络模型,不需要手动设计语言特征,也能自动学习问题与答案之间的语义匹配。CNN最初是为计算机视觉设计的,它使用位置贡献权重和局部感知过滤器来学习CV任务中的空间规律。然而在问题和答案的语义匹配中可能不存在这样的空间规律,由于自然语言的复杂属性,问题和答案term之间的重要相似性信号可能出现在任何位置。同时基于LSTM的模型是序列模型,如果没有问题和答案term之间的交互作用,模型就不能捕捉到它们之间的丰富信息。本文针对这两点提出了一种基于注意力的神经匹配模型来对答案进行排序。主要引入两个创新:
CNN一般用的是position-shared weighting,这对于问答对语义匹配是不太适合的。采用值共享权重(value-shared weights)代替卷积网络中的位置共享权重(position-shared weights)方案来组合不同的匹配信号。
用注意力机制来衡量问题中重要的部分。在最后的全连接层中使用attention机制来给问题中不同单词进行加权,不太重要的词权重会很小,重要的词权重会很大。
本文提出了两种模型,aNNM-1(Attention-Based NeuralMatching Model)和aNNM-2,aNMM-1只是用了一组共享权重,而aNMM-2使用多组共享权重。
1、aNMM-1
模型的构建主要分成三步:
(1)对问题和答案对中的词使用word Embedding进行编码,然后使用余弦相似度计算QA 匹配矩阵。假设一个问题对 中,问题Q长度为M,答案A长度为N,先训练词向量,然后构建M*N的QA匹配矩阵P, 表示 和 之间的语义相似度,用cosine计算。那么问题来了,同一个问题的不同答案的词的个数不一样,得到的匹配矩阵的大小不一样,不利于后面神经网络中的全连接计算。
(2)以前一般的处理思路是用CNN+max pooling来控制矩阵维度。CNN的关键思想是,相对位置一致的一些结点权值共享,这也是基于图像的像素点和周围像素点关系很大的假设之上的。使用基于位置的权值共享时,可表示成如下所示,其中同样颜色的边表示相同的权值。
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

然而,问题与答案之间的语义匹配可能不存在这样的空间规律性,因此本文的做法是,使用基于值的权值共享将匹配矩阵变成相同维度。首先应用一个value-shared weighting深度神经网络,然后连接全连接层,学习问题和答案term的语义匹配的层级抽象。
如下图所示,采用相同的值共享权重的方式来组织网络。因为不同值范围的匹配信号决定了不同的匹配分数。所以可以用值共享权重来学习不同等级的匹配信号的重要性。节点的值表示QA匹配矩阵中某一个term pair的匹配信号强度。比如,匹配矩阵中相似度为1的所有节点共享一个权值,相似度在[0,0.5)之间的节点,共享一个权值,相似度在[0.5,1)之间的节点,共享一个权值。本文用bin表示一个特定范围的匹配信号, 设bin的大小为0.1, ,当 ,表示这两个term完全匹配,则一共有21个bin。通过这样的方式,可以将计算得到的匹配矩阵转换为相同维度,并且不管输入矩阵的维度怎么样,隐藏层节点的个数是固定的。
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

完成这步后,隐藏层表示的大小固定,然后就能用全连接层来学习更高级别的表示。设j表示q中的第j个问题词, 表示第k个bin节点(value range)上的所有匹配信号的和。对于QA匹配矩阵的每一行,经过隐藏层第j个节点的激活函数之后的结合分数计算如下:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

(3)使用问题的注意力机制,学习问题中每个词的重要性,并生成最后的排序分数。经过前两步,每一个QA对都可以计算得到一个M* 1 的向量,向量中的每一个元素代表了这个答案与问题中的每一个词的相似度,为了计算最后的相似度,并不是将这些值直接相加,得到整个问题与答案之间的相似度,而是为问题中的每个词赋予不同的权值,然后再加权。为了完成这一点,增加了一个参数v 并使用作为问题的权值加权:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

最后得到问答对之间的相似度。
与之前的模型如CNN和biLSTM 不同,它们通过匹配矩阵或问题/答案对序列的表示学习来学习问题和答案之间的语义匹配分数,而aNMM通过问题注意力网络的输出加权来组合问题和答案的term pairs的语义匹配信号,其中softmax函数有助于区分term的重要性或不同问题term的注意力。
2、aNMM-2
aNNM-2相对于aNMM-1的改进是,使用多个基于值的权值网络,就像CNN有多个滤波器一样,这样做可以提取多方面的特征。因为隐层的结构由M1 变成了Mk,其中k为 共享权值的组数,为了让网络的结构与aNMM-1 尽可能相似,aNMM-2 多了一个隐层,即将从第一个隐层学到的多个分值合并起来,其他结构没有改变,结构如下所示:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

总结:
本文提出了一种基于注意力的神经匹配模型来排序简短的答案。采用值共享加权方案,而不是位置共享加权方案来组合不同的匹配信号,并且使用注意力机制完成问题相关词的重要性学习。与没有附加特征的使用语言特征工程的状态方法相比,本文提出模型可以实现更好的性能。
《Learning to Rank Question Answer Pairs with Holographic Dual LSTM Architecture》
Tay(2017) - Holographic Dual LSTM Architecture
深度学习架构一直是学习单词、句子或文档的分布式表示的极其流行的选择。通常,这被称为表示学习,通过神经网络学习单词或文档的低维向量。通过张量层模拟向量之间的关系是一种流行的方式。最近,卷积神经张量网络(CNTN)在基于社区的问答中表现出了令人印象深刻的结果。CNN用于学习问题和答案的表示,而张量层用于使用附加张量参数来模拟表示之间的关系。由于张量层模拟了问答对之间的二元交互的多个视图,因此能够实现丰富的表征性学习。然而,张量层的使用存在缺点。首先,添加张量层会严重增加参数的数量,这自然会不可避免地增加过拟合的风险。其次,这显着增加了整个网络的计算和内存成本。第三,张量层也间接地限制了QA表示的表达性。
贡献:
为了解决上述弱点,本文提出了张量层的替代方案。首次采用全息组合来模拟问题和答案嵌入之间的关系。主要基于具有全息组成的长期短期记忆(LSTM)网络,并采用互相关来学习QA对之间的关系。模型称作Holographic Dual LSTM (HD-LSTM),这是一种用于深层句子建模和语义匹配的统一架构,采用是端到端训练的。贡献归纳如下:
首次采用全息组合来建模QA对表示之间的相互作用。与张量层不同,全息组合提供了可扩展且丰富的表征学习方法的益处,而不会产生巨大的参数成本。此外,还通过采用互相关来实现丰富的表示学习。
实现了一个新的深度学习框架HD-LSTM(全息双LSTM),用于学习对QA对排序。使用多层长短期记忆LSTM神经网络来代替CNN来学习问题和答案的表达。
在基于事实的问答系统和CQA提供了模型的广泛的有效实验证据。本文提出的方法在TREC QA任务和Yahoo CQA数据集上优于许多其他神经架构。
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

用一对多层LSTM分别表示Q-LSTM和A-LSTM。首先,LSTM学习问题和答案对的句子表示,然后用全息组合来建模Q-LSTM和A-LSTM输出之间的相似性。最后,通过一个全连接层并执行二元分类。
1、学习QA表示
问题和答案序列首先通过look-up层。在该层,每个索引被转换为低维向量表示。使用预先训练的SkipGram 嵌入来初始化look-up层的参数W:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

然后将来自问答序列的这些嵌入分别馈入Q-LSTM和A-LSTM。随后,来自Q-LSTM和A-LSTM的最后隐藏输出分别被认为是问题和答案的最终表示。
2、QA对的全息匹配
QA嵌入然后被传递到全息层,将q?a表示为应用于向量q和a的组合运算符,使用向量的互相关来学习问答嵌入之间的关系。
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

其中:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

代表互相关操作数。
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

F(.)和 分别代表快速傅里叶变换(FFT) 和反快速傅里叶变换。表示F(q)的共轭。
此外,互相关可以被视为压缩张量积。在张量积中,单独的元素用于存储q和a之间的每个成对乘法或交互。在互相关中,组合向量的每个元素是q和a在一个固定总和模式上的乘法相互作用的和。图2描述了这个过程,其中圆形箭头描绘了求和过程,其中向量c是组成q和a互相关的结果。
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

该组合方法的一个关键优点是参数没有增加。事实上,组合向量与其构成向量保持相同的长度,这是我们提出的模型的一个非常有效的保证。在问题和答案表示具有不同维度的情况下,我们可以简单地对向量进行零填充以使它们具有相同的长度。

注:神经张量网络 Neural Tensor
Network是一种参数化组合技术,可以学习两个向量之间的关系。两个向量之间的评分函数定义如下:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

其中f是非线性函数,例如tanh。是张量(3维矩阵)。对于张量M的每个切片,每个双线性张量积返回标量值以形成r维向量。其他参数是神经网络的标准形式。我们可以清楚地看到NTN通过使用大量参数实现了对嵌入对的丰富表征性学习。
3、全息隐藏层
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

随后,组合操作数之后链接一个完全连接的隐藏层,形成全息层。
一般大多数模型使用连接的组合运算符,表示为⊕来组合问题和答案的向量,将一个向量追加一个向量形成一个长度合并的向量:
显然,这种连接不考虑QA嵌入的潜在特征之间的关系。我们必须从深度学习模型中学习参数,即后续的隐藏层中学习这种关系。总之,将[q?a]映射到 的全连接的dense层形成了我们网络的全息隐藏层。
4、整合额外特征
在QA嵌入之间包含一个额外的相似性度量。这种相似性度量被称为双线性相似性:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

其中M是网络的附加参数。sim(q,a)的输出是与[q?a]连接的标量值。参考论文《Learning to Rank Short Text Pairs with Convolutional Deep Neural Networks》中单词重叠特征 包含在连接层的隐藏层之前。这样做的理由如下:首先,将word overlap等特征编码到深度学习架构中是很困难的。其次,word overlap特征相对容易实现和合并。因此,当使用外部特征时,全息隐藏层的输入变为矢量:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

5、softmax层
然后将来自全息隐藏层的输出传递到全连接的softmax层:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

6、训练和优化
监督学习排序的任务通常可以被视为二元分类问题。给定一组问题qi∈Q,任务是对候选答案列表进行排序ai∈A。具体而言,我们尝试学习输出相关性得分函数f(q,a),并对每个问题答案对输出得分f(q,a)∈[0,1]。然后使用得分来对可能的答案候选进行排名。通常,text ranking有三种不同的方式,pair-wise,point-wise和list-wise。pair-wise考虑使用如hinge loss之类的目标函数来最大化正向和负向问答对之间的边界。point-wise分别考虑每个问答对是正向还是负向。list-wise将问题和所有候选答案视为训练实例。自然地,由于必须处理更多实例,因此pair-wise和list-wise更难以训练,实施并花费更长的时间。因此,我们主要在设计深度学习模型时考虑point-wise方法。
loss函数:(cross-entropy loss)
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片
《Hyperbolic Representation Learning for Fast and Efficient Neural Question Answering》
Tay et al. (2017) - HyperQA (Hyperbolic Embeddings)
解决神经排序模型的一般思路是,首先用如CNN或者LSTM学习问题和答案的表示,然后设计问答表示的单词交互层,例如基于相似性矩阵的匹配,软注意力对齐和attentive pooling,这些创新伴随着巨大的计算成本等,导致显着更长的训练时间以及更大的内存占用。因此,本文解决了是否有可能通过简单的神经结构实现竞争性的表现。
受到论文 《Poincaré Embeddings for Learning Hierarchical Representations》的启发,它展示了双曲空间中泛化的优越性和有效性。此外,这减轻了欧几里德嵌入可能面临的许多过度和复杂性问题,特别是如果数据具有内在的层次结构。双曲空间是具有恒定负曲率的嵌入空间,其中朝向边界的距离呈指数增长。直观地,这使得它适合于学习反应自然层级(例如,网络,文本等)的嵌入,我们认为这可能有利于QA的神经排序模型。具体而言,双曲空间的定义特征相对于欧几里德空间的扩展速度要快得多,自然具有层次结构建模的能力。在早期的经验实验中,作者发现在双曲空间中训练的简单前馈神经网络能够在几个标准基准数据集上超越更复杂的模型。
本文提出了一个极其简单的问题回答神经排序模型用于快速有效的问答排名和检索,用于快速有效的问答排序和检索。
  • 提出了一种新的神经排序模型HyperQA,用于排列问题答案对。模型模拟了双曲空间中QA对之间的关系,而不是欧几里德空间。这使模型具有自组织能力,并且能够在学习嵌入问题和答案的同时自动发现潜在的层次结构。模型不需要特征工程,没有相似性矩阵匹配,没有复杂的注意机制,也没有过度参数化的层,但是在许多基准测试中具有这些功能的许多模型都表现优异并且仍然具有竞争力。
HyperQA是一种极其快速且参数有效的模型,可在多个QA基准测试中获得极具竞争力的结果,例如TrecQA,WikiQA和YahooCQA。 HyperQA的效率和速度归因于我们不使用任何复杂的神经编码器并且没有复杂的单词交互层。实际上,HyperQA只是一个单层神经网络,只有90K参数。在多个QA基准测试中优于其他最先进的参数密集型模型,如Attentive Pooling BiLSTM和Multi-Perspective CNN。这使我们能够重新考虑这些复杂的单词交互层中是否对于良好的性能而言确实是必要的。
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

1、embedding layer
2、projection layer
单层神经网络,对于每个词向量,有:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

3、学习QA表示
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

4、QA对的双曲表示:计算问题和答案之间的双曲距离:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

5、相似度打分函数:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

《Bilateral Multi-Perspective Matching for Natural Language Sentences》
Wang et al. (2017) – BiMPM
Natural language sentence matching (NLSM)是指比较两个句子并判断句子间关系。针对NLSM任务,目前有两种流行的深度学习框架。一种是Siamese network: 对两个输入句子通过同样的神经网络结构得到两个句子向量,然后对这两个句子向量做匹配。这种共享参数的方式可以有效减少学习的参数,让训练更方便。但是这种方式只是针对两个句子向量做匹配,没有捕捉到两个句子之间的交互信息。于是有了第二种框架matching-aggregation:先对两个句子之间的单元做匹配,匹配结果通过一个神经网络(CNN或LSTM)聚集为一个向量后做匹配。这种方式可以捕捉到两个句子之间的交互特征,但是之前的方式只是基于词级别的匹配忽略了其他层级的信息,匹配只是基于一个方向忽略了相反的方向。
为了解决matching-aggregation框架的不足,这篇文章提出了一种双向的多角度匹配模型bilateral multi-perspective matching(BiMPM)。该模型在同义识别、自然语言推理、答案选择任务上都取得了比较好的结果。设需要匹配的句子为P和Q,作者在P->Q,Q->P两个方向上进行了匹配,使用了四种匹配策略,这些策略可以理解为不同的Attention,这里也是Attention机制方面创新一个很好的参考。下面以P->Q方向为例进行说明,Q->P方向同理。
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

模型自下而上分为五层,分别为单词表示层、上下文表示层、匹配层、聚合层和预测层,其中匹配层为模型的核心。单词表示层对单词进行Word embedding处理。上下文表示层与聚合层类似,都是利用BiLSTM对输入序列进行处理。匹配层包含的四种匹配策略。
NLSM中每个样例可以表示为这样一个三元组:(P, Q, y),其中P表示长度为M的句子序列,Q表示长度为N的句子序列,y表示P和Q之间关系的标签。模型的目标就是学习概率分布 ,整体结构如下:
1、Word Representation Layer
将句子中的每个单词表示为d维向量,这里d维向量分为两部分:一部分是用GloVe或者word2vec预训练的固定的词向量,另一部分是字符向量构成的向量,这里将一个单词里面的每个字符向量输入到LSTM得到最后的character-composed词向量。
2、Context Representation Layer
将上下文信息融合到P和Q每个time-step的表示中,这里利用BiLSTM表示P和Q每个time-step的上下文向量。
3、Matching Layer (Multi-perspective Matching)
比较一个句子的某个隐藏层向量和另外一个句子的所有的隐藏层向量,这里设计了一种 multi-perspective匹配方法。这层的输出是两个序列,序列中每一个向量是一个句子的某个隐藏层向量对另一个句子所有的隐藏层向量的匹配向量。
(1)首先,定义比较两个向量的multi-perspective余弦匹配函数:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

和 是d维向量, 是训练参数,l是perspective的个数。生成的m是l维向量 ,每个元素 是来自第k个perspective的匹配值:
是element-wise乘积, 是W的第k行,控制第k个视角给d维空间的不同维度分配不同权重。
(2)接着,为了比较一个句子的某个隐藏层向量与另一个句子的所有隐藏层向量,制定了四种匹配策略。以从P到Q为例。这里的Multi-perspective Matching可以分为以下四种方案:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

Full-Matching
取一个句子的某个隐藏层向量和另一个句子的最后一个隐藏层向量做比较。即P中每一个前向(反向)隐藏层向量与Q前向(反向)的最后一个时间步的输出进行匹配。
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

Maxpooling-Matching
取一个句子的某个time-step和另一个句子的所有time-step比较后取最大。即P中每一个前向(反向) 隐藏层向量与Q前向(反向)每一个时间步的输出进行匹配,最后仅保留匹配最大的结果向量。
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

Attentive-Matching
先计算P中每一个前向(反向) 隐藏层向量与Q中每一个前向(反向) 隐藏层向量的余弦相似度,然后利用余弦相似度作为权重对Q各个隐藏层向量进行加权求平均作为Q的整体表示,最后P中每一个前向(后向) 隐藏层向量与Q对应的整体表示进行匹配。步骤如下:
首先计算一个句子的某个隐藏层向量和另一个句子的所有隐藏层向量的余弦相似度:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

利用上面的余弦相似度对另一个句子的所有隐藏层向量加权取平均:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

比较一个句子的某个隐藏层向量与另一个句子的加权隐藏层向量:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

Max-Attentive-Matching
方法与Attentive-Matching类似,不同的是不进行加权求和,变成了取最大,直接取Q中余弦相似度最高的单词隐藏层向量作为Q整体向量表示,与P中每一个前向(反向)隐藏层向量进行匹配。
4、Aggregation Layer
聚合两个匹配向量序列为一个固定长度的匹配向量。对两个匹配序列分别应用BiLSTM,然后连接BiLSTM最后一个隐藏层向量(4个)得到最后的匹配向量。
5、Prediction Layer
预测概率 ,利用两层前馈神经网络然后接softmax分类输出预测结果。
总结:
用biLSTM对两个给定句子分别编码,从两个方向P->Q,Q->P对其匹配。在匹配过程中,从多视角的角度,一个句子的每一步都与另一个句子的所有time-steps对应匹配。最后用一个BiLSTM来集合所有匹配结果到一个固定长度的向量,连上一个全连接层得到匹配的结果。本文模型在三个任务上的实验结果证明了模型的有效性。此外,本文用到词级别和字符级别的词向量。传统的Siamese网络结构忽视了低层级的交互特征,重点放在向量表示上。现阶段的一些模型更加注重句子之间交互信息,从不同层次不同粒度来匹配句子的模型越来越多。本文就是基于matching-aggregation框架,从多个视角不同方向去提取句子的特征,得到了更好的结果。
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

《A Compare-Aggregate Model for Matching Text Sequences》
ICLR 2017 Compare-Aggregate
Weijie Bian, Si Li, Zhao Yang, Guang Chen, Zhiqing Lin. 2017. A
Compare-Aggregate Model with Dynamic-Clip Attention for Answer
Selection. In CIKM 2017.
从标题可以看出, 文章主要的关注点在“compare-aggregate model”上面,简单的说,不是通过比较序列对的整个向量表示,“compare”是对sequence-pair的embedding中的每一个单元进行计算(element-wise),“aggregate”就是将计算的结果向量输入到一个feed forward的模型中进行学习。
论文主要工作在于:
  1. 在4个数据集MovieQA,InsuranceQA,WikiQA和SNLI上面都取到了非常好的效果,验证了模型的有效性
    自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
    文章图片

  2. 详细讨论了该采取什么样的“compare”才能达到最好的效果(主要工作)。对于未来的sequence matching的工作提供了一个参考。
模型对于如何“compare”进行了很多设计:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

1、Preprocessing(图中未标出)
处理 和 生成两个新矩阵 和 。目的是为了给两个序列的每个词都生成一个新的词向量,以捕获更多上下文信息。
上图中的与都是预处理后的vectors(拥有了一些上下文信息)。主要是利用了略作修改的LSTM/GRU(只保留输入门)。
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

2、Attention
在与之间利用注意力机制,对于的第j个context vector ,我们得到一个权重,是由与的每一个列向量的注意力权重求和得到。表示Q中最匹配A中第j个词的部分,是矩阵H的第j行向量。生成的 是加权注意力矩阵。
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

3、Comparison
comparison layer的目标是为了匹配每个 和 。代表A的第j个context vector, 表示Q中最匹配A中第j个词的部分。f是线性变换+非线性激活函数的神经网络层,用于对每一个与计算。这里主要采用了7种方案:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

4、Aggregation:
和 经过comparison layer得到 ,然后利用CNN处理的序列来进行分类。
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

论文与之前的baseline进行了充分的对比。其中,利用SUB、MULT与NN组合的compare方法在前面提到的4个数据集上均得到了state-of-the-art的表现。论文最后也给出了一些可视化的展现来验证attention的重要性。
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

《Inter-Weighted Alignment Network for Sentence Pair Modeling》
Shen et al. (2017) – IWAN EMNLP 2017
句子对建模是自然语言处理领域的一个重要问题。本文提出了一个模型来衡量一个关注交互信息的句子对的相似性。利用单词级别的相似度矩阵来发现两个句子的细粒度对齐。句子中的每个单词从语义构成的角度来看具有不同的重要性,因此利用两种新颖有效的策略来明确计算每个单词的权重。虽然所提出的模型仅使用序列LSTM进行句子建模而没有任何外部资源,但实验结果表明我们的模型在两个任务三个数据集中实现了最先进的性能。
给定两个句子S和T,目的是计算一个分数来衡量它们的相似性。为了学习具有上下文信息的表示,首先使用双向LSTM句子模型,该模型将单词嵌入作为输入,以获得每个位置的上下文感知表示。上下文感知表示用于计算单词级别相似度矩阵。受到注意力机制的启发,利用软对齐在一个句子中为其他句子中每个位置找到语义对应部分,并利用alignment layer计算一个句子的加权和向量作为另一个句子的每个位置的对齐表示。同时,将S和T的上下文感知表示表示作为输入,应用一个加权层来计算S和T中每个位置的权重。我们认为这个权重可以表明语义交互的重要性,并且每个位置的表示的加权求和比包括最大或平均pooling以及LSTM层的其他组合方法更容易理解。我们提出了两种计算权重的策略。加权向量被馈送到全连接层,并且soft-max层用于给出最终预测。本文把答案选择问题看成一个“yes"or"no"二分类问题,训练loss函数用的是负对数似然:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

下面来看模型的具体细节:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

1、Word Level Similarity Matrix
相似性矩阵M的每个元素代表 和 的相似性:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

2、alignment layer
M的第i行代表S的第i个位置和T的每个位置的相似度:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

然后用 的加权和执行soft-alignment, 计算对齐表示 :
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

同理,T的对齐表示为 :
**对齐特征:**衡量对齐表示和原始表示的gap
direct strategy
直接计算对齐表示和原始表示差值的绝对值:
称 为对齐残差,即用于后续处理的对齐特征。
orthogonal decomposition
与 平行的 的分量 表示对齐分量,与 正交的分量 表示对齐残差。按如下方式计算这两个成分:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

3、Inter-Weighted Layer
(1)Inter-Attention Layer
衡量每个词之间的语义交互的重要性,计算结合了交互信息的权重。
输入 ,inter-attention层输出 ,大小为m:
【自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型】自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

其中:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

用 沿着位置维度将 有权重地加起来:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

(2)Inter-Skip Layer
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

如果S中第i个词对语义表示贡献不大,则得到一个相似表示
skip特征计算如下:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

和 的区别反映了第i个词对于语义组成的贡献。如果区别小,说明对应词的重要性小。是一个衡量单词重要性的特征。
按同样的方式用inter-skip层输出的 得到inter-features.
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

4、输出层
为了更丰富的信息,结合S和T的句子向量的对齐信息来进行最后预测:
(1)在 上应用self-attention模型,得到嵌入:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

(2)按元素计算乘积 以及差值 作为self-features
直接结合这些特征:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

正交分解策略:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片
(3)用两层神经网络计算概率分布:
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

总之,贡献如下:
1、为SPM提出了一个加权间对齐网络(IWAN),它建立了一个对齐层,根据对齐程度计算相似度得分。
2、考虑到句子中每个单词的重要性是不同的,我们认为用于评估每个单词的权重的加权层对于语义组合是至关重要的。我们提出了两种计算权重的策略。实验结果证明了它们的有效性。
3、语义相关性基准数据集SICK和两个答案选择数据集TRECQA,wikiQA的实验结果表明,所提出的模型在没有任何外部信息的情况下实现了最先进的性能。
《Multi-Cast Attention Networks for Retrieval-based Question Answering and Response Prediction》
Tay et al. (2018) - Multi-Cast Attention Networks (MCAN)
query-document对之间的文本相关性建模是信息检索(IR)研究的核心。关键思想是学习query-document对之间的评分函数,并输出一个排序的候选列表。这种IR系统应用广泛,例如,回答基于事实的问题,在基于聊天的系统中选择最佳相应,基于检索的问答系统等等。本文提出了一种用于此类任务的通用神经排序模型。
贡献:
首次提出了一种新的思路,不是将attention作为pooling操作,而是作为一种特征增强方式使用,即casted attention。提出了一种用于通用序列对建模的整体架构,称为多播注意力网络Multi-Cast Attention Networks(MCAN)。这是一种新的注意力机制和通用模型架构,用于对话建模和问答系统领域中的排序任务。我们的方法执行一系列soft-attention操作,每次返回一个压缩的标量特征,重新附加到原始的单词表示上。关键思想是为后续编码器层提供实值提示(特征),旨在改进表示学习过程。这种设计有几个优点,例如,它允许投射任意数量的注意力机制,允许多种注意力类型(例如,co-attention, intra-attention)和注意力变体(例如,alignment-pooling, max-pooling, mean-pooling)同时执行。这不仅消除了调整co-attention层的昂贵需求,而且还为从业者提供了更大的可解释性。
根据四个基准任务评估提出的模型,即对话回复预测(Ubuntu对话语料库),Factoid问答(TrecQA),社区问答(来自SemEval 2016的QatarLiving论坛)和推特回复预测(客户支持)。在Ubuntu对话语料库中,MCAN的表现优于现有的最先进模型9%。MCAN在经过充分研究的TrecQA数据集上也取得了0.838 (MAP) 和0.904 (MRR) 的最佳表现评分。
模型:
模型的输入是两个文本序列,将其表示为查询q和文档d。query-document可以适用于不同的问题域,例如问答系统或消息响应预测。下图显示了QA检索的整体模型体系结构。
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

MCAN是一个广泛的multi-attention架构,它利用压缩函数和注意力作为特征
这个模型目前在Answer Selection任务上表现最好,值得重点关注,之前在一篇阅读笔记中详细讨论了这个模型,由于字数限制,细节请参考用于检索式问答系统的多播注意力网络。
reference paper: Ming Tan, Cicero dos Santos, Bing Xiang & Bowen Zhou.
2015. LSTM-Based Deep Learning Models for Nonfactoid Answer Selection. In ICLR 2016. Ming Tan, Cicero dos Santos, Bing Xiang & Bowen Zhou.
2015. Improved Representation Learning for Question Answer Matching.In ACL 2016. Cicero dos Santos, Ming Tan, Bing Xiang & Bowen Zhou.
2016.Attentive Pooling Networks Liu Yang, Qingyao Ai, Jiafeng Guo, W. Bruce Croft. 2016. aNMM: Ranking Short Answer Texts with
Attention-Based Neural Matching Model. In CIKM 2016. Yi Tay, Minh C.
Phan, Luu Anh Tuan and Siu Cheung Hui. 2017 Learning to Rank Question
Answer Pairs with Holographic Dual LSTM Architecture. In SIGIR 2017.
Hua He, Kevin Gimpel and Jimmy Lin. 2015. Multi-Perspective Sentence
Similarity Modeling with Convolutional Neural Networks. In EMNLP 2015.
Yi Tay, Luu Anh Tuan, Siu Cheung Hui. 2017. Enabling Efficient
Question Answer Retrieval via Hyperbolic Neural Networks Zhiguo Wang,
Wael Hamza and Radu Florian. 2017. Bilateral Multi-Perspective
Matching for Natural Language Sentences Shuohang Wang, Jing
jiang.2017. A Compare-Aggregate Model for Matching Text Sequences. In
ICLR 2017. Gehui Shen,Yunlun Yang, Zhi-Hong Deng. 2017. Inter-Weighted
Alignment Network for Sentence Pair Modeling… In EMNLP 2017. Yi Tay,
Luu Anh Tuan, Siu Cheung Hui, Multi-Cast Attention Networks, In KDD
2018
重磅!忆臻自然语言处理-学术微信交流群已成立
可以扫描下方二维码,小助手将会邀请您入群交流,
注意:请大家添加时修改备注为 [学校/公司 + 姓名 + 方向]
例如 —— 哈工大+张三+对话系统。
号主,微商请自觉绕道。谢谢!
自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

推荐阅读:
PyTorch Cookbook(常用代码段整理合集) 通俗易懂!使用Excel和TF实现Transformer! 深度学习中的多任务学习(Multi-task-learning)——keras实现 自然语言处理|答案选择|语义匹配任务目前表现最好的几个模型
文章图片

    推荐阅读