PaperWeekly第四期------基於強化學習的文本生成技術

2013年以來Deep mind團隊相繼在NIPS和Natures上發表了用深度增強(強化)學習玩Atari遊戲,並取得良好的效果,隨後Alpha go與李世乭的一戰更使得深度增強學習家喻戶曉。在遊戲上取得了不錯的成果後,深度增強學習也逐漸被引入NLP領域。本期介紹目前NLP領域較為熱點的研究方向,基於強化學習的文本生成技術(NLG),共選擇了三篇文章,分別為:

(1)《Generating Text with Deep Reinforcement Learning》

應用Deep Q-Network作為生成模型用於改善seq2seq模型

(2) 《Deep Reinforcement Learning for Dialogue Generation》

應用強化學習進行開放領域的文本生成任務,並對比了有監督的seq2seq加attention模型和基於最大互信息的模型

(3)《Hierarchical Reinforcement Learning for Adaptive Text Generation_lshowway》

以任務為導向的戶內導航對話系統用分層強化學習進行文本生成

以下為三篇文章的主要信息:

Generating Text with Deep Reinforcement Learning

作者

Hongyu Guo

單位

National Research Council Canada

關鍵詞

Reinforcement Learning、Seq2Seq、Text Generation

來源

NIPS2015 Workshop (2015.10.30)

問題

本文提出將Deep Q-Network作為生成模型用於改善seq2seq模型,將decoding修改為迭代式的過程,實驗表明本模型具有更好的泛化性。

模型

對seq2seq模型改進的論文層出不窮,本文率先引入深度強化學習的思想,將DQN用於文本生成。對DQN還不了解的同學可以先閱讀DeepMind的論文Playing Atari with Deep Reinforcement Learning。本文的模型如下:

如同一般的神經網路,我們也可以把DQN當做一個黑盒來使用。只需要準備好DQN需要的四個元素s(i),a(i),r(i),s(i+1),分別代表i時刻下state,action,reword和i+1時刻的state。

對照上圖我們把演算法解剖分為4個步驟:

Step 1: 先是傳統的seq2seq模型。通過LSTM先把輸入序列encode為一個定長向量EnSen(i),然後作為decode階段的初始狀態依次生成新的序列DeSen(i)(decoding search使用beam search演算法來 expand next words)。經過第一步我們得到初始state:(EnSen(i), DeSen(i))和action集合:每個位置的hypotheses。

Step 2: 接下來從hypotheses(actions)中選擇一個可以獲得最大reward的單詞(action)作為該位置新生成的詞,用新單詞來代替之前的舊詞,於是生成新的state:(EnSen(i), DeSen(i+1))。

Step 3: 接著就是標準的DQN的部分,計算Loss函數並對其應用梯度下降。

Step 4: 回到Step 2,對得到的state繼續迭代,每一次迭代都只生成一個新詞來代替舊詞,直到迭代次數達到設好的值(作者將次數定為句子長度的兩倍,同學們可以思考一下理由)。

總結DQN所需的四個元素對應如下:

(1) i時刻下的state:(EnSen(i), DeSen(i));

(2) i時刻下的action:beam search得到的每個位置的hypotheses;

(3) i時刻下的reword:target sentence和DeSen(i+1)的相似度(BLEU score);

(4) i+1時刻下的state:(EnSen(i), DeSen(i+1));

為了更好的提取句子的特徵,作者在decode階段使用了雙向LSTM。同時還在reinforcement learning中加入attention機制,可以達到先decode比較簡單的部分再處理困難部分的效果。最後在生成相似句子的實驗中得到了比只用LSTM decoder效果更好的結論:

相關工作

簡評

本文的思想其實非常符合寫作的一種情況,就像賈島推敲的故事,回想小時候剛學習寫句子時,也不能一次寫好,總會不斷對一些詞語進行修改。Google DeepMind的文章《DRAW:A Recurrent Neural Network For Image》也和本文異曲同工:畫畫也不是一次畫好,也要不斷的完善。不同之處在於本文率先引入DQN做文本生成。在機器學習各個分支下,強化學習和人類與環境的交互方式非常相似,在許多領域開始初露頭角,期待看到更多將強化學習結合語言模型的應用。

Deep Reinforcement Learning for Dialogue Generation

作者

Jiwei Li, Will Monroe, Alan Ritter, Michel Galley, Jianfeng Gao, Dan Jurafsky

單位

(1) Stanford University, Stanford, CA, USA

(2) Microsoft Research, Redmond, WA, USA

(3) Ohio State University, OH, USA

關鍵詞

Reinforcement Learning、Seq2Seq、Text Generation

來源

arXiv.org(2016.06.25)

問題

本文提出利用強化學習進行開放領域的文本生成任務,並對比了有監督的seq2seq加attention模型和基於最大互信息的模型

模型

強化學習中的reward

易被響應(Ease of answering),不容易出現對話僵局,其中 S 是無意義回答合集,s是某一時刻的響應

信息流,若開闢新的話題,有利於對話的繼續發展,隱層表示 hpi 和 hpi+1 的夾角餘弦

語義連貫性,減少與對話無關問題的影響,其中,pseq2seq(a|pi,qi) 是由上一輪狀態得到響應的概率,後一項是由當前產生響應通過網路生成之前的 qi 的概率。

