ACL 2019 Retrieve, Read, Rerank: Towards End-to-End Multi-Document Reading Comprehension

github

本文所关注的是阅读理解中的多文档输入问题,即如何根据问题在给定的多个输入文档中找到对应答案的区域。解决此类问题的一种方法便是retriever -> reader -> reranker的pipeline,其中:

  • retriever:从给定的多个输入文档的多个段落中找到可能包含答案的部分,从而减小搜索空间
  • reader:从检索到的包含答案的多个段落中确定具体的区域,即答案所在部分的起始和终止索引
  • reranker:由于多个输入文档中可能会包含多个对应的答案,reranker对其进行重排序,从而确定最符合的答案。

但是在先前的方法中,每一模块完成任务时会对输入文档进行独立的编码,即每一部分的编码表示是不同的,这会造成不同模块之间文档的上下文表示间的不一致性,而且前面模块所获取的较好的文档表示也无法被下游的模块所应用。

因此,作者在本文中提出了一种端到端的训练模型RE3QARE^3QARE3QA,即将context retrievalreading comprehensionanswer reranking三部分整合到一起进行训练,而且不同模块之间共享文档的上下表示信息,这样在一定程度上缓解了如上所述的几个问题。最后在TriviaQA和SQuAD两个数据集上进行实验,实验结果证明了想法的有效性并且优于baseline。

Model

RE3QARE^3QARE3QA的模型架构如下所示:

在上图彩色区域所示的三部分采用端到端方式进行训练外,模型在此之前仍需要进行文档的剪枝(document pruning)来减小搜索空间。然后将过滤剩下的文档按照滑动窗口的方式将其划分为包含重叠的多个区段(segment),再使用预训练的transformer进行编码,根据得到的上下文表示计算对应的分数,最后根据分数进行排序,删除冗余的部分,只保留选择的部分用于下游的训练。

其中文档排序采用的度量指标为TE-IDF cosine similarity;分段时采用的是窗口大小为lll、步长为rrr的方式,文档ddd最后可被分为多个段落C={c1,...,c2}C = \{c_{1}, ..., c_{2}\}C={c1​,...,c2​}。接着通过transformer进行编码获取文档的表示ccc,同样也可以获取关于问题的表示qqq,最终段落的表示为[[CLS];q;[SEP];c;[SEP]][[CLS]; q; [SEP]; c; [SEP]][[CLS];q;[SEP];c;[SEP]](和BERT中输入的表示是一致的)。由于这里采用的是多层的Transformer,因此最终的表示可以表达为:hi=TransformerBlock(hi−1)h^i = \text{TransformerBlock}(h^{i-1})hi=TransformerBlock(hi−1)

Early-Stopped Retriever

尽管在retrieval之前进行了文档的剪枝,但是在将选择的文档划分段落后仍然具有很多的段落。为了提高编码的效率和使下游的模型更加关注文中重要的部分,这里采用了一种称为early-stopped的机制。

如上所述,这里采用的Transformer具有很多层,那么每一层都可以获取到关于段落的表示。作者在这里根据每一层的表示通过MLP计算一个分数,μ=spftmax(wμhJ)scorer=wrtanh⁡(Wr∑i=1LxμihiJ)\mu=\text{spftmax}(w_{\mu}h^J) \\ \text{score}^r = w_{r} \tanh (W_{r} \sum_{i=1}^{L_{x}}\mu_{i}h_{i}^J)μ=spftmax(wμ​hJ)scorer=wr​tanh(Wr​i=1∑Lx​​μi​hiJ​)只选择分数较高的N个传到下一层,N这里是不断减小的,这样通过不断的传递,最终Transformer的输出只是N个重要段落的表示。将分数进行正则化后对应的目标函数为:LI=∑i=12yirlog⁡(softmax(scorer)i)L_{I} = \ \sum_{i=1}^2 y_{i}^r \log(\text{softmax}(\text{score}^r)_{i})LI​= i=1∑2​yir​log(softmax(scorer)i​)

