本文转载自公众号“夕小瑶的卖萌屋”,专业带逛互联网算法圈的神操作
关注后,回复以下口令:
回复【789】 :领取深度学习全栈手册(含NLP、CV海量综述、必刷论文解读)
回复【入群】:加入卖萌屋深度学习/NLP/CV/搜广推等方向的技术交流与内推社群(大V、顶会审稿人云集)
回复【0511】:领取算法岗面试手册(刷offer神器)
回复【0424】:领取刷论文神器(挖掘每日、每月必刷重磅论文)
文 | ZenMoore
编 | 小轶
今天由一篇清华大学发表于 ACL'22 的最新论文说起,一起探讨一下:大模型时代,我们该如何进行数据增强?
大家可能都多少了解一些传统的数据增强方法,比如回译、对抗生成等等。但考虑到这些方法提出的年份较早,它们只在一些传统的(如今看来比较弱的)基准模型上证明有效。而且,大多数据增强的工作也都只针对一些比较简单的任务场景进行实验,比如简单的句子分类任务。
时过境迁,在如今大模型当道的时代背景下,我们可能得重新审视一下现有的数据增强方法。要知道,这些大规模语言模型性能远超传统模型;它们在简单的分类数据集上,刷到95%以上的准确率完全不在话下。今天要分享的这篇文章中,作者也通过实验证明了:对于大规模预训练模型,采用的传统数据增强方法最多只能获得极小的边际收益,甚至有时会使性能下降。
为此,作者想要探究:针对大规模语言模型,在较为困难的任务场景下,有什么更为有效且鲁棒的数据增强方法吗?所谓有效(effectiveness) ,就是要能显著提升性能。所谓 鲁棒(robustness),就是要能在所有场景下都能够稳定提升。
简单来说,本文的核心观点在于:标签翻转 (label-flipped)的增强样本对大模型的性能提升最为明显。基于此,他们提出了数据增强方法 FlipDA。
标签翻转:即增强后的新样本标签与原样本的标签不同。
论文标题:
FlipDA: Effective and Robust Data Augmentation for Few-Shot Learning
论文作者:
Jing Zhou, Yanan Zheng, Jie Tang, Jian Li, Zhilin Yang
论文链接:
http://keg.cs.tsinghua.edu.cn/jietang/publications/ACL22-Zhou-et-al-FlipDA.pdf
代码链接:
https://github.com/zhouj8553/FlipDA
标签翻转的增强样本
作者首先通过人工设计了少量标签翻转 (label-flipped) 的数据样本和标签保留 (label-preserved) 的样本,然后比较两者在多个任务上的效果:
![f29c16360fbf0f5a69d07640f82e4385.png](https://i-blog.csdnimg.cn/blog_migrate/2a71ca6c640172d7219eeb0235779a8e.png)
结果发现,标签翻转在多个任务上,竟然能超出将近 10 个点!虽然这部分实验只采用了一小部分人工设计的增强样本,结论有一定局限性,但显然还是值得进一步分析和研究的。
经过分析,作者认为标签保留的数据增强主要有两个问题:
(1) 数据增强导致语法错误(这一点尤其重要)
(2)数据增强导致关键信息丢失
作者认为,这是由于标签翻转的增强样本,更能够使模型学习到哪些才是文本中的关键部分。
![258b64b22cb86ca115bebdeebc41b107.png](https://i-blog.csdnimg.cn/blog_migrate/1e87df9b479796272e706ab4d88b9eec.png)
总之,基于以上实验结果和分析,作者认为可以假设:相比于标签保留的数据增强方式,标签翻转的方式更加有效且鲁棒。于是,他们根据这一假设提出了 FlipDA 的数据增强方法,并进行了大量实验分析。
FlipDA
-
首先使用 BERT 等训练一个标签分类器
-
然后,使用 T5 模型生成新的增强数据:将使用类似于[1]中的 prompt 的方式拼接起来作为 input, 随机 mask 掉一些 input tokens, 使用 T5 模型预测这些 mask 从而生成新的样本(这种方法称为:Pattern-based Data Cloze)。这样,对于每个训练样本 ,可以生成一个新样本集合
-
在分类器 的帮助下筛选新样本:对于原样本 , 我们有了新样本集, 这个 里面包含了一些标签翻转数据(即:), 我们分类器 把它们挑出来得到
402 Payment Required
。最后再挑出置信度最高的那部分 ,就是针对原样本 生成的增强样本。
实际操作中,除了标签翻转的增强数据,再加少量标签保留的增强数据也是有益的。
-
使用原样本+增强样本重新训练分类器。
实验
实验任务
实验主要在 FewGLUE([1], 也就是 SuperGLUE 的 few-shot 版本) 上进行。包含 question answering, textual entailment, co-reference resolution, causal reasoning and word sense disambiguation 等 7 项任务。
Baseline
-
同义词替换:使用 WordNet 中的同义词替换
-
KNN 替换:使用 GloVe 选择最相似的单词之一进行替换
-
EDA(Easy Data Augmentation) : 同时使用同义词替换、随机插入、随机置换、随机删除
-
回译(back translation)
-
TinyBERT : 使用 BERT 预测出的 token 或者 GloVe 导出的词汇进行替换
-
T5-MLM : 和本文方法大体相同,但是该方法是标签保留的数据增强,而且没有后面的筛选步骤
-
MixUP : 在特征空间进行增强(如采用特征空间中两个样本之间的线性插值)
模型
-
ALBERT-xxlarge-v2
-
DeBERTa-xxlarge-v2
评测指标
-
有效性:accuracy,f1, em (exact-match)
-
鲁棒性:MaxDrop (MD)
这里作者提出了 MaxDrop 专门用来衡量鲁棒性:
对于多个任务 、待测方法 method 以及 baseline :
402 Payment Required
这个值越小,代表模型越鲁棒。
对比实验
可以看到,FlipDA 方法无论在有效性上还是鲁棒性上都有 SOTA 的性能。
消融实验
FlipDA 主要核心是下面两步:
-
Pattern-based Data Cloze:本文采用该方法生成增强样本。
-
使用分类器进行数据筛选。
下面分别进行消融实验:
可以看到,
-
Pattern-based Data Cloze 在所有任务上都是有效的,因为它可以有效减少语法错误,更加兼容标签翻转方式。
-
分类器筛选在大多数任务上有效,但是对于下面这些任务或增强样本生成方式,需要另外的思考:
-
使用 BT (回译)数据进行增强,缺少数据多样性,使用分类器筛选会进一步降低多样性,因此不一定有效
-
对于词义消歧或者因果推理任务,因为需要预测多个 tokens, 所以生成标签翻转数据会更加困难一些,也不一定有效。
另外,标签翻转+标签保留相比于只使用标签保留的数据增强具有更好的效果:
标签翻转的方向
标签翻转的方向也是需要考虑的点,比如对于是否类的问答任务,生成答案为“否”的数据相对更加容易一些。但是,只有同时具有多个方向的标签翻转增强数据,才更有可能超越 baseline 的性能。
样本选择策略
-
Default : 即上文所述的样本选择方法。
-
Global TopK : 选择概率最大的前 K 个样本
-
Global TopP : 选择概率大于阈值 P 的样本
-
Diverse TopK : 先在每个原样本对应的增强样本中选择 top-1, 然后依次选择 top-2, top-3 等等,一直选到 top-k,这个策略主要出于原样本上的数据平衡的考量。
实验表明,默认策略或者 Diverse TopK 更好一些。
写在后面
不得不说,这种标签翻转的数据增强方法,其实和对比学习多少有些神似。只不过,前者是在数据端进行对比增强,后者更多的是在损失端进行对比增强。
也许,这会给我们发扬光大对比学习思想带来新的启发~ 也会促进我们思考更加适配于大模型的一些训练、数据增强策略。
本文转载自公众号“夕小瑶的卖萌屋”,专业带逛互联网算法圈的神操作
关注后,回复以下口令:
回复【789】 :领取深度学习全栈手册(含NLP、CV海量综述、必刷论文解读)
回复【入群】:加入卖萌屋深度学习/NLP/CV/搜广推等方向的技术交流与内推社群(大V、顶会审稿人云集)
回复【0511】:领取算法岗面试手册(刷offer神器)
回复【0424】:领取刷论文神器(挖掘每日、每月必刷重磅论文)
萌屋作者:ZenMoore
北航本科生🧐,爱数学爱物理爱 AI🌸 想从 NLP 出发探索人工认知人工情感的奥秘🧠🤖!个人主页🌎 zenmoore.github.io 知乎🤔 ZenMoore, 微信📩 zen1057398161 嘤其鸣矣,求其友声✨!
作品推荐
[1] T. Schick and H. Schutze. It’s not just size that matters: Small language models are also few-shot learners. ArXiv, abs/2009.07118, 2021