本文主要參考論文?A Survey on Dialogue Systems: Recent Advances and New Frontiers挡闰,相當(dāng)于讀書筆記或者簡要翻譯吧,點(diǎn)擊下載原文愁溜。若對本文中提及的參考文獻(xiàn)內(nèi)容感性趣察皇,請下載原文查看參考文獻(xiàn)名嗜愈。
概述
目前台谢,從應(yīng)用的角度看,對話系統(tǒng)大致可以分為兩類:(1)task-oriented systems(任務(wù)型)瞬项;(2)non-task-oriented systems(聊天型)蔗蹋。
任務(wù)型系統(tǒng)主要幫助人們完成確定的任務(wù)(例如,訂票)囱淋。之前廣泛應(yīng)用的方法流程如Figure 1猪杭。系統(tǒng)先理解用戶的話(NLU),將其表示成系統(tǒng)可以理解的狀態(tài)妥衣,然后根據(jù)策略采取一些action皂吮,最后根據(jù)這些action轉(zhuǎn)換成自然語言(NLG)回復(fù)。這里的NLU是用統(tǒng)計(jì)模型來處理税手》涑铮可靠的對話系統(tǒng)仍使用人工特征和規(guī)則來表示狀態(tài)和策略、檢測意圖等冈止,使得實(shí)際使用中的對話系統(tǒng)成本很高狂票,而且很難被用于其他領(lǐng)域。
最近熙暴,很多深度學(xué)習(xí)算法通過學(xué)習(xí)高維的分布式特征表示來解決這些問題。
聊天型對話系統(tǒng)主要使用了這兩種模型:(1)generative methods慌盯,例如:Seq2Seq model周霉;(2)retrieval-based methods,學(xué)習(xí)從已有庫中選擇當(dāng)前對話對應(yīng)的回答亚皂。
任務(wù)型對話系統(tǒng)
主要從兩類來看俱箱,pipeline型和端到端(end-to-end)型。
Pipeline Methods
主要包含四個部分:NLU灭必,dialogue state tracking狞谱,policy learning乃摹,NLG。
NLU:將自然語言映進(jìn)行識別意圖和信息抽雀啤(語義槽孵睬,semantic slots)。識別意圖就是將用戶的話分類到預(yù)定義好的類別中伶跷。[15掰读,84,112]使用了深度學(xué)習(xí)進(jìn)行意圖識別叭莫。[25蹈集,29,74]使用了CNN進(jìn)行分類雇初。類似的方法同樣適用于類別和領(lǐng)域的分類拢肆。槽填充(slot filling)是將用戶的話中的詞打上語義標(biāo)簽(例如,日期靖诗、地點(diǎn)等):[15,17]使用了深度信念網(wǎng)絡(luò)(DBNs)善榛,[51,66,115,113]使用了RNN呻畸。NLU的結(jié)果(intent和slot)會進(jìn)一步被對話管理器(dialogue management component)進(jìn)行處理移盆,主要包括dialogue state tracking和policy learning。
Dialogue state tracking:在每一輪對話中估計(jì)用戶的目標(biāo)伤为。常用的state結(jié)構(gòu)是slot filling或semantic frame咒循。傳統(tǒng)方法是使用人工定義的規(guī)則來選擇最有可能的結(jié)果[23]。最近绞愚,[26]提出了單領(lǐng)域的叙甸,基于深度學(xué)習(xí)的belief tracking;[58]提出了基于RNN位衩,多領(lǐng)域的tracking模型裆蒸;[59]提出了neural belief tracker(NBT)來檢測slot-value pairs。
Policy learning:基于狀態(tài)的表示糖驴,policy learning用來生成系統(tǒng)的下一步action僚祷。可以使用監(jiān)督學(xué)習(xí)和強(qiáng)化學(xué)習(xí)贮缕。[14]使用了深度強(qiáng)化學(xué)習(xí)辙谜,得到了很好的表現(xiàn)。
NLG: 根據(jù)action生成自然語言感昼。[83,94,95,123]使用了基于LSTM的神經(jīng)網(wǎng)絡(luò)模型装哆。[20]提出了基于Seq2Seq方法的NLG,[19]擴(kuò)展了[20],使得模型能適應(yīng)用戶說話的方式蜕琴,作出合適的回應(yīng)萍桌。
End-to-End Methods
基于Pipeline方法的系統(tǒng),有很多在具體領(lǐng)域的人工設(shè)計(jì)凌简,難以應(yīng)用到其他領(lǐng)域上炎,并且還有兩點(diǎn)局限:一是用戶的反饋難以傳給模型,二是各個模塊間相互依賴(一個模塊的輸出是另一個模塊的輸入),適應(yīng)新環(huán)境時修改起來需要很多人力。[7,97]提出了基于神經(jīng)網(wǎng)絡(luò)的埃碱、端到端的伯复、可訓(xùn)練的任務(wù)型對話系統(tǒng),將對話系統(tǒng)的學(xué)習(xí)看作是一個從歷史對話記錄的匹配過程的學(xué)習(xí),使用Encoder-Decoder模型來訓(xùn)練整個網(wǎng)絡(luò),缺點(diǎn)是監(jiān)督學(xué)習(xí)需要大量數(shù)據(jù),并且不夠健壯胞谈。[120]首先提出了端到端的強(qiáng)化學(xué)習(xí)方法來訓(xùn)練DM(包括dialogue state tracking和policy learning),優(yōu)化系統(tǒng)的魯棒性(系統(tǒng)問用戶一系列Yes/No問題來確定答案)憨愉。[45]將端到端系統(tǒng)訓(xùn)練為task completion neural dialogue烦绳,最終目的是完成一項(xiàng)任務(wù),例如配紫,訂電影票径密。
任務(wù)型對話系統(tǒng)通常需要查詢外部的知識庫。先前的系統(tǒng)一般會發(fā)出一次符號查詢來獲得結(jié)果[97,103,45]躺孝。[21]使用基于attention享扔、鍵值對的檢索機(jī)制來增強(qiáng)現(xiàn)有循環(huán)網(wǎng)絡(luò)架構(gòu)。[18]提出了在知識庫上的“soft”posterior distribution來推斷用戶的興趣點(diǎn)植袍,取代了符號查詢惧眠。[102]結(jié)合了RNN與領(lǐng)域知識的軟件和系統(tǒng)action模版。