文 | Sherry

一直以来,数据都是推动深度神经网络这个人工智能引擎不可或缺的燃料;然而人工收集足量而优质的数据从来不是一件“便宜”的事,数据增强便是一座富有价值的矿山。
在CV中,翻转,裁剪,加噪声等方法被广泛应用且获得了显著的效果。但在NLP领域,由于语言的离散性,如何获得保持文本原意的新数据就显得不那么简单了。大型预训练模型的成功为我们带来了曙光,推动了许多低资源领域或是新任务的研究,然而微调大型模型需要大量数据,如何自动获得高质量数据在最近的研究中显得尤为重要。
Google,CMU,Mila等研究者合作,对当前NLP领域的数据增强进行了总结。被收录到ACL 21 Findings。
本文将帮你总结:NLP数据增强的难点和理解;常见方法;应用场景;和不同下游任务中的常见方法。

论文题目:
A Survey of Data Augmentation Approaches for NLP

论文链接:
https://arxiv.org/pdf/2105.03075

GitHub:
https://github.com/styfeng/DataAug4NLP

也可以在 【夕小瑶的卖萌屋】订阅号后台回复关键词 【0602】 下载论文PDF~

NLP数据增强的难点和理解角度

数据增强的目标和难点
数据增强的目标当然是为了获得更多的数据,但需要满足两个条件:容易执行,且可以提高模型表现。如果说一个增强的方法他本身就需要大量资源(比如训练一个复杂的生成模型),我们完全可以用人工标注的方法来获得最优质的数据,增强就会显得没有意义;如果增强获得的数据质量不够高(比如由简单规则生成),反而会破坏模型的表现,那这种增强也违反了我们的初衷。为了获得高质量的增强数据,我们通常要求增强的数据分布和原数据集不要相差太大(可能破坏模型表现),也不要相差太小(可能导致过拟合)。

怎么看待数据增强
通常来说,数据增强被认为可以增加模型正则性,减少过拟合,但其实很少有人解释它到底为什么可以帮助模型训练。现有的工作中,从以下角度给出了解释:

  1. 从正则化角度出发,研究者提出含有噪声的样本有助于帮助正则化;若是把数据增强看作核变换,则它有助于平均不同的特征,并正则化方差;同样,我们也可以把数据增强看作平均不同数据的分布轨迹,从而也能得到减少方差的效果。

  2. 另外,也有研究者证明了指数量级的数据增强可以提高分类器的正边界,但显示应用中我们通常不会增强这么大量的数据。

常见方法

NLP的增强虽然有很多难点,但近年来也发展出了许多比较成熟的分支。常见的数据增强方法可以分为以下几类:

基于规则

特征空间的增强

由于自然语言的离散性,直接生成更多数据显得很艰难,一个直接的方法就不生成语言数据,而是在特征空间直接进行增强。比如说,在少样本学习中,我们先学习训练领域的不变量,然后在目标类别上特征空间的不变量转换得到更多特征样本。或者是在同一类的空间流形上不断进行仿射变换来获得更多特征样本。

EDA--简单的规则

EDA是一种简单有效,也被广泛应用的文本增强:随机插入,删除,替换token从而在文本数据中加入噪声。EDA的改进版UDA则利用简单的增强,包括回译,或者根据TF-IDF替换词等方法获得增强数据,再最小化增强后未标注样本和原样本的一致性损失函数来帮助半监督学习。

图上的变换通过句法解析等技术,我们也可以讲自然语言转化成图/树的结构。因此,我们也可以通过人为设计树上的变换来获得增强数据:比如把交换子树的顺序或者删除子树等。

样本插值

MixUp在图像领域被广泛应用,具体而言,它对两个及以上的训练样本进行插值。把两张一样大的图每个像素点按叠加,同时目标标签也按同样权重叠加,就得到了一个新的合理训练数据。除了按照像素点叠加,也可以把图A的局部用图B代替,然后按图片面积占比插值得到新类别(CutMix)。

