APP下载

迁移学习在自然语言处理中的应用综述

2021-09-04

科教导刊·电子版 2021年21期
关键词:权重建模目标

袁 君

(武汉学院 湖北·武汉 430212)

1 迁移学习简介

Bozinovski等人最早明确提出在神经网络的训练过程中使用迁移学习的方法,并且给出了一个基于数学和几何学的迁移学习模型。迁移学习作为一种机器学习的方法,就是把为任务A开发的模型作为原始模型,将其重新应用在任务B中来开发出一套针对任务B的模型。其中任务A和任务B应该具有一定的相关性或者相似性。其一般的过程如下图1所示。

图1:迁移学习的一般过程

因此在迁移学习中核心的问题是,如何找到目标任务与源任务之间的相似性,并顺利的实现知识/经验的迁移。简而言之,我们希望计算机可以利用迁移学习的方法像人一样通过举一反三的进行学习。图2给出了生活中常见的迁移学习的例子。

图2:迁移学习的例子

2 迁移学习在自然语言处理中的应用与分类

在过去几年的时间里,以预训练语言模型为形式的迁移学习在自然语言处理中已经无处不在,并在各种任务解决中发挥了实质性的作用。然而,迁移学习在自然语言处理中的应用并不是一个新进出现的方法。我们以命名实体识别(NER)任务的进展为例,如下图3所示:

图3:CoNLL-2003(英语)上的命名实体识别(NER)性能随时间变化

纵观其历史,这项任务的大部分重大改进都是由不同形式的迁移学习推动的:从早期Ando等人提出的带有辅助任务的自我监督学习和Lin等人对短语及词组的研究到近年来Peters等人的语言模型嵌入,以及包括近几年Peters,Akbik,Baevski分别提出的预训练语言模型。

目前在自然语言处理中常见的迁移学习有不同的类型。这些可以根据以下三个维度进行大致分类:

(1)源和目标设置是否处理相同的任务;

(2)源和目标领域的性质;

(3)学习任务的顺序。

这些任务的具体分类如下图4所示,其中顺序迁移学习是到目前为止取得最大进展的方法。

图4:迁移学习在自然语言处理中分类

3 顺序迁移学习方法

顺序迁移学习一般的做法是选择合适的方法在大型的无标签文本语料库上进行预训练表征,然后用有标签的数据将这些表征迁移到有监督的目标任务中,如下图5所示,其中预训练和适应是该方法的核心步骤。

图5:顺序迁移学习过程

3.1 预训练

预训练语言模型所取得的成功是令人瞩目的。语言建模成功的一个原因可能是即使对人类来说它也是一项非常困难的任务。为了有机会解决这个任务,一个模型需要学习语法、语义以及关于世界的某些事实。给予足够的数据、大量的参数和足够的计算,一个模型可以做一个合理的工作。Zhang和Wang则验证了相较于其他预训练任务,语言建模在翻译或自动编码等方面取得了更好的效果。最近Hahn对人类语言的预测率失真(PRD)分析表明,人类语言以及语言建模具有无限的统计复杂性,但它可以在较低水平上得到很好的近似。这一观察表明:(1)可以用相对较小的模型获得良好的结果;(2)有很大的潜力来扩大模型规模。对于这两个含义,都有经验性的证据。

一般来说,为了提高预训练的表现,可以通过联合增加模型参数的数量和预训练数据的数量来改善效果。随着预训练数据量的增长,收益开始减少。然而,如下图6所示的性能曲线,并不表明我们已经达到了一个瓶颈。因此,可以期待看到在更多数据上训练的更大的模型。

图6:使用不同数量的共同抓取数据进行预训练的GLUE平均得分

