从粗到精的长文章问答
论文原文:https://github.com/Alvin-Leee/Greedy_NLP/tree/master/Papers
第一次见的机构
XIX.ai
一家主要做ML和CV方面的公司
官网简介:https://getxix.com/about-us
Element AI
一家以合作为目的,包括人与人、人与机器,目的是解决人工智能问题的公司。
官网简介:https://www.elementai.com/about-us(网站UI做的不错)
Tel Aviv University
特拉维夫大学,简称TAU,一所以色列国立大学,目前QS排名230。
排名:https://www.topuniversities.com/universities/tel-aviv-university/undergrad
官网:https://english.tau.ac.il/
0 摘要
我们提出了一个问答框架,该框架能够有效地扩展到处理长文章,并且能够保持甚至提高最先进模型的能力。
虽然最成功的阅读理解方法依赖循环神经网络( R N N s RNNs RNNs),但是运行在长文章上非常慢,因为很难并行化序列。
受到人们第一次浏览文章的启发,首先识别相关部分,然后认真阅读这些部分来生成答案,我们使用了一个粗糙的、快速的模型来选择相关的句子,和一个昂贵的 R N N RNN RNN用来从这些句子中产生回答。
我们把句子的选择作为一个隐含变量,只使用强化学习与答案进行训练。
实验证明在具有挑战性的子集上有最出色的表现,这个子集来自 W I K I R E A D I N G WIKIREADING WIKIREADING数据集和一个新的数据集,并且给该模型加速了3.5-6.7倍。
1 介绍
阅读一个文章并且回答它的内容问题是自然语言理解的标志。
最近,无结构化文章问答逐渐引起人们的兴趣,并且产生了阅读理解的大规模的数据集。
目前在文章上进行问答的最先进的方法是基于循环神经网络的,具体是先对文章进行编码再进行提问来获得答案。
虽然这些模型能够使用所有相关的信息,但是它们还是很慢因为模型可能需要顺序执行数以千计的标识符,而且计算不能并行。
事实上,这些模型通常截取了文章,然后只考虑了有限数量的标识符。
我们在人们第一次阅读文章并回答问题的研究上受到启发,人们首先识别出相关的部分,然后认真阅读这些部分来产生一个答案,我们提出一个从粗到精的问答模型。
我们的模型采用了一个层级的方法(如图1),第一层快速模型用来从文章中选择一些相关句子,进而回答问题。
然后,应用一个较慢的 R N N RNN RNN从这些选择的句子中生成最后的答案。
R N N RNN RNN运行在固定数量的标识符上,无论文章有多长。
根据我们的观察,我们的模型在编码前几个段落的文字上比初始的模型快6.7倍,而且能够利用超过4倍的标识符。
我们模型的定义了一个特征,就是在输入时答案不需要逐字出现(即使不用明确指出也能确定一部电影的类型)。
此外,一个回答经常会在文章的虚拟语境中出现许多次(年份“2012”会出现很多次,但是只有一次和问题相关)。
因此,我们把句子选择作为一个隐含变量,只通过强化学习与从答案中生成答案的模型一起训练。
把句子选择作为一个隐含变量已经在分类问题中被探索过,但是,据我们所知,还没有被应用到问答领域中。
我们发现当定位包含答案的句子很困难的时候,句子选择和答案生成一同训练是非常有帮助的。
我们在 W I K I R E A D I N G WIKIREADING WIKIREADING数据集中评估我们的模型,关注那些文章很长而且句子选择非常有挑战性的示例,此外,还在一个新的名叫 W I K I S U G G E S T WIKISUGGEST WIKISUGGEST的数据集上进行评估,s该数据集包含更多来自于搜索引擎的自然问题。
总结一下,我们在长文本问答中提出了一个模块化的框架和学习过程。
它获取了文章结构中的有限形式,例如句子边界;并且处理了长文章,或可能有许多文章的情况。
实验显示与在 W I K I R E A D I N G WIKIREADING WIKIREADING的子集上最先进的模型相比,我们改善了性能,在其它数据集上也具有可比性,并且在文章编码上提高了3.5-6.7倍速度,而且允许利用更长的文章。
2 问题设置
给定一个训练集,包含问题-文章-答案的三维量 { x ( i ) , d ( i ) , y ( i ) } i = 1 N \lbrace{x^{(i)},d^{(i)}, y^{(i)}\rbrace}_{i=1}^N {x(i),d(i),y(i)}i=1N,我们的目标是学习一个模型,通过在一个问题-文章对 ( x , d ) (x, d) (x,d)上产生一个问题的方式。
文章 d d d是一系列的句子 s 1 , s 2 , . . . , s ∣ d ∣ s_1, s_2, ..., s_{|d|} s1,s2,...,s∣d∣,我们假定答案可以从这些句子中的小部分隐含子集中产生。
图2给出了在子集中句子 s 5 s_5 s5的训练示例。
3 数据
我们在 W I K I R E A D I N G WIKIREADING WIKIREADING, W I K I R E A D I N G L O N G WIKIREADING\;LONG WIKIREADINGLONG和一个新的数据集 W I K I S U G G E S T WIKISUGGEST WIKISUGGEST上做评估。
W I K I R E A D I N G WIKIREADING WIKIREADING是一个从维基百科和维基数据中自动生成的QA数据集:给定一个关于一个实体的维基百科页面和一个维基数据属性,例如 P R O F E S S I O N PROFESSION PROFESSION或 G E N D E R GENDER GENDER,目标是基于文章来推断目标值。
与最近其它已发布的大规模数据集不同, W I K I R E A D I N G WIKIREADING WIKIREADING没有注释答案内容,这使得句子选择更加具有挑战性。
由于大多数的维基百科文章是具有结构性的并且篇幅短小(句子的中位数是9),而且答案通常在前几个句子就给出了。
因此,与使用前几个句子来训练模型相比,这些数据对于测试句子选择模型而言并不理想。
表1量化了这种直觉:我们将包含答案 y ∗ y* y∗的句子视为应该被选择句子的代理。
此外,我们给出这个代理句子是第一句话的频率。
我们在 W I K I R E A D I N G WIKIREADING WIKIREADING中观察,答案在47.1%的示例中逐字出现,并且它们中的75%都在第一句中出现。
因此,构建句子选择的重要性是有限的。
为了纠正它,我们过滤了 W I K I R E A D I N G WIKIREADING WIKIREADING,以确保在整个文章中更加均匀的答案分配。
我们舍弃了少于10个句子的文章,只考虑Hewlett等人最好的模型获得的精准率低于60%的维基数据属性。
舍去的属性有 G E N D E R GENDER GENDER, G I V E N N A M E GIVEN NAME GIVENNAME,和 I N S T A N C E O F INSTANCE OF INSTANCEOF等。
W I K I R E A D I N G L O N G WIKIREADING \;LONG WIKIREADINGLONG结果数据集包含197万条样例,其中50.4%是答案,并且第一个句子出现的次数只有31%。
在 W I K I R E A D I N G L O N G WIKIREADING\;LONG WIKIREADINGLONG数据集中,文章平均包含1.2k个标识符,多于 S Q u A D SQuAD SQuAD(平均122个标识符)和 C N N CNN CNN(平均763个,见表2)。
表1显示出在 W I K I R E A D I N G WIKIREADING WIKIREADING文章中,准确的回答经常是缺失的。
这是因为维基数据语句中包含类似于 N A T I O N A L I T Y NATIONALITY NATIONALITY等没有被明确提及但能够推断出来的属性。
这个数据集的一个缺点是问题和维基数据属性不是自然语言类型的问题,并且限制于858个属性。
为了构建更加真实的语言问题,我们收集了一下 W I K I S U G G E S T WIKISUGGEST WIKISUGGEST数据集。
我们使用Google Suggest接口来获得自然语言问题并且把它们提交到谷歌搜索。
在谷歌搜索从维基百科返回一个简短的答案后,我们就创建了一个问题和维基百科文章的答案。
如果文章中缺失了答案字符串,就证明这是一个虚假的问答对,例如(‘’‘橄榄球的一般时间是多长’,‘80分钟,40分钟’)。
因此,我们舍弃了没有精准答案的问答对。
在过滤后我们检查了50个样例,并且发现54%是能够在文章中找到形式良好的答案的问答对,20%的答案是在文章找不到根据的(答案字符串存在于不相关的语境中),并且26%是不正确的问答对,例如图3的最后两个样例。
数据收集在2016年5月份展开。
4 模型
我们的模型包含两部分(图1):一个句子快速选择模型(4.1节),其中定义了在给定输入问题(x)和文章(d)的一种句子概率分布 p ( s ∣ x , d ) p(s|x, d) p(s∣x,d);和一个更加复杂的答案生成模型(4.3节),其中根据问题和文章总结d(4.3节)生成一个答案y,文章总结d关注的是文章中的相关部分。
4.1 句子选择模型
在接下来的句子选择的工作中,我们建立了一个定义在句子 s 1 , s 2 , . . . , s d s1, s2, ... , s_d s1,s2,...,sd概率分布上的前馈网络。
我们考虑了三种简单的句子表示:词袋模型( B o W BoW BoW),分块模型,和一个卷积模型(可并行化)。
这些模型在处理长文件时是有效的,但是不能完全获取自然文本序列。
词袋模型
给定一个句子s,我们通过在s中标识符的平均嵌入的词袋表示该句子。
为了在文章句子中定义一个分布,我们使用了标准注意力模型,其中问题
x
x
x的
B
o
W
BoW
BoW表示和每个句子
s
l
s_l
sl的
B
o
W
BoW
BoW表示连接在一起,然后通过一个单词的前馈网络:
h
l
=
[
B
o
W
(
x
)
;
B
o
W
(
s
l
)
]
v
l
=
v
T
R
E
L
U
(
W
h
l
)
p
(
s
=
s
l
∣
x
,
d
)
=
s
o
f
t
m
a
x
(
v
l
)
h_l = [BoW(x); BoW(s_l)]\\ v_l = v^TRELU(Wh_l) \\ p(s=s_l|x,d) = softmax(v_l)
hl=[BoW(x);BoW(sl)]vl=vTRELU(Whl)p(s=sl∣x,d)=softmax(vl)
在上面的公式中,“;”代表了逐行连接,矩阵W,向量v和词嵌入都是已学习的参数。
块词袋模型
为了得到更精细的粒度,我们把句子分解成固定大小的更小的块(每个块七个标识符)并且分别为每个块标识分数。
如果问题是以句子为单位被回答的,那么通过学习不同块的注意力(注意力模型中的注意力attention)是非常有效的。
我们把句子 s l s_l sl分解成固定大小的块( C l , 1 , C L , 2 , . . . , C l , J C_{l,1},C_{L,2}, ..., C_{l, J} Cl,1,CL,2,...,Cl,J),对每个块生成一个 B o W BoW BoW表示,并且在 B o W BoW BoW模型中精确标识分数。
我们获得块上的一个分布,并且通过边缘化相似句子中的块来计算句子概率。
p
(
c
=
c
l
,
j
∣
x
,
d
)
p(c=c_{l,j}|x, d)
p(c=cl,j∣x,d)是句子块的分布概率,然后使用在
B
o
W
BoW
BoW模型中的相同参数来进行下方的公式计算:
p
(
s
=
s
l
∣
x
,
d
)
=
∑
j
=
1
J
p
(
c
=
c
l
,
j
∣
x
,
d
)
p(s=s_l|x,d)=\sum_{j=1}^Jp(c=c_{l,j}|x,d)
p(s=sl∣x,d)=j=1∑Jp(c=cl,j∣x,d)
卷积神经网络
虽然我们的句子选择模型被设计得处理速度很快,但是我们研究一个卷积神经网络( C N N CNN CNN)来构成附近单词的含义。
C N N CNN CNN在所有过滤器能够并行计算下仍然有效。
遵循之前的工作,我们联合了在问题 x x x和句子 s l s_l sl的标识符的嵌入,然后在联合嵌入上运行了一个 F F F个过滤器和宽度 w w w的卷积层。
结果是形成了每个长度为 w w w跨度的 F F F特征值,并且我们部署了最大时间池(max-over-time-pooling)来得到一个最终的表示 h l ∈ R F . h_l\in R^F. hl∈RF.
然后我们在 B o W BoW BoW模型中通过一个单一层前馈网络来计算 p ( s = s l ∣ x , d ) p(s=s_l|x, d) p(s=sl∣x,d)。
4.2 文章总结
在对句子计算注意力后,我们使用确定性的软注意力(deterministic soft attention)和随机的硬注意力(stochastic hard attention)来创建和问题相关的文章部分的总结。
硬注意力更加灵活,因为它能关注多个句子,然而软注意力能够更容易进行优化并且能够保留多个句子的信息。
硬注意力
我们给出一个句子 s ^ ∼ p ( s ∣ x , d ) \hat{s}\sim p(s|x,d) s^∼p(s∣x,d),然后在训练中把文章总结 d ^ = s ^ \hat{d}=\hat{s} d^=s^改成那句话。
在测试中,我们选择概率最大的句子。
为了扩展文章总结以包含更多信息,我们可以在文章中不替换地抽样K个句子,并且定义该总结为抽样句子的联合 d ^ = [ s ^ 1 ; s ^ 2 ; … ; s ^ K ] \hat{d}=[\hat{s}_1;\hat{s}_2;\dots;\hat{s}_K] d^=[s^1;s^2;…;s^K]。
软注意力
在软注意力模型中,我们根据 p ( s ∣ x , d ) p(s|x,d) p(s∣x,d)计算了句子中标识符的加权平均值。
更明确地说, d ^ m \hat{d}_m d^m是文章总结中的第 m m m个标识符。
然后,通过将每个句子的长度修改为M个标识符,混合的标识符按下面的公式进行计算:
d
^
m
=
∑
l
=
1
∣
d
∣
p
(
s
=
s
l
∣
x
,
d
)
⋅
s
l
,
m
\hat{d}_m = \sum_{l=1}^{|d|}p(s=s_l|x,d)\cdot s_{l,m}
d^m=l=1∑∣d∣p(s=sl∣x,d)⋅sl,m
其中
s
l
,
m
s_{l,m}
sl,m是第
l
l
l个句子的第
m
m
m个单词(
m
∈
{
1
,
…
,
M
}
m\in \lbrace 1,\dots,M \rbrace
m∈{1,…,M})。
当答案生成模型(4.3节)使用了一个向量序列作为输入,我们在词法层平均了标识符。
这是硬注意力的一种优势,因为它在没有混合来自不同句子的单词下抽样了“真实”的单词。
相反,软注意力更容易训练,有能力学习到与硬注意力相似的低熵分布。
4.3 回答生成模型
最先进的问答模型使用了 R N N RNN RNN模型去编码文章,进而提问并选择答案。
我们关注一个更快句子选择的层次模型,这个模型不符合特定的语言生成框架。
我们用占位符(placeholders)来实现一个词法级的最先进的序列-序列的模型,在Hewlett等人的论文中被描述。
该模型能够逐字生成没有出现在句子中的答案。
该模型输入问题标识符和文章(或文章总结)标识符,然后使用门递归单元(Gated Recurrent Unit, G R U GRU GRU)。
然后,答案使用另一个GRU模型来解码,定义答案分布 p ( y ∣ x , d ^ ) p(y|x,\hat{d}) p(y∣x,d^)。
在这个过程中,我们修改了原来的 R N N RNN RNN模型:解码器的输入词嵌入、输出词嵌入以及原始的共享词嵌入。
5 学习
我们考虑了三种方法来学习参数(以 θ \theta θ表示):(1)我们提出一个管道模型,使用距离监督来训练一个句子选择模型,独立于答案生成模型。(2)使用 R E I N F O R C E REINFORCE REINFORCE算法来优化硬注意力模型。(3)软注意力模型是完全可区分的,能够使用端对端的负反馈进行优化。
距离监督
虽然我们在句子选择时没有采取明确的监督,但是我们能够为标注句子定义一个简单的启发物。
我们给黄金句子了一个定义,就是第一个完全匹配答案串,或在没有完全匹配的情况下文章中的第一个句子。
通过对黄金句子进行标注,在给定文章和问题下,我们可以独立于标准监督学习来训练句子选择和答案生成,使黄金句子和答案的对数似然最大化。
y ∗ y* y∗和 s ∗ s* s∗是目标答案和句子, s ∗ s* s∗也被看做文章总结。
我们的目标是最大化:
J
(
θ
)
=
log
p
θ
(
y
∗
,
s
∗
∣
x
,
d
)
=
log
p
θ
(
s
∗
∣
x
,
d
)
+
log
p
θ
(
y
∗
∣
s
∗
,
x
)
J(\theta)=\log p_\theta(y*,s*|x, d)\\ =\log p_\theta(s*|x,d)+\log p_\theta(y*|s*,x)
J(θ)=logpθ(y∗,s∗∣x,d)=logpθ(s∗∣x,d)+logpθ(y∗∣s∗,x)
因为在测试时,我们无权访问在答案生成中被需要的句子
s
∗
s*
s∗,我们通过模型预测
arg
max
s
l
∈
d
p
θ
(
s
=
s
l
∣
d
,
x
)
\arg \max_{s_l\in d}p_\theta(s=s_l|d,x)
argmaxsl∈dpθ(s=sl∣d,x)替换了它。
强化学习
因为目标语句的缺失,我们在句子选择时使用强化学习,然后我们的目标是选择出一个高回报的句子。
我们把选择一个句子的回报定义为,在给定句子下正确答案的对数可能性,就是 R θ ( s l ) = log p θ ( y = y ∗ ∣ s l , x ) R_\theta(s_l)=\log p_\theta(y=y*|s_l,x) Rθ(sl)=logpθ(y=y∗∣sl,x)。
然后学习的目标是最大化这个预期的回报:
J
(
θ
)
=
∑
s
l
∈
d
p
θ
(
s
=
s
l
∣
x
,
d
)
⋅
R
θ
(
s
l
)
=
∑
s
l
∈
d
p
θ
(
s
=
s
l
∣
x
,
d
)
⋅
log
p
θ
(
y
=
y
∗
∣
s
l
,
x
)
J(\theta) = \sum_{s_l\in d}p_\theta(s=s_l|x,d)\cdot R_\theta(s_l)\\ =\sum_{s_l\in d}p_\theta(s=s_l|x,d)\cdot \log p_\theta(y=y*|s_l,x)
J(θ)=sl∈d∑pθ(s=sl∣x,d)⋅Rθ(sl)=sl∈d∑pθ(s=sl∣x,d)⋅logpθ(y=y∗∣sl,x)
与
R
E
I
N
F
O
R
C
E
REINFORCE
REINFORCE相同,我们使用了一个抽样来估计目标的梯度,
s
^
∼
p
θ
(
s
∣
x
,
d
)
:
\hat{s}\sim p_\theta(s|x,d):
s^∼pθ(s∣x,d):
∇
J
(
θ
)
≈
∇
log
p
θ
(
y
∣
s
^
,
x
)
+
log
p
θ
(
y
∣
s
^
,
x
)
⋅
∇
log
p
θ
(
s
^
∣
x
,
d
)
\nabla J(\theta)\approx\nabla\log p_\theta(y|\hat{s},x) + \log p_\theta(y|\hat{s},x)\cdot\nabla\log p_\theta(\hat{s}|x,d)
∇J(θ)≈∇logpθ(y∣s^,x)+logpθ(y∣s^,x)⋅∇logpθ(s^∣x,d)
因为抽样K个句子是相似的,所以被省略简写了。
使用 R E I N F O R C E REINFORCE REINFORCE被认为是不稳定的,因为抽样导致高方差。
为了减少方差,我们使用课程式学习(机器学习的一种),从距离监督开始训练,然后逐渐过渡到强化学习,与 D A G G E R DAGGER DAGGER相似。给定一个样例,我们使用距离监督将目标的每一步定义为 r e r^e re, r r r是衰减率, e e e是目前训练代数的索引。
软注意力
在给定输入问题和文章总结 d d d的条件下,我们通过最大化正确问题的对数似然来训练软注意力模型。
回忆答案生成模型中作为输入的问题 x x x和文章总结 d ^ \hat{d} d^,并且因为 d ^ \hat{d} d^是在句子选择中给定的平均句子权重,所以目标是可区分的,能够通过端对端进行训练。
6 实验
实验设置
我们使用数据集中的70%的数据用来训练,10%用来开发,20%用来测试。
我们使用每个文章中前35个句子作为层次模型中的输入,而且每个句子最大长度为35个标识符。
与Miller等人相似,我们为 W I K I S U G G E S T WIKISUGGEST WIKISUGGEST中的文章每个句子序列的结尾增加了前5个单词。
我们向句子表示中增加了句子索引,并将其作为一个one hot向量。
我们粗略地调参并修复了所有模型中的超参数。
在句子选择和回答生成模型中单词嵌入维度被设置成256.
我们在课程式学习中使用0.8的衰减率。
隐含层被修复在128,批量的大小是128,GRU状态数时512,词汇库大小是100K。
对于 C N N CNN CNN句子选择模型,我们使用100个过滤器,并将过滤器的宽度设置成5。
在开发集中,初始学习率和每个模型的梯度下降系数被调整了。
学习率的范围是0.00025, 0.0005, 0.001, 0.002, 0.004和0.5, 梯度下降系数是1.0。
我们每运行25k步就将学习率减半。
我们使用Adam优化器和 T e n s o r F l o w TensorFlow TensorFlow框架。
评估矩阵
我们主要的评估矩阵是答案准确率,就是问题被正确回答的百分。
在句子选择中,因为我们不知道哪个句子包含答案,所以我们通过匹配包含答案串 ( y ∗ ) (y*) (y∗)的句子来估计近似准确率。
对于软注意力模型,我们把高可能性的句子视为被预测的句子。
模型和基准
模型 P I P E L I N E PIPELINE PIPELINE, R E I N F O R C E REINFORCE REINFORCE, S O F T A T T E N D SOFTATTEND SOFTATTEND对应第5节的学习目标。
我们比较将这些模型和以下基准相比:
F I R S T FIRST FIRST总是选择文章中的第一句。
第一句就是答案在 W I K I S U G G E S T WIKISUGGEST WIKISUGGEST和 W I K I R E A D I N G L O N G WIKIREADING\;LONG WIKIREADINGLONG的文章中分别占33%和15%。
B A S E BASE BASE是Hewleett等人研究出最好的模型的重新实现,它使用前300个标识符。我们使用提供的额外标识符来进行实验,用它们来匹配层次模型中使用的文章长度,但是效果不是很好。
O R A C L E ORACLE ORACLE选择带有答案串的第一个句子,如果该句子不存在就选择文章中的首句。
答案准确结果
表3总结了所有数据集的答案准确率。
我们使用 B o W BoW BoW来为句子选择进行编码,因为它是最快的。
提出的层次模型表现与基准相同,或者甚至超过基准,因为减少它显著地减少了RNN的步骤,从300到35(或者在K=2时是70),并且能够访问文章中后面的部分。
图4给出了我们系统的速度增益。
在训练时数据的吞吐量能够在增加批量的大小来进行优化,在测试时真实问答系统使用批量大小为1, R E I N F O R C E REINFORCE REINFORCE获得3.5倍-6.7倍的增速(K=2或K=1)。
在所有设置中, R E I N F O R C E REINFORCE REINFORCE至少比 B A S E BASE BASE模型快3倍。
所有的模型都比FIRSE基准表现好,并且利用代理oracle句子(ORACLE)能够提升在 W I K I S U G G E S T WIKISUGGEST WIKISUGGEST和 W I K I R E A D I N G L O N G WIKIREADING\;LONG WIKIREADINGLONG。
在 W I K I R E A D I N G WIKIREADING WIKIREADING中,在代理oracle句子经常是缺失并且文章很短的情况下, B A S E BASE BASE表现超过 O R A C L E ORACLE ORACLE。
R E I N F O R C E REINFORCE REINFORCE结合了学习答案生成和语句选择,表现比 P I P E L I N E PIPELINE PIPELINE好是依靠在句子选择中的噪声监督信号。
在 W I K I R E A D I N G L O N G WIKIREADING\;LONG WIKIREADINGLONG中51%的样例缺少句子选择的近似监督,而在 W I K I S U G G E S T WIKISUGGEST WIKISUGGEST的样例中占比22%,在 W I K I R E A D I N G L O N G WIKIREADING\;LONG WIKIREADINGLONG中能够提升更多。
W I K I R E A D I N G L O N G WIKIREADING\;LONG WIKIREADINGLONG, R E I N F O R C E REINFORCE REINFORCE比所有其它模型都要好(除了 O R A C L E ORACLE ORACLE,因为它能够在测试时利用所有黄金标签)。
在其它数据集中, B A S E BASE BASE比我们提出的模型表现得稍微好一些,但以速度为代价。
在这些数据集中,答案聚集在前面的句子中。
B A S E BASE BASE在分类问题上表现更有优势(例如 G E N D E R GENDER GENDER),因为能够从整个文章中收集很多证据,但以速度为代价。
值得高兴的是,我们的系统在 W I K I R E A D I N G WIKIREADING WIKIREADING中几乎达到了 O R A C L E ORACLE ORACLE的表现,显示出在有限的标识符设置上能有很好的结果。
将一个额外的句子抽样到文章总结中能够在所有的数据集中提高性能,体现出硬注意力比软注意力更有灵活性。
在 W I K I R E A D I N G L O N G WIKIREADING\;LONG WIKIREADINGLONG中,增加额外的抽样能够允许在错误中恢复,因为句子选择更加有挑战性。
在硬注意力和软注意力对比的条件下,我们发现 R E I N F O R C E REINFORCE REINFORCE比 S O F T A T E N D SOFTATEND SOFTATEND表现更好。
通过软注意力模型学习到的注意力分布通常不会达到峰值,从而产生嘈杂的摘要。
语句选择结果
表4给出了句子选择准确度,通过展示在ORACLE找到代理黄金句子后,模型选择该代理黄金句子的时间比例的方法。
在 W I K I R E A D I N G L O N G WIKIREADING\;LONG WIKIREADINGLONG中, R E I N F O R C E REINFORCE REINFORCE在74.4%的样例中找到了近似黄金句子,这些样例的答案在文章中。
在 W I K I S U G G E S T WIKISUGGEST WIKISUGGEST的结果是67.5%,最有可能是数据中噪音的影响。
P I P E L I N E PIPELINE PIPELINE稍微表现好一些,因为它是直接面向我们的嘈杂评价(noisy evaluation)进行训练的。
可是,不是所有包含答案的句子都是对回答问题是有用的。
R E I N F O R C E REINFORCE REINFORCE学习去选择可能生成正确答案而不是代理黄金句子的句子,使其能够提升最后答案的准确度。
在 W I K I R E A D I N G L O N G WIKIREADING\;LONG WIKIREADINGLONG中,复杂的模型( C N N CNN CNN和 C H U N K B o W CHUNKBoW CHUNKBoW)表现比简单的 B o W BoW BoW要好,然而在 W I K I S U G G E S T WIKISUGGEST WIKISUGGEST中 B o W BoW BoW表现最好。
定性分析
我们在表5中分类了误差的主要原因并且在表6中对每个误差类型给出了一个样例。
所有的样例都来自使用 B o W BoW BoW的 R E I N F O R C REINFORC REINFORCE句子选择过程。
在 W I K I R E A D I N G L O N G WIKIREADING\;LONG WIKIREADINGLONG中最常见的误差来源是在文章中缺乏证据。
尽管数据集中不包含错误答案,但文章不总是提供支撑证据(没有线索的属性样例是ELEVATION ABOVE SEA LEAVEL and SISTER)。
有趣的是,答案串仍然能够出现在文章中就像表6中的第一个样例:"Saint Petersburg"出现在文章中(第4句话)。
在正确句子被选择后,答案生成过程仍然多次生成答案失败。
在长答案中更是出现这样的情况。
对于自动收集的 W I K I S U G G E S T WIKISUGGEST WIKISUGGEST数据集,有噪音的问答对是处理更加困难的,像在节3中讨论的那样。
可是,模型会频繁得猜测出虚假的答案。
我们将 W I K I S U G G E S T WIKISUGGEST WIKISUGGEST中的句子选择有更高的代理性能归因于噪音。
在人工分析过程中,句子选择在 W I K I R E A D I N G L O N G WIKIREADING\;LONG WIKIREADINGLONG中更加困难,这解释了抽样两个句子能够提高性能的原因。
在第一次正确预测中(表6),模型生成了答案,甚至答案不在文章中。
第二个样例显示出我们的模型在没有明显线索下能够得到相关句子的时间。
最后的样例是模型在距离文章开头跨度很大的地方得到的句子。
图5包含了一个在不同学习进程中句子注意力分布即 p ( s l ∣ d , x ) p(s_l|d,x) p(sl∣d,x)的可视化。
W I K I S U G G E S T WIKISUGGEST WIKISUGGEST和 W I K I R E A D I N G L O N G WIKIREADING\;LONG WIKIREADINGLONG在答案串的增加频率上的对比图明显是最左边的那个图。
与 B o W BoW BoW和 C N N CNN CNN相比, S O F T A T T E N D SOFTATTEND SOFTATTEND和 C H U N K B o W CHUNKBoW CHUNKBoW的注意力分布显然地在句子上分布更均匀。
7 相关工作
人们对于阅读理解的数据集有很大的兴趣。
M C T e s t MCTest MCTest是一个关注于常识推理的小规模数据集; b A b i bAbi bAbi是一个获取推理各个方面的综合数据集; S q u A D SquAD SquAD和 N e w s Q A NewsQA NewsQA是文章中回答的连续一段话的问答数据集。
与 W i k i r e a d i n g Wikireading Wikireading相比,一些数据集只覆盖了更短的文章( S Q u A D SQuAD SQuAD中平均122个词)。
完型填空式的问答数据集评估了机器理解但是没有生成问题。
最近发布的 M S M A R C O MS MARCO MSMARCO数据集包含了查询日志,网站文章和大众的答案。
T R E C Q A TREC QA TRECQA、 W i k i Q A WikiQA WikiQA、 S e l Q A SelQA SelQA数据集中研究了答案句子选择。
最近,神经网络模型在 T R E C TREC TREC数据集中完成优化。
Sultan等人优化了答案句子提取和答案提取,但是两部分都有黄金标签。
Trischler等人提出了一个模型,分享了在多重粒度输入的发现(句子,单词),但是解决了多重选择问题。
我们的模型把答案句子选择视为隐含的,并且生成答案串而不是选择文字段,我们发现 W I K I R E A D I N G WIKIREADING WIKIREADING数据集在精简后最符合我们的目的,与 T R E C TREC TREC数据集只有2K个问题相比,该数据集能够提供197万个样例。
层次模型把句子选择视为一个中的隐含变量,并被应用在文字分类、提取摘要、机器翻译、情感分析中。
据我们所知,我们是第一个将文件自然层次结构用在问答中的人。
最后,我们的工作和强化学习有关。
硬和软注意力在字幕生成语境中被测试。
课程式学习在Sachan和Xing的论文中被研究,但是他们关注的是训练样例的顺序,然而我们结合了监督信号。
强化学习最近在共指解析、信息提取、语义分析和文字游戏等任务中受到欢迎。
8 总结
我们提出了一个从粗到细的长文章问答,能够快速聚焦到文章的相关部分。
在未来的工作中我们将强化使用段结构、题目、选段等结构化的线索并在多个文件上回答问题。
共指解析将是我们未来工作的另一个重要方向。
我们强调开发能够在巨大数量的文字上并能够高效回答用户需要的信息的系统是非常有必要的。