Enhanced LSTM for Natural Language Inference

一、概述

用于自然语言推断的加强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)。


HIM的图

二、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的过程

全连接输出的过程。

你可能感兴趣的:(Enhanced LSTM for Natural Language Inference)