提纲 1 简介 2 Mixup 3 wordMixup & senMixup
4 MixText
5 Nonlinear Mixup
6 SeqMix
7 总结
参考文献
1 简介
前面一章我们介绍了基于规则的数据增强方法,在这个章节,我们会介绍若干种基于插值的数据增强方法。这种类型的方法起源于CV领域的Mixup,通过在多个真实样本的输入跟标签之间进行插值来获得更多训练样本,从而获得更加宽泛的数据空间,能够约束模型在合成空间上的预测行为,从而提升模型性能,这种方法有时也被称为Mixed Sample Data Augmentation(MSDA)。
2 Mixup
在图像分类任务中首先被提出的数据增强方法,思路也简单,对于给定一组数据对(xi;yi)跟(xj;yj),其中x,y分别时样本的输入跟one-hot类别编码,通过插值的方式来生成新的训练样本,如下图所示。其中的不同样本的权重参数通过Beta(a,a)分布(均值为0.5,抽样范围在0~1之间)抽样得到。不难理解, **其实Mixup就是对两个不同真实样本跟类别进行加权求和,从而得到新的一个数据。将通过Mixup生成得到的数据跟原始数据按照一定比例混合到一起作为模型训练数据,从而提升模型性能。**
图1: Mixup数据增强方法
3 wordMixup&senMixup
由于NLP领域的模型输入是离散的,所以不能直接将Mixup方法迁移到NLP领域。为此wordMixup跟senMixup被提出,基本思想没有太大变化,只是这里不直接对文本的输入进行插值, **而是通过对文本的表征进行插值,根据选用的文本表征位置分为wordMixup和senMixup,** 前者选用的是模型embedding层的结果,而后者选用的是模型encoder输出的隐层表征,具体细节可见下图。需要注意的是,由于不同文本的长度不一致,为了保证进行插值的文本表征长度一致,需要对文本进行一定的预处理,超过一定长度的进行截断,不够长度则补零。
图2: wordMixup和senMixup框架
wordMixup&senMixup的想法虽然简单明了,但是效果却十分显著。
a) wordMixup跟senMixup效果超过其余方法,但是两者之间没有明显的性能差异。
图3: wordMixup跟senMixup的效果
b)使用预训练好的词嵌入矩阵要优于随机初始化的词嵌入矩阵,但是在训练过程进一步更新词嵌入矩阵参数不一定能取得收益。
图4: 不同词嵌入设置的效果
论文还绘制了不同设置下训练损失跟测试损失随着epoch增加的变化情况, **可以明显看到,无论有没有加入dropout,训练损失很快就下降到接近0的位置,没办法提供训练信号供后续的模型训练,但是wordMixup跟senMixup则不然,在整个训练过程,训练损失始终保持在一个相对较高的水平,能提供更多的信号让模型不断优化,这正是因为这种数据增强方法生成样本的空间足够宽泛,才能保证模型不容易陷入过拟合的境地。**
图5: 训练过程loss变化情况
4 MixText
**MixText是一个融合了标注数据跟无标注数据的文本分类的半监督方法,它利用一定的技巧为大量无标注文本打上标签,然后利用TMix的数据增强方法借助于真实的标注数据跟上述打上标签的无监督数据生成新的数据,进而训练得到更加强大的模型(跟之前提及的UDA有异曲同工之妙)。**
图6: MixText框架
整个MixText的具体流程如下:
1.基于无标注数据中每个样本,利用回译手段生成K个相应的增强样本。
2.为每个无标注数据打上对应标签,相应的标签是由于样本以及对应的K个增强样本的模型预测概率的加权平均得到。(不同的增强样本来自不同的回译模型,效果越好的模型对应的权重会更高。)
图7:无标注数据标签计算方法
3.将真实的标注数据,打上标签的无标注数据混合到一起,通过TMix的数据增强方法生成新数据。由于这里的模型选用的是12层的Bert Base模型,用于插值的隐层表征可以是12层中的任何一层,但是由于Bert不同层的表征有不同含义,所以不同层的插值效果会导致模型效果差异明显。最终选择的是每个batch随机选择7,9,12中任意一层表征进行插值,去构建新样本。
图8: TMix框架
4.训练模型,模型的目标是希望预测的概率分布跟“真实”的概率分布(利 用第3步生成)尽可能接近,所以这里用了KL散度作为评价指标, **另外, 为了鼓励模型在无标注数据上预测更加自信(在某些类别上概率更接近于 1,而不是每个类别概率都差不多。),在计算无标注数据是引入了一个 新的正则化损失。**
图9: 无监督数据上的正则化损失
MixText的整个过程需要设置的系数众多,不同的设置都会影响到最终模型的性能。
a)MixText效果不仅由于不带数据增强的BERT,也优化ruled based的数据增强方法UDA。
图10: MixText效果
b)无标注数据越多,MixText效果越好。
图11: 无标注样本数据对于MixText的影响
c)选择Bert的哪层transformer进行插值对MixText的影响显著
图12: 选择不同隐层进行插值对于MixText的影响
d)从影响上看,无标注数据对于MixText最为重要,其次才是TMix的数据增强算法,最后才是加权平均的标签预测机制。
图13: TMix消融实验
5 Nonlinear Mixup
**Mixup在生成新数据时,数据对的输入跟标签共享同一个权重标量,同个数据的每个token跟标签的权重都是一致的,这种线性插值的方式限制了合成样本的空间,从而影响正则化的效果。于是Nonlinear Mixup提出了一种新的插值方式,放宽了合成样本的空间,在效果上也得到显著提升。**
类似于wordMixup对embedding层的表征进行插值,假设embedding输出的表征维度时N*d,那么插值用到权重矩阵维度也是N*d(矩阵内每个元素还是用同样的方式从Beta(a,a)中抽样得到),也就是说,每个token的权重,同一个token每一维的权重都不同。Mixup的权重是一个标量,而Nonlinear的权重是一个矩阵。
图14: Nonlinear Mixup输入计算公式
这种新的插值方式带来的问题就是计算输入的权重矩阵不用直接用于标签的计算(维度不一致),于是 **提出一个Label Embedding,假设总共有c个类别,通过引入一个标签词嵌入矩阵M(维度为c*k)就可以表征所有类别,矩阵M的每一行的k维向量z分别对应某个类别的表征。** 另外,针对已经合成的输入,通过将输入矢量化,再通过矩阵乘法和一个sigmoid函数可以得到一个k维的预测概率分布,这个就是Nonlinear Mixup的合成标签的权重向量,将该权重向量乘以相应的标签向量z就可以得到Nonlinear Mixup的合成标签。
图15: Nonlinear合成标签的权重向量
模型训练时,将合成输入输入到模型中得到相应的句向量S(维度m*1),在通过矩阵乘法W(维度k*m)*S得到一个k维的预测概率, **这个预测概率维度跟前面提及的标签词嵌入的维度一致,训练的目标就是希望预测概率跟对应标签词嵌入尽可能接近。** 训练时,除了原本的模型参数外,上述提及的标签嵌入矩阵M,合成标签权重向量计算时用到的矩阵等相关参数也会一同更新。 **测试时,得到文本的预测概率后,会计算预测概率跟所有标签的标签词嵌入之间的距离,选择其中距离最小的标签作为最终的预测结果。**
图16: Nonlinear Mixup效果
**通过实验发现,Nonlinear Mixup的效果明显优于线性插值的方法,同时发现模型对于标签词嵌入维度的设置不敏感。**
6 SeqMix
**SeqMix是一个在seq2seq任务下的句子级别的Mixup变体,相对在合成样本时Mixup同个句子的所有token共享同一个权重,它针对输入跟输出序列的每个位置通过抽样得到相应的一个权重,Mixup的合成输入跟标签的权重是一个标量,而SeqMix的输出或者输出权重是跟输入或者输出序列长度一致的一个序列。根据具体的实现世界,可以分为hard跟soft两种模式。**
图17: SeqMix效果
7 总结
**基于Example Interpolation的数据增强方法,来源于图像领域的Mixup,通过一定的改动在NLP领域上绽放光彩,通过合成新的样本输入跟标签,扩展了训练数据的空间,另外,相对于原始样本的one-hot编码标签,合成样本的标签更加soft,能够更好的约束模型在合成数据空间的预测能力。在整个训练过程中,训练损失始终维持在一个较高的水平,能够提供训练信号以供模型持续优化,避免过早陷入过拟合的处境,从而提升模型的性能。**
参考文献
- (2018) mixup: BEYOND EMPIRICAL RISK MINIMIZATION
https://arxiv.org/pdf/1710.09412.pdf
- (2019) Augmenting data with mixup for sentence classification: An empirical study
https://arxiv.org/pdf/1905.08941.pdf
3.(2020) MixText: Linguistically-Informed Interpolation of Hidden Space for Semi-Supervised Text Classification
https://aclanthology.org/2020.acl-main.194.pdf
- (2020) Nonlinear Mixup: Out-Of-Manifold Data Augmentation for Text Classification
https://ojs.aaai.org/index.php/AAAI/article/view/5822
- (2020) Sequence-Level Mixed Sample Data Augmentation
