ACL 2020 | 用于多领域端到端任务型对话系统的动态融合网络
?PaperWeekly 原創 ·?作者|王馨月
學校|四川大學本科生
研究方向|NLP
近期的研究已經在端到端面向任務對話系統中取得了很多的進步,然而,大部分模型還是依賴于大規模的訓練數據,且只適用于一些特定的任務如導航和時間安排。這樣的模型很難擴展到一個只有少量標注數據的新領域。
目前很少有研究針對如何有效利用來自所有領域的數據去提升模型在各個領域以及未發掘的領域的表現進行研究。
對于這一問題,本文提出了能夠充分利用領域知識的方法,并引入了一個共享-私有網絡來學習一些共享的和特有的知識。此外,本文還提出了一種新穎的動態融合網絡(Dynamic Fusion Network, DF-Net),能夠自動地探索目標領域和各個源領域之間的相關性。
結果顯示,此模型表現優于現有的多領域對話模型,獲得了 SOTA 的效果。此外,在訓練數據較少的情況下,模型的遷移能力比之前最好的模型平均超過了 13.9%。
論文標題:Dynamic Fusion Network for Multi-Domain End-to-end Task-Oriented Dialog
論文來源:ACL 2020
論文鏈接:https://arxiv.org/abs/2004.11019
代碼鏈接:https://github.com/LooperXX/DF-Net
論文介紹
對話系統一般按照涉及的領域分為兩類:開放域 (open-domin) 對話系統和面向任務 (task-oriented) 對話系統。面向任務的對話系統用于幫助用戶達到特定的目標比如預定餐廳和詢問導航。近年來,端到端的方法一般事 Seq2Seq 模型來基于對話歷史生成回應。
如圖,是一個加入來自 SMD 數據集的基于知識 (Knowledge base, KB) 的面向任務的對話的例子。
雖然已經達到了比較好的效果,但端到端的模型依賴于大量的標注數據,這就導致了模型在一個新拓展的領域上很難利用。而實際上,對于一個新的領域,總是很難收集足夠多的數據。這就使得將知識從具有充足標注數據的源領域遷移到一個只有少量標注數據的新領域成為非常重要的問題。
已有的工作可以分為兩類:第一類是簡單地結合多領域的數據集進行訓練,這種方法能夠隱含地提取共享的特征卻很難有效捕捉領域特有的知識,如圖 (a);第二類是在各個領域單獨地訓練模型,能夠很好地捕捉領域特有的知識,卻忽視了不同領域間共有的知識,如圖 (b)。
本文通過建模不同領域間知識的連接來解決已有方法的局限。已有的一個簡單的baseline如圖 (c),將領域共享的和領域私有的特征合并在一個共享-私有 (shared-private) 架構中。
這種方法區分了共享以及私有的知識,但還存在兩個問題:一是面對一個幾乎不具備數據的新領域時,私有模塊無法有效提取對應的領域知識;二是這個架構忽略了一些領域子集間細粒度的想關性(比如和天氣領域相比,導航領域和規劃領域更相關)。
為了解決上述問題,論文進一步提出了一個新穎的 Dynamic Fusion Network (DF-Net),如圖 (d)。相比于 shared-private 模型,即將介紹的動態融合模塊明確地捕捉領域間的相關性。
特別地,本文用一個門來自動地找到當前輸入和所有領域特有知識模型間的相關性,進一步在提取知識時對各個領域安排一個權重。這種機制可以用在 encoder 和 decoder 上,同時還有一個記憶模塊來基于特征查詢知識。這種模型能夠在面對一個幾乎沒有訓練數據的模型時最大程度利用已有的領域,這是 baseline 模型不能達到的。
模型在公開數據集 SMD 和 Multi-WOZ 2.1 上進行了實驗,獲得 SOTA 效果。同時本文也是第一個在多領域端到端任務型對話系統中探索 shared-private 架構的工作。
模型架構
模型架構基于 Seq2Seq 對話生成模型。如圖所示,模型由三個主要部分構成。首先是一個 shared-private 架構用于學習共享的知識以及對應的領域特有特征,接著用一個動態融合網絡來動態地利用所有領域間的相關性提供給下一步細粒度知識遷移。
此外,本文還使用了對抗訓練 (adversarial training) 來促使共享模塊生成領域共享特征。
2.1 Seq2Seq對話生成
本文將基于知識的面向任務 Seq2Seq 對話生成定義為根據對話歷史 和基于的知識 KB 找到系統回應 的過程。在普通的 Seq2Seq 面向任務對話系統中,一般用 LSTM 編碼對話歷史 來生成共享上下文敏感的隱藏狀態 ,再在 decoding 過程用 LSTM 預測輸出。
區別于傳統的 Seq2Seq 文本生成,成功的面向任務對話系統將很大程度上依賴于 KB 查詢。因此本文采用了全局-局部的記憶指針網絡 (global-to-local memory pointer mechanism, GLMP) 來查詢 KB 中的實體。
GLMP: GLMP 是基于 Mem2Seq 的改進,整體框架基于 MemNN,包含 encoder 和 decoder,encoder 編碼對話歷史,輸出全局記憶指針和全局上下文表示。decoder 提出 sketch RNN,先產生 sketch 的未填充 slot 的響應,再根據全局記憶指針過濾外部知識庫查找信息,最后用局部記憶指針實例化未填充的 slot。
如圖 (a) 外部知識 (EK) 中存儲著 B 和 X,其中實體已三元組形式存儲。對于一個 k 跳的記憶網絡,外部知識是由一個可訓練的 embedding 矩陣組 C 組成。接下來的問題就是在 Encoder 和 Decoder 中查詢知識了。
在 Encoder 中查詢知識采用了最后一個隱藏狀態作為初始查詢序列向量 ,在 k 跳中循環時可以通過與 embedding 矩陣組中的記憶位置利用 Softmax 計算出 k 跳時的 attention 權重,利用 Sigmoid 算出全局記憶指針 ,用于 filter 出外部知識用于 decoding 過程中的相關知識。最終模型通過加權記憶位置讀取出機器并更新查詢向量,計算出編碼后的 KB 信息,用于初始化 decoder。
在 Decoder 中查詢知識使用了一個用特殊 token 開頭的 sketch tag 來標注所有可能的 slot 類型(比如, 表明所有的 Address 類型)。在 decoding ?預測輸出過程中,用隱藏層和隱藏層的 attentive 表示以及生成的 sketch tag 查詢知識。過程類似 Encoder 中查詢知識的過程。最終對一系列指示查詢的概率取最大值作為生成的詞。
2.2 共享-私有 Encoder-Decoder模型
在 2.1 中的模型是在混合多領域數據集中訓練的,參數也是在所有領域共享的,這個模型叫做 shared encoder-decoder model。
下一步,是用一個包含了 shared encoder-decoder 的 shared-private 架構來描繪領域共享特征以及對于每個領域構造一個 private 模型來描述領域特有特征。對于每一個 都經過共享和私有的 encoder-decoder。
Enhancing Encoder
對于給出的一個實例以及其領域,shared-private encoder-decoder 生成一個 encoder 向量的序列標記為 ,最終的 shared-specific 編碼表示為:
簡化表示為:
此外,作者參照 SHAPED: Shared-Private Encoder-Decoder for Text Style Adaptation [1] 一文中的方法,對 使用 self-attention 獲得上下文表示向量 ,用此處的上下文表示向量替換 2.1 初始化 encoder 使用的 encoder 狀態,就能夠使得查詢向量結合了領域共享知識以及領域特有知識。
Enhancing Decoder
在第 t 步 decoder 中,私有及功效隱藏狀態為:
同樣利用 shared-specific fusion 函數并簡化為:
最終,在 decoder 中將最后計算時的隱藏層狀態改為經過 attention 后的包含了共享以及領域特有知識的 fused attentive 表示。
2.3 動態融合查詢知識
共享-私有架構可以捕捉對應的特有特征,但忽略了領域的一些子集之間的細粒度相關性。本文進一步提出了動態融合層來明確地利用所有領域知識。
如圖,根據給出的任意領域的實例,首先將其放入多個私有 encoder-decoder 來從所有領域內獲取領域特有特征,接著所有領域特有只是經過一個動態領域特有特征融合模塊進行融合,進一步通過一個 shared-specific 特征融合獲得 shared-specific 特征。
動態領域特有特征融合是指給出來自所有領域的領域特有特征,利用一個多專家 (Mixture-of-Experts mechanism, MoE) 機制動態地為當前 encoder 和 decoder 的輸入收納所有領域特有知識。
MoE:MoE 的思想是訓練多個神經網絡(也就是多個專家),每個神經網絡(專家)被指定應用于數據集的不同部分。模型還有一個 managing neural net 用來判斷一個輸入應該交給哪一個神經網絡來處理。
對于 decoding 過程第 t 步的 fusion 過程論文給出了詳細描述,如下:
在 decoding 第 t 步時給出所有領域特征表示 ,其中 表示領域的數量。接著將領域特征表示 作為 expert gate 的輸入,輸出一個度量各個領域與當前輸入 token 的相關性的 softmax score 。這一步通過一個簡單的前饋層達到:
最終的領域特有特征向量是所有領域輸出的混合,由 expert gate 的權重 決定,可以寫作:
在訓練過程中,使用交叉熵損失作為 expert gate 預測回應的監視信號,可以看作多個私有 decoder 預測的第 t 個 token 的領域概率分布。因此,更準確的專家預測結果為:
其中 為 encoder-decoder 的參數, 為 MoE 模塊的參數。按照同樣的方法可以得到 encoder 的預測結果 ,最終得到:
用于促使源領域的實例使用正確的專家,然后每一個專家學習對應的領域特有特征。當一個新領域包含很少或沒有標記數據是,expert gate 就能夠自動地計算不同領域與目標領域間的相關性,接著更好地將知識從不同領域的 encoder 和 decoder 模塊中進行遷移。
共享-特有特征融合 (Shared-Specific Feature Fusion) 直接應用了前文介紹過的?shiprivate?操作來融合共享以及最終的領域特有特征:
對抗訓練用在共享 encoder 和 decoder 模塊來促使模型學習領域私有特征,在領域分類器層后引入了一個梯度對抗層。將對抗訓練的損失標記為 ,最終動態融合網絡的損失函數定義為:
其中 和 GLMP 中的用法一樣,、和 是超參數。
實驗
實驗在 SMD 和 Multi-WOZ 2.1.數據集上進行:
將 Mem2Seq、DSR、KB-retreiver 和 GLMP 作為 baseline,實驗結果如下:
實驗結果顯示:1) 基礎的 shared-private 架構表現就在所有數據集上超過了 GLMP,這說明結合領域共享與領域特有知識相比只是利用領域共享知識能更好地提升模型表現。2) 本文提出的架構在 SMD 和 Multi-WOZ 2.1.達到了 SOTA 性能。
論文作者還在 SMD 數據集上做了消融實驗 (ablation experiment) 來確定給出一個含有很少標注數據的新領域時模型的遷移能力。如圖,w/o 表示去除模型的某部分進行的實驗。結果證明領域共享特征和領域特有特征對于模型在領域內的表現都是有增強作用的。
論文作者還做了低資源設定下的實驗,如下圖,結果證明本文提出的模型在不同資源情況都超過了 GLMP,在 5% 數據的情況下,在所有領域平均超過 GLMP13.9%。且本文的模型在僅用 5% 的數據訓練情況下表現依舊由于 GLMP 用 50% 的數據訓練的結果,這也進一了模型能夠有效的遷移到低資源新領域。
論文作者還進行了零樣本設定下的實驗,結果如下圖:
論文作者還為了方便讀者理解動態融合層,在 5% 的低資源情況下,將每個領域 gate 的分布做了可視化,如圖。一個領域的列包含 100 個例子,每一行是其對應的專家值(也可以理解為行列對應的線條顏色越深兩個領域越相關,可遷移的知識越多)。
總結
這篇文章主要是將 shared-private 應用在了多領域對話任務中,而 shared-private 的思想此前在多領域文本分類和文本風格轉換上已經有了相關工作,本文的實驗結果表明,這種思想在多領域任務型對話方面的應用也能取得很好的效果。
本文還提出了動態融合網絡很有效地捕捉了領域間更細粒度的相關性,在低資源情況下也取得了很好的效果。代碼開源,非常值得參考。
參考文獻
[1] https://www.aclweb.org/anthology/N18-1138.pdf
更多閱讀
#投 稿?通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學習心得或技術干貨。我們的目的只有一個,讓知識真正流動起來。
?????來稿標準:
? 稿件確系個人原創作品,來稿需注明作者個人信息(姓名+學校/工作單位+學歷/職位+研究方向)?
? 如果文章并非首發,請在投稿時提醒并附上所有已發布鏈接?
? PaperWeekly 默認每篇文章都是首發,均會添加“原創”標志
?????投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請單獨在附件中發送?
? 請留下即時聯系方式(微信或手機),以便我們在編輯發布時和作者溝通
????
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結
以上是生活随笔為你收集整理的ACL 2020 | 用于多领域端到端任务型对话系统的动态融合网络的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 科技昨夜今晨 1008:鸿蒙 NEXT
- 下一篇: 模拟真实使用场景,苹果 iPhone 1