【论文阅读】Improving language understanding by generative pre-training

发布时间 2023-11-19 16:19:46作者: 张天明

原始题目:Improving language understanding by generative pre-training
中文翻译:通过生成预训练提高语言理解能力
发表时间:2018年
平台:Preprint
文章链接:https://www.mikecaptain.com/resources/pdf/GPT-1.pdf
开源代码:https://paperswithcode.com/paper/improving-language-understanding-by

摘要

自然语言理解包括各种不同的任务,如文本关联、问题解答、语义相似性评估和文档分类。虽然大量未标注的文本语料库非常丰富,但用于学习这些特定任务的标注数据却非常稀少,这使得经过鉴别训练的模型难以充分发挥作用。我们证明,通过在各种未标注文本语料库上对语言模型进行生成性预训练,然后在每个特定任务上进行判别性微调,可以在这些任务上取得巨大的收益。与以往的方法不同,我们在微调过程中利用任务感知输入转换来实现有效的转移,同时只需对模型架构做最小的改动。我们在各种自然语言理解基准上证明了我们方法的有效性。在所研究的 12 项任务中,我们的通用任务无关模型在 9 项任务中的表现明显优于使用专为每项任务设计的架构的判别训练模型。例如,我们在常识推理(Stories Cloze Test)、问题解答(RACE)和文本引申(MultiNLI)方面分别取得了 8.9% 和 5.7% 的绝对改进。

1. 引言

有效学习原始文本的能力对于减轻自然语言处理(NLP)对监督学习的依赖至关重要。大多数深度学习方法都需要大量人工标注数据,这限制了它们在缺乏标注资源的许多领域的适用性[61]。在这种情况下,能够利用未标注数据中语言信息的模型为收集更多标注数据提供了一种有价值的替代方法,而收集更多标注数据可能既耗时又昂贵。此外,即使在有大量监督的情况下,以无监督的方式学习良好的表征也能显著提高性能。迄今为止,最有说服力的证据就是广泛使用预训练词嵌入[10, 39, 42]来提高一系列 NLP 任务的性能[8, 11, 26, 45]。

然而,从无标签文本中获取单词级以上的信息具有挑战性,主要原因有两个。首先,目前还不清楚哪种类型的优化目标能最有效地学习有助于迁移的文本表征。最近的研究考察了语言建模[44]、机器翻译[38]和语篇连贯[22]等各种目标,每种方法在不同任务中的表现都优于其他方法。现有的技术包括对模型架构进行特定任务的修改 [43,44]、使用复杂的学习方案 [21] 和添加辅助学习目标 [50]。这些不确定性使得为语言处理开发有效的半监督学习方法变得十分困难。

在本文中,我们探索了一种使用无监督预训练和有监督微调相结合的半监督方法用于语言理解任务。我们的目标是学习一种通用的表征,这种表征对广泛的任务几乎没有适应性。我们假设可以访问大量未标记文本和几个带有手动标注的训练示例(目标任务)的数据集。我们的设置不要求这些目标任务与未标记的语料库在同一域中。我们采用两阶段的训练过程。首先,我们使用未标记数据上的语言建模目标来学习神经网络模型的初始参数。随后,我们使用相应的监督目标将这些参数适应于一个目标任务。

对于我们的模型架构,我们使用Transformer [ 62 ],它已被证明在各种任务上表现强劲,例如机器翻译[ 62 ]、文档生成[ 34 ]和句法分析[ 29 ]。与循环网络等替代方案相比,这种模型选择为我们提供了更结构化的内存,用于处理文本中的长期依赖关系,从而在不同任务之间实现健壮的传输性能。在传输过程中,我们使用从遍历风格方法[ 52 ]派生的特定于任务的输入适应,该方法将结构化文本输入处理为单个连续的令牌序列。正如我们在实验中所展示的那样,这些调整使我们能够有效地微调预训练模型的架构。

我们在四类语言理解任务(自然语言推理、问题解答、语义相似性和文本分类)上对我们的方法进行了评估。在所研究的 12 项任务中,我们的通用任务无关模型优于采用专为每项任务设计的架构的判别训练模型,在 9 项任务中显著提高了技术水平。例如,我们在常识推理(Stories Cloze Test)[40]、问题解答(RACE)[30]、文本引申(MultiNLI)[66]和最近推出的 GLUE 多任务基准[64]上分别取得了 8.9% 、5.7% 、1.5% 和 5.5% 的绝对改进。我们还分析了预训练模型在四种不同设置下的零点行为,证明它能为下游任务获取有用的语言知识。

