1. 程式人生 > >基於強化學習的文字生成技術

基於強化學習的文字生成技術

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

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 TextGeneration_lshowway》

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

以下為三篇文章的主要資訊:

一、 《GeneratingText with Deep Reinforcement Learning》

1、作者:Hongyu Guo

2、單位:National Research Council Canada

3、關鍵詞:Reinforcement Learning、seq2seq、text generation

4、來源:NIPS2015 Workshop (2015.10.30)

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

6、模型:

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

           本文的模型如下:

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

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

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

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

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

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

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

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

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

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

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

 

           為了更好的提取句子的特徵,作者在decode階段使用了雙向LSTM。同時還在reinforcement learning中加入attention機制,可以達到先decode比較簡單的部分再處理困難部分的效果。

           最後在生成相似句子的實驗中得到了比只用LSTM decoder效果更好的結論:

 

7、related work

 

 

8、簡評

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

 

 

 

二、 《DeepReinforcement Learning for Dialogue Generation》

1、作者:Jiwei Li

2、單位:斯坦福

3、關鍵詞:Reinforcement Learning、seq2seq、text generation

4、來源:arXiv.org(2016.06.25)

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

6、模型:

           強化學習中的reward

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

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

 (3)

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

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

 

對比試驗:

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

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

Ÿ  


將互資訊訓練過的模型作為初始模型,用策略梯度更新引數並加入課程學習策略,最終最多限定五輪對話

7、related work

 

8、簡評

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

 

三、 HierarchicalReinforcement Learning for Adaptive Text Generation_lshowway

 

文章作者

德國不萊梅大學的Nina Dethlefs, Heriberto Cuay´ahuitl

 

文章來源和時間

2010年發表於國際自然語言生成會議INLG

 

關鍵詞

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

 

文章解決的問題

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

 

相關工作

1.             rule-based

2.             n-gram

3.             flat RL

 

文章思路

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

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

Content Selection:給不熟悉環境的使用者的導航要比熟悉環境的使用者的導航更細緻

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

Referring Expression Generation:一間房間可以叫“A203”,也可以叫“辦公室”或者“小白樓”

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之間的平衡(具體公式可見論文)。root以及使用第一種, 使用第二種(分層由此可見)。

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

 

資源

文章使用了用於抽取grammatical categories的詞性標註工具:http://nlp.stanford.edu/software/tagger.shtml

 

簡評

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

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

 

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

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

           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述