论文: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,一种增强序列推断模型
整体模型结构:
输入编码:
1.context信息拼接一个长句子,句子之间使用
2.使用预训练的embedding进行初始化,而这里需要注意的是输入部分使用了多个embedding进行拼接比如glove/fasttext.
3.使用LSTM对输入和context分别进行编码
局部匹配-Local Matching
思想来源:下一个句子的某个单词或者词组的语义和context有匹配的地方,从而建立起它们的关系
做法:直接针对输入和context计算它们的匹配矩阵(内积),然后分别对输入和context进行加权处理得到对偶矩阵,进一步,局部匹配的输出是当前向量和对偶向量的四元组进行拼接而成的;
具体计算逻辑:
a.计算两两的内积即匹配矩阵
b.利用匹配矩阵计算它的attention后的向量,即对偶向量
c.局部匹配输出四元组形式
d.使用一层全联接层进行压缩
匹配组合 Matching Composition
做法:使用BiLSTM读取局部匹配向量,学习重要的局部匹配组合,相对整体的关系
输出层
针对context和input的BiLSTM的2输出进行max/mean操作,然后拼接它们,再送入一个MLP进行得分预测
Note
值得注意的是context比较长的处理,比如ubuntu数据,可以先使用sentence encode的方式初选择200个句子,然后再使用ESIM模型进行匹配。具体而言,Sentence-encoding可以通过Siamese的网络结构学习到,主要结构是上图1的a部分。