2. 相关工作

用于 NLP 的半监督学习 我们的工作大致属于自然语言半监督学习的范畴。这一范式已引起了极大的兴趣,并被应用于序列标注 [24, 33, 57] 或文本分类 [41, 70] 等任务中。最早的方法是使用未标注的数据来计算词级或短语级统计数据,然后将其作为有监督模型的特征[33]。在过去几年中,研究人员已经证明了使用词嵌入[11, 39, 42]的好处,这种方法是在无标签语料库中训练出来的,可以提高各种任务的性能[8, 11, 26, 45]。不过,这些方法主要传递的是词层面的信息,而我们的目标是捕捉更高层次的语义。

最近的一些方法研究了从未标明的数据中学习和利用词级语义以外的语义的方法。短语级或句子级嵌入可以使用未标记的语料库进行训练,已被用于将文本编码为适合各种目标任务的向量表示[28, 32, 1, 36, 22, 12, 56, 31]。

无监督预训练 无监督预训练是半监督学习的一种特殊情况,其目标是找到一个好的初始化点,而不是修改监督学习目标。早期的研究探索了该技术在图像分类 [20, 49, 63] 和回归任务 [3] 中的应用。随后的研究[15]表明,预训练可作为一种正则化方案,使深度神经网络具有更好的泛化能力。在最近的工作中,该方法被用于帮助训练各种任务的深度神经网络,如图像分类[69]、语音识别[68]、实体消歧[17]和机器翻译[48]。

与我们的工作最接近的是使用语言建模目标对神经网络进行预训练,然后在目标任务的监督下对其进行微调。Dai 等人 [13] 以及 Howard 和 Ruder [21] 采用这种方法来改进文本分类。不过,虽然预训练阶段有助于捕捉一些语言信息,但他们使用的 LSTM 模型将其预测能力限制在较短的范围内。相比之下,我们选择的变压器网络可以捕捉到更长距离的语言结构,这在我们的实验中得到了证明。此外,我们还在自然语言推理、转述检测和故事补全等更广泛的任务中证明了我们模型的有效性。其他方法 [43, 44, 38] 使用预先训练好的语言或机器翻译模型中的隐藏表征作为辅助特征,同时在目标任务上训练监督模型。这就需要为每个单独的目标任务设置大量新参数,而我们在传输过程中只需对模型架构做最小的改动。

辅助训练目标 添加辅助无监督训练目标是半监督学习的另一种形式。Collobert 和 Weston [10] 的早期研究使用了 POS 标记、分块、命名实体识别和语言建模等多种辅助 NLP 任务来改进语义角色标记。最近,Rei [50] 在他们的目标任务目标中添加了一个辅助语言建模目标,并在序列标注任务中证明了性能的提高。我们的实验也使用了辅助目标,但正如我们所展示的,无监督预训练已经学习了与目标任务相关的几个语言方面。

3. 框架

我们的训练程序包括两个阶段。第一阶段是在大型文本语料库中学习高容量语言模型。随后是微调阶段,我们将模型调整为使用标注数据的判别任务。

3.1 无监督预训练

给定一个无监督标记语料库 \(U = {u_1, ., u_n}\),我们使用标准语言建模目标来最大化以下可能性:

其中 k 是上下文窗口的大小,条件概率 P 使用参数为 Θ 的神经网络进行建模。这些参数使用随机梯度下降进行训练[51]。

在我们的实验中,我们使用多层 Transformer 解码器 [34] 作为语言模型,它是 Transformer [62] 的变体。该模型对输入上下文标记应用多头自注意力操作,然后是位置前馈层,以在目标标记上生成输出分布:

其中$ U = (u_{−k}, . . . , u_{−1})$ 是标记的上下文向量,n 是层数,We 是标记嵌入矩阵,Wp 是位置嵌入矩阵。

3.2 监督微调

在使用方程 1 中的目标训练模型后,我们将参数调整到监督目标任务中。我们假设一个标记的数据集 C,其中每个实例都由一系列输入标记 x1、. . . 、xm 和一个标签 y 组成。输入通过我们的预训练模型传递,以获得最终变压器模块的激活 \(h^{m}_ l\),然后将其馈送到一个附加的线性输出层,参数为 Wy 以预测 y:

这为我们提供了以下最大化目标:

