论文笔记 | Simple and Effective Text Matching with Richer Alignment Features


作者:李瑾

单位:燕山大学


论文地址: https://arxiv.org/pdf/1908.00300.pdf
代码地址:https://github.com/hitvoice/RE2


目录

  • 一、 概述
  • 二、 模型
    • 2.1 模型介绍
    • 2.2 Augmented Residual Connections
    • 2.3 Alignment Layer
    • 2.4 Fusion Layer
    • 2.5 Prediction Layer
  • 三、 实验分析

一、 概述

  文本匹配任务是自然语言处理的核心任务。包括自然语言推断(Natural Language Inference)、释义识别(Paraphrase Identification)、回答选择(Answer Selection)等众多的任务。因此,对于通用文本匹配模型的研究非常重要。
  论文提出了RE2模型,作者在SNLI、SciTail 、Quora Question 、WikiQA数据集上分别与之前的模型做了比较。相比较之前的模型来说,RE2模型的速度更快,鲁棒性也有所提升,同时在不同的文本匹配任务上都取得更好的效果。

二、 模型

2.1 模型介绍

论文笔记 | Simple and Effective Text Matching with Richer Alignment Features_第1张图片

  图中的白色矩形表示词向量,带条纹的矩形表示经过模块输出后的残差向量,黑色矩形表示经过Encoder编码后的向量。
  在RE2模型中,将需要进行文本匹配的文本分别输入图中所示模型(右侧模型与左侧一致)。将Encoder、Alignment和Fusion打包成一个块,连续堆叠N次。在块中,将Encoder得到的向量与它的输入进行拼接作为Alignment和Fusion的输入,在每一次堆叠的过程中都将上一次Fusion的结果作为Encoder输入。最后将N次堆叠结果送入Polling层,通过预测层得到结果。需要注意的是,两段文本的Alignment参数是共享的,但N个块的参数都是独立的。

2.2 Augmented Residual Connections

  为了为Alignment提供丰富的文本特征,作者使用增强剩余连接来连接打包好的块。
第n个块 x ( n ) x^{(n)} x(n)(n≥2)的输入是拼接第一个块 x ( 1 ) x^{(1)} x(1)的输入与前两个块的输出之和的结果:
x i ( n ) = [ x i ( 1 ) ; o i ( n − 1 ) + o i ( n − 2 ) ] x_{i}^{(n)} = [x_{i}^{(1)};o_{i}^{(n-1)}+o_{i}^{(n-2)}] xi(n)=[xi(1);oi(n1)+oi(n2)]
  使用剩余残差连接,使得融合和对齐的输入均包括了嵌入特征、残差特征和通过Encoder编码的上下文序列特征。作者对着三种特征均做了消融实验,实验结果表明,三种特征在文本匹配的过程中均起到了作用。

2.3 Alignment Layer

  在对齐的过程中,作者使用文本a( a = a 1 , a 2 , . . . . a l a a = a_{1},a_{2},....a_{l_{a}} a=a1,a2,....ala)和文本b( b = b 1 , b 2 , . . . . b l b b = b_{1},b_{2},....b_{l_{b}} b=b1,b2,....blb)的相同位置的向量点积作为投影向量,以此来衡量相似度( e i j e_{ij} eij):
e i j = F ( a i ) T F ( b j ) e_{ij} = F(a_{i})^{T}F(b_{j}) eij=F(ai)TF(bj)
  Alignment层的输出向量( a ′ 和 b ′ a^{'}和b^{'} ab)通过另一向量表示的加权和来计算。向量的加权和是根据当前位置与另一序列中相应位置之间的相似性分数对总和进行加权: a i ′ = ∑ j = 1 l b e x p ( e i j ) ∑ k = 1 l b e x p ( e i k ) ) b j a_{i}^{'} =\sum_{j=1}^{l_{b}}\frac{exp(e_{ij})}{\sum_{k = 1}^{l_{b}}exp(e_{ik}))}b_{j} ai=j=1lbk=1lbexp(eik))exp(eij)bj b j ′ = ∑ i = 1 l a e x p ( e i j ) ∑ k = 1 l a e x p ( e k j ) ) a i b_{j}^{'} =\sum_{i=1}^{l_{a}}\frac{exp(e_{ij})}{\sum_{k = 1}^{l_{a}}exp(e_{kj}))}a_{i} bj=i=1lak=1laexp(ekj))exp(eij)ai

