链接: https://openreview.net/forum?id=Bkx0RjA9tX

传统的机器阅读理解的模型都是给定 context 和 question, 找出最有可能回答该 question 的 answer,用概率表示为 p(a|q,c),这其实是一个判别模型。判别模型在大多数任务上可以取得比生成模型更好的准确率,但问题在于判别模型会利用一切能提升准确率的数据特征来做预测,这在机器阅读中会造成模型并未完全理解question和context,而是利用训练集中的一些数据漏洞来预测。如下图所示,模型只需要question中有下划线的词即可预测出正确答案,无须完全理解问题。在 SQuAD 中另一个典型的情况是:问题的疑问词是when或者who,而context中只有一个日期或者人名,这时模型只需要根据question的疑问词,context中的日期或人名即可回答问题,不用完全理解 question和context。

因此,本文的作者提出基于生成模型架构的机器阅读模型,其优化的目标是:给定context,最大化question和answer的联合概率,用概率表示为p(a,q|c)。该概率可以分解为p(a|c)p(q|a,c)。对于这两部分,分别训练两个模型,最后在预测时,遍历所有候选的answer选出最大化联合概率p(a,q|c)的answer作为预测结果。

首先训练p(a|c)部分,即给定context,选出最有可能出现的候选的answer。根据context的不同,采用不同的方式。

(1)如果context是文档,例如SQuAD数据集,那么用ELMo得到context的表示后,该表示经过全连接层映射得到一个score(记为),该score在和候选answer的长度指标(),这两个score按如下公式得到每个候选answer的概率

(2)如果context是图片,例如CLEVR数据集,那么在预训练的RESNet上fine tuning得到图片的表示,对所有候选answer分类得到每个answer出现的概率。

其次是p(q|a,c)部分,本文将其看做是文本生成问题,即采用Encoder-Decoder架构,根据answer, context的encoding结果,采用decoder生成question。模型采用的Decoder的架构为:

其主要包含一个循环N词的decoder block,每个block内部t时刻生成的词的embedding会先经过self-attention和attention计算,得到的结果再经过一个LSTM单元,如此重复N次并最终依存t+1时刻的词。为了解决稀疏词的问题,在预测每个词被生成的概率时采用了character级别的embedding和pointer-generator机制。

到这里模型已经介绍完毕。但是论文中提到了按照上述目标函数和模型结构训练完后,还有一个fine-tuning的步骤,这一步的目标是通过人为构造question和answer的负组合,来强化模型生成question时和answer的关联。Fine-tuning的目标函数是最小化如下式子:

其中A是由p(a|c)选出的在当前context下最有可能的top k个候选answer。

模型的实验结果如下所示,在SQuAD和CLEVR上都取得了仅次于当前state-of-the-art的判别式机器阅读模型的效果:

可以看到生成模型的效果要比效果最好的判别模型略差,但是本文的论点在于生成模型对question和context有更全面的理解,从而让模型有更好的泛化能力和应对对抗样本的能力。为了验证模型的泛化能力,本文作者构建了一个SQuAD的子集,该子集中训练样本中的context都只包含一个日期,数字或者人名类实体,但是在测试样本中有多个。如果模型在训练时仅依赖context中特殊类型的实体作为答案的数据特征,那么在测试集上就会表现很差。

可以看到在该数据集上生成模型有很大的优势。

在包含对抗样本的数据集Adversarial SQuAD上的表现也好过判别模型。

论文笔记整理:王梁,浙江大学硕士,研究方向为知识图谱,自然语言处理。


OpenKG.CN

中文开放知识图谱(简称OpenKG.CN)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。

点击阅读原文,进入 OpenKG 博客。

