文 | 舒意恒、兔子酱
来自 | 夕小瑶的卖萌屋
以 BERT 为代表作的预训练模型的研究热度一直很高,到 0202 年了,预训练的研究依旧层出不穷,而且 ACL 2020 Best Paper 荣誉提名也选择了这一主题的研究。
但是,只要我们不停止预训练,其表现就一定会提升吗?预训练模型可以完全支持 NLP 的所有下游任务吗?在 ACL 2020 已发表的论文中,我们整理并归纳出了目前学术界对预训练模型的不同看法。
预训练的优势,来源于大量数据积累所造就的良好泛化能力。
ACL 2020|Don’t Stop Pretraining: Adapt Language Models to Domains and Tasks[1]
动机
虽然通用预训练模型是在大量语料上进行的,且在glue benchmark等经典的公开数据集上取得了很好的效果,但是当其迁移到一些不那么通用的领域数据(如医疗、金融等)上时,通用预训练模型是否依然有这么好的表现呢?
实验
作者在4个领域(生物医学、计算机科学、新闻和评论)的8个分类任务上进行了“继续预训练”的实验,有以下两种“继续”方式:
领域自适应预训练(Domain-Adaptive Pre-Training, DAPT) 在特定领域的无标注数据上继续进行预训练。
任务自适应预训练(Task-Adaptive Pre-Training,TAPT) 在和任务相关但未标注的数据上继续进行预训练。
实验设置如下:
实验结果:
结论
实验表明针对领域(DAPT)或任务(TAPT)数据继续预训练可以提升下游模型的效果,先进行领域自适应训练再进行任务自适应训练,往往可以进一步提升模型表现。虽然论文是基于 RoBERTa 展开实验,但是作者认为这些策略都是通用的,所以应用到其他语言模型上也是奏效的。
当能获取到更多任务相关的无标注数据进行继续预训练(Curated-TAPT)时,效果更佳;如果无法取得这些数据,可以通过基于KNN的简单数据选择策略,也可以取得一定程度的提升。
此外,作者对来自相同 domain 的两个不同任务进行了“跨任务迁移实验”,即首先在任务 A 的标注数据上进行 LM 预训练,然后在任务 B 的标注数据上 finetune,实验发现这种跨任务的预训练对效果是有损失的。
该更多的更多细节可以参考卖萌屋前不久推送过的《ACL20 best paper荣誉提名 | DO NOT Stop Pretraining!》
ACL 2020 | Pretrained Transformers Improve Out-of-Distribution Robustness[2]
动机
通常一个 NLP 任务的训练集、验证集、测试集都是符合相同分布(independent and identically distributed,IID)的数据。以 Transformer 为内核的预训练模型在相同分布的测试集上可以取得高准确率,但是它们在不同分布(out-of-distribution,OOD) 的数据上的泛化能力如何呢?
实验
作者首先构建了一套测试模型鲁棒性的评价体系,然后在 7 个 NLP 任务上度量多个模型的 OOD 泛化能力 generalization 和检测能力 detection。实验的模型包括 bag-of-words、ConvNets 和 LSTM 以及 Transformers 系的 BERT、ALBERT模型。
结论
基于 Transformers 的模型相比其他结构的较早提出的模型在 OOD 上更加鲁棒,尤其是训练语料的风格、形式越丰富的时候。但是并不代表说越大参数规模的 PTMs 表现越好。预训练很大程度上弥补了 OOD 和 IID 之间的差异。
蒸馏可能对 PTMs 性能是有损害的。
PTMs 在异常样本检测上也比以前的模型表现更敏感。
另外,本文不同于域适应要同时学习源和目标分布的表示,而是在没有域适应的情况下,测试模型在不可预知的分布偏差下的鲁棒性。
ACL 2020|Pre-training Is (Almost) All You Need: An Application to Commonsense Reasoning[3]
动机
对预训练模型进行微调已经成为解决下游 NLP 任务的一个标准做法。因为预训练模型本身没有携带特定分类标签的先验知识,所以作者认为微调不是最优的。那如何更好地利用预训练模型呢?
实验
本文研究的任务是常识推理任务,Transformer-based 的 encoder 之后不是连接分类层,而是设计了一个对 hypotheses 进行排序的打分函数。在 4 个常识推理数据集进行 zero-shot learning。同时和以 classifier 为输出层进行 finetune 的方法进行了对比,测试两者随着训练集规模的变化的模型表现。采用 RoBERTa-large 作为实验模型。
结论
实验表明,和有监督方法相比,作者提出的评分方法可以作为一个很强的 baseline。直接使用 MLM 的 head 会有持续的性能增益随着训练数据规模的减小。未来工作包括将该评分方法用于自然语言推断和情感分析等任务。
预训练模型的局限体现在,一是记忆和存储语言知识的能力有限,二是对语言逻辑的理解能力有限。
ACL 2020|To Pretrain or Not to Pretrain: Examining the Benefits of Pretraining on Resource Rich Tasks[4]
动机
PTMs 已然取得了很好的效果,作者认为在数据丰富的下游任务中微调模型还没有很好地被研究,所以作者想检验下游任务中训练样本的数量对预训练模型的影响。
实验
本文实验关注于多类别的情感分类任务,对三种模型进行了系统的实验,包括 RoBERTa、LSTM 以及使用预训练模型的词向量层的 LSTM。
结论
对于文本分类任务来说,用百万级的数据训练简单的 LSTM 就足够获得有竞争力的效果。微调 RoBERTa 的结果 与 LSTM 的差距不足 1% 。当训练数据足够多时,基于 MLM 的 PTMs 表现可能不再增加。
ACL 2020|Negated and Misprimed Probes for Pretrained Language Models: Birds Can Talk, But Cannot Fly[5]
动机
PTMs 已经成为一种用来捕获通用语言知识和基础事实知识的通用工具,但是 PTMs 是否真的可以从训练语料中学习到知识呢?比如 PTMs 是否具备区分肯定否定、是否不被错误的噪声干扰呢?
实验
作者设计了两组实验来对 PTMs 进行语言模型分析(LAnguage Model Analysis,LAMA)。1)研究模型是否可以正确区分肯定否定。通过人为地在句子中插入否定词,比如(“Birds cannot [MASK]”)和(“Birds can [MASK]”);(2)研究模型是否被错误信息诱导。在模型可以正确识别的句子中加入“错误”,比如(“Talk?Birds can [MASK]”)。
结论
作者发现预训练模型都不能很好地处理这两类问题。当前的预训练模型很容易被干扰,例如句子中的否定和“错误”。它是通过较浅层的模式匹配的方式解决开放域QA问题,而不是基于事实知识和推理。事实知识和逻辑推理能力在预训练模型中是零散的、不成体系的。
迁移能力的局限体现在,对于小数据集能否很好地适应任务?或者微调后是否忘记了已经在预训练中学习到的知识?
ACL 2020|Intermediate-Task Transfer Learning with Pretrained Models for Natural Language Understanding: When and Why Does It Work?[6]
动机
尽管预训练模型表现良好,在对目标任务微调之前,如果在数据丰富的中间任务上对模型进行再次训练是否可以提升效果?再者,什么样的中间任务对目标任务有益?
实验
作者对中间任务对 PTMs 的影响进行了大规模的实验,本质上一篇篇实验报告的文章。实验的步骤如下图所示,1)获得预训练的 RoBERTa,2)在中间任务上继续训练,3)对目标任务微调。本文一共设计了 110 种中间任务和目标任务的组合,并用 25 个探针任务进行评估,涵盖了语法和语义。
结论
作者观察到,需要高级推理能力的中间任务,对于提升目标任务的效果往往更好。例如共指共指解析任务。但遗憾的是,作者并未观察到中间任务与目标任务之间更加精细的相关性,这有待于进一步的研究。另外作者表明,经过中间任务的学习后可能导致模型忘记一些预训练中得到的知识,而这可能限制了对算法的分析。
ACL 2020|Do You Have the Right Scissors? Tailoring Pre-trained Language Models via Monte-Carlo Methods[7]
动机
微调是一种常见的利用预训练模型的方式。作者观察到在一个小数据集上微调可能导致高估(over-estimated) 或 低估(under-estimated) 的现象。
实验
作者提出一种称为 MC-Tailor 的方法,把高估区域的概率质量(probalility mass)截断和转移到低估区域。MC-Tailor 包括一个检测高估和低估区域的比率估计模块,以及一个 早期拒绝采样(Early Rejection Sampling,ERS) 算法,在保证采样质量的同时加快采样速度。在 9 个不同风格和规模的数据集进行实验,并使用了 5 项评价指标。
结论
在文本生成任务上,MC-Tailor 效果显著优于微调方法。这表明在小数据集上应用预训练模型,微调可能不是拟合数据的最好方法。
预训练对于下游任务来说似乎是一个黑盒,仅仅对预训练模型进行微调并不代表我们完全掌控了这一模型。
ACL 2020|Weight Poisoning Attacks on Pretrained Models[8]
动机
如果用户下载了不受信任的预训练模型,是否会构成安全威胁呢?
实验
作者通过一种 RIPPLe 的正则化方法和 Embedding Surgery 的初始化方法,构建 weight poisoning 攻击(如图所示),在情感分类,毒性检测和垃圾邮件检测任务上验证此方法的可行性。
结论
weight poisoning 这种攻击方式广泛存在,并且构成了严重威胁。即使攻击者对数据集和微调过程了解有限的情况下,也可以随意操控模型预测结果。所以,预训练模型在微调后可能会暴露“后门”, RIPPLe 甚至可能构建高达 100% 成功率的后门。另外,作者提出一种防御方式是,根据频率以及与输出类别的关系来检查可能的触发关键词。
我们不应当一味鼓吹预训练模型在 NLP 中的作用。预训练模型是庞大的黑盒子,是大型语料库的高度抽象。T5、GPT-3 等模型,比更大还更大,以到普通实验室无法使用的地步。
共性与个性是我们理解世界的基本原理之一,而只强调预训练意味着只强调 NLP 任务的共性,即便这样的模型再大,也忽视了各类任务的个性。通过汇集当前研究的各种观点,我们可以发现,更大的模型并不是解决 NLP 各类任务的万能钥匙。
更重要的是且对研究者具有启发的是,预训练模型的迁移能力、对语言的记忆能力、语言理解能力,甚至安全性上还存在诸多缺陷,等待我们的探索。
推荐两个专辑给大家:
专辑 | 李宏毅人类语言处理2020笔记
整理不易,还望给个在看!