分享嘉賓:黃民烈 清華大學計算機系副教授,博士生導師
編輯整理:鄧力
內容來源:《Reinforcement Learning in Natural Language Processing》
出品社區:DataFun
註:歡迎轉載,轉載請註明出處。
本文首先介紹了強化學習的概念和相關知識,以及與監督學習的區別,然後就強化學習在自然語言處理應用中的挑戰和優勢進行了討論。
1. 強化學習
首先簡單介紹一下強化學習的概念。強化學習是一種與監督學習不一樣的學習範式,通過一個智能體與環境進行交互從而達到學習目標。其最重要的概念包括狀態(state),動作(action),回報(reward)。智能體接收到環境的狀態,對該狀態做出一個動作,環境根據該動作做出一個回報。
以走迷宮為例,state即為智能體所在的位置,action就是向東西南北移動的動作,當智能體到達目標位置則給100的獎勵,當走入死胡同則給-100的懲罰,每走一步給-1的懲罰(希望走的步數越少越好)。在該例子中,我們並沒有告訴這個智能體該怎麼做,只是當它做對了給它一個大的正分,當它做錯了給一個大的負分。
隨著深度學習的興起,我們可以將深度學習與強化學習進行結合從而對問題進行更好的建模。深度學習可以用來刻畫強化學習中的狀態,動作和策略函數。二者結合的方法在很多領域都有應用,如自動控制,語言交互,系統運維等等方面。
2. 強化學習與監督學習的區別
強化學習的特點:
1、序列決策,即當前決策影響後面的決策;
2、試錯,即不告訴智能體怎樣決策,讓其不斷試錯;
3、探索和開發,即探索一些低概率事件,開發是利用當前的最佳策略;
4、未來收益,即當前收益可能不是最佳的,對未來來講當前決策最佳。
監督學習就是給定一個樣本集合得到一個X到Y的映射。
以遊戲舉例,監督學習就會告訴智能體每一步應該怎麼做,是向左還是向右,但在強化學習中,並不會告訴智能體應該怎麼走,會讓智能體自己試錯,走得好就給一個大的獎賞,走得不好就給大的懲罰。
3. 強化學習在自然語言處理中的應用
挑戰
1、獎勵的稀疏性問題;
2、獎勵函數的設計;
3、動作空間維度高;
4、訓練中的方差較大。
優勢
1、適用於弱監督場景,問題中沒有顯性的標註;
2、不斷試錯調整,通過試錯進行概率的探索;
3、獎勵的積累,將專家系統或者先驗知識編碼進獎勵函數。
1)強化學習用於文本分類
(Learning Structured Representation for Text Classification via Reinforcement Learning)
如果做一個句子分類,首先要給句子做一個表示 ,經過sentence representation得到句子表示,把「表示」輸入分類器中,最終就會得到這個句子屬於哪一類。
傳統的sentence representation 有以下幾個經典模型:
1、bag-of-words;
2、CNN;
3、RNN;
4、加入注意力機制的方法。
以上幾種方法有一個共同的不足之處,完全沒有考慮句子的結構信息。所有就有第五種 tree-structured LSTM。
不過這種方法也有一定的不足,雖然用到了結構信息,但是用到的是需要預處理才能得到的語法樹結構。並且在不同的任務中可能都是同樣的結構,因為語法都是一樣的。
所以我們希望能夠學到和任務相關的結構,並且基於學到的結構給句子做表示,從而希望能得到更好的分類結構。但面臨的挑戰是我們並不知道什麼樣的結構對於這個任務是好的,我們並沒有一個結構標註能夠指導我們去學這個結構。但我們可以根據新的結構做出的分類結果好不好從而判斷這個結構好不好。
可以使用強化學習來對該問題進行建模,使用策略網絡來對文本從前往後掃描,得到action(刪除,切開)的序列,action的序列即為該文本的表示,利用該表示再輸入分類的網絡進行分類。在該應用中,強化學習的reward信號來自於文本分類的準確度。
第二種結構是層次的LSTM結構。
先把字符切開連接得到短語,層層往上,所以是一種層次化的結構,其中action是(Inside,End),狀態就是當前的詞與上一個詞的組合,獎勵就是當前類別的似然概率和結構化參數。
實驗數據和結果:
總結
這個工作中學習了跟任務相關的句子結構,基於句子機構得到了不同的句子表示,並且得到個更好的文本分類方法,提出了兩種不同的表示方法,ID-LSTM和HS-LSTM。這兩個表示也得到了很好的分類結果,得到了非常有意思的和任務相關的表示 。
2)強化學習用於從噪聲數據中進行關係抽取
(Reinforcement Learning for Relation Classification from Noisy Data)
任務背景
關係分類任務需要做的是,判斷實體之間是什麼關係,句子中包含的實體對兒是已知的。關係分類任務是強監督學習,需要人工對每一句話都做標註,因此之前的數據集比較小。
之前也有人提出Distant Supervision 方法,希望能利用已有資源對句子自動打上標籤,使得得到更大的數據集。但這種方法是基於已有知識圖譜中的實體關係來對一句話的實體關係進行預測,它的標註未必正確。
這篇文章就是用強化學習來解決這個問題。之前也有一些方法是基於multi-instance learning 的方法來做的。
這篇文章就是用強化學習來解決這個問題。之前也有一些方法是基於multi-instance learning的方法來做的。這樣做的局現性是不能很好處理句級預測。
基於以上不足,這篇文章中設定了新模型。包括兩個部分: Instance Selector和 Relation Calssifier。
這個模型有兩個挑戰,第一是不知道每句話的標註是否正確;第二個挑戰是怎麼將兩個部分合到一塊,讓它們互相影響。
在Instance Selector中的「狀態」就表示為,當前的句子是哪一句,之前選了哪些句子,以及當前句子包含的實體對兒。
Relation Classifier 是直接用了一個CNN的結構得到句子的表示。
實驗以及baseline:
提出一個新的模型,在有噪聲的情況下也能句子級別的關係分類,而不僅僅是bags級別的關係預測。
3)強化學習用在面向目標的主題分割與標記的弱監督方法
(A Weakly Supervised Method for Topic Segmentation and Labeling in Goal-oriented Dialogues via Reinforcement Learning)
任務背景
1、客戶服務對話經常出現在大型Web服務中;
2、主題分割和標記是一種粗粒度的意圖分析,是對話理解的關鍵步驟;
3、對話結構分析是面向目標對話系統中的一項重要任務。
將上圖中的對話數據自動切開並打上標籤就是我們的具體問題。
基於先驗知識對數據進行粗略的打標籤,對打好的標籤數據訓練一個策略,根據該策略自動的糾正標籤,再用糾正後的標註數據訓練策略,這樣不斷的對數據進行糾正。
訓練一個狀態表示網絡用於狀態的表示,基於狀態表示網絡訓練一個策略網絡。
利用話題的連續性和全局主題結構作為獎勵策略。
實驗結果:
總結
1、從有噪聲標籤的數據開始(避免昂貴的完整標註);
2、不刪除有噪聲的數據,而是使用強化學習對噪聲數據標籤進行糾正;
3、弱監督:我們需要的只是一組關鍵詞和一些先驗知識。
4. 強化學習在NLP中成功應用的關鍵
1、把一個任務描述成一個自然的順序決策問題,其中當前的決定影響未來的決定;
2、當你沒有充分的、強有力的監督時,記住試錯的本質;
3、將任務的專業知識或先驗知識編碼進獎勵中;
4、適用於許多薄弱的監控環境。