【3D点云暑期学习】精读笔记(6):CoCa --- Contrastive Captioners
研0暑期进组学习 · 3D点云多模态方向 · 论文精读系列第 6 篇
原作:Yu et al., CoCa, NeurIPS 2022
写在前面
前面三篇看下来,你大概会有一个感觉:检索、理解、生成这三件事,总得"加模块"才能凑齐。CLIP 只有检索;BLIP 加 MED 三形态补理解与生成,但多阶段;ALBEF 用对齐+融合做理解,但不生成。
CoCa 直接掀桌子:不引入任何额外融合模块,只改解码器结构,把"分类 / 检索 / 理解 / 生成"四种范式合而为一,单次前向端到端训完 。这就是标题 Contrastive Captioners 的含义------对比 + 字幕生成,一个架构全包。
一、三大范式的"固有鸿沟"是什么?
CoCa 出来之前,VL 基础模型普遍"偏科":
| 范式 | 代表 | 能力 | 短板 |
|---|---|---|---|
| 单编码器分类 | ViT / ResNet | 视觉判别 | 不懂自然语言,不能检索/生成 |
| 双编码器对比 | CLIP / ALIGN | 跨模态对齐、检索 | 无深度融合,VQA 弱 |
| 编码器-解码器生成 | SimVLM / OFA | 细粒度理解 + 生成 | 文本编码器过度依赖视觉,检索效率低 |
CoCa 的核心贡献:架构层面的"三位一体"融合------仅靠解码器结构的精巧改动,把三种范式合一体,单阶段端到端。
二、解耦式解码器:架构的灵魂
传统编码器-解码器每一层都带交叉注意力 。CoCa 创造性地把解码器从中间劈开:
- 底层(Unimodal Decoder) :移除交叉注意力,只保留因果自注意力。独立处理文本,不感知图像,输出纯净的单模态文本嵌入(用于对比学习)。
- 顶层(Multimodal Decoder) :保留完整自注意力 + 交叉注意力,深度融合图像特征,输出多模态图文嵌入 (用于自回归生成)。

一个解码器同时产出两种性质不同的表征,且底层参数被两项任务共享------自然语言与视觉信号在互不干扰的前提下高效协同。这正是它比 ALBEF(多次前向 / 动量队列)、BLIP(切形态)更简洁的原因。
三、单次前向 + 双损失并行:训练效率的极致
CoCa 在同一个计算图里同时优化两个损失:
- 对比损失(Contrastive):作用于图像全局嵌入 ↔ 底层解码器输出的单模态文本嵌入 → 保证全局语义对齐(继承 CLIP 的检索/zero-shot 能力);
- 生成损失(Captioning):作用于顶层多模态解码器输出,自回归预测文本 Token(继承 SimVLM 的理解/生成能力)。
由于用因果掩码(Causal Masking) ,预测后续 Token 时天然能在一次 Forward 里同时算两种损失------不像 ALBEF 要多次前向、维护动量编码器,计算开销只比纯生成模型略增。
四、两个更妙的工程细节
以"文本"统一所有监督信号(打破数据壁垒) :CoCa 把一切标签转成"文本描述"------JFT-3B 的分类标签构造成 "a photo of a {class}",ALIGN 的弱标注 Alt-Text 也以相同文本输入。数十亿高质量标注 + 百亿弱标注图文对能在同一 batch 无缝混合训练,极大拓展了有效数据边界。
可学习的注意力池化器(灵活的任务适配器) :针对不同任务对视觉颗粒度的需求(检索要全局、VQA 要区域级),CoCa 摒弃固定 [CLS]/平均池化,引入基于可学习 Query 的注意力池化层:
- 对比/分类:用 1 个 Query 压缩出全局嵌入;
- 生成/理解:用 256 个 Query 保留空间细节送解码器。
同一主干适配不同任务,下游微调极度灵活。
五、实验亮点
- 单 checkpoint 覆盖四任务:极少数仅凭一个模型就能 zero-shot 覆盖分类、检索、VQA、Captioning 的模型。
- 规模与性能(2.1B 参数) :ImageNet 91.0% 、VQA 82.3% 、NoCaps 120.6 CIDEr,全面超同规模 ALBEF / BLIP / Florence。
- 验证"双损失并行"在超大规模下的稳定性 。

六、个人思考
局限性
- 极依赖超大规模数据与算力:2.1B 参数的"三位一体"只有在海量数据下才发挥价值,小实验室玩不动。
- 设计精巧但实现复杂:解耦解码器 + 注意力池化器,工程实现门槛高于 CLIP。
与 3D 点云主线的联系
CoCa 对我 3D 方向最有价值的是**"统一表征"的范式启发**:
- 3D 统一编码器的雏形:3D 点云任务也是"分类 / 检索 / 描述"都要。CoCa 证明------一个解耦式解码器能同时产出单模态(用于检索对齐)和多模态(用于生成/理解)表征。未来 3D 基础模型(如 3D Captioning、3D VQA)完全可以照搬这套"底层单模态 + 顶层多模态"的解码器设计。
- 注意力池化器 → 3D 点云的下采样/聚合 :CoCa 用可学习 Query 从图像特征池化出不同颗粒度表征。这与 PointNet++ 的最远点采样 + 分组聚合思想异曲同工------都是"用一组可学习锚点从原始特征里提取任务相关表征"。3D 里也能用类似的可学习 Query 池化,从点云特征里抽全局/局部表征。
- 文本统一监督:把 3D 标签、点云描述、渲染图 caption 统一成文本监督,和 ULIP/Uni3D 的"多视图文本描述"思路一致。
可改进点
- CoCa 仍需超大算力。BLIP-2(第 7 篇)换思路:冻结大模型、用轻量 Q-Former 桥接,把"算力贵"变成"冻结省反向"------另一条降本路径。
本周系列博文:
- 精读笔记(3):CLIP
- 精读笔记(4):BLIP
- 精读笔记(5):ALBEF
- 精读笔记(6):CoCa ← 当前
- 精读笔记(7):BLIP-2
- 对比学习(2):五模型对齐机制对比
- 周报(2):第二周学习总结
上一篇 :精读笔记(5):ALBEF
下一篇 :精读笔记(7):BLIP-2