論文“Teaching Machines to Converse”閱讀筆記

李紀爲博士論文閱讀筆記

這是李紀爲大神的博士畢業論文,趁熱趕緊讀一讀,爲自己科研道路指明方向。論文的下載地址是他的github

1.1 背景知識介紹

對話系統的分類及方法:

  1. Chit-Chat-oriented Dialogue Systems: 閒聊型對話機器人,產生有意義且豐富的響應。
    1. Rule-based system:對話經過預定義的規則(關鍵詞、if-else、機器學習方法等)處理,然後執行相應的操作,產生回覆。(ELIZA系統,如果輸入語句中沒有發現預定義規則,則生成generic的響應)。缺點是規則的定義,系統越複雜規則也越多,而且其無法理解人類語言,也無法生成有意義的自然語言對話。處在比較淺層的階段;
    2. IR-based Systems:信息檢索或者最近鄰方法,要求生成的響應與對話存在語義相關性(VSM、TF-IDF、page-Rank、推薦等排序方法)。有點是比生成模型簡單,直接從訓練集中選擇答案,且可以添加自定義規則干預排序函數較爲靈活;缺點是無法應對自然語言的多變性、語境解構、連貫性等,對語義的細微差別也無法識別;
    3. Generation-based Systems:將對話視爲input-output mapping問題,提出了MT-based方法(SMT統計機器翻譯、IBM-model、phrase-based MT等),這種方法複雜且無法很好的解決輸入輸出的對應關係(尤其是當句子較複雜的時候,只適合單詞級別)。但是最近的NN、seq-to-seq等方法很好地解決了這些問題,可以生成更加豐富、有意義、特別的對話響應。但是還存在許多問題,比如沉悶的迴應、agent沒有一個固定的風格、多輪對話等等
  2. Frame-based Dialogue Systems:定義一個對話的框架,及其中所涉及的重要元素。優點是目標明確框架對對話指導意義明顯,適用於飛機票、餐館等預定領域。缺點是框架設計需要人工成本,且無法遷移到別的領域,並未涉及到人類語言的理解層面。
    1. Finite-State Machine Systems有限狀態機:(用戶使用預定義的模板提問,系統之響應能力範圍之內的問題),這種方法的缺點是完全依賴於對框架slot的填充,而無法決定對話的進程和狀態(用戶接受建議、拒絕等)
    2. State-based Systems:主要包含系統狀態(上下文信息、用戶意圖、對話進程等)和系統行動兩(基於state採取action)個部分。MDP、POMDP等模型。
  3. Question-Answering (QA) Based Dialogue Systems:factoid QA-based,個人助手,需要回答各種各樣的問題並且進行交互式對話。目前的研究點主要包括,bot如何通過對話進行自學習、對於out-of-vocab的詞彙應該學會問,即學會與人交流、如何通過在線反饋學習(犯錯時調整、正確時加強)

1.2 本文解決問題

本文主要關注於chit-chat和QA-based dialog system。

1.2.1 開放域對話生成 chit-chat

首先探討如何構建一個能夠與人類進行有趣,有意義,連貫,一致和長期對話的引人入勝的閒聊式對話系統。要求其擁有以下特性:

  • 避免dull沉悶的迴應,產生語義更加豐富的響應
  • 解決一致性問題,避免前後相應不一致
  • 可以進行長期多輪對話
  • 使用對抗學習生成人類無法區分的對話響應

爲了實現上述的功能和特點,主要會引入下面幾種技術和算法來解決相應的問題。

互信息-避免無聊的相應

目前神經網絡傾向於產生類似於“I don’t know”這種無聊的響應(dull response/generic response),不利於對話進行。因爲對於模型來講,“I don’t know”這種答案往往都是正確的,但是我們可以反過來思考這個問題,也就是將”I don’t know”作爲輸入進行訓練。因此可以使用Maximum Mutual Information (MMI)取代MLE作爲訓練的優化指標,事實證明這種方法可以大幅度提升模型響應的豐富度,減少dull response產生的頻率。這部分方法將會在第三章進行詳細的介紹。

解決Bot前後一致性問題

目前對話機器人無法產生前後一致性的對話,簡單說就是沒有一個固定的風格。所以要給bot一個連續的“角色”,這種角色可以當做是身份元素(事實背景、用戶簡介)、語言行爲、交互方式等的組合。作者基於Seq-to-Seq模型提出了兩種角色模型,一個是單bot的Spearker Model,另一個是雙bot的Spearker-Addressee Model。這部分內容可以參考第四章以及他在2016年發表在ACL的論文“ A persona-based neural conversation model”。

