【文本匹配】交互型模型

表示型的文本匹配模型存在两大问题:(1)对各文本抽取的仅仅是最后的语义向量,其中的信息损失难以衡量;(2)缺乏对文本pair间词法、句法信息的比较

而交互型的文本匹配模型通过尽早在文本pair间进行信息交互,能够改善上述问题。

基于交互的匹配模型的基本结构包括:

(1)嵌入层,即文本细粒度的嵌入表示;

(2)编码层,在嵌入表示的基础上进一步编码;

(3)匹配层:将文本对的编码层输出进行交互、对比,得到各文本强化后的向量表征,或者直接得到统一的向量表征;

(4)融合层:对匹配层输出向量进一步压缩、融合;

(5)预测层:基于文本对融合后的向量进行文本关系的预测。

【文本匹配】交互型模型

1. ARC-II

ARC-II模型是和表示型模型ARC-I模型在同一篇论文中提出的姊妹模型,采用pair-wise ranking loss的目标函数。
【文本匹配】交互型模型
其核心结构为匹配层的设计:

(1)对文本pair的n-gram Embedding结果进行拼接,然后利用1-D CNN得到文本S_X中任一token i和文本S_Y中任一token j的交互张量元素M_{ij}。该操作既然考虑了n-gram滑动窗口对于local信息的捕捉,也通过拼接实现了文本pair间低层级的交互。

(2)对交互张量进行堆叠的global max-pooling和2D-CNN操作,从而扩大感受野。

2. PairCNN

PairCNN并没有选择在Embedding后直接进行query-doc间的交互,而是首先通过TextCNN的方式分别得到query和doc的向量表征,然后通过一个中间Matrix对query和doc向量进行交互得到pair的相似度向量,然后将query的向量表征、doc的向量表征、相似度向量以及其它的特征向量进行拼接,最后经过两层的MPL得到最后的二分类向量。
【文本匹配】交互型模型
PairCNN的模型架构中的亮点在于各View向量的拼接,既能利用原始的语义向量,还能够很便捷的融入外部特征。

3. MatchPyramid

无论是ARC-II中的n-gram拼接+1D conv还是Pair-CNN中的中间Matrix虽然均通过运算最终达到了信息交互的作用,但其定义还不够显式和明确,MatchPyramid借鉴图像卷积网络的思想,更加显式的定义了细粒度交互的过程。【文本匹配】交互型模型
MatchPyramid通过两文本各token embedding间的直接交互构造出匹配矩阵,然后将其视为图片进行2D卷积和2D池化,最后Flatten接MLP计算得匹配分数。本文共提出了三种匹配矩阵的构造方式:

(1)Indicator:0-1型,即一样的token取1,否则取0;这种做法无法涵盖同义多词的情况;

(2)Cosine:即词向量的夹角余弦;

(3)Dot Product:即词向量的内积

此外值得注意的是因为各个文本pair中句子长度的不一致,本文并没有采用padding到max-lenght的惯用做法,而是采用了更灵活的动态池化层,以保证MPL层参数个数的固定。

4. DecAtt

DecAtt将注意力机制引入到交互型文本匹配模型中,从而得到各token信息交互后增强后的向量表征。
【文本匹配】交互型模型
模型被概括为如下层级模块:

(1)Attend层:文章提供了两种注意力方案,分别为文本间的cross-attention,以及各文本内的intra-attention。具体而言,分别采用前向网络F和F_{intra}对文本token embedding进行编码,然后通过F(x)F(y)计算cross-attention的score,以及F_{intra}(x)F_{intra}(y)计算self-attention的score。然后利用softmax将attention score进行归一化,再对各token embedding进行加权平均,得到当前query token处的增强表征,最后与原始token embedding进行拼接计为attend后的最终embedding。

(2)Compare层:将前序Attend层计算得到的最终embedding,喂入一个全连接层进行向量维度的压缩。

