Advertisement

论文阅读 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}

模型

${P(Q|F) = \prod_{n=1}^N P(\omega_n |\omega_{

F代表fact,Q代表question ({\omega_1,\omega_2,...,\omega_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

实验结果
与baseline对比实验结果
例子
例子


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 = argmax P(y|x)}

y是生成的句子,x是输入

结构:
结构比较简单,encoder由两个encoder组成,均为双向LSTM,输入分别为句子和文章。attention根据句子的隐藏层向量来计算:

{a = \frac{exp(h_t^T W_b b_i)}{\sum_i exp(h_t^T W_b b_i)}}

{h_t}是decoder的隐藏层状态,{b_i}由句子双向LSTM的隐藏层向量拼接而成。

decoder是一个LSTM,对于unk,处理是用attention分数最高的词直接替换,算是一个copy机制吧,可以看到效果还不错,像下图例子中的teletext,service如果不在list中都可以直接被拷贝过去。
这里写图片描述

损失函数:

${L = - \sum_{i=1}^{S} \sum_{j=1}^{len(y_j)} log P(y_j|x,y_{

其实就是极大化${P(y_i|x,y_{

数据集: 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中单词进行投票得到{V_{i}},如果大于某一阈值K,则认为这个单词是aspect type

{V_{i} = \sum p_{ij} * sim(\omega_{si},\omega_{qj})}

if {sim(\omega_{si},\omega_{qj}) > \lambda}, {p_{ij} = 1} ; else {p_{ij} = 0}

question type 分为’yes/no’,’what’,’who’,’how’,’where’,’what’, ’others’七类

对于中文样本可以借鉴aspect type分类的方法,但是疑问词这个关键词该如何提取还没有很好的想法

模型

${logP(q|(s, a, qt)) = \sum_{i=1}^{len(q)} logP(s, a, qt, q_{

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

实验结果
result
RPF Result

例子
例子1
例子2


Difficulty Controllable Question Generation for Reading Comprehension(未完待续)

Mark 两个不错的资源:
这个github上有一些paper和数据集的汇总(QA)
https://github.com/dapurv5/awesome-question-answering
徐阿衡的博客,博主整理了七篇阅读理解方向QG的文章
http://www.shuang0420.com/

全部评论 (0)

还没有任何评论哟~