论文阅读:Unsupervised Question Answering by Cloze Translation


Facebook AI Research发表在ACL2019
论文地址:https://arxiv.org/abs/1906.04980
论文代码:https://github.com/facebookresearch/UnsupervisedQA


0. 摘要

这是一篇讲无监督的问题生成的文章。本文提出的研究思路是:(1)先用无监督方法生成文本内容(context)、问题(question)、答案(answer)三元组。(2)基于上述三元组自动合成抽取式问答的训练集。其中,无监督方法生成文本内容的步骤如下:

  • 从大量文档中随机选取段落(context paragraphs)
  • 再从段落中随机地选出名词短语(nou phrases)或命名实体作为答案
  • 将段落中的答案转为完形填空形式的cloze questions
  • 再将cloze questions转为自然语言问题

本文提出并对比了多种完形填空问句到自然语言问句转换的无监督方法,其中包括(1)基于自然问句非对齐语料和完形填空问句的无监督机器翻译模型(2)基于规则的方法。通过实验发现,现代的QA模型在本文合成的数据集上训练之后,竟然可以回答自然语言方式的问题。本文证明了,即使不使用任何的SQuAD数据集,本文的方法也能够让现代模型在SQuADv1上取得56.4 F1,对于答案是命名实体类型的数据集(该数据是SQuADv1的子集,其答案都是命名实体)则可以获取更高的64.5 F1,这超出了早期的监督式学习模型。

1. 介绍

EQA即Extractive Question Answering,抽取式问答即答案在给定的文档中。对于典型的benchmark数据集SQuAD (Rajpurkar et al., 2016), 当前的模型已经击败了人类标准的性能;还有 SQuAD 2.0 (Rajpurkar et al.,2018), funetuning BERT 也可以匹配人类的性能。最近提出的Natural Questions语料库 (Kwiatkowski et al., 2019), 也快接近了人类性能。然而这些模型需要大量的训练数据。但是如果对于新的语言领域,收集这样的训练数据是要耗费巨大的人力物力的。那么如果没有可用的训练数据又该怎么办呢?

没有对齐的上下文、问题、答案的时候,这篇文章使用无监督的EQA解决了以上问题。本文将EQA转为无监督的问题生成:如果有一个方法,不需要使用监督QA,就能够在给定文档后生成准确的问题,那么就可以利用生成的问题训练一个QA系统。这个方法可以直接利用QA领域的最新进展,比如新的模型框架和预训练方法。这个方法具有很大的灵活性和可拓展性。本文所提出的方法也能够用于在半监督下训练数据的增强。

模型架构

在这里插入图片描述
图1:我们的方法示意图。 右侧(虚线箭头)代表传统的EQA。 我们介绍了无监督数据生成(左侧,实心箭头),用于训练标准EQA模型。

模型描述:如图一所示,生成EQA训练集有3个步骤:
(1) 在目标领域(比如本文是英文的Wikipedia)中采样一个段落
(2) 使用预训练的方法组件,如NER或者名词识别器识别出上述段落中的候选答案,组成候选答案集。这里使用到的组件方法虽然是监督式的,但是没有用到形如(question,answer)或(question,context)的对齐数据。总结就是,从候选答案和原始段落中生成完形填空问题。
(3) 最后采用无监督的完形填空问题-自然问句转换器,将上述的完形填空问题转为自然问句

其中,上述步骤中最具有挑战性的是 完形填空问题转为自然问句 。可以基于复杂的规则(Heilman and Smith, 2010)完成陈述句到文具的转换(仅限于英文),另外在QA系统上的性能表现也较弱。当需要处理其他领域或者语种时,需要大量的工程师工作来开发类似的算法。该方法特定性太强。如果在完形填空问题转为自然问句这个任务上引入监督式方法(Du et al. 2017; Du and Cardie 2018; Hosking and Riedel 2019, inter alia),则由于需要人工标注而与初衷不符。本文对于该任务的解决方案源于无监督机器翻译 (Lample et al., 2018, 2017; Lample and Conneau, 2019; Artetxe et al., 2018)。其中,我们需要收集大量的自然语言形式的问句语料和未对齐的的完形填空问题语料,并联合在线back-translationde-noising auto-encoding技术训练一个seq2seq模型以实现自然问句和完形填空问题之间的映射。

