论文来源:TACL 2017
论文链接:http://tongtianta.site/paper/11096
文本匹配是智能问答(社区问答)中的关键环节,用于判断两个句子的语义是否相似。机器智能问答FAQ中,输入新文本(语音转文本)后,和对话库内已有句子进行匹配,匹配完成后输出对应问题答案。而这里主要研究的就是两个句子如何计算它们之间语义相似度的问题。
一、原理
Enhanced LSTM for Natural Language Inference(ESIM)是最近提出的效果比较好的一个文本相似度计算模型,该模型横扫了很多比赛,我们这里介绍该模型的基本原理和pytorch版本实现。
从ESIM的全名可以看出,这是一种转为自然语言推断而生的加强版LSTM,由原文中知这种精心设计的链式LSTM顺序推理模型可以胜过以前很多复杂的模型。
ESIM的模型架构如图1所示,它的主要组成为:输入编码,局部推理建模和推理组合。图1中垂直方向描绘了三个主要组件,水平方向,左侧代表连续语言推断模型,名为ESIM,右侧代表在树LSTM中包含语法分析信息的网络。

这里用和
分别表示两个句子,其中
表示句子
的长度,
表示句子
的长度,这里在原文中
又称为前提,
为假设。
1.输入编码
采用BiLSTM(双向LSTM)构建输入编码,使用该模型对输入的两个句子分别编码,表示如下(1)(2)所示:
(1)
(2)
我们将输入序列在时间
由BiLSTM生成的隐藏(输出)状态写为
。这同样适用于
。
2.局部推理建模
这里使用点积的方式计算和
之间的attention权重,公式如(3)所示,论文作者提到attention权重他们也尝试了其他更加复杂的方法,但是并没有取得更好的效果。
(3)
计算两个句子之间的交互表示:
(4)
(5)
其中是
的加权求和。
通过计算元组以及
的差和元素乘积来增强局部推理信息。增强后的局部推理信息如下:
(6)
(7)
3.推理组成
使用BiLSTM来提取和
的局部推理信息,对于BiLSTM提取到的信息,作者认为求和对序列长度比较敏感,不太健壮,因此他们采用了:最大池化和平均池化的方案,并将池化后的结果连接为固定长度的向量。如下: