Introduction
- 大部分 VLM (Visual-Language Model) 依赖于目标检测模型抽取视觉特征,因此会难以学得多个物体间的关系。为了解决上述问题,作者提出了端到端的多模态模型 X-VLM 来进行 “multi-grained vision language pre-training” (align the text with fine-grained (object-centric) features + learn alignments between the texts and coarse-grained (overall) features of the image). 例如在下图中,数据集包含 image caption、region annotations such as “man wearing backpack”、object labels such as “backpack”
Method
- Overview: X-VLM 由 image encoder
I
t
r
a
n
s
I_{trans}
Itrans? (swin transformer), text encoder
T
t
r
a
n
s
T_{trans}
Ttrans? (6-layer transformer; 由 BERT base 的前 6 层初始化) 和 cross-modal encoder
X
t
r
a
n
s
X_{trans}
Xtrans? (6-layer transformer; 由 BERT base 的后 6 层初始化) 组成,所有 encoders 均为 Transformer. 同时,X-VLM 更充分地利用了预训练数据集中的物体检测框信息,每个样本可以表示为
(
I
,
T
,
{
(
V
j
,
T
j
)
}
N
)
(I,T,\{(V^j,T^j)\}^N)
(I,T,{(Vj,Tj)}N),其中
I
I
I 为 image,
T
T
T 为 text,
{
(
V
j
,
T
j
)
}
N
\{(V^j,T^j)\}^N
{(Vj,Tj)}N 为图片中
N
N
N 个 bbox 的图像和文本信息 (对于某些样本而言,可能有
T
=
NaN
T=\text{NaN}
T=NaN,即图像没有描述文本,或
N
=
0
N=0
N=0,即没有物体检测框信息)
- Vision Encoding:
I
t
r
a
n
s
I_{trans}
Itrans? 为 Swin transformer. 对于
224
×
224
224\times224
224×224 的输入图像 (预训练时图像尺寸为
224
×
224
224\times224
224×224,微调时图像尺寸为
384
×
384
384\times384
384×384),patch 大小为
32
×
32
32\times32
32×32 时,
I
t
r
a
n
s
I_{trans}
Itrans? 输出为
{
v
1
,
.
.
.
,
v
N
I
}
\{v_1,...,v_{N^I}\}
{v1?,...,vNI?} (
N
I
=
49
N^I=49
NI=49),其中
v
p
i
v_{p_i}
vpi?? 编码了 patch
p
i
p_i
pi? 的视觉信息。因此对于视觉对象
V
j
V^j
Vj (object, region, or the image) 而言,它的视觉编码为
I
t
r
a
n
s
(
V
j
)
=
{
v
c
l
s
j
,
v
p
1
j
,
.
.
.
,
v
p
M
j
}
I_{trans}(V^j)=\{v_{cls}^j,v_{p_1^j},...,v_{p_M^j}\}
Itrans?(Vj)={vclsj?,vp1j??,...,vpMj??} (
j
∈
[
0
,
N
]
j\in[0,N]
j∈[0,N]),其中
p
1
j
,
.
.
.
,
p
M
j
p_1^j,...,p_M^j
p1j?,...,pMj? 为
V
j
V^j
Vj 包含的
M
M
M 个 patch,
v
c
l
s
j
v_{cls}^j
vclsj? 为
v
p
1
j
,
.
.
.
,
v
p
M
j
v_{p_1^j},...,v_{p_M^j}
vp1j??,...,vpMj?? 的均值,代表
V
j
V^j
Vj 整体的视觉特征。对于整张图像而言,
I
t
r
a
n
s
I_{trans}
Itrans? 可以编码出
N
+
1
N+1
N+1 个视觉对象,包括
N
N
N 个 bbox
V
1
,
.
.
.
,
V
N
V^1,...,V^N
V1,...,VN 和整张图像
I
=
V
0
I=V^0
I=V0
- Cross-Modal Modeling:
- Bounding Box Prediction: 作者让模型根据图像
I
I
I 和
V
j
V^j
Vj 对应的文本描述
T
j
T^j
Tj 去预测
V
j
V^j
Vj 对应 bbox
b
j
b^j
bj 的位置,这可以帮助模型更好地进行跨模态细粒度语义对齐
其中,Sigmoid 是用于输出归一化的 bbox 坐标,
x
c
l
s
j
x_{cls}^j
xclsj? 为 cross-modal encoder 输入
I
,
T
j
I,T^j
I,Tj 后输出的 [CLS] 对应的特征向量 损失函数采用 L1 损失 (scale-variant) 和 generalized IoU loss (scale-invariant) 之和 - Contrastive Learning: 和 CLIP 类似,X-VLM 也使用了对比损失。随机采样
N
N
N 个图像文本对 (1 个 batch),可以计算如下的 in-batch vision-to-text similarity:
其中,
(
V
,
T
)
(V,T)
(V,T) 为正样本,
V
V
V 和同一 batch 内的其他文本
T
i
T^i
Ti 组成
N
?
1
N-1
N?1 个负样本。
s
(
V
,
T
)
=
g
v
(
v
c
l
s
)
T
g
w
(
w
c
l
s
)
s(V,T)=g_v(v_{cls})^Tg_w(w_{cls})
s(V,T)=gv?(vcls?)Tgw?(wcls?) 为余弦相似度,
v
c
l
s
,
w
c
l
s
v_{cls},w_{cls}
vcls?,wcls? 分别为
V
V
V 和
T
T
T 的 [CLS] 对应的输出,
g
v
,
g
w
g_v,g_w
gv?,gw? 分别将
v
c
l
s
,
w
c
l
s
v_{cls},w_{cls}
vcls?,wcls? 变换为低维的归一化特征表示。类似地,text-to-vision similarity 为 损失函数为 其中,
y
v
2
t
(
V
)
,
y
t
2
v
(
T
)
y^{v2t}(V),y^{t2v}(T)
yv2t(V),yt2v(T) 为 ground-truth one-hot similarity (only the positive pair has the probability of one),
H
H
H 为交叉熵损失 - Matching Prediction:对于每个
V
V
V,根据 in-batch vision-to-text similarity
p
v
2
t
(
V
)
p^{v2t}(V)
pv2t(V) 从 batch 内采样出一个 in-batch hard negative text,与
V
V
V 更相近的 text 被采样的几率更大;同理,对于每个
T
T
T,也采样出一个 in-batch hard negative visual concept,由此得到
N
N
N 个正样本和
2
N
2N
2N 个负样本。损失函数为交叉熵损失
其中,
p
m
a
t
c
h
p^{match}
pmatch 为模型预测的匹配概率 - Masked Language Modeling:随机 mask 25% 的文本,其中 10% 替换为随机 token,10% 不变,80% 替换为 [MASK],然后使用 cross-modal encoder 的输出加上线性层和 Softmax 重构 mask 掉的 token. 损失函数为
其中,
T
^
\hat T
T^ 为 masked text,
p
j
(
V
,
T
^
)
p^j(V,\hat T)
pj(V,T^) 为 masked token
t
j
t_j
tj? 的预测概率
Experiment
Pre-training Datasets
- 为了便于比较,X-VLM 准备了 2 种预训练数据集设置 (4M / 16M),其中 Ann(otations) 为图片的 object annotations 和 region annotations
Image-Text Retrieval
Visual Question Answering, Natural Language for Visual Reasoning (NLVR2), Visual Grounding, Image Captioning
References
|