将这种思路引入文本增强的难点在于:文本是离散的,无法找到合适的插值单位。但仍然有一些常见的方法可以应用:

  1. 拼接句子,混合嵌入词向量或者高维表示向量。

  2. Seq2MixUp提出两种混合样本的方法:一个是对句子的每个位置随机决定复制两个样本中的一个字;或者是根据概率分布混合词向量。

基于模型的增强

这类方法利用已经训练好的模型作为增强数据的方法。

回译 -- 翻译模型
利用已经训练好的翻译模型来增强数据就是一种常见而有效的方法。通常我们把训练数据翻译成一种或多种其他语言,再翻译回来,筛选之后可以得到质量比较高的数据。

填空 -- 语言模型
大型预训练网络获得成功之后,另外一个常见而有效的方法就是用这类模型替换原样本中的词或片段。例如随机mask上句子中的词,然后用BERT这类模型填入和原来不一样的候选词。

语意近邻 -- 生成模型
除了回译和填空,我们也可以直接利用生成模型。之前的样本混合或扰动的方法水直接利用隐空间表示来获得新样本,但我们同样也可以讲这些混合或扰动之后的表示向量作为生成模型的条件输入,从而得到新的样本。

直接用生成模型
除了给定向量表示来生成,我们也可以直接在目标数据集上微调GPT等生成模型,然后直接生成新的训练数据;再用自监督的方法获得标注。

应用场景

数据增强有许多具有研究价值的应用场景。

低资源语言

低资源语言的数据获取一直以来都是研究的重要分支。常见的增强方法包括1)利用高资源语言中可以被推广的性质帮助低资源语言,2)利用回译+自监督来生成增强训练数据。

处理性别偏差

在指代消解(coreference)任务中,我们可以通过交换he/she来平衡数据集中的性别分布。更进一步,我们可以用替换词汇为更中性的词汇来平衡可能引起性别偏差的数据。

解决不平衡类别

常见的解决不平衡类别的方法有upsample/downsample。利用数据增强,我们可以通过插值生成minority class 样本,或者用EDA等方法直接增加少数类别的样本。

下游任务中的变种

接下来我们按照不同任务总结了增强的方法,作者在GitHub中也给出了详细的总结,可以参考:
https://github.com/styfeng/DataAug4NLP。

摘要 Summarization

  1. 类似UDA,先从回译获得增强数据,然后利用一致性损失函数提升效果。

  2. 混合从Common Crawl获得的合成数据以及原数据集来提升模型效果。

问答 QA

  1. Domain-agonistic QA: 回译

  2. 开放领域问答:远程监督,利用原数据集以及抽取器获得数据

  3. Zero-shot cross-lingual: 问题生成

  4. Cross-lingual QA/NLI: 将一部分文本从源语言替换为其他语言

  5. 为了提高QA 准确率和一致性, 利用逻辑和语言学知识获得训练数据

序列标注 Sequence Tagging

  1. 首先,学习根据特定方案线性化的标签和单词序列的语言模型。其次,从该语言模型中采样序列,并对其进行去线性化处理,以生成新的示例。

  2. POS tagging: 依存树变换

  3. NER: 对每个实体进行token或同义词替换

解析 Parsing

  1. 利用数据重组来添加对特定任务有效的先验知识。

  2. 表格解析Grappa: 利用预训练模型来生成问题-SQL对,进行增强。

  3. 语义解析: 利用组成性,替换重复的片段。

  4. 低资源依存关系解析:替换词语为拥有相同POS,形态标签和依存关系标签的其他词。

语法纠正 Grammatical Error Correction

  1. 德语纠正:利用维基百科的编辑历史作为额外数据。

  2. 多任务迁移学习:利用其他任务的标注作为额外数据。

  3. 合成新的错误来训练纠正模型:token级别的扰动,训练生成错误的模型+过滤。

  4. 利用拼写检查器产生的混淆集以进行干扰。

  5. 从标注数据中学习错误的模式,并用来生成特定的噪声。

  6. 用生成模型的beam search来增加数据噪声。

