天天看點

如何讓機器客服更像人類客服?概要問題背景模型實驗和結果未來工作

作者 | EMNLP 2019

如何讓機器客服更像人類客服?概要問題背景模型實驗和結果未來工作

概要

人類通過語言将大腦裡的知識表達出來,通過對話互相傳遞知識。機器通過學習大量的語料可以一定程度學會流暢的語句表達,但如果沒有知識,則生成的隻會是漂亮而無内涵的回複。傳統的子產品化的對話模型可以通過資料庫查詢等方式将關鍵資訊填入回答的模版中,但是端到端的對話生成模型則要更複雜一些。

為了解決這個問題,記憶網絡(Memory Networks)通常是一個不錯的技術方法。但是現有的記憶網絡結合對話系統隻是提供了如何引入知識的一個方法,并不能很好的處理多種來源和結構的知識。

是以在這篇文章中,我們提出了一個異構記憶網絡(Heterogeneous Memory Networks, HMNs)來同步處理使用者語句,對話曆史以及背景知識庫。HMNs由上下文無關(context-free memory)記憶網絡和我們提出的上下文敏感(context-aware memory)記憶網絡組成,分别用于編碼、儲存結構化的知識元組(knolwdge tuples)和序列化的使用者語句、曆史對話,并生成兩個小詞表分布(知識詞表和曆史對話詞表)以及一個大詞表(所有訓練的詞彙分布)供回複語句生成的選詞。在三個資料集上的實驗結果表明,HMNs超過了現有的SOTA模型,能夠較顯著的提高端到端任務型對話模型的表現。

問題背景

人類客服在回答客戶問題時首先了解使用者的語言,然後到相關資料庫、知識庫中查詢所需要的知識,最終整理并回答問題。在這個過程中如果缺乏相對應的知識資料,即使是人類也幾乎不可能準确回答使用者所需要的問題,因為客戶可能需要的關鍵點就是那條資料庫中的知識,而再漂亮的回複偏離了重點也是不合格的。機器也是如此。生成模型如果僅通過曆史對話語料學習,最終學習到的可能隻是最安全、最通用的回複,但在實際對話中缺乏關鍵知識,也将導緻無法解決具體事務。是以在對話模型中恰當的引入知識顯得至關重要。

如何讓機器客服更像人類客服?概要問題背景模型實驗和結果未來工作

如圖所示一個典型的任務型對話,使用者問題What is the address for keen需要根據上文的hotel_keen以及KnowledgeBase中檢索到的2_miles、578_arbol_dr等作為關鍵資訊來生成系統回複的語句。在這種情況下,傳統的pipeline類型的對話系統通常采用填槽(slot filling)以及檢索的方式來查找所需的關鍵資訊,這種方式需要大量的人工标注。深度學習的發展促使我們更進一步探索:許多[7, 8]工作證明了完全資料驅動的任務型對話也是可行具有一定前景的。現有的完全資料驅動(fully data-driven)的任務型對話模型通常基于Sequence to Sequence模型,同時采用注意力(attention)機制來引入外部知識。Madotto在這些基礎上進一步提出了Mem2Seq(Memory to Sequence)模型[1],将multihop attention和pointer network的思想引入了對話生成模型。

現有的模型将不同來源、不同結構的資訊雜糅、拼接到一起,用同一個網絡(RNN或Memory Network)表達。但是人類思考的時候并不是将所有的資訊雜糅在一起的,而是有一個思路:例如該對話任務,真人客服首先考慮的是問題,然後結合上下文,依靠這些資訊查閱資料庫,最後生成最後的回複。在這樣的思想指導下,我們考慮不同的知識在對話這個任務中起到的作用是不同的,例如曆史對話實際上指導的是上下文資訊和回答的模式,而知識/資料庫資訊則更像插入到回複中的“值”。同樣的,曆史對話是一種序列化的資訊,而知識庫往往是一種結構化的資料,是以我們還需要對不同資訊采用更适合它們結構的表達模型。是以我們提出了異構記憶網絡模型(Heterogeneous Memory Networks, HMNs)結合Encoder-Decoder架構來更好的完成對話任務。本文的主要貢獻在于:

  • 我們提出了HMNs模型結合Encoder-Decoder模型第一次探索将對話曆史、知識庫等用不同的Memory來表示。
  • 我們提出了一種用門機制(gating mechanism)加強的上下文敏感記憶網絡(context-aware memory networks)來更好的學習、表達對話曆史等上下文依賴資訊。
  • 我們在三個流行的公開資料集上進行了測試,實驗結果表明對話模型總體水準顯著超過現有的SOTA模型,且不同部分的改進都是有效的。

模型

我們的模型主體結構上采用端到端生成模型常用的Encoder-Decoder架構。本章将詳細介紹模型結構。

1. 編碼器(Encoder)

如何讓機器客服更像人類客服?概要問題背景模型實驗和結果未來工作

