论文解读-多轮会话ESIM

论文:Sequential Attention-based Network for Noetic End-to-End Response Selection,AAAI19

来源:阿里巴巴达摩院

Code:https://github.com/alibaba/esim-response-selection

ESIM,全称Enhanced Sequential Inference Model,一种增强序列推断模型

整体模型结构:

image-20190722073809600

输入编码:

1.context信息拼接一个长句子,句子之间使用进行分割。

2.使用预训练的embedding进行初始化,而这里需要注意的是输入部分使用了多个embedding进行拼接比如glove/fasttext.

3.使用LSTM对输入和context分别进行编码

局部匹配-Local Matching

思想来源:下一个句子的某个单词或者词组的语义和context有匹配的地方,从而建立起它们的关系

做法:直接针对输入和context计算它们的匹配矩阵(内积),然后分别对输入和context进行加权处理得到对偶矩阵,进一步,局部匹配的输出是当前向量和对偶向量的四元组进行拼接而成的;

具体计算逻辑:

a.计算两两的内积即匹配矩阵

image-20190722081045851

b.利用匹配矩阵计算它的attention后的向量,即对偶向量

image-20190722081226714

c.局部匹配输出四元组形式

image-20190722081407703

d.使用一层全联接层进行压缩

匹配组合 Matching Composition

做法:使用BiLSTM读取局部匹配向量,学习重要的局部匹配组合,相对整体的关系

输出层

针对context和input的BiLSTM的2输出进行max/mean操作,然后拼接它们,再送入一个MLP进行得分预测

Note

值得注意的是context比较长的处理,比如ubuntu数据,可以先使用sentence encode的方式初选择200个句子,然后再使用ESIM模型进行匹配。具体而言,Sentence-encoding可以通过Siamese的网络结构学习到,主要结构是上图1的a部分。