跳到主内容

什么是对比学习?靠「比较」学会区分

2026-10-06 发布 来源:我告诉你AI导航 阅读

教小孩认东西,不一定要告诉他名字。让他知道"这两只都是猫、那只不是",他也能学会分辨。大模型的训练里有一个同款思路:不直接告诉模型正确答案,只让它判断"哪些样本相似、哪些不相似",靠这种比较自己学出区分能力。这就是对比学习,自监督学...

教小孩认东西,不一定要告诉他名字。让他知道"这两只都是猫、那只不是",他也能学会分辨。大模型的训练里有一个同款思路:不直接告诉模型正确答案,只让它判断"哪些样本相似、哪些不相似",靠这种比较自己学出区分能力。这就是对比学习,自监督学习里最有代表性的方法之一。

机制:进来什么,发生什么,出去什么

进来一批样本,每个样本经过两种不同的变换——裁剪、调色、局部遮挡——得到两个"视图"。同一个原图出的两个视图,语义上当然还是同一个东西。

发生的事分两步。先是一个编码器把每个视图映射成一个向量,这个向量就是"表征"——模型对这个样本的内部表示。同时,训练目标做拉近和推远两件事:同一个原图的两个视图,向量要靠近;不同原图的视图,向量要推开。一个损失函数把"近的更近、远的更远"变成可以优化的目标,反向传播据此更新编码器。

出去的是一个训练好的编码器。它的能力可以一句话检验:语义相近的输入,得到的向量相近;不相近的,向量明显分开。语义检索"查一句、找出意思相近的十句话",靠的就是这个性质。

回到开头那个类比:猫例子里,"都是猫"构成正样本对,"那只不是"是负样本。模型始终没被告知"猫"这个字,但它学出了猫的样子——区分能力本身就是一种知识。

正负样本怎么构造

正样本是同一个样本的两种变换视图:一张猫图裁剪一次、调色一次,得到两份,算"相似"。负样本是批次里其他的样本:那张狗图、那张桌子图,算"不相似"。

这是它不需要人工标注的根本原因:相似性不从标签来,从数据增强来。标签要人一条条标,增强可以反复做——一个样本能变出多个"同一个东西的不同版本",海量训练样本就这么来的。

构造质量直接决定效果。什么算"同一张图的不同版本"需要设计:增强太弱,两个视图没差别,模型学不到东西;增强太强,裁剪到只剩一块颜色,语义被破坏,"相似"的假设本身就不成立了。这个度,是对比学习工程里最讲究的部分。

表征距离:拉近谁,推远谁

表征的远近用向量距离度量,方向相近通常用余弦相似度。训练时同时发生两件事:正样本对的距离被拉小,负样本对的距离被推大,而且要留出间隔——不是"比负样本近一点",是"明显近"。

负样本的数量是个关键变量。一个批次里负样本越多,模型见过的"不像"就越丰富,学到的边界越细;代价是计算量随批次增大而上升。负样本太少时,模型容易把"不像"理解得太窄,换个没见过的不像样本就分不开。

一个判断标准:随机抽两张不相干的图,如果它们的向量也很近,说明表征没学出来——正负样本在表征空间里糊成一团,后面的检索、分类都无从谈起。

学到的表示用在哪

图像理解:预训练一个编码器,再在下游任务上微调,是计算机视觉的常规路径。

文本表示:句向量、语义检索、Embedding 模型普遍有对比学习的成分——查询和文档向量近,就判相关。注意它和生成式模型的分工:编码器一次前向就给出向量,生成模型逐 token 往外吐字,两者的速度和用途完全不同,可以参考生成速度由什么决定。

检索与推荐:判断"哪些内容相似"正是它的主场,电商的相似品、内容平台的相似推荐,底层都有这类技术在跑。

落地成本比想象低。很多对比学习预训练的权重是开源可用的(可以参考开源权重模型的使用边界),编码器规模通常远小于同代生成模型(差别可以参考参数量意味着什么),部署时还可以量化瘦身(参考模型量化的基本思路),这也是它在工业界铺得开的原因之一。

它做不到什么

它依赖增强的设计。增强方案是对比学习的"题库",题库出偏了,模型学到的就是偏的。换一个数据分布完全不同的领域,原来验证过的增强方案经常要重做。

它可能走捷径。如果训练数据里"暖色调"和"猫"高度相关,模型可能靠颜色区分猫和狗,形状看得一塌糊涂——这叫捷径学习,学到的表征在真实分布上不堪用。发现方法也简单:换一批打破颜色关联的测试图,准确率掉下来,就是在走捷径。

它需要大量数据。不用标注不等于不用数据:样本量小、批次小的时候,负样本不够,效果明显下降。小数据集场景,它的优势没有大场景那么突出。

它学的是"相似性",不是"是什么"。表征里没有人类可读的类别名,映射到"这是猫"还要额外训练一步分类器;细粒度区分也是弱项——两种长得极像的鸟、两款长得极像的手机,它给出的向量可能非常近。

训练阶段关键动作判断标准
构造视图同一图做两种变换,生成一对视图两个视图人看仍是同一内容
编码映射编码器把每个视图转成向量同图两视图的距离明显小于异图
对比优化拉近正样本对,推远负样本对损失下降,且检索测试集命中上升
下游使用冻结编码器,接分类或检索少样本场景下仍可用

对比学习速查

  • 核心不是"正确答案",是"哪些样本相似"
  • 正样本来自同一图的两种变换,无需标注
  • 表征是向量:语义近,向量就近
  • 增强决定上限:太弱没区分度,太强丢语义
  • 警惕捷径:靠颜色而非形状区分,测试集一换就现形

三个追问

它和监督学习冲突吗?不冲突,常见做法是先用它做预训练、再用少量标注微调。标注充足时两者效果接近,标注稀缺时它的优势才显出来。

为什么文本也能用它?同一问题的不同问法、同一文档的相关段落,都能构造成正样本对;句向量模型普遍有这个成分,语义检索的"意思相近"就是这么算出来的。

它能替代生成式大模型吗?分工不同:它产出理解和判别的能力,生成式模型产出内容。检索、分类、去重用它;写文章、对话用生成式。混用是常态,替代谈不上。

反馈页面信息

请描述需要更正的地方,页面标题和网址会自动附上。

也可以发邮件至 [email protected]