对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)=Nn=1P(ωn|ω<n,F)P(Q|F)=∏n=1NP(ωn|ω<n,F)

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=argmaxP(y|x)y=argmaxP(y|x)

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

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

a=exp(hTtWbbi)iexp(hTtWbbi)a=exp(htTWbbi)∑iexp(htTWbbi)

htht
是decoder的隐藏层状态,bibi
由句子双向LSTM的隐藏层向量拼接而成。

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

损失函数:

L=Si=1len(yj)j=1logP(yj|x,y<j;θ)L=−∑i=1S∑j=1len(yj)logP(yj|x,y<j;θ)

其实就是极大化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

Vi=pijsim(ωsi,ωqj)Vi=∑pij∗sim(ωsi,ωqj)
if sim(ωsi,ωqj)>λsim(ωsi,ωqj)>λ
, pij=1pij=1
; else pij=0pij=0

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

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

模型

logP(q|(s,a,qt))=len(q)i=1logP(s,a,qt,q<i)logP(q|(s,a,qt))=∑i=1len(q)logP(s,a,qt,q<i)

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相关推荐

  1. 问题生成论文(question generation)-2020

    自然语言论文查找 康奈尔大学cl 1.2020_Toward Subgraph Guided Knowledge Graph Question Generation with Graph Neural ...

  2. 论文阅读:Guiding the Growth Difficulty-Controllable Question Generation through Step-by-Step Rewriting

    论文阅读:Guiding the Growth Difficulty-Controllable Question Generation through Step-by-Step Rewriting 来 ...

  3. 论文阅读:Generation-Augmented Retrieval for Open-Domain Question Answering

    论文阅读:Generation-Augmented Retrieval for Open-Domain Question Answering 来源:ACL 2021 下载地址:https://arxi ...

  4. 论文学习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 ...

  5. Open-Domain Question Answering相关部分论文阅读摘要

    主要内容 Open-Domain Question Answering相关部分论文阅读摘要 DrQA(Reading Wikipedia to Answer Open-Domain Questions ...

  6. 《论文阅读》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 ...

  7. 论文阅读—Relation-Aware Graph Attention Network for Visual Question Answering

    论文阅读-Relation-Aware Graph Attention Network for Visual Question Answering 一.标题 用于视觉问答的关系感知图注意力网络 二.引 ...

  8. ICSE NIER 2017 论文阅读 - Production-Driven Patch Generation

    前言 这个是前天的文章,昨天.今天的文章都还没看的.很僵硬. 决定先补上这一篇,然后再读两篇SSBSE的文章. 简介 本文旨在阅读 ICSE NIER 2017 论文- Production-Driv ...

  9. PolyFormer: Referring Image Segmentation as Sequential Polygon Generation 论文阅读笔记

    PolyFormer: Referring Image Segmentation as Sequential Polygon Generation 论文阅读笔记 一.Abstract 二.引言 三.相 ...

最新文章

  1. 本人使用abapgit遇到的一些错误
  2. C++ ASSERT() 断言机制
  3. 串口通讯编程一日通2(Overlapped IO模型)
  4. JAVA学习(十)__MessageFormat用法
  5. Reactor模式 NIO epoll
  6. gd公文文件转换成pdf格式
  7. html自动排版 vs,Visual Stidio Code (vscode)自定义HTML页面自动生成格式
  8. 美图秀秀修复背光照 瞬间让你光彩照人
  9. java中八种基本类型及默认值(2015年9月22日)
  10. c语言数独思路介绍,【数独运算器】,关于数独的解题思路,已经改进。
  11. matlab实现幂法迭代求特征值和特征向量
  12. origin画图软件 多个子图融合
  13. 利用c语言绘制漫天星空-动画
  14. 人工智能基础入门清单(计算机视觉、强化学习方向/领域)
  15. 【GZH逸佳君】生财有术:100多位互联网赚钱高手分享的2021年5万字赚钱建议
  16. 使用android手机做鼠标
  17. 互联网摸鱼日报(2023-01-11)
  18. 虚拟机安装MacOS
  19. MySql的一些常见笔试题(1)
  20. vue笔记1 渐进式、 MVVM 框架

热门文章

  1. 爬虫工具-爬虫软件-免费爬虫工具软件
  2. class mate
  3. 计算机组成原理----思维导图
  4. 【RP-RV1126】音频系统
  5. UE4 Cloth 布料材质
  6. 服务端JSONP相关问题
  7. 官宣:Apache Doris 顺利毕业,成为 ASF 顶级项目!
  8. 收藏:一文掌握ChatGPT/AIGC技术(附166份报告)
  9. HP6531S 拆装日记
  10. 【同程艺龙面经】一年Java开发经验面经