前言

Question generation (QG)问题生成任务是根据给定的context和answer自动生成问题的任务,它有很多应用场景,比如教育系统、智能虚拟助理系统以及还可以作为增强 QA 系统的补充任务等等。之前很多QG任务都是去生成类似SQuAD的单跳问题即根据一个单独的输入句子生成相关问题,最近又有了很多关于多跳的问题生成任务即Multi-hop question generation (MQG) ,本篇就是一篇优化MQG的paper

论文链接:https://arxiv.org/pdf/2202.06538v1.pdf

idea来源

之前有关MQG的模型都是使用graph-based的网络,即将graph揉到Seq2Seq framework中,但是一些最近的工作(见论文中参考文献10、11)显示了graph并不是必须的,Transformers就可以很好的代替它,于是本篇的作者也采用了Transformers结构。

之前的所有模型都是关注P (Question|〈Answer, Context〉), 但是忽略了P (Answer|〈Question, Context〉),说的再直白点就是只进行了QG,但是QA任务对QG也是有帮助的,事实上QA和QG是一对互帮互助的任务,所以本篇paper在做QG的时候,同时考虑了QA。

框架

如上图,整体框架包括一个BART预训练模型和一个QA模块,大体上的逻辑就是QA模块将 context C和question Q作为输入,然后预测answer中每个token的概率,BART 模块就是专门做MQG任务,就是将context C和answer A作为输入,同时将QA模块输出的score一起揉到输入,然后产生 question Q。下面我们来细看其中的一些细节。

(1)BART

作者之所以选择BART作为backbone是因为其在很多生成任务上都比较好,关于BART模型细节不熟悉的小伙伴可以去看相关paper,很简单。

(2) Answer Relevance Attention

为了建模P(A|C, Q),作者这里提出了两种方法即soft方法和hard方法

(a)Soft attention

这里是假设ground truth question是可以事先拿到的,比如训练集中就存在,那么其具体的做法就是将C和Q作为输入,然后输出A开始和结束的token概率即

(b)Hard attention

这里是假设ground truth question是事先拿不到的,比如测试集中就没有,这个时候作者的做法是首先使用匹配,在context中匹配出answer出现的span,然后命中的span,作者就给一个人为预设的score即论文中的py,其余没有命中的也人为的给另外一个预设的分数即pn ,具体的py=1,pn=0。

(3) Enhanced Cross-Attention

这一步比较关键了,就是怎么将QA的分数揉进QG中,看下面公式吧:

可以看到之前的正常模型在做MultiHeadAttention这一步即softmax这一步的时候是没有+A这一步的,现在就是加了A,而A正是QA产生的分数,只不过这里如上面所讲有model产生的(soft)和强行给(hard)两种方式,说的再直白点就是QA模块当采用soft时就是一个model,当采用hard时其实就是一个正则匹配。

效果

在BLEU-4和ROUGE指标上分别提高了4和8个点,更多实验细节大家如果感兴趣可以去看原论文。

总结

(1)在笔者看来,其实这里模型之所以有效果本质上还是得益于我们以更加显示的方式告诉模型什么才是最重要的。简单粗暴的强行告诉你什么结果才是最重要的,就好像考试的时候直接画考试重点一样,所以大家以后可以试着做简单且最重要的事就好,只要你找到重点,方式的话即使最简单粗暴都可能有效果。

(2)通过这篇paper我们学到的另外一个trick就是逆向思维比如我们解决的是QG,但是可以利用其对偶问题QA。

(3)第三个学到的就是QG这个任务本身即其其实也可以催化出很多应用场景,大家可以试着给自己业务思考一些相关的应用