预训练的一个主要应用方向是跨语言的预训练,并可以使我们为世界上6000种语言建立属于它们自己的自然语言处理模型。许多关于跨语言学习的工作如Ruder都集中在训练不同语言的单独的词嵌入,并学习如何对齐它们。同样地,Shuster提出可以学习对齐语境表征。Devlin,Artetxe则提出了另一种常见的方法是共享一个子词词表,并在多种语言上训练一个模型。虽然这很容易实现,而且是一个强大的跨语言基线,但Heinzerling指出它会导致低资源语言的代表性不足。Pires和Wu分别提出的多语种的BERT模型则成为了备受关注的主题。尽管它具有强大的零点性能,但Eisenschlos专用的单语语言模型往往具有竞争力,同时效率更高。

3.2 适应

为了使预训练的模型适应目标任务,我们可以对架构进行修改和优化方案。

3.2.1 架构的修改

保持预训练模型的内部结构不变。这可以简单到在预训练模型的基础上增加一个或多个线性层,这通常是用BERT模型来做的。但我们也可以在预训练模型无法为目标任务提供必要的交互时,将模型的输出作为一个单独的模型的输入,例如跨度表示或跨句子关系建模任务中。

修改预训练模型的内部结构。如Houlsby和Stickland分别尝试使用预训练的模型来尽可能地初始化结构不同的目标任务模型。此外还可以应用特定的任务修改,如增加跳过或残留的连接或注意力。最后,修改目标任务参数可以通过在预训练模型的各层之间添加瓶颈模块(“适配器”)来减少需要微调的参数数量。

3.2.2 方案的优化

在优化模型方面,可以选择应该更新哪些权重以及如何和何时更新这些权重。

(1)对于预训练模型的权重,可以选择调整或不调整两种策略。

不改变预训练的权重。在实践中,线性分类器是在预训练的表征之上训练的。Ruder等人发现要到达最优性能不只需要利用顶层的表征,也需要学习各层表征的线性组合来实现的。另外,预训练的表征可以作为下游模型的特征使用。当添加适配器时,只有适配器层需要加以训练。

改变预训练的权重。预训练的权重被用作下游模型的参数的初始化。然后在适应阶段对整个预训练的结构进行训练。

(2)更新权重。

跟新权重的主要目的是避免覆盖有用的预训练信息,并最大限度地实现正向转移。McClosky曾提出灾难性遗忘的概念,即一个模型忘记了它最初训练的任务。同预训练模型相比,更新模型参数的指导原则是在时间上、强度上,从上到下逐步更新参数。

在时间上逐步更新。通常如果同时在所有的网络层中利用不同的任务来进行训练会导致性能的不稳定和糟糕的解决方案。因此在早起深度神经网络的分层训练中Hinton和Bengio都分别尝试了分别训练各神经层去适应新的任务和数据。最近Felbo,Howard和Chronopoulou各自提出的方法多以共同训练的层之间不同的组合方式为主;并在最后联合训练所有参数。

强度逐渐增加。通常使用较低的学习率是为了避免覆盖有用的信息。低学习率在低网络层、训练早期和训练后期尤为重要。Howard提出可以使用鉴别性的微调是每一层的学习率适度衰减。为了在训练前期保持较低的学习率,可以使用三角学习率计划。Liu最近提出,预热可以减少训练早期的变异。

4 迁移学习在自然语言处理中的问题

预训练的语言模型在细粒度的语言任务(Liu)、层次化的句法推理(Kuncoro)和常识(Zeller)方面表现仍然很糟糕。它们在自然语言生成方面仍然表现较差,尤其是在保持语言的一贯性、关系和一致性方面。较大模型如果只利用少量数据进行微调时会使其较难优化,并且还会出现高变异的情况。目前预训练的语言模型也非常大,因此蒸馏和修剪是处理这个问题的较好选择。

猜你喜欢

权重建模目标
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
权重常思“浮名轻”
基于PSS/E的风电场建模与动态分析
不对称半桥变换器的建模与仿真
为党督政勤履职 代民行权重担当
基于公约式权重的截短线性分组码盲识别方法
三元组辐射场的建模与仿真
层次分析法权重的计算:基于Lingo的数学模型
新目标七年级(下)Unit 3练习(一)
新目标七年级(下)Unit 4练习(一)