Distantly-Supervised Reader

经过上一模块的检索得到了包含答案的多个重要的候选段落和对应的表示hIh^IhI,Reader需要从中找出答案具体的位置,即答案对应的起始和终止索引。假设候选答案aia_{i}ai​的起始和终止索引分别记为αi\alpha_{i}αi​和βi\beta_{i}βi​,那么Reader会为每一个可能的区域计算一个分数si=scoreαis+scoreβies_{i}=score_{\alpha_{i}^s} + score_{\beta_{i}^e}si​=scoreαis​​+scoreβie​​,那么根据分数进行排序得到对应的区域A={a1,...,aM}A = \{a_{1},...,a_{M}\}A={a1​,...,aM​}。由于数据集包含对应的标签,因此目标函数表示为:LII=−∑i=1Lxyislog⁡(softmax(scores)i)−∑j=1Lxyielog⁡(softmax(scoree)j)L_{II} = - \sum_{i=1}^{L_{x}}y_{i}^s \log(\text{softmax}(score^s)_{i}) - \sum_{j=1}^{L_{x}}y_{i}^e \log(\text{softmax}(score^e)_{j})LII​=−i=1∑Lx​​yis​log(softmax(scores)i​)−j=1∑Lx​​yie​log(softmax(scoree)j​)

Answer Reranker

进行前面的两步模型已经从给定的文档中找出了对应问题的多个答案,但是这些候选答案中仍有可能会存在着冗余的部分,因此作者在这里提出了一种剪枝算法Span-level NMS:

其实算法的思想也很简单,假设上一步得到的候选答案为AAA(包含起始和终止索引),对应的分数为SSS。首先将分数最高的答案挑选出来放到BBB中,看AAA中剩下的答案的起始和终止索引和选择的答案对应的索引有没有重叠,如果有就将其从AAA中删除,再进行下一次的选择、删除,直到AAA为空或者BBB中答案个数到达指定的阈值就停止,那么最后得到的候选答案就是最终的答案。

接着需要对BBB中的答案进行打分排序,为了更好的训练Reranker,这里设置了两种类型的标签yihardy_{i}^{hard}yihard​和yisofty_{i}^{soft}yisoft​,对应的目标函数为:LIII=−∑i−1M∗yihardlog⁡(softmax(scorea)i)+∑i=1M∗∣∣yisoft−scoreia∑j=1M∗scoreja∣∣L_{III}=- \sum_{i-1}^{M^*} y_{i}^{hard} \log(\text{softmax}(score^a)_{i}) + \sum_{i=1}^{M^*} ||y_{i}^{soft} - \frac{score_{i}^a}{\sum_{j=1}^{M^*} score_{j}^a}||LIII​=−i−1∑M∗​yihard​log(softmax(scorea)i​)+i=1∑M∗​∣∣yisoft​−∑j=1M∗​scoreja​scoreia​​∣∣

Training

训练对应的损失函数即为上述三部分的和,对应的训练过程为:

实验部分可见原文~