最終的reward是對三者加權求和,係數分別為:0.25、0.25、0.5.

對比試驗:

(1) 對話初始狀態為一個SEQ2SEQ加attention的模型作為強化學習的初始狀態。

(2) 在前面的基礎上將最大互信息加入其中作為reward,對於一個給定的輸入[pi,qi],可以根據模型生成一個候選回答集合A。對於A中的每一個回答a,從預訓練模型中得到的概率分布上可以計算出互信息的值 m(a,[pi,qi])。

(3) 將互信息訓練過的模型作為初始模型,用策略梯度更新參數並加入課程學習策略,最終最多限定五輪對話。

相關工作

簡評

本文作者提出了一個強化學習框架,模擬兩個agent讓其自動對話訓練神經網路SEQ2SEQ模型,將Encoder-Decoder模型和強化學習整合,從而能保證使對話輪數增加。文中使用的模型非常簡潔,reward函數定義清晰,評價指標也較為科學,可以生成信息更為豐富、易於響應的對話系統。

Hierarchical Reinforcement Learning for Adaptive Text Generation

作者

Nina Dethlefs, Heriberto Cuay′ahuitl

單位

University of Bremen, Germany

關鍵詞

NLG, 分層強化學習, 文本生成, wayfinding

來源

國際自然語言生成會議INLG(2010)

問題

在wayfinding(戶內導航對話系統)領域利用分層強化學習進行文本生成。該方法的目標是對wayfinding的NLG任務整合進行優化,並在模擬系統中驗證該方法的有效性。

模型

本文任務在wayfinding中的NLG任務有多個,且各個任務之間並非獨立。從而提出應該根據用戶類型,導航距離, 環境條件等作出不同的導航策略,介紹了分層強化學習。

文章將戶內導航對話系統的文本生成問題分為四塊:

(1) Content Selection:給不熟悉環境的用戶的導航要比熟悉環境的用戶的導航更細緻

(2) Text Structure:根據導航距離以及用戶熟悉環境程度給予不同類型的導航,如大白話的,以fisrt, second…表達或者示意性的。

(3) Referring Expression Generation:一間房間可以叫「A203」,也可以叫「辦公室」或者「小白樓」

(4) Surface Realisation:往前走可以用「go」也可以用「walk」等。

強化學習示意圖如下,分層強化學習的思想與強化學習類似,但在強化學習的基礎上加上層次,不同層次的模型處理不同層次的問題。

agent根據當前狀態,執行動作a與環境交互,之後環境產生一個新的狀態s並返回給agent一個獎賞r(可正可負),強化學習的目標函數便是使agent獲得獎賞r最大。

分層增強學習包含L個層,每層N個模型,如Figure 1是有15個agents的hierarchy,其中不同的agent負責不同的層次。

每個agent定義為半馬爾科夫決策過程,可以表示成一個四元組

分別為狀態集,動作集,轉換函數,獎勵函數。

獎勵函數表示agent在時間t狀態s是執行動作a轉換到新的狀態s』所獲得的獎勵。半馬爾科夫的目標是找到policy π*,

使得在從當前狀態轉換到新的狀態獲得的累計獎勵最多。

本文使用兩種獎勵函數,一種著重在 interaction length, 另一種著重在alignment and variation之間的平衡(具體公式可見論文)。

本文是在模擬環境中進行試驗,其中模擬環境包括user type(熟悉環境,不熟悉環境), information need(高,低),length of the current route(短,中長,長),next action to perform(轉,直走),current focus of attention(繼續走,關註標識)。baseline為為部分agent隨機選擇action,即不考慮用戶類型,導航距離等因素。經與baseline比較,效果較好。

資源

詞性標註工具:The Stanford Natural Language Processing Group

簡評

將來的工作:將分層強化學習應用於其他NLG任務

不足之處:實驗是在模擬環境下進行的,未來應該在真實環境進行評估。

總結

這三篇文章皆是強化學習在NLP領域的應用,第一篇主要側重點在於應用DQN進行文本生成,並用BLUE指標進行評價,對比傳統的LSTM-decoder和加入DQN之後的結果;第二篇文章側重點在於虛擬兩個Agent,在傳統Seq2Seq的基礎上加入強化學習從而使得聊天能夠持續下去;第三篇文章側重點在於任務驅動的對話系統應用分層強化學習,針對不同情況進行分層處理。

以上為本期Paperweekly的主要內容,感謝lshowway、美好時光海苔、Tonya三位同學的整理。

廣告時間

PaperWeekly是一個分享知識和交流學問的民間組織,關注的領域是NLP的各個方向。如果你也經常讀paper,也喜歡分享知識,也喜歡和大家一起討論和學習的話,請速速來加入我們吧。

微信公眾號:PaperWeekly

weixin.qq.com/r/OUW0rA3 (二維碼自動識別)

微博賬號:PaperWeekly(PaperWeekly的微博 )

知乎專欄:PaperWeekly(PaperWeekly - 知乎專欄 )

微信交流群:微信+ zhangjun168305(請備註:加群 or 加入paperweekly)


推薦閱讀:

CCL2016
練習-word2vec

TAG:自然语言处理 | 深度学习DeepLearning | 机器学习 |