在看了幾篇論文和一些文章之后,今天來做一個小小的總結。這篇文章主要分為三部分。第一部分是簡單講述Task oriented dialogue systems;第二部分是較概括的講述現在各end to end task oriented dialogue systems的模型;第三是總結和討論。
簡述Task oriented dialogue systems:
Task Oriented Dialog Systems(領域任務型的對話系統)是針對具體的應用領域,比如餐廳預訂、公交線路查詢、設備控制等,以完成一項具體的領域任務為目標,代表有自動客服,領域推薦等等。
對于一個傳統領域任務型(task oriented) 的對話系統[1],可以分為以下三個部分,也就是SLU,NLG,Dialogue Manager。口語理解模塊(SLU)將語言轉換成抽象語義表示,即用戶對話行為,而后系統更新其內部狀態,然后系統通過決策規則確定系統行為,最后語言生成模塊(NLG)將系統行為決策轉化成對話。其中,狀態變量包含跟蹤對話過程的變量,以及表示用戶需求的屬性值(又稱為slots)。
在分模塊系統中,每個部分都有不同的方法和模型來解決。舉個栗子,比如:SLU系統由從自然語言詢問中識別說話者的意圖和提取語義構成,這兩項任務常被稱為意圖識別和槽位填充。意圖識別和槽位填充通常是分別進行的。意圖推測可以理解為語義表達分類的問題,比較流行的分類方法有例如支持向量機(SVMs)和深度神經網絡。槽位填充可以理解為序列標注任務。解決序列標注問題流行的方法包括最大熵馬爾可夫模型(MEMMs),條件隨機場(CRFs)以及循環神經網絡(RNNs)等等。由于在此主要是講end to end 的模型,所以不詳細說明各個部分分開模型的解決方式。
在任務型的對話系統中,分模塊的解決方式有不錯的效果,但是,這樣的方式需要分開來訓練各個模塊,同時需要大量的特定領域的人工干預(domain-specific handcrafting),在模型泛化方面有很大的局限,在進行任務對話的時候,缺乏魯棒性。同時隨著技術的發展,如何構建個性化,更加吸引用戶的對話系統也是一個較大的問題。而隨著深度學習的發展,end to end 模型在很多方面有所成就,如機器翻譯,文本挖掘和圖像識別等。但在Task Oriented Dialog Systems(領域任務型的對話系統)方面,還有很大的提升空間。下面介紹最近end to end 模型的一些工作和我的看法,當然,如有偏頗,望指出!
這篇就先總結這5篇paper,若下來有其他新的再看,有必要總結話,那么就下次再總結吧!
end to end task oriented dialogue systems模型:
Learning End-to-End Goal-Oriented Dialog[2]
基于Memory Network在QA chatbot領域充分展示了優勢,而Paper Learning End-to-End Goal-Oriented Dialog則將其應用在了領域任務型的對話系統(Task Oriented Dialog System)中。模型還是原來的模型,只是用法不同而已!
模型如下圖,和一開始的Memory Network沒有什么不同的地方,但是有一點需要指出的是在End-to-End Memory Network這篇文中的output是一個詞。也就是說在QA那邊,回答只是一個詞而已。但在生成對話的時候,一個詞肯定是解決不了問題的。然而模型還是那個模型呀,怎么辦呢?這個時候作者在paper中提出的是不是不用一句話一句話機器生成式的,而是恰好相反,作者在這里用的是先指定回答模板,然后基于模板生成的,模型在輸出時輸出一個得分,再從模板中取得分最高的那一個。這樣雖然解決了生成一句話的問題,但是另外一個問題也就是領域遷移性差的問題也就隨之產生。
Memory Network其實驗數據為以餐館預訂為目的的bAbI數據集,已有開源的數據和代碼
總結一下其優缺點:應用Memory Network的優勢在于不用獨立涉及 SLU,DST,也就是直接的端到端的一種訓練,在其缺點在于很難結合知識庫。同時在該論文中的實驗是基于模板檢索的各種模板還是需要自己制定,也就是存在遷移差的問題。
LSTM-based dialog[3]&Hybrid Code Networks[4]
這兩篇論文有很多相似的地方,首先在motivation上,可以說都是客服成長過程,這個在[3]開頭有描述,在訓練的時候可以看作是專家在訓練一個新入職的客服,由專家提供一系列example dialogues,和一些標準答案,然后讓模型去學習。學成之后上線服務,在服務的同時有結合反饋來繼續學習。然后是在模型方面,從圖中就可以看出相似之處,整體流程方面大概是首先輸入會話,然后提取entity ,加上原來對話,轉成向量,輸入給RNN,用rnn來做DM結合一些領域知識,一些action mask和templates,輸出決策,再基于模板生成對話,這樣一直循環。最后是在訓練方法上面,都提出了SL和RL都可以獨立訓練或者結合來訓練的方式。
在網上找到Hybrid Code Networks模型的實驗代碼--代碼和數據,實驗數據還是以餐館預訂為目的的bAbI數據集,可以和上面的Memory Network base 模型做下對比實驗。
總結其優缺點:可以同時用SL和RL的訓練方式訓練,領域專家需要提供少量對話樣本,就可以自動學習對話狀態( dialogue states)。但是缺點是很多模塊還是需要較多的人為的干預,比如需要人為干預的SLU, DST, Database模塊,制定動作掩碼(action mask),等等。
A network Based end To End trainable task Oriented dialogue system[5]
這篇論文是劍橋大學Dialogue System Group在16年5月發表的,如下圖,首先其模型中Intent Network可以理解為seq2seq的encoder部分,將用戶的輸入encode成一個vector z(t)。然后在Belief Trackers,這個也就是Dialogue State Tracking(DST),這里是輸入原對話輸出一個informable slot和requestable slot的概率分布,作用就是原來的作用,獲取到預先定好的知識圖譜中每個slot的分布,跟蹤對話的狀態。而后在Policy Network結合前面兩者加上從 數據庫查詢的相應”知識“,形成決策,輸出給Generation Network進行文本生成。
這篇目前并沒有找到其代碼,只是有論文作者的主頁是找到其數據集...
總結其優缺點:這篇論文在system中能較好的結合知識庫,在項目只需要較少的人為干預即可,在其缺點在于我們需要在DST預定好領域先驗知識中的slot value,而且在訓練中在于DST是需要獨立的訓練。
End To End task Completion neural dialogue systems[6]
這篇文章中結合之前一篇paper[7]提出的User Simulator來模用戶議程,來進行訓練,可以說形成一個較為完善的訓練系統。在User Simulator輸出query給語意理解模塊(LU)作為輸入,語意理解模塊(LU)是一個LSTM實現的,然后輸出語義幀,用流行的IOB(in-out-begin)格式用于表示槽標簽。在DM決策之后輸出policy輸出結果。
這篇paper開源了其代碼和數據,是純python無框架寫的!
總結其優缺點:其優點很明顯就是在訓練的時候是端到端的,同時User Simulator在一定程度上解決了end to end Task oriented dialogue systems訓練數據難獲得的問題。然后其劣勢和挑戰在于首先數據集不大,在訓練的時候也較依賴于其特定的數據集!
總結與討論:
提出我的幾個想法,首先是在end to end 模型中,其實就是在想怎么把之前做的分模塊要分開訓練的多個模型有機的結合統一成一個新的模型,比較常見的是比如DM用RNN來做,更好的跟蹤狀態,用基于模板或者基于生成式或者兩者結合的方式來生成對話等。
在訓練方式方面,RL算法在上面的論文用普遍都有用,也得到了非常不錯的效果,這個是個很不錯的方式,也是可以繼續提出創新點的地方。
最后在task oriented dialogue systems方面end to end的數據缺乏,在[7]提出的User Simulator 是一個比較不錯的方式來模擬用戶訓練,當然在發展end to end Task oriented dialogue systems中,數據集還是個很大的問題 。
在接下來的工作,我想第一是應該是怎么才能用更少的領域先驗知識來構建模型,另一個也應該是怎么才能提高其領域遷移性的問題。
參考文獻:
[1]:李林琳&趙世奇.對話系統任務綜述與基于POMDP的對話系統. PaperWeekly.
[2]:Antoine Bordes and Jason Weston. Learning end-to-end goal-oriented dialog. arXiv preprint arXiv:1605.07683, 2016.
[3]:Jason D Williams and Geoffrey Zweig. End-to-end lstm-based dialog control optimized with supervised and reinforcement learning. arXiv preprint arXiv:1606.01269, 2016.
[4]:Williams J D, Asadi K, Zweig G. Hybrid Code Networks: practical and efficient end-to-en dialog control with supervised and reinforcement learning[J]. arXiv preprint arXiv:1702.03274, 2017.
[5]:Wen T H, Vandyke D, Mrksic N, et al. A network-based end-to-end trainable task-oriented dialogue system[J]. arXiv preprint arXiv:1604.04562, 2016.
[6]:Li, Xuijun, et al. "End-to-end task-completion neural dialogue systems."arXiv preprint arXiv:1703.01008(2017).
[7]:Li, Xiujun, et al. "A user simulator for task-completion dialogues."arXiv preprint arXiv:1612.05688(2016)
原文參考:https://zhuanlan.zhihu.com/p/27762254