如何使上下文信息更有用? 關於上下文感知的神經對話模型的實證研究

論文標題:How to Make Context More Useful?An Empirical Study on Context-Aware Neural Conversational Models

論文地址:http://www.aclweb.org/anthology/P/P17/P17-2036.pdf

摘要

     生成式會話系統在自然語言處理(NLP)領域中日益受到關注。近來,研究人員注意到對話處理中上下文信息的重要性,並建立了各種模型來利用上下文。 然而,沒有系統的比較來分析如何有效地使用上下文。在本文中,我們進行實證研究來比較各種模型,並研究對話系統中上下文信息對結果的影響。同時還提出了一種變體方法,通過上下文查詢相關性明顯地加權上下文向量,其效果超過了其他基準方法。

引言

最近,人機對話由於其巨大的潛力和商業價值受到了越來越多的關注。研究人員提出了自動對話系統的檢索方法(Ji et al.,2014; Yan et al., 2016)和生成方法(Ritter等,2011; Shang等,2015)。隨着深度學習技術的成功,神經網絡已經表現出強大的學習人類對話模式的能力;給定用戶發出的話語作爲輸入查詢q,神經網絡可以產生回覆r,其通常以序列到序列(Seq2Seq)方式完成(Shang等人,2015)。

在文獻中,對話系統有兩個典型的研究設置:單輪和多輪。單輪談話是最簡單的設置,即模型在產生r時僅需考慮q(Shangetal., 2015; Mou et al., 2016)。然而,大多數現實世界的對話都是包括多輪的情況。以前的話語(在本文中稱爲上下文)也可以提供關於對話狀態的有用信息,並且是相關多輪對話的關鍵。

現有研究已經意識到上下文的重要性,並提出了幾種情境感知對話系統。例如,Yan et al.,(2016)直接連接上下文話語和當前查詢;其他人使用分層模型,首先捕捉個人話語的意義,然後將其整合爲篇章(Serban等,2016)。目前有多種方式來組合上下文和當前的查詢,例如池化或連接(Sordoni等人,2015)。不幸的是,以前的文獻缺乏對上述方法的系統比較。

在本文中,我們對Seq2Seq類對話系統中的上下文建模進行了實證研究。我們重點研究了以下問題:

•RQ1 我們如何更好地利用上下文信息?

     研究表明,層次模型通常比非分層模型更好。我們還提出了上下文集成的一個變體,通過其相關性度量明顯地加權上下文向量,超過簡單的向量池化或連接。

•RQ2 上下文對神經對話系統的影響是什麼?

     我們發現上下文信息對於神經會話模型是有用的。它能產生更長、更多的信息和多樣化的回覆。

總之,本文的貢獻有兩個方面:(1)我們對神經會話模型中上下文建模進行了系統研究。(2)我們進一步提出了顯式上下文加權方法,效果超過其他基準方法。

模型

非層次模型

            爲了在當前查詢之前對一些話語進行建模,一些研究將這些句子直接連接在一起,並使用單個模型來捕獲上下文和查詢的含義(Yan et al.,2016; Sordoni et al., 2015)。在本文中,它們被稱爲非層次模型。這種方法也適用於其他NLP任務,例如文獻級情感分析(Xu et al.,2016)和機器理解(Wang andJiang,2017)。

遵循經典的編碼解碼(encode-decoder)框架,我們使用Seq2Seq網絡,其在編碼期間通過循環神經網絡(RNN)將查詢和上下文轉換成固定長度的向量venc; 那麼在解碼階段,它使用另一個RNN以逐個字的方式產生一個應答r。(見圖1a)

      在我們的研究中,我們採用門限遞歸單元的RNN(Cho et al.,2014,GRUs),可以緩解普通RNN的長時間傳播問題。解碼時,我們應用大小爲5的定向搜索。

層次模型

