论文阅读 QA与QG联合学习

  • 论文
    • Question Generation for Question Answering
    • Question Answering and Question Generation as Dual Tasks
    • A Joint Model for Question Answering and Question Generation

论文


Question Generation for Question Answering

Nan Duan, Microsoft Research Asia, 2017
原文链接

这篇是从长文章中利用两种方式CNN和RNN来生成高质量的问题,并利用生成的这些问题来进一步提高QA的表现,这篇和下一篇是一个作者的文章。

数据集:SQuAD, MS MARCO, and WikiQA

结构
整个QG结构分为四个部分,Question Pattern Mining,Question Pattern Prediction,Question Topic Selection,Question Ranking

  • Question Pattern Mining
    将问句输入YahooAnswers获得一系列相关的问题,这些问题构成了一个question cluster。在这个cluster中,n gram出现的频率越高越有可能是topic word
    论文阅读 QA与QG联合学习_第1张图片

  • Question Pattern Prediction
    给定一篇文章,利用一些关键短语,eg co-founded by -> who found # ?,预测相关的question pattern有哪些。训练数据格式为 <A,Qp,Qt> < A , Q p , Q t > ,预测时输入为 <S,Qp> < S , Q p >
    A是answer, Qp Q p 是question pattern, Qt Q t 是question type

    – Attention + CNN 将predict视为一个ranking的任务
    – Attention + Bi-GRU RNN 将predict视为一个生成任务

  • Question Topic Selection
    – 对于第一种attention + CNN,先利用freebase提取实体和stanford sparser提取名词词组作为question type的候选,然后计算这些候选qt与预测的question type对应的每个historical question topic的相似度,取相似度较高的topic。
    – 对于第二种attention + Bi-GRU RNN,对于S中所有单词计算S与 Qp Q p 的attention概率来选取topic。这里softmax输出维度只用前一部分频率最高的question word,对于OOV(out of vocabulary),用attention probability最高的单词替换,类似一种copy机制。

  • Question Ranking
    question pattern prediction score + question topic selection score + QA matching score + word overlap between Q and S + question pattern frequency这五个分数的线性之和

评价标准:BLEU4
实验结果:seq2seq和两种模型的对比
论文阅读 QA与QG联合学习_第2张图片
论文阅读 QA与QG联合学习_第3张图片


Question Answering and Question Generation as Dual Tasks

Nan Duan, Microsoft Research Asia, 2017
原文链接

本文提出了一种新的训练框架,同时训练两个模型,将QG和QA视作一个互相促进的过程。

作者将这个称为dual,个人觉得和GAN的思想差不多

模型
P(q,a)=P(q|a)×P(a)=P(a|q)×P(q) P ( q , a ) = P ( q | a ) × P ( a ) = P ( a | q ) × P ( q )
第一个是QG过程,第二个是QA过程

数据集:MS Marco,SQUAD,WikiQA

结构
QG是一个seq2seq的生成模型,损失函数为 Lqg=P(q|a) L q g = − P ( q | a )
QA是一个双向GRU RNN,将Q和A拼接起来作为一个连续的输入,训练时对认为正确的answer打label为1,反之label为0,最小化错误label。
损失函数为

L=Lq+La+ldual L = L q + L a + l d u a l

ldual=[logP(a)+log(q|a)logP(q)log(a|q)]2 l d u a l = [ l o g P ( a ) + l o g ( q | a ) − l o g P ( q ) − l o g ( a | q ) ] 2

评价标准:MAP MRR P@1(QA);BLEU4(QG)

实验结果
论文阅读 QA与QG联合学习_第4张图片
论文阅读 QA与QG联合学习_第5张图片
论文阅读 QA与QG联合学习_第6张图片

例子
论文阅读 QA与QG联合学习_第7张图片


A Joint Model for Question Answering and Question Generation

Tong Wang, Microsoft Maluuba, 2017
原文链接

数据集:SQuAD corpus

本篇将QA和QG都视为生成的任务,联合学习通过交替改变QA和QG实现。输入是一篇长文章+conditional information,由条件信息决定是QA还是QG过程,会用一个二进制数表示是QA还是QG。

这篇比较独特的地方是可以生成一些abstract的answer,生成abstract answer其实就是通过copy机制,在生成中选择是copy还是predict。

一般来说QA是extractive的,即抽取式的,而QG是abstractive

encoder是一个双向LSTM模型,用的是字级别的embedding+词级别embedding的拼接,得到一个abstract的隐藏层向量 h1 h 1 。同时考虑extractive抽取式的信息,即同时出现在文章和conditional中的单词,用另一个双向LSTM来编码这些词得到一个抽取式的隐藏层向量 h2 h 2 。在QA过程中是对问题编码用 h1 h 1 ,QG中是对答案编码用 h2 h 2

个人认为这里的考虑与之前是一致的,answer通过抽取式,question通过生成式

decoder用了pointer-softmax来控制copy还是predict。(详细见另一篇pointer-softmax的笔记)在训练过程中QA和QG的结果会作为另一个过程的

从实验结果上看,QA的表现有很大的提升,QG基本不变。
论文阅读 QA与QG联合学习_第8张图片
生成的例子:
论文阅读 QA与QG联合学习_第9张图片

你可能感兴趣的:(自然语言处理)