提纲
1 简介
2 介绍
3 方法
4 挑战
5 总结
参考文献
1 简介
随着NLP技术的不断发展,大规模语言模型的流行,各种低资源场景跟新任务的层出不穷,人们对数据增强的兴趣跟需求与日俱增,
如何在缺乏训练数据的条件下完成模型训练成为一个火热的研究课题。而Data augmentation就是其中一种行之有效的解决方案,但是由于自然语言的离散性带来的难题,目前这个领域还没有得到充分探索。
图1: "data augmentation"火热程度
2 介绍
什么是数据增强?
数据增强是一种为了提高训练数据多样性同时不需要显示收集新数据的策略。 也就是说,数据增强是不借助于收集更多新数据,而通过其他方式去提高数据多样性。不收集更多新数据就意味着节省大量人力标注的成本,更容易迁移到到更多任务或者领域。提高训练数据多样性就能让模型学习到更多丰富的数据模式,从而训练的到更佳鲁棒以及强大的模型(单一模式的训练数据是会损害模型性能的)。数据增强旨在提供一种收集到更多数据的选择(而不是传统的人工标注),理想中的数据增强应该同时兼顾容易扩充和提升模型性能。更多的, 通过数据增强扩充的数据的分布既不应该跟原始的数据分布太过相似,那样就会导致明显的同质性,缺乏多样性,容易导致模型过拟合,也不应该跟原始的数据分布差的太多,那样会导致扩充数据没法代表领域,从而导致模型精度受损。
为什么要做数据增强呢?
神经网络的训练需要数据支撑,越庞大的模型需要越多的训练数据,在大模型盛行的今天,对于数据的要求只多不少。同时,很多低资源场景下或者新任务极度缺乏训练数据,收集训练数据需要付出非常大的代价。为此,如何在少量数据条件下去扩充数据集,获得庞大体量的新数据,从而提高训练数据的多样性就是一件值得关注的事情了。数据增强并不简单的增加训练数据的数量,添加没意义或者不合要求的训练数据反而会损害模型精度。
3 方法
目前数据增强的方法层出不穷,可以分为以下三种类型,在前面的章节已经展开介绍过了,具体可以查阅前面几周的文章。
a) Ruled based techniques
基于简单的规则对原文本做一定的调整,从而合成新的数据,例如同义词替换,随机删除某个词,随机交换某些词之间的位置等等,也就是常说的”增删改“。基于规则的方法受限于本身的规则,很难发现更多新模式,扩充的数据在多样性上有所不足。
b) Example interpolation techniques
把不同的样本以及相应标签通过线性或者非线性的方式混合到一起,合成新的数据。有种英雄融合的意思,将A英雄跟B英雄融合到成C英雄,那么C英雄上会同时具备A英雄跟B英雄的属性加成。Example interpolation techniques
c) Model based techniques
利用seq2seq语言模型去合成完整的目标数据,或者通过语言模型去预测原文中被mask掉的位置,再利用一些特殊技巧为合成数据打上新的类别标签。
数据增强一方面既希望能够获得多样性并且高质量的合成数据,能让模型有效学习的数据,单一繁杂的数据对于模型并没有收益。另一方面,希望能合成较大规模的数据,以缓解诸多低资源场景的需求。
图2: 数据增强方法
4 挑战
a) 理论研究跟经验主义之间的不平衡
目前缺乏关于数据增强本质的研究,大多数研究从经验说明数据增强的有效性并且提供一些直观想法。如同目前深度学习的可解释性,在理论研究方面缺乏相关研究。
b) 数据增强对于预训练模型是否有效
对于像Bert,RoBERTa这样的大规模预训练语言模型,数据增强在领域内数据中没有明显增益。一种猜测是如果数据增强扩充的数据还是同个领域内的,也就是预训练模型在预训练时已经用过了,那么在finetune时就不会有增益。如果数据增强扩充的数据时其他领域的,那么这种方式依旧有效。关于在预训练模型下那种场景下数据增强依旧有效是值得研究的问题。
c) 多模态挑战
目前绝大多数工作聚焦于单模态,如果同时探索多个模态的数据增强是一个很有前景的工作。例如图片描述任务下对于图像跟问题的同时增强。
d) Span-based任务带来的新挑战
基于span的任务提出了新的挑战,由于前后句子之间的关联跟依赖,例如随机替换的数据增强办法虽然在局部是可接受的,但是有可能破坏句子之间的指代关系。为此,数据增强需要考虑文本中不同位置之间的依赖关系。
e) 专业领域应用
类似于大规模语言模型也无法有效应用于医学等专业领域,数据增强的办法当应用到领域外数据也不再有效,归因于扩增的数据分布明显不同于原始数据的分布。
f) 低资源语种应用
跟前面提到的挑战相似,在高资源场景下有效的数据增强方法,在另一种低资源或者语言和构词差异明显的语种下就不那般有效。例如有的低资源语种相对独立并且缺乏同质的高资源语种。
5 总结
对于大多数玩家而言,多多少少用过集中数据增强方法,像我就经常会用到回译和Mixup相关方法, **在项目初期,利用这些数据增强方法,在缺乏标注数据的条件下快速验证设计方案的有效性是一种非常高效的方式。** 很多数据增强方法在稍微简单的网络上都已经被证明了有效性,但是大模型是一种趋势,如何数据增强跟大模型融合到一起才是一个更加值得思考的问题,在简单网络上被证明有效的数据增强方案,遇到大模型就不一定有那么明显增益了,(毕竟大模型见多识广,什么数据没见过)。同时目前数据增强也缺乏一个合理且完整的评价框架和标准,没有对所有数据增强方法做统一的评测并排序。
参考文献
1.(2021,) A Survey of Data Augmentation Approaches for NLP