上下文建模的一個更復雜的方法是使用兩步策略構建層次模型:一個話語級模型捕獲每個單獨句子的含義,然後一個話語間模型集成上下文和查詢信息(圖1b)。

研究人員嘗試了在話語間建模中組合信息的不同方法; 本文評估了幾種主要的方法。

Sum pooling。 Sum池化(表示爲Sum)通過對每個維度中的值求和來集成候選集上的信息(圖2a)。給定上下文向量vc1,...,vcn和查詢向量vq,編碼的向量venc是

Sordoni等人使用Sum pooling (2015),其中簡單地添加了上下文和查詢的詞袋(BoW)特徵。在我們的實驗中,sumpooling對由上下文和查詢語句建模的句子級RNN提取的特徵進行操作,因爲現代神經網絡比BoW特徵保留更多的信息。

           圖1 Seq2Seq神經網絡基於上下文C = {c1,...,cn}和當前查詢q的(a)非分層或(b)分層模型生成回覆r。

連接。 連接(Concat)是Sordoni等人(2015)使用的另一種方法。該方法將每個話語級向量vci和vq連接爲長向量,即venc = [vc0; ...; vcn; vq]。(見圖2b)

與sum pooling相比較,向量連接可以區分上下文和查詢的不同角色,因爲該操作分別保留輸入。然而,一個潛在的缺點是,連接只適用於固定長度的上下文。

順序整合。 Yao等人(2015)和Serban等人(2015)提出了層次對話系統,其中一個話語間RNN建立在話語級RNN的特徵(最後的隱藏狀態)上。訓練是通過端到端梯度傳播實現的,過程如圖2c所示。

使用RNN以順序方式集成上下文和查詢向量可實現複雜的信息交互。基於RNN的隱藏狀態,Sum和Concat也可以應用於獲得編碼向量venc。

         圖2 層次模型中的話語間建模。vci和vq是話語級向量,hci和hq是話語級隱藏狀態,αci和αq是明確的權重,而venc是編碼器的輸出。

然而,我們發現他們的性能比僅使用最後一個隱藏狀態(表示爲Seq)更差。一個合理的原因可能是句間RNN不長,RNN可以很好地保存這些信息。因此,我們的實驗採用了這種變體,如圖2c所示。

3 通過上下文查詢相關性顯式加權

在會話中,上下文內容和語義可能會有所不同:

       與查詢相關的上下文話語可能是有用的,而不相關的內容可能會帶來更多的噪點。按照這種情況,我們提出了一種變體,通過上下文查詢相關性的attention分數顯式加權上下文向量。

首先,我們用餘弦值來計算上下文和查詢之間的相似度:

在下面條件下:

也就是說,句子向量是單詞向量的總和。

遵循attention機制(Bahdanau et al., 2014),我們希望通過softmax函數對這些相似度進行歸一化,並獲得attention概率:

其中sq與sci相同的方式計算,並且始終和爲1,其爲兩個相同向量的餘弦值。如果上下文不太相關,我們應該主要關注查詢本身,但如果上下文是相關的,我們應該更加均勻地集中關注在上下文和查詢之間。

換句話說,我們的顯式加權方法可以被看作是啓發式attention。類似於2.2節,我們通過池化和連接來聚合加權上下文和查詢向量,從而產生以下兩種變體。

WSeq(sum),其中加權向量相加在一起

WSeq(concat),其中加權向量被連接

請注意,顯式加權方法也可以應用於句子向量(無句子間RNN)。我們分別用WSum和WConcat表示變體;細節不再重複。它們在第3.2節中進行比較。

實驗

設置

        我們對在線免費聊天平臺“百度貼吧”中爬行的中文數據進行了全部實驗。爲了方便對上下文效果的研究,我們在Sordoni等人(2015)和Serban等人(2015)之後建立了一個多轉對話語料庫。數據樣本包含三個話語,是一個三元組<上下文, 查詢, 回覆>。總共有50萬個訓練樣本,2000個驗證樣本,4000個測試樣本。神經網絡的超參數主要來自Shang etal.,(2015)和Song etal.,(2016):向量表示620d和隱藏狀態1000d;我們使用AdaDelta進行優化。

                                                                              表1 不同模型的性能

結果和分析

         我們通過BLEU分數評估模型表現。由於本文比較了各種模型,我們聘請工人手動標註其滿意度是無法承受的。BLEU得分雖然對於開放領域的對話系統來說是不完美的,但與人類的滿意度有顯著的相關性(Liu et al.,2016; Tao et al., 2017)。我們在表1中介紹了第2部分介紹的模型的整體性能,並回答了我們的研究問題如下。

RQ1:我們如何更好地利用上下文信息?

我們首先觀察到上下文感知方法通常優於上下文無關的方法。這意味着上下文在開放域聊天風格的對話系統中確實很有用。結果與以前的研究一致(Sordoni等., 2015;Serban等., 2015)。

在上下文感知神經對話模型中,我們有以下發現。

層次結構優於非層次結構

比較非層次結構和層次結構,我們發現(大多數)分層模型大大優於非層次結構。結果表明,對話系統與其他NLP應用程序不同,例如理解(Wang和Jiang,2017),其中採用非曾層次遞歸神經網絡來更好地整合不同句子之間的信息。一個合理的解釋,如Meng等人(2017)的話語句子不一定是由同一個發言者發出的,文獻明確證明了對話系統中層次化RNN的有效性。

分別保持不同話語的作用很重要

如第2節所述,連接操作(Concat)區分不同話語的角色,而sumpooling Sum以均勻的方式聚合信息。我們看到前者在句子向量和句間RNN水平方面表現優於後者,表明sum pooling並不適合對待對話上下文。我們的猜想是,sumpooling在不太重要的上下文信息上表示查詢信息。因此,保持分開通常會有所幫助。

上下文查詢相關性分數有益於會話系統

我們的顯式加權方法通過上下文查詢相關性計算attention概率。在所有變體(Sum, Concat和Seq)中,顯式加權大大提高了性能(除了Seq的BLEU-1之外)。結果表明,上下文查詢的相關性是有用的,因爲它強調了相關上下文信息,並削弱了不相關的上下文信息。

表2 對上下文無關和上下文感知(WSeq,concat)方法的回覆的長度、熵和多樣性。

RQ2:上下文對神經對話系統的影響是什麼?

我們現在好奇上下文信息如何影響神經會話系統。在表2中,我們提出三個輔助度量,即句子長度、熵和多樣性。前兩者在Serban等人(2016)和Mou等人(2016)中使用,而後者則在Zhang andHurley (2008)中使用。

如圖所示,與上下文無關的模型相比,內容感知對話模型傾向於產生更長、更有意義和多樣化的回覆,因爲它們也提高了BLEU分數。

這顯示了神經序列生成的一個有趣的現象:編碼-解碼框架需要足夠的源信息來有意義地生成目標;它不是從不太有意義的輸入中獲取有意義的內容。我們以前的工作也有類似的現象(Mou et al.,2016);我們發現,如果一個相同的網絡從給定(有意義的)關鍵字開始,則會產生更有意義的句子。這些結果也部分解釋了爲什麼seq2seq神經網絡趨向於在開放領域談話中產生短小和普遍相關的回覆,儘管它在機器翻譯、抽象概括等方面取得了成功。

4 結論

     在這項工作中,我們分析了上下文信息對生成式對話模式的影響。我們對現有方法和我們新提出的方法進行了系統比較,通過上下文查詢相關性來顯式加權上下文向量。

   我們表明層次RNN通常優於非層次RNN,顯式加權上下文信息可以加強相關的上下文信息,並減弱不太相關的上下文信息。

    我們的實驗也揭示了一個有趣的現象:通過上下文信息,神經網絡往往會產生更長、更有意義和更多樣化的回覆,從而揭示了神經序列生成的前景。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章