Introduction
- 当前的大多数视觉语言多模态预训练模型都使用现成的目标检测模型输出的感兴趣区域特征作为图像的视觉特征,但作者认为这样做有如下缺陷:(1) 视觉特征集中在物体上,忽略了检测框以外的上下文信息。如下图所示,这种信息对于多模态推理是十分重要的。即使将整张图片也作为感兴趣区域抽取其视觉特征,目标检测模型也不能保证该视觉特征的质量,因为这种全局区域在训练阶段是没有出现过的;(2) 目标检测模型只能识别有限的物体类别,这限制了多模态模型的视觉理解能力;(3) 绝大多数抽取出的感兴趣区域特征仍然有质量低、噪声多、过采样的问题
- 为了解决上述问题,作者提出了 (one of the first) 端到端的视觉语言预训练模型 (VLPT) SOHO,它不依赖于额外的目标检测模型,直接使用 CNN 对像素信息进行编码,这使得 SOHO 比非端到端模型推理速度更快 (10 times speedup for inference)。当然,CNN 抽取出的像素级的视觉特征和词元级的文本特征语义层级是不同的 (例如,一个名词就代表了一个物体,它的语义信息远比几个像素丰富),这会使得模型难以进行跨模态对齐,为了解决上述问题,作者提出了 视觉字典 (VD) 用于表征视觉特征中的高层语义信息,使得网络能自动抽取出更适合跨模态对齐的视觉特征
- 个人认为 SOHO 最大的亮点毫无疑问就是视觉字典 (VD),它展示了一种通过聚类让 CNN 自动抽取出高层级语义信息的方法 (最为神奇的是,在这一过程中完全不需要任何目标检测模型或目标检测数据集的辅助)
Approach
Cross-modal Concatenation 即为多模态输入 “[CLS] Text Embeddings [SEP] VD-based Embeddings”,它被输入到 Cross-Modal Transformer 中
Trainable Visual Encoder
- SOHO 使用 CNN 作为视觉编码器,输入为整张图片,输出为图像级而非区域级的视觉特征
V
∈
R
l
×
c
\mathcal V\in\R^{l\times c}
V∈Rl×c,其中
l
l
l 为嵌入特征向量的数量,
c
c
c 为向量维度,
v
i
v_i
vi? 为第
i
i
i 个视觉特征向量 (ResNet pre-trained on ImageNet followed by a
1
×
1
1 × 1
1×1 convolutional layer and a
2
×
2
2 × 2
2×2 max pooling layer)
对于视觉特征,SOHO 还使用了正弦函数计算的 2-D 位置嵌入向量 (参见 DETR)
Visual Dictionary (VD)
- Visual Dictionary (VD): 为了将像素级的视觉特征表示为语义信息更加丰富的特征来方便与文本特征做跨模态对齐,SOHO 采用了视觉字典 VD 对视觉编码器的输出特征
V
\mathcal V
V 进行在线聚类,将每个视觉特征向量用它的聚类中心表示。具体而言,视觉字典 VD 就是一个包含了
k
k
k 个
c
c
c 维嵌入向量的嵌入层 (i.e. a
k
×
c
k\times c
k×c matrix
D
\mathcal D
D),对于视觉特征
v
i
v_i
vi?,它的映射索引
h
i
h_i
hi? 为
其中,
d
j
d_j
dj? 为 VD 中的第
j
j
j 个嵌入向量。按上述步骤就可以得到
V
\mathcal V
V 对应的 Index Matrix,再有 Index Matrix 就可以得到 VD-based Embedding Features。因此,可以将 VD 看作一个映射
f
f
f: 映射索引
h
i
h_i
hi? 可以被看作是该视觉特征的虚拟视觉语义标签,并且由于这个聚类过程是在线进行的,因此每个 VD-based 嵌入特征就会比较适合进行多模态对齐 (相当于网络在自己做虚拟的语义分割?) - Momentum Learning for Visual Dictionary Update: 视觉字典
D
\mathcal D
D 中的每个嵌入向量都可以看作是视觉特征的一个聚类中心,视觉字典首先被随机初始化,然后在训练过程中使用动量法在线更新 (只有当
∣
f
?
1
(
j
)
∣
≠
0
|f^{-1}(j)| \neq0
∣f?1(j)∣?=0 时才进行更新):
其中,
f
?
1
(
j
)
f^{-1}(j)
f?1(j) 为
f
f
f 的逆映射,
∣
f
?
1
(
j
)
∣
|f^{-1}(j)|
∣f?1(j)∣ 为索引为
j
j
j 的视觉特征数 - Gradient Back Propagation: 由于采用了视觉字典
D
\mathcal D
D 为每个视觉特征
v
i
v_i
vi? 生成了 VD-based Embedding Features,因此我们就无法用梯度下降法去更新视觉编码器了。为了解决这一问题,SOHO 采用如下方法更新
f
(
v
i
)
f(v_i)
f(vi?) (可参考 Neural Discrete Representation Learning):
其中,
s
g
[
?
]
sg[\cdot]
sg[?] 为 stop gradient 操作 - Cold-start problem: 在训练时,VD 会有冷启动问题,直接训练会导致 mode collapse,为此,SOHO 在前 10 个 epoch 中固定了 CNN 参数
Visual Dictionary for downstream tasks?
- 对于下游任务而言,作者发现直接用 CNN 抽取出的视觉特征比用 VD 效果更好,因此在下游任务上实验时,SOHO 没有使用 VD
- 对此,作者认为这说明 VD 适合表示那些语义信息特别丰富的视觉特征,对于下游任务使用的较小数据集而言,CNN 抽取出的视觉特征提供了更多的细节 (This shows that VD suits visual representation learned with a very large scale of semantics while dense features provide more details in a relatively small dataset.)
Pre-training Pipeline
- (1) Masked Language Modeling (MLM): same as BERT
- (2) Masked Visual Modeling (MVM): 相当于 MLM 的视觉模态版本,即在将视觉特征输入 Transformer 之前随机掩蔽视觉特征。当掩蔽
v
i
v_i
vi? 时,模型需要预测它在 VD 里的映射索引
h
i
h_i
hi?。然而,
v
i
v_i
vi? 附近的视觉特征可能会跟
v
i
v_i
vi? 比较接近并对应相同的索引,这可能会让模型在预测时直接输出
v
i
v_i
vi? 附近视觉特征的索引。为了避免上述情况发生,SOHO 在掩蔽视觉特征时,是先随机选择 VD 里的标签
j
j
j,然后把
f
?
1
(
j
)
f^{-1}(j)
f?1(j) 里的所有视觉向量替换为 [MASK]
- (3) Image-Text Matching
Pre-training Datasets
- “in-domain” data: MSCOCO + VG
Experiment
Downstream Tasks and Results
- 下游任务包括 image-text retrieval (Flickr30K, MSCOCO)、VQA (VQA 2.0)、natural language for visual reasoning (NLVR2)、Visual Entailment (SNLI-VE)
Image-Text Retrieval
Discussion: 对于跨模态检索任务,传统方法是将图像和文本投影到相同表征空间里,然后使用点积等方法计算它们的相似度。而 Transformer 模型则是将图像和文本一起输入模型,不同模态的信息能进行充分的融合,因此性能会更好。然而,Transformer 模型却无法分别地为图像和文本生成特征表示,因此在进行检索时需要耗费极大的计算量,速度也非常慢,这成为了将这类模型用到实际应用中的瓶颈,如何加速这一过程也是一个值得研究的方向
Visual Question Answering
Visual Reasoning
Visual Entailment
Ablation Study
Visualization of Visual Dictionary
- 当使用 VD 时,CNN 抽取出的每个特征向量都对应一个 VD index,而每个特征向量在图像上又对应一个 image patch,由此可以对 VD 进行可视化:
References
|