(3)Aggregate层:将每个文本各token处压缩后的向量进行简单的求和,再拼接起来通过MPL得到最后的匹配得分。

5. CompAgg

CompAgg详细对比了在文本间cross-attention得到的各token向量表征与原始token向量进行compare的各种方案。
【文本匹配】交互型模型
该模型的主要结构包括:

(1)reprocessing层:采用类似于LSTM/GRU的神经网络得到token的深层表示(图中的\bar a_i);

(2)Attention层:利用软注意力机制计算文本间的cross-attention(与DecAtt相同),从而得到各token处交互后的向量表示(图中的h_i);

(3)Comparison层:通过各种网络结构或计算将\bar a_i和h_i计算求得各token的最终表征。

(4)Aggregation层:利用CNN网络对Comparison层的输出进行计算,得到最后的匹配得分。

其中Comparison层的构造方式包括:

(1)矩阵乘法,类似于Pair-CNN中的中间Matrix

(2)前向神经网络,即将\bar a_i和h_i进行拼接,然后利用输入FFN;

(3)分别计算cosine和欧式距离,然后拼接;

(4)各维度进行减法;

(5)各维度进行乘法;

(6)各维度进行减法和乘法,然后再接一个前向网络。

6. ABCNN

ABCNN是将Attention机制作用于BCNN架构的文本匹配模型。

6.1 BCNN

首先简单介绍下BCNN架构:
【文本匹配】交互型模型
BCNN的整体结构比较简单:(1)输入层;(2)卷积层,因为采用了反卷积的形式,所以在size上会增加;

(3)池化层,采用了两种池化模式,在模型开始阶段采用的是local平均池化,在最后句子向量的抽取时采用了global平均池化;(4)预测层,句子向量拼接后采用LR得到最后的匹配得分。

ABCNN共包括三种变形,下面依次介绍。

6.2 ABCNN

【文本匹配】交互型模型
ABCNN-1直接将Attention机制作用于word embedding层,得到phrase 级的词向量表示。区别于CompAgg中的软注意力机制,ABCNN-1直接基于下式得到注意力矩阵:Aij=11+xiyjA_{ij}=\frac{1}{1+|x_i-y_j|},然后分别乘以可学习的权重矩阵W0W_0W1W_1得到attetion feature map。

6.3 ABCNN-2

【文本匹配】交互型模型
ABCNN-2将Attention机制作用于word embedding层后的反卷积层的输出结果,其中注意力矩阵的计算原理与ABCNN-1一致。然后将注意力矩阵沿着row和col的方向分别求和,分别代表着各文本token的attention socre;接着将反卷积层的输出结果与attention socre进行加权平均池化,得到与输入层相同shape的特征图。

6.4 ABCNN-3

【文本匹配】交互型模型
ABCNN-3的基本模块可视为ABCNN-1和ABCNN-2的堆叠,即在嵌入层和卷积层上面都引入了attention的机制用来增强对token向量的表示。

7. ESIM

ESIM模型基于NLI任务给出了一种强有力的交互型匹配方法。其采用了BiLSTM和Tree-LSTM分别对文本序列和文本解析树进行编码,其亮点在于:

(1)匹配层定义了cross-attention得到各token的向量表示与原token向量间的详细交互关系,即采用[aˉ,a^,aˉa^,aˉa^][\bar a, \hat a,\bar a-\hat a,\bar a* \hat a]作为最终文本token的向量表示,这也成为后续文本匹配模型的惯用做法。

(2)聚合层通过BiLSTM得到各文本token的编码,从而进一步增强了文本序列的信息传递;

(3)预测层通过拼接各文本token编码的max-pooling和mean-pooling结果,再经过MPL进行匹配预测。

【文本匹配】交互型模型

8. Bimpm

Bimpm可视为对之前各类交互型文本匹配模型的一次总结。
【文本匹配】交互型模型
该模型在各层的具体做法总结如下:

