論文原文:https://arxiv.org/pdf/1806.09102.pdfnode
剛看到小夕的這篇總結我的感受講的很好很容易理解,裏面涉及了4篇論文串燒,按照時間講了算法的發展,文風也蠻有趣(有點嗲,哈哈~)ios
上海交通大學等2018年發表的文章,主要涉及基於檢索式的多倫問答模型,提出了一個深度對話整合模型(DUA),是針對多輪對話將過去會話直接拼接做爲上下文信息存在噪聲和冗餘等問題,DUA從對話和回覆中採用attention機制挖掘關鍵信息,凸顯關鍵信息忽略冗餘信息,最終得到utterances和response的匹配得分。本文還發布了一個電子商務對話語料庫ECD,涉及到商品諮詢、物流快遞、推薦、談判、聊天等,本文的數據集及代碼。結構以下可分爲5個模塊:git
DUA的優勢:github
最後一輪對話很好的與前面對話結合,其最主要信息能夠更好的用語義相關的方法來解決web
每輪會話能夠凸顯關鍵信息,從必定程度上忽略冗餘信息算法
計算最終匹配得分的時候充分考慮各輪對話之間的關係網絡
採用GRU模型將每一個utterance和候選response進行embedding。架構
Utterance Representation是將utterance同等看待沒有考慮the last utterance和以前對話之間的關係,該模塊主要是將最後一個utterance(the last utterance)與context中的其餘utterance以及候選response進行融合,論文中是直接將utterances和response的embedding串聯起來,獲得表徵F。
框架
該模塊是對上一模塊turns-aware的表徵信息F信息進行處理,採用一個self-matching attention mechanism將冗餘信息進行過濾,挖掘utterances和response中的顯著特徵,即經過一個attention機制的GRU進一步作表徵的交互與融合。
ssh
[·,·] 是兩個向量串聯在一塊兒 ,Ct是self-matching attention的輸出
第四模塊在單詞和會話級別上對 response和each utterance進行匹配,通過CNN造成匹配向量。
這裏從兩個粒度進行匹配:
爾後分別在這兩個矩陣上進行CNN卷積操做,獲得卷積以後的表徵。
最後進行max-pooling和flatten以後concatenation。
將匹配向量按上下文話語的時間順序傳遞GRU,獲得utterance和response的最終匹配得分,分爲三步:
參考:
https://www.paperweekly.site/papers/2352
https://zhuanlan.zhihu.com/p/44539292
上篇對話系統綜述的結尾, 文章做者列出3篇檢索式問答系統的工做, 經瞭解發現都是出自MSRA、baidu等大佬團隊, 因此筆者也趕緊扶正眼鏡, 準備提升姿式水平. 以前咱們提到, 檢索式的單輪問答系統可視爲語義匹配問題, 從下面分享的幾篇文章看, 單輪擴展到多輪, 核心就是如何設計更有效的特徵提取結構, 所以單輪問答系統的思路是值得借鑑的.
本文出自百度天然語言處理部, 發表於EMNLP2016, 做者提供了一種直接的單輪轉多輪思路——將多輪問答語句合併爲一列, 鏈接處用_SOS_隔開, 將整個對話歷史視爲"一句話"去匹配下一語. 以下圖所示
將整個對話歷史合併爲一列, 作word embedding後經過GRU模塊提取詞彙級特徵, 與候選的response作匹配. 熟悉語義匹配或單輪問答的觀衆老爺應該看得出這部分與單輪問答沒有任何區別.
不過如此長的多語句序列靠一個GRU顯然是不夠的, 做者在此基礎上提出了獲取語句級特徵的方法, 其結構也很是簡單, 就是TextCNN+pooling+GRU, 其實這也是單輪問答提取多粒度文本表示特徵的思路. 下圖很清楚的展現了詞彙-語句特徵的提取模塊的結合
此外, 本文在損失函數部分也有技巧, 結合disagreement-loss(LD)和likelihood-loss(LL)的損失最小化過程也必定程度地利用了不一樣粒度特徵的交互信息.
Multi-view learning:多視角學習:
complementary principle:
If the examples labeled by the classifier h1 on one view are to be useful for the classifier h2 on the other view, h1 should contain some information that h2 does not know. The two classifiers will thus exchange complementary information with each other and learn from each other under the complementary principle. As the co-training process proceeds, the two classifiers will become increasingly similar, until the performance cannot be further improved.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
本文發表於ACL2017, 是MSRA大佬的佳做. 若是說第一篇Multi-view模型是單輪問答表示模型的擴展, 那這一篇就是單輪問答交互模型的擴展. 做者認爲構建問答歷史語句和候選回覆的交互表示是重要的特徵信息, 所以借鑑語義匹配中的匹配矩陣, 並結合CNN和GRU構造模型, 具體結構以下圖
與Multi-view模型相似, 這裏做者也考慮同事提取詞彙級和語句級的特徵, 分別獲得兩個匹配矩陣M1和M2, 具體的:
獲得的兩個匹配矩陣可視爲兩個通道, 再傳給CNN+Pooling得到一組交互特徵{vi}. 交互特徵傳入第二個GRU層, 獲得{h'i}
最後的預測層, 做者設計了三種利用隱變量{h'i}的方式:
做者的實驗代表採用attention的SMN效果最好, 但訓練相對最複雜, last最簡單且效果基本優於linearly combined.
值得一提的是本文的實驗數據, 英文數據集來自開放的Ubuntu Forum, 裏面包含1百萬context-response對訓練集, 5萬測試集和5萬驗證集; 中文數據集來自Douban Conversation Corpus, 包含1百萬訓練集, 1萬驗證集和1萬測試集, 做者公開了該數據集, 看官老爺能夠去文中的github地址下載. 在此對做者表示感激.
另外以前那篇綜述中還有一篇來自baidu的相關工做, 該文發表在SIGIR2016, 做者將問答語句對分爲Query-Reply, Query-Posting和Query-Context三類, 嘗試用這種多角度response排序模式提高模型. 不過本文的總體架構與上述的RNN、CNN組合思路並沒有差異, 就很少介紹了~
本文來自COLING2018, 文章提出, 諸如Multi-view和SMN模型都是將對話歷史視爲總體, 或者說每一句對於response都是平等的, 這樣作會忽略對話歷史的內部特徵, 例如一段對話過程常常包含多個主題; 此外一段對話中的詞和句的重要性也都不一樣. 針對這些對話歷史中的信息特徵, 做者設計了下圖所示的DUA模型
模型分爲5個部分:
- 第一部分: 通用的詞向量+GRU作embedding
- 第二部分: 開始着手處理上面提到的對話歷史交互問題, 首先雖然history中的多句話都對response有影響, 但最後一句一般是最關鍵的, 這一層的每一個utterance(除最後一句)和response都和最後一句utterence作aggregation操做, aggregation操做有三種: 鏈接(concatenation), 元素加(element-wise summation), 元素乘(element-wise multiplication), 其中鏈接操做的效果最好
- 第三部分: 以utterance爲單元作self-attention, 目的是過濾冗餘(好比無心義的空洞詞句), 提取關鍵信息, 因爲self-attention會失去序列信息, 做者在attention上又加了一層GRU得到帶順序信息的P
- 第四部分: 徹底採用SMN中構建和處理雙通道匹配矩陣的策略, 用第一層的詞向量和上一層的GRU輸出P分別構建詞彙級和語句級的匹配矩陣, 過CNN+Pooling得到交互特徵
- 第五部分: 先將交互特徵傳給一層GUR得到隱狀態h, 再對h和第三部分的GRU輸出P作attention(h, P)操做, 將輸出傳給softmax得到預測匹配結果
能夠看出DUA模型側重於對詞彙和語句都作多層特徵提取, 實驗結果也代表利用多層級多粒度特徵的模型比前做SMN等模型都有不小的提高. 而且除了Ubuntu Froum和Douban Conversation Corpus兩個數據集外, 本文做者還公開了一批中文數據 E-commerce Dialogue Corpus. 該數據取自淘寶, 包含1百萬訓練集, 1萬驗證集和1萬測試集. 做者在文中給出了github項目地址, 數據共享在Google driver上. 特別感謝做者開放數據集.
下面再次出自百度天然語言處理部, 發表於ACL2018. 做者的attention組合技讓人眼花繚亂, 尤爲最後那個21維單元組成的3維立方體.... 不過下圖展現的總體結構是很是清晰的
DAM模型以self-attention爲基礎, 稍做修改加入了cross-attention. 兩種attention計算再結合匹配矩陣的思惟構造了那個立方體, 最後用3D-CNN處理. 下面爲你們詳細介紹幾個關鍵部分
第一層Input就是單純作詞向量, embedding後傳給了五光十色的Attentive Module, 這裏的每一個Module其實就是略有修改的Transformer.
對話歷史以句子爲單位, 與response一塊兒經過L個Attentive Module, 每一個utterance和response都得到了L個矩陣U和R, 就是結構圖第三列, 藍色是每一個句子ui的L個矩陣合併的Ui, 綠色是response對應的L矩陣組成的R.
這裏DAM模型一樣有兩種匹配矩陣, 不過構建思路就相對複雜了, 其中第一列Mself稱爲自注意力匹配(self-attention-match), 第二列Mcross稱爲交叉注意力匹配(cross-attention-match) Mself的構建相對簡單, 上一層不是每一個句子獲得了ui和response都獲得了L個矩陣構成的組Ui和R麼, Mself就按下圖的公式獲得
上式給出了構建ui和response的Mselfi的過程. 因爲ui和response的矩陣組Usub>i和R都包含L個矩陣, 這個Mselfi也是由L個矩陣構成的組, 每一個矩陣l的第個元素就是U和R中第l個矩陣的元素uk和rt點乘計算獲得. 對每一個句子-回覆組成的ui和response都作一遍上述計算, 就獲得了n個Mself (注意n是對話歷史中的utterance個數, 所以就有n個utterance-response對, 因此就有n個Mself, 每一個Mself都由L個矩陣組成, 下面Mcross相同)
Mcross的構造過程和Mself同樣, 區別在於這裏的U和R是用cross-attention構造, 而Mself的U和R是self-attention構造, 下面給出對於句子ui和response的兩種attention的計算方法(公式5,6爲self-attention; 8,9爲cross-attention, 10是計算cross-attention-match):
最後的立方體Q就是經過兩種匹配矩陣Mself和Mcross計算獲得的. 最後用兩層3D的CNN處理這個立方體, 獲得的特徵傳給單層網絡估計匹配程度.
Q有n個切片, 對應n個utterance-response對的匹配矩陣, 每一片的尺寸都是(nui, nr)對應匹配矩陣中每一個矩陣的尺寸, 特別的, Q的每一個元素都是由對應的Mselfi和Mcrossi鏈接獲得的, 公式以下 (注: 文中Representation層的Module是從0算起到L, 故爲L+1)
實驗部分做者分別對比了5種不一樣的的DAM, 能夠看到去掉DAMcross會形成很大的損失, Attentive Module的最後一層產生的效果優於第一層.
題目:《Multi-Turn Response Selection for Chatbots with Deep Attention Matching Network》 Introduction該論文徹底使用基於注意力的依賴性信息,來研究回覆與其多輪上下文的匹配。做者的解決方案受到在機器翻譯領域提出的Transformer[1]的啓發,以兩種方式擴展了注意機制。首先,僅僅使用堆疊的self-attention構建了不一樣粒度的文本片斷的表示。 其次,嘗試在上下文和回覆中提取真正匹配的段對。 做者在一個統一的神經網絡中共同引入這兩種注意力機制,並在Ubuntu和Douban兩個多輪迴複選擇任務中代表,其提出的模型明顯優於最早進的模型。 做者在兩個方面拓展了Transform的關鍵attention機制:(1)self-attention。經過使一個句子關聯其自己,來捕獲句子自己內部詞級的依賴性。經過多層的堆疊,能夠在不一樣粒度上創建句子的語義表示。(2)cross-attention。經過使上下文和回覆彼此關聯,能夠捕獲那些潛在匹配的segment(段對)之間的依賴性,其可以爲具備多輪上下文的文本相關性提供補充信息來匹配回覆。 Symbols: represents a dialogue data set; : represents a conversation context; : represents utterance in a context, stands for the number of words; : represents a response candidate, stands for the number of words; : represents a binary label; : represent word embedding of and r; : represent multi-grained representations of and r; : represent self-attention-match and cross-attention-match; Q: each dimension of Q represents each utterance in context, each word in utterance and each word in response. Attentive ModelTransformer結構圖,來自《Attention is all you need》和Transformer結構相似,這裏Attentive Module有三個輸入:Q、K、V,結構公式定義爲AttentiveModule(Q, K, V),其中部分公式以下: Model模型由representation-matching-aggregation三個主框架構成: 1. Representation 使用分層堆疊的Attentive Module來獲取 和r的多粒度表示, 表明不一樣的粒度,即不一樣的Attentive Module,最後獲取 和r的不一樣粒度表示集合 和 。
Self-attention-match和cross-attention-match分別定義以下: 其中, 和 定義以下: 3. Aggregation DAM最終將每一個utterance和response中的全部分段匹配度聚合成一個3D的匹配圖像Q。 這裏每個像素有2(L+1)個channels,存儲着某一個segment(段對)在不一樣粒度(|L|+1個)下的匹配度。而後DAM利用3D卷積和最大池化操做從整個Q中提取重要的匹配特徵(操做定義爲 ),最後將得到的匹配特徵經過一個單層感知機來計算c和r以前的匹配分數: Experiment1. 做者作了消融實驗,去掉 中的多粒度表示,只用self-attention的第一層和最後一層,即 和 ;同時又分別只使用self-attention-match和cross-attention-match來作匹配,即 和 。實驗能夠發現, 和 相比 降低較多; 和 比 差,說明多粒度表示的益處; 正確率的下降,也代表聯合考慮文本自己的相關性和其依賴信息在回覆選擇中的必要性。做者還指出, 獲取了和 相近的性能,可是速度快2.3倍,因此它適合在低計算能力但要求高準確率場景上使用,例如工業應用或做爲如 網絡中的組成部分。 爲啥速度快??——3D?? 2. DAM模型除了在超過4輪的對話內容上表現優異,還在2輪的對話上表示穩定。同時針對不一樣的utterance文本長度,堆疊self-attention能夠一向地提升匹配性能。 3. 最後做者經過attention可視化,代表self-attention-match和cross-attention-match在utterance和response匹配中能夠捕捉到相互補充的信息。 Conclusion做者徹底使用attention機制研究了多輪對話中的回覆選擇問題,在以下兩個方面拓展了Transformer attention機制:(1)使用堆疊的self-attention來得到多粒度的語義表示;(2)利用cross-attention來匹配依賴信息。做者相信這兩種attention機制能夠在口語理解、對話狀態追蹤或seq2seq對話生成領域上有做用。同時做者也指出了DAM模型在fuzzy-candidate和logical-error上的不足,並指出使用對抗而不是隨機選擇候選response可以處理這兩個問題。 參考文獻[1] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Lukasz Kaiser, and Illia Polosukhin. 2017. Attention is all you need. In Advances in Neural Information Processing Systems, pages 6000?010. |
|
這一篇一樣出自ACL2018的文章就相對輕鬆了, BTW本文做者也是SMN模型的做者, 這裏沒有展現複雜的模型, 而是討論瞭如何下降手工標註工做量, 充分利用少許標註數據和大量未標註數據, 以及改進學習方法減小噪聲, 優化決策面的思路. 具體的做者提出了一種藉助seq2seq模型給未標註數據提供評判標記(matching signals)的方法, 能夠結合上述模型共同使用, 實驗結果顯示用於SMN和multi-view上均有必定程度的提高. 另外做者設計了一種採樣副樣本的方法, 並配合給出了一種學習函數, 採樣思路其實就是選擇一些與正樣本效果接近的(難以區分的)負樣本, 緣由不難想象, 簡單的負樣本會拖拽決策面, 使得與正樣本接近的負樣本沒法被正確區分. 做者還用4組對比實驗證實了較多的採樣個數能夠提高模型效果.
最後要私自蹭波知乎仙女大神 的腿. 做者對上述模型的介紹比筆者不知高到哪裏去, 忍受筆者私貨荼毒的看官老爺們能夠移步知乎大佬區自行解毒.