对比学习入门:用相似与不相似样本学表征

标注数据很贵。给每张图、每句话都请人打标签,成本随数据量线性上升。对比学习(Contrastive Learning)给出另一条路:不依赖人工标签,而是利用”哪些样本相似、哪些不相似”这一更廉价的信号,把模型训成能产出高质量表征的编码器。这篇我们把它拆开讲。

核心思想:拉近正样本、推远负样本

对比学习的目标很朴素:让”应该相似”的样本在表征空间里离得近,“应该不相似”的样本离得远。

  • 正样本对(positive pair):同一张图的两个增强视图、同一句话的两种表述;
  • 负样本(negative):同一批次里其他互不相关的样本;
  • 度量:通常用余弦相似度衡量表征间的距离。

这个想法不需要任何类别标签,只要能造出”相似/不相似”关系即可,正因如此它适合自监督场景。

InfoNCE 损失:把表征学习变成分类

对比学习常用 InfoNCE(Noise Contrastive Estimation)损失,由 Oord 等人在 2018 年提出(已核验)。对一个锚点样本,我们希望它和唯一正样本的相似度远高于和一堆负样本的相似度:

L = - log [ exp(sim(z_i, z_j) / τ) / Σ_k exp(sim(z_i, z_k) / τ) ]

其中 z_j 是正样本,k 遍历所有负样本(含那一个正样本),sim 是余弦相似度,τ 是温度系数。最小化 L 等价于在”从一堆样本里认出正样本”这件事上做分类。理论上可证明:当负样本数足够多时,InfoNCE 在优化锚点与正样本之间的互信息下界(已核验,严格推导见原论文)。

三大方法:SimCLR、MoCo、BYOL

三篇代表工作在”如何造负样本、如何稳住训练”上给出了不同取舍。

  • SimCLR(Chen 等,2020,ICML,已核验):同一张图做两种增强得到正样本对,同一批次的其余样本作负样本;它强调”强数据增强 + 在表征与损失之间加一个可学习的投影头”很关键,且大批次、长训练更受益。
  • MoCo(He 等,2019/2020,CVPR,已核验):用”动量编码器 + 队列”维护一个又大又一致的否定样本字典,避免像 SimCLR 那样依赖超大批次显存。
  • BYOL(Grill 等,2020):只用正样本对,不显式用负样本;靠在线编码器与目标编码器(指数滑动平均)互相预测来学表征,省去构造负样本的负担,但训练稳定性更依赖对称的预测结构。

和监督学习比,省在哪

监督学习用”标签”当监督信号,训练目标是分类或回归;对比学习用”样本间的相似关系”当监督信号,训练目标是排序式地拉开距离。

  • 数据成本:对比学习不依赖人工标注,可利用海量无标签数据(如网络图片、未标注语料);
  • 表征质量:在无标签数据上预训练出的表征,经线性探针或微调后,常能逼近甚至媲美有监督预训练;
  • 适用面:标签稀缺或标注困难的领域(医学影像、长尾类别)更受益。

代价是训练通常更吃算力与批次组织,且对数据增强策略敏感。

典型应用:图像与句子表征

  • 图像表征:用 SimCLR/MoCo 在 ImageNet 或自建无标签图上预训练骨干网络,再迁移到检测、分割等下游任务;
  • 句子表征:借鉴对比思想(如 SimCSE),把同一句做 dropout 掩码得到正样本对,训出高质量句向量,用于语义检索、聚类;
  • 多模态:CLIP 等用”图文配对”作正样本、非配对作负样本,对齐视觉与语言表征。

小结

  • 对比学习用”相似/不相似”关系替代人工标签,是自监督表征学习的核心范式。
  • 目标是拉近正样本、推远负样本,常用余弦相似度度量。
  • InfoNCE 把表征学习变成”从负样本里认出正样本”的分类问题,负样本越多越接近互信息下界。
  • SimCLR 靠大批次与投影头,MoCo 用动量队列省显存,BYOL 干脆不用负样本。
  • 它省下标注成本、拓宽可用数据,在图像、句子、多模态表征上都有成熟落地。

参考与延伸阅读

  • Chen T., Kornblith S., Norouzi M., Hinton G. A Simple Framework for Contrastive Learning of Visual Representations (SimCLR). ICML 2020. arXiv:2002.05709
  • He K., Fan H., Wu Y., Xie S., Girshick R. Momentum Contrast (MoCo). CVPR 2020. arXiv:1911.05722
  • Grill J. B., et al. Bootstrap Your Own Latent (BYOL). NeurIPS 2020. arXiv:2006.07733
  • Oord A. v. d., Li Y., Vinyals O. Representation Learning with Contrastive Predictive Coding (CPC, InfoNCE 来源). arXiv:1807.03748
  • Gao T., Yao X., Chen D. SimCSE: Simple Contrastive Learning of Sentence Embeddings. EMNLP 2021. arXiv:2104.08821
本文累计阅读