Contents
Introduction
- 自监督视觉语言预训练 (vision-and-language pretraining, VLP) 旨在从大规模图像-文本数据中学习可迁移的多模态特征。主流的 VLP 通常采用 two-stage 策略,需要依赖额外的目标检测模型来对图像信息进行编码。作者认为,这种方式有如下缺陷:(1) restrictive object concept space (目标检测模型只能检测出固定种类的物体类别);(2) limited image context (缺少了物体区域以外的上下文信息,这些信息对于一些复杂的推理任务而言可能是非常重要的);(3) sub-optimal visual representation due to stage-wise training;(4) inefficient computation caused by additional detection modules。为了克服上述缺陷,最近也出现了一些端到端的训练方法,这些方法直接把图像网格中稠密的视觉特征输入多模态 Transformer 模型,但这会使得模型难以捕捉物体级别的视觉概念,在更具挑战性的视觉推理任务上性能不如二阶段模型
- 为了解决上述问题,作者提出了 object-aware end-to-end VLP,它可以直接将 CNN 编码的图像网格特征输入 Transformer 模型,无需借助额外的目标检测模型。同时还借助新的预训练任务 Object-Guided Masked Vision Modeling (OMVM) 和 Phrase-Region Alignment (PRA) 引入了语义空间和特征空间上的知识蒸馏来帮助模型捕捉物体层级的视觉特征并进行物体级别的跨模态对齐
- 实验证明,KD-VLP 在多个任务上超过了当前 SOTA 的端到端 VLP 模型
- 个人认为这篇文章提供了一个很好的思路:端到端的多模态模型需要物体检测知识来抽取物体级别的视觉特征,这种先验知识可以通过知识蒸馏的方式提供给模型
Approach
Model Architecture
- Visual Embedding: KD-VLP 直接使用 CNN backbone 抽取视觉特征 V = { v i } i = 1 L \mathcal V=\{v_i\}_{i=1}^L V={vi}i=1L,其中 L L L 为特征网格数, v i ∈ R d v v_i\in\R^{d_v} vi∈Rdv 为每个网格的特征向量。与 DETR 一样,每个特征向量会和一个 2-D 正弦位置嵌入向量连接。CNN backbone 采用 ResNet-101,后接 1x1 Conv + 2x2 strides Max-pooling 来减小内存占用
- Linguistic Embedding: 文本经过 WordPiece 分词后被编码为词向量 W = { w j } j = 1 T \mathcal W=\{w_j\}_{j=1}^T W={wj}j=1T,其中 w j ∈ R d w w_j\in\R^{d_w} wj∈Rdw。与 BERT 一样,每个特征向量会和一个位置嵌入向量相加
- Multi-modal Transformer: 输入为 { V , [sep] , W , [cls] } \{\mathcal V,\text{[sep]},\mathcal W,\text{[cls]}\} {V,[sep],W,[cls]},输出为 { H V , h [sep] , H W , h [cls] } \{H_\mathcal V,h_\text{[sep]},H_\mathcal W,h_\text{[cls]}\} {HV,h[sep],HW,h[cls]}
作者在实验时 CNN backbone 是由 ImageNet 上的训练模型初始化的,但如果直接用目标检测模型的 backbone 初始化效果会不会更好?
Pretext Tasks
- 准备工作: 对于每张图片,首先使用目标检测模型 (BTUA) 生成一系列的物体检测框
{
(
o
n
,
c
n
,
f
n
)
n
−
1
N
}
\{(o_n,c_n,f_n)_{n-1}^N\}
{(on,cn,fn)n−1N},其中
o
n
∈
R
4
o_n\in\R^4
on∈R4 为检测框位置,
c
n
c_n
cn 为物体类别,
f
n
∈
R
d
o
f_n\in\R^{d_o}
fn∈Rdo 为 RoI features。如下图所示,每个物体检测框对应一个特征图上的 binary mask
m
n
∈
R
L
m_n\in\R^L
mn∈RL
然后对于给定文本,使用 spaCy 抽取出名词短语 P = { p z } z = 1 ∣ P ∣ \mathcal P=\{p_z\}_{z=1}^{|\mathcal P|} P={pz}z=1∣P∣。最后计算所有名词短语 p z p_z pz 和物体类别 c n c_n cn 两两间的余弦相似度 α z , n \alpha_{z,n} αz,n:
其中, E e x t E_{ext} Eext 为一个现成的生成词嵌入向量的模型,如 BERT
这篇文章提出的两种新的预训练方法都依赖于 E e x t E_{ext} Eext + 余弦相似度能真实地度量出名词短语和物体类别之间的相似度
- (1) Object-guided Masked Vision Modeling (OMVM): 每次采样图像中的一个物体然后根据
m
n
m_n
mn 掩蔽它的特征,模型需要预测物体类别并重构 RoI 特征,重构时输入 FC 的特征为所有被掩蔽网格特征对应 Transformer 输出的均值
h
m
n
h_{m_n}
hmn,损失函数分别采用 CE 损失和 L2 损失 (如果想完全抹去被掩蔽物体的信息,应该直接在输入图像上把物体区域 mask 掉而不是在特征空间上 mask)
在采样时,为了促进跨模态对齐,作者提出要采样与句子中出现的名词短语相关的物体,即根据 α z , n \alpha_{z,n} αz,n 进行采样 (knowledge-guided masking strategy) - (2) Phrase Region Alignment (PRA):
h
m
n
h_{m_n}
hmn 为掩蔽物体
n
n
n 时所有被掩蔽网格特征对应 Transformer 输出的均值,
h
p
z
h_{p_z}
hpz 为名词短语
p
z
p_z
pz 所有子词对应 Transformer 输出的均值,
α
^
z
,
n
=
Cos
(
h
p
z
,
h
m
n
)
\hat\alpha_{z,n}=\text{Cos}(h_{p_z},h_{m_n})
α^z,n=Cos(hpz,hmn) 为跨模态相似度。PRA 的训练目标是最小化跨模态相似度和短语-标签相似度的 KL 散度:
使得 KD-VLP 输出的相关名词短语和物体的特征向量尽量相似
- (3) Masked Language Modeling (MLM): same as BERT
- (4) Image-Text Matching (ITM): 判断图像和文本是否匹配
Training Strategy: As in UNITER, we pretrain our network by randomly sampling one pretext task for each iteration rather than training all tasks in a mini-batch.
Experiments
Pretraining Corpus
- MSCOCO caption + Visual Genome: about 200K images and 5.6M image-text pairs, where each image is associated with multiple captions.
Downstream Tasks
- 作者在 Image-Text Retrieval、Visual Entailment (VE)、Natural Language Visual Reasoning (NLVR2)、Visual Question Answering (VQA) 和 Visual Commonsense Reasoning (VCR) 上进行了实验。实验表明,KD-VLP 性能超过了当前 SOTA 的端到端模型 SOHO,甚至在有些任务上性能超过了二阶段模型
Ablation Study & Visualization Analysis
Surprisingly, even the word ”smiling” can locate the baby’s face correctly, which suggests that our approach not only learns better noun-region alignment but also helps establish high-order correspondence, like actions.