【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

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