当 AI 还在为"看图说话"发明复杂融合时,2019 年的这篇论文只做了一件事:把视觉当 token

  • 关联论文:1908.03557

你有没有注意到,2018 年之前的视觉问答(VQA)系统都很"重"?图像和文本分别用两个网络编码,顶层再加一个 co-attention 融合层,每个新任务都要重新设计融合架构——改一次任务,改一堆代码。

arXiv 1908.03557(VisualBERT,Li 等,2019)做了一件朴素到近乎挑衅的事:把图像区域特征当成"视觉 token",和文本 token 拼成一串,送进标准 Transformer。没了。没有双流、没有 co-attention、没有专门融合层。

这一个看似不起眼的设计,把 VLP(视觉-语言预训练)从"每个任务一种融合网络"解放到"一次预训练、多任务共享骨架"。后续 UNITER、OSCAR、ALBEF、BLIP 全建立在这条"单流 Transformer + MLM + ITM"的骨架上。

为什么这事重要

2018-2019 年视觉-语言任务的三大痛点:

  1. 模态交互只在顶层发生一次,底层表征各自为政,深层语义无法互相影响;
  2. 不同任务要重新设计融合层,迁移成本高;
  3. 缺乏像 BERT 那样的"一次预训练、多任务下游"统一骨架

VisualBERT 的回答:把所有模态都当成 token,让 self-attention 自己学跨模态对齐。这条路线后来被 UNITER、LXMERT、OSCAR、ALBEF 继承,是 2019-2021 VLP 的事实标准之一。

一句话核心

用 BERT 的 Transformer 栈直接处理"图像 region token + 文本 token"联合输入,通过自注意力隐式学到图文对齐,无需显式边界框监督,在 VQA / VCR / NLVR2 / Flickr30K 上达到 SOTA 或接近 SOTA,并以最简骨架成为后续 VLP 模型的工程范式

三个洞察

洞察 1:把图像"区域特征"当 token 是关键一步。论文用 Faster R-CNN 在图像上抽 36 个 region,每个 region 用 ROI pooling 特征表示,再过一个线性投影到 768 维——就得到了"视觉 token"。然后 [CLS] 文本 [SEP] 视觉 [SEP] 拼成一串送进 BERT。单一 Transformer 处理多模态,工程师 1 天就能复现——这就是它的"朴素挑衅"。

洞察 2:两个预训练任务足够,不必花哨。MLM-I(带图像的掩码语言建模)+ ITM(图文匹配)就够了。前者迫使模型用图像作为 grounding 预测被掩码的词,后者迫使 [CLS] 学到跨模态聚合表征。两个任务联合训练,不需要任何边界框-词对齐的人工标注——这是它能在开放域图文语料上规模化预训练的根本原因。论文在只有 120K 图的 COCO Captions 上预训练,效果就已经逼近同时期 SOTA。

洞察 3:可解释的 attention 是免费副产品。单流 Transformer 让所有文本 token 看到所有 region token,attention 热力图能直接看到"狗"对应狗的 region——不需要边界框-词对齐监督。这一点对开放域图文语料是决定性优势,对金融/医疗等需要"模型为什么这么判"的场景也是天然解释接口。论文做了一次探针实验:打乱 region 顺序后,模型对动词-论元对齐的敏感度下降,证明 attention 确实学到了语法-视觉的对应,不是靠全局池化蒙混过关。

真正牛在哪

  • 极简骨架:单一 Transformer,没有双流、没有 co-attention、没有复杂融合,工程师 1 天就能复现;
  • 隐式 grounding:attention 热力图直接看到"狗"对应狗的 region,不需要边界框-词对齐监督,这一点对开放域图文语料是决定性优势;
  • 跨任务统一:4 个差别很大的任务(VQA / VCR / NLVR2 / Flickr30K)共享同一编码器,验证了"一次预训练多次使用"的可行性;
  • "BERT warm start"工程捷径:权重用 BERT-base 初始化,图像侧新增的线性投影层从头训——这个 2019 下半年的做法被 VideoBERT、ViLBERT、Unicoder-VL 同时采纳,是 VLP 时代的关键工程捷径;
  • 为后续工作奠基:Unicoder-VL、VL-BERT、UNITER、OSCAR、ALBEF、BLIP 都建立在"单流 Transformer + MLM + ITM"的骨架上,差异只在预训练数据、视觉端任务、是否引入 object tag。VisualBERT 是这条线的"最小可工作单元"