我们还发现,将语言建模作为微调的辅助目标有助于学习:(a)提高监督模型的泛化能力,以及(b)加速收敛。这与先前的工作[50,43]一致,他们也观察到这种辅助目标的性能有所提高。具体来说,我们优化了以下目标(权重λ):

image-20231109004419337

总的来说,我们在微调过程中唯一需要的额外参数是 Wy 和分隔符标记的嵌入(在下面的第 3.3 节中描述)。

图 1:(左)本工作中使用的 Transformer 架构和培训目标。(右)用于对不同任务进行微调的输入转换。我们将所有结构化输入转换为标记序列,由我们的预训练模型处理,然后是线性+softmax层。

3.3 特定于任务的输入转换

对于某些任务,例如文本分类,我们可以如上所述直接微调模型。某些其他任务,如问答或文本蕴涵,具有结构化的输入,例如有序的句子对,或文档、问题和答案的三元组。由于我们的预训练模型是在连续的文本序列上训练的,因此我们需要进行一些修改才能将其应用于这些任务。以前的工作提出了在传输表征之上学习任务特定的架构[44]。这种方法重新引入了大量特定于任务的自定义,并且不会对这些额外的体系结构组件使用迁移学习。取而代之的是,我们使用遍历式方法[52],将结构化输入转换为预训练模型可以处理的有序序列。这些输入转换使我们能够避免跨任务对体系结构进行大量更改。我们在下面简要介绍了这些输入转换,图 1 提供了可视化说明。所有转换都包括添加随机初始化的开始和结束标记(〈s〉、〈e〉)。

文本蕴涵 对于蕴涵任务,我们将前提 p 和假设 h 标记序列连接起来,中间有一个分隔符标记 ($)。

相似性 对于相似性任务,被比较的两个句子没有固有的顺序。为了反映这一点,我们修改了输入序列以包含两种可能的句子顺序(中间有一个分隔符),并独立处理每个序列以产生两个序列表示 hm l,它们在输入线性输出层之前按元素添加。

问答和常识推理 对于这些任务,我们得到了一个上下文文档 z、一个问题 q 和一组可能的答案 {ak}。我们将文档上下文和问题与每个可能的答案连接起来,并在两者之间添加一个分隔符标记以获取 [z; q; $; ak]。这些序列中的每一个都使用我们的模型独立处理,然后通过softmax层进行归一化,以产生可能答案的输出分布。

4. 实验

4.1 设置

无监督预训练 我们使用 BooksCorpus 数据集 [71] 来训练语言模型。它包含 7,000 多本独特的未出版书籍,来自各种类型,包括冒险、奇幻和浪漫。至关重要的是,它包含很长的连续文本,这使得生成模型能够学习以长距离信息为条件。另一种数据集,即1B Word Benchmark,由类似的方法ELMo[44]使用,其大小大致相同,但在句子层面上被打乱了 - 破坏了长程结构。我们的语言模型在这个语料库上实现了非常低的标记级困惑度,为 18.4。

表 1:我们实验中使用的不同任务和数据集的列表。

模型规格 我们的模型很大程度上遵循了原始变压器的工作[62]。我们训练了一个 12 层仅解码器的转换器,带有屏蔽的自注意力头(768 维状态和 12 个注意力头)。对于位置前馈网络,我们使用了 3072 维内部状态。我们使用了Adam优化方案[27],最大学习率为2.5e-4。在前 2000 次更新中,学习率从 0 线性增加,并使用余弦调度退火到 0。我们在 64 个随机采样的连续序列的 512 个标记的小批量上训练了 100 个 epoch。由于layernorm [2]在整个模型中被广泛使用,因此对N(0,0.02)的简单权重初始化就足够了。我们使用字节对编码 (BPE) 词汇表进行 40,000 次合并 [53] 和残差、嵌入和注意力丢失,速率为 0.1 进行正则化。我们还采用了 [37] 中提出的 L2 正则化的修改版本,在所有非偏置或增益权重上 w = 0.01。对于激活函数,我们使用了高斯误差线性单元(GELU)[18]。我们使用了学习到的位置嵌入,而不是原始工作中提出的正弦版本。我们使用 ftfy library2 来清理 BooksCorpus 中的原始文本,标准化一些标点符号和空格,并使用 spaCy 分词器3。

微调细节 除非特别说明,否则我们将重复使用无监督预训练中的超参数设置。我们在分类器中加入了 0.1 的辍学率。对于大多数任务,我们使用的学习率为 6.25e-5,批量大小为 32。我们的模型能够快速调整,3 个历元的训练对于大多数情况来说已经足够。我们使用线性学习率衰减计划,在 0.2% 的训练时间内进行热身。

4.2 监督微调

我们对各种有监督的任务进行了实验,包括自然语言推理、问题解答、语义相似性和文本分类。其中一些任务是最近发布的 GLUE 多任务基准[64]的一部分,我们利用了该基准。图 1 提供了所有任务和数据集的概览。

自然语言推理 自然语言推理(NLI)任务也称为识别文本引申义,包括阅读一对句子,并判断它们之间的关系是引申、矛盾还是中性。虽然最近有很多人对此感兴趣 [58, 35, 44],但由于存在词性蕴涵、核心参照、词法和句法歧义等多种现象,这项任务仍然具有挑战性。我们在五个不同来源的数据集上进行了评估,包括图片说明 (SNLI)、转录语音、通俗小说和政府报告 (MNLI)、维基百科文章 (QNLI)、科学考试 (SciTail) 或新闻文章 (RTE)。

表 2 详细列出了我们的模型和之前最先进方法在不同 NLI 任务上的各种结果。在五个数据集中的四个数据集上,我们的方法明显优于基线方法,在 MNLI、SciTail、QNLI 和 SNLI 数据集上,我们的方法比之前的最佳结果分别提高了 1.5%、5%、5.8% 和 0.6%。这表明我们的模型有能力更好地对多个句子进行推理,并处理语言歧义方面的问题。在我们评估的较小数据集之一 RTE(2490 个示例)上,我们的准确率为 56%,低于多任务 biLSTM 模型报告的 61.7%。鉴于我们的方法在较大的 NLI 数据集上表现出色,我们的模型很可能也能从多任务训练中获益,但目前我们尚未对此进行探索。

表 2:自然语言推理任务的实验结果,将我们的模型与当前最先进的方法进行比较。5x 表示 5 个模型的集合。所有数据集均使用准确率作为评估指标。

表 3:问题解答和常识推理的结果,将我们的模型与当前最先进的方法进行比较。9x 表示 9 个模型的组合。

问题解答和常识推理 另一项需要单句和多句推理的任务是问题解答。我们使用的是最近发布的 RACE 数据集 [30],该数据集由英语段落组成,并附有初中和高中考试的相关问题。与其他数据集(如 CNN [19] 或 SQuaD [47])相比,该语料库包含了更多推理类型的问题,为我们的模型提供了完美的评估,我们的模型经过训练,可以处理长距离语境。此外,我们还对 "故事克隆测试"(Story Cloze Test)[40]进行了评估,该测试涉及从两个选项中选出多句故事的正确结尾。在这些任务中,我们的模型再次以显著的优势超越了之前的最佳结果--在 Story Cloze 中的得分率高达 8.9%,在 RACE 中的总体得分率为 5.7%。这表明我们的模型能够有效地处理远距离语境。

语义相似性 语义相似性(或意译检测)任务涉及预测两个句子在语义上是否等同。其挑战在于识别概念的重述、理解否定和处理句法歧义。我们在这项任务中使用了三个数据集--微软转述语料库(MRPC)[14](收集自新闻来源)、Quora 问题对(QQP)数据集[9]和语义文本相似性基准(STS-B)[6]。我们在三项语义相似性任务中的两项任务上取得了最先进的结果(表 4),在 STS-B 上取得了 1 分的绝对优势。在 QQP 上的性能差距很大,与单任务 BiLSTM + ELMo + Attn 相比,绝对值提高了 4.2%。

分类 最后,我们还对两个不同的文本分类任务进行了评估。语言可接受性语料库(CoLA)[65] 包含了专家对句子是否符合语法的判断,并测试了训练有素的模型在语言方面的先天偏差。另一方面,斯坦福情感树库(SST-2)[54] 是一项标准的二元分类任务。我们的模型在 CoLA 上获得了 45.4 的高分,与之前 35.0 的最好成绩相比有了特别大的飞跃,这充分展示了我们的模型所学习到的先天语言偏差。该模型在 SST-2 上的准确率也达到了 91.3%,与最先进的结果不相上下。我们还在 GLUE 基准测试中取得了 72.8 的总分,明显优于之前的最佳成绩 68.9。

