【论文笔记】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)
图中,左边是ESIM部分,右侧使用了Tree-LSTM进行对附加的语法树进行处理。

Input encoding

本文将句子从词向量的序列通过BiLSTM的过程视为是对整个输入的encoding过程。Premise和Hypothesis分别通过不同的LSTM。

Local inference modeling

分析总体的推理信息时,建模局部的推理信息是很重要的。局部推理信息,一般就是指词与词之间的推理信息。建模局部推理信息需要各种软对齐或硬对齐的方法,在神经网络模型中,在Encode-Decode模型中就常用注意力模型来做软对齐,在本问题中用注意力对两个句子的对齐也是合理有效的。

分别将Premise和Hypothesis的LSTM的输出称为hahahbhb,应用点积模型进行注意力计算。注意这里进行的不是对一个序列的“摘要”操作,即传统注意力机制里将一个输入序列加权相加变成一个向量;而是一种“对齐”操作,被处理后的依然是两个序列。对每个haiha_i,将它作为对于hbhb 这个序列的查询向量,取得的被注意力加权的整个序列的和向量作为新的aia_i,对hbhb 序列进行相同操作。
ai=j=1Lbexp(eij)k=1Lbexp(ekj)hbja_i = \sum^{L_b}_{j=1} \frac{exp(e_{ij})}{\sum^{L_{b}}_{k=1}exp(e_{kj})}hb_j
bj=i=1Lbexp(eij)k=1Lbexp(eik)haib_j = \sum^{L_b}_{i=1} \frac{exp(e_{ij})}{\sum^{L_{b}}_{k=1}exp(e_{ik})}ha_i
矩阵化过程为:
a=softmax(hahbT)hba = softmax(ha · hb^T) hb
b=softmax((hahbT)T)hab = softmax((ha · hb^T)^T) ha
之后,对aahaha 进行一下处理:
ma=concat[ha,a,(aha),aha]m_a = concat[ha, a, (a-ha), a\circ ha]
其中\circ是按位乘法,对b也一样得出mbm_b.

Inference Composition

让这两个序列再经过一个全连接层让其降低维度,通过BiLSTM,得到vav_avbv_b序列,之后在时间维度上分别对其进行max pooling和avg pooling。

Prediction

将得出的四个向量进行拼接,放进MLP进行分类,MLP是一层使用tanh作为**函数的全连接网络,接一个softmax,之后使用交叉熵作为loss。整个网络是end to end的。

备注

实验将数据集中的the other分类全部删除,以提高分类能力。