Neural Responding Machine for Short-Text Conversation

最近對話系統有越來越流行的趨勢,很多公司都在做對話系統,最近我也在學習對話領域的相關知識。這篇論文發表於ACL2015,是由諾亞方舟實驗室做的工作。

在對話系統中,可以將任務分為多輪對話和單輪對話,Short-Text Conversation(STC)指的是單輪對話任務——也就是對於每一個輸入post給出一個對應的response。

之前在STC任務主要是用兩種方法:

  • 檢索式的方法(retrieval-based method)
  • 統計機器翻譯(statistical machine learning, SMT)

但是這兩種方法都有一些缺點:

檢索式:

  • 回應都是事先定好的,多樣性非常欠缺,而且對於不同的任務適應性不好
  • 簡單的文本匹配的特徵無法很好地區分positive與negative的response

統計機器翻譯:

  • 將對話任務看作是一種翻譯任務,但是這樣忽視了在對話任務上post和response可能在語義上完全沒有聯繫這一客觀事實

本文嘗試將Seq2seq的框架應用到STC任務上面。雖然Encoder-Decoder式的model已經在機器翻譯任務上面效果很好,但是對話不同於翻譯,因為對於一個相同的post,STC任務其實可以有很多不同的response。例如文章中的例子:post為「吃素第一天,堅持住,崔朵拉。」可以有「堅持住,堅持素食!」、「這就是傳說中的吃素嗎?」、「吃飽了才有力氣減肥」等等不同的response。

基於這樣的考慮,文章提出了一種叫做Neural Responding Machine(NRM)的方法,並設計了一些變體(共有三種)以便於更好地適用於STC任務。

Neural Responding Machines

NRM的基本思想是得到post的隱層特徵表示,接著基於這種全局特徵產生response,如圖

其實這種架構大家都非常熟悉了,將Encoder(RNN)在每一個時間步上產生的 vec{h}=(h_1,h_2,cdots,h_T) 輸入進入Context Generator得到Decoder(RNN)的輸出 vec{c} ,接著經過一個 L 變換得到最終的response vec{y}

在NRM中,L變換非常重要,因為它需要把post的features表現得盡量豐富,這樣才能得到更多的潛在responses。

Attention機制提出來之後經常被應用與Seq2seq的架構,因為它可以決定在生成過程中post的哪些部分更加重要。

Decoder

文章的Decoder採用了下面的架構

具體來說,產生的機制由下面的公式決定(參考上圖,虛線代表 g(.) ,實線代表 f(.)

p(y_t|y_{t-1},cdots,y_1,vec{x})=g(y_{t-1},s_t,c_t)

s_t=f(y_{t-1},s_{t-1},c_t)

Encoder

文章考慮了三種不同的Encoder方案,分別稱之為:

  • global scheme(NRM-glo)
  • local scheme(NRM-loc)
  • hybrid scheme combines the aforementioned 2(NRM-hyb)

Global Scheme: 如圖所示, h_t=f(x_t,h_{t-1}) ,並簡單地定義最後一個 h_Tc_t

Local Scheme: 利用AM機制,動態定義 c_t=sum^T_{j=1}alpha_{tj}h_j ,而 alpha_{tj}=q(h_j,s_{t-1}) ,可以看出這就是參考於論文Neural Machine Translation by Jointly Learning to Align and Translate。

Hybrid Scheme:這種方法基於這樣一種思想:NRM-loc能針對於不同的responses動態地選擇不同位置的單詞作為重要特徵, 而NRM-glo有catch post的全局特徵的能力,因而它們這是一種互補的關係。在Local Scheme上稍稍做一些改變,使得 c_t=sum^T_{j=1}alpha_{tj}[h_j;h_T^g]alpha_{tj}=q([h_j^l;h_T^g],s_{t-1}) ,如圖所示

模型NRM-hyb訓練的時候利用了預學習好的NRM-loc和NRM-glo模型參數,再在此基礎上進行調參。三種模型再預測的時候採用了beam search演算法以產生多樣化的responses。

作者抓取了很多微博數據進行訓練,並與retrieval-based model以及SMT model進行對比,採用的是人工評測打分的方法。結果如圖所示

我們可以發現檢索式的方法效果和NRM-glo差不多,因為:

  1. 它基本使用的都是預定義的responses,不會有一些語法上的問題
  2. 匹配特徵保證了responses和post的相關性

而NRM-hyb結合了global和local的優點之後,performance明顯好於其他方法。最後可以直觀感受一下各個方法產生的responses的區別

參考

Neural Responding Machine for Short-Text Conversation


推薦閱讀:

再談bot
斯坦福CS224N深度學習自然語言處理(三)
記憶網路之Gated End-to-End Memory Networks
聊聊文本的分散式表示: Distributional Representation和Distributed Representation的區別
理解樸素貝葉斯分類的拉普拉斯平滑

TAG:自然语言处理 |