【论文笔记】Enhanced LSTM for Natural Language Inference(1609)

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)
【论文笔记】Enhanced LSTM for Natural Language Inference(1609)_第1张图片
图中,左边是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=1Lbk=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=1Lbk=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(hahbT)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((hahbT)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,(aha),aha]
其中 ∘ \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分类全部删除,以提高分类能力。

你可能感兴趣的:(NLP,论文,NLP,深度学习,推理,LSTM)