《Cut to the Chase: A Context Zoom-in Network for Reading Comprehension》阅读理解笔记
这篇文章是发表在2018年EMNLP上的,在Deepmind 发布的NarrativeQA数据集上得到了SOTA效果。
分以下五部分介绍:
- Dataset
- Motivation
- Model
- Experiment
- Discussion
因为之前没有了解过NarrativeQA 数据集,所以先简单介绍一下该数据集。
1、数据集
NarrativeQA 包含来自于书本和电影剧本的1567个完整故事,而不像SQuAD v1.0中只是段落。数据集划分为不重叠的训练、验证和测试三个部分,共有 46,765个问题答案对,问题由人类编写,并且多为“何时/何地/何人/为何”之类的较复杂问题。测试的是读者理解语言的能力,而不仅仅是模式匹配。
1、MCTest(2013年,Richardson等):660篇短文章,基于文章的2640个问题,回答在多个答案中进行选择,Deepmind认为,MCTest的局限性在于数量太小,因而更像一个评估测试,而不适合与一个端到端的模型训练。
2、如CNN/Daily Mail(93K+220K新闻文章,387K+997K问题)、CBT(从108本儿童读物中摘取的678K个20句左右的段落)、BookTest(14.2M个段落,类似CBT)等数据集均能够提供大量的答案-问题对,但是这些数据集的问题通常为完形填空(预测缺的词语),比如从摘要中前20句话作为PASSAGE,第21句话作为QUESTION,并且从中抽出一个单词作为ANSWER。
3、SQuAD包含从536个维基百科词条中抽取的23K个段落。虽然SQuAD提供了大量的问题和答案,答案也并非只是某个单词或者对于某个实体的回答,但由于这些段落缺乏完整的文章包含的跨度,很多更合理的阅读理解的问题无法被提问和解答。
此外,由于这些段落来自于较少的条目,这也限制了对这些数据训练中对于局部多样性和词法的效果,也限制了在SQuAD或者NewsQA等数据集中表现良好的模型回答更复杂问题的能力。
总体来说,DeepMind认为目前的阅读理解数据集均存在着一定的局限性,包括:数据集小、不自然、只需要一句话定位回答的必须信息,等等。因而 Deepmind提出了NarrativeQA 。
- 长度更长。
The summaries in NarrativeQA are 4-5 times longer than documents in the SQuAD dataset. - 答案不是逐字的,由专家给出完整的形式。
Answers are well-formed by human experts and are not verbatim in the story
2、Motivation
大部分的Models有以下问题:
- reasoning over long documents
- do not trivially generalize to cases where the answer is not present as a span 产生的答案都是来源文章中的span
- 没有办法对文章中需要好几个离散的span部分去组合答案
因此:
- 过滤掉不相关的文档部分,只使用相关的文档产生答案
- Moreover, our decoder combines span prediction and sequence generation. 使用PG-Net
3、Model
3.1 Co-attention layer
首先用预训练的词向量和字符向量,作为文档和问题当中的词的表示。再使用一个共享的双向GRU编码文档和问题,得到
d
i
d_i
di 和
q
j
q_j
qj 。然后使用BiDAF,得到
d
~
i
\widetilde d_i
d
i (是一个
l
d
l_d
ld * model维的向量)和
q
~
\widetilde q
q
(是一个model维的向量)。最后通过连接下式,得到query-aware contextual representation。
3.2 Context Zoom Layer
使用强化学习去得到相关的文章的部分。首先得到n个区域,每一个区域k,通过BI-GRU的最后一个时刻的连接得到
z
1
,
z
2
,
z
3
.
.
.
.
z
n
z_1, z_2, z_3....z_n
z1,z2,z3....zn,而后将self-attention后的
z
~
k
\widetilde z_k
z
k,经过一个全连接得到表示
u
u
u,然后Softmax,得到一个打分
f
a
i
fai
fai,从中选出前top-k的相关的块。
强化学习的策略被定义成:
f
a
i
r
fai_r
fair 是第r个相关的区域的概率,u 是第二个公式定义的环境状态。在训练的时候使用
f
a
i
fai
fai 采样,预测的时候通过贪心evaluation 选择最相关的部分 。
3.3 Answer Generation
这一部分是Encoder-Decoder框架
Encoder是使用3.2部分的被选择的相关区域作为输入。
将输入进行编码,一部分仍然使用Self-Attention,另一部分只是简单做一个全连接,然后两部分加起来经过BI-GRU得到Encoder的输出表示
e
i
e_i
ei.
Decoder是使用attention机制和PG-Net,既能够从词表生成,又能从源端复制。
在时间t时刻,使用attention分布、上下文向量以及当前词对应的词向量对下一时刻进行预测。attention分布计算如下:
h
t
h_t
ht 是Decoder的隐状态,gama_t 是一个词概率分布(相关的区域块),然后得到上下文表示。
利用上下文表示和隐状态进行一个线性计算,再sotfmax得到固定词表概率分布;
类似PG-Net,计算得到copy概率,其中
x
t
x_t
xt 表示词向量;
最终就能得到一个概率分布了:
3.4 Training
Co-attention, Context Zoom, and Answer Generation layers分别对应到 theta_a, theta_z, theta_g
其中
J
1
J_1
J1表示交叉熵的loss,
J
2
J_2
J2表示的是强化学习的reward,reward function用Rouge指标。最后一项是为了减少第二部分的高方差,b是平均奖赏,
R
i
R^i
Ri是每一次的奖赏[1]。
Experiment
Baseline
- (Seq2Seq, ASR, BiDAF)这几个模型以及the Multi-range Reasoning Unit (MRU) in Tayet al. (2018)[2] 作为比较模型。
- 另外还用Context Zoom layer实现了 (Baseline 1, Baseline 2) [3],在这两个Baselines中用answer generation layer替换了span prediction。第一个是用Seq2Seq的attention去预测答案,未使用copynet;第二个是和 our ConZNet architecture有点相似。
Result
- 可以看到两个Baselines的比较,说明了融合了ConzNet以及copy机制的答案生成效果好于(Seq2Seq, ASR, BiDAF)这几个模型。
- 另外随着句子的数量SS增加,效果退化,也说明了回答问题并不需要整片文档,只需要一些相关文档即可。
- 随着句子的减少,尤其到SS=1,效果急剧下降,说明了选择适当的句子数量是重要的。而且,和baseline2比较,模型提升了很多,说明在Context zoom layer中的self-attention去识别相关联的句子也是重要的。
[1] Wojciech Zaremba and Ilya Sutskever. 2015. Reinforcement learning neural turing machines. CoRR, abs/1505.00521.
[2] Yi Tay, Luu Anh Tuan, and Siu Cheung Hui. 2018. Multi-range reasoning for machine comprehension. CoRR, abs/1803.09074.
[3]Shuohang Wang, Mo Yu, Xiaoxiao Guo, Zhiguo Wang,Tim Klinger, Wei Zhang, Shiyu Chang, GeraldTesauro, Bowen Zhou, and Jing Jiang. 2018. R
ˆ
3
ˆ3
ˆ3:Reinforced reader-ranker for open-domain question answering.