揭祕任務型對話機器人(轉)

1. 什麼是任務型機器人

任務型機器人指特定條件下提供信息或服務的機器人。一般狀況下是爲了知足帶有明確目的的用戶,例如查流量,查話費,訂餐,訂票,諮詢等任務型場景。因爲用戶的需求較爲複雜,一般狀況下需分多輪互動,用戶也可能在對話過程當中不斷修改與完善本身的需求,任務型機器人須要經過詢問、澄清和確認來幫助用戶明確目的。html

2. 任務型機器人的組成

任務型機器人核心模塊主要包括三部分:算法

  1. 天然語言理解模塊 —— Language Understanding
  2. 對話管理模塊 —— Dialog Management
  3. 天然語言生成模塊 —— Natural Language Generation

總體框架以下:數據庫

img

下面根據各個模塊進行詳細介紹:網絡

2.1 天然語言理解模塊

2.1.1 簡介框架

當用戶語言通過天然語言理解模塊時,即須要通過領域識別,用戶意圖識別以及槽位提取三個子模塊。領域識別,即識別該語句是否是屬於這個任務場景,通常有多個機器人集成時,如閒聊機器人,問答機器人等,領域識別應當在進入任務型機器人以前作判斷與分發;意圖識別,即識別用戶意圖,細分該任務型場景下的子場景;實體識別與槽位填充,用於對話管理模塊的輸入。學習

2.1.2 舉例測試

對這個模塊舉個簡單的例子:假設Text=「人民幣對美圓的匯率是多少」;通過天然語言理解模塊會解析爲 act ( slot1 = value1, slot2 = value2 ......) 的形式,即意圖,槽位,槽位信息三元組形式,即 Text會解析爲「查詢(槽位1=人民幣,槽位2=美圓)"這樣的形式。編碼

2.1.3 天然語言理解模塊的相關研究工做lua

意圖理解與槽位提取做爲任務型機器人的核心模塊之一,引發研究者的普遍興趣。有如下方法:翻譯

1. 基於規則理解方法

例如商業對話系統VoiceXML和Phoenix Parser (Ward et al., 1994; Seneff et al., 1992; Dowding et al., 1993)。Phoenix Parser 將輸入的一句文本(詞序列)映射到由多個語義槽(Slot)組成的語義框架裏,一個語義槽的匹配規則由多個槽值類型與鏈接詞構成的,能夠表示一段完整的信息,如圖2所示。優勢:不須要大量訓練數據。缺點:1. 規則開發易出錯 。2. 調整規則須要多輪的迭代。 3. 規則衝突,較難維護。

img

Phoenix基於TownInfo語料的測試結果見表1:

img

2. 規則與統計結合的方法

例如組合範疇語法 (CCG),能夠基於標註數據,對大量的複雜語言現象進行統計建模和規則自動提取。 因爲語法規則的寬鬆性以及與統計信息的結合,該方法在口語語義理解中 的應用能夠學習解析無規則的文本 (Zettlemoyer et al., 2007)。基於ATIS語料的測試結果見表2:

img

3. 統計方法(對齊)

基於詞對齊數據的口語理解一般被看作一個序列標註問題。基於生成模型有隨機有限狀態機 (FST),統計機器翻譯(SMT)、動態貝葉斯網絡 (DBN)等,判別模型主要CRF,SVM,MEMM等*(Hahn et al., 2011)。*基於Media evaluation預料測試結果見表3。

img

4. 統計方法(非對齊)

如生成式的動態貝葉斯網絡 (DBN) *(Schwartz et al., 1996)* ,缺點:馬爾科夫假設使得該模型不能準確地對詞的長程相關性進行建模;分層隱狀態的方法能解決上述長程相關性的問題,但所須要的計算複雜度很高 *(He et al., 2006);支持向量機分類器的基礎上提出了語義元組分類器 *(Mairesse et al., 2009) 的方法。基於TownInfo,ATIS語料測試結果見表4。

img

5. 深度學習方法

單向RNN應用於語義槽填充任務,在ATIS評測集合上取得了顯著性超越CRF模型的效果 (Yao et al., 2013; Mesnil et al., 2013); LSTM等一些擴展(BiLSTM+CRF);CNN用於序列標註 (Xu et al. 2013; Vu 2016) ;基於序列到序列(sequence-to-sequence)的編碼-解碼(encoder-decoder)模型,attention等拓展 (Zhu et al., 2016; Liu et al., 2016); 加入外部記憶單元(External Memory)的循環神經網絡能夠提高網絡的記憶能力 (Peng et al., 2015);RecNN (Guo et al., 2014)等。上述方法測試結果見表5。

