热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

QA4QG:一个多跳问题生成任务模型

前言Questiongeneration(QG)问题生成任务是根据给定的context和answer自动生成问题的任务,它有很多应用场景,比如教育系统
前言

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这个任务本身即其其实也可以催化出很多应用场景,大家可以试着给自己业务思考一些相关的应用

 


推荐阅读
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • 本博文基于《Amalgamationofproteinsequence,structureandtextualinformationforimprovingprote ... [详细]
  • Thisworkcameoutofthediscussioninhttps://github.com/typesafehub/config/issues/272 ... [详细]
  • 我创建了一个新的AWSSSO(使用内部IDP作为身份源,因此不使用ActiveDirectory)。我能够登录AWSCLI、AWSGUI,但 ... [详细]
  • adfs是什么_培训与开发的概念
    adfs是什么_培训与开发的概念(如您转载本文,必须标明本文作者及出处。如有任何疑问请与我联系me@nap7.com)ADFS相关开发技术的中文资料相对匮乏,之前在弄这个东西的时候 ... [详细]
author-avatar
tttt
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有