用於多領域端到端任務導向對話系統的動態融合網絡
摘要
最近的研究表明,大多數神經模型都依賴於大型訓練數據,這些數據僅可用於一定數量的任務域,例如導航和調度。這使得難以用有限的標好的數據進行新領域的擴展。但是,關於如何有效地使用來自所有域的數據來提高每個域以及未知域的性能的研究相對較少。為此,我們研究了可以顯式利用領域知識並引入共享-專用網絡以學習共享和特定知識的方法。此外,我們提出了一種新穎的動態融合網絡(DF-Net),該網絡可自動利用目標域與每個域之間的相關性。結果表明,我們的模型在多域對話中的表現優於現有方法,從而給出了文獻中的最新技術。此外,在訓練數據很少的情況下,我們的性能比以前的最佳模型平均高13.9%。
1 介紹
面向任務的對話系統幫助用戶實現特定目標,例如餐廳預訂或導航查詢。近年來,文獻中的端到端方法通常采用序列到序列(Seq2Seq)模型來產生對話歷史的響應。以圖1中的對話為例,為了回答駕駛員對“加油站”的查詢,端到端對話系統會根據查詢和相應的知識庫(KB)直接生成系統響應。
圖1
盡管端到端模型具有良好的性能,但它們依賴大量標記的數據,這限制了它們對新域和擴展域的實用性。實際上,我們無法為每個新域收集豐富的數據集。因此,重要的是考慮能夠有效地將知識從具有足夠標記數據的源域轉移到具有有限標記數據或很少標記數據的目標域的方法。
現有的方法可以被分為兩類:
如圖 (a) 所示,第一種是簡單將各種領域的數據混合起來訓練,這樣的方法可以隱式地提取共享的特性,但是不能有效地捕獲領域特定的知識。
第二種如圖(b)所示,模型在每個領域上單獨訓練,這樣能夠更好的捕獲領域特定的知識,但是卻忽略了領域間共享的知識。
我們考慮通過顯式地建模領域之間的知識聯系來解決現有工作的局限性。
有一種簡單的基線模型是將領域共享的和領域特有的特征在一個共享-私有框架中進行合並,圖(c),它包括用於捕獲域共享特性的共享模塊和用於每個域的私有模塊,該方法明確區分了共享知識和私有知識。然而這種框架依然存在兩個問題:1)給定一個數據量很少的新領域,私有模塊很難有效地提取出相應的領域知識;2)該框架忽略了跨特定領域子集的細粒度相關性(例如:schedule領域與navigation領域的相關性要超過weather領域)
為了解決上述問題,文中提出了一種動態融合網絡,如圖(d)所示,對比於共享-私有模型,該模型進一步引入動態融合模塊顯式地捕捉領域之間的相關性。特別地,利用一個門控機制自動尋找當前輸入和所有的領域特定模型之間的相關性,以便為每個領域分配權重用於提取知識。編碼器和解碼器以及基於特征查詢知識的記憶模塊都用上了這種機制。另外,給定一個幾乎沒有訓練數據的新領域時,我們擴展的動態融合框架可以利用細粒度的知識來獲得所需的精度,這使得模型仍然可以充分適應現有域,這是基線模型做不到的。
2 模型結構
模型是基於seq2seq對話生成模型的,如下圖(a)所示,為了顯式集成領域認知,我們首先提出使用shared-private框架來學習共享的和相應的領域特定特征,如圖(b)。
接下來,我們提出了使用一個動態融合網絡來動態地利用所有領域之間的相關性以進行細粒度的知識傳輸,如圖(c)。此外,我們還使用了對抗性訓練來促使共享模塊生成領域共享特征。
2.1 seq2seq對話生成
文中將seq2seq任務型對話生成任務定義為根據輸入對話歷史 X 和知識庫 B 來尋找系統響應 Y。不同於典型的seq2seq模型,任務型對話系統中成功的會話依賴於精確的知識庫查詢。文中采用了global-to-local記憶指針機制(GLMP)來查詢知識庫中的實體。外部知識記憶用來存儲知識庫 B 和對話歷史 X。KB 記憶是為知識庫設計的,而對話記憶是用於直接復制歷史詞匯。外部知識記憶中的實體以三元組的形式表示,並存儲在記憶模塊中, 該模塊可以表示為M= [B;X] =(m1,...,mb+T)。對於一個K-hop 記憶網絡,外部知識是由一組可訓練的embedding矩陣C=組成。為了增加模型和知識模塊的交互,模型在編碼和解碼的過程中都會進行知識庫查詢。
在編碼器中查詢知識
使用最后一個隱層狀態作為初始化的查詢向量
在解碼器中查詢知識
使用一個 sketch 標簽來表示相同類型的所有可能的slot 類型(例如,@address表示所有的 Address)。
2.2 shared-private 編解碼器模型
之前提到的模型在混合的多領域數據集上進行訓練,模型的參數在所有領域都是共享的,作者將這種模型稱之為共享編解碼器模型。這里作者提出了一個使用shared-private框架,包括一個共享的編解碼器用於捕捉領域共享的特征和一個 private模型用於給每個領域顯式捕捉領域特定的特征。每個實例 X 既要經過共享的編解碼器也要經過相應的私有的編解碼器。
增強的編碼器
給定一個實例以及它所屬的領域,shared-private編解碼器產生一個編碼序列,包含共享的和來自相應編碼器的領域特定表示:
增強的解碼器
2.3 用於查詢知識的動態融合網絡
上述的 shared-private 框架可以捕捉到相應的專有特征,但是卻忽視了跨領域的子集中的細粒度相關性。作者進一步提出一個動態融合層來顯式利用所有的領域知識,如圖所示。從任意領域給定一個實例,作者首先將它放入多個私有的編-解碼器中,以從所有領域中獲得領域特定的特征。接下來,所有的領域特定的特征被一個動態領域特定特征融合模塊所融合,然后通過shared-specific特征融合獲得 shared-specific 特征。
動態領域特定特征融合
給定所有領域的特征,一種 Mixture-of-Experts機制被用於在編碼器和解碼器中動態整合當前輸入的所有的領域特定知識。
接下來詳細描述如何融合解碼的時間步t,編碼器的融合過程也一樣:expert gate E在第 t 個解碼時間步給定所有的領域特征表示當作輸入,輸出一個 softmax 分數代表當前輸入的token 於每個領域之間的相關程度。通過一個簡單的前饋層來實現:
最終的領域特定的特征向量混合了所有領域的輸出,取決於 expert gate 的權重.
以解碼器為例,在訓練期間,作者使用交叉熵損失作為監督信號讓 expert gate來預測響應中每個 token 的領域,expert gate 輸出的被多個專用解碼器視為第 t 個 token 的領域概率分布預測值。因此,領域預測越准確,expert 得到的結果越正確.
Shared-specific 特征融合
用shprivate 操作來融合共享的和最終的 domain-specific 特征:
3 實驗
3.1 數據集
作者為SMD數據集和 Multi-WOZ 2.1 數據集構造了相應的 KB,數據的統計信息如圖所示:
3.2 實驗設置
Embedding 和 LSTM 隱層單元的維度為 128,dropout 從 {0.1,0.2}中選擇,batch size 從{16,32}中選擇,在框架中,作者還采用了權重類型技巧,優化器為 Adam。
3.3 Baselines
作者對比了他的模型和sota baselines:
- Mem2Seq:該模型以對話歷史和 KB 實體作為輸入,使用一個指針 gate 來控制生成一個詞表詞語或從輸入中選擇詞匯輸出;
- DSR:該模型使用對話狀態表示來隱式檢索 KB,並且在解碼過程中應用拷貝機制從知識庫中檢索實體;
- KB-retriever:模型采用了一個檢索模塊來檢索最相關的知識庫,並過濾與生成過程無關的信息;
- GLMP:該框架采用 global-to-local 指針機制,在解碼過程中對知識庫進行查詢;
3.3 實驗結果
作者使用 BLEU 和 Micro Entity F1 作為評估指標。結果如圖表所示:
結論:1)基礎的 Shared-Private框架表現要好於之前最好的模型 GLMP,這意味着領域共享和領域特有的特征結合起來之后比起僅使用隱式領域共享特征的模型,它能夠更好的增強每個領域的表現;2)作者提出的框架在兩個對領域任務型對話數據集上都獲得了最好的表現。
3.4 實驗分析
作者在 SMD 數據集上從幾個方面研究了模型的強度。首先通過幾個消融實驗來分析不同部件的效果,接下來,構造了領域適應實驗來驗證模型在一個數據量很少或者沒有的情況下模型的遷移能力。此外,作者還提供了動態融合層的可視化和實例研究,以便更好地理解模塊如何影響和促進性能。
1. 消融實驗
消融實驗結果如表中所示,1)w/o Domain-Shared Knowledge Transfer 代表除去領域共享特征,僅使用領域特定特征來生成;2)w/o Dynamic Fusion Mechanism代表僅簡單將所有的領域特定特征加起來,而不是使用 MOE 機制來動態融合;3)w/o Multi-Encoder 代表移除多編碼器模塊,只使用一個共享編碼器;4)w/o Multi-Decoder 代表移除多解碼器模塊;5)w/o Adversarial Training 代表移除對抗訓練的實驗設置;
2. 領域適應
低資源設置 如圖5所示。我們可以發現:(1)我們的框架在原始數據集的所有比率上均優於GLMP基線。當數據僅占原始數據集的5%時,我們的框架在所有域上的平均表現均優於GLMP 13.9%。 (2)與在某些領域使用50%訓練數據集的GLMP相比,使用5%訓練數據集訓練的框架可以實現相當甚至更好的性能。這意味着我們的框架有效地從其他領域轉移了知識,從而為低資源的新域實現了更好的性能。
零射擊設置 特別地,在沒有看到域的情況下,我們進一步評估了零觸發設置下域適應能力的性能。從訓練集中隨機刪除一個域,而其他域數據保持不變以訓練模型。在測試過程中,看不見的域輸入使用MoE來自動計算其他域與當前輸入之間的相關性並獲得結果。結果如圖6所示,我們可以看到我們的模型在三個域上的性能明顯優於GLMP,這進一步證明了我們框架的可移植性
3 案例學習
此外,我們為Navigationdomain及其相應的專家門分布提供了一種情況。 案例是在導航域中使用5%的訓練數據生成的,而其他兩個域的數據集保持不變,這可以更好地顯示其他兩個域如何將知識轉移到低資源域。 如圖8所示,計划域的專家值比天氣域大,這表明計划對天氣的貢獻更大。在進一步的探索中,我們發現導航和計划域中都出現了“位置”和“集合”兩個詞, 這表明日程安排與導航比天氣更緊密,這表明我們的模型成功地從最近的領域轉移了知識
4 人類評估
我們對我們的框架和其他基准模型進行人工評估。 我們隨機產生了100個響應。 這些響應基於對SMD測試數據的不同對話歷史記錄。 以下文等。 (2018)和Qin等。 (2019b),我們聘請了人類專家,並要求他們根據正確性,流暢性和人的相似性以1到5的等級來判斷回答的質量。結果如表4所示。我們可以看到我們的框架在所有指標上均優於GLMP, 這與自動評估是一致的。
4 總結
在本文中,我們建議使用共享專用模型來研究多域對話框的顯式建模域知識。 此外,提出了一種動態融合層來動態捕獲目標域和所有源域之間的相關性。 在兩個數據集上的實驗表明了所提出模型的有效性。 此外,我們的模型可以在幾乎沒有注釋數據的情況下快速適應新領域。