Transformer落地:使用话语重写器改进多轮人机对话
作者丨袁一鳴
學校丨武漢大學碩士生
研究方向丨對話系統、目標檢測
概述
本文發表于自然語言處理頂會 ACL 2019,數據集以及 LSTM 版本的模型可在以下鏈接找到(由于 Transformer 版本模型已被線上應用,涉及到法律問題未進行開源,但作者歡迎發郵件進行探討)。?https://github.com/chin-gyou/dialogue-utterance-rewriter
最近的研究在單輪對話上取得了令人矚目的進展。然而在多輪對話中,當前的模型還遠遠不能滿足需求。一個主要的挑戰是我們日常對話中經常出現的共指關系以及信息省略,使得機器很難理解真正的意圖。
這篇論文提出把話語重寫作為預處理,幫助多輪對話建模。具體來說就是每句話都要先重寫,以恢復所有共指的和省略的信息,然后基于重寫的話語執行下一個處理步驟。為了正確地訓練話語重寫器,本文收集一個新的帶有人工注釋的數據集并介紹了一個基于 Transformer 的使用指針網絡的話語重寫架構。本文所提出的架構在話語重寫的任務上實現了極其出色的效果。訓練好的話語重寫器可以很容易地集成到在線聊天機器人。
研究背景及主要工作
多輪對話模型的一個主要的難點是我們的日常對話常見的共指關系和信息遺漏。從本文初步研究的 2000 個中文的多輪對話中發現,超過 70% 的對話存在這種現象。表 1 展示了兩個典型的例子,在語境 1 中“他”和梅西存在共指關系,語境 2 中的“為什么”省略了“最喜歡泰坦尼克號”這個信息。缺少共指關系和省略的信息,機器人就不知道該如何繼續對話。為了解決這個問題,本文提出通過對當前話語重寫,將多輪對話問題簡化為單輪對話問題。讓話語重寫器通過指代消解和信息補全恢復所有共指的指稱和省略的信息。在表 1 的兩個例子中,每個話語 3 都會被重寫成話語 3’。之后,系統將只考慮話語 3’ 生成一個回復,而不考慮前一輪的話語 1 和 2。這種簡化縮短了對話上下文的長度,同時仍然保留了用于提供適當的回復所需要的必要的信息。?
為了獲取話語重寫器的監督訓練數據,本文構造了一個中文對話數據集,下表是數據集的統計信息,該數據集中一半是不需要重寫的負樣本,另一半是需要的正樣本,每個話語都配有相應的人工重寫注釋。
本文將話語重寫問題建模為使用指針網絡的提取生成問題。重寫的話語是基于 attention 機制,通過復制來自對話歷史或當前話語來生成。這個靈感來自最近提出的 Transformer [1] 可以更好地捕捉句子內的詞之間的依賴關系,本文修改了 Transformer 體系結構使其包含指針網絡機制。在指代消解和信息補全方面,得到的模型優于遞歸神經網絡 (RNN) 和原始的 Transformer 模型, F1 分數超過了 0.85。此外,本文整合了訓練好的話語重寫器到兩個在線聊天機器人平臺,發現它可以實現更準確的意圖檢測并提高了用戶的參與度。
模型
問題描述 ?
將每個訓練樣本表示為。代表包含 n – 1 個話語的對話歷史。Un 是話語的第 n 個話語,是唯一需要被重寫的。R 是恢復了 Un 中所有指稱和被省略的信息的重寫后的話語。如果沒有檢測到共指關系或信息省略(負樣本),R 可以等于 Un。
本文的目標是學習一個映射函數可以基于 H ?和 Un 自動重寫。過程是先將 (H, Un) 編碼,然后使用指針網絡解碼得到 R。模型結構如下圖所示。
編碼器?
將 (H, Un) 中的所有 token 展開成。在每兩個輪次之間插入一個輪次結束分隔符。然后用 Transformer 對展開的令牌序列進行編碼。將 (H, Un) 中的所有 token 串聯起來作為輸入,希望 Transformer 能夠通過 self-attention 機制在它們內部學習基本的共指信息。對于每個 token ,其 input embedding 為其 word embedding, position embedding ?和 turn embedding [2] 之和:
額外添加的 turn embedding?,用來指明每個 token 屬于哪一輪對話。來自同一輪對話的 token 將共享相同 turn embedding。然后將 input embeddings 轉發到堆疊的 L 層編碼器,得到最終的編碼表示。每個編碼器包含一個 self-attention 層接著一個前饋神經網絡。
FNN 是前饋神經網絡,MultiHead (Q, K, V) 是以查詢矩陣 Q、鍵矩陣 K、值矩陣 V 為輸入的 multi-head attention 函數。每個 self-attention 和 feedforward 組件都有一個殘差連接和層歸一化步驟,具體參考文獻 [1]。最終的編碼是第 L 個編碼器的輸出。
解碼器?
解碼器也包含 L 層,每層由三個子層組成。第一子層是一個 multi-head attention:
。第二個子層是編碼器-解碼器 attention,它將集成到解碼器。在本文的任務中,由于 H 和 Un 的用途不同,本文對于來自于對話歷史 H 和來自當前話語 Un 的 tokens 分別使用單獨的鍵-值矩陣。從上一節得到的編碼序列被分為(H 中的令牌編碼)和(Un 中的令牌編碼)然后分別處理。編碼器-解碼器向量計算如下:
第三個子層為位置全連接前饋神經網絡:其中 ? 表示向量串聯。輸出分布
在解碼過程中,本文希望模型在每一步可以做到學習是從 H 還是從 Un 中復制單詞。因此, 本文利用一個控制權重 λ 來決定。解碼概率通過合并最后一個解碼層的 attention 分布來計算:
a 和 a'分別為 H 和 Un 的 tokens 上的 attention 分布。、和是可學習的參數,σ 是 sigmoid 函數,輸出值在 0 和 1 之間。控制權重 λ 指示解碼器從中對話歷史 H 中提取信息或直接從 Un 復制。如果 Un 既不包含共指關系也不包含信息省略,λ 將總是 1 來復制原來的 Un 作為輸出。否則檢測到共指關系或信息省略時,λ 為 0。整個模型通過最大化來實現端到端的訓練。
實驗
對比實驗1. (L/T)-Gen:基于生成的模型,單詞是從固定的詞匯表中產生的。
2. (L/T)-Pt-Net:基于指針的模型。話語只能是從輸入中復制。
3. (L/T) -Ptr-Gen:指針與生成混合模型。單詞可以從輸入復制,也可以從一個固定的詞匯中生成。
4. (L/T)-Ptr-λ:本文提出的通過系數 λ 劃分 attention 的模型。?
(L/T) 表示編解碼器結構為 LSTM 或 Transformer。對于前三種類型在模型中,對話的歷史和需要重寫的話語之間不做區分。?
實驗結果如下表所示:
結論如下:
1. 與基于 LSTM 的模型相比,基于 Transformer 的模型有顯著的改進。這意味著 self-attention 機制有助于識別共指和省略的信息。
2. 生成模式不能很好地工作,因為所有的詞都可以從 H 或 Un 中檢索出來。基于指針的模型優于更復雜的指針與生成混合模型。
3. 單獨處理 H 和 Un 然后把他們的 attention 通過學習到的 λ 合并比直接將整個對話 tokens 作為一個的輸入要好,雖然改進與前兩項相比就不那么重要了。?
總體上,本文的模型實現了極其出色的效果。對于正樣本,55.84% 的生成完全符合人工注釋參考。對于負樣本,在 98.14% 的案例中,本文的模型正確地復制了原始的話語。這表明本文的模型是已經能夠識別不需要重寫的話語。今后的工作應致力于提高對正樣本的重寫能力。
集成測試
這一步是研究如何將提出的話語重寫器集成到現成的在線聊天機器人中來提高生成響應的質量。方法是用最好的模型 T-Ptr-λ 根據對話上下文重寫每個句子,然后將重寫后的話語轉發給系統生成回復。本文將其應用在了任務型和閑聊型對話機器人。并與原來沒有話語重寫的系統進行了比較。結合本文提出的重寫器,任務導向對話系統的意圖分類器能夠達到 89.91% 的精度,表現優于原來的系統 9% 以上。在聊天機器人中,話語重寫器將用戶的平均每次會話對話輪數從 6.3 提高到 7.7,表明用戶對整合的后的對話系統參與度更高。效果如下表所示:
總結
自從 transformer 被提出,研究者們紛紛將目光轉向于此。本文的思路很清晰,就是將 transformer 與原來常應用于循環神經網絡的 pointer 機制相結合,利用 transformer 中的 self-attention 機制以及 pointer 機制的復制能力來對話語進行重寫,補全了共指關系和省略的信息,幫助對話系統產生更適合的回復。同時,本文是將 transformer 落地的一個很好的范例。此方法之所以可以落地主要有這么幾個原因。一是與其他方法相比,像記憶網絡或 belief tracking ,訓練好的話語重寫器是與模型無關的,因此可以很容易地集成到其他黑盒對話系統。二是因為對話的歷史信息都反映在一個被重寫的話語中,更節省內存。
參考文獻
[1]?Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[C]//Advances in neural information processing systems. 2017: 5998-6008.
點擊以下標題查看更多往期內容:?
ACL 2019 | 使用跨領域語言建模的命名實體識別
IJCAI 2019 | 基于超圖網絡模型的圖網絡進化算法
SIGIR 2019 | 用戶注意力指導的多模態對話系統
EMNLP 2019 | 針對短文本分類的異質圖注意力網絡
ACL 2019?| 基于Attention的知識圖譜關系預測
基于膠囊網絡的知識圖譜完善和個性化搜索
#投 稿 通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學習心得或技術干貨。我們的目的只有一個,讓知識真正流動起來。
?????來稿標準:
? 稿件確系個人原創作品,來稿需注明作者個人信息(姓名+學校/工作單位+學歷/職位+研究方向)?
? 如果文章并非首發,請在投稿時提醒并附上所有已發布鏈接?
? PaperWeekly 默認每篇文章都是首發,均會添加“原創”標志
???? 投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請單獨在附件中發送?
? 請留下即時聯系方式(微信或手機),以便我們在編輯發布時和作者溝通
????
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
▽ 點擊 |?閱讀原文?| 下載論文 & 源碼
總結
以上是生活随笔為你收集整理的Transformer落地:使用话语重写器改进多轮人机对话的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: xy1911弹夹卡不住水弹
- 下一篇: 10周带你手推机器学习算法公式,30+视