基於強化學習的文字生成技術
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!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三位同學的整理。