EMNLP2018-語言理解+對話系統的最新進展
2018年10月31日至2018年11月04日,EMNLP 2018 在比利時首都布魯塞爾舉行,我有幸作為集團代表參加會議,收穫很多。會議包含了很多主題,結合我們團隊目前正在做的小蜜智慧對話開發平臺(產品名叫對話工廠,英文名Dialog Studio),在這裡重點對語言理解和對話系統等方面的前沿進展做一個介紹。在語言理解方面,一個很重要的進展是膠囊網路(capsule network)開始引入到NLP任務中[3],另外在遷移學習越來越被重視的大背景下,few-shot和zero-shot方面也有不錯的論文發表4,我們團隊在上半年也開始研究這方面的技術,並且將capsule network和few-shot learning融合提出了induction network,在few-shot的資料集上做到了state-of-the-art,並已經在對話工廠中落地使用。在對話方面,劍橋大學釋出了一個互動自然而且具備一定複雜度的資料集MultiWOZ[6],並被評為本次會議的最佳資源論文,在DST[7]、Policy[8]和End-to-End對話[9]方面也都有不錯的進展。
關鍵詞:膠囊網路 few-shot learning zero-shot learning DST Policy End-toEnd Dialogue System
1. 膠囊網路在文字分類中的應用
自Hinton的 Capsule 論文[1]《Dynamic Routing Between Capsules》釋出起,膠囊網路就已經成為深度學習界研究熱點之一,Hinton的第一篇論文僅僅簡單介紹了膠囊網路的概念框架和最基本的實現,後續不斷推出了capsule框架各部分的改進論文,例如Hinton自己的[2]《MATRIX CAPSULES WITH EM ROUTING》。
本次會中文章[3]《Investigating Capsule Networks with Dynamic Routing for Text Classification》對capsule進行改進並運用到了文字分類中。
1.1. 文章解讀
文章的貢獻有3點,1) 對capsule的實現有小的改進,2)提出了2種用capsule做分類問題的基本架構,3)在多個測試集上超過現有方法,並在單獨的多標籤分類部分遠超現有方法。
1.2. 文章點評
該文章將capsule用到文字分類中驗證了capsule在NLP中的能力,並且在Capsule-B網路結構上效仿了cnn多filter的概念,取得不錯的效果。文章不足的點是,(1)Capsule-B中雖然取得了不錯的效果,但是最後一層也用了pooling的方式進行銜接,與capsule的初衷有些相悖,結構上還有優化空間,(2)對capsule演算法實現進行了改進,但是沒有實驗表明這些改進究竟起了多大作用。最後比較遺憾的是沒有看到Hinton最新的的EM Routing演算法。
2. Few-Shot & Zero-Shot
Few-Shot也是今年大熱的一個方向,特別是在少樣本甚至無樣本情況下,對新類別的輸入進行理解,是極具誘惑力也極具挑戰的一個方向。
本次參會文章[4]《Zero-shot User Intent Detection via Capsule Neural Networks》是該領域的探索,而且又以大熱的capsule為網路的基本結構。
2.1. 文章解讀
文章的網路結構分為3部分,SemanticCaps做基礎的特徵抽取而且用BiLSTM取代了CNN DetectionCaps來處理已知標籤的資料,Zero-shot DetectionCaps來處理未知標籤的資料。
Zero-shot DetectionCaps是該文章的核心,主要目的是希望transfer已知標籤資料的知識到未知的標籤中,主要利用了attention機制在已知標籤中建立了從utterances到已知標籤名稱文字間的attention資訊,例如“Play”單詞到標籤“PlayMusic”,當未知標籤名稱和utterances輸入進來後,該attention仍能建立起和已知標籤一樣的關聯,例如“Play”單詞到標籤“AddtoPlaylist”。
文章的效果在2個現有資料集上均超過了現有方法,同時文章實驗分析部分還視覺化展示出了測試集中,未知標籤經過網路之後在低維空間中的聚類情況,表明這樣的方法是有效的。
會上的另一篇文章[5]《Few-Shot and Zero-Shot Multi-Label Learning for Structured Label Spaces》也是探索few-shot & zero-shot,區別在於這篇文章中的zero-shot的“抓手”是層次結構的知識庫。
2.2. 文章點評
文章嘗試將capsule用於zero-shot中,並且還得到了不錯的效果,主要利用attention以及capsule routing by agreement。文章不足的點是,(1)在解碼過程中,缺乏如何對已知標籤和未知標籤兩條路徑如何抉擇部分的描述,感覺可以將後兩個Caps網路部分合二為一,不區分已知和未知標籤,使用統一的voting來處理,(2)zero-shot的“抓手”選定為“標籤文字”本身,這個在實際應用中並不太合理。
3. 任務型對話的資料集
要訓練出一個理想的dialogue agent,資料質量是至關重要的。一個高質量的task-oriented對話資料集,具備以下特性:多輪、大規模、自然、具備一定複雜性。儘管對話已是機器學習的關鍵領域,然而可用的資料規模依然很少,阻礙了該研究領域的進一步突破。
本次參會文章[6]《MultiWOZ – A Large-Scale Multi-Domain Wizard-of-Oz Dataset for Task-Oriented Dialogue Modelling》提供了一個互動自然而且具備一定複雜度的資料集MultiWOZ,並且基於該資料集為3個對話子任務構建Benchmark:dialogue state tracking、dialogue-act-to-text generation 和 dialogue context-to-text generation。
3.1. 文章解讀
劍橋大學的這篇論文獲得了本次會議最佳資源論文,它推出了Multi-Domain Wizard-of-Oz 資料集(MultiWOZ),涵蓋多個領域和主題的human-human對話標註資料。其規模為10k對話的大小,比所有先前帶標註的面向任務的語料庫至少大了一個數量級。論文同時詳細描述了資料收集的過程以及資料結構和分析的摘要。資料收集渠道完全基於眾包,無需聘請專業標註人員。基於這個語料集,論文報告了一組信念跟蹤、對話行為和回覆生成的基準結果,顯示了資料的可用性,併為未來的研究設定了基線。
3.2. 文章點評
MultiWOZ相比於之前語料,對話的長度和句子的長度都明顯增加,dialogue acts也更豐富,而且還是多領域的,資料集規模也達到了10k級別,這為後續的演算法研究提供了強有力的資料支撐。文章不足的點是,(1)相比於Google Brain釋出的AirDialogue資料集,MultiWOZ沒有將分支邏輯(Task Logic)引入進來,和現實情況還存在不小的Gap,(2)該資料集還是先填槽,然後查DB這個邏輯,中間並沒有更復雜函式計算邏輯和外部介面呼叫,和真實落地場景也還是有區別。
4. 對話管理之Dialogue State Tracking
Dialogue State Tracking(DST)是近幾年對話系統研究的熱點,比較知名的方法主要有:NBT和GLAD。DST的效果好壞是非常關鍵的,它會影響到Policy的輸出效果。目前比較好的模型都是將使用者的utterance作為輸入,將NLU和DST聯合訓練,得到一個belief tracker模型。
本次參會文章[7]《Towards Universal Dialogue State Tracking》提出了一種通用的DST:StateNet,它在模型框架上更簡潔,效果也達到了state-of-the-art。
4.1. 文章解讀
之前的對話狀態追蹤主要存在以下不足:(1)要求ontology固定,當ontology中的槽位或者槽位值動態更改時無法工作,如NBT-CNN (Mrksic et al., 2017)、GLAD (Zhong et al., 2018)、MemN2N (Perez et al., 2017);(2)模型引數與槽位個數成正比(如GLAD, NBT-CNN);(3)有些模型抽取特徵時依賴手工制定的詞典等。為了解決上面這些問題,作者提出了StateNet。該模型將每個槽位及每個槽位值都編碼為一個向量,每執行一次就可以得到一個槽位對應的所有槽位值的概率分佈。實驗結果顯示,在DSTC2和WOZ 2.0測試集上,Joint goal acc超過以往所有的方法。
4.2. 文章點評
StateNet在模型結構上是比較簡潔的,核心還是在於LSTM和2-Norm Distance。相比於GLAD,相當於省略掉了local BiLSTM和local Self-Attention這樣的結構,只保留global的結構。相比於NBT,沒有采用CNN做特徵提取,也沒有顯式的進行belief update,直接通過LSTM進行當前輪資訊和歷史資訊的融合。文章不足的點是:(1)並沒有考慮到槽值不可數的情形,(2)提供的程式碼沒法執行。
5. 對話管理之Policy
對話策略學習一直是對話管理中非常重要的模組,以往的工作更偏向簡單的基於填槽的單任務的策略學習,對於複雜任務的對話策略學習研究的較少,研究成果也不夠突出。
本次參會文章[8]《Subgoal Discovery for Hierarchical Dialogue Policy Learning》提出了Subgoal Discovery Network (SDN),它將複雜的面向目標的對話拆解為一系列簡單的子目標,這個過程不需要人工參與。
5.1. 文章解讀
要開發一個完成複雜任務的對話系統還是有挑戰性的,部分原因是對話策略需要探索巨大的state-action空間。該論文提出了一種分而治之的方法,可以發現並利用任務的隱藏結構來實現有效的策略學習。首先,給定一組成功的對話會話,作者提出了一個子目標發現網路(SDN),以一種無人監督的方式將複雜的面向目標的任務劃分為一組更簡單的子目標。然後,使用這些子目標來學習分層策略,該策略包括:1)在子目標中進行選擇的top-level策略;2)選擇原始動作來完成子目標的low-level策略。他們通過一個旅行規劃任務來驗證該方法的可行性和效果。基於模擬使用者和真實使用者的實驗表明,利用自動發現子目標訓練的agent與有人類定義子目標的agent效果相當,並且明顯優於沒有子目標的agent。此外,作者還表示學習到的子目標是人類可理解的。
文章的核心演算法包括2部分:(1)SDN,作者認為通過識別狀態軌跡中的樞紐state來發現子目標等同於將狀態軌跡分割成options。受序列分割模型的啟發,他們將子目標發現定義為狀態軌跡分割問題,並使用SDN解決它;(2)HRL,在分層策略學習中,外部獎勵和內在獎勵的組合有望幫助agent儘量避免不必要的子任務切換,能儘快成功完成複雜任務。具體演算法過程如下:
5.2. 文章點評
該文章基於層次化的方法來解決複雜任務的對話策略學習的問題,還是比較有借鑑意義的,從實驗效果和對話樣例來看,效果確實不錯。文章不足的點是,(1)結構比較複雜,難以復現;(2)學習SDN和HRL是2個分開的過程,如果能結合到一起更好。
6. 對話系統之端到端學習
端到端對話系統學習在chit-chat領域相對比較成熟,但在任務型對話上這種學習策略還不夠成熟。谷歌、微軟在這方面的研究工作相對比較多,其他研究機構和企業近兩年也有一些不錯的嘗試。
本次參會文章[9]《Learning End-to-End Goal-Oriented Dialog with Multiple Answers》是密歇根大學和IBM研究院共同發表的,他們的目標,不是模仿資料集的所有可能的對話軌跡,而是使用該知識並學習如何更好、更快地完成對話任務。
6.1. 文章解讀
在一個對話當中,任何時候都可以有多個有效的下一個話語,比如下面的例子中:
agent說“a) Which price range are looking for ? b) Any preference on a type of cuisine ? c) Where should it be ? ”這三句中的任何一句都是正確的,但目前用於對話的端到端神經網路方法不考慮這一點。在之前的端到端方法中,只有一個回答是正確的,其他的都是錯誤的。換句話說,在對話中,截止到當前的所有對話資訊都可以編碼到一個狀態向量S中,根據其生成的下一句話只能是一種,其他的可能都被判為錯誤。作者提出用掩碼向量(mask)來解決這個問題,S還是記錄了截止到當前的所有對話資訊,但是引入一個掩碼向量m,S和m相乘後的結果向量作為生成下一句話的依據。這樣就保證了生成下一句話的多樣性。
作者修改了合成的original-bAbI對話任務,以建立一個更加真實有效的實驗田——permuted-bAbI對話任務(已公開發布)。實驗表明現有端到端神經網路方法的效能顯著下降,對話精度從original-bAbI對話任務的81.5%到permuted-bAbI對話任務的30.3%。實驗還表明,他們提出的方法提高了效能,並且在permuted-bAbI對話任務中實現了每個對話的精度達到47.3%。
6.2. 文章點評
本文提出的Mask-memN2N,是在memN2N中加了masking的邏輯,它對Dialog State進行掩碼操作,這個想法比較創新。在SL階段,對話系統從資料集中學習不同的對話回覆和行為,它有能力學習多種可能的下一個話語而不會相互矛盾。在RL階段,對話系統就可以在多個可能行為中找到最適合執行任務的獨特行為,從而更高效的完成對話目標。文章提出的方法目前在permuted-bAbI的精度還很低,演算法改進空間很大。
參考文獻
[1] Sara Sabour, Nicholas Frosst, Geoffrey E Hinton. Dynamic Routing Between Capsules. NIPS 2017.
[2] Geoffrey Hinton, Sara Sabour, Nicholas Frosst. MATRIX CAPSULES WITH EM ROUTING. ICLR 2018.
[3] Wei Zhao, Jianbo Ye, Min Yang, Zeyang Lei, Suofei Zhang, Zhou Zhao. Investigating Capsule Networks with Dynamic Routing for Text Classification. EMNLP 2018.
[4] Congying Xia, Chenwei Zhang, Xiaohui Yan, Yi Chang, Philip S. Yu. Zero-shot User Intent Detection via Capsule Neural Networks. EMNLP 2018.
[5] Chung-Wei Lee, Wei Fang, Chih-Kuan Yeh, Yu-Chiang Frank Wang. Few-Shot and Zero-Shot Multi-Label Learning for Structured Label Spaces. EMNLP 2018.
[6] Paweł Budzianowski, Tsung-Hsien Wen, Bo-Hsiang Tseng, Iñigo Casanueva, Stefan Ultes, Osman Ramadan, Milica Gašić. MultiWOZ – A Large-Scale Multi-Domain Wizard-of-Oz Dataset for Task-Oriented Dialogue Modelling. EMNLP 2018.
[7] Liliang Ren, Kaige Xie, Lu Chen, Kai Yu. Towards Universal Dialogue State Tracking. EMNLP 2018.
[8] Da Tang, Xiujun Li, Jianfeng Gao, Chong Wang, Lihong Li, Tony Jebara. Subgoal Discovery for Hierarchical Dialogue Policy Learning. EMNLP 2018.
[9] Janarthanan Rajendran, Jatin Ganhotra, Satinder Singh, Lazaros Polymenakos. Learning End-to-End Goal-Oriented Dialog with Multiple Answer. EMNLP 2018.
相關文章
- SQL on Hadoop系統的最新進展(1)SQLHadoop
- 「推薦系統」 領域的最新進展你知道麼?
- 對話系統任務綜述與基於POMDP的對話系統
- 對話系統的前世今生
- JavaEE 7的最新進展Java
- 深度探究MMO社交對話系統(一):聊天系統的進化與價值
- win10系統下通過區域語言對語音功能進行設定的方法Win10
- win10系統下透過區域語言對語音功能進行設定的方法Win10
- 我對函數語言程式設計的理解函數程式設計
- 對話系統綜述
- 讀懂智慧對話系統(1)任務導向型對話系統
- Ian GoodFellow最新演講:對抗機器學習的進展與挑戰Go機器學習
- 機器學習對於語言類比的理解與識別機器學習
- 對 Linux 系統休眠的理解Linux
- 我對作業系統的理解作業系統
- 任務型對話系統
- 切換Windows的系統語言Windows
- Solaris 更改系統語言
- 對話專家:Go是DevOps時代最好的程式語言Godev
- 如何提高對系統架構的理解架構
- 我對計算機系統的理解計算機
- 獲取系統語言/當前 App支援語言APP
- 最新網路流行語言
- 深入探討 Room 2.4.0 的最新進展OOM
- C++17 的最新進展報告C++
- win10系統英文語言修改為中文語言的方法Win10
- Ubuntu系統設定中文語言的方法教程,Ubuntu系統怎麼設定中文語言?Ubuntu
- 國產系統級程式語言與編譯器,輕鬆與 C 語言進行互動編譯
- 系統對不同語言的程式有不同記憶體管理機制?記憶體
- JPHP最新進展v0.6PHP
- ModStart系統多語言支援
- C語言 16 系統庫C語言
- 【十問十答】對話Go語言開發團隊Go
- 0、Lua語言理解
- 將系統語言設定成英語
- 語言對比的地方
- Android 架構元件的最新進展 (上篇)Android架構元件
- 程式語言:型別系統的本質型別