摘要
自然语言理解包括文本蕴含、问答、语义相似度评估、文档分类等多种多样的任务。虽然大量的未标记文本语料库非常丰富,但用于学习这些特定任务的标记数据却很稀缺,这使得通过判别式训练得到的模型难以达到足够的性能。我们证明,通过对一个语言模型在未标记文本的多样语料库上进行生成式预训练,然后对每个特定任务进行判别式微调,可以在这些任务上实现很大的提升。
与之前的方法相比,我们在微调过程中使用了任务感知的输入转换,以实现在最小修改模型架构的同时进行有效迁移。我们在自然语言理解的多种基准测试中验证了我们的方法的有效性。
我们的通用任务无关模型在12个研究任务中的9个上显著优于使用为特定任务定制的架构的判别式训练模型。例如,我们在常识推理(Stories Cloze Test)上实现了8.9%的绝对提升,在问答(RACE)上实现了5.7%的提升,在文本蕴含(MultiNLI)上实现了1.5%的提升。
引言
从原始文本中有效学习的能力对于减轻自然语言处理(NLP)中对监督学习的依赖至关重要。大多数深度学习方法都需要大量的手动标记数据,这限制了它们在许多缺乏标注资源的领域中的适用性。在这些情况下,能够利用未标记数据中的语言信息的模型为收集更多标注数据提供了宝贵的替代方案,而收集标注数据既耗时又昂贵。此外,即使在有大量监督信息可用的情况下,以无监督的方式学习良好的表示也可以显著提升性能。到目前为止,这方面最有力的证据是预训练词嵌入的广泛使用,它们已经提高了多种NLP任务的性能。
然而,从未标记文本中利用比单词级别更多的信息面临着两大挑战。首先,尚不清楚哪种类型的优化目标在学习用于迁移的文本表示时最为有效。最近的研究已经探索了各种目标,如语言建模[44]、机器翻译[38]和话语连贯性[22],每种方法在不同任务上的表现都超过了其他方法。1其次,对于将这些学习到的表示转移到目标任务的最有效方法,尚未达成共识。现有技术涉及对模型架构进行特定于任务的更改[43,44]、使用复杂的学习方案[21]以及添加辅助学习目标[50]。这些不确定性使得开发有效的语言处理半监督学习方法变得困难。
在本文中,我们探索了一种使用无监督预训练和监督微调相结合的语言理解任务的半监督方法。我们的目标是学习一种通用的表示,这种表示可以稍作调整就迁移到多种任务中。我们假设可以访问一个大型未标记文本语料库和几个带有手动标注训练示例的数据集(目标任务)。我们的设置不需要这些目标任务与未标记语料库处于同一领域。我们采用两阶段的训练过程。首先,我们在未标记数据上使用语言建模目标来学习神经网络模型的初始参数。随后,我们使用相应的监督目标将这些参数适应到目标任务中。
对于我们的模型架构,我们使用了Transformer[62],它已经在各种任务上表现出强大的性能,如机器翻译[62]、文档生成[34]和句法解析[29]。与循环网络等替代方案相比,这种模型选择为我们提供了更结构化的内存来处理文本中的长期依赖关系,从而在多种任务上实现了稳健的迁移性能。在迁移过程中,我们利用从遍历式方法[52]中得出的特定于任务的输入适应,该方法将结构化文本输入处理为单个连续的令牌序列。正如我们在实验中所展示的,这些适应使我们能够有效地进行微调,同时只需对预训练模型的架构进行最小更改。
我们对四种类型的语言理解任务进行了评估——自然语言推理、问答、语义相似性和文本分类。我们的通用任务无关模型在四个任务中优于使用专门为每个任务设计的架构的判别式训练模型,在研究的12个任务中的9个任务上显著提升了当前的技术水平。例如,我们在常识推理(Stories Cloze Test)任务上实现了8.9%的绝对提升[40],在问答(RACE)任务上实现了5.7%的绝对提升[30],在文本蕴含(MultiNLI)任务上实现了1.5%的绝对提升[66],在最近引入的GLUE多任务基准上实现了5.5%的绝对提升[64]。我们还分析了预训练模型在四种不同设置下的零样本学习行为,并证明了它获得了对下游任务有用的语言知识。
相关工作
自然语言处理中的半监督学习
我们的工作大致属于自然语言处理中的半监督学习范畴。这种范式已经引起了广泛关注,并应用于诸如序列标注或文本分类等任务。最早的方法使用未标记数据来计算词级或短语级统计信息,然后将这些信息作为特征用于监督模型中。在过去的几年里,研究人员已经证明了使用在无标记语料库上训练的词嵌入可以改进各种任务的性能。然而,这些方法主要传递词级信息,而我们旨在捕获更高层次的语义。
最近的方法已经研究了从未标记数据中学习和利用超过词级语义的信息。短语级或句子级嵌入,可以使用未标记语料库进行训练,已被用于将文本编码为适合各种目标任务的向量表示。
无监督预训练
无监督预训练是半监督学习的一种特例,其目标是找到良好的初始化点,而不是修改监督学习的目标。早期的工作探索了这种技术在图像分类和回归任务中的应用。随后的研究表明,预训练作为一种正则化方案,能够使深度神经网络更好地泛化。在最近的工作中,该方法已被用于帮助训练深度神经网络,以完成各种任务,如图像分类、语音识别、实体消歧和机器翻译。
与我们工作最接近的是使用语言建模目标进行神经网络预训练,然后在目标任务上进行有监督微调。Dai等人以及Howard和Ruder遵循这种方法来改进文本分类。然而,尽管预训练阶段有助于捕获一些语言信息,但他们使用LSTM模型限制了其预测能力只能覆盖短距离范围。相比之下,我们在实验中所选择的Transformer网络允许我们捕获更远距离的语言结构。此外,我们还展示了我们的模型在更广泛的任务上的有效性,包括自然语言推理、释义检测和故事补全。其他方法在训练目标任务的监督模型时,将预训练语言或机器翻译模型的隐藏表示作为辅助特征。这涉及为每个单独的目标任务添加大量新参数,而我们在迁移过程中仅需要对模型架构进行最小更改。
辅助训练目标
添加辅助无监督训练目标是半监督学习的另一种形式。Collobert和Weston的早期工作使用了多种辅助NLP任务,如词性标注、组块分析、命名实体识别和语言建模,以改进语义角色标注。最近,Rei将辅助语言建模目标添加到他们的目标任务目标中,并在序列标注任务上展示了性能提升。我们的实验也使用了辅助目标,但正如我们所示,无监督预训练已经学习了与目标任务相关的多个语言方面。
Ankie的评论:
1, 2017.6 Google deepmind team发布了transformer “attention is all you need”。一年之后2018.6 OpenAI率先选择transformer模型进行训练并正式发布了GPT-1,获得了很好的结果。这给后续的创新带来了新的思路,特别后来的BERT等,进一步提高了性能。
2,今天重新看GPT-1这篇论文,我们可以看出,长城筑成非一日之功,也是逐步提高。
3,虽然这篇文章本身有点过时2018.6了,跟GPT后面的实现有点不同,但是我们着重要看的是思路的演进。
原文链接: