文献列表:
- A Deep Cascade Model for Multi-Document Reading Comprehension (AAAI 2019)
- Answering Complex Open-domain Questions Through Iterative Query Generation (EMNLP 2019) 作者代码实现
- Latent Retrieval for Weakly Supervised Open Domain Question Answering (ACL 2019)
- Learning to Retrieve Reasoning Paths Over Wikipedia Graph For Question Answering (ICLR 2020) 作者代码实现
1. 前言
相比于传统机器阅读理解(MRC),开放域文本问答(OpenQA)在给定问题的同时,不提供单篇段落或者文档,而是需要在文档集合或者整个web中寻找答案。因此,OpenQA需要先根据问题检索出相关文档,然后聚焦到段落,再阅读给出答案,最近研究又在候选答案上排序,从而进一步精化答案。此外,针对复合、复杂问题,在检索阅读的过程中,可能需要多步推理,根据桥接信息去寻找最终答案。
目前主流的做法有两种:
- 流水线pipeline:检索、阅读、候选答案排序等各模块独立划分明显,一般各模块需要单独设计、处理
- 端到端:各模块融合在整个神经网络中,统一训练(中间会有特别设计的训练策略)
下面主要是列表中文献的笔记,没有严格按照论文编排写,有些地方理解得也不一定对,欢迎指出讨论。
2. 笔记整理
2.1 A Deep Cascade Model for Multi-Document Reading Comprehension
要解决的问题:在线问答系统有两个关键属性,有效性和效率,有效性反映在MRC上,效率则反映在前期检索阶段。通俗地说,检索要快,阅读要准。当前工作很难在一个端到端网络里优化两者。
本文提出的解决方案:提出了一种级联学习模型(Cascade learning),从document-level到paragraph-level,再精缩到span extraction,一共三个模块。考虑到效率,给定一个问题,无关的文档和段落会快速排除,然后【在剩余文本上联合训练三个模块】,分布对应文档提取,段落提取和答案提取三个任务。
模型细节:
模型在输入上还是先作了粗过滤,然后将剩下的候选文档集输入到attention-based MRC model里,除了抽取式MRC特定任务span extraction,本文将document extraction和paragraph extraction作为辅助任务一并训练。
具体来说,首先用传统的IR方法(BM25 or TF-IDF)依据问题来对整个文档集进行rank,此外,来自文档元数据的疑问词的召回率被用作指示文档的相关性的另一特征。采用了二分类任务和pointwise logistic regression作为排名函数设计模型快速筛选top-K个文档。其中正例为包含答案的文档。由于一个文档包含多个自然段,接下来要剔除不相干段落。同样对于没有任何word match或entity match的段落首先剔除。此外,考虑到文档结构,首段、末段、段长等特征也加入段落排序中。为了更好地组合各种特征,采用XGBoost作排序,最终在每个文档选出top-N个段落。其中正例为包含答案的段落。
在进行了上述过滤之后,将所有的段落放入一个MRC model中。只不过相比于传统的word-level answer prediction,本文从充分利用文档和段落信息角度出发,设计document extraction和paragraph extraction作为辅助任务,三个任务共享底层编码,搜索空间从粗到细,这有助于更好地定位最终答案范围。 最终答案预测基于所有三个任务的结果,并通过联合学习方法进行联合优化。
细节上,本文采用传统的“积木”模型:
1)编码:双向LSTM将word embedding和char embedding编码
2)交互注意力:基本操作,得到question-aware document representation
3)融合:原始文档表示和注意力向量作gated fusion,这个地方文章未细说,感觉可以是拼接+sigmoid作门,然后highway:
4)自注意力:也是标配,没什么好说的
5)对于问题,采用自注意力池化为一个向量: