KDD 2017 《ReasoNet: Learning to Stop Reading in Machine Comprehension》论文笔记
目錄
- 簡介
- 動機
- 貢獻
- 方法
- 實驗
簡介
本文面向機器閱讀理解問題(Machine Reading Comprehension),作者來自微軟研究院。
下載鏈接
動機
現有的方法可以分為兩類:單步推理(Single turn)、多步推理(multiple turns)。多步推理是由單步推理衍生而來,單步推理又可以看做是多步推理的特例(turn=1)。這兩種方法的共同點是,推理輪數固定,這不符合人類的閱讀行為。人會根據當前是否得到了足夠的信息,決定中止閱讀或繼續閱讀。本文基于此動機,提出ReasoNet,可以動態決定推理輪數。
貢獻
方法
本文方法的整體架構如下圖所示。按照原文的劃分,主要包括5個部分,下面一一介紹。
- Memory
是一個外部庫,M={mi}i=1...DM=\{m_i\}_{i=1...D}M={mi?}i=1...D?,用于生成attention。 - Attention
通過隱狀態和外部庫,得到當前時間步的attention,xt=fatt(st,M;θx)x_t=f_{att}(s_t,M;\theta_x)xt?=fatt?(st?,M;θx?) - Internel State
每個時間步的隱狀態,通過RNN得到,st+1=RNN(st,xt;θs)s_{t+1}=RNN(s_t,x_t;\theta_s)st+1?=RNN(st?,xt?;θs?) - Termination Gate
終止門,用于判斷當前時間步是否終止,tt~p(?∣ftg(st;θtg))t_t \sim p(·|f_{tg}(s_t;\theta_{tg}))tt?~p(?∣ftg?(st?;θtg?)),ttt_ttt?是一個二值隨機變量,當它是true時,終止。 - Answer
當tt=truet_t=truett?=true時,得到answer,at~p(?∣fa(st;θa))a_t \sim p(·|f_a(s_t;\theta_a))at?~p(?∣fa?(st?;θa?))
整個Inference過程如算法1所示:
在模型的優化過程中,梯度計算公式為:
上式中,bTb_TbT?一般是預設的值bT=Eπ[rT]b_T=E_{\pi}[r_T]bT?=Eπ?[rT?],并根據bT=λbT+(1?λ)bTb_T=\lambda b_T+(1-\lambda)b_TbT?=λbT?+(1?λ)bT?不斷更新,被稱作reward baseline(獎勵基線),用于在強化學習任務中降低方差。但是在本文中,作者發現,這么做收斂很慢,因為bTb_TbT?不能捕獲dynamic termination behavior。作者將梯度計算公式改為:
其中,bbb的計算公式為:
作者還說了,使用rTb?1\frac{r_T}{b}-1brT???1代替rT?br_T-brT??b能夠更快的收斂。
實驗
在兩個數據集上的實驗結果:
在CNN數據集上, termination step的分布情況:
總結
以上是生活随笔為你收集整理的KDD 2017 《ReasoNet: Learning to Stop Reading in Machine Comprehension》论文笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ECCV 2020 DETR:《End-
- 下一篇: 2020-07-01 CVPR2020