【學術】針對多輪對話理解和信息轉移的端對端記憶網路
編者按:多輪對話處理能力是把Bot做好的核心技術點,也是當前階面臨的難點之一。本公眾號通過翻譯一系列學術界關於多輪最新的研究進展,希望為領域工業界的從業者們提供一些思考和借鑒。
在這篇論文中,它通過提出一個新的結構嘗試解決該技術當前面臨的問題,在微軟小娜身上的對話數據實驗體現了所提議的記憶模型能夠有效地提取跳躍的語義,從而在多輪對話中建模信息轉移,並擊敗了當前頂尖的、專門為單輪對話設計的遞歸神經網路(RNN)。
作者:Yun-Nung Cheny, Dilek Hakkani-T¨ur, Gokhan Tur, Jianfeng Gao, and Li Deng
1 引言
過去的幾十年中,各種各樣的設備中都在使用目標導向的對話系統,它使得使用者可以和系統對話來更高效的完成任務。例如,虛擬的人工助手微軟小娜和蘋果的Siri. 理解系統的關鍵組成部分是口語理解單元(SLU)——它將用戶語言合成能夠捕捉主要含義的語言學結構。其中,SLU的三個主要任務就是領域分類、意圖推測和槽位填充。SLU的一個典型流程是,首先根據輸入表達方式決定其領域,然後根據其領域來預測意圖,最後根據該特定領域的語義模板來填充關聯性槽位。
圖1的上層顯示了一個與交流有關的用戶表達,「給鮑勃發一封郵件說周末去釣魚的事情」,他的語義學結構是,發郵件(聯繫人=「鮑勃」,主題=「周末去釣魚」)。傳統上來說,領域推測和意圖預測被設定為分類問題,會使用好幾個分類器諸如支持向量機和最大熵模型,而槽位填充則被設定為一個序列標註任務,其中IOB(in-out begin)格式被用於表示槽位標籤,正如圖1所示,隱馬爾可夫模型和隨機場已經被應用於做標記。
圖1:示例表達(u),附帶其領域(d)和意圖(I)以及語義槽在IOB格式(S)中的注釋。上層表現了一個單輪對話的例子,下層是類似的表達在多輪對話中的情況。
隨著深度學習的發展,擁有深度神經網路的深度信念網路(DBNs)被應用於領域和意圖分類中。最近,Ravuri et al 提出了一個用於意圖推測的RNN結構。對於槽位填充來說,深度學習已經被視為特徵生成器,神經網路可以與條件隨機場相合併。Yao et al. and Mesnil et al.隨後應用了遞歸神經網路來進行序列標註以填充槽。最近,Hakkani-T¨ur 提出了基於RNNs的聯合語義解析同時預測意圖並填充槽。然而,上述工作都聚焦在單輪對話的SLU上,每一個表達都是被獨立處理的。研究表明,上下文信息對於SLU模型是有用的,例如,圖1的下層所顯示的兩個表達方式,其中後一種包含了郵件中的信息,因此即使是因為同樣的原因發郵件,如果保留上下文的信息的話,就更容易填充語義槽。Bhargava et al. 將隱含馬爾科夫模型的支持向量機應用於序列標註,在處理每個表達的時候,會將上一輪會話的信息合併到SLU任務中,並獲得了進展。
同時,為了提高領域分類、意圖推測和槽填補的準確性,上下文信息被合併到遞歸神經網路中, 然而,大部分之前的工作都只利用了上一輪對話的信息,忽略了長期的上下文背景。另一個限制是在網路的每一層模型都需要監督,且沒有一個統一的結構可以在端到端的框架中實現多輪的SLU。
最近,使用顯式存儲的計算模型和注意力機制開始回潮,利用一個這樣的存儲機制,就可以進行多重計算步驟,並且可以在連續的對話中為長期依存關係建模。基本上來說,該存儲通過神經網路建模,具有連續性表徵,存儲表徵可讀並可以作為信息編碼記錄下來。受這一想法激發,本論文提出一種遞歸神經網路,可以在標註當前對話前從廣博的外部存儲器中循環讀取信息。這種模型訓練不需要在每層網路中配對數據,也就是說,這一模型可以直接用輸入-輸出組端對端訓練。據我們所知,這是第一次嘗試將一個端對端的神經網路模型應用到多輪對話的SLU長期信息轉移建模中。
2 端對端記憶網路
對於SLU任務來說,我們的模型輸入一組儲存在記憶中的離散的歷史表達,以及當前對話c = w1; :::;wT ,然後輸出所對應的語義學標籤y = y1; :::; yT ,這個標籤由意圖和槽位信息構成。圖2展示了所提議的這一模型,細節如下:
圖2:我們所提出的應用於多輪對話的端對端記憶網路模型
2.1 結構
該模型將所有表達方式嵌入一個連續空間,並將所有X的嵌入儲存入記憶。然後,當前表達方式的表徵與記憶中的表徵進行比較,並通過一個注意力機制進行信息編碼。接著,編碼的信息和次序相結合用來推測語義標籤。
以下描述四個主要步驟:
記憶表徵:為了存儲上一輪對話的信息,我們通過遞歸網路將前面每輪的表達xi轉化為一個d維的記憶向量mi,以此將這些表達嵌入連續空間。當前表達c也以同樣的方式嵌入到擁有同樣維度的向量u中。
遞歸神經網路mem和遞歸神經網路in被緊密聯繫在一起,解碼上下文信息和當前表達方式。因此,得以更好的呈現連續的信息。
信息注意力分布:在嵌入空間中,我們先做內積,然後做Softmax,以此計算當前表達方式u和每個記憶向量mi的匹配度,
這裡softmax(zi) = ezi=Pj ezj 可以視為為了理解當前表達方式的信息結轉建模的注意力分布。
信息編碼表征:為了給歷史信息編碼,歷史向量h是一個按注意力分布加權的歷史嵌入總和。
因為從輸入到輸出的函數是可導的,我們能夠輕易地計算出其梯度並逆向傳播。然後加權後的記憶向量h與當前的輸入嵌入u相加並通過一個系列矩陣Wkg生成信息編碼向量o.
這裡,Wkg是一個對所攜帶的信息進行編碼的全連接網路。序列標註:與大部分分類任務的關注點不同,我們的記憶結構則提供更多的信息來改善標註的效果。因此,要推測一個輸入序列的對應標籤序列,我們是用RNN模型來訓練一個槽填充模型,該模型以編碼信息o為輸入來模擬信息的傳遞。
圖表3:序列標註的RNN模型結構。紅色虛線代表多層互動中的歷史編碼信息。
2.2 遞歸神經網路(RNN)標註器
SLU模型的目標是給當前表達中的每一個詞語分配它的語義標籤。也就是說,假如 c = w1; :::;wn ,模型要預測出 y = y1; :::; yn ,這裡每個標籤yi對應每個單詞Wi. 我們使用的Elam RNN結構,由一個輸入層每一個隱藏層和一個輸出層構成。
輸入層隱藏層和輸出層由在每個時間步驟t上分別代表輸入、隱藏和輸出的神經元組成,圖3中的黑線部分代表了基本的RNN模型結構。
這裡 是一個類似tanh的有界可導函數, 是隱藏層狀態ht下的語義標籤的分布幾率,那麼序列的幾率可以這樣表示:
該模型可以用反向傳播最大化訓練集標籤的條件似然率進行訓練。為了克服在長期依存的建模中頻繁發生的梯度消失問題,較為複雜的激活函數被設計出來,包括在簡單的非線性激活函數之後用閥單元來進行仿射變換。例如長期短期記憶(LSTM))和封閉重複單元(GRU).使用這兩者的RNN都被證明在需要捕捉長期依存關係的任務中表現優異。本論文中我們是用RNN和GRUSs來促使每個封閉單元能夠恰到好處的捕捉不同時間標度下的依存關係。
2.2.1 封閉重複單元 (GRU)
一個GRU有兩個閘閥門一個重置門r,一個更新門z,重置門決定了新的輸入和之前的記憶之間的結合,更新門決定這個單元可以更新激活的數量或內容。
這裡 是一個Sigmoid函數。
GRU在時間點t處最終的激活,ht,是一個在之前的激活ht-1和備選激活ht之間的線性插值。
圖4:GRU單元的展示
這裡是一個元素間的乘法。當重置門閉的時候,它會有效的讓單元如同在閱讀輸入序列的第一個符號,而忘記之前的輸入狀況。圖表4表現了一個GRU單元的閘門機制。由於RNN-GRU 所需的參數和泛化所需的數據都比表現上差不多的RNN-LSTM少,因此,本論文在所有的試驗中RNN模型均使用GRU
2.2.2 信息轉移
為了給之前輪的編碼信息建模,在每個時間點t上,圖5中的信息編碼向量o都與單詞wt一起輸入RNN模型,因此RNN中的隱藏層以用以下公式表示
如圖表3所示,紅虛線表示信息傳遞,用(14)來代替(7)。RNN-GRU可以以類似的方式結合編碼的信息,例如Mo可以用類似方式加入(10),(11)和(12)。
2.3 模型訓練
整個帶信息積累的RNN-GRU網路的訓練,都可以利用來自RNN標註器的反向傳播,來同時更新兩個閥門中的M, W和U,RNNmen和RNNin中的參數以及Wkg.
3 實驗
3.1 數據組
我們從微軟小娜處的實驗交流分類中提取了多輪交互(5輪以上),從而獲得了數據。有2個語義標籤(意圖和插槽相聯結)。用以訓練的多輪表達的數量是1005,用來測試的數量是1001,用來驗證的是207。有13779個單輪表達,用來訓練SLU模型的對照基準。
3.2 設置實施
在訓練中,我們使用了分組隨機梯度下降來訓練模型,每組數量為50,並使用了Adam優化程器極其默認參數(固定學習率0。01, -0:9, =0:999, =)。每批的迭代次數為50。詞向量和記憶向量的維度設置為150,RNN的隱藏層大小設置為100,記憶大小為20,以此來累計前20輪的信息。為防止過度擬合,dropout概率設置為0.5.
表格1 從第一輪、其他輪以及整體來看多輪SLU的表現
表格2 :從意圖和槽位結果來看多輪SLU的表現
3.3 結果
通過比較下列圖表1和圖表2 中以下模型結構的表現,我們來評估我們所提出的針對多輪SLU的模型:
RNN標註器將每個測試的表達獨立處理,通過RNN-GRU來進行序列標註,訓練集來自於單輪交互(a列)或者多輪交互(b列)。
編碼標註器在預測前使用RNN-GRUs 編碼信息,不僅考慮到當前輸入辭彙,同時考慮來自另一個RNN-GRUs的編碼信息,在該編碼RNN-GRUs中,我們只使用當前表達(c列)或者整個歷史連同當前表達(d列)來編碼信息。需要注意的是,在這個模型中沒有注意力和記憶機制。整個歷史記憶都串聯在一起來進行信息建模。
在有注意力和記憶機制的前提下,記憶網路在端對端模式中將當前表達和歷史記憶一起考量,然後如第二部分e列所示,使用RNN-GRUs來進行序列標註。
評估度量是語義標籤的準確性,召回率,F measure,如果辭彙的開頭、當中和結尾推測都顯示正確(包括意圖和槽位),那麼這一標註就被評估為正確。對評估結果,我們在表格1中僅體現第一輪、其他輪和整體的表現,此外,我們在表格2中單獨展現了意圖和槽位的評估結果。
3.3.1 對於單輪和多輪數據的對比
對於表格1的a列和b列,在測試第一輪的時候,只在單輪數據上訓練的模型表現還比較良好,達到了60.6%。然而,對於其他輪來說,由於缺乏對於多輪對話的上下文信息建模以及訓練數據和測試數據的匹配失敗,它的表現就差得多了。將多輪交互中的每一輪表達單獨處理的模型在F1上第一輪僅僅得到55.8%,儘管訓練數據還小一些。原因恐怕是因為訓練和測試沒有不匹配的情況。
3.3.2 已編碼信息的對比
使用了編碼器的標籤模型(c列和d列),因為額外的編碼了歷史表達,在第一輪和接下來多輪中標註評估成績都提高了。與此同時,編碼器加標註器的形式遠遠勝過了單RNN標註器(47.4% to 62.5%),體現了編碼標註器能夠在長期依存關係中捕捉線索。
3.3.3 提議模型的有效性
E列在F1中的整體表現中達到了67。1%,體現了我們提出的模型在長期依存關係信息建模方面的有效性。在結合之前輪信息標註這方面,所提議的模型表現優異,F1的SLU分數達到了65.7%。有趣的是,首輪對話的表現也同樣高於基準線,可能是由於在接下來幾輪中的建模能夠助益於首輪對話的表現。和d列相比,記憶模型可以有效地捕捉跳躍的信息以實現更佳的標註,同時,在有效性方面,所提議的模型也比編碼器模型快了超過十倍,因為每輪對話都單獨建模並且存儲以備隨後再次使用。
3.3.4 意圖和槽位表現的分析
表格2體現了同一個模型在意圖識別和槽填充上的表現。
對於意圖和槽位,在單輪表達基礎上訓練的模型在兩者的表現上都最差。在意圖表現評估上,結合歷史信息的解碼標註器(d列)和記憶網路標註(e列)遠遠地勝過了其他模型。d列和e列的之間的差距不大。
另一方面,針對槽位表現來看,記憶網路表現最好,體現了用過我們提出的模型來建模信息轉移能夠助益於多輪對話中的語義識別和槽填充。
4 結論
本論文提出了一個端對端的記憶網路,來儲存上下文信息,為多輪理解中的長期信息建模,可以在進行信息轉移中發揮很好的作用。該模型將歷史信息嵌入一個連續空間,並將它們儲存在記憶中。解碼部分應用注意力模型來解碼轉移的信息,繼而進行多輪SLU。這一實驗表現了記憶網路在信息轉移建模中的可行性和穩健性。
推薦閱讀:
※CRF 小結
※AI+互聯網金融--入職半年總結
※為何讀不懂你的那個TA
※torchtext入門教程,輕鬆玩轉文本數據處理
※RNN基本模型匯總(deeplearning.ai)