短文對話的神經反應機 -- Neural Responding Machine for Short-Text Conversation學習筆記


 

 

  最近學習了一篇ACL會議上的文章,講的是做一個短文對話的神經反映機,

  原文:

  會議:ACL(2015)

  文章條目:    Lifeng Shang, Zhengdong Lu, Hang Li:

  Neural Responding Machine for Short-Text Conversation. 1577-1586

  寫下學習筆記:

  

  拓展:Attention Model 注意力模型,本文中提到所采用的Encoder-Decoder框架。

  

  可以把它看作適合處理由一個句子(或篇章)生成另外一個句子(或篇章)的通用處理模型。

    X表示輸出的句子,Y表示輸出的句子。

  Encoder對輸入句子進行編碼,轉化成中間語義表示

  Decoder對中間語義及已經生成的歷史信息y1,y2,…生成i時刻要生成的單詞yi,很多個yi串起來就形成了Y,即輸出的句子。

  

  其中編碼和解碼都有很多可用的神經網絡模型,如CNN/RNN/LSTM/深度LSTM等等,有很多種組合可以嘗試。在文本處理中比較常見的Endocer和Decoder都采用RNN模型。

  

  而本文也采用了seq2seq(Sequence to Sequence)模型,該模型可以運用在很多地方,比如說文章自動摘要、機器翻譯、人機對話等等。(其實就是一個Encoder和Decoder模型,然后Encoder和Decoder用的都是RNN中的GRU網絡)。因此本文中的Encoder-Decoder模型本質上來說應該是這樣的:

  

  Short-Text Conversation(STC)指的是單輪對話任務——也就是對於每一個輸入post給出一個對應的response。以往的STC方法主要有兩種:檢索式的方法(retrieval-based method)和統計機器翻譯(statistical machine learning, SMT)。但是檢索式的事先都固定好了,太缺乏多樣性,而統計機器翻譯將它作為一個翻譯任務,而有時候post和respond是完全沒有一點語義關系的。

  

  本文采取通用的Encoder-Decoder模型,同時利用了seq2seq模型,在編碼和解碼的過程中都用的是循環神經網絡CNN中的GRU(沒有用LSTM是因為LSTM的參數太多,用GRU相對簡單一些並且效果還不錯),並設計了一個基於神經網絡的短文對話響應機NRM(相當於機器對話),訓練數據是通過微博收集的大量一輪的對話。

  

  首先獲取數據,遵從經典的步驟,首先是刪除無意義詞如”wow”;篩除廣告;只留前30個人的回復。

  

  接下來轉化的模型:

  

  

  主要是這個L很重要,要能夠表示輸入句子的特性,這里要用到注意力模型確定h中的哪一步分需要着重考慮。由輸入數據和y1,y2,…yi-1決定。

  

  解碼用到下面的模型:

  

 

  虛線代表 g(.) ,實線代表 f(.)

   

  

  編碼方案提出了三種:

  global scheme(NRM-glo):

 簡單定義       hT 為Ct

  local scheme(NRM-loc):

      這里用到了注意力模型(AM模型),動態決定 ,而

 

  hybrid scheme combines the aforementioned 2(NRM-hyb):

  

  第一種全局的方法能抓住post的全局特征,而第二種局部的方法能倚靠AM模型選擇不同位置的單詞作為重要特征,因此第三種方法可以混合一下前兩種方法。模型如下:

  

  實驗證明檢索式的方法效果和NRM-glo差不多,因為它基本使用的都是預定義的responses,不會有一些語法上的問題,同時匹配特征保證了responses和post的相關性,

因此從表面上看來這是最合適的回答,但是實際上它只是重復了post說的內容而已,而NRM-hyb結合了global和local的優點之后,performance明顯好於其他方法。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM