资讯

对比学习是什么?通过“拉近相似、推远不同”学习表示

2026-11-052 分钟阅读百科
TL;DR对比学习(Contrastive Learning)是一种通过比较样本来学习数据表示的方法,让相似的样本在表示空间中彼此靠近、不相似的样本彼此远离,常以自监督的方式进行,是 SimCLR、MoCo、CLIP 等模型的核心思想。

对比学习(Contrastive Learning)是一种通过比较样本之间的异同来学习数据表示的机器学习方法。它的核心思想很简单:让相似的样本在表示空间中靠得更近,让不相似的样本离得更远。通过这种方式,模型能学到数据中共同的属性,以及把一类数据和另一类数据区分开的属性。这种学习方式在一定程度上模仿了人类认识世界的方式:我们常常是通过比较“这个和那个哪里像、哪里不像”来理解事物的。

它是怎么工作的

对比学习通常涉及三类样本:一个“锚点”样本;一个与它相似的“正样本”;以及一些与它不同的“负样本”。训练的目标是:让锚点的表示和正样本的表示尽量接近,和负样本的表示尽量远离。常用的损失函数,比如 InfoNCE,就是在一组样本中,让模型从众多负样本里把正样本“认出来”。

对比学习最大的优势在于,它常常可以以自监督的方式进行,不需要人工标注的数据。在计算机视觉中,一种经典的做法是:拿一张图片,对它做两种不同的随机变换,比如裁剪、翻转、调整颜色、模糊,得到两个看起来不同的版本。这两个版本来自同一张图片,内容本质上相同,被当作一对正样本;而来自其他图片的版本,被当作负样本。模型学会了无论图片怎么变换,都能认出“这是同一个东西”,就学到了对物体本质特征的理解,而不被表面的变化干扰。

代表性的方法

在视觉领域,2020 年前后出现了一批重要的对比学习方法:谷歌的 SimCLR,用简单的框架和大量的数据增强取得了很好的效果;Meta 何恺明团队的 MoCo,用动量更新的编码器和一个负样本队列,高效地获得大量负样本;此后还有 BYOL、SimSiam 等不需要负样本的变体。这些方法证明了,不依赖人工标注,也能学到非常好的视觉表示,在下游任务上效果可以接近甚至超过有监督预训练。

对比学习也被用于跨模态学习:OpenAI 在 2021 年发布的 CLIP,用对比学习在四亿对互联网上的图片和文字描述上训练,让匹配的图文对靠近、不匹配的远离,从而学会了把图像和文字放进同一个语义空间。CLIP 能实现“零样本”分类,只用文字描述类别就能识别图片,并成为后来大量文生图模型和多模态大模型的基础组件。在自然语言处理中,对比学习也被广泛用于训练句子和文档的嵌入模型,支撑语义搜索和检索增强生成。

相关话题与公司