【论文阅读】 Sequential Matching Network

Sequential Matching Network: A new Architecture for multi-turn response selection in retrieval-based Chatbots

 文章主要提出了一种模型(SMN),用检索的方式处理多轮对话系统

多轮对话,类似于Q,A,Q,A,Q...QF:  --> A 这种,有上下文,然后给出最后那个问题(QF)的对应回答(response)

现存的解决方案通常是将上下文整个处理成一个上下文向量,但是这样忽略了上下文中的很多信息。

SMN将上下文中的每一句话(utterance)都同候选的response提取重要信息,处理成vector,然后将这些上下文的vector被累积起来从而获得他们之间的关系,最后用这个计算得分。

具体来说,每一个utterance和候选response先处理成词向量(utterance-response matching),然后计算一个word的相似度矩阵和一个segment级别的相似度矩阵,这两个矩阵经过CNN的卷积池化,得到一个个vector,这样就从上下文的多个粒度提取了重要信息,然后这些vector经过另一个GRU来计算得分。

模型结构如图:

utterance-response matching 部分:

变成词向量的形式后,点乘计算词向量之间的距离,得到矩阵M1;

然后利用GRU分别得到句子和response的隐藏状态H,然后计算:

然后进行卷积和池化的操作得到vector,这是第一层的输出([v1,v2,v3...vn])

得到的[v1,v2..vn]作为输入进入又一个GRU,得到隐藏状态 Hm=[h1,h2,,hn].这里可以得到utterances之间的关系,GRU会选择多大程度上遗忘和保留之前的信息

最后计算得分不是本文重点,可以采用多个方式,本文采用的是attention机制的计算

测试数据分别是ubuntu的语料集和自己处理的豆瓣的中文语料

猜你喜欢

转载自blog.csdn.net/BeforeEasy/article/details/81190677