摘要
数据增强(DA)是一种有效的策略,可以缓解深度学习技术可能失败的数据稀缺情况。它在计算机视觉中得到了广泛的应用,然后被引入到自然语言处理中,并在许多任务中取得了改进。DA方法的重点之一是提高训练数据的多样性,从而帮助模型更好地泛化到未见测试数据。在本研究中,我们根据扩充数据的多样性,将数据增强方法分为三大类,即复述、噪声和抽样。本文从以上几个方面对数据挖掘方法进行了详细的分析。此外,我们还介绍了它们在自然语言处理任务中的应用以及面临的挑战。
引言 数据增强(Data Augmentation,简称DA),是指根据现有数据,合成新数据的一类方法。毕竟数据才是真正的效果天花板,有了更多数据后可以提升效果、增强模型泛化能力、提高鲁棒性等。然而由于NLP任务天生的难度,类似CV的裁剪方法可能会改变语义,既要保证数据质量又要保证多样性,使得大家在做数据增强时十分谨慎。
作者根据生成样本的多样性程度,将DA方法分为了以下三种: Paraphrasing:对句子中的词、短语、句子结构做一些更改,保留原始的语义 Noising:在保证label不变的同时,增加一些离散或连续的噪声,对语义的影响不大 Sampling:旨在根据目前的数据分布选取新的样本,会生成更多样的数据
Paraphrasing
这类方法根据替换的成分不同,又可以分为词、短语、句子级别。作者共总结了6种方法: Thesaurus:利用词典、知识图谱等外部数据,随机将非停用词替换成同义词或上位词,如果增加多样性的话还可以替换成相同词性的其他词 Semantic Embeddings:利用语义向量,将词或短语替换成相近的(不一定是同义词)。由于每个词都有语义表示,可替换的范围更大。而上一种方法只能替换图谱里的 MLMs:利用BERT等模型,随机mask掉一些成分后生成新的 Rules:利用一些规则,例如缩写、动词变位、否定等,对句子一些成分进行改写,比如把 is not 变成 isn't Machine Translation:分为两种,Back-translation指把句子翻译成其他语言再翻译回来,Unidirectional Translation指在跨语言任务中,把句子翻译成其他语言 Model Generation:利用Seq2Seq模型生成语义一致的句子
Noising 人在读文本时对噪声是免疫的,比如单词乱序、错别字等。基于这个思想,可以给数据增加些噪声来提升模型鲁棒性。
作者给出了以上5种增加噪声的方法: Swapping:除了交换词之外,在分类任务中也可以交换instance或者sentence Deletion:可以根据tf-idf等词的重要程度进行删除 Insertion:可以把同义词随机插入句子中
Substitution:把一些词随机替换成其他词(非同义),模拟misspelling的场景。为了避免改变label,可以使用label-independent的词,或者利用训练数据中的其他句子
Mixup:这个方法最近两年比较火,把句子表示和标签分别以一定权重融合,引入连续噪声,可以生成不同label之间的数据,但可解释性较差
Sampling
Sampling是指从数据分布中采样出新的样本,不同于较通用的paraphrasing,采样更依赖任务,需要在保证数据可靠性的同时增加更多多样性,比前两个数据增强方法更难。作者整理了4种方法: Rules:用规则定义新的样本和label,比如把句子中的主谓进行变换 Seq2Seq Models:根据输入和label生成新的句子,比如在NLI任务中,有研究者先为每个label(entailment,contradiction,neutral)训一个生成模型,再给定新的句子,生成对应label的。对比之下,paraphrasing主要是根据当前训练样本进行复述 Language Models:给定label,利用语言模型生成样本,有点像前阵子看的谷歌UDG。有些研究会加个判别模型过滤 Self-training:先有监督训练一个模型,再给无监督数据打一些标签,有点蒸馏的感觉