17M参数竟输给“半个模型”:SET纸牌游戏撕开对比学习的遮羞布
正在加载视频...
视频章节
CLIP这类对比学习模型,被认为是多模态时代的基石。但在一个看似“玩具”的SET纸牌游戏里,它却暴露出一个致命短板:当关系、属性和实体一多,向量维度不够,模型会系统性失明。这不是调参问题,而是容量上限。
17M参数竟输给“半个模型”:SET纸牌游戏撕开对比学习的遮羞布
CLIP这类对比学习模型,被认为是多模态时代的基石。但在一个看似“玩具”的SET纸牌游戏里,它却暴露出一个致命短板:当关系、属性和实体一多,向量维度不够,模型会系统性失明。这不是调参问题,而是容量上限。
一个让CLIP“翻车”的简单实验
故事从一个极其直觉的测试开始:给模型一句话——“一个红色立方体在绿色立方体上,绿色在蓝色上”,再配一张对应图片。对人来说,这是显而易见的一一对应。但研究者做了一件“不讲武德”的事:把颜色在文本和图片里同时打乱,生成全部6种排列组合。
如果对比学习真的理解了“谁在谁上面”,那么文本-图像的打分矩阵应该是一个对角线极强的6×6矩阵。结果却相当尴尬:CLIP给出的logits几乎是均匀的。
结论很刺耳——当同时出现多个实体、关系和属性时,对比学习模型并没有学到我们以为它学到的东西。它更像是在做“模糊匹配”,而不是精确对齐。这不是某个case的偶然失误,而是一个结构性失败模式。
真正的罪魁祸首:点积检索层的容量上限
直觉之外,解释才是这场分享的硬核部分。
在标准对比学习里,query和key被分别编码成向量,通过点积来判断“配不配”。换个角度看,这一步本质上是一个线性分类器:query向量定义了一条线性边界,把key分成“正样本”和“负样本”。
问题在于容量。假设你有6个key,理论上,query可以对应2⁶种“子集匹配方式”。但VC维理论告诉我们:维度为d的向量空间,不可能shatter(完全区分)d+1个点的所有子集。
这意味着什么?当query是动态生成的、需要灵活地选出“任意子集”时,向量维度本身就成了硬上限。你不是没训练好,而是“不可能训练好”。在ImageNet这种只有1000个固定标签的场景里,这个问题被掩盖了;但在CLEVR、组合推理、多关系理解中,它会被无限放大。
用SET纸牌游戏,把问题“做实”
为了避免现实数据的噪声干扰,研究者选了一个极其聪明的实验场:SET纸牌游戏。
SET的妙处在于:每张牌有多个属性、每个属性有多个取值,而且规则可以自然扩展。任意两张牌作为query,可以唯一确定第三张key;再加上星号正则、集合并、对称差,query不再返回单个key,而是任意子集。
他对比了两种模型:
- 对比模型:query/key分开编码,用点积打分,17M参数;
- 非对比模型:query+key拼接后整体建模,只有一半参数。
结果非常“打脸”:在难度逐渐升高的游戏中,只要向量维度小于key数量(比如27),对比模型就开始系统性失败——KL散度飙升、top-k重叠下降;而非对比模型和高维对比模型表现稳定。
更细的分析显示:维度越低,模型越无法在key之间形成偏好,概率质量泄露到负样本,预测熵持续上升。这正是“无法shatter子集”的直观体现。
这不是玩具结论,而是多模态的预警信号
如果这只是27张牌的小游戏,或许还能一笑置之。但研究者把规模扩展到81张牌,趋势完全一致:维度越高,性能越好;理论上维度≥81可完美解决,实验结果也在向这个方向靠拢。
这给多模态和检索式模型敲了一个警钟:当任务从“选一个最像的”变成“选出满足复杂逻辑的集合”,点积式对比学习会天然吃亏。
更现实的含义是——很多我们归因于“模型不够大”“数据不够多”的问题,实际上是架构层面的能力缺失。你再怎么scale,也可能只是在逼近一个天花板。
总结
这场SET纸牌实验真正重要的,不是证明“对比学习不行”,而是精准指出了它什么时候会不行。只要你的任务需要动态子集、组合关系、精细区分,向量维度就是硬约束,而不是可调旋钮。
对从业者的takeaway很直接:第一,别盲目迷信对比学习是“通用解法”;第二,当任务逻辑复杂时,敢于考虑非对比、联合建模的架构;第三,遇到模型“学不会”,先问一句——这是优化问题,还是容量问题?
一个值得继续思考的问题是:在大模型时代,我们是在不断扩大向量维度,还是该重新设计不依赖点积瓶颈的对齐方式?
关键词: 对比学习, CLIP, SET纸牌游戏, Embedding维度, 多模态模型
事实核查备注: 需要核查:1)视频作者姓名(片段中自称Lake/Legg Yeung的准确拼写);2)对比模型参数量约1700万、非对比模型约一半;3)27卡与81卡SET游戏的具体设置;4)VC维与“d+1无法shatter”的理论表述;5)视频发布时间2021-05-10