Retrieve, Read, Rerank: Towards End-to-End Multi-Document Reading Comprehension相关推荐

  1. 文本摘要相关论文汇总

    awesome-text-summarization github地址:https://github.com/luopeixiang/awesome-text-summarization 这个仓库有对 ...

  2. 2020年 ICLR 国际会议最终接受论文(poster-paper)列表(三)

    来源:AINLPer微信公众号(点击了解一下吧) 编辑: ShuYini 校稿: ShuYini 时间: 2020-02-21     2020年的ICLR会议将于今年的4月26日-4月30日在Mil ...

  3. 主题论文总结1:structured text summarization(持续更新ing...)

    诸神缄默不语-个人CSDN博文目录 最近更新时间:2022.6.4 最早更新时间:2022.5.16 文章目录 1. 对structured text summarization这一概念的定义 2. ...

  4. 夺得WSDM Cup 2020大赛金牌的这份参赛方案,速来get!

    近日,在美国休斯敦闭幕的第13届网络搜索与数据挖掘国际会议(WSDM 2020)上,华为云语音语义创新Lab带领的联合团队,摘得WSDM Cup 2020大赛"论文引用意图识别任务" ...

  5. 新手探索NLP(九)——文本摘要

    转载自知乎https://zhuanlan.zhihu.com/p/67078700 文本摘要是一种从一个或多个信息源中抽取关键信息的方法,它帮助用户节省了大量时间,用户可以从摘要获取到文本的所有关键 ...

  6. 【NLP】巧借“他山之石”,生成信息量大、可读性强且稳定的摘要

    大多数以前的 seq2seq 摘要系统纯粹依靠源文本来生成摘要,这往往并不稳定. 本文将回顾一项针对该问题进行改进的工作 --ACL 论文 Retrieve, Rerank and Rewrite:  ...

  7. 2019 年,智能问答(Question Answering)的主要研究方向有哪些?

    前言 自从小夕前不久推送了这篇<文本匹配打卡点总结>,收到了不少小伙伴对于问答方向的问题,其中问的最多的就是,求!更!多!论!文!好了,于是小夕就在万能的知乎上找到了这篇良心回答,分享给有 ...

  8. 【ECCV2020】接收论文列表part1

    ECCV2020将于2020年8月23-28日在线上举行,今年共接受了1361篇论文,本文是接收论列表的第一部分,第二部见链接 Paper ID Paper Title Category 267 Qu ...

  9. AAAI-19录用论文清单

    AAAI-19于1月27日在夏威夷召开,今年是33届会议. 会议录用论文清单, workshop16个,tutorials24个. 标题的词云分析: 作者单位词云(按作者人数计算/一篇文章可能有多个作 ...

最新文章

  1. .axf文件_干货!STM32晶振的更改,BIN文件的生成
  2. V2X 是自动驾驶重要基石,巨头纷纷抢滩布局
  3. python计算机二级含金量-计算机二级 Python 怎么考?考什么?
  4. 【模型解读】network in network中的1*1卷积,你懂了吗
  5. C语言 第五章 循环结构
  6. 如何通过Maven的Jetty插件运行Web工程
  7. Hadoop+Spark 集群部署
  8. 95-290-035-源码-内存管理-原理与实现:内存管理
  9. webpack 命令
  10. 安川机器人如何注释化指令_安川机器人 命令介绍-内部版
  11. springBoot datasource 属性
  12. 1.ESP32文件夹配置,创建自己的工程 Vscode+Idf插件
  13. 【Gym 100015A】Another Rock-Paper-Scissors Problem
  14. mysql e 变量_MySQL变量分类及用法简析
  15. 十门峡旅游攻略:临安十门峡的春天
  16. 餐饮日销售情况分析仪
  17. UNITY与Mac⭐一、在苹果电脑上配置 Unity 安卓环境的教程
  18. RAMMAP(运行内存清理工具)自动释放内存,并利用pyqt5制作图形界面
  19. 公司企业小程序怎么开发自己的小程序
  20. Linux下2D、3D的测试软件glxgears

热门文章

  1. pve 缩小LXC 磁盘
  2. Vivado中DDR4的使用
  3. 德国金融监管机构:ICO急需国际监管
  4. mybatis-plus使用乐观锁插件
  5. 对 Spring 的核心(AOP 和 IOC)的理解(大白话)
  6. 为什么硬盘明明还有空间,linux却说硬盘空间不足?inode;mkdir: 无法创建目录shen1: 设备上没有空间
  7. hooks引用useRef,报错object is possibly undefined
  8. Java注释规范 - 88250的灰色天空 - CSDNBlog
  9. 如愿获得2013 MVP,胜利属于你的坚持
  10. 跟我学springboot(二十五)springboot-过滤器之拦截不需要走过滤器的链接使用方法