实验发现,联合使用当下先进的QA模型框架,本文提出的无监督QA能够取得比早期监督方法(Rajpurkar et al., 2016)更好的结果。实验发现通过词的移除和翻转而产生的(非自然的)的完形填空问题比基于规则的方法性能更好。而无监督的seq2seq模型均比移词或翻转词的引入噪声型和基于规则的系统表现更好。实验中还证明本文的方法能够用于小样本学习,比如只用32个标注样本F1值就可以取得59.3,而不使用本文方法F1值只能为40.0。

总结一下,本文有以下贡献:
(1) 首次在无监督QA中提出解决方案,将无监督QA任务转为无监督的完形填空变换任务。其中使用的关键技术是无监督机器翻译。
(2)广泛地实验验证多种完形填空问题转换算法和假设
(3)通过实验证明本文方法在EQA中的小样本学习的有效性。

2. 无监督的EQA

符号化抽取式问答:给定问题 q q 和文本 c c ,需要提供一个答案 a = ( b , e ) a=(b,e) ,其中 b b 是起始位置, e e 是结束位置。图1的右半部分是这个过程的图示。

我们提出了解决这个问题的两阶段的办法。

  • 首先,不使用任何QA监督设计一个生成式模型 p ( q , a , c ) p(q,a,c)
  • 然后使用 p p 作为生成器训练一个判别模型 p r ( a q , c ) p_r(a|q,c) ,生成器 p ( q , a , c ) = p ( c ) p ( a c ) p ( q a , c ) p(q,a,c)=p(c)p(a|c)p(q|a,c) 会以一个逆向的形式产生数据。先通过 p ( c ) p(c) 采样一段文本,再通过 p ( a c ) p(a∣c) 计算文本范围内的答案,最后通过 p ( q a , c ) p(q | a, c) 得到该答案和文本所对应的问题。

2.1 文本和答案生成

对给定的文档语料,利用文本生成模型 p ( c ) p(c) 从中均匀采样出一个长度合适的段落 c c 。通过 p ( a c ) p(a∣c) 生成答案,这个步骤包含了什么是好答案的先验概率。这里对 p ( a c ) p(a∣c) 提出2个简单的变体:

名词短语(Noun Phrases):
在段落 c c 中抽取出所有的名词短语,并从这个集合中均匀采样来生成一个可能的答案。这需要块处理算法(chunking algorithm)。

命名实体(Named Entities):
我们可以进一步限制候选答案为命名实体。为此,需要基于NER系统抽取出全部的命名实体提及,再均匀采样。这样也降低了问题的多样性。其有效性参见3.2节。

2.2 问题生成

可以说,QA系统中核心挑战是问题和答案之间的关系建模。这可以在问题生成模型 p ( q a , c ) p(q∣a,c) 中被捕获。我们将这一步分为2个步骤:

  • 完形填空生成: q = c l o z e ( a , c ) q′=cloze(a,c)
  • 问题转换: p ( q q ) p(q∣q′)

完形填空生成

完形填空问题(Cloze questions)是将答案遮蔽的陈述句。
(1)第一个想法是根据答案选用答案周围的句子,比如这个想法的结果为:
"For many years the London Sevens was the last tour nament of each season but the Paris Sevens became the last stop on the calendar in ___"。

(2)另外可以通过限制答案周围的子类以进一步降低长度。可以将上述结果句子进一步缩减为"the Paris Sevens became the last stop on the calendar in ___"。

完形填空转换

在生成上述完形填空 q q′ 后,可以进一步转为更贴近真实QA任务的形式。本文这里探索4种方法:

恒等映射(Identity Mapping)
我们认为完形填空问题本身提供了能够学习QA行为的信息。为了验证这个假设,本文采用Identity Mapping作为完形填空转换的baseline。为能够产生"questions"(与真实QA任务中使用相同词典),用wh*单词(随机选择或简单的启发式规则,参见2.4节)替换被遮蔽的token。