⚠️ 落地前的硬约束

  1. 依赖预训练 Faster R-CNN:Faster R-CNN 本身需在 Visual Genome 上训练,特征质量上限被框住,且推理时 region 抽取 + Transformer 编码串联,端到端延迟高(典型 200-400ms/图);
  2. 显存随 region 数平方级增长:序列长度 = N_text + N_region(典型 100+36),attention 复杂度 O(L²),regions=100 时 16GB V100 难以容纳 batch>4——regions 必须限制在 50 以内;
  3. 视觉端没有 masked region 建模:和 UNITER 的 MRM、LXMERT 的 mQA 相比,只 mask 文本侧,视觉侧没有"完形填空"任务,理论上有信息泄漏——直接迁移到 UNITER 可避免此问题;
  4. 预训练数据规模小:COCO Captions 只有约 120K 图,远小于后来 UNITER 4M+、ALBEF 14M、LAION-5B——直接迁移到开放域场景效果差,业务上必须继续 domain adaptation(推荐至少 500K 图文对);
  5. 官方权重发布时标注 "Work in Progress":完整 pre-training 脚本和最终权重未提交时发布,复现需自行照论文实现;HF 社区实现可作工程参考但超参与论文不完全对应,关键任务建议复现论文超参后迁移权重;
  6. VQA 数字需对照原文指标:70.80 数字属论文 Table 1 区间内的常用汇报值,但原文对所有指标未统一使用 test-std(test-dev vs test-std 名称需逐表核验);Flickr30K R@1 0.594/0.747 是 text→image 约 0.58-0.60 区间——所有数字均为二次引用,建议回原文逐表核验

VisualBERT 用"文本 token + 视觉 region token 拼一串过标准 Transformer"这个看似朴素的设计,把 VLP 从"每个任务一种融合网络"解放到"一次预训练、多任务共享骨架"。如果业务只有几千张图 + 几百条标注,先 fine-tune VisualBERT / UNITER 通常优于从头设计双流网络

三个标题变体

  1. 《当 AI 还在为"看图说话"发明复杂融合时,2019 年的这篇论文只做了一件事:把视觉当 token》
  2. 《读 arXiv 1908.03557 看 VisualBERT 如何用最简骨架,统一 VQA/VCR/NLVR2/检索四个任务》
  3. 《多模态入门必读:从 VisualBERT 到 BLIP,5 年 VLP 工程的"最小可工作单元"》

小红书风格卡片文案

姐妹们!今天聊一篇多模态入门必读——arXiv 1908.03557(VisualBERT,2019)🌟

2018 年的 VQA 系统有多"重"?图像文本各一个网络编码,顶层加 co-attention 融合层,改一次任务改一堆代码😩

VisualBERT 做了一件朴素到近乎挑衅的事:把图像 region 当 token,和文本 token 拼成一串,送进标准 Transformer。没了。没有双流、没有 co-attention、没有专门融合层。

这一个看似不起眼的设计,把 VLP 从"每个任务一种融合网络"解放到"一次预训练、多任务共享骨架"——后续 UNITER / OSCAR / ALBEF / BLIP 全建立在这条"单流 Transformer + MLM + ITM"骨架上👀

它牛在哪?🌟

1️⃣ 极简骨架:单一 Transformer,工程师 1 天能复现 2️⃣ 隐式 grounding:attention 热力图直接看到"狗"对应狗的 region,不需要边界框-词对齐监督 3️⃣ 跨任务统一:VQA / VCR / NLVR2 / Flickr30K 共享同一编码器 4️⃣ "BERT warm start"工程捷径:BERT-base 初始化 + 视觉投影层从头训 5️⃣ 可解释 attention 是免费副产品:做金融/医疗等要"模型为什么这么判"的场景时,这是天然解释接口

两个预训练任务够不够?👇 - MLM-I:用图像作为 grounding 预测被掩码的词 - ITM:图文匹配,迫使 [CLS] 学跨模态聚合

两个任务联合训,不需要任何边界框-词对齐标注——这是它能在开放域图文语料规模化预训练的关键🔑

但冷静一下⚠️——6 个坑:

1️⃣1️⃣ 依赖 Faster R-CNN,region 抽取 + Transformer 串联延迟高(200-400ms/图) 2️⃣2️⃣ 显存随 region 数平方增长,regions 必须限 50 以内 3️⃣3️⃣ 视觉端没有 masked region 建模,信息泄漏——直接上 UNITER 避免 4️⃣4️⃣ COCO Captions 120K 图远不够,开放域必须 domain adaptation(至少 500K 图文对) 5️⃣5️⃣ 官方权重 "Work in Progress",HF 社区实现超参与论文不完全对应 6️⃣6️⃣ VQA 数字需对照原文,test-dev vs test-std 别混

如果你业务只有几千张图 + 几百条标注,先 fine-tune VisualBERT / UNITER 通常优于从头设计双流网络——这是 ROI 最高的起点👀

多模态 #VLP #VisualBERT #VQA #图文预训练 #AI入门 #深度学习 #Transformer