美文网首页
阅读笔记-Paragraph-level Neural Ques

阅读笔记-Paragraph-level Neural Ques

作者: 王珊_e3cc | 来源:发表于2020-05-25 17:47 被阅读0次

    题目:Paragraph-level Neural Question Generation with Maxout Pointer and Gated Self-attention Networks

    最近读了这篇文章,将一些翻译和自己的理解梳理如下。

    一、前情提要

    本文利用Maxout Pointer机制与gated self-attention机制,进行篇章级别(paragraph level)的问题生成。

    在问题生成领域,sequence to sequence的神经模型比基于规则的系统表现得更好。但现有的模型专注于使用一到两个句子作为输入,长文本在利用s2s模型生成问题中表现不佳。但实际上,为了生成高质量的问题,通常需要整篇文章提供必要的上下文信息。

    下图是一个需要使用paragraph level的信息才能提出高质量问题的例子,包含问题的句子用绿色的斜体字标出,其中答案span用下划线标出。

    本文为了解决问题生成任务中长文本作为输入的挑战,提出了maxout pointer机制并在encoder中加入了gated self-attention。

    在SQuAD数据集和MS MARCO数据集上,本文提出的模型在sentence level的QG任务中表现比state of art的模型表现好,在paragraph level的QG任务中,本文模型的表现比其在sentenve level的任务中表现更好,证明了该模型在解决长文本输入问题上是非常有效的。

    二、模型详解

    下图是本文提出的模型的端到端的结构

    本文解决的问题假设:已知文章(passage)和答案(answer),并且答案是来自文章的span,根据已知的文章和答案生成问题(question),question中的词有两个来源:已经定义好的单词表(volcabulary)或原文(passage)。

    本文对Encoder和Decoder在标准的加入attention的s2s模型上做了一些优化。

    Encoder:

    word representation:每个word representation由两部分组成:单词xt的word embedding,也就是图中的et,用来表示单词xt是否在answer span中的meta word representation。这两部分拼接(concatenate)起来作为输入。

    gated self-attention:这里假设encoder使用了RNN对word representation进行编码。ut是输入通过RNN之后的输出,对ut进行self-attention,得到的输出称为st。利用ut和st可以得到如下的两部分输出,ft是self-attention的结果,gt是一个门限,也就是上面提到的gate。\hat{u_{t} } 是利用gt这个门限控制ft和ut的融合比例之后得到的encoder的最终输出。

    Decoder:

    attention:decoder部分使用的attention是常规的方法,公式如下

    Pointer:Pointer Network允许在生成问题的时候产生的word要么来自于预先定义单词表,要么来自于对原文单词的复制。本文提到的Pointer机制使用了attention中的raw attention score,rt。使用的公式如下:

    上面的公式中,X代表的是由输入序列生成的一个小的单词表(简称小单词表)。xk是输入序列中的第k个词在小单词表中的indice,yt是decode序列中的第t个词,rt,k代表的则是以上两者的attention原始得分。

    这里有一个疑问,decode就是为了确定yt是什么,怎么会已经知道yt是什么词了呢???

    然后接下来把copy score和generative score拼接起来,generative score来自常规的RNN网络,就是下面公式不进行softmax之前的值。这里有一个疑问,为什么不是d^t呢?如果不用d^t那attention不就没有用了。

    拼接之后向量如下,

    这个向量的维度是

    其中前一部分是大的单词表的大小,后一部分是小单词表的大小。

    对拼接之后的向量进行softmax,这种方式可以让两部分score可以不断compete。也有其他的做法,对两部分score分别做softmax,然后用一个动态权重对两个softmax的结果进行融合,这种做法中权重需要通过训练得到。

    Maxout Pointer:用标准的Pointer网络,可能会产生一个问题:生成的问题中的重复的词特别多。为了解决这个问题,使用了Maxout Pointer。公式如下:

    三、实验验证结果

    1. 数据集

    本文在两个数据集上进行了模型验证:SQuAD和MS MARCO

    SQuAD:由536篇文章和10万个问题组成,每个问题都有一个对应的答案,答案是文章中的token spans。

    为了跟已有研究对比效果,SQuAD数据集有两种划分方法:1)split1:使用dev set作为test set,将train set的文章按照90%-10%的比例随机划分,作为train set和dev set。并且本文在做实验时保留了所有的sample,而没有将sentence-question pair中一个非停用词都没有重合的pair去掉。这种做法使数据集更难训练。2)split2:将dev set中的句子按照50%-50%的比例划分为dev和test set。

    MS MARCO:MS MARCO包括10万个queries以及其相应的答案和passage,其中queries就相当于是questions。所有的问题都是从真实匿名用户的queries中抽取的,passage是来自网络的文档。本文实验只用了MS MARCO数据中的一部分,在这部分数据中,答案是包含在passage中的一些sub-spans。使用dev set(7k)作为test set,将train set按照90%-10%的比例划分为train set(51k)和dev set(6k)。

    2. 网络细节

    1)网络中的encoder和decoder都使用2层的LSTM作为RNN单元的具体实现形式。并且在encoding过程中使用的是双向LSTM。LSTM的隐层的大小是600。在竖直方向的LSTM stack之间使用了概率为0.3的dropout。

    2)word embedding使用了经过预训练的300维的GloVe向量,并且在训练过程中GloVe这部分就被冻结(froze)了。meta word embedding的维度是3.

    3)encoder和decoder中使用的vocabulary是GloVe 中最常用的45k大小的单词表。

    4)在最优化过程中,使用了有动量的SGD。

    5)学习率初始值为0.1,在第8个epoch之后,每2个epoch削减为一半。

    6)模型总共被训练了20个epoch。

    7)mini-batch的大小是64

    8)训练完之后,找到4个困惑度最低的模型,选择其中训练的epoch最多的一个作为final model。

    9)在decoding的prediction过程中,使用了beam search,beam的大小是10。decoding结束以每个beam 产生EOS为标志。

    3. 评价指标

    评价的指标包括:BLEU_1~BLEU_4、METEROR、ROUGE-L

    4. 结果

    模型缩写

    s2s: basic sequence to sequence model

    s2s-a: s2s + attention mechanism

    s2s-a-at: s2s-a + answer tagging

    s2s-a-at-cp: s2s-a-at + copy mechanism

    s2s-a-at-mp: s2s-a-at + maxout pointer mechanism

    s2s-a-at-mp-gsa: s2s-a-at-mp + gated self-attention

    实验结论

    1)s2s-a和s2s对比,说明了attention对提升模型效果有很大的作用

    2)添加了answer tagging(at)之后,par和sen模型之间的差距缩小,说明at有助于模型忽略noise

    3)添加了copy mechanism(cp)之后,模型整体的水平提高了,但是par和sen之间的差距又增大了,是因为par的model更容易复制原文的内容,导致准确率变低了。在改用maxout pointer(mcp)之后,par和sen之间的差距确实变小了。

    4)加上了gsa之后,首次par比sen的效果更好了,下面是一个self attention的词对齐的可视化结果。可以看出词对齐的分布集中在了正确答案附近。

    5)本文还测试了beam search和greedy search的效果,如下表所示。很明显beam search的效果是全都好于greedy的。

    6)与已有模型的比对

    可以发现本文的最优模型(ours,s2s-a-at-mp-gsa)比已有的模型效果都要更好,并且已有的模型都是sentence level的。

    相关文章

      网友评论

          本文标题:阅读笔记-Paragraph-level Neural Ques

          本文链接:https://www.haomeiwen.com/subject/dtxwhxtx.html