1 前言
在NLP领域中,数据增强(data augmentation)已成为解决样本不平衡( data imbalance)或训练数据不足等问题一种有效技术。尽管通过数据增强手段,可以产生更多训练数据,但同时也会带来噪声影响,甚至可能导致模型性能变差。如何通过数据增强方法,产生高质量的样本,便成为该方法重点要考虑的问题。当前已有不少相关的研究,如经典的Synthetic Minority Oversampling Technique (SMOTE)方法,以及最近的Resampling MixUp (ReMix),都是为了提高少类样本重复采样的质量。本次分享两种数据增强的方法,两种方法都比较新,且思路简单,可快速应用到项目中。第一种方法聚焦在构建难负样本(hard negative samples),第二种方法核心是从一个类型样本生成另一个类型样本。
2 Data Augmentation
下面详细介绍这两种方法:
方法1:Hard Negative Mixing
该方法来自2020年NeurIPS会议一篇论文,论文题目为<Hard Negative Mixing for Contrastive Learning>,是解决当前特别火的对比学习( contrastive learning)中构造对比样的问题。文中指出,尽管有实验证明在一个batch-size下,构造更多的负样本,对对比学习的效果有利,但同时也存在这样的问题:那些与正样本差异度已经很高的负样本,在训练中对对比损失没什么影响,相反,模型应该聚焦学习在那些跟正样本很近的负样本,这样能促使模型能学到更稳健的差异性特征。为此,作者提出了一种hard negative mixing strategies来生成更多难负样本,提高对比学习效果。见下图所示,红色框代表正样本,蓝色三角代表是合成的负样本,这些负样本都是离正样本很近。该方法具有普适性,可作为一种数据增强的方法。
具体来说:对于mini batch中的一个正样本来说,通过表征模型Encoder得到它的表征向量 和 排序好后的负样本表征向量集合 ,排序按照与正样本的相似度来计算,即: , 其中 代表两个样本的余弦相似度计算。
接着,从集合中中选择 样本组成难负样本集合,即 items;然后利用线性组合的方式生成个新的难负样本,实现让模型学习更多hard negative samples目的。如 为新合成的难负样本集合,对于其中一个合成样本来说,其计算方式如下:
其中 是随机从集合选择的两个样本,是平衡两个样本的计算系数 。论文中参数作者是随机确定的,比如取0.5。
总体来说,Hard Negative Mixing是从原有的hard negative samples集合中,通过线性组合合成更多的samples,新生成的样本具体原来集合中hard特征,这样让模型有更多高质量样本去学习。作者在实验中显示,该方法可以有1%的提升的效果。
方法2:good-enough example extrapolation
该方法来自今年Google Research一篇论文,论文题目为:<Good-Enough Example Extrapolation>,论文已投了2021EMNLP会议。其借用这样一个直觉:同类样本在表征后,在高维空间上有相同的分布,而其中单独样本成随机状态;不同类样本呈现不同分布,分布之间的距离可表示为不同类之间的差距与关系。为此,文中提出好的样本外推的方式生成新样本的方法——good-enough example extrapolation(GE3),以此来产生更多高质量样本,解决样本不平衡问题。如下图所以,GE3方法将类别Travel分布中一个样本,推向Health分布中,形成一个新的Health样本。
该方法计算简单,不需要额外的参数,计算方式如下:
对于一个有个类别的分类任务来说,为c类别的样本数量,为c类第i个样本的表征向量,则对于每个类别c来说:
接着,GE3方法将样本在高维空间中从源类外推到的目标类来生成增强示例。对于源类中的空间表示为的一个样本,则对应在目标类中生成了一个相应的增强示例:
这样,可以按一定比例将不同类别的样本外推到少类别中,进而产生更多样本,缓解数据集中不平衡问题。可以看出来,该方法十分简单,也很好理解。作者在实验中验证,该数据增强方法在不平衡性文本分类任务上可带来平均5%的提升。
3 结语
本次分享两个简单且落地容易的数据增强方法,可在实践项目中尝试运用。当然,数据增强有很多方法,本次分享的方法可作为一个辅助的技术点应用到自己的项目或者研究中,是否真正有效,还需在自己数据环境中进一步验证~
更多文章可关注笔者公众号:自然语言处理算法与实践
网友评论