論文地址:https://arxiv.org/pdf/1711.01731.pdf
論文翻譯
論文大綱數據庫
任務爲導向的對話系統是幫助用戶去完成特定任務,好比找商品,訂住宿,訂餐廳等。實現任務爲導向的對話系統,主要有兩類方式:網絡
1) Pipeline method
經過4個步驟去完成對話任務app
2)End-to-End method。
端到端地完成對話任務dom
非任務導向的對話系統是與用戶進行互動並提供回答,簡單的說,就是在開放領域的閒聊。實現非任務導向對話系統也主要可分爲兩類:ide
1) generative method
生成式對話函數
2)retrived-based method
答案選擇式對話學習
文章就以上兩類對話系統,以及各自的實現方法進行詳細綜述與講解。測試
Pipeline method的步驟能夠分爲4個,分別是天然語言理解–>對話狀態跟蹤–>策略學習–>天然語言生成優化
下面對着四個步驟分別進行介紹:ui
目標:將用戶的輸入語句轉化爲預先設定好的語義槽(semantic slot)
先來個例子:
在任務型對話系統中用戶想要查酒店信息,因而說出一個句子:「show restaurant at New York tomorrow.」
理解這個句子須要兩個步驟:
(1)意圖識別:首先要判斷用戶是須要訂酒店,而不是訂機票,買東西,查快遞,那麼這屬於一個分類問題,即識別用戶意圖類別
(2)語義槽填充:查酒店類別會有與之相對應的預先設定好語義槽(semantic slot),如New York是location的slot value.填充槽值的過程即在句中作詞信息的抽取。
以上兩步也可分別稱做意圖識別(intent detection)與槽填充(slot filling):
意圖識別: 是分類問題,將用戶發出的語句分類到預先設定好的意圖類別中。簡而言之,其實就是短文本的分類,最近通常都使用深度學習來作分類。
深度學習在乎圖識別中的應用:
使用了deep belief networ(DBNs),取得優於CRF baseline的效果:
「Use of kernel deep convex networks and end-to-end learning for spoken language understanding.(2012)」
「Deep belief network based semantic taggers for spoken language understanding.(2013)」
[17]和[15]使用了deep belief networ(DBNs),
使用了RNN
「Investigation of recurrent-neural-network architectures and learning methods for spoken language understanding.(2013)」
「Recurrent neural networks for language understanding.(2013)」
*「Spoken language understanding using long short-term memory neural networks.(2014)」
根據對話歷史管理每一輪對話的輸入,而且預測當前對話的狀態。對話狀態Ht表示到時間t爲止對話的表徵(也叫作slot或semantic frame)。對話狀態的跟蹤主要有3個方面:the user’s goal, the user’s action, the dialogue history.
傳統的方式:是使用手工作的規則來選擇最可能的結果。可是錯誤率高。
基於統計的方式:會對每輪對話都計算對每一個state的機率分佈。
「The hidden information state model: A practical framework for pomdp- based spoken dialogue management(2010)」
對每輪對話的每一個slot都計算機率分佈
「A belief tracking challenge task for spoken dialog systems.(2012)」
*「The dialog state tracking challenge.(2013)」
基於規則的方式:
*「A simple and generic belief tracking mechanism for the dialog state tracking chal- lenge: On the believability of observed information(2013)」
用CRF
「Recipe for building robust spoken dialog state trackers: Dialog state tracking challenge system description(2013)」
「Structured discriminative model for dialog state tracking(2013)」
「Dialog state tracking using conditional random fields(2013)」
用最大熵模型
「Multi-domain learning and generalization in dialog state tracking.(2013)」
用基於網絡的排序
「Web-style ranking and slu combina- tion for dialog state tracking(2014)」
基於深度學習:深度學習在信念跟蹤上的應用(能夠跨領域應用)。
「Deep neu- ral network approach for the dialog state tracking challenge(2013)」
多領域RNN對話跟蹤
「Multi-domain dialog state tracking using recurrent neural networks(2015)」
利用神經信念跟蹤NBT檢測每一個slot pair
「Neural belief tracker: Data-driven dialogue state tracking.(2017)」
根據當前對話狀態作出下一步的反應。舉個例子,在線上購物的場景中,若上一步識別出來的對話狀態是「Recommendation",那麼這一步驟就會給出對應推薦的action,即從數據庫中獲取商品。
監督學習:
首先一個rule-based agent用來作熱啓動,而後監督學習會在根據rule生成的action上進行:
「Building task-oriented dialogue systems for on- line shopping」
強化學習:
「Strategic dialogue management via deep reinforcement learning.(2015)」
將Policy learning給出的反應轉換成相應的天然語言形式的回答提供給用戶。一個好的回答生成器應具有4個特色:adequacy, fluent,readability and variation[78].
傳統的方法[90;79]:使用sentence planning,將輸入的語義特徵轉換成中間形式(好比樹狀或模版形式),而後再經過surface realization將中間形式轉換成最終的回答。
深度學習的方法:[94;95]介紹了NN於LSTM結合的結構,相似於RNNLM;[94]使用前向RNN生成器,以及CNN和backwards RNN的reranker,全部子模型進行聯合優化;[95;83]新增一個control celll來gate the dialogue act;[96]將前者在multiple-domain上改進於應用;[123]使用encode-decode LSTM-based,並結合了attention machanism;[20]使用sequence-to-sequence 方法。
特色:使用單個模型;可於外部的結構數據庫進行交互
使用基於網絡的端到端的可訓練的對話系統。將對話系統的問題轉換爲學習一個映射(從歷史對話–>回答)。可是,其須要大量訓練數據而且缺乏魯棒性。
"A network-based end-to-end trainable task-oriented dialogue system(2017)」
「end-to-end goal-oriented dialog(2017)」
使用end-to-end 強化學習方法,聯合訓練對話跟蹤於策略學習,可是也存在缺陷:不可微+沒法獲取語義不肯定性。
「Towards end-to-end learn- ing for dialog state tracking and management us- ing deep reinforcement learning.(2016)」
基於memory network,使用RNN+可微分attention
「Key-value retrieval networks for task-oriented dialogue(2017)」
非任務型對話主流有兩類:生成式對話和抽取式對話。
Neural generative models主要是依賴於sequence to sequence的模型。但光創建一個序列模型還遠遠不夠,一個好的對話系統還須要考慮:
(1)歷史對話對當前對話的影響
(2)回答的多樣性
(3)針對不一樣領域與用戶個性提供不一樣的回答
(4)基於外部的知識庫去作回答
(5)內部學習與評估(兩個對話機器人互相對話做爲訓練)
將歷史對話的內容轉換成詞或短語向量的表徵做爲序列模型的特徵
創建一個層級結構的attention機制去找出重要的歷史語句
根據相關性去找出與問句最相關的context做爲特徵
調整目標函數:使用maximum mutual information做爲最優化目標
使用IDF去評估回答的多樣性
調整beam search,使得輸出多樣回答
加入re-ranking步驟
增長輸入信息的多樣性
加入latent variable
先用主題模型LDA去生成主題,將主題信息做爲特徵輸入對話模型
將用戶對話作領域的分類
加入emotional embedding到生成模型中
加入profile的信息
強化學習
使用memory network使對話系統與知識庫作交互
將知識庫中的詞語模型生成的詞作結合
如何評價產生對話的好壞呢?
Retrieval-based method是從候選答案中選出一個答案做爲回答。主要有兩個應用領域:
(1)單輪對話
(2)多輪對話
將以上生成式對話和抽取式對話結合起來,先從經過抽取模型抽取出答案,再將答案放到RNN中去生成回答。