(1)编码层采用BiLSTM得到每个token隐层的向量表示;

(2)匹配层遵循mk=cosine(Wkv1,Wkv2)m_k=cosine(W_k*v_1,W_k*v_2)的方式可以得到两个文本的任意token pair之间在第k个view下的匹配关系,至于v1v_1v2v_2如何取,文章提供了4种策略:

  • 策略一:其中一个句子取各token隐层的向量表示,另一个句子采用隐层最后时间步处的输出;
  • 策略二:其中一个句子取各token隐层的向量表示,另一个句子采用隐层各时间步输出与之匹配后取再取Max-Pooling值;
  • 策略三:其中一个句子取各token隐层的向量表示,另一个句子采用cross-attentive后得到的加权句子向量;
  • 策略四:其中一个句子取各token隐层的向量表示,另一个句子采用cross-attentive后attention score最高处token的向量作为句子向量。

这四种策略的区别在于对句子向量的计算不同。

【文本匹配】交互型模型
(3)聚合层,首先对上面各种策略得到的输出层再通过一层BiLSTM层,然后将各策略下最后时间步的输出进行拼接,得到最后的聚合向量;

(4)预测层:两层MPL+softmax

9. HCAN

HCAN是除Bert类模型外在文本匹配领域表现最为优异的深度模型之一,其采用了较为复杂的模型结构。
【文本匹配】交互型模型
针对于信息抽取问题,文章首先分析了相关性匹配和语义匹配的差异:

(1)相关性匹配主要关注于关键词的对比,因此更关注低层级词法、语法结构层面的匹配性;

(2)语义匹配代表着文本的平均意义,因此其关注更高、更丑想的语义层面的匹配性。

该模型首先采用三类混合的编码器对query和context进行编码:

(1)深层相同卷积核大小的CNN编码器;

(2)不同卷积核大小的CNN编码器的并行编码;

(3)沿着时序方向的stacked BiLSTM编码;

对于前两者,通过控制卷积核的大小可以更好的捕捉词法和句法特征,即符合相关性匹配的目的;而对于后者,其能表征更长距离的文本意义,满足语义匹配的目的。

在这三类编码器的编码结果基础上,模型分别进行了相关性匹配和语义匹配操作。其中相关性匹配主要采用各phrase间内积+max pooling/mean pooling的方式获取相关性特征,并通过IDF指进行各phrase的权重调整。而在语义匹配中,模型采用了精心设计的co-attention机制,并最终通过BiLSTM层输出结果。

最后的预测层仍采用MPL+softmax进行预测。

10. 小结

交互型语言匹配模型由于引入各种花式attention,其模型的精细度和复杂度普遍强于表示型语言模型。交互型语言匹配模型通过尽早让文本进行交互(可以发生在Embedding和/或Encoding之后)实现了词法、句法层面信息的匹配,因此其效果也普遍较表示型语言模型更好。

【Reference】

  1. ARC-II: Convolutional Neural Network Architectures for Matching Natural Language Sentences

  2. PairCNN: Learning to Rank Short Text Pairs with Convolutional Deep Neural Networks

  3. MatchPyramid: Text Matching as Image Recognition

  4. DecAtt: A Decomposable Attention Model for Natural Language Inference

  5. CompAgg: A Compare-Aggregate Model for Matching Text Sequences

  6. ABCNN: ABCNN: Attention-Based Convolutional Neural Network
    for Modeling Sentence Pairs

  7. ESIM: Enhanced LSTM for Natural Language Inference

  8. Bimpm: Bilateral Multi-Perspective Matching for Natural Language Sentences

  9. HCAN: Bridging the Gap Between Relevance Matching and Semantic Matching
    for Short Text Similarity Modeling

  10. 文本匹配相关方向打卡点总结(数据,场景,论文,开源工具)

  11. 谈谈文本匹配和多轮检索

  12. 贝壳找房【深度语义匹配模型 】原理篇一:表示型