使用強化學習RL實現長期多輪對話

當前的Seq-to-Seq模型大都使用MLE作爲目標函數並根據一輪對話來產生響應,很難產生更長久的多輪對話,一般在兩輪之後就陷入重複。所以作者提出使用強化學習來最大化長期獎勵的期望來增加對話輪次。並建設性地提出了三種Reward公式,forward-looking、informative、coherent,最後使用policy gradient的方法進行訓練,取得了很好的效果。這部分內容會在第五章進行詳細介紹,或者參考其在2016年發表在EMNLP的文章“Deep Reinforcement Learning for Dialogue Generation”

使用對抗生成學習GAN產生對話

目前模型生成的對話大都來自於訓練數據集,這就一定程度上限制了產生相應的多樣性、豐富程度等。所以引入GAN來生成更接近於人類語言的響應。這裏使用一個Seq-to-Seq作爲生成器,在用一個鑑別器來標記生成的響應是人類語言還是機器生成語言,這樣Seq-to-Seq最終生成的響應會越來越接近人類語言。這部分內容會在第六章進行介紹,或者參考其在2017年發表在EMNLP上的文章“Adversarial learning for neural dialogue generation”。

1.2.2 交互式QA對話機器人

其次探討bot如何通過online學習完善自己,使得交互性更強。要求其可以:

  • 學會向人類提問,何時何處問什麼
  • 從online學習,根據錯誤改進自己

通過提問進行交互學習

因爲目前問答系統當遇到自己回答不了的問題時(沒見過的表達形式,自己不知道的東西等情況),往往會做出很差的迴應或者重定向到其他資源(展示搜索網頁的結果)。但我們更希望機器人在遇到這種問題時可以通過向對方提問的方式來進行交互式問答進而解決該問題。可以通過離線學習或者在線強化學習的方式進行訓練。這部分內容將會在第七章進行介紹,也可以參考其在2017年發表在ICLR上的論文“Learning through dialogue interactions by asking questions”。

Human-in-the-Loop的對話學習

目前的對話機器人大都使用固定的數據集提前訓練好之後就開始使用,但很多情況下我們需要機器人上線之後不斷地根據具體環境改善自己,也就是要進行在線學習,根據對方的反饋來不斷地調整自己。所以作者使用一個teacher-student的對話數據集並結合強化學習進行訓練。這部分工作將在第八章進行介紹,也可以參考其2017年發表在ICLR上的文章“Dialogue learning with human-in-the-loop”。

第二章 背景知識

這一部分主要介紹了論文中使用到的Seq-to-Seq模型、Memory Network模型、增強學習中的policy gradient方法這三塊內容。如果不熟悉的同學可以抽時間看一看,這裏因爲之前已經對Seq-to-Seq和MemNN兩部分有所掌握,所以主要看了一下policy network方面的知識,當做是背景知識補充。

強化學習中兩個主流的方法就是Q_learning和Policy Network,相比Q_learning,policy network不需要顯示的求解估值函數,而且對於連續動作和狀態空間的問題,也可以很好的解決,所以經常在NLP相關領域中得到廣泛應用。我們的樣本是一個個action-reward對,即每採取一個action都會有相應的reward。再給定一個state時,神經網絡會輸出一個action的概率分佈,我們的目標是最終獎勵的期望最大。如下圖所示,即取動作at的概率*其相應的獎勵r,然後再求和:

爲了實現期望最大,就要使用policy gradient的方法來求解和更新網絡參數Q。我們使用最大似然比(likelihood ratio)來估算J對Q的梯度,故有下式:

引入b的目的是爲了減少方差,原則上來講b可以是一個任意的標量,但一般會選擇所有觀測reward的均值或者另外一個神經網絡的輸出值作爲b的取值。如果想要深入瞭解這部分內容可以參考下面幾個資源:

1,Andrej Karpathy的博客:Deep Reinforcement Learning: Pong from Pixels

2,莫煩教程:TensorFlow實現policy network

3,知乎智能單元專欄的文章:深度增強學習之Policy Gradient方法1

第三章之後

本文從第三章開始就是分別介紹上面提到的幾個方向,也就是作者讀博三年發表的文章,進行分別的介紹,之後應該會分別進行閱讀,就不在這裏進行介紹了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章