表 4:语义相似性和分类结果,将我们的模型与当前最先进的方法进行比较。表中所有任务评估均使用 GLUE 基准。(mc=马修斯相关性,acc=准确性,pc=皮尔逊相关性)

总体而言,我们的方法在我们评估的 12 个数据集中的 9 个中取得了新的最先进的结果,在许多情况下优于集成。我们的研究结果还表明,我们的方法适用于不同规模的数据集,从较小的数据集,如STS-B(≈5.7k训练样本)到最大的数据集-SNLI(≈550k训练样本)。

5 分析

传输层数的影响 我们观察到将可变数量的层从无监督预训练转移到有监督目标任务的影响。图 2(左)说明了我们的方法在 MultiNLI 和 RACE 上的性能与传输层数的关系。我们观察到的标准结果是,传输嵌入可以提高性能,并且每个转换器层在 MultiNLI 上完全传输时提供了高达 9% 的进一步优势。这表明预训练模型中的每一层都包含用于解决目标任务的有用功能。

图 2:(左)在 RACE 和 MultiNLI 上从预训练语言模型中传输越来越多的层数的影响。(右)该图显示了不同任务的零样本性能演变作为 LM 预训练更新的函数。每个任务的性能在随机猜测基线和当前最先进的单个模型之间进行归一化。

零样本行为 我们想更好地理解为什么 transformer 的语言模型预训练是有效的。一个假设是,底层生成模型学习执行我们评估的许多任务,以提高其语言建模能力,并且与LSTM相比,转换器更结构化的注意力记忆有助于转移。我们设计了一系列启发式解决方案,这些解决方案使用底层生成模型来执行任务,而无需进行监督微调。我们在图 2(右)中可视化了这些启发式解决方案在生成式预训练过程中的有效性。我们观察到这些启发式方法的性能是稳定的,并且在训练过程中稳步增加,这表明生成式预训练支持各种任务相关功能的学习。我们还观察到LSTM在其零样本性能中表现出更高的方差,这表明Transformer架构的电感偏置有助于传输。

表5:不同任务上各种模型消融的分析。平均分数是所有结果的未加权平均值。(mc=马修斯相关,acc=准确性,pc=皮尔逊相关)

对于 CoLA(语言可接受性),示例被打分为生成模型分配的平均标记对数概率,并通过阈值进行预测。对于 SST-2(情感分析),我们将标记非常附加到每个示例中,并将语言模型的输出分布限制为仅单词 positive 和 negative,并猜测它分配更高概率的标记作为预测。对于 RACE(问答),我们选择生成模型在以文档和问题为条件时分配最高平均标记对数概率的答案。对于DPRD [46](winograd模式),我们将定代词替换为两个可能的指称,并预测生成模型在替换后为序列的其余部分分配更高的平均标记对数概率的分辨率。

消融研究 我们进行了三种不同的消融研究(表5)。首先,在微调过程中,我们检查了没有辅助LM物镜的方法的性能。我们观察到辅助目标有助于 NLI 任务和 QQP。总体而言,这一趋势表明,较大的数据集受益于辅助目标,而较小的数据集则不会。其次,我们通过将其与使用相同框架的单层 2048 单元 LSTM 进行比较来分析 Transformer 的效果。我们观察到,当使用 LSTM 而不是 Transformer 时,平均分数下降了 5.6。LSTM 仅在一个数据集 MRPC 上优于 Transformer。最后,我们还与直接在监督目标任务上训练的 transformer 架构进行了比较,无需预训练。我们观察到,缺乏预训练会损害所有任务的性能,导致与我们的完整模型相比下降了 14.8%。

6 结论

我们引入了一个框架,通过生成式预训练和判别性微调,使用单一任务无关的模型实现强大的自然语言理解。通过对具有长篇连续文本的多样化语料库进行预训练,我们的模型获得了重要的世界知识和处理长程依赖关系的能力,然后成功地将其转移到解决判别性任务中,例如问答、语义相似性评估、蕴涵确定和文本分类,提高了我们研究的 12 个数据集中的 9 个的最新技术水平。长期以来,使用无监督(预)训练来提高判别性任务的表现一直是机器学习研究的重要目标。我们的研究表明,实现显著的性能提升确实是可能的,并提供了关于哪些模型(Transformers)和数据集(具有长距离依赖的文本)最适合这种方法的提示。我们希望这将有助于对自然语言理解和其他领域的无监督学习进行新的研究,进一步提高我们对无监督学习如何以及何时工作的理解。