翻译 NMT

  1. SwitchOut: 随机替换平行语料中源语言和目标语言的对应词。

  2. Soft Contextual: 随机选定一个词,用词表中其他多个相关词的上下文表示来替换它。

  3. Data Diversification: 将原数据和多个训练好模型的预测混合。

Data-to-Text NLG

  1. 球赛总结任务:随机修改不影响比赛结果的得分来增强。

  2. 从三元组生成描述:利用维基百科和开放关系抽取工具获得更多三元组及描述句子的数据。

  3. 意思表示(meaning representation):修改意思表示的序列顺序来增强。

Open-Ended & Conditional Generation

  1. GenAug:在低资源领域微调GPT-2,从而提高生成文本的连续性。

挑战与未来

作者针对过去的文本增强方法提出了许多值得注意的方面:

  1. 缺少一致有效的方法
    不像CV,文本增强没有一致有效的增强方法。可能需要发展一个统一的任务和数据集来比较不同增强方法的优劣。

  2. 预训练模型对领域内数据效果甚微
    以前有效的增强方法对大型预训练模型失去了效果:他们已经可以达到很好的效果了。

  3. 缺少理论解释
    很少有人解释为什么数据增强有效,大多数工作都只是通过实验结果来展示增强有效,并且给出一些猜想,挑战在于在不借助全面实验的情况下测量优度。CV中有人研究了affinity和diversity可以预测增强的效果,但是在NLP中没有对应的理解。

  4. 多模态挑战
    对多模态任务,有人对单个模态进行增强或者对不同模态设置不同的增强,但是是否存在一个统一的增强方法呢?

  5. 基于span的任务
    随机替换token可能扰乱上下文信息。

  6. 特殊领域
    增强对OOD无效, 因为增强的数据可能跟原数据分布非常不同

  7. 低资源语言
    跟特殊领域的难点一样,对高资源有效的增强方法不一定对低资源有效。

  8. 视觉启发
    CV的增强都是受现实世界不变量启发,很多在NLP中有对应:比如改变灰度可能对应着词形简化(lemmatization ) ;调整色调对应着替换副词程度,例如把awesome改成good;旋转对应着依存树变换;角度调整对应着同义句替换。

总结

这篇论文对过去的文本增强工作进行了系统性总结,可以说是比较全面的。对小领域上的增强方法的总结可以让大家快速上手了解常见增强方法,同时借鉴其他任务上的增强也可能启发其他新的思路。另外,文章中对文本增强的目标,理解,难点以及未来发展方向都给出了新颖的观点,具有启发意义。

萌屋作者:Sherry

本科毕业于复旦数院,转行NLP目前在加拿大滑铁卢大学读CS PhD。经历了从NOIer到学数学再重回CS的转变,却坚信AI的未来需要更多来数学和自认知科学的理论指导。主要关注问答,信息抽取,以及有关深度模型泛化及鲁棒性相关内容。

作品推荐:

  1. 可交互的 Attention 可视化工具!我的Transformer可解释性有救了?

  2. 谁才是Transformer家族中的最强王者?谷歌告诉你答案

  3. Facebook刷新开放域问答SOTA:模型训模型!Reader当Teacher!

往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑温州大学《机器学习课程》视频
本站qq群851320808,加入微信群请扫码:

【NLP】CMU MILA 谷歌 | 三家巨头发布史上最干文本增强总结相关推荐

  1. HighNewTech:人类发布史上首张黑洞照片—1+17张高清图片讲解黑洞简史

    High&NewTech:人类发布史上首张黑洞照片-1+17张高清图片讲解黑洞简史 导读       科技圈大事件:天文学家捕获首张黑洞照片.爱因斯坦曾精准语言,霍金曾发现黑洞辐射,一个令众多 ...

  2. 9月29日云栖精选夜读:武装到“牙齿”!阿里云发布史上最强企业云安全架构 11层防护...

    未来的企业都会基于云来搭建业务的安全系统,企业云安全架构(Cloud Security Compass)就是这么一份供上云企业参考的设计蓝图-- 企业可以像"建房子"一样,依据模块 ...

  3. 12年来最大飞跃!黄仁勋发布史上最强GPU,世界首个实时光线追踪新一代图灵架构...

    "我们努力了十年."黄仁勋说:"这是GPU自2006年以来最重大的飞跃." 在刚刚的SIGGRAPH 2018主旨演讲中,黄仁勋将英伟达的GPU实力展现得淋漓尽 ...

  4. 三家运营商MWC上发力5G 谁是背后更大的赢家

    当人们还沉浸在春节假期的气氛中时,很多通信从业者已经开拔,远赴巴塞罗那,去邂逅一场一年一度的全球移动通信业盛会.2018世界移动通信大会(MWC)于2月26日-3月1日召开,2018MWC是一个5G的 ...

  5. 谷歌发布史上“最强大脑”——可以控制和操作机器人的AI模型

    ​谷歌发布了一款被誉为史上"最强大脑"的人工智能模型PaLM-E (Parameter-efficient Language Model with Explicit Memory) ...

  6. 微软发布史上最大NLG模型:基于Transformer架构,170亿参数加持

    2020-02-11 18:50 导语:史上最大! 近年来,BERT.GPT-2等深度学习语言模型,极大地提高了问答.摘要.人机对话等下游自然语言处理任务的性能. 而今天,微软研究院重磅发布了有史以来 ...

  7. 苹果今年秋季或发布史上最多新品

    1月24日消息,据国外媒体报道,除了今年首场春季发布会,苹果公司也开始筹备今年夏季和秋季两场发布会,夏季主要发布软件,而苹果分析师马克 · 格尔曼表示,苹果正在研发一系列新产品,今年秋季发布会或发布公 ...

  8. 英伟达发布史上最强GPU,却叫停了自动驾驶车路测

    作者 | DavidZh 出品 | AI科技大本营(公众号ID:rgznai100) 当地时间 3 月 27 日,英伟达在美国圣克拉的 GTC 大会上推出多款产品. ▌显卡扩容,史上最强的 DGX-2 ...

  9. 机动车c1科三考试语言灯光,史上最全科目三灯光模拟图解

    2017-12-15 08:56:07驾驶员考试 科目三灯光考试从固定灯光组,变成了随机灯光播报,想要顺利通过科目三灯光考试,赶快看看史上最全科目三灯光模拟图解,快速学习吧. 科目三灯光考试从固定灯光 ...

最新文章

  1. 数据通信技术(一:IP划分)
  2. php goto call,Php中的goto用法
  3. 用字符数组存放一个字符串,然后输出该字符串
  4. 使用Javaweb实现在线调查问卷系统
  5. java立方表示方法
  6. ORACLE基础语法学习
  7. 配置Bean的作用域对象
  8. 重物码垛搬运机器人_节卡机器人:5G下的智慧物流——柔性生产物流系统
  9. 又一所“国字头”大学要来?屠呦呦也在
  10. 微信小程序 自动解决分包大小问题_一个小小的优化,能让你的小程序瘦身10%...
  11. 蓝桥杯 ADV-16 算法提高 和最大子序列
  12. 企业之haproxy
  13. 免费领取WPS会员15天和WPS稻壳会员15天!新老用户均可领取。
  14. php随机生成昵称,PHP随机生成姓名的方法介绍
  15. [DP]hdu5234
  16. vue2中vant实现网易云音乐案例-附带所有源码
  17. 中国剩余定理(孙子定理)
  18. 测试用例的设计方法及案例
  19. 车牌识别github资源
  20. 贵阳python培训价格

热门文章

  1. HDU 3068 最长回文
  2. Dart基础学习03--方法的使用
  3. 12家国内外之名公司多场面试,微软到谷歌.让我们通过学习达到100%面试率与100%通过率...
  4. 【ASP】Menu菜单导航
  5. 关于modelsim 6.4a遇到的问题
  6. itertools mode 之 combinations用法
  7. vuejs实现本地数据的筛选分页
  8. 配置一个 MVC 项目时 遇到的
  9. 对协变和逆变的简单理解
  10. 条款14:在资源管理类中心copying行为(Think carefully about copying behavior in resource-manage classes)...