噪声化的完形填空(Noisy Clozes):
描述完形填空问题和自然问题之间的区别的一种方法是把这种差别作为一种干扰形式。为提升对扰动的鲁棒性,可以在完形填空问题中引入噪声。具体操作如下:

  • 删除完形填空问题 q q′ 中被遮蔽的token,
  • 再对其使用一个简单的噪声函数(Lample et al. (2018),在头部添加一个wh*单词(随机选择或简单的启发式规则,参见2.4节)和在末尾添加一个问题mark。

其中噪声函数由word dropout、词序组合和词遮蔽这三个操作组成。如此可以(至少对于SQuAD)简单地学习一个函数来识别与问题有n-gram重叠的答案片段,且对词序的扰动具体一定的容错能力。

基于规则(Rule-Based):
将句子中的答案嵌入到一个 ( q , a ) (q,a) 对中可以被理解为一种带有wh-移动wh-词 类型依存选择的句法转换。对于英文,现有的软件已经支持该功能,本文使用Heilman and Smith (2010)提出的陈述句-问句 生成器。该生成器使用一系列的规则生成候选问句,再使用一个排序系统选出最佳结果。

序列到序列(Seq2Seq)
上述方法要么需要巨大的工程量和先验知识(基于规则),要么生成结果与自然句子仍然相距较大**(identity mapping, noisy clozes)**。本文通过一个无监督的seq2seq模型解决上述2个问题。该seq2seq模型能够实现完形填空问题和自然问题之间的转换。更多细节参见2.4节。

2.3 问答

通过生成模型得到抽取式问答的答案,至少有以下2种方法:

训练一个独立的QA系统:

在我们论文设置中,对于可用的任何QA框架中,训练集都来自于本文生成器的生成。但是,生成器生成的数据不太可能达到真实QA数据集的质量,所以希望QA模型能够学习到基本的QA行为。

使用后验概率:

另一个抽取答案 a a 的方法是求最大后验概率 p ( a c , q ) p(a∣c,q) 。假设在给定文本的前提下,答案概率 = p ( a c ) =p(a∣c) ,这等价于计算 arg max a p ( q a , c ) \arg \max _{a^{\prime}} p\left(q | a^{\prime}, c\right) ,通过试验每个候选答案生成该问题的概率即可。该方法与Lewis and Fan (2019)中的监督方法类似。

2.4 无监督完形填空转换

为了训练一个seq2seq模型以实现完形填空转换,这里借鉴无监督机器翻译(NMT)领域中的近期成果。这些方法的核心是没有平行语料的源数据和目标语言的句子。这些语料中,源句子不存在任何到目标语言的翻译句子,反之亦然。具体地,在本文的配置上,我们致力于学习一个能够映射自然问题(target)和完形填空问题(source)的函数,而无需平行语料。本文仅需要大量的完形填空问题 C C 和自然问题 Q Q

完形填空语料

完形填空语料 C C 的创建是依照2.2节中的方法。从Wikipedia 段落中随机采样5M的完形填空问题,并基于每个答案片段和完形填空边界创建一个语料 C C 。当存在答案实体类型信息(即. NE标签),则使用特定类型的mask来遮蔽token,以表示5种高级的答案类型。即用5种mask来区分答案类型。更多细节参考附件A.1。

自然问题语料

至于自然问题的收集,则是从英文网页中爬取获得。语料 Q Q 则是从中再采样出的5M问句,其中每个以wh*开头的问句数量是相等的。

Lample et al. (2018)一样,使用 C C Q Q 训练变换模型 p s t ( q q ) p_{s \rightarrow t}\left(q | q^{\prime}\right) p t s ( q q ) p_{t \rightarrow s}\left(q^{\prime}|q \right) 。其中模型的训练联合使用了denoising autoencoding的域内训练和online-backtranslation的跨域训练。这一定程度上也可以视为一种风格转换任务,与Subra- manian et al. (2018)相似。在推断阶段,自然问句通过 arg max q p s t ( q q ) \arg \max _{q} p_{s \rightarrow t}\left(q | q^{\prime}\right) 生成。更多的实验细节参考附件A.2。

Wh*的启发式:

为"identity mapping"和"noisy cloze"的问题生成器提供合适的wh*单词,本文引入一种简单的启发式规则,以将每个答案类型映射到最合适的wh*单词。比如,答案类型为TEMPORAL则映射为when。实验过程中,发现无监督神经机器翻译的变换函数有时候会映射错,即将答案类型映射到不适当的wh*单词,所以也采用wh*启发式方法来生成问句。对于神经机器翻译模型,在训练期间采用启发式在目标问句的头部添加wh*所映射的答案类型。比如,问句以when起始,则在头部添加"TEMPORAL"。更多细节参考附件A.3。

3. 实验

  • 探索QA系统在没有使用 ( q , a ) (q,a) 对数据时的性能表现
  • 本文方案与其他监督方法的对比
  • 本文方案与其他不需要训练集的无监督方法的对比
  • 不同设计策略对QA系统性能的影响
  • 验证本文方法是否能够应用于小样本学习
  • 评估无监督的NMT是否可以作为生成问题的有效方法

3.1 无监督QA实验

对于合成的数据集,我们采用以下2种QA模型进行训练:finetuning BERT和BiDAF+Self Attention。对于最大后验概率法,从句子及其从句中抽取出完形填空问题,再使用神经机器翻译NMT方法估计 p ( q c , a ) p(q∣c,a) 。评测指标,使用的是标准的完全匹配(EM)和F1值

无监督训练过程,由于假设无法获取到dev set,所以QA模型训练的停止条件是QA系统的性能指标在合成的数据中的留存数据集上稳定不变。此外,还采用SQuAD中的dev set来评估模型中哪个组成成分更为重要(参见3.2节)。为保留SQuAD 测试数据的完整性,在向test server提交结果的时候仅提交本文最佳的系统。

本文方案与公开的baseline做了对比。Rajpurkar et al. (2016)提出在监督逻辑回归模型引入特征工程,并采用一个滑动窗口查找单词与问句的重叠作为答案。Kaushik and Lipton (2018)采用监督方法训练的模型无视输入问句信息,而仅简单地从文档段落中抽取出最相似的答案片段。据我们所知,本文是第一个专门针对SQuAD非监督QA的工作。Dhingra et al. (2018)集中研究的是半监督QA,但确实公布了一个无监督的评估结果。为了对比的公平性,本文利用他们公开的数据重新实现了他们的方法,并训练了BERT-Large的一个变体。他们的方法也使用完形填空问题(cloze questions),但是没有用到转换操作(translation),且严重依赖Wikipedia文章的结构。

本文提出的方法在SQuAD的测试集能够取得的最好结果是54.7F1,而由5个模型(不同种子点)做集成能够进一步取得56.4F1。表1 记录了baselines、监督学习及其无监督QA模型在SQuAD 上的表现。
在这里插入图片描述
从中可以看出,本文的方案显著超出baseline系统及其BiDAF+SA[Dhingra et al. (2018)],并超过早期的监督式系统。

3.2消融研究和分析

为了了解不同组成部分对于结果性能的贡献,本文在SQuAD dev set上进一步做了消融研究。主要对BERT-base和BiDAF+SA这两个模型进行消融研究。消融研究结果如表2 所示。
在这里插入图片描述
最大后验概率 vs. 在生成数据集上训练:
将最大后验概率与BERT-base和BiDAF+SA对比发现,在训练的QA模型上比采用最大问句似然要有效得多。这部分归因于QA模型能够归纳答案片段,从而在测试时返回的答案并不总是涉及命名实体。BERT模型还具有语言预训练的优势,进一步提高了泛化能力。

答案先验知识的影响:
命名实体(NEs)比名词短语(NPs)更有效。在相同的BERT-base模型上,用引入NEs信息相比引入NPs信息平均可以提升8.9F1。Rajpurkar et al. (2016)估计SQuAD中52.4%的答案是NEs,而84.2%的答案是NPs(设定NEs是NPs的子集)。但是根据本文的研究发现,每段文本中大概有14NEs,而NPs有33个,因此在训练过程中采用NEs可以降低候选答案的搜索空间。

问题长度和重叠程度的影响:
从图2可以看出,采用从句进行生成会导致生成的问题更短,且与原始上下文的公共子序列也更短。这其实更贴近SQuAD问句的分布。降低完形填空问题的长度有助于translation操作生成更简单且更精确的问题。在BERT-base上采用从句比采用整个句子平均要高出 4.0 F1。采用"noisy cloze"的完形填空转换方式生成的问题比NMT更短,同时也更短的公共子序列(由于词扰动噪音)。
图2
完形填空转换方式的影响:
噪声的效果类似正则化,在BERT-base上对比"noisy"转换方式和"identity"的转换方式,发现前者平均高出后者 9.8 F1。无监督的NMT效果更佳,又比"noisy"的转换方式平均高出 1.8 F1。

QA模型的影响:
在QA模型上的对比,再次说明BERT-base比BiDAF+SA更优秀。BERT-Large(不在表2中)则更是比本文最好的模型高出 6.9 F1。

基于规则生成数据的影响:
采用基于规则(RB)系统生成训练集训练出的QA模型,其结果性能无法与NMT方法相比。为了验证是否由于答案类型不同而导致的,我们做了以下处理:
(a)RB系统中生成的问题如果与本文的(NE类型)答案不一致,则去除
(2)本文生成的问题如果与RB系统中的答案类型(NE)不一致,则去除

表3的结果表明当RB系统中的问题按照文本答案类型进行一次筛选后,可以性能可以提升。而如果用RB系统的数据反过来限制本文的数据生成方案则会降低性能。

3.3 错误分析

实验中发现QA模型虽然使用的训练集中只有NE类型的答案,但是预测答案时并不总是选用命名实体作为答案。将SQuAD数据集按照答案是否NE类型划分问题后,对于答案类型为NE类型的数据集,模型的性能提升为 64.5 F1,对于答案类型不是NE类型的数据集,模型的性能仍然有47.9 F1。我们归因于:由于预训练的BERT已经捕获一定的语言学特征,所以能够归纳出NEs在句子中所起的语义作用,而不是简单地模仿NER系统。对于BiDAF+SA模型当答案类型是NE,则F1为 58.9,当答案类型是非NE,则F1 骤降到23.0。

图3 展示了本文系统对不同类型问题和答案类型的性能结果。本文系统对于"when"问题处理得最好,这类问题的答案空间更小。但是对于"what"问题由于答案类型更广泛而处于挣扎边缘,因此每次给出的答案由于置信不足而总是以多凑数。在答案类型这个维度可以看出,“TEMPORAL"类型的答案表现最好,这与"when"问题是一致的。
在这里插入图片描述

3.4 UNMT-生成问题分析

虽然本文的方案是致力于提升下游QA模型的性能,但是对无监督NMT(UNMT)完形填空转换系统的输出结果进行检验也有一定的指导意义。无监督NMT此前在单语种设置用到(Subramanian et al.,2018),但是cloze-to-question生成更具挑战,一方面由于完形填空问题和自然问句单词长度是非对称的,另一方面在转换时需要保留答案,而不仅仅是浅层的转换风格。图4展示了不使用wh*启发式规则时,模型能够用合适的wh*单词作为答案类型学习生成问题。但是对于Person/Org/Norp 和数值类型答案,仍有较大提升。
在这里插入图片描述
表4展示了来自NE无监督NMT模型的代表性样本。模型通常复制输入的大部分。也如图2所示,生成的问题平均有来自上下文的9.1个连续token子序列,对应于逐字复制生成的问题的56.9%,相比于 SQuAD问题的4.7个token(46.1%)。这并不奇怪,因为反向翻译训练的目标是最大限度地重建输入,鼓励保守翻译。
在这里插入图片描述
图3显示了我们的系统在不同类型的问题和答案类型下的性能。该模型在“when”问题上表现最好,因为“when”问题的潜在答案较少,而“what”问题的语义类型范围更广,因此每个上下文的答案更合理。该模型在“TEMPORAL”答案上表现良好,与“when”问题的良好表现相一致。

3.5 小样本问答

最后,我们考虑了仅有限数量的带标签的训练数据的小样本学习任务。 我们follow了Dhingra et al. (2018) and Yang et al. (2017)的方法,针对少量训练样本进行训练,并使用开发集进行早期停止。 我们使用 Dhingra et al. (2018)提供的拆分,但切换开发和测试拆分,以使测试拆分具有n路注释的答案。 我们首先使用第3节中的最佳配置对BERT-large QA模型进行预训练,然后使用少量的SQuAD训练数据进行微调。 我们将此与我们复现的Dhingra et al. (2018),并直接在可用数据上训练QA模型,而无需进行无监督的QA预训练。

本文方案在处理少样本时候的表现如下图5所示。与Dhingra et al. (2018)一样,我们的数量是通过使用比训练集更大的用于早期停止的开发集来获得的。因此,这并不是低数据状态下性能的真正反映,但我们可以对模型进行比较分析。
我们发现我们的方法在数据匮乏的情况下表现最好,与Dhingra et al. (2018)类似。我们还要注意
BERT-Large本身非常高效,仅用1%的可用数据就可以达到60%的F1值
在这里插入图片描述

4. 相关工作

无监督领域:
最相关的工作是无监督NMT中的成果,具体参考Conneau et al., 2017; Lample et al., 2017, 2018;Artetxe et al., 2018的论文。另一个较为相关的成果是(Subramanian et al., 2018)的风格迁移论文。

半监督QA:
Yang et al. (2017)训练的QA模型也能够生成新的问题,但是需要标注数据。Dhingra et al. (2018)对其方法进行简化,在问题生成中虽然是无监督的,但是并不针对非监督的QA也无法生成自然的问题。此外,该方法一方面对用于问题生成的文本要较强的要求和限制,另一方面还需要Wikipedia的摘要段落。Chen et al. (2018)在WebQuestions上采用半监督方法提升了语义分析性能。Lei et al. (2016)采用半监督方法进行问题相似性的建模。Golub et al. (2017)提出一种可以生成特地领域QA训练样本的方法,以实现SQuAD和NewsQA之间的迁移学习。另一种半监督的方式是将外部知识引入到QA系统,Weissenborn et al. (2017) and Mihaylov and Frank(2018)在QA任务中引入了Conceptnet(Speer et al., 2016)

问题生成:
早期是基于模板和语法规则,再往后就是在模型上加入问题生成的排序功能和从符号角度进行研究。近期则发展为采用监督式的神经网络方法,(Du et al., 2017; Yuan et al., 2017; Zhao et al., 2018; Du and Cardie, 2018; Hosking and Riedel, 2019)尝试基于SQuAD数据集中的 c , a c,a 对生成问题。

5.讨论

值得注意的是,本文方案中的最优结果是需要借助NER系统(直接采用OntoNotes 5的标注数据)和用于提取子句的解析器(基于Penn Treebank训练而得)。此外,还用到特定语言(本文指英语语种)的wh*启发式规则以训练最优的NMT模型。以上这些限制了本文方案的适用性和灵活性,只能局限于某些有丰富语料资源(NER和treebank datasets)的特定领域和特定语种。此外,本文的方案还需要一些额外的人工特征工程,比如定义新的启发式规则。

尽管本文的方案存在上述不足,但是本文的方案从无需(question,answer)、(question,context)对 ,从这个角度看确实是无监督的。而(question,answer)、(question,context)数据对在标注大规模QA训练数据集时是最艰难的。

本文中使用到的"noisy cloze"系统由简单的规则和噪声组成,但是其性能近乎可以与复杂的最优系统媲美(可回查表2)。尽管这种简单的方法缺乏与问题相关的语法和句法。采用"noisy cloze"系统生成的问题在接受问句评估的"well-formed"中自然也显得很拙劣,只有2.7%是"well-formed"。这些结果表明对于SQuAD而言,问题是否自然语言形式显得没那么重要,即使是使用强question-context的词匹配方式也能够取得足够好的性能。这部分工作可以参考Jia and Liang (2017),该文作者证明了即使是有监督的模型也依赖于单词匹配。

需要补充说明的是,本文提出的问题生成方案无需多跳或者多句子的联合推理,但仍然能够在SQuAD上取得不俗的成绩。事实上,Min et al. (2018)指出SQuAD中90%的问题只需要原文中的一个句子即可应对,Sugawara et al. (2018)则发现SQuAD中76%的问题和答案存在高度的token重叠。

6.总结

本文探索抽取式QA的无监督解决方案。最终发现,本文所提出的无监督方案确实可行,且超越简单的监督系统,并远远优于其他不使用标注数据集的无监督方法。本文的无监督方案在SQuAD上取得 56.4 F1,进步一步在答案类型是命名实体的子数据集上取得64.5 F1。与此同时,需要注意的是虽然在这个相对简单的QA任务结果令人鼓舞,但是未来工作需要处理更多具有挑战QA问题,减少我们对语言资源和启发式的依赖。

发布了21 篇原创文章 · 获赞 3 · 访问量 623

猜你喜欢

转载自blog.csdn.net/qq_38293297/article/details/104570116