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