Multiresolution Recurrent Neural Networks: An Application to...

昨天介紹了一篇工程性比較強的paper,關於對話生成(bot)任務的,今天繼續分享一篇bot方面的paper,6月2日剛剛submit在arxiv上。昨天的文章用了一種最最簡單的端到端模型來生成對話,取得了不錯的結果,而本文用了一種更加複雜的模型來解決這個問題,取得了更好的結果。文章的題目是Multiresolution Recurrent Neural Networks: An Application to Dialogue Response Generation,作者是來自蒙特利爾大學的博士生Iulian Vlad Serban。


本文最大的貢獻在於提出了一種多尺度循環神經網絡(Multiresolution RNN,MrRNN),這裏的多尺度是指描述文本序列的方式有多種尺度,不僅僅是傳統的用一個又一個word來表示序列,這種表示稱爲自然語言表示,還包括了一種所謂的high-level信息來表示文本序列,這種表示稱爲粗糙序列表示。本文的模型受啓發於分層循環端到端模型(Hierarchical Recurrent Encoder-Decoder,HERD),該模型應用於搜索領域,將用戶的search session劃分爲兩個層次的序列,一個是query的序列,一個是每個query中詞的序列。


本文模型中一個非常重要的部分是數據的預處理,將訓練數據中的所謂high-level信息提取出來構造第二種序列來表示整個文本,這裏用了兩種思路。


1、提取文本中的名詞。用詞性標註工具提取出文本中的名詞,去掉停用詞和重複的詞,並且保持原始的詞序,還添加了句子的時態。通過這個過程構造了一種表示原始文本的序列。


2、提取文本中的動詞和命名實體。用詞性標註工具提取文本中的動詞,並標記爲activity,然後通過一些其他工具從所有訓練數據中構造了一個命名實體的詞典,幫助提取原句中的命名實體。因爲數據集是ubuntu對話數據集,會涉及到大量的linux命令,所以還構造了一個linux命令詞典,以標記原句中的命令。同樣地也添加了句子的時態。通過這個處理過程,構造了另外一種表示原始文本的序列。


兩種處理方法將原句用一種關鍵詞的形式表示出來,尤其是第二種方法針對Ubuntu數據集的特點,包含了非常多的特徵進來。這樣的表示本文稱爲coarse sequence representation,包含了high-level的信息,比起單純的word by word sequence具有更加豐富的意義。


接下來,看一下本文模型的架構圖:


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


模型中包括了兩個層次,或者說是兩種尺度,一種用了很多的詞來表示一個句子,另外一種用了經過處理的包含了更加重要的信息的詞來表示一個句子。下層生成的預測值將會作爲上層docoder在做預測時的context的一部分,這部分context包含了重要的、high-level的信息,再加上上層自己encoder的輸出也作爲context,可以說這個模型的context包含了非常豐富的內容。理解上面的圖,只要仔細看好箭頭的指向,也就明白了各個部分的輸入輸出是哪些。每個time step的數據流過程如下:


下層:coarse encoder -> coarse context -> coarse decdoer -> coarse predciton encoder


上層:natural language encoder -> (natural language context + coarse prediction encoder) -> natural language decoder -> natural language prediction


不管是用自動評價指標還是人工評價,結果都表明了本文的模型效果比baseline要高出很多個百分點,遠遠好於其他模型。下面展示一個結果,是ubuntu數據集上的測試效果:


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


可以看的出本文模型生成的結果效果比其他模型好很多。


本文模型並不是一個純粹的數據驅動的模型,在初始的階段需要做一些非常重要的數據預處理,正是這個預處理得到的序列表示給本文的好結果帶來了保證。我想,這種處理問題的思路可以推廣到解決其他問題上,雖然本文模型很難直接應用到其他問題上,但我相信經過一些不大的變化之後,可以很好地解決其他問題,比如我一直關注的自動文摘問題,還有機器翻譯、自動問答等等各種涉及到自然語言生成問題的任務上。這篇文章的結果也支持了我之前的一個觀點,就是在解決問題上不可能存在銀彈,不同的問題雖然可以經過一些假設變成相同的數學問題,但真正在應用中,不同的問題就是具有不同的特點,如果只是想用一種簡單粗暴的data driven模型來解決問題的話,相信效果會不如結合着一些該問題feature的模型。



來源:paperweekly


原文鏈接