论文题目:A Survey on Contrastive Self-supervised Learning
论文链接:
摘要
自监督学习因其避免对大规模数据集进行人工标注的高昂成本而受到广泛关注。它能够采用自定义的伪标签作为监督信号,并将所学到的特征用于多个下游任务。具体而言,对比学习近年来已成为计算机视觉、自然语言处理(NLP)以及其他领域自监督学习方法中的核心组成部分。其目标是在嵌入空间中将同一样本的不同增强版本靠得更近,同时将不同样本的嵌入尽可能拉远。本文对采用对比方法的自监督学习方法进行了系统回顾。我们第一介绍了对比学习中常用的预训练任务(pretext task),随后总结了已有的不同网络架构。接着,我们对各种方法在图像分类、目标检测和动作识别等多个下游任务中的性能进行了对比分析。最后,我们讨论了当前方法的局限性,并指出了未来可能的研究方向,以推动该领域的进一步发展。
1 引言
深度学习的进步使其成为当今大多数智能系统的核心组成部分之一。深度神经网络(DNN)能从如今丰富的数据中学习到丰富的特征模式,使其在图像分类、目标检测、图像分割、行为识别等计算机视觉(CV)任务,以及句子分类、语言建模、机器翻译等自然语言处理(NLP)任务中具有强劲优势。不过,传统的监督学习方法由于需要对数百万数据进行人工标注而面临瓶颈。由于现代计算机视觉系统大多通过在大量标注数据中寻找数据与标签之间的模式来学习图像表明。例如,GRAD-CAM [1] 等工作提出了可视化模型决策过程的技术,从而提升了模型的可解释性。
传统的监督学习方法严重依赖于可用的标注数据。尽管数据量巨大,但缺乏标注推动了研究者寻找能够利用未标注数据的替代方法。这正是自监督方法发挥关键作用的地方,它无需昂贵的标注就能推动深度学习发展,并通过数据本身提供监督来学习特征表明。
此外,监督学习不仅依赖于昂贵的标注,还面临泛化误差、伪相关性和对抗攻击等问题 [2]。近年来,自监督学习方法结合了生成式和对比式两类方法,能够有效地从未标注数据中学习潜在特征表明。其中一种流行的方法是设计各种预训练任务,通过伪标签协助模型学习特征。例如图像修复、灰度图上色、拼图游戏、超分辨率、视频帧预测、音视频对应等任务在学习高质量表明方面都显示出良好效果。
生成模型自 2014 年生成对抗网络(GAN) [3] 提出后迅速流行,后续诞生了 CycleGAN [4]、StyleGAN [5]、PixelRNN [6]、Text2Image [7]、DiscoGAN [8] 等一系列成功架构。这些方法激励更多研究者尝试在自监督学习框架下使用未标注数据训练深度模型。不过,研究者也逐渐意识到基于 GAN 的方法存在一些问题:第一是不收敛——模型参数容易震荡难以收敛;其次是判别器过强——生成器无法产生逼真的伪样本,训练难以继续。此外,生成器与判别器之间需要严格同步,这限制了模型的有效训练。
与生成模型不同,对比学习(Contrastive Learning, CL)是一种判别式方法,旨在将类似样本聚集在一起,将不同样本远离,如图1所示。为此,需要一个类似度度量标准来评估两个嵌入之间的距离。特别是在计算机视觉任务中,对比损失是基于由编码器网络提取的图像特征表明进行计算的。例如,从训练聚焦选取一个样本,对其进行增强处理以生成一个变换版本。在训练过程中(见图2),增强后的版本被视为正样本,而批次中的其他样本(或整个数据聚焦的样本,取决于具体方法)被视为负样本。接下来,训练模型以区分正负样本。这个过程一般结合某种预训练任务(详见第2节)。通过这种方式,模型能够学习到高质量的特征表明,可进一步应用于多个下游任务。
这一思想可以从 Epstein [9] 于2016年开展的一个实验中得到验证:他让学生分别在看到和未看到一张美元钞票的情况下画出该钞票。实验结果表明,人脑并不需要图像的全部细节就能区分不同物体,仅靠一个大致的表征就足够了。


