p2 in 2019/12/4
论文名称:Sequential Matching Network: A New Architecture for Multi-turn Response Selectionin Retrieval-Based Chatbots
论文作者:YuWu, WeiWu, ChenXing, ZhoujunLi, MingZhou
论文来源:ACL2017
下载链接:https://arxiv.org/abs/1612.01627
源码链接1:https://github.com/MarkWuNLP/MultiTurnResponseSelection
源码链接2:https://github.com/MaoGWLeon/SMN_Pytorch
参考笔记1:https://www.jianshu.com/p/3652b3f158d4
参考笔记2:https://zhuanlan.zhihu.com/p/66384889
Abstact
- 以前的方法:将前几轮的utterances用户对话简单concatenates拼接 /or/ 对整个上下文进行一次抽象,然后将最终抽象出来的向量进行匹配。
- 以前方法的不足:丢失utterances之间的关系 /or/ 丢失utterances中重要语境信息。
- 本文的方法:SMN,首先在多个粒度级别(word和segment)上,用response和上下文utterance的每个语句匹配(主要是从每一个utterance中建立底层的交互,进而从utterance中提取重要的匹配信息),并将这些匹配信息作为一个矩阵进行卷积和池化操作,然后通过建立utterance关系模型的RNN,按时间顺序累积这些匹配信息,最后根据RNN的隐藏状态计算最终匹配分值。
- 本文的实验数据集:1)Ubuntu Corpus;2)Douban Conversation Corpus
- 本文的贡献:1)提出了一种新的基于上下文的多轮响应匹配模型,用于基于检索的聊天机器人的多轮响应选择(检索式对话后面很多SOA的论文都使用了它的思路。尤其是response和每个utterance分别匹配,再过交替CNN和MaxPooling,最后RNN累积匹配信息的处理方法和流程);2)提出了一个开放领域对话数据集——豆瓣数据集;3)模型对开源数据集进行了有效性的实证检验。
Sequential Matching Network
图1 SMN框架:
SMN分为三层:
第一层(Utterance-Response Matching),提取重要的匹配信息:将一个响应候选词与每个utterance的word和segment级别进行匹配,并且这两个层次的重要匹配信息通过卷积、池化、编码操作提取出来;
第二层(Matching Accumulation),累积重要的匹配信息:将匹配的向量输入至第二层,通过GRU的隐藏状态按照时间顺序进行累加;
第三层(Matching Prediction),计算匹配分数:根据第二层的隐藏状态计算最终的匹配分值。
Utterance-Response Matching
- step1:对上下文utterance中的每一个和response先word-embedding,然后GRU来编码上个下文语境。这时,每一个utterance和response有两个序列:word-embedding sequence和hidden state sequence;
- step2:每一个utterance和response对应序列相乘得到两个匹配矩阵,一个是word-level,另一个是segment-level(由hidden-state-sequence得到)。这里word-level和segment-level就是原文中提到的多粒度,这种做法就是在底层根据response抽取重要的匹配信息,相较于MV的做法,这里相当于引入了监督信息,让匹配更有目的性。
- step3:对匹配矩阵做交替卷积和池化操作。第二步得到的word-level和segment-level匹配矩阵组成一个张量,称之为匹配信息张量,对匹配信息张量交替CNN和MaxPooling,得到的张量两维度拼接然后线性映射为固定维度向量,输入第二层。
Matching Accumulation
假设上一层提取的重要匹配信息向量为:[v1,…,vn]。然后经过GRU累积这些重要的匹配信息,得到隐状态Hm = [h’1,…,h’n]。
Matching Predictionand Learning
计算出最终的匹配分数。
合并上述GRU的输出,本文提供了三种参数化方式:
- 方法一: 取出最后一个隐状态:
- 方法二:训练一个参数加权求和:
- 方法三:利用attention机制处理:
方法二和方法三都是从训练数据中,突出重要匹配向量在最终匹配中的作用。不同之处在于方法二的权值是静态的,因为权值完全由utterances的位置决定,而方法三中的权值是由匹配向量和utterances向量动态计算的(后面进行了实证比较)。
选择输出的最终向量后,使用了最小化交叉熵的形式对softmax参数进行了学习,最终通过softmax函数来输出对这个response的最终评分。
学习目标函数:
Experiments
数据集: 采用两个数据集Ubuntu Corpus和Douban Conversation Corpus。
评估指标: R2@1、R10@1、R10@2、R10@5、MAP、MRRP@1、R10@1、R10@2、R10@5
基准模型:
- Basic models : TF-IDF, RNN, CNN, LSTM and BiLSTM.
- Multi-view : the model proposed by Zhou et al.(2016)
- Deep learning to respond (DL2R) : the model proposed by Yan et al. (2016)
- Advanced single-turn matching models : MV-LSTM、Match-LSTM 、Attentive-LSTM、Multi-Channel、Multi-Channelexp
References
- Junyoung Chung, Caglar Gulcehre, KyungHyun Cho, and Yoshua Bengio. 2014. Empirical evaluation of gated recurrent neural networks on sequence modeling. arXiv preprint arXiv:1412.3555 .
- Rudolf Kadlec, Martin Schmid, and Jan Kleindienst. 2015. Improved deep learning baselines for ubuntu corpus dialogs. arXiv preprint arXiv:1510.03753 .
- Ryan Lowe, Nissan Pow, Iulian Serban, and Joelle Pineau. 2015. The ubuntu dialogue corpus: A large dataset for research in unstructured multi-turn dialogue systems. arXiv preprint arXiv:1506.08909
- Rui Yan, Yiping Song, and Hua Wu. 2016. Learning to respond with deep neural networks for retrievalbased human-computer conversation system. In SIGIR 2016, Pisa, Italy, July 17-21, 2016. pages 55– 64.