Encoder的作用是将對話曆史編碼和使用者Query表達成一個内容向量(contextvector)。Encoder部分采用了一個上下文敏感記憶網絡(如下圖decoder的左半部分)将曆史對話和使用者的Query作為輸入。每一個輸入的詞彙由(1)token本身(2)該句話的輪次以及(3)對話的身份。例如:使用者在第一輪說“hello”然後系統回複“may i help you”則輸入為:[(hello, t1, user),(may, t1, sys),(I, t1, sys),(help,t1, sys), (you,t1, sys)],t1即表明為對話的第一輪,user和sys則代表是使用者和系統所說的話。将hello,t1,user三個轉換為vector相加則是這個詞的embedding。最後将embedding的序列輸入到上下聞敏感記憶網絡中最終得到context vector。

如何讓機器客服更像人類客服?概要問題背景模型實驗和結果未來工作

2. 上下文敏感記憶網絡

由于傳統的記憶在儲存對話曆史的時候會丢棄上下文序列資訊,是以我們在端到端記憶網絡(end to end memory networks)[5]基礎上進行修改。記憶網絡由多個hop組成,hop 由每個hop自身随機初始化的嵌入矩陣的每個word embedding相加拼接而成。在此我們采用相鄰權重共享方案,這意味着不僅是第k個hop中的輸入嵌入矩陣,而且是第(k-1)個hop中的輸出嵌入矩陣。為了讓記憶網絡更好地學習和表達上下文資訊,我們在存儲單元之間添加了一個門控機制,采用的門參考了雙向GRU[6]的方法。在加載序列話資訊時候,便會通過門機制得到上下文相關的詞彙表達以存儲至記憶網絡。

将查詢向量輸入,計算注意力權重并得到輸出向量。将查詢和輸出向量相加,我們就得到了第k個hop的輸出。在這裡也是(k+1)個hop的查詢向量。

3. 異構記憶網絡

HMNs如前圖展示的那樣,包含了一個上下文敏感記憶網絡和一個上下文無關記憶網絡。上下文敏感記憶網絡前文已經詳述,而上下文無關記憶網絡則與端到端記憶網絡完全相同。上下文敏感記憶網絡用于儲存和表達曆史對話資訊,而上下文無關記憶網絡則用來表達知識庫資訊。兩者連接配接的方式則是通過上下文敏感記憶網絡輸出一個查詢向量作為上下文無關記憶網絡的輸入。這樣即為RNN控制器輸入到曆史對話中,來結合上下文資訊以及一定程度上獲得回答的模式,再通過這些資訊來查詢關鍵資料,和人類的思考過程相似:根據問題首先确定回答的方式,再通過回答的方式來查找缺失的資料資訊。

4. Decoder(解碼器)

解碼器部分包含了HMNs和一個RNN的控制器如圖所示。

如何讓機器客服更像人類客服?概要問題背景模型實驗和結果未來工作

RNN控制器将在每個step将查詢向量輸入到HMNs中。在每一步中,輸入的查詢向量通過上下文敏感記憶網絡生成對話曆史詞表(最後一層hop的輸出)和大詞表(第一層的hop輸出作為預測)。而後上下文敏感網絡的輸出向量将作為查詢向量輸入上下文無關記憶網絡以查詢知識庫資訊并生成一個知識庫詞表。最後通過選詞政策從三個詞表中選擇一個詞作為該輪生成的單詞。

5. 拷貝機制和選詞政策

我們采用拷貝機制來複制來自記憶網絡中的單詞。記憶網絡中目标詞的機率就是兩個記憶網絡中的注意力權重_x001D_。如果沒有出現目标詞,則會選中預處理階段添加的标記存儲器跳轉位置标記。在選詞過程中,如果兩個記憶網絡的輸出都不是跳轉标記,我們就比較兩個網絡中選中的詞機率更大的那個。如果隻有一個跳轉标記,則選擇另一個網絡中機率最大的詞彙。如果兩者都為跳轉标記,則選擇大詞表中機率最大的詞。

實驗和結果

為了驗證我們模型,我們設計了相關實驗以證明我們模型的設計是否能夠達到更好的效果以及模型的新設計(堆疊多個記憶網絡以及上下文敏感記憶網絡)是否都是有效的。

1. 資料集

如何讓機器客服更像人類客服?概要問題背景模型實驗和結果未來工作

如表格示,我們的采用了流行的三個資料集:Key-Value Retrieval Datasets[2]、DSTC2[3]以及(6) dialogbAbI tasks[4]。三個資料集均隻采用對話以及知識庫(元組形式,由于DSTC 2并沒有知識庫,是以使用的是本體ontology檔案生成),去除了slot fillings等等所有标簽。三個資料集的資料品質較高且同時包括多領域、單領域等多種形式。

2. 實驗名額

為了達到驗證的目的,我們采用了多種名額以驗證我們的設想。

  • BLEU:我們采用BLEU來驗證模型能否生成流暢的回複語句。
  • F1:我們使用F1來驗證模型能否準确地在知識庫中抽取到回答所需的關鍵資訊并回複。
  • Per-response accuracy and Per-dialog - accuracy:主要用在bAbI資料集中,來驗證模型是否有能力生成、複現學習到的表達。

