一、概述
用于自然语言推断的加强LSTM。顾名思义,这篇论文的目的是做自然语言推断,即推断两个句子的关系,关系有三种:相等(或蕴含),对立和中立。
作者主要是用句子间的注意力机制(intra-sentence attention),来实现局部的推断,进一步实现全局的推断。
ESIM主要有3个组成部分:input encoding,local inference modeling, and inference composition。
正常词向量+BiLSTM实现,如图1左边;如果可以做句子的语法分析的话,那么也可以做下语法分析 + treeLSTM,如图1右边;最后,二者预测结果融合,效果更好。ESIM就是图1左边的实现。图1左+图1右,称为HIM(hybrid inference model)。
二、ESIM的组成部分
2.1 Input Encoding
对于输入的词向量,首先使用 BILSTM来学习如何表示一个word以及上下文,即对原始的word embedding在当前的语境下重新编码,得到两个句子的新的词向量:
2.2 Local Inference Modeling(局部推断建模)
BiLSTM: 序列模型可以收集和word以及上下文的推断。
treeLSTM: 语法树的结构可以收集词组和从句直接的局部信息。(HIM才做,ESIM不做)
要想做局部推断,必须要把两个句子的子部分做一定程度的对齐(严格对齐或者软对齐),这里是使用句子间对齐(inter-sentence attention)。
2.2.1 先计算两个句子word之间的相似度,得到2维的相似度矩阵,用Dot实现
2.2.2 然后计算基于句子的局部推断
就是用上一步的相似度矩阵,用句子q2的word bj来生成相似度加权的q1的word ai(hat)。
反过来,用句子q1的word ai来生成相似度加权的q2的word bj(hat)。 如下:
实际上加权是用softmax(相似度vector)实现的。
2.2.3 Enhancement of local inference information(加强局部推断信息)
把a 和a(hat)计算差和点积, b和b(hat)也一样。这样做的目的是 更清晰地区别a和a(hat)的局部的推断信息,获取例如“对立”的推断关系,所以扩展了a的词向量为Ma:
假设句子的长度为20,Ma的每个词向量维度为800,那么得到Ma为20*800的矩阵,可以认为我们得到800维特征,每个特征都在20个word中比较得出来的。
2.3 Inference Composition(推断组件)
用pooling 抽取特征的过程,用了maxPooling和avgPooling,这是为了防止结果对句子长度敏感。所以800维特征的抽取过程如下:
2.4 MLP的过程
全连接输出的过程。