Introduction
今天分享一篇来自2021年NIPS会议的paper:Improving Contrastive Learning on Imbalanced Seed Data via Open-World Sampling。论文题目的意思是:在不平衡的原始数据上,通过对比学习(Contrastive Learning)来提升开放式采样效果。其出发点是:当前对比学习许多下游任务上都取得显著成效,尤其在不平衡数据场景下,且有实验显示构造的负样本对越多越好,这样就会“引诱”研究者使用大量的外部未标注数据来构造对比样本以提高表征效果。如此就引来以下问题:1)采样大量的未标注数据加入学习意味需要消耗更多的计算资源;2)采样的外部未标注数据通常呈现隐式长尾分布,加入学习的样很可能跟原始任务没任何关联,以致带来噪声的学习;3)盲目的使用所有采样的未标注数据,也会进一步导致样本不平衡和分布分散的问题。基于上述问题,论文作者提出一种基于对比学习的开放式采样框架MAK(Model-Aware K-center)。其核心是提出三个采样原则:1)长尾性(tailness),保证采样的样本尽可能是原任务中的长尾数据;2)近似性(proximity),保证采样的样本尽可能是原任务是相关的,过滤掉分布之外的样本,解决OOD问题;3)多样性(diversity),期望采样的数据有一定差异性。论文的核心就是围绕这三个原则来展开的,接下来我们详细了解下这几个原则。
Three Principles
图中用动物图像识别的例子来说明提出的MAK框架:在原始训练数据集中,狗类属于头部标签(Head class),豹类属于尾部标签(Tail class),所以在采样时首先忽视头部类的样本,保证采样的长尾性;接着排除掉跟原始数据高度相似的样本,保证采集的多样性;最后删掉跟动物识别不相关的样本,保证采样的近似性。
(1)Tailness
为了实现采样达到长尾性的目的,在对比学习框架下,作者认为hard examples(难样本)可以视为尾部类样本,这在不平衡性(或呈现长尾分布)数据集上是合理的,因为模型在尾部的样本通常识别的不好。那问题又转化称为:如何识别hard samples。文中说有一种直观的方式来判断:选择对比损失(contrastive loss)最大的样本作为hard sample,但由于对比损失受数据增强方式的影响,而通常增强方式都是采用随机性,这样选择难样本的噪声有点大。为此,作者提出 empirical contrastive loss expectation——经验期望对比损失来判断难样本,其意思就是将每个样本进行多次对比学习(M次),然后进取平均,以此降低随机数据增强的影响,即为:
上述第一个公式是计算样本v_i在M次对比损失后的平均值;第二个公式里是在一个batch里样本v_i对比损失计算方式,其中A为数据增强方法,V-为batch里相对v_i的负样本集合。
这样文中选择经验期望对比损失最大的样本作为hard sample,也视为尾部采样的样本。作者在实验中验证其提出的该损失的有效性。
(2)Proximity
虽然Tailness原则保证采样是尾部的样本,但在开放的未标注数据集上,还是很可能采到跟原任务不相关的数据。为此,作者提出近似原则(Proximity),解决这个问题,即为:
公式中s_0,s_1分布代表原始数据集和外部采样的数据集,D(s_0,s_1)定位两个数据集的平均距离,以期望越小越好。delta符号表示两个样本的空间距离,文中采用cosine distance的方式。此外,为了提高计算效率,在实验中,对于s_1中的一个样本来说,并不计算s_0中所有样本,而是采用 K-mean的方式计算。
(3) Diversity
在保证长尾性和近似性后,再追求采样的多样性,避免采样的样本跟原始样本高度相似,这样对模型来说并不能带来更多有意义的差异性特征学习。其计算原则为:
公式中S_all为外部所有数据,s_1也是其中部分,表示从中采样的一个小集合,数量小于等于K。其计算的逻辑是,在给定的s_0中心点下,期望采样的s_1的中心点,到s_0与s_1组合新的中心点最近,到S_all中心点最远,以此得到具备多样性的subset。这里采用 K-center 贪婪的算法求解,整体计算流程见下图。
Model-Aware K-Center(MAK)
把上述三个原则加在一起,即构成这样的一个采样优化目标:
因为上述优化是NP-hard问题,为了求解上述目标,作者采用分段计算的方式,先把前两个计算项组成一个新的指标q,即为:
其中N为正态分布,alpha为平衡参数。具体计算步骤为:首先在原始数据集s_0上训练一个样本表征模型f;然后利用表征模型计算经验对比损失L_CL和 平均特征距离D,进而计算q值排序,选择最大前C个样本构造初步采样池,这一步即达到采样的长尾性和近似性原则;最后在初步采样池中,利用K-center 贪婪的算法,选择并形成最终K个样本组成的新采样集合s_1,即为输出结果。
Experiment
在实验中,论文使用 ImageNet-100-LT做原始数据集,使用ImageNet-900 and ImageNet-Place-mix作为外部采样的数据集。超参数中M取5,K取10,C为1.5K。下图为论文在原始数据集上通过两个外部数据集采样来提升训练的结果,此外对比了random采样方式。实验结果验证了提出MAK方法的有效性。
此外,实验也可视化对比了MAK中Diversity原则的效果。显示基于该原则,可以使得采样的样本分布更合理些。
Conclusion
分享这篇论文的由衷是,在初读时,觉得跟以前看的一篇韩家炜关于关键词挖掘的论文有异曲同工之处,其中是为挖掘的关键词定义几个原则进行提炼。本篇论文的核心是在对比学习的方法下,提出几个采样的原则,以提高采样的质量,其思路值得尝试。因为,在前期分享《关于数据增强中如何合成高质量样本》中的方法实践中,发现合成的样本还是噪声不小,当时就想如何过滤掉合成噪声较大的样本,正好这篇论文碰撞了当初想法,就拿出来分享下。
在论文里的Diversity计算公式中,我并没想的特别清楚。因为觉得这个原则跟Proximity其实有点矛盾,类似要求:你离我最近,另外你还要跟我保持一定距离。当然这个要求没问题,但难点在于这个平衡度如何掌握,这也许是一个值得思考的地方。此外,论文也开源了代码:https://github.com/VITA-Group/MAK,有兴趣可去看看。
更多文章可关注笔者公众号:自然语言处理算法与实践