奧茲國的奇妙術士-對話系統收集數據的方法

最近讀了幾篇關於收集對話語料的paper,都是圍繞着一個思想:Wizard of Oz。靈感天然是來自《綠野仙蹤/奧茲國的奇妙術士》這本小說,也就是說有一我的類藏在還不完善的對話系統後,控制着對話系統的行爲,以此(1)收集數據,(2)完善系統。在這篇文章中,我將沿着對話系統如何構建的思路,大概介紹一下相關的幾篇論文。數據庫


 

(1)對話系統簡介網絡

構建一個對話系統目前有幾種方法,就單輪對話來講,一個最直觀的方法是模式匹配,也就是說若是問句知足了某種模式(pattern),那麼就返回指定的回答。第二種是召回(retrieval-based method)。也就是說全部的答案都是預先寫好在數據庫中的,對於新的用戶輸入,咱們能夠用類似度匹配,找到數據庫中最相近的對話,返回該對話的回答。還能夠用基於神經網絡的(seq2seq)的方法,直接訓練一個神經網絡,一端提供輸入,另外一端給出輸出。模塊化

當涉及到多輪對話的時候,上面幾種方法就顯得不那麼好用了,由於涉及到上下文的聯繫。通常咱們會採起模塊化的系統(modular-based method)來解決這個問題。對話系統能夠大體地分爲如下一個模塊:工具

. Natural Language Understanding(NLU)天然語言理解。也就是從用戶的輸入中提取有效信息(意圖、相關實體(entity))。學習

2. Dialog Management and Dialog Policy(DM/DP)對話管理/對話策略。根據本輪提取的信息和以前的信息決定下一步作什麼。通常這兩個模塊會被分開講,上次導師也特意考我知不知道他們兩個的區別,對這個問題我一直以來的答案都是無可奉告。確實最近沒有時間看,也不是本文重點,不講了。測試

3. Natural Language Generation (NLG) 天然語言生成,根據前面的指示,生成一句輸出,返回給用戶。人工智能

固然,若是仍舊用s2s的方法,簡單粗暴地把前幾輪的對話做爲輸入,求個輸出,是不用考慮上面所說的模塊的。這個方法我認爲離真正應用還有一段距離,用一個網絡去代替整個系統仍是要求比較高的。spa

 


(2) Wizard of Ozorm

收集對話數據的目標一是用來完善本身的對話系統,二是用來作數據集。咱們以電商客服爲例,收集對話數據最簡單的方法就是記錄人類客服和用戶之間的對話記錄。在有這樣大量數據積累的狀況下,咱們能夠作兩方面的工做,一方面是分析全部的對話,構建這個領域的知識系統,固然這個工做也能夠徹底不依賴數據,由領域專家來作。另外一方面就是用這些對話直接去訓練基於深度學習的模型,能夠是天然語言理解(NLU)模塊,也能夠是頭鐵的端到端的生成網絡。blog

WOZ方法就是初步構建一個比較粗糙的對話系統,迅速地投入應用,用人工智能(AI)和人類智能(HI)結合的方式,去完善這個對話系統並收集必定的數據。HI在這個系統中能夠作三件事,一是糾正AI的錯誤,二是幫助AI作決定,三是這個過程當中的全部行爲均可以做爲標註數據,提供給AI作進一步的訓練。

 

第一篇文章MDWOZ[1]的系統由三個主要模塊組成:

1. Database,一個包含了該領域信息的數據庫,好比某一區域餐廳的信息。Wizard能夠經過一個GUI來與數據庫進行交互。這篇論文使用的是基於Xform的DBinput和DBask(這套GUI已經年久失修,中止更新維護了)。DBinput是用來輸入新的數據或者修改原有數據,DBask則用來查詢數據。

2. Finite State Model,一個有限狀態圖,記錄了對話的全部可能狀態,用一個將圖可視化的工具將其轉換成GUI。Wizard要負責根據用戶輸入選擇相應的狀態跳轉。

3. Output Generation Model, 根據Wizard選出的狀態,返回寫定的回覆,Wizard能夠經過查詢數據庫來補充完善信息。

整個系統的流程如圖:

在進行屢次測試後,Wizard與人類的對話數據會被收集,同時數據庫也被完善,FSM也更多節點,更加完善。

這篇文章比較古老了,方法也都比較直觀,須要人工參與的地方也過於多。

 

第二種經常使用的方法是在AIML(Artificial Intelligence Mark-up Language) 的基礎上改進的。有關AIML的介紹能夠查看這篇文檔[2],這是由最先提出AIML的聊天機器人ALICE發展而來的。其實也就是模式匹配,以下圖所示:匹配到pattern,返回輸出,還有一個that能夠指示歷史對話。Wizard的工做就是查看整個流程是否合理、完善。

 

基於模塊化的對話系統和WOZ還有不少種結合的可能,例如用神經網絡去搭建NLU、DM模塊,Wizard能夠判斷模型的結果是否正確,從而產生更多的標註數據,進一步訓練模型。基於端到端的生成模型也能夠提供多個可能的回答給wizard作決定從而產生更多數據。

以上就是所有啦,感謝閱讀,歡迎指正,鞠躬。

Reference:

[1] Munteanu, Cosmin , and M. Boldea . "M.: MDWOZ: A Wizard of Oz environment for dialog systems development." Lrec 2000.
[2] Pandorabots Documentation
相關文章
相關標籤/搜索