对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
查了一下,居然是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
模型: