【ACL2017】Sequential Matching Network

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 = [h1,…,hn]。

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章