【跨模态文献精读】BLIP: Bootstrapping Language-Image Pre-training forUnified Vision-Language Understanding
文章目录
1.前言
论文链接:https://arxiv.org/abs/2201.12086
代码链接:https://github.com/salesforce/BLIP
2.动机
1)大多数现有的视觉语言预训练模型只在基于理解的任务或基于生成的任务中表现出色;基于编码器的模型不太容易直接转移到文本生成任务(例如图像字幕),而编码器-解码器模型还没有被成功地应用于图像-文本检索任务。
2)通过使用从网络收集的噪声图文对来扩大数据集的规模,虽然很大程度上实现了性能改进,但不是最好的监督来源。
3.概要
本文提出了一种新的VLP框架BLIP,它可以灵活地转换到视觉语言理解和生成任务。BLIP通过引导字幕来有效地利用噪声网络数据,其中字幕由字幕生成器(captioner)生成合成字幕,而过滤器(filter)则去除噪声字幕。我们在广泛的视觉语言任务上取得了最先进的结果,例如图像文本检索(平均召回率@1+2.7%)、图像字幕(CIDEr+2.8%)和VQA(VQA分数+1.6%)。BLIP在以零样本方式直接迁移到视频语言任务时也表现出很强的泛化能力。
4.方法
4.1模型架构

4.1.1 单模态编码器
视觉transformer作为图像编码器,参考VIT方法架构,包括图像分块-类别嵌入-位置编码嵌入-单塔transformer等模块;BERT作为第一层文本编码器,在文本前加上[CLS]标记。
4.1.2基于图像的文本编码器
自注意力层-交叉注意力层-前馈神经网络,在文本前加上[Encode] tokens标记嵌入多模式表示。
4.1.3基于图像的文本解码器
因果注意力机制层,序列前加上[Decode]标记用于表示序列的开始和结束。
需要注意的是,文本编码器和文本解码器共享除了SA层之外的参数,来实现多任务学习同时有效训练模型。原因是自注意力(SA)层最能捕捉编码和解码任务之间的差异——1)文本编码器采用交叉注意力,文本解码器采用因果注意力;2)模型架构中有作用相似的嵌入层、前馈神经网络层和交叉注意力层,所以共享参数能提升训练效率。
4.2 预训练目标
图像文本对比损失(ITC):激活单模态编码器,目的是通过正图文特征对比相似度;
图像文本匹配损失(ITM):激活基于图像的文本编码器,目的是通过学习图像-文本多模态表示,捕捉视觉语言的细粒度对齐,最终实现二分类输出——图文对是正(匹配)或负(不匹配);
语言建模(LM):激活基于图像的文本解码器,目的是生成给定图像的文本描述,同时用0.1平滑标签优化了交叉熵损失,让模型用自回归的方式使生成可能性最大。
4.3 CAPFILT

字幕生成:在coco数据集进行微调的以LM为目标文本编码器里,根据输入图片产生对应的文本Ts,通过过滤器过滤。
文本过滤:在coco数据集进行微调的以ITC、ITM单模态和文本编码器里,过滤与视觉不匹配的文本,构成Tw,与Ts和人工标注的图文对组合成一个新的数据集,再次进入MAE模型里去训练,优化最终结果。
5.实验及效果
5.1实验细节
模型在PyTorch中实现,并在两个16-GPU节点上进行预训练。根据在ImageNet上预先训练的VIT来初始化image Transformer,并且从BERTbase初始化文本转换器。我们探索了VITS的两个变体:VIT-B/16和VIT-L/16。除非另有说明,否则本文中报告的所有结果都使用VIT-B。我们使用2880(VIT-B)/的批次大小对模型进行了20个时期的预训练。我们使用AdamW优化器,权重衰减为0.05。学习速率升温至3E-4/2E-4,并呈线性衰减,衰减率为0.85%。我们在训练前随机选取分辨率为224×224的图像裁剪,在精调过程中将图像分辨率提高到384×384。我们使用与Li等人相同的训练前数据集。(2021A)总共有1400万张图像,包括两个人类注释数据集和三个网络数据集概念12MSBU字幕。我们还试验了另一个网络数据集LAION,它包含1.15亿张图像,文本噪音更大。(有关数据集的更多详细信息,请参阅附录)
5.2CAPFILT作用

5.3字幕生成多样方法

5.4参数共享和解耦

5.5消融实验

6.和多种最优方法对比(下游任务)
6.1视觉文本检索


6.2视觉生成字幕

6.3视觉问答和视觉语言推理

6.4视觉对话

6.5文本到视频检索

6.6视频问答

7.句子积累
We employ a visual transformer as our image encoder, which divides an input image into
patches and encodes them as a sequence of embeddings,with an additional [CLS] token to represent the global image feature. Compared to using pre-trained object detectors for visual feature extraction,using a ViT is more computation-friendly and has been adopted by the more recent methods.
翻译:我们使用一个视觉转换器作为我们的图像编码器,它将输入图像分成多个块,并将它们编码为一系列嵌入,并使用额外的[CLS]标记来表示全局图像特征。与使用预先训练的对象检测器进行视觉特征提取相比,使用VIT更便于计算,并已被更新的方法采用。
改进方向
(1)多轮数据集引导;
(2)每幅图像生成多个合成字幕,以进一步扩大训练前的语料库;【参考liaon工作】
(3)通过训练多个不同的字幕和过滤器并在CapFilt中组合它们的力量来进行模型集成。
更多推荐



所有评论(0)