0、說明
對話系統(tǒng)大致可分為5個基本模塊:語音識別(ASR)、自然語音理解(NLU)、對話管理(DM)、自然語言生成(NLG)、語音合成(TTS)。
對話管理(Dialog Management,DM)就是人機對話中的CPU,控制著整個人機對話的過程。
對話管理的任務主要有下4點:
- 對話狀態(tài)維護(dialog state tracing,DST)
- 生成系統(tǒng)決策(dialog policy)
- 作為接口與后端/任務模型進行交互
- 提供語義表達的期望值(expections for interpretation)
1、任務驅(qū)動型對話系統(tǒng)的組成
任務驅(qū)動型人機對話系統(tǒng)會根據(jù)當前狀態(tài)(state)和相應動作(action)決定下一步的狀態(tài)和反饋,即求狀態(tài)轉(zhuǎn)移概率P(r,s’|s,a),這其實是馬爾科夫決策過程的思想。任務型人機對話系統(tǒng)包括以下幾個部分:
- 獲取用戶query。
- 自然語言理解模塊(Natural Language Understanding):主要是槽位識別和意圖識別,并且這時候識別的意圖有可能是有多個的,對應的槽位也會不 同,都會有個置信度 。
- 對話管理模塊:包括Dialog State Tracking(DST)和Dialog Policy。DST就是根據(jù)前面的信息得到它的state,state其實就是slot的信息:得到了多少slot,還差什么slot,以及它們的得分等等。Dialog Policy就是根據(jù)state做出一個決策,叫action,如還需要什么slot,是否要確認等等。
- 自然語言生成模塊(Natural Language Generation)
Dialog Policy就是根據(jù)state做一個決策,只要有了state,就比較容易了,所以 DST 就比較關鍵。目前 DST 主要有這么幾種方法 :生成式模型(Generative Model)、判別式模型(Discrimitive Model)、規(guī)則系統(tǒng)。
2、閑聊型對話系統(tǒng)
閑聊型對話系統(tǒng)的設計方法主要有:規(guī)則方法、生成模型和檢索方法。
- 規(guī)則方法:規(guī)則系統(tǒng)關鍵是如何寫一堆規(guī)則和線上的快速匹配。目前沒有哪個系統(tǒng)是純規(guī)則的了,規(guī)則方法頂多只是在 一些其他方法處理不好的情況下的一個補充。
- 生成模型:舉例:可以首先使用一個RNN模型把輸入句子“ABC”表示成一個向量,然后把這個向量作為另一個RNN模型的輸入,最后使用語言模型生成目標句子“WXYZ”。 這種方法的優(yōu)點是省去了中間的模塊,缺點是生成的大多是泛泛的無意義的回復、前后回復不一致,或者有句子不通順的問題(一句話不通順其實都很難解決)。好多人也在融合上下文、 Topic、互信息等來解決多樣性問題,但遺憾的是,只使用這種方法效果并不盡人意(而且非常依賴于大量高質(zhì)量的訓練語料),它可以結合其他模型和策略來處理。
- 檢索方法。