Paper Reading: BLIP
本文提出了一个新的VLP
框架,BLIP
:
- 能够同时胜任理解基于理解的任务与需要生成的任务。
- 通过引导字幕有效的利用来自网络的存在噪声的数据。使用字幕员生成合成字幕,过滤器删除了嘈杂的字幕。
- 在广泛的视觉语言任务上取得了
SOTA
如图像文本检索、图像字幕、VQA。 - 0-shot 的转移到视频语言任务也表现出强大的泛化能力。
简介
现有VLP
方法的局限性:
- 模型角度:基于编码器的模型难以直接迁移到文本生成下游任务;基于编码器-解码器的模型难以用于图像文本检索任务。
- 数据角度:从互联网上收集的数据存在大量噪声,是次优的。
为此,本文提出一个新的VLP
框架BLIP
,胜任更广泛的下游任务:
- 多模态编码器-解码器混合(Multimodal mixture of Encoder-Decoder,
MED
):全新的网络架构,可以有效的多任务预训练和灵活的迁移学习。一个MED
可以作为单个模态的编码器,或一个图像为基础的文本编码器或一个以图像为基础的文本解码器运行,该模型以三个视觉-语言目标进行训练:图像-文本对比学习、匹配、条件语言建模。 - 字幕过滤(
CapFilt
):新的数据增强方法。 将预训练的MED
微调为两个模块:给定图像产生字幕的字幕员
和去除原始网络文本和合成文本中的噪声字幕的过滤器
。
方法
模型架构
本文使用ViT
作为图像编码器。为了预训练一个具有理解和生成能力的统一模型,我们提出了混合编码解码器(MED
)是一个多任务模型,可以在三种功能中的一种运行:
- 单模态编码器:分别对图像和文本进行编码。文本编码器与
BERT
相同,[cls] token
插入到文本输入的开头以让模型学习概括句子。 - 以图像为基础的文本编码器:在文本编码器的
Self-Attention
层与FFN
层中插入Cross Attention
引入图像编码器的特征输出,实现不同模态的交互。特定于任务的[Encode] token
被插入在文本输入的开头,作为图像文本对的多模态表示。 - 以图像为基础的文本解码器:将上述编码器中的双向自注意力(
Bi Self-Att
)替换为因果自注意力(Causal Self-Att
)。[Decode] token
被插入在文本输入的开头,末尾有序列结束标记。
文本编码器和文本解码器共享除SA
层之外的所有参数。
预训练目标
共同优化了三个目标。每个图像-文本对只计算一次计算量较大的ViT
,然后向前通过三次文本Transformer
,其中不同的功能被激活以计算三种损失:
- 图像-文本对比损失(
ITC
):激活单模态编码器。对齐视觉特征和文本特征空间,使模型对于两种不同模态有相似的特征。这可以提高视觉和语言理解。 - 图像-文本匹配损失(
ITM
):激活以图像为基础的文本编码器。使用一个线性的ITM
分类头预测图像文本对是否匹配。 - 语言建模损失(
LM
):激活以图像为基础的文本解码器。生成给定图像的文本描述。使模型具有能够将视觉信息转换为连贯的标题的泛化能力。
CapFlip
CapFilt
引入了两个模块:
- 用于生成给定图像的字幕的
字幕员
。 - 用于去除噪声图像-文本对的
过滤器
。
字幕员
和过滤器
都是从同一个预训练过的MED
模型中初始化,在COCO数据集上单独微调。
具体来说,字幕员
是一个以图像为基础的文本解码器
。以LM
为目标进行微调。过滤器
是一个以图像为基础的文本编码器
。它通过ITC
和ITM
目标进行微调,以学习文本是否与图像匹配。如果ITM
头预测一个文本与图像不匹配,则该文本被认为是噪音。我们将过滤后的图像-文本对与人类注释的文本对结合起来,形成一个新的数据集,我们用它来预训练一个新模型。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Toby的小博客!
评论