CHANGLOGgit
- 4/10/2020,展开背景介绍和方法、优化内容组织。
前言github
2019年底的时候在工做中开始尝试使用机器阅读理解作信息抽取,经过调研发现多答案抽取领域一直鲜有人问津。不过伴随DROP的横空出世,也出现了2篇关于multi-span extraction的研究,在此分享下调研成果。web
目录算法
- 背景介绍
- 任务定义
- 方法
- 总结
1. 背景介绍
机器阅读理解(Machine Reading Comprehension,MRC)因其开放性和交互性已成为NLP领域煊赫一时的方向,头部企业及高校如Google、Facebook、斯坦福等纷纷下场厮杀,在众多相关比赛如SQuAD上达到或超越人类水平。架构


尽管如此,现有的MRC处理现实场景下的QA问题依旧能力不足。缘由有三:性能
- 现有的方法大多基于天然语言模型将问题和文档直接结合起来做为模型的输入,但因为模型一次能接受的文字输入长度有限,这么作每每会形成模型聚焦于从短段落中提取答案,而不是经过阅读整个内容页面找到合适的上下文,最后致使预测的答案并不可以很好的反映问题。
- 现有的中文机器阅读理解模型大多假设文档中必定有能回答问题的答案,而没有考虑如何处理无答案问题的状况,这样会致使模型的预测有所误差。
- 现有的机器阅读理解模型大多假设文档中最多只有一个答案能回答问题,而没有考虑如何处理有多个答案问题的状况,这样会致使模型的预测结果有所遗漏。
MRC在业务场景上应用的难点主要有4点:优化
- 在垂直领域MRC标注数据较少的条件下,如何尽量的提升模型效果。
- 在篇章长度不肯定的状况下,如何设计通用的分段策略以下降错误预测答案的整体风险。
- 如何回答在文档中没有答案的问题。
- 如何回答在文档中有多个答案的问题。
不久前,新一代QA比赛DROP吸引了众多目光,其要求模型对上下文段落进行离散推理获得不一样类型的最终答案。ui
2. 任务定义
机器阅读理解(Machine Reading Comprehension, MRC)任务主要是指让机器根据给定的文本回答与文本相关的问题,以此来衡量机器对天然语言的理解能力。spa
研究[1]概括了四种广义的机器阅读理解任务:设计
- 完形填空
- 定义:给定文章
,将其中的一个词或者实体
隐去做为待填空的问题,完形填空任务要求经过最大化条件几率
来利用正确的词或实体
进行填空。
- 数据集:CNN & Daily Mail、CBT、LAMBADA、Who-did-What、CLOTH、CliCR
- 多项选择
- 定义:给定文章
、问题
和一系列候选答案集合,多项选择任务经过最大化条件几率来从候选答案集合
中挑选出正确答案回答问题
。
- 数据集:MCTest、RACE
- 片断抽取
- 定义:给定文章
(其中包含 n 个词)和问题
,片断抽取任务经过最大化条件几率
来从文章中抽取连续的子序列做为问题的正确答案。
- 数据集:SQuAD、NewsQA、TriviaQA、DuoRC
- 自由做答
- 定义:给定文章
和问题
,自由做答的正确答案
有时可能不是文章
的子序列,即
或
。自由做答任务经过最大化条件几率
来预测回答问题
的正确答案
。
- 数据集:bAbI、MS MARCO、SearchQA、NarrativeQA、DuReader
本文介绍的方法主要解决的是片断抽取任务中的多答案问题。
3. 方法
3.1 A Multi-Type Multi-Span Network for Reading Comprehension that Requires Discrete Reasoning (Hu et al., 2019)[2]
这篇文章是第一篇研究Multi-span extraction的paper。
3.1.1 模型


本文经过增长一个预测answer span的数目的分类子任务,结合non-maximum suppression (NMS) 算法,获得置信度最高且互不重叠的 个answer span。
具体思路以下图:


3.1.2 实验
- Performance breakdown


如上图所示,MTMSN与只能找到单个answer span的baseline NABERT相比,在mutli span类型的问题上的F1提高了超过40个点,EM也有超过25个点的提高,几乎是从0到1的重大突破。
- Effect of maximum number of spans
为了肯定span数目分类子任务的最优类别数,做者在DROP的dev数据上调参,结果代表,将span数目建模成8分类任务的效果最佳。


3.1.3 利弊
- 优势
- 继承并扩展了当前主流阅读理解模型的思路,更易于实现
- 缺点
- 引入了一个额外的span数目预测子任务,可能会形成更大的传递偏差
3.2 Tag-based Multi-Span Extraction in Reading Comprehension (Efrat et al., 2019) [3]
本文富有创意地的结合了MRC和NER两种任务的思路处理多答案抽取,后续DROP的top solution大多延续了本文的思路。
3.2.1 多答案抽取基本思路
和single-span MRC的pointer network方法不一样,本文将multi-span问题转化成序列标注任务。具体而言,对于:
- 预处理
对于multi-span answer span集合,使用BIO格式对输入文本序列打上标签, 其中用B标记answer span的开始,answer span标记片断的中间,O标记不属于答案片断的token。
- 模型结构
设计多输出head结构进行multi-task learning,E.g. answer type head + single-span head + multi-span head。
- 训练
优化全部输出head子任务的联合loss。
- 预测
有以下3种方法能够找到最可能的答案序列:
- Viterbi Decoding,NER的经典解码方法。优势是基于几率转移矩阵,能找到全局最优序列,缺点是计算代价高昂。
- Beam Search(文中采纳),保留top-k个预测结果,去除掉错误的序列。优势是在性能和精度之间取得了平衡,缺点是可能只找到局部最优。关于Beam Search技术,能够参考文章:十分钟读懂Beam Search 1:基础 @不刷知乎
- Greedy Tagging,直接拼接每一个token上的预测标签做为最终的预测结果序列。优势是计算代价最小,缺点是容易陷入局部最优。
3.2.2 实验


如上图所示,Tag-based Multi-Span Extraction与MTMSN相比,在mutli span类型的问题上的F1提高了超过15个点,EM也有超过31个点的提高,提高巨大。
3.2.3 利弊
- 优势
- 利用序列标注任务的特性,一个任务同时考虑预测答案及答案数目
- 缺点
- 可能会预测出过多的答案
4. 总结
在以往的机器阅读理解方案中,用户每每被要求将一个可能包含多答案的问题拆分红多个单答案问题,就实际使用体验而言确实谈不上好。而今,随着NLP技术的不断突破,学术界的目光也开始投向multi-span extraction的方向,这无疑是机器阅读理解技术落地的一大福音。
博主写文不易,若是以为本文有所帮助请点个赞^_^,更多精彩内容欢迎关注公众号【AI充电站】。
参考
- ^Liu, Shanshan, et al. "Neural Machine Reading Comprehension: Methods and Trends."Applied Sciences9.18 (2019): 3698. https://arxiv.org/abs/1907.01118
- ^Hu, Minghao, et al. "A Multi-Type Multi-Span Network for Reading Comprehension that Requires Discrete Reasoning."arXiv preprint arXiv:1908.05514(2019). https://www.aclweb.org/anthology/D19-1170/
- ^Efrat, Avia, Elad Segal, and Mor Shoham. "Tag-based Multi-Span Extraction in Reading Comprehension."arXiv preprint arXiv:1909.13375(2019) https://arxiv.org/abs/1909.13375