Enhanced LSTM for Natural Language Inference(1609)
这篇论文提出了一个用于处理推理任务的模型,ESIM,并运用语法树为其附加信息,在SNIL上取得了88.6(单ESIM 88.0)的成绩。
时间原因没有看Tree-LSTM,据说现在已经被GNN取代。
模型总览
模型基本框架是BiLSTM(input encoding)— Attention(local inference modeling)— BiLSTM(Inference Composition)— Pooling和softmax(prediction)
图中,左边是ESIM部分,右侧使用了Tree-LSTM进行对附加的语法树进行处理。
Input encoding
本文将句子从词向量的序列通过BiLSTM的过程视为是对整个输入的encoding过程。Premise和Hypothesis分别通过不同的LSTM。
Local inference modeling
分析总体的推理信息时,建模局部的推理信息是很重要的。局部推理信息,一般就是指词与词之间的推理信息。建模局部推理信息需要各种软对齐或硬对齐的方法,在神经网络模型中,在Encode-Decode模型中就常用注意力模型来做软对齐,在本问题中用注意力对两个句子的对齐也是合理有效的。
分别将Premise和Hypothesis的LSTM的输出称为
h
a
ha
ha和
h
b
hb
hb,应用点积模型进行注意力计算。注意这里进行的不是对一个序列的“摘要”操作,即传统注意力机制里将一个输入序列加权相加变成一个向量;而是一种“对齐”操作,被处理后的依然是两个序列。对每个
h
a
i
ha_i
hai,将它作为对于
h
b
hb
hb 这个序列的查询向量,取得的被注意力加权的整个序列的和向量作为新的
a
i
a_i
ai,对
h
b
hb
hb 序列进行相同操作。
a
i
=
∑
j
=
1
L
b
e
x
p
(
e
i
j
)
∑
k
=
1
L
b
e
x
p
(
e
k
j
)
h
b
j
a_i = \sum^{L_b}_{j=1} \frac{exp(e_{ij})}{\sum^{L_{b}}_{k=1}exp(e_{kj})}hb_j
ai=j=1∑Lb∑k=1Lbexp(ekj)exp(eij)hbj
b
j
=
∑
i
=
1
L
b
e
x
p
(
e
i
j
)
∑
k
=
1
L
b
e
x
p
(
e
i
k
)
h
a
i
b_j = \sum^{L_b}_{i=1} \frac{exp(e_{ij})}{\sum^{L_{b}}_{k=1}exp(e_{ik})}ha_i
bj=i=1∑Lb∑k=1Lbexp(eik)exp(eij)hai
矩阵化过程为:
a
=
s
o
f
t
m
a
x
(
h
a
⋅
h
b
T
)
h
b
a = softmax(ha · hb^T) hb
a=softmax(ha⋅hbT)hb
b
=
s
o
f
t
m
a
x
(
(
h
a
⋅
h
b
T
)
T
)
h
a
b = softmax((ha · hb^T)^T) ha
b=softmax((ha⋅hbT)T)ha
之后,对
a
a
a 和
h
a
ha
ha 进行一下处理:
m
a
=
c
o
n
c
a
t
[
h
a
,
a
,
(
a
−
h
a
)
,
a
∘
h
a
]
m_a = concat[ha, a, (a-ha), a\circ ha]
ma=concat[ha,a,(a−ha),a∘ha]
其中
∘
\circ
∘是按位乘法,对b也一样得出
m
b
m_b
mb.
Inference Composition
让这两个序列再经过一个全连接层让其降低维度,通过BiLSTM,得到 v a v_a va和 v b v_b vb序列,之后在时间维度上分别对其进行max pooling和avg pooling。
Prediction
将得出的四个向量进行拼接,放进MLP进行分类,MLP是一层使用tanh作为激活函数的全连接网络,接一个softmax,之后使用交叉熵作为loss。整个网络是end to end的。
备注
实验将数据集中的the other分类全部删除,以提高分类能力。