论文阅读 Question Generation
对seq2seq模型,attention机制以及NLP评价标准不了解的同学可以看的另外三篇笔记(暂未完成),文中将不仔细介绍这些内容,有疏漏或者补充欢迎评论~
QG相对QA来说研究少了不少,粗略在arxiv搜过,2017年才陆续看到几篇seq2seq相关的工作,也可能是我疏漏了一些文章。
mark:另一篇笔记对QG做了一个简短的总结:问题生成(QG)总结
- 论文
- Generating Factoid Questions With Recurrent Neural Networks: The 30M Factoid Question-Answer Corpus
- Learning to Ask: Neural Question Generation for Reading Comprehension
- Machine Comprehension by Text-to-Text Neural Question Generation
- Aspect-based question generation
- Difficulty Controllable Question Generation for Reading Comprehension(未完待续)
论文
Generating Factoid Questions With Recurrent Neural Networks: The 30M Factoid Question-Answer Corpus
Yoshua Bengio, University of Montreal, Canada 2016
原文地址
作者目标是基于知识库(KB)生成大量问题,方法是将一个事实转化为一个满足以下两个条件的问题。一个是问题要与这个事实的relationship和subject相关,第二点是问题的答案应该就是这个事实的object。
知识库的结构类似于有向图,一个fact可以视为含有三个参数subject,object和relationship,前两者是node,后者是edge。{subject->object}
模型:
F代表fact,Q代表question (ω1,ω2,...,ωnω1,ω2,...,ωn
)
结构:
模型就是一个带attention的seq2seq模型,encoder+decoder
encoder是将fact的三个参数分别embedding后直接拼接得到语义向量c
decoder是一个GRU RNN,attention是bahdanau attention
数据集:SimpleQuestions dataset
查了一下,居然是memory net的提出者FB大佬Antoine Bordes的文章
评价标准:BLEU,METEOR,Emb. Greedy
实验结果:
例子:
Learning to Ask: Neural Question Generation for Reading Comprehension
Xinya Du, Cornell University, ACL 2017
原文链接
本文似乎是第一个用seq2seq端到端结构来做QG的,之前基本是基于规则的做法,将词填入规定好的模板。这篇文章的做法也是基于一个attention+seq2seq的结构,输入同时考虑了句子和文章,相比baseline模型有显著的提升
这篇文章的code已经开源了,是用pytorch实现的,地址:
https://github.com/xinyadu/nqg
模型:
y是生成的句子,x是输入
结构:
结构比较简单,encoder由两个encoder组成,均为双向LSTM,输入分别为句子和文章。attention根据句子的隐藏层向量来计算:
htht
是decoder的隐藏层状态,bibi
由句子双向LSTM的隐藏层向量拼接而成。
decoder是一个LSTM,对于unk,处理是用attention分数最高的词直接替换,算是一个copy机制吧,可以看到效果还不错,像下图例子中的teletext,service如果不在list中都可以直接被拷贝过去。
损失函数:
其实就是极大化P(yi|x,y<i)P(yi|x,y<i)
数据集: SQUAD
实验结果:
例子:
Machine Comprehension by Text-to-Text Neural Question Generation
Xingdi Yuan, Tong Wang, Caglar Gulcehre, Alessandro Sordoni
Microsoft Maluuba, 2017
原文链接
这篇文章也是seq2seq+attention结构,不同的地方在于训练的时候用的是teacher forcing的方法,并结合了RL中policy gradient的方法,对生成的结果进行优化。
通常来说,seq2seq训练的时候decoder是不会将上一步产生的结果直接作为下一步输入,而是用正确的结果作为输入,这个就叫做teacher forcing,不过基本上所有的seq2seq都是这么做的
encoder输入是文档和答案,分别用两个双向LSTM编码,decoder用了pointer softmax。Loss包含三个部分,第一个loss是negative log-likelihood,也就是一般seq2seq的使用的损失函数,第二个loss是为了让answer中出现的单词尽量不要在生成的question中再出现,第三个loss是信息熵,为了尽可能增加多样性。
稍后会整理一篇pointer softmax的文章
teacher forcing的方法会造成训练空间与测试空间的不匹配,因为一个是基于ground truth,一个是基于自己的输出。作者用了RL的policy gradient的方法来提高模型的表现。Rewards由两个部分组成,一个部分是将结果输入到训练好的QA中,根据回复好坏来给rewards,另一个部分是句子的流畅度,即ppl。
数据集: SQuAD
实验结果:
与baseline的seq2seq相比,ppl反而更低,但能生成出想要的答案(更具体)
Aspect-based question generation
Wenpeng Hu, Rui Yan, Peking University, ICLR 2018
原文链接
作者提出了一种简单的得到aspect分类的方法,利用seq2seq生成满足给定的问题种类和领域的问题。这篇文章的优点在于训练集还是无标签的QA对,但在预测时通过给定question type和aspect type来生成多样化的问题。
数据集:Amazon question/answer corpus
分类:
aspect type 先将所有A中单词都认为是可能的候选,然后用Q中单词与A中单词两两计算余弦值,对A中单词进行投票得到ViVi
,如果ViVi
大于某一阈值K,则认为这个单词是aspect type
, pij=1pij=1
; else pij=0pij=0
question type 分为’yes/no’,’what’,’who’,’how’,’where’,’what’, ’others’七类
对于中文样本可以借鉴aspect type分类的方法,但是疑问词这个关键词该如何提取还没有很好的想法
模型:
q 是生成的question,s是输入的answer,a是aspect type,qt是question type
结构:
encoder 有两个answer encoder和aspect encoder,都是双向LSTM RNN,隐藏层向量由双向隐藏层向量的拼接构成。两个encoder都用了bahdanau attention。
为了减少噪声,作者先以上述encoder的输出为输入训练一个LSTM,称之为pre-decode LSTM,得到一个隐藏层状态h(t),然后这个h(t)与前面answer encoder,aspect encoder以及question type embedding的结果合起来训练最终的LSTM decoder。
这里可能有点绕,看图更容易理解,先不管右上角的final decoder,左边三个输入使用attention1得到pre-decode结果,这四者合起来使用attention2得到final decode的结果。
评价标准:BLEU,METEOR,ROUGE,RPF
实验结果:
例子:
Difficulty Controllable Question Generation for Reading Comprehension(未完待续)
Mark 两个不错的资源:
这个github上有一些paper和数据集的汇总(QA)
https://github.com/dapurv5/awesome-question-answering
徐阿衡的博客,博主整理了七篇阅读理解方向QG的文章
http://www.shuang0420.com/
论文阅读 Question Generation相关推荐
- 问题生成论文(question generation)-2020
自然语言论文查找 康奈尔大学cl 1.2020_Toward Subgraph Guided Knowledge Graph Question Generation with Graph Neural ...
- 论文阅读:Guiding the Growth Difficulty-Controllable Question Generation through Step-by-Step Rewriting
论文阅读:Guiding the Growth Difficulty-Controllable Question Generation through Step-by-Step Rewriting 来 ...
- 论文阅读:Generation-Augmented Retrieval for Open-Domain Question Answering
论文阅读:Generation-Augmented Retrieval for Open-Domain Question Answering 来源:ACL 2021 下载地址:https://arxi ...
- 论文学习8-How Question Generation Can Help Question Answering over Knowledge Base(KBQA-知识问答)
文章目录 abstract 1.introduction 2. our approach 2.2 微调fine tuning 3.Model 3.1QA Model 3.2QG model abstr ...
- Open-Domain Question Answering相关部分论文阅读摘要
主要内容 Open-Domain Question Answering相关部分论文阅读摘要 DrQA(Reading Wikipedia to Answer Open-Domain Questions ...
- 《论文阅读》Multi-Task Learning of Generation and Classification for Emotion-Aware Dialogue Response Gener
<论文阅读>Multi-Task Learning of Generation and Classification for Emotion-Aware Dialogue Response ...
- 论文阅读—Relation-Aware Graph Attention Network for Visual Question Answering
论文阅读-Relation-Aware Graph Attention Network for Visual Question Answering 一.标题 用于视觉问答的关系感知图注意力网络 二.引 ...
- ICSE NIER 2017 论文阅读 - Production-Driven Patch Generation
前言 这个是前天的文章,昨天.今天的文章都还没看的.很僵硬. 决定先补上这一篇,然后再读两篇SSBSE的文章. 简介 本文旨在阅读 ICSE NIER 2017 论文- Production-Driv ...
- PolyFormer: Referring Image Segmentation as Sequential Polygon Generation 论文阅读笔记
PolyFormer: Referring Image Segmentation as Sequential Polygon Generation 论文阅读笔记 一.Abstract 二.引言 三.相 ...
最新文章
- 本人使用abapgit遇到的一些错误
- C++ ASSERT() 断言机制
- 串口通讯编程一日通2(Overlapped IO模型)
- JAVA学习(十)__MessageFormat用法
- Reactor模式 NIO epoll
- gd公文文件转换成pdf格式
- html自动排版 vs,Visual Stidio Code (vscode)自定义HTML页面自动生成格式
- 美图秀秀修复背光照 瞬间让你光彩照人
- java中八种基本类型及默认值(2015年9月22日)
- c语言数独思路介绍,【数独运算器】,关于数独的解题思路,已经改进。
- matlab实现幂法迭代求特征值和特征向量
- origin画图软件 多个子图融合
- 利用c语言绘制漫天星空-动画
- 人工智能基础入门清单(计算机视觉、强化学习方向/领域)
- 【GZH逸佳君】生财有术:100多位互联网赚钱高手分享的2021年5万字赚钱建议
- 使用android手机做鼠标
- 互联网摸鱼日报(2023-01-11)
- 虚拟机安装MacOS
- MySql的一些常见笔试题(1)
- vue笔记1 渐进式、 MVVM 框架