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)在每一個時間步上產生的 輸入進入Context Generator得到Decoder(RNN)的輸出 ,接著經過一個 變換得到最終的response 。
在NRM中,L變換非常重要,因為它需要把post的features表現得盡量豐富,這樣才能得到更多的潛在responses。
Attention機制提出來之後經常被應用與Seq2seq的架構,因為它可以決定在生成過程中post的哪些部分更加重要。
Decoder
文章的Decoder採用了下面的架構
具體來說,產生的機制由下面的公式決定(參考上圖,虛線代表 ,實線代表 )
Encoder
文章考慮了三種不同的Encoder方案,分別稱之為:
- global scheme(NRM-glo)
- local scheme(NRM-loc)
- hybrid scheme combines the aforementioned 2(NRM-hyb)
Global Scheme: 如圖所示, ,並簡單地定義最後一個 為 。
Local Scheme: 利用AM機制,動態定義 ,而 ,可以看出這就是參考於論文Neural Machine Translation by Jointly Learning to Align and Translate。
Hybrid Scheme:這種方法基於這樣一種思想:NRM-loc能針對於不同的responses動態地選擇不同位置的單詞作為重要特徵, 而NRM-glo有catch post的全局特徵的能力,因而它們這是一種互補的關係。在Local Scheme上稍稍做一些改變,使得 , ,如圖所示
模型NRM-hyb訓練的時候利用了預學習好的NRM-loc和NRM-glo模型參數,再在此基礎上進行調參。三種模型再預測的時候採用了beam search演算法以產生多樣化的responses。
作者抓取了很多微博數據進行訓練,並與retrieval-based model以及SMT model進行對比,採用的是人工評測打分的方法。結果如圖所示
我們可以發現檢索式的方法效果和NRM-glo差不多,因為:
- 它基本使用的都是預定義的responses,不會有一些語法上的問題
- 匹配特徵保證了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:自然语言处理 |