NLP提效,除了选择合适的模型,就是数据增强了
点击上方,选择星标,每天给你送干货!
来自:炼丹笔记
如何用有限的数据做出最佳的效果?除了一个优秀的模型以外,最有效的方法就是做数据增强了。自然语言处理(NLP)不同于图像,可以做裁剪,反转,缩放等操作来增强,而是有文本特别的处理方式。这篇论文《CODA: CONTRAST-ENHANCED AND DIVERSITYPROMOTING DATA AUGMENTATION FOR NATURAL LANGUAGE UNDERSTANDING》提出的CoDA方案号称能在Roberta-large上平均提升2.2%的效果,那我们就来看看这篇到底提出了哪些方法吧。
数据增强
这篇论文主要探讨如何在文本分类做数据增强,当然这些数据增强的方法一样可以用在其他NLP任务中。
一句话概括数据增强,就是把原有训练集合:
通过某种变换,转变成新的训练集合:
我们用这两个集合的数据,去学习参数:
参考以往论文给出的数据增强的方法,可以概括为下图:
back-translate(回译)很容易理解,如上图,英语翻译成德语又翻译回英语,作为训练样本。
Adversarial Training(对抗训练):对抗训练方法被用于文本数据提升模型的鲁棒性。对抗训练不需要任何额外的领域知识,只需要模型本身产出样本,这些样本都是模型最容易预测错的样本。下面是两个最常用的对抗训练的loss。
其实就是要找到模型认为相似的样本加入到模型中训练,但是在实际使用时,我们很难获得准确的对抗样本,因此可以用模型梯度构建相似的对抗样本,如下公式所示:
提升多样性
上述数据增强方法思路其实都很一致,找到已有样本的相似样本,训练目标也较为一致。这时候思考一个问题,不同的数据增强方法是等同的,还是互补的呢?是否可以混合所有数据增强方法提升模型泛化能力呢?CV上已经证明是有效的,应用到文本就难多了,对文本轻微的可能会带来语意上的巨大差异。
本文提出了多种混合数据增强的方法,如下图所示:
这3种其实没啥好说的,字面意思。(a)就是在一个mini-batch中,采用一个随机的数据增强方法把x变为x',(c)就是把x用一系列的数据增强方法变成x'。(b)是混合插值,是对两个样本的embedding ei和ej做操作,其中a是符合beta分布。
值得注意的是sequential stacking的方式,牵涉到各个增强方法的顺序,并不是所有顺序都是合理的,比如我们不可能在生成对抗训练样本后,去做回译,正确的融合方式如下:
这种融合方式,可以简单的用下面的公式表示:
先用xi做回译得到xi',然后找到模型最难分辨的对抗样本,最后计算原样本和对抗样本的loss。我们可以看到loss有3项,第一项就是正常的交叉熵,第二项是对抗loss,第三项是一致性的loss,即样本和对抗样本理应相似度较高,这里RCS定义如下:
对抗正则化
我们看上述loss的3项,反应了我们对抗样本xi要和xi'预估结果要一致,然而却没反应xi'要和xj不一致。为了充分利用数据增强后的数据,论文又提出了对抗学习目标。考虑到xi'是由xi生成的,因此模型应该学到每个数据增强样本的“爸爸”是谁。如下图所示:
memory是用来存储历史embeding的,作为大量的负样本。为了避免encoder更新过快(会导致embeding不一致),因此提出momentum key encoder,该 encoder不是通过梯度更新参数的,而是通过下式:
当有一个样本xi,增强样本xi',我们会得到3个embedding:
新的对抗学习目标如下式:
其中t是温度,M就是memory bank,该式表达的意思也很简单,就是样本xi和增强样本xi'和momentum key encoder产出的ki的相似度,要高于memory bank的负样本。和之前的loss一整合,就成了我们最终的学习目标:
实验
多种增强方式混搭的效果比较好,采用回译+对抗训练stack方式取得了最佳效果。关于调参的细节可以看原文。我们着重看下采用数据增强带来的模型提效增益,从下图可以看到,用CoDA的效果,还是很显著的:
参考文献
CODA: CONTRAST-ENHANCED AND DIVERSITYPROMOTING DATA AUGMENTATION FOR NATURAL LANGUAGE UNDERSTANDING
https://openreview.net/pdf?id=Ozk9MrX1hvA
说个正事哈
由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:
(1)点击页面最上方“深度学习自然语言处理”,进入公众号主页。
(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。
感谢支持,比心。
投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。
方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。
记得备注呦
推荐两个专辑给大家:
专辑 | 李宏毅人类语言处理2020笔记
专辑 | NLP论文解读
专辑 | 情感分析
整理不易,还望给个在看!
NLP提效,除了选择合适的模型,就是数据增强了相关推荐
- 模型提效的另一条路:数据增强
NLP提效,除了选择合适的模型,就是数据增强了 作者:十方,公众号:炼丹笔记 如何用有限的数据做出最佳的效果?除了一个优秀的模型以外,最有效的方法就是做数据增强了.自然语言处理(NLP)不同于图像,可 ...
- 垃圾分类、EfficientNet模型、数据增强(ImageDataGenerator)、混合训练Mixup、Random Erasing随机擦除、标签平滑正则化、tf.keras.Sequence
日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 垃圾分类.EfficientNet模型.数据增强(ImageD ...
- 【NLP】NLP提效,除了选择合适的模型,就是数据增强了
如何用有限的数据做出最佳的效果?除了一个优秀的模型以外,最有效的方法就是做数据增强了.自然语言处理(NLP)不同于图像,可以做裁剪,反转,缩放等操作来增强,而是有文本特别的处理方式.这篇论文<C ...
- G.2 NLP领域任务如何选择合适预训练模型以及选择合适的方案【规范建议】【ERNIE模型首选】
NLP专栏简介:数据增强.智能标注.意图识别算法|多分类算法.文本信息抽取.多模态信息抽取.可解释性分析.性能调优.模型压缩算法等 专栏详细介绍:NLP专栏简介:数据增强.智能标注.意图识别算法|多分 ...
- AI-数据与模型匹配(面对数据该怎么选择合适的模型?)
文章目录 1.机器学习 1.1 通过内容进行年龄和性别预测 1.2 垃圾邮件分类 1.3 金融反欺诈二分类 1.4 音乐推荐系统 1.5 手写数字识别 2.深度学习 2.1 图像多分类104 2.2 ...
- NLP专栏简介:数据增强、智能标注、意图识别算法|多分类算法、文本信息抽取、多模态信息抽取、可解释性分析、性能调优、模型压缩算法等
NLP专栏简介:数据增强.智能标注.意图识别算法|多分类算法.文本信息抽取.多模态信息抽取.可解释性分析.性能调优.模型压缩算法等 专栏链接:NLP领域知识+项目+码源+方案设计 订阅本专栏你能获得什 ...
- 数据分析报告中如何选择合适的统计图表
由于不同的数据分析工具收集到的数据千差万别,基于这些数据生成展示的统计图表也不尽相同:而且数据分析师制作各种报告时,也常常纠结于如何选择合适的图表表达数据诉求,因此我们有必要去理解一些常用数据分析统计 ...
- NLP数据增强方法总结:EDA、BT、MixMatch、UDA
1. 数据增强的背景和应用场景 随着AI技术的逐步发展,更好的神经网络模型对数据规模的要求也逐步提升.而在分类任务中,若不同类别数据量相差很大,模型则会出现过拟合现象,严重影响预测的正确性. 从广义上 ...
- 人机交互系统(3.1)——NLP文本数据增强方法
一.数据增强的背景和应用场景 随着AI技术的逐步发展,更好的神经网络模型对数据规模的要求也逐步提升.而在分类任务中,若不同类别数据量相差很大,模型则会出现过拟合现象,严重影响预测的正确性. 从广义上来 ...
- gan 总结 数据增强_[NLP]聊一聊,预处理和数据增强技术
在基于margin-loss的句子相似度这个项目中,为了验证想法,找不到开放数据集,因此自己从新浪爱问爬取了数据.自己爬的数据和学界开放的数据对比,数据显得非常脏.这里有三个含义:第一:数据不规范,比 ...
最新文章
- OpenCV中OpenCL模块函数
- 随机生成十六进制颜色
- 23种设计模式之外观模式(Facade)
- 类型与通用语言运行时
- PHP经典算法 (转载)
- P7443-加边【博弈论】
- MFC创建模式对话框与非模式对话框
- 12款程序员专用chrome插件神器推荐
- 图解 hexo + github 从零快速 搭建个人博客 windowss
- Opencv之以图像直方图可视化
- maven使用openjdk_openjdk8指定版本安装(maven指定版本安装)
- php微信公众号项目域名,微信公众号里“JS接口域名”实现分享功能
- 机器学习【系列】之第六章随机森林模型
- html 收藏网站 功能实现,网站常用的收藏网站实现代码
- PHP实现倒计时插件代码
- mysql数据库配置步骤,MySQL数据库安装配置步骤详解
- WordPress使用腾讯云CDN配置如何实现https访问?
- 关于网站项目计划书的写法
- 2020-2021读书记录
- [转]Cloudera Manager和CDH5.8离线安装