2.4 Fusion Layer

  在融合的过程中,作者从三个角度对比了文本嵌入向量 a i a_{i} ai和对齐表示向量 a i ′ a_{i}^{'} ai(对于向量b做同样的操作),将它们融合在一起作为Fusion 层的输出。
a ˉ i 1 = G 1 ( [ a i ; a i ′ ] ) (1) \bar{a}_{i}^{1} = G_{1}([a_{i};a_{i}^{'} ]) \tag{1} aˉi1=G1([ai;ai])(1)

a ˉ i 2 = G 2 ( [ a i ; a i − a i ′ ] ) (2) \bar{a}_{i}^{2} = G_{2}([a_{i};a_{i} - a_{i}^{'} ])\tag{2} aˉi2=G2([ai;aiai])(2)

a ˉ i 3 = G 3 ( [ a i ; a i ∘ a i ′ ] ) (3) \bar{a}_{i}^{3} = G_{3}([a_{i};a_{i} \circ a_{i}^{'} ])\tag{3} aˉi3=G3([ai;aiai])(3)

a ˉ i = G ( [ a ˉ i 1 ; a ˉ i 2 ; a ˉ i 3 ] ) (4) \bar{a}_{i} = G_([\bar{a}_{i}^{1};\bar{a}_{i}^{2};\bar{a}_{i}^{3} ])\tag{4} aˉi=G([aˉi1;aˉi2;aˉi3])(4)
  式(2)中的“ a i ; a i − a i ′ a_{i};a_{i} - a_{i}^{'} ai;aiai ”表示了 a i a_{i} ai a i ′ a_{i}^{'} ai之间的差异,而式(3)中的 a i ; a i ∘ a i ′ a_{i};a_{i} \circ a_{i}^{'} ai;aiai 表示按元素相乘,表示 a i a_{i} ai a i ′ a_{i}^{'} ai之间的相似性。

2.5 Prediction Layer

预测层的处理方法就是常规预测处理方法。 y ^ = H ( [ v 1 ; v 2 ; v 1 − v 2 ; v 1 ∘ v 2 ] ) \hat{y} = H([v_{1};v_{2};v_{1}-v_{2};v_{1} \circ v_{2}]) y^=H([v1;v2;v1v2;v1v2])
对于文本匹配任务来说,两段文本的先后顺序并不影响最终的结果,因此可以使用预测方法:
y ^ = H ( [ v 1 ; v 2 ; ∣ v 1 − v 2 ∣ ; v 1 ∘ v 2 ] ) \hat{y} = H([v_{1};v_{2};|v_{1}-v_{2}|;v_{1} \circ v_{2}]) y^=H([v1;v2;v1v2;v1v2])

三、 实验分析

  作者分别在SNLI、SciTail、Quaora、WikiQA四个数据集上进行了模型有效性验证。实验结果如下图所示。

论文笔记 | Simple and Effective Text Matching with Richer Alignment Features_第2张图片

从图中可以看出,RE2模型在不同的数据集上都取得很好的效果。
同时作者还对模型速度和鲁棒性进行了测试,测试结果如下图所示。

论文笔记 | Simple and Effective Text Matching with Richer Alignment Features_第3张图片
  可以看出,RE2模型速度相比CSRAN快6倍,比DIIN快了至少17倍,与推理速度相近的BiMPM和CAFE模型相比,RE2模型获得了更高的预测分数(见Table1、Table3)。

消融实验

  作者构建了4个baseline模型进行比较,观察促使实验获得改进的不同模块所起到的作用。六个baseline模型分别是:

  1. w/o enc-in : 不做词嵌入和残差拼接,直接使用encoder层的输出作为融合和对齐的输入;
  2. residual conn : 不进行残差增强;
  3. simple fusion : 使用简单的融合,融合层使用 a i 1 = G 1 ( [ a i ; a i ′ ] ) {a}_{i}^{1} = G_{1}([a_{i};a_{i}^{'} ]) ai1=G1([ai;ai]) b i 1 = G 1 ( [ b i ; b i ′ ] ) {b}_{i}^{1} = G_{1}([b_{i};b_{i}^{'} ]) bi1=G1([bi;bi])
  4. parallel blocks : 将embedding的输出平行输入到所有的块。这种方法可以观察到实验改进是因为架构的加深还是单纯的因为参数的增加。

实验结果如图所示。

论文笔记 | Simple and Effective Text Matching with Richer Alignment Features_第4张图片

不同数量的块和不同数量encoder层对结果的影响

论文笔记 | Simple and Effective Text Matching with Richer Alignment Features_第5张图片

你可能感兴趣的:(论文笔记 | Simple and Effective Text Matching with Richer Alignment Features)