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.