EMNLP 2020 | 且回忆且学习:在更少的遗忘下精调深层预训练语言模型

2020 年 11 月 4 日 AINLP
论文名称:Recall and Learn: Fine-tuning Deep Pretrained Language Models with Less Forgetting
论文作者:陈三元,侯宇泰,崔一鸣,车万翔,刘挺,余翔湛
原创作者:陈三元
论文链接:https://arxiv.org/abs/2004.12651
转载须标注出处:哈工大SCIR

1. 简介

通过精调预训练深层语言模型,很多NLP任务都取得了巨大的提升。然而,这样的顺序迁移学习通常会遇到灾难性遗忘问题。为此,我们提出了且回忆且学习的机制,通过采用多任务学习同时学习预训练任务和目标任务。我们提出了预训练模拟机制在没有预训练数据时回忆预训练的知识,以及目标迁移机制将学习目标逐步迁移至目标任务上。实验表明我们在GLUE上达到了的最优性能。我们还将提出的机制集成到Adam优化器中,提供了开源的RecAdam优化器(https://github.com/Sanyuan-Chen/RecAdam)。

2. 背景

在本节中,我们介绍两种迁移学习范式:顺序迁移学习和多任务学习。它们都旨在通过在多个任务中迁移知识来提升模型的学习性能,但是适用于不同的情景。

2.1 顺序迁移学习

顺序迁移学习(Sequential Transfer Learning)依次学习源任务和目标任务,通过从源任务迁移知识,来提高模型在目标任务上的性能。它通常包括两个阶段:预训练和适应。在预训练阶段,我们使用损失函数 在源任务上训练模型。在适应阶段中,我们使用损失函数 在目标任务上进一步训练预训练得到的模型。适应方法通常包括精调和特征提取:精调会更新预训练模型的所有参数,而特征提取会将预训练模型视为特征提取器,并在适应阶段将预训练参数保持固定。顺序迁移学习近些年被广泛地使用,已经发布的深层预训练语言模型在众多NLP任务上都取得了巨大的成功[1, 2, 3]。虽然将深层预训练语言模型适应目标任务非常有效,但它容易发生灾难性遗忘的问题:当模型从目标任务中学习新知识时,它会忘记先前从源任务中学习到的知识。

2.2 多任务学习

多任务学习(Multi-task Learning)同时学习多个任务,并通过在这些任务之间共享知识来提高模型在所有任务上的性能[4, 5]。通过多任务学习的方式,我们使用以下损失函数同时在源任务和目标任务上训练模型:

其中 是平衡这两个任务的超参数。由于源任务上的损失 始终是优化目标的一部分,多任务学习可以内在地避免灾难性遗忘问题。为了克服顺序迁移学习的灾难性的遗忘问题(如2.1节讨论),我们可以将多任务学习的思想直接应用于深层预训练语言模型的适应阶段吗?实际上,会存在以下两个挑战:
  1. 我们在适应阶段无法访问预训练数据来计算
  2. 适应阶段的优化目标是 ,而多任务学习旨在优化 ,即 的加权和。

3. 方法

在本节中,我们介绍了预训练模拟机制(3.1节)和目标迁移机制(3.2节),用来分别克服以上提及的两个挑战(如2.2节讨论)。预训练模拟机制使模型无需预训练数据即可学习源任务,而目标迁移机制则使模型逐渐专注于学习目标任务。我们还介绍了RecAdam优化器(3.3节),用来将这两种机制集成到常用的Adam优化器中。

3.1 预训练模拟机制

对于无法获得预训练数据的第一个挑战,我们提出了预训练模拟机制,将源任务的优化目标近似为二次惩罚,使得模型的参数与预训练模型的参数保持接近。
我们借鉴弹性权重合并(Elastic Weight Consolidation)方法[6, 7],使用拉普拉斯方法和模型参数之间的独立性假设来近似源任务的优化目标。由于EWC需要预训练数据,因此我们进一步引入了更强的独立性假设,并得出了与预训练数据无关的二次惩罚。以下我们介绍详细的推导过程。
从概率的角度,源任务的学习目标 是在给定源任务数据 的条件下优化模型参数 的负对数后验概率:

预训练模型参数 可以被认为是参数空间上的一个局部最小收敛点,并满足以下公式:

由于无法直接求解优化目标 ,我们使用拉普拉斯方法[8]局部近似优化目标:

其中 是优化目标在参数为 时关于参数 的Hessian矩阵, 是关于参数 的常数项,所以我们可以在训练时将其忽略。
由于预训练模型在源任务上已经收敛, 可以通过经验Fisher信息矩阵 进行近似求解:

其中 是源任务数据 中的独立同分布的样本数量, 是负对数先验概率 在参数为 时关于参数 的Hessian矩阵。
由于过高的计算复杂度,EWC方法使用 的对角线值来近似计算 ,并且忽略先验Hessian矩阵

其中 是模型参数 所对应的对角Fisher信息矩阵值。
由于我们无法得到预训练的数据集,我们进一步引入一个更强的假设来近似计算 :每一个对角Fisher信息矩阵值 与相应的模型参数 是相互独立的:

最终,我们近似得到的源任务的优化目标是模型参数和预训练参数之间的二次惩罚:

其中 是二次惩罚的系数值。

3.2 目标迁移机制

对于多任务学习的优化目标与适应阶段不一致的第二项挑战,我们提出了目标迁移机制,通过使用退火系数使优化目标逐步迁移至目标任务上的损失函数
我们用退火函数 代替多任务学习优化目标中的系数 ,其中 表示精调阶段的更新时间步数。于是,我们的损失函数表示为包含退火系数的多任务学习的优化目标:

具体地,为了更好地平衡多任务学习和精调,我们使用sigmoid退火函数[9, 10]计算

其中 是控制退火函数的速率和时间步数的超参数。

图1 目标迁移机制:我们用退火函数 代替多任务学习优化目标中的系数 。精调和多任务学习可以视为我们的方法的特例( )。

如图1所示,在训练进程的开始阶段,模型通过更多地关注预训练任务来更多地学习一般性知识。随着训练的进行,模型逐渐关注于目标任务,并在回忆预训练任务的知识的同时更多地学习目标领域的特定知识。在训练进程的最后阶段,模型完全专注于目标任务的学习,最终收敛时的优化目标是
精调和多任务学习可以视为我们的方法的特例。当 时,我们的方法可以视作为精调。模型首先使用 在源任务上进行预训练,然后使用 学习目标任务。当 时, 是一个常函数,我们的方法可以视作为多任务学习。模型使用损失函数 同时学习源任务和目标任务。

3.3 优化器

Adam优化器[11]通常被用于精调深层预训练语言模型。我们提出Recall Adam(RecAdam)优化器,将预训练模拟机制(3.1节)和目标平移机制(3.2节)机制的核心因子二次惩罚项和退火系数融入Adam优化器,并将它们从梯度更新算法中解耦。
[12]观察到L2正则化和权重衰减对于诸如Adam的自适应梯度算法并不相同,通过将权重衰减从Adam梯度更新算法中解耦,得到AdamW优化器,并且从理论上和经验上证实可以有效地提高Adam的性能。
同样地,当使用Adam优化器精调预训练语言模型时,我们有必要将二次惩罚和退火系数从梯度更新算法中解耦。否则,二次惩罚和退火系数都将通过梯度更新规则进行调整,从而导致不同的模型权重所对应二次惩罚的大小是不同的。

算法1中显示了Adam和RecAdam之间的比较,其中SetScheduleMultiplier(t)(第11行)代指获取步长比例因子的过程(例如预热技术)。
算法1的第6行显示了如何使用原始的Adam优化器实现二次惩罚和退火系数。目标任务的损失函数的梯度 与二次惩罚的梯度 的加权和通过梯度更新规则进行调整,从而导致模型权重之间有着不一致量级的二次惩罚。例如有着较大梯度 的权重将具有更大的二阶矩v,从而会受到相较于其他权重更小的惩罚。
通过使用RecAdam优化器,我们在算法1的第12行中将二次惩罚的梯度 与退火系数 从梯度更新算法中解耦。这样,只有目标任务的损失函数的梯度 在优化步骤中进行调整,并且训练模型的所有权重将以相同的比率 进行更有效的惩罚。
由于RecAdam优化器仅是基于Adam优化器的一行算法的修改,因此我们可以通过提供其他参数(预训练模型的参数以及预训练模拟机制和目标迁移机制的超参数)来很方便使用RecAdam优化器。

4. 实验结果

我们使用深层预训练语言模型BERT-base[13]和ALBERT-xxlarge[3] 在通用语言理解评估(GLUE)数据集[14]进行实验来评估我们的方法。
表1显示了基于BERT-Base和ALBERT-xxlarge模型在GLUE数据集的开发集上我们提出的RecAdam精调方法与普通精调方法的单任务单模型的比较结果。表2显示了基于BERT-Base模型在GLUE数据集的测试集上我们提出的RecAdam精调方法与普通精调方法的单任务单模型的比较结果。

表1 GLUE 数据集的开发集上的最先进的单任务单模型结果。

表2 GLUE 数据集的测试集上的单任务单模型结果,由 GLUE 服务器进行评分。我们提交 了在每个开发集上得到的最佳模型的结果。

4.1 基于BERT-base的结果

基于BERT-base模型,我们在GLUE数据集8个任务中的7个任务上实现了优于基线方法的开发集结果,并且平均在每个任务上提高了1.0%的中位数结果和1.1%的最大值结果。
尤其对于训练数据较小(<10k)的任务,与普通的精调方法相比,我们的方法可以实现显着的提升(平均+1.7%)。由于训练数据的缺乏,这些任务上进行的普通的精调会较为脆弱,并且容易出现过拟合和灾难性遗忘的问题[15, 16]。借助所提出的RecAdam方法,我们可以通过在学习目标任务时回忆预训练任务的知识从而实现更好的精调。
值得注意的是,相较于普通精调BERT-large模型,我们可以通过使用RecAdam方法精调BERT-base模型在一半以上的任务上获得更好的结果(RTE:+ 4.0%,STS:+ 0.4%,CoLA:+ 1.8%,SST:+ 0.4%,QQP:+ 0.1%),并且在所有GLUE任务上平均能够取得更好的中位数结果(+ 0.5%)。得益于RecAdam方法可以有效地减少灾难性遗忘,我们可以使用包含更少参数的预训练模型来获得更好的实验结果。
为了验证开发集上的最佳模型的泛化性,表2提供了在GLUE数据集的测试集上的基于BERT-base的模型的单任务单模型的结果。与开发集上的结果类似,我们在GLUE数据集8项任务中的7项任务上取得了相同或更好的结果,并且平均提高了1.0%的分数。相比于训练数据较大(>10k)的任务上的结果(平均+ 0.3%),我们在训练数据较小(<10k)的任务中获得了更大的改进(平均+ 1.7%)。这与我们在开发集的提升效果是一致的,体现了所提出的RecAdam方法的泛化性和有效性。

4.2 基于ALBERT-xxlarge的结果

基于最先进的ALBERT-xxlarge模型,我们在GLUE数据集的8个任务中的5个任务上实现了优于基线方法的开发集结果,并在GLUE数据集的开发集上实现了单任务单模型的最先进的平均中位数结果90.2%。
与基于BERT-base模型的结果相似,我们发现我们的提升主要来自训练数据较少(<10k)的任务,我们可以基于ALBERT-xxlarge模型在这些任务上平均提高+ 1.5%的性能。此外,与[3]的结果相比,我们可以无需在MNLI任务上进行第二阶段的预训练,在RTE(+0.1%),STS(-0.1%)和MRPC(+ 1.0%)任务上取得相似或更好的中位数结果。
总体而言,基于ALBERT-xxlarge模型,我们平均在每个任务上提高了0.7%中位数结果,较低于我们基于BERT-base模型所获得的提升(+ 1.0%)。借助于先进的模型设计和预训练技术,ALBERT-xxlarge在GLUE数据集上获得了显著的性能提升,从而较难取得进一步的提升。

4.3 初始化分析

表3 不同的模型初始化策略的比较:预训练初始化策略和随机初始化策略

通过使用基于预训练模拟机制和目标迁移机制的RecAdam方法,我们可以使用随机值初始化模型参数,并在学习新任务的同时回顾预训练任务的知识。
那么初始化策略的选择是否会对我们的RecAdam方法的性能产生影响呢?表2显示了基于不同初始化策略使用RecAdam方法精调BERT-base模型的结果比较。结果表明,基于随机初始化策略和预训练初始化策略,RecAdam精调方法都可以在所有的四个任务上得到优于普通精调方法的结果。对于STS任务,通过预训练初始化的模型可以得到与随机初始化相同的结果。对于其他任务(CoLA,MRPC,RTE),随机初始化模型是更优的选择。这是因为通过随机初始化策略,模型会受益于更大参数搜索空间。相比而言,如果使用预训练模型的参数进行初始化,模型的搜索空间将受限于预训练模型参数附近,从而使模型较难去逃离次优的局部最小区域从而在目标任务上取得更好的性能。

4.4 遗忘分析

图2 在CoLA数据集上使用有着不同的 值的RecAdam方法精调BERT-base的学习曲线。

如3.2节所述,我们使用目标迁移机制实现了多任务精调方法,使模型的学习目标逐渐从源任务迁移到目标任务。其中超参数 用来控制目标迁移的速率。
图2显示了在CoLA数据集上使用有着不同的 值的RecAdam方法精调BERT-base模型所得到的学习曲线。如3.2节所述,精调和多任务学习可以视为我们方法的特殊情况( )。
如图2a所示,对于越大的目标迁移速率 ,模型可以更快地收敛于目标任务。随着 的减小,由于从预训练知识的回忆到目标任务的学习的迁移速率减慢,模型需要更长的时间收敛到目标任务。
图2b显示了在精调过程中预训练知识的遗忘度。我们通过使用精调模型和预训练模型的权重之间的欧氏距离来度量预训练知识的遗忘度。在很早的时间步数时,由于我们使用随机初始化策略和预训练知识的回忆机制,欧几里得距离呈现出急剧地下降。接着,随着模型逐步关注于目标任务的学习,曲线以不断下降的增长率逐步地上升。随着目标迁移速率 的减小,我们发现在精调收敛时,模型可以更少地遗忘预训练的知识。
总体而言,我们的方法在精调和多任务学习之间进行有效的桥接。当我们使用较小的 时,模型可以更少地遗忘从源任务中学习的知识,但是存在无法完全收敛于目标任务的风险。通过在预训练知识的回忆和新任务的学习之间取得良好的权衡,我们的方法不仅可以收敛于目标任务,而且可以有效地减少源任务知识的遗忘,从而稳定地实现比普通的精调方法更优的性能。

5. 结论

在本文中,我们通过桥接两种迁移学习范例:顺序迁移学习和多任务学习,有效缓解了适应深层预训练语言模型时的灾难性遗忘问题。为了解决联合训练预训练任务时缺少预训练数据的问题,我们提出了一种预训练模拟机制在没有数据时学习预训练任务。接着,我们提出了目标迁移机制,以更好地平衡预训练的回忆和目标任务的学习。实验证明了我们的方法在迁移深层预训练语言模型方面的优势。我们还通过将提出的机制集成到Adam优化器中提供了开源的RecAdam优化器,以促进自然语言处理社区更好地使用深层预训练语言模型。

6. 参考文献

[1] Rahaf Aljundi, Francesca Babiloni, Mohamed Elhoseiny, Marcus Rohrbach, and Tinne Tuytelaars. 2018. Memory aware synapses: Learning what (not) to forget. In Proceedings of the European Conference on Computer Vision, pages 139–154.

[2] Gaurav Arora, Afshin Rahimi, and Timothy Baldwin. 2019. Does an lstm forget more than a cnn? an empirical study of catastrophic forgetting in nlp. In Proceedings of the Australasian Language Technology Association, pages 77–86.

[3] Roy Bar Haim, Ido Dagan, Bill Dolan, Lisa Ferro, Danilo Giampiccolo, Bernardo Magnini, and Idan Szpektor. 2006. The second PASCAL recognising textual entailment challenge.

[4] Luisa Bentivogli, Ido Dagan, Hoa Trang Dang, Danilo Giampiccolo, and Bernardo Magnini. 2009. The fifth PASCAL recognizing textual entailment challenge. In Proceedings of TAC.

[5] Samuel Bowman, Luke Vilnis, Oriol Vinyals, Andrew Dai, Rafal Jozefowicz, and Samy Bengio. 2016. Generating sentences from a continuous space. In Proceedings of The SIGNLL Conference on Computational Natural Language Learning, pages 10–21.

[6] Rich Caruana. 1997. Multitask learning. Machine learning, 28(1):41–75.

[7] Daniel Cer, Mona Diab, Eneko Agirre, Inigo LopezGazpio, and Lucia Specia. 2017. Semeval-2017 task 1: Semantic textual similarity multilingual and cross-lingual focused evaluation. In Proceedings of the International Workshop on Semantic Evaluation, pages 1–14. Association for Computational Linguistics.

[8] Xinyang Chen, Sinan Wang, Bo Fu, Mingsheng Long, and Jianmin Wang. 2019. Catastrophic forgetting meets negative transfer: Batch spectral shrinkage for safe transfer learning. In Proceedings of the Advances in Neural Information Processing Systems, pages 1906–1916.

[9] Alexandra Chronopoulou, Christos Baziotis, and Alexandros Potamianos. 2019. An embarrassingly simple approach for transfer learning from pretrained language models. In Proceedings of NAACL, pages 2089–2095. [10] Ido Dagan, Oren Glickman, and Bernardo Magnini. 2006. The PASCAL recognizing textual entailment challenge. In Machine learning challenges. evaluating predictive uncertainty, visual object classification, and recognizing textual entailment, pages 177– 190. Springer.

[11] Matthias De Lange, Rahaf Aljundi, Marc Masana, Sarah Parisot, Xu Jia, Ales Leonardis, Gregory Slabaugh, and Tinne Tuytelaars. 2019. Continual learning: A comparative study on how to defy forgetting in classification tasks. arXiv preprint arXiv:1909.08383.

[12] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. 2019. BERT: pre-training of deep bidirectional transformers for language understanding. In Proceedings of the North American Chapter of the Association for Computational Linguistics, pages 4171–4186. Association for Computational Linguistics.

[13] William B Dolan and Chris Brockett. 2005. Automatically constructing a corpus of sentential paraphrases. In Proceedings of the International Workshop on Paraphrasing.

[14] Robert M. French. 1999. Catastrophic forgetting in connectionist networks. Trends in Cognitive Sciences, 3(4):128 – 135.

[15] Danilo Giampiccolo, Bernardo Magnini, Ido Dagan, and Bill Dolan. 2007. The third PASCAL recognizing textual entailment challenge. In Proceedings of the ACL-PASCAL workshop on textual entailment and paraphrasing, pages 1–9. Association for Computational Linguistics.

[16] Ian J Goodfellow, Mehdi Mirza, Da Xiao, Aaron Courville, and Yoshua Bengio. 2013. An empirical investigation of catastrophic forgetting in gradient-based neural networks. arXiv preprint arXiv:1312.6211.

本期责任编辑:李忠阳
本期编辑:彭   湃



由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:

(1)点击页面最上方"AINLP",进入公众号主页。

(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。

感谢支持,比心

欢迎加入预训练模型交流群
进群请添加AINLP小助手微信 AINLPer(id: ainlper),备注预训练模型

推荐阅读

这个NLP工具,玩得根本停不下来

征稿启示| 200元稿费+5000DBC(价值20个小时GPU算力)

完结撒花!李宏毅老师深度学习与人类语言处理课程视频及课件(附下载)

从数据到模型,你可能需要1篇详实的pytorch踩坑指南

如何让Bert在finetune小数据集时更“稳”一点

模型压缩实践系列之——bert-of-theseus,一个非常亲民的bert压缩方法

文本自动摘要任务的“不完全”心得总结番外篇——submodular函数优化

Node2Vec 论文+代码笔记

模型压缩实践收尾篇——模型蒸馏以及其他一些技巧实践小结

中文命名实体识别工具(NER)哪家强?

学自然语言处理,其实更应该学好英语

斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。


阅读至此了,分享、点赞、在看三选一吧🙏

登录查看更多
0

相关内容

缩小调整的幅度,精度高,准确性高。
最新《弱监督预训练语言模型微调》报告,52页ppt
专知会员服务
37+阅读 · 2020年12月26日
专知会员服务
29+阅读 · 2020年9月18日
【ICML2020】统一预训练伪掩码语言模型
专知会员服务
25+阅读 · 2020年7月23日
专知会员服务
44+阅读 · 2020年3月6日
单语言表征如何迁移到多语言去?
AI科技评论
5+阅读 · 2019年11月21日
ACL 2019 | 多语言BERT的语言表征探索
AI科技评论
20+阅读 · 2019年9月6日
强化学习三篇论文 避免遗忘等
CreateAMind
19+阅读 · 2019年5月24日
进一步改进GPT和BERT:使用Transformer的语言模型
机器之心
16+阅读 · 2019年5月1日
利用神经网络进行序列到序列转换的学习
AI研习社
12+阅读 · 2019年4月26日
通过预训练提升语言理解
开放知识图谱
4+阅读 · 2018年11月21日
Arxiv
13+阅读 · 2020年4月12日
Arxiv
29+阅读 · 2020年3月16日
UNITER: Learning UNiversal Image-TExt Representations
Arxiv
23+阅读 · 2019年9月25日
How to Fine-Tune BERT for Text Classification?
Arxiv
13+阅读 · 2019年5月14日
VIP会员
相关资讯
单语言表征如何迁移到多语言去?
AI科技评论
5+阅读 · 2019年11月21日
ACL 2019 | 多语言BERT的语言表征探索
AI科技评论
20+阅读 · 2019年9月6日
强化学习三篇论文 避免遗忘等
CreateAMind
19+阅读 · 2019年5月24日
进一步改进GPT和BERT:使用Transformer的语言模型
机器之心
16+阅读 · 2019年5月1日
利用神经网络进行序列到序列转换的学习
AI研习社
12+阅读 · 2019年4月26日
通过预训练提升语言理解
开放知识图谱
4+阅读 · 2018年11月21日
Top
微信扫码咨询专知VIP会员