2022-03-10-NLP文本场景的数据优化

NLP 文本场景的数据优化@(NLP)[数据增强, 噪声]序言数据增强(Data Augmentation,简称DA),是指根据现有数据,合成新数据的一类方法。毕竟数据才是真正的效果天花板,有了更多数据后可以提升效果、增强模型泛化能力、提高鲁棒性等。数据增强主要在CV应用中比较常见,然而由于NLP任务天生的难度,类似CV的裁剪方法可能会改变语义,既要保证数据质量又要保证多样性,所以大家在做...
摘要由CSDN通过智能技术生成

NLP 文本场景的数据优化

@(NLP)[数据增强, 噪声]


序言

数据增强(Data Augmentation,简称DA),是指根据现有数据,合成新数据的一类方法。毕竟数据才是真正的效果天花板,有了更多数据后可以提升效果、增强模型泛化能力、提高鲁棒性等。数据增强主要在CV应用中比较常见,然而由于NLP任务天生的难度,类似CV的裁剪方法可能会改变语义,既要保证数据质量又要保证多样性,所以大家在做数据增强时要十分谨慎。

数据增强的目的

  • 在很多机器学习场景下,没有足够的数据(数据稀缺场景)来训练高质量的模型。
  • 提高训练数据的多样性,从而得到在真实场景下(很多没有见过的数据)更好的泛化效果。
  • 样本不均衡
  • 为了模型安全,应对模型的对抗攻击。

NLP数据增强研究基本现状1

  • 在CV上很成功,逐渐在NLP任务上发现有效
  • 在文本分类2领域数据增强方法也比较多,其他任务例如NER,多标签分类等就相对少一些;
  • 语言输入是离散,而且一定的文本改变容易引起文本分布的巨大改变,无法做到像图片那样不可见的抖动;
  • 一般算法都可以从输入文本空间和文本编码空间进行数据增强。
  • 对抗攻击: 相比较CV的对抗,文本的对抗存在很大差异。文本输入为离散的

问题:

  • 数据增广在当前迁移学习大背景下的大规模预训练模型上有用吗?

Data Augmentation in NLP

Paraphrasing:对句子中的词、短语、句子结构做一些更改,保留原始的语义 Noising:在保证label不变的同时,增加一些离散或连续的噪声,对语义的影响不大 Sampling:旨在根据目前的数据分布选取新的样本,会生成更多样的数据

Data Augmentation Approaches in Natural LanguageProcessing: A Survey3

Paraphrasing

364eb31d61287fb1e34f2e261cf4cf95.png

小结: 在尽可能保留句子整体语义的情况下,增加文本丰富度,包括让每个词拥有更加丰富的上下文context,让相似的语义表达有更多样的语法构成,词汇构成等等

Noiseing

作者给出了以下5种增加噪声的方法: bffddde32b0c6948f310a925d3010257.png

  • Swapping:除了交换词之外,在分类任务中也可以交换instance或者sentence
  • Deletion:可以根据tf-idf等词的重要程度进行删除
  • Insertion:可以把同义词随机插入句子中
  • Substitution:把一些词随机替换成其他词(非同义),模拟misspelling的场景。为了避免改变label,可以使用label-independent的词,或者利用训练数据中的其他句子
  • Mixup:这个方法最近两年比较火,把句子表示和标签分别以一定权重融合,引入连续噪声,可以生成不同label之间的数据,但可解释性较差 总的来说,引入噪声的DA方法使用简单,但会对句子结构和语义造成影响,多样性有限,主要还是提升鲁棒性。 ConSERT时用到的方法:
  • 对抗样本
  • Dropout:也是SimCSE用到的,还有R-drop,都是通过dropout来加入连续噪声
  • Feature Cut-off:比如BERT的向量都是768维,可以随机把一些维度置为0,这个效果也不错

小结: 增加模型稳健性,在不过多影响training error的前提下,降低模型的复杂度从而降低generalization error, 类比dropout,l2,random noise injection

Sampling

outside_default.png Sampling是指从数据分布中采样出新的样本,不同于较通用的paraphrasing,采样更依赖任务,需要在保证数据可靠性的同时增加更多多样性,比前两个数据增强方法更难。作者整理了4种方法:

  • Rules:用规则定义新的样本和label,比如把句子中的主谓进行变换
  • Seq2Seq Models:根据输入和label生成新的句子,比如在NLI任务中,有研究者先为每个label(entailment,contradiction,neutral)训一个生成模型,再给定新的句子,生成对应label的。对比之下,paraphrasing主要是根据当前训练样本进行复述
  • Language Models:给定label,利用语言模型生成样本,有点像前阵子看的谷歌UDG。有些研究会加个判别模型过滤
  • Self-training:先有监督训练一个模型,再给无监督数据打一些标签,有点蒸馏的感觉

outside_default.png

增强方法选择依据

三种类别的数据增强方法特点总结

Method Stacking 实际应用时可以应用多种方法、或者一种方法的不同粒度。

作者推荐了两款工具eda4和uda5

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值