QA4QG: 一个多跳问题生成任务模型相关推荐

  1. 发布一个实体类属性生成小工具,给开发加点料

    做了很久的代码生成工具,基本上都是基于表生成实体类属性的,把数据库表的信息拿出来,然后之乎者也后生成一个标准的实体类,包含字段.属性.描述等东西. 是基于整个数据库生成整个框架代码的工具,如我的代码生 ...

  2. 从一个页面跳转到用swiper写的全屏滚动页面的指定位置

    问题背景 从一个页面跳转到用swiper写的全屏滚动页面的指定位置,怎么实现啊? 案例 我没有自己写一个全屏滚动,就在Swiper官网找了Swiper在PC端的全屏页面效果展示 若有侵权请留言告知我更 ...

  3. Shell编程 ——for循环、if语句、sleep睡眠。——每秒钟生成一个文件,一共生成60个文件

    实践: 每秒钟生成一个文件,一共生成60个文件,文件名格式是"20190101_101010.txt".但是,第10.20秒,不生成文件. #!/bin/sh for((i=0;i ...

  4. php制作404,利用thinkphp怎么制作一个404跳转页面

    利用thinkphp怎么制作一个404跳转页面 发布时间:2020-12-14 15:46:55 来源:亿速云 阅读:97 作者:Leah 本篇文章给大家分享的是有关利用thinkphp怎么制作一个4 ...

  5. html中a标签根据一个参数跳转不同的页面

    html中a标签根据一个参数跳转不同的页面 a标签 a标签通过调用fun1()方法来跳转不同页面 <a href="javascript:void(0);" onclick= ...

  6. 基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码

    比如 想跳到 mao.aspx 的页面 的div id="s" 的位置 那么 只用<a href="mao.aspx#s"> 就可实现跳转到指定位置 ...

  7. springmvc重定向到另一个项目_springmvc怎么重定向,从一个controller跳到另外一个controller...

    前言:html 有做者写出了部分方法,但没有给出具体实践,小白看后云里雾里,我这里作两件事:1 给出具体代码 2 对已经有的方法给出补充.java 参考:http://my.oschina.net/u ...

  8. android开发 转跳功能,如何在Android中利用Intent实现一个页面跳转功能

    如何在Android中利用Intent实现一个页面跳转功能 发布时间:2021-02-20 17:06:31 来源:亿速云 阅读:113 作者:Leah 本篇文章为大家展示了如何在Android中利用 ...

  9. 我傻眼了:一个完全由 AI 生成的播客,采访了乔布斯

    作者 | 黄楠.施方圆 编辑 | 陈彩娴 最近大火的生成式 AI 又有新动作了! 在 podcast.ai 推出的第一集播客节目里,已故的乔布斯竟然"死而复生"成为首位嘉宾,与美国 ...

最新文章

  1. 科大讯飞智慧医疗再出重磅,“智医助理”机器人顺利通过临床执业医师综合笔试...
  2. 模型训练速度过慢,GPU利用率低
  3. react学习(43)----react中将一个元素渲染为 DOM
  4. 今日头条下拉词框怎么做的呢?怎么优化推广呢?
  5. v8:: fatalProcessOutOfMemory
  6. 使用SCVMM2008 R2管理Hyper-V之3-使用模板部署虚拟机
  7. [CareerCup] 18.4 Count Number of Two 统计数字2的个数
  8. rootkit学习总结2
  9. [ 数据集 ] VOC 2012 数据集介绍
  10. html5 video play方法,html5 – 如何在现代Chrome上访问video.play()API
  11. 估值20亿美元 快狗打车将成“货运第一股”?
  12. 王绍伟:你不是非得和别人一样---转载
  13. 杭电OJ——第1000,1001题
  14. 【附源码】计算机毕业设计java智能仓储设备管理系统设计与实现
  15. mac for smartSVN9 (8,9)破解方法 附smartSvn_keygen工具图文
  16. 机器学习笔记-多分类下的召回率和F值
  17. EAN-13 条码生成
  18. 推荐7个Python自动化办公免费学习资源~(数据分析、Python、VBA等)
  19. WIN7系统的.txt文件,默认打开方式设置不成记事本的解决方法
  20. 51单片机auxr寄存器_MCS-51单片机特殊功能寄存器详解

热门文章

  1. JavaScript实现小数点后保留2位数
  2. eBay 终于推出购物机器人 ShopBot,为何比阿里晚了一年多
  3. 【报告分享】母婴品牌社媒营销解决方案(2021)-微播易(附下载)
  4. mysql基本语句:DML(数据操作语言)
  5. iOS恢复QQ音乐等播放器中断
  6. 程序八卦:胡子决定编程语言运势
  7. 计算机与现代化在线投稿,计算机与现代化杂志
  8. 荣耀8x显示无法连接到服务器,华为荣耀8X手机升级更新217版本系统后经常显示无网络连接...
  9. 数据结构 | 线性查找
  10. 备份win7系统时 弹出服务无法启动错误0x80070422