img

6. 基於上述方法的例子

基於規則的解析:如將"我想查詢一下美圓如今的匯率"輸入基於規則的解析器,能夠解析出以下意圖與槽位的信息。

img

基於LSTM的模型:句子的標註格式以下,採用BIO標註,以及對整個句子所屬的意圖標註,採用極大化槽位與意圖的似然來求解模型參數。

img

img

基於統計方法的模型(SVM):對句子進行n-gram特徵提取,經過訓練領域的SVM與槽位的SVM進行分類。

img

2.2 對話管理模塊

2.2.1 簡介

天然語言理解模塊的三元組輸出將做爲對話管理系統的輸入。對話管理系統包括兩部分,狀態追蹤以及對話策略。狀態追蹤模塊包括持續對話的各類信息,根據舊狀態,用戶狀態(即上述的三元組)與系統狀態(即經過與數據庫的查詢狀況)來更新當前的對話狀態如圖3所示。 對話策略與所在任務場景息息相關,一般做爲對話管理模塊的輸出,如對該場景下缺失槽位的反問策略等。

img

2.2.2 舉例

仍是繼續上面的text=「人民幣對美圓的匯率是多少」。「查詢(槽位1=人民幣,槽位2=美圓)"這樣的形式將做爲對話管理模塊的輸入,這時候狀態追蹤模塊就要根據前幾輪的信息,結合該輸入判斷該輪的查詢狀態,肯定查詢的槽位,以及與數據庫的交互。如獲得想要查詢的確實是人民幣對美圓的匯率信息。這時候,根據現有的對話策略判斷當前的槽位狀態,最後給出對話管理模塊的輸出,如查詢結果(源貨幣=人民幣,目標貨幣=美圓,匯率=1:0.16)

2.2.3 對話管理系統的相關研究工做

對話管理模塊至關於任務型機器人的大腦。主要方法有基於規則與統計學習的方法。目前流行的有基於強化學習的對話管理模塊。基於強化學習的對話管理系統須要不少數據去訓練。Jost Schatzm-ann and Steve Young等人提出了agenda user simulator模型來模擬用戶,不斷與對話管理模塊進行訓練,必定程度上解決了標註數據稀缺的問題。但對於複雜對話仍是不能很好應付。Jianfeng Gao等經過實驗,證實了基於強化學習訓練的對話管理系統對噪聲的抗干擾能力較強,同時總體偏差來看槽位偏差形成的影響比意圖偏差形成的影響更嚴重。

2.3 天然語言生成模塊

天然語言模塊一般採用基於模版,基於語法或模型等。模版與語法主要基於規則的策略,模型能夠用如LSTM等網絡生成天然語言。

2.4 端到端的模型

這裏以微軟的End-to-End 模型 (Jianfeng Gao et al., 2018)爲例,見下圖。

img

文章的主要亮點是根據 (Jost Schatzmann and Steve Young, Fellow et al., 2009) 從語義層次上升到天然語言層次,同時用偏差模型對基於DQN強化學習的對話管理系統深刻探究。User Simulator 沿用Steve Young以前的基於堆棧的agenda模型,天然語言生成模塊和天然語言理解模塊採用LSTM模型,對話管理模塊採用基於DQN (Jianfeng Gao et al., 2018)

img

3. 應用:阿里小蜜調研

阿里小蜜機器人總體算法體系以下,採用領域識別將輸入的query和context分發到不一樣的機器人執行任務。

img

其中任務型機器人的算法框架以下,基本上採用第一部分所講的框架。

img

4. 總結

本文較爲淺顯的介紹了基於任務型對話的框架與一些方法,你們若是須要深刻研究可在參考文獻中尋找相應的文章閱讀。固然,目前這個領域還存在較多的問題,如:

  1. 語義的表示方式。如何將句子設計成合適的語義結構形式,增添語義解析,語義推理,領域遷移的魯棒性等,一直是十分有挑戰性的問題。

  2. 任務型的數據收集和標註很是困難,如何設計一套較爲通用的數據標註格式,有待研究推動,隨着用戶對任務型領域要求的日益增多,利用已有的資源對領域遷移的研究變得尤爲重要。

 

 

轉自:https://www.cnblogs.com/qcloud1001/p/9181900.html

相關文章
相關標籤/搜索