3. 對比模型

我們對比了以下幾個模型:

  • SEQ2SEQ: seq2seq(LSTM)模型目前來看還是各項生成模型研究對比的可靠穩定的模型。
  • SEQ2SEQ+Attn.: 增加了attention機制的seq2seq能夠更好的生成待知識、稀有詞語的資訊。
  • Mem2Seq:memory to sequence将multihop attention引入了任務型對話生成中。
  • HMNs-CFO:HMNs withcontext-free memory only。同樣是HMNs的模型,但是該模型用上下文無關網絡替換了上下文敏感網絡,用來驗證上下文敏感網絡是否真的起到了效果。

4. 實驗結果

如何讓機器客服更像人類客服?概要問題背景模型實驗和結果未來工作
如何讓機器客服更像人類客服?概要問題背景模型實驗和結果未來工作

可以看出我們的模型在絕大部分主要評價名額上都得到了最好的表現效果。

在下表随機抽取的一個生成執行個體中也可以看到,能夠生成最流暢的語句并抽取最準确的知識。

如何讓機器客服更像人類客服?概要問題背景模型實驗和結果未來工作

5. 實驗分析

  • 模型的效果

在所有的實驗中,我們發現HMNs基本都取得了最好的實驗效果。是以總體的模型一定程度上是可靠有效的。特别是在F1名額上,HMNs的表現更加顯著,結合實際的生成語句效果(甚至能夠抽取到比ground truth更多且仍然準确的實體),我們認為HMNs在某種程度上能夠學會如何利用query和曆史對話資訊從知識庫中抽取相關關鍵資訊。

  • 上下文敏感網絡是否真的有效?

在bAbI實驗結果(Table 3)中我們對比HMNs-CFO和HMNs模型的實驗結果:HMNs在全部名額中均顯著勝過HMNs-CFO,而HMNs和HMNs-CFO都采用了兩個記憶網絡堆疊的方式,唯一的差別便是HMNs-CFO用了兩個同樣的上下文無關記憶網絡分别存儲曆史對話以及知識庫的資訊。此外結合訓練的loss圖像(Figure 4),我們可以得出結論,上下文敏感網絡能夠更好更快地學習對話生成任務。

  • 用多個網絡分别學習對話曆史和知識庫資訊是否有效?

同樣地在該實驗中,我們對比Mem2Seq和HMNs-CFO的實驗結果:HMNs-CFO在絕大部分名額上(特别是perdialogueaccuracy)都取得了更好地成績。Mem2Seq和HMNs-CFO的兩個關鍵差別在于HMNs-CFO相對于Mem2Seq采用專用的記憶網絡存儲不同資訊,同時通過對話曆史資訊輸出查詢向量到知識庫的方式連接配接兩個網絡。是以采用專用的記憶網絡并用合适的方式連接配接不同的記憶子產品這個想法在這裡也得到了有效的證明。

未來工作

在前面的實驗結果中我們可以注意到Key-Value Retrieval Datasets實驗中天氣預測這項名額HMNs、Mem2Seq等利用了記憶網絡的模型表現不佳。對此我們展開調研發現天氣預測任務中,平均的知識庫元組條目數量是其他任務的三倍之多,然後我們在這個任務中通過比對的方式縮減元組數量到和其他任務大緻相同之後,F1名額上升到了48。是以我們認為目前的訓練方式記憶網絡在顯著增加資訊存儲量的情況下可能存在問題。在實際使用的時候需要先利于比對等方式減少候選數量。是以我們需要進一步研究HMNs在不同資料量尺度之下的表現以及改進方法。

參考資料:

[1] Madotto, Andrea, Chien-Sheng Wu, andPascale Fung. "Mem2seq: Effectively incorporating knowledge bases intoend-to-end task-oriented dialog systems." arXiv preprint arXiv:1804.08217(2018).

[2] Eric, Mihail, and Christopher D. Manning. "Key-value retrieval networksfor task-oriented dialogue." arXiv preprint arXiv:1705.05414 (2017).

[3]

http://camdial.org/~mh521/dstc/downloads/handbook.pdf

[4] Bordes, Antoine, Y-Lan Boureau, and Jason Weston. "Learning end-to-endgoal-oriented dialog." arXiv preprint arXiv:1605.07683 (2016).

[5] Sukhbaatar, Sainbayar, Jason Weston, and Rob Fergus. "End-to-endmemory networks." Advances in neural information processing systems. 2015.

[6] Cho, Kyunghyun, et al. "On the properties of neural machinetranslation: Encoder-decoder approaches." arXiv preprint arXiv:1409.1259(2014).

[7] Vinyals, Oriol, and Quoc Le. "A neural conversational model."arXiv preprint arXiv:1506.05869 (2015).

[8] Shang, Lifeng, Zhengdong Lu, and Hang Li. "Neural responding machinefor short-text conversation." arXiv preprint arXiv:1503.02364 (2015).