一、引言
论文: Align before Fuse: Vision and Language Representation Learning with Momentum Distillation
作者: Salesforce Research
代码: ALBEF
特点: 该方法使用ViT进行图像特征提取,提出将BERT分两部分,一部分进行文本特征提取,另一部分进行图像-文本交互的特征提取;提出使用image-text contrastive learning (ITC)损失、masked language modeling (MLM)损失、image-text matching (ITM)损失进行模型优化;提出Momentum Distillation策略以一个通过exponential moving average (EMA)的网络生成软伪标签提供另一个视角的优化方向。
二、详情
ALBEF的整体结构图如下:
可见,ALBEF在网络结构上主要包括1个图像编码器、1个文本编码器、1个多模态编码器和1个同样包含上述3个编码器的动量模型;ALBEF在损失上主要包括image-text contrastive learning (ITC)损失、masked language modeling (MLM)损失、image-text matching (ITM)损失;此外,ALBEF还引入了动量蒸馏。
2.1 网络结构
如图,ALBEF在网络结构上主要包括1个图像编码器、1个文本编码器、1个多模态编码器和1个同样包含上述3个编码器的动量模型。
2.1.1 图像编码器
ALBEF的图像编码器使用ViT-B/16,共12个transformer模块,由在ImageNet-1k上进行预训练的权重初始化。输入图像转为token后会再扩充一个名为 [ CLS ] [\text{CLS}] [CLS]的token(初始化全0的可学习参数向量),用来表达图像的全局信息。最后输出的是经过12个transformer模块优化过的输入图像的token和 [ CLS ] [\text{CLS}] [CLS]的token,记为 { v cls , v 1 , ⋯ , v N } \{\boldsymbol{v}_{\text{cls}},\boldsymbol{v}_{1},\cdots,\boldsymbol{v}_N\} {
vcls,v1,⋯,vN}。
关于ViT的详情,请参考我之前的博客Vision Transformer。
2.1.2 文本编码器
ALBEF的文本编码器使用6个transformer模块,由 BERT base \textbf{BERT}_{\textbf{base}} BERTbase的前6层初始化。输入文本会在最前面扩充一个名为 [ CLS ] [\text{CLS}] [CLS]的token(直接放在句子最前面,例如原文本是“I am very happy today.”,则新文本应为“ [ CLS ] [\text{CLS}] [CLS] I am very happy today.”),用来表达文本的全局信息。最后输出经Tokenizer和6个transformer模块优化过的输入文本的token和 [ CLS ] [\text{CLS}] [CLS]的token,记为 { w cls , w 1 , ⋯ , w N } \{\boldsymbol{w}_{\text{cls}},\boldsymbol{w}_{1},\cdots,\boldsymbol{w}_N\} {
wcls,w1,⋯,wN}。
2.1.3 多模态编码器
ALBEF的多模态编码器使用6个transformer模块(含交叉注意力),由 BERT base \textbf{BERT}_{\textbf{base}} BERTbase的后6层初始化(BERT不包含交叉注意力,所以其中交叉注意力是随机初始化的)。输入为图像编码器和文本编码器输出的token,即 { v cls , v 1 , ⋯ , v N } \{\boldsymbol{v}_{\text{cls}},\boldsymbol{v}_{1},\cdots,\boldsymbol{v}_N\} {
vcls,v1,⋯,vN}和 { w cls , w 1 , ⋯ , w N } \{\boldsymbol{w}_{\text{cls}},\boldsymbol{w}_{1},\cdots,\boldsymbol{w}_N\} {
wcls,w1,⋯,wN},输出以图像token为指导经6个含交叉注意力的transformer模块优化过的文本token。
2.1.4 动量模型
ALBEF的动量模型是额外保存的一个模型,同样包括图像编码器、文本编码器、多模态编码器,且初始化参数也一致。但动量模型不通过梯度优化,而是通过指数移动平均进行参数更新。为方便讲解,我们将正常通过梯度优化更新参数的模型称为梯度模型,额外保存的通过指数移动平均更新参数的模型称为动量模型。
指数移动平均的公式可表示为 θ t = λ θ t + ( 1 − λ ) θ g \theta_{t}=\lambda\theta_{t}+(1-\lambda)\theta_{g} θ

最低0.47元/天 解锁文章
2036

被折叠的 条评论
为什么被折叠?



