KDD 2017 《ReasoNet: Learning to Stop Reading in Machine Comprehension》論文筆記

簡介

本文面向機器閱讀理解問題(Machine Reading Comprehension),作者來自微軟研究院。
下載鏈接

動機

現有的方法可以分爲兩類:單步推理(Single turn)、多步推理(multiple turns)。多步推理是由單步推理衍生而來,單步推理又可以看做是多步推理的特例(turn=1)。這兩種方法的共同點是,推理輪數固定,這不符合人類的閱讀行爲。人會根據當前是否得到了足夠的信息,決定中止閱讀或繼續閱讀。本文基於此動機,提出ReasoNet,可以動態決定推理輪數。

貢獻

  1. 將強化學習和多步推理結合,可動態終止推理過程。
  2. 實驗結果較好,是SOTA模型。

方法

本文方法的整體架構如下圖所示。按照原文的劃分,主要包括5個部分,下面一一介紹。

  • Memory
    是一個外部庫,M={mi}i=1...DM=\{m_i\}_{i=1...D},用於生成attention。
  • Attention
    通過隱狀態和外部庫,得到當前時間步的attention,xt=fatt(st,M;θx)x_t=f_{att}(s_t,M;\theta_x)
  • Internel State
    每個時間步的隱狀態,通過RNN得到,st+1=RNN(st,xt;θs)s_{t+1}=RNN(s_t,x_t;\theta_s)
  • Termination Gate
    終止門,用於判斷當前時間步是否終止,ttp(ftg(st;θtg))t_t \sim p(·|f_{tg}(s_t;\theta_{tg}))ttt_t是一個二值隨機變量,當它是true時,終止。
  • Answer
    tt=truet_t=true時,得到answer,atp(fa(st;θa))a_t \sim p(·|f_a(s_t;\theta_a))

整個Inference過程如算法1所示:

在模型的優化過程中,梯度計算公式爲:

上式中,bTb_T一般是預設的值bT=Eπ[rT]b_T=E_{\pi}[r_T],並根據bT=λbT+(1λ)bTb_T=\lambda b_T+(1-\lambda)b_T不斷更新,被稱作reward baseline(獎勵基線),用於在強化學習任務中降低方差。但是在本文中,作者發現,這麼做收斂很慢,因爲bTb_T不能捕獲dynamic termination behavior。作者將梯度計算公式改爲:

其中,bb的計算公式爲:

作者還說了,使用rTb1\frac{r_T}{b}-1代替rTbr_T-b能夠更快的收斂。

實驗

在兩個數據集上的實驗結果:

在CNN數據集上, termination step的分佈情況:

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