早期的许多方法都结合了一种实例级分类策略 [10][11][12] 与对比学习,取得了必定成果。不过,近期的一些方法,如 SwAV [13]、MoCo [14] 和 SimCLR [15],通过改善的策略,在 ImageNet [16] 数据集上实现了与当前最先进的监督学习方法相当的性能(见图3)。此外,PIRL [17]、Selfie [18] 和 [19] 等论文也展示了各种预训练任务的有效性,以及它们如何提升模型性能。

2 预训练任务(Pretext Tasks)
预训练任务是自监督学习中的一种关键策略,用于利用伪标签学习数据的表明。这些伪标签是根据数据中发现的属性自动生成的。通过完成预训练任务所训练出的模型可以用于下游任务,例如图像分类、图像分割、目标检测等。此外,这些任务适用于各种类型的数据,如图像、视频、语音、信号等。
在对比学习中的预训练任务中,原始图像被用作锚点(anchor),其增强(或变换)版本被视为正样本,而批次中的其余图像或训练数据中的其他图像则作为负样本。常见的预训练任务主要分为四大类:颜色变换、几何变换、基于上下文的任务和基于跨模态的任务。这些任务根据要解决的问题在不同场景中被广泛应用。
2.1 颜色变换(Color Transformation)
颜色变换包括对图像颜色层级的基本调整,例如模糊、颜色失真、转为灰度图像等。图 4 展示了在 ImageNet 数据集样本图像上应用颜色变换的示例 [15]。在这个预训练任务中,网络学习识别在颜色变化下保持不变的图像特征。

2.2 几何变换(Geometric Transformation)
几何变换是一种空间变换,它在不改变图像像素信息的前提下对图像几何结构进行修改。常见的变换包括缩放、随机裁剪、水平/垂直翻转等,如图 5 所示。这些变换实现了从全局视图到局部视图的预测。其中原始图像被认为是“全局视图”,而经过变换后的图像是“局部视图”。Chen 等人 [15] 在其预训练任务中采用了这种变换以学习图像特征。

2.3 基于上下文的任务(Context-Based)
2.3.1 拼图任务(Jigsaw Puzzle)
传统上,拼图任务是图像无监督特征学习中一种经典的方法。它要求模型识别图像中被打乱的图块的正确位置,并通过训练一个编码器(见图 6)来实现。对于对比学习来说,原始图像是锚点,将原图打乱图块形成的增强图像是正样本,而数据聚焦或批次中的其他图像是负样本 [17]。

2.3.2 基于帧顺序的任务(Frame Order Based)
该方法适用于随时间变化的数据,最典型的应用场景是传感器数据或图像帧序列(即视频)。视频包含一系列语义相关的帧,这意味着时间上接近的帧关系密切,而时间间隔较大的帧则可能不相关。
这种方法的基本理念是:通过解决一个恢复视频时间一致性的预训练任务,模型可以学习有用的视觉表明。具体做法是,将视频帧的顺序打乱作为正样本,而其他视频则作为负样本。
类似地,还有一些方法会从一段较长的视频中随机采样两个长度一样的片段,或对每个视频片段应用空间增强技术。目标是使用对比损失训练模型,使来自同一视频的片段在嵌入空间中更接近,而来自不同视频的片段被拉远。
Qian 等人 [20] 的研究中提出的框架就是通过比较两个正样本与若干负样本之间的类似性来进行训练。正样本对是从同一视频中提取的两个增强片段。最终结果是,将所有编码后的视频划分为非重叠的区域,从而确保训练中使用的增强方法仅在表明空间中扰动视频的局部区域。
2.3.3 未来预测(Future Prediction)
对于时间序列数据来说,预测未来或缺失信息是一种超级常见的策略。这种方法一般用于序列数据,如传感器数据、音频信号、视频等。未来预测任务的目标是:给定一系列过去的时间步,预测未来时间步中的高层次信息。
在 [21, 22] 提出的研究中,高维数据第一被压缩到一个紧凑的低维潜在嵌入空间中。强劲的自回归模型用于对潜在空间中的信息进行总结,生成一个上下文潜表明 CtC_tCt,如图 7 所示。在预测未来信息时,目标(即未来信息)和上下文表明 CtC_tCt 被编码为一个紧凑的分布式向量表明,目的是最大限度地保留原始信号之间的互信息。
2.4 视图预测(基于跨模态的任务)(View Prediction / Cross Modal-Based)
视图预测任务适用于拥有同一场景多视角的数据。在 [23] 的研究中,锚点图像与从同时视角拍摄的正样本图像被鼓励在嵌入空间中相互接近,而来自同一序列中不同时间点的负样本图像则应远离锚点。模型通过识别不同角度帧之间的类似特征,同时区分序列中后续帧与先前帧的不同来进行学习。图 8 展示了他们的视图预测方法。
类似地,近期的研究提出了“内-外对比学习框架(inter-intra contrastive framework)”。其中,inter-sampling(跨视角采样)是通过同一样本的多个视角学习到的,而 intra-sampling(时序内部采样)则通过多种方法实现,如帧重复、帧顺序打乱等,这些方式用于生成负样本 [24]。
2.5 如何选择合适的预训练任务(Identifying the Right Pretext Task)
选择哪种预训练任务取决于所要解决的问题类型。虽然对比学习中已经提出了许多方法,但仍有大量研究在探索如何选择最合适的预训练任务。有研究表明,选择合适的预训练任务对于模型在对比学习中取得良好性能至关重大。
预训练任务的主要目标是迫使模型对特定变换保持不变性,同时对其他数据点具有辨别能力。不过,这些增强操作引入的偏差可能是一把双刃剑:由于每一种增强都鼓励模型对某种变换保持不变性,而这种不变性在某些场景下是有益的,在另一些场景中却是有害的。
例如,图像旋转可能有助于与视角无关的航拍图像识别,但在显示应用中进行“识别照片上下方向”等任务时会显著降低性能 [25]。同样,基于图像上色的预训练任务在进行细粒度分类任务时可能效果不佳,如图 9 所示。
在 [26] 的研究中,作者强调选择合适预训练任务的重大性。他们指出,在他们的场景下,除了旋转之外,其他如缩放、改变宽高比等变换可能不适合作为预训练任务,由于这些变换会产生容易被检测到的视觉伪影。他们还指出,当目标数据聚焦图像主要由颜色纹理构成(例如 DTD 数据集 [27])时,旋转操作的效果也不佳,如图 10 所示。
2.6 自然语言处理中的预训练任务(Pretext Tasks in NLP)
虽然近年来自监督学习在计算机视觉任务中取得了显著进展,但在自然语言处理(NLP)领域,这一领域早在几十年前就已被广泛研究。所谓预训练任务,即是通过生成伪标签,使得监督学习方法可以应用于无监督问题,从而对模型进行预训练。在 NLP 中,可以从大规模语料库中利用多种预训练任务来学习文本表明。
2.6.1 中心词与邻近词预测(Center and Neighbor Word Prediction)
早在 2013 年,Word2Vec [29] 就首次引入了自监督方法来学习词向量。其连续词袋模型(CBOW)采用了“中心词预测”作为预训练任务,而连续 skip-gram 模型则使用了“邻近词预测”。
在中心词预测中,模型的输入是一个固定窗口大小的词序列,其中缺失了中心词,模型的任务是预测该缺失词。而 skip-gram 模型的输入是一个词,模型需预测其邻近词。通过完成这些任务,模型能够学习词的语义表明,进而用于各种下游 NLP 任务。
2.6.2 下一句与邻近句预测(Next and Neighbor Sentence Prediction)
在“下一句预测”任务中,模型的目标是判断两个输入句子是否可以是连续句子。正样本是原始句子之后的真实句子,而负样本则是随机文档中的句子。BERT [30] 就采用了该方法,显著提升了其在问答和语言推理等需要理解句子关系的任务上的表现。
类似地,在“邻近句预测”任务中,模型需要根据一个句子,预测其前一句和后一句。该方法由 Skip-Thought Vectors [31] 提出,其思想与 skip-gram 类似,只不过是将单位从词扩展到了句子。
2.6.3 自回归语言建模(Auto-regressive Language Modeling)
该任务的目标是:给定前面的词,预测下一个词(或反过来)。模型接收一段文本序列作为输入,然后尝试预测其后续词汇。这一技术被多个 n-gram 模型以及神经网络(如 GPT [32] 及其后续版本)所采用。
2.6.4 句子打乱(Sentence Permutation)
在近期的研究 BART [33] 中,使用了一种新的预训练任务:从语料库中提取一段连续文本,将其拆分为多个句子,然后打乱这些句子的顺序。模型的任务是预测原始的句子顺序。
3 架构
对比学习方法依赖大量负样本以生成高质量的表明。它可以被看作是一种字典查找任务,其中字典有时是整个训练集,有时是数据集的一个子集。一种有趣的方式是根据训练期间为正样本收集负样本的技术来对这些方法进行分类。根据所采用的方法,我们将这些方法划分为图 11 中展示的四种主要架构。每种架构将单独解释,并附以遵循类似原则的成功方法示例。

图11:对比学习的不同架构流程:(a)两个编码器的端到端训练,其中一个生成正样本的表明,另一个生成负样本的表明(b)使用记忆库存储和检索负样本的编码(c)使用动量编码器,在训练过程中作为动态字典查找负样本的编码(d)通过端到端架构使用两个编码器获得的表明进行交换预测,实现聚类机制
3.1 端到端学习(End-to-End Learning)
端到端学习是一种使用基于梯度的学习方法构建的复杂学习系统,其设计确保所有模块都可微分 [34]。该架构偏好使用大批量训练,以积累更多的负样本。除原始图像及其增强版本外,批次中的其余图像都被视为负样本。
该流程使用两个编码器:查询编码器(Q)和键编码器(K),如图 11a 所示。这两个编码器可以不同,并在训练期间通过反向传播进行端到端更新。分别训练这两个编码器的主要思想是生成同一样本的不同表明。通过对比损失,模型趋向于使正样本更接近原始样本,而使负样本远离原始样本。
在训练中,查询编码器 Q 用于原始样本,而键编码器 K 用于其增强版本(即正样本)和当前批次中的负样本。两个编码器生成的特征 q 和 k 被用来通过类似性度量(将在第 5 节讨论)计算输入之间的类似度。一般使用的类似度度量是“余弦类似度”,即两个向量的内积除以它们的模长,定义如公式(2)所示。

最近,SimCLR [15] 提出了一个成功的端到端模型,其在 100 个 epoch 中使用了 4096 的批量大小。研究表明,端到端架构虽然结构简单,但在较大批量和较多训练轮次下表现更佳,如图 12 所示。

另一项采用端到端架构的代表性工作是 Oord 等人提出的 [21],该方法使用强劲的自回归模型结合对比损失,在潜在空间中预测高维时间序列的未来表明。这种方法通过负采样使模型更易于训练。其他采用此架构的方法还包括 [35, 36, 37, 38, 39]。
该方法中负样本的数量与批量大小绑定,由于负样本来自当前批次。由于批量大小受限于 GPU 显存容量,这种方法的可扩展性存在问题。此外,对于较大的批量,这些方法容易遭遇小批量优化困难,并需要有效的优化策略 [40]。
3.2 使用记忆库(Memory Bank)
思考到大批量可能带来的训练优化问题,一个可行的解决方案是维护一个独立的字典,即记忆库。
记忆库(Memory Bank) 的目的是积累大量样本的特征表明,以便在训练过程中作为负样本使用。为此,创建一个字典,用于以必定间隔存储并更新样本的最新嵌入表明。记忆库 M 中包含数据集 D 中每个样本 I 的特征表明 mI。mI 是前几轮训练中计算得到的特征表明的指数移动平均值。这使得可以用记忆库中的表明 mI₀ 替代负样本,而无需增加训练批量大小。
样本在记忆库中的表明在其上次被访问时才会更新,因此采样得到的键实际上来自前几个 epoch 中不同步的编码器状态。PIRL [17] 是近期一个成功采用记忆库的方法,其训练图像的良好视觉表明,如图 13 所示。该方法要求模型生成与所用预文本任务协变的图像表明,主要关注拼图任务(Jigsaw)。Wu 等人提出的工作 [12] 也采用了记忆库,并实现了一种适用于大规模数据应用的非参数 Softmax 分类器。
不过,在训练过程中维护记忆库是一项复杂任务。其一个潜在缺点是更新记忆库中表明的计算成本较高,由于这些表明在几个训练周期内可能迅速过时。
3.3 使用动量编码器(Momentum Encoder)
为了解决记忆库中提到的问题,该方法引入了一个新的模块,称为动量编码器(Momentum Encoder),以取代记忆库。
动量编码器生成的字典是一个编码键的队列,其中当前 mini-batch 被加入队尾,而最老的 mini-batch 被移出队首。这些键是通过训练期间的批次数据即时定义的。动量编码器共享与查询编码器 Q 一样的参数,如图 11c 所示。但其不会在每次训练后进行反向传播,而是通过如下公式基于 Q 的参数更新 [14]:
θk ← mθk + (1 − m)θq (1)
其中,m ∈ [0, 1) 是动量系数。只有查询编码器的参数 θq 通过反向传播更新。动量更新使得 θk 比 θq 更平滑地变化。因此,尽管队列中的键由不同 mini-batch 的不同编码器生成,但它们之间的差异可以被控制在较小范围内。
相比前两种方法,这种架构的优势在于无需训练两个独立模型,也不需维护计算和内存开销较大的记忆库。
3.4 聚类特征表明(Clustering Feature Representations)
前述三种架构都侧重于使用类似度度量来比较样本,并尝试将类似项靠近,不类似项远离,从而提升模型表明能力。与之相对,该方法采用端到端方法构建两个共享参数的编码器,但不再使用基于实例的对比方法,而是引入聚类算法来对类似特征进行分组。
SwAV [13] 是最新采用聚类方法的工作之一,如图 14 所示。图中展示了基于聚类的方法与其他基于实例的对比学习架构的区别。这里的目标不仅是让样本对靠近彼此,还要确保所有类似的特征聚集成一个簇。例如,在图像的嵌入空间中,猫的特征应更接近狗(同属动物),而与房屋(截然不同)应保持距离。

在基于实例的学习中,每个样本都被视为数据聚焦的一个独立类别。这在模型将输入样本与属于一样类别的其他样本进行对比时存在可靠性问题。举个例子:假设训练批次中当前输入是一张猫的图片,而其余图片都被视为负样本。当这些负样本中也包含其他猫的图片时,模型将错误地学习到这两张猫图不类似。聚类方法在训练过程中通过自动识别并聚类类似样本,有效避免了这一问题。
4 编码器(Encoders)
编码器在任何自监督学习流程中都起着核心作用,它们负责将输入样本映射到潜在空间中。图15展示了编码器在自监督学习流程中的作用。如果没有有效的特征表明,分类模型在学习区分不同类别时可能会遇到困难。

在对比学习中,大多数工作使用了 ResNet [41] 的某种变体。其中,ResNet-50 因其在模型规模与学习能力之间的良好平衡而被广泛采用。
在编码器中,一般从某一特定层提取输出,通过池化操作获取每个样本的一维特征向量。根据方法的不同,该特征向量可能需要上采样或下采样。例如,Misra 等人 [17] 使用了 ResNet-50 架构,他们将 res5(残差块)的输出特征进行平均池化,得到一个 2048 维的特征向量。随后,他们应用一个单层线性投影,将其映射为一个 128 维的特征向量。作为消融实验的一部分,他们还从 res2、res3 和 res4 各阶段提取特征进行性能评估。实验结果表明,从编码器后期提取的特征比早期特征更能有效表明输入信息。
类似地,Chen 等人 [42] 的工作也使用传统的 ResNet 作为编码器,从平均池化层提取特征,并使用一个浅层的 MLP(含一隐藏层)将特征映射到潜在空间,再计算对比损失。
在动作识别任务中,最常用的做法是采用 3D-ResNet 从图像帧序列中提取特征 [22, 24]。
5 训练(Training)
为了训练编码器,一般采用一个称为“预训练任务”的方式,结合对比损失进行反向传播。对比学习的核心思想是将类似样本的表明靠近,不类似样本的表明推远。
实现这一点的一个关键是使用一个衡量两个样本嵌入类似度的度量函数。在对比学习中,最常用的类似度度量是余弦类似度(cosine similarity),它定义为两个向量夹角的余弦值:

对比学习一般采用噪声对比估计(NCE)函数来比较嵌入向量间的类似度,其定义如下:

其中:q是原始样本,k+ 是正样本,k− 是负样本,τ是超参数,称为温度系数,sim 一般是余弦类似度函数。
当负样本数量较多时,使用 NCE 的变体 InfoNCE,其定义如下:

其中 ki是第 i 个负样本。
对比学习与其他深度学习方法类似,也采用各种优化算法来训练。训练的目标是通过最小化损失函数来学习编码器网络的参数。
随机梯度下降(SGD) 是对比学习中最常用的优化算法之一 [17, 14, 10, 12]。SGD 是对整体梯度的一种近似,它使用数据的子集来估计真实梯度。SGD 的关键超参数是学习率,一般在训练过程中逐渐下降。许多深度学习方法会使用带有动量的 SGD,以加快收敛速度。
另一种常见的优化器是 Adam [44],这是一种自适应学习率优化算法,部分方法中使用了它 [21, 45, 46]。Adam 直接估计一阶矩(动量)并对一阶和二阶矩进行偏差修正,提升了鲁棒性。
由于某些端到端方法 [15, 47, 13] 使用了超级大的批量大小,采用标准的基于 SGD 的优化器会导致训练不稳定。因此,引入了 LARS(Layer-wise Adaptive Rate Scaling) 优化器和余弦学习率衰减(Cosine LR)来稳定训练过程。LARS 与 Adam 这类自适应优化器的主要区别在于:LARS 为每一层使用不同的学习率,提高了训练稳定性;LARS 的更新量与权重范数相关,便于控制训练速度。
此外,余弦学习率一般会配合周期性热启动(warm restarts)使用,即周期性地重置学习率,然后再次降低。
6 下游任务(Downstream Tasks)
在计算机视觉中,自监督学习一般包含两个阶段任务:预训练任务(pretext task)和下游任务(downstream task)。下游任务是利用预训练任务学到的知识,在具体的应用场景中进行的任务,如分类、目标检测、图像分割、未来预测等。

一个具体的下游任务示例是手势分类 [55],它包含了目标检测与分类两个步骤。图17展示了预训练知识如何迁移到下游任务的过程。

在下游任务中,预训练得到的参数可作为初始化模型的“预训练模型”,通过微调(fine-tuning)应用到其他高层计算机视觉任务中。迁移学习在下游任务中的表现,可以验证预训练特征的泛化能力。
6.1 可视化卷积核与特征图(Visualizing Kernels and Feature Maps)
在这一方法中,比较使用自监督(如对比学习)和监督方式训练的编码器,其第一层卷积核。这有助于评估自监督方法是否能够学到有效特征表明 [56]。
类似地,也可以可视化编码器不同层生成的注意力图(attention map),从而判断模型是否聚焦在输入图像的关键区域。Gidaris 等人 [57] 就通过输入图像中被激活的区域来评估方法效果,如图18所示。

6.2 最近邻检索(Nearest Neighbor Retrieval)
一般情况下,属于同一类别的样本在潜在空间中应彼此接近。因此,可以使用最近邻方法(Top-K 最近样本检索)来评估模型是否学到了合理的表明。对于给定输入样本,通过比较其嵌入向量与其他样本的距离,看是否能找到同一类别的样本,从而判断模型表现是否符合预期。
7 基准测试
近年来,计算机视觉任务中涌现了多种自监督学习方法,它们在性能上挑战了现有的监督模型。在本节中,我们收集并比较了这些方法在下游任务中的表现。对于图像分类任务,大多数方法使用了两个常用数据集:ImageNet [16] 和 Places [58]。类似地,在目标检测任务中,Pascal VOC 数据集常常被用作评估标准,这些方法在该任务上已经超越了最佳的监督模型。在动作识别和视频分类任务中,则使用了 UCF-101 [59]、HMDB-51 [60] 和 Kinetics [61] 等数据集。

表 1 展示了多种方法在 ImageNet 上的表现,反映了这些方法如何随着时间推移而不断进步,并取得更好的性能。
如图 3 所示,目前 SwAV [13] 在从 ImageNet 学习图像表明方面,其准确率已与最先进的监督模型不相上下。对于 Places [58] 数据集上的图像分类任务,SwAV [13] 和 AMDIM [37] 表现出比顶级监督模型更高的 Top-1 准确率,如表 3 所示。这些方法第一在 ImageNet 上进行了预训练,随后在 Places 数据集上使用线性分类器进行测试。结果表明,对比学习方法在迁移到新数据集时所学到的表明优于监督学习方法。


这些方法不仅在图像分类上取得了优异成绩,在目标检测和动作识别等任务中也表现出色。如表 3 所示,SwAV [13] 在 Pascal VOC7 数据集上的线性分类和目标检测任务中均优于最先进的监督模型。对于线性分类,所示模型在 VOC7 上预训练,然后提取特征进行线性分类训练。对于目标检测,模型在 VOC7+12 上使用 Faster-RCNN 进行微调。在视频分类任务中,对比学习方法在 UCF101、HMDB51 和 Kinetics 数据集上也展现了出色表现,如表 4 所示。

8 对比学习在自然语言处理中的应用
对比学习最早由 Mikolov 等人 [78] 于 2013 年引入自然语言处理领域。作者提出了一种基于对比学习的框架,通过使用共现词作为语义类似的点,并采用负采样 [79] 学习词嵌入。负采样算法通过逻辑回归区分词语与噪声分布,从而简化了训练方法。该框架在计算效率较高的情况下,显著提升了词语和短语的表明质量。
Arora 等人 [80] 提出了一个对比学习的理论框架,能从无标签数据中学习有用的特征表明,并引入潜在类别来形式化语义类似性的概念。在 Wiki-3029 数据集上,该方法的分类性能与最先进的监督方法相当。另一种新模型 CONPONO(CONtrastive Position and Ordering with Negatives Objective)[81] 关注文本的连贯性并编码句子顺序的细粒度信息,其性能优于 BERT-Large,尽管参数数量与 BERT-Base 一样。
近年来,对比学习在多项 NLP 任务中日益受到关注。它在跨语言预训练 [82]、语言理解 [83] 和文本表明学习 [84] 等下游任务中展现出显著改善。INFOXLM [82] 是一种跨语言预训练模型,基于最大化输入序列之间的互信息,并使用对比学习区分机器翻译后的序列。与 TLM [85] 不同,该模型专注于最大化机器翻译对之间的互信息,从而提升在跨语言分类和问答等下游任务中的迁移能力。表 6 展示了最近对比学习方法在 NLP 下游任务中的表现。
大多数流行语言模型(如 BERT [30]、GPT [32])在预训练阶段是基于词元级别的,因此可能无法捕捉句子级语义。为了解决这一问题,CERT [83] 提出了一种基于句子级对比学习的预训练方法。该模型主要包含两个步骤:1)使用反向翻译对句子进行增强;2)通过微调预训练语言模型(如 BERT、BART),预测两个增强版本是否来自同一句子。CERT 在 GLUE 基准中的 11 个自然语言理解任务中进行了评估,在其中 7 个任务上超越了 BERT。DeCLUTR [84] 是一种用于学习通用句子嵌入的自监督模型,其在 SentEval 基准上对句子嵌入质量的评估结果优于流行方法 InferSent。表 5 展示了在不同 NLP 数据集上的准确率比较。

9 讨论与未来方向
尽管实验结果显示对比学习已经在性能上大幅缩小与监督模型之间的差距,但仍需更多的理论分析来提供坚实的支持。例如,Purushwalkam 等人 [86] 的研究表明,PIRL [17] 和 MoCo [14] 等方法未能很好地捕捉视角不变性和类别实例不变性,而这些特性对目标识别来说超级关键。以下是一些进一步的讨论:
9.1 缺乏理论基础
Arora 等人 [80] 的实验证明,对比目标函数的泛化能力受到架构设计和采样策略的显著影响。Tsai 等人 [87] 从多视角出发,提供了信息理论框架来理解哪些属性有助于自监督学习成功。他们证明,自监督表明能够提取任务相关信息(可能伴随必定损失),并舍弃任务无关信息(存在固定损失)。这意味着模型高度依赖于训练阶段选择的预训练任务,进一步强调了对比学习各模块的理论研究的重大性。
9.2 数据增强与预训练任务的选择
PIRL [17] 强调选择与预训练任务无关的稳定方法,但如 SimCLR [42]、MoCo-v2 [47] 和 Tian 等人 [19] 的工作则表明,选择鲁棒的预训练任务与合适的数据增强方式可以大幅提升表明质量。近期,SwAV [13] 就通过多种增强方式超越了其他自监督方法。但这些方法之间难以直接比较,因此难以选出适用于任意数据集的最优任务与变换方式。
9.3 训练时合理的负样本采样
在训练过程中,原始(正样本)会与负样本进行比较,从而计算对比损失以优化模型。当负样本过于简单(即与原始样本类似度极低)时,其对损失函数的贡献很小,限制了模型收敛速度。为了获取更有意义的负样本,顶级自监督方法一般会增加批次大小 [15] 或维持大型记忆库 [17]。Kalantidis 等人 [88] 最近提出了一些困难负样本混合策略,以加快并优化训练过程。但这也引入了大量与训练集相关的超参数,难以在其他数据集上泛化。
9.4 数据集偏差
在自监督学习任务中,数据本身即为监督信号。因此,所学到的表明会受到数据本身的影响。即使数据集规模增加,这种偏差依旧难以消除。
10 结论
本文全面回顾了近年来基于对比学习的顶级自监督方法,涵盖计算机视觉与自然语言处理领域。我们详细讲解了对比学习流程中的各个模块:从选择合适的预训练任务、设计网络架构,到将所学参数用于下游任务。基于对比学习的方法在图像/视频分类、目标检测及各种 NLP 任务中均展现出良好性能。最后,我们还讨论了当前方法尚未解决的一些问题,指出需要新的技术与范式来应对这些挑战。