阅读笔记-Paragraph-level Neural Question Generation with Maxout Pointer and Gated Self-attention Netw...

题目: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的。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351