论文浅尝 | Generative QA: Learning to Answer the Whole Question相关推荐

  1. 论文浅尝 | Multimodal Few-Shot Learning with Frozen Language Models

    笔记整理:李磊,浙江大学硕士,研究方向为自然语言处理 链接:https://arxiv.org/abs/2106.13884 动机 大规模的自回归语言模型(如GPT)在预训练阶段学习到了大量的知识,具 ...

  2. 论文浅尝 | Zero-Shot Transfer Learning for Event Extraction

    事件抽取的目标是在非结构化的文本中确认事件的触发词(Eventtrigger)和参与者(Event argument),并判断触法词的事件类型(Eventtype),判断参与者在事件中的扮演的角色(A ...

  3. 论文浅尝 | 图神经网络综述:方法及应用

    论文链接:https://arxiv.org/pdf/1812.08434.pdf GNN相关论文列表链接:https://github.com/thunlp/GNNPapers 近日,清华刘知远老师 ...

  4. 论文浅尝 | 当知识图谱遇上零样本学习——零样本学习综述

    随着监督学习在机器学习领域取得的巨大发展,如何减少人工在样本方面的处理工作,以及如何使模型快速适应层出不穷的新样本,成为亟待解决的问题.零样本学习(Zero-Shot Learning, ZSL)的提 ...

  5. 论文浅尝 | 利用多语言 wordnet 上随机游走实现双语 embeddings

    论文笔记整理:谭亦鸣,东南大学博士生,研究方向为知识图谱问答. 来源:Knowledge Based System 链接:https://www.sciencedirect.com/science/a ...

  6. 论文浅尝 | 近期论文精选

    本文转载自公众号 PaperWeekly, 对我们近期的论文浅尝进行了精选整理并附上了相应的源码链接,感谢 PaperWeekly! TheWebConf 2018 ■ 链接 | https://ww ...

  7. 论文浅尝 | 从 6 篇顶会论文看「知识图谱」领域最新研究进展 | 解读 代码

    本文内容源自往期「论文浅尝」,由 PaperWeekly 精选并重新排版整理,感谢 PaperWeekly. ISWC 2018 ■ 链接 | http://www.paperweekly.site/ ...

  8. ###好好好#######论文浅尝 | 基于图注意力的常识对话生成

    论文浅尝 | 基于图注意力的常识对话生成 OpenKG 祝各位读者新春快乐,猪年吉祥! 来源:IJCAI 2018. 论文下载地址:https://www.ijcai.org/proceedings/ ...

  9. 论文浅尝 |「知识表示学习」专题论文推荐

    本文转载自公众号:PaperWeekly. 本期论文清单来自清华大学博士生韩旭和北师大本科生曹书林,涵盖了近年知识表示学习方向的重要论文. [ 综述类 ] ■ 论文 | Representation ...

最新文章

  1. 一文带你看懂Spring事务!
  2. Python 各种读取保存tif,tiff,png,jpg,mat等格式图像方法大集合
  3. hashmap 不释放空间_刁难问题,为什么HashMap默认容量为16加载因子为0.75
  4. annotationdriven
  5. 需要氪金吗_《死或生6》染发也需要氪金,海外玩家吐槽官方吃相太难看
  6. 如何使用Deckset配置编辑命令
  7. 百度编辑器ueditor字体添加
  8. linux 清除命令,linux快速删除命令
  9. 2021年高教杯数学建模国赛B题思路详解
  10. jqGrid双击事件,并获取双击行的各个属性值
  11. linux – signal 信号列表
  12. 【图像处理】激光雷达 采集数据 格式转换处理
  13. 黑马程序员------Java的多态性
  14. 江苏自考计算机通信工程,2020年4月江苏自考A2080708计算机通信工程考试安排(本科)...
  15. 塔望食业洞察丨方便速食行业市场现状、消费趋势、品牌策略分析
  16. Hive企业应用—数据仓库架构
  17. 《python数据挖掘入门与实践》决策树预测nba数据集
  18. Windows DIB文件操作详解-1.DIB的读入、保存和显示
  19. 1号店电商实时数据分析系统(持续更新,未完待续,每天一点点)
  20. 两种风格的快速排序 Quick Sort

热门文章

  1. 计算收益复利的小例子
  2. Be My Eyes app:我是你的眼
  3. 把一个数据库的数据插入到另外一个数据库
  4. 内存淘汰机制 LRU cache
  5. 简单分析STM32和51的区别
  6. esp32 coredump分析
  7. 每日一题(39)—— sizeof
  8. GetLocalTime
  9. 数据结构链表之栈,Python3简单实现——5
  10. pandas 读表格_pandas电子表格的读取(pandas中的read_excel)