《BLIP》-用更干净更多样的数据进行多模态预训练,性能超越CLIP!

一、简介
​ 近期,Visual-language预训练在各种多模态下游任务中取得了巨大的成功。然而,现有的方法存在着两个限制:

模型视角

许多模型都采用基于编码器的架构或者编码器-解码器的架构。然而,基于编码器的模型并不能直接用于文本生成任务,而编码器-解码器架构并没有成功的应用于image-text检索任务。

数据视角

许多的state-of-the-art方法(例如:CLIP,ALBEF,SimVLM)都在从网络上收集的image-text对数据上进行预训练。尽管通过扩大数据集的规模获得了性能增益,但本文也展示了带有噪音的web文本对于vision-language学习来说是次优解。

​ 为此,作者提出了BLIP: Bootstrapping Language Image Pre-training for unified vision-language understanding and generation。BLIP是一个新的VLP(Vision-Language Pre-training)框架,其能够更加广泛的支持下游的任务。其从模型和数据视角做出了两个贡献

编码器-解码器的多模态混合(MED) \text{(MED)}(MED):一个用于高效多任务预训练和灵活迁移的新模型架构。一个MED \text{MED}MED可以是单模态的编码器,也可以是基于图像的文本编码器/解码器。模型通过三个vision-language目标函数进行预训练:image-text对比学习、image-text匹配和图像条件语言建模。
CapFilt(Captioning and Filtering) \text{CapFilt(Captioning and Filtering)}CapFilt(Captioning and Filtering):用于从噪音image-text对中学习的新数据集boostrapping方法。微调预训练MED \text{MED}MED为两个模块:一个用于为给定图像生成合成captions的captioner,以及一个从原始web文本和合成文本移除噪音captions的filter。
​ 作者进行了大量的实验和分析,做出了如下的贡献:

实验显示captioner和filter一起工作能够显著改善各种下游任务。此外,还发现更多样的captions会带来更大的收益。
BLIP在各种vision-language任务上都实现了state-of-the-art,包括image-text检索、image captioning、视觉问答、视觉推理和视觉对话。直接将本文的方法迁移至两个video-language任务:text-to-video检索和videoQA,实现了zero-shot的state-of-the-art表现。
二、相关工作

  1. 视觉语言(Vision-language \text{Vision-language}Vision-language)预训练
    ​ 视觉语言预训练(VLP \text{VLP}VLP)的目标是通过在大规模image-text数据集上预训练模型来改善下游视觉和语言任务的表现。由于获取人类标注的文本成本非常高昂,许多方法使用从互联网上抓取的图像-文本数据,尽管使用了规则进行过滤,但这些网络文本中仍然普遍存在着噪音。然而,噪音的负面影响很大程度上被忽略了。本文展示了带有噪音的web文本是视觉语言学习的次优解,并提出了CapFilt \text{CapFilt}CapFilt来更有效的利用数据集。

​ 已经有许多工作尝试将各种视觉和语言任务统一至单个框架。设计模型架构的最大挑战是同时执行基于理解的任务(例如image-text retrieval \text{image-text retrieval}image-text retrieval)和基于生成的任务(例如image captioning \text{image captioning}image captioning)。无论是基于编码器的模型或者是基于编码器-解码器的模型在两种类型的任务上都不是很好,而单个统一的编码器-解码器限制了模型的能力。本文提出的多模态混合编码器-解码器为下游任务提供了更多的灵活性和更好的表现。

  1. 知识整理
    ​ 知识整理KD \text{KD}KD的目标是,通过从教师模型中蒸馏知识来改善学生模型的表现。自蒸馏是知识整理中的特例,其学生和教师的尺寸相当。知识蒸馏在图像分类和VLP \text{VLP}VLP上都证明了有效性。不同于现有知识蒸馏方法,简单的强制学生模型的类别预测与教师保持一致,本文提出的CapFilt \text{CapFilt}CapFilt可以看作是在VLP \text{VLP}VLP上下文中更高效的执行知识蒸馏。captioner通过语义丰富的合成captions来蒸馏知识,filter通过移除噪音captions来蒸馏知识。

  2. 数据增强
    ​ 数据增强(DA) \text{(DA)}(DA)已经被广泛的应用于计算机视觉,但是数据增强对于语言任务来说并不是很直接。最近,生成语言模型被用于各种NLP \text{NLP}NLP任务的合成样本。不同于这些专注在低资源语言任务的方法,本文的方法证明了在大规模VLP \text{VLP}VLP上合成captions的优势。

三、方法

  1. 模型架构

​ 这里使用视觉Transformer \text{Transformer}Transformer作为图像编码器,其会将图像划分为patches并编码它们作为嵌入向量序列,添加额外的[CLS]来表示全局图像特征。相较于使用预训练目标检测器来进行视觉特征抽取,使用ViT \text{ViT}ViT的计算效率更高并且已经被最近的方法所采用。

​ 为了能够预训练同时理解和生成的统一模型,本文提出了一个模态混合的编码器-解码器(MED) \text{(MED)}(MED),其是一个能够执行三个任务之一的多任务模型:

Unimodal encoder

该编码器会分别编码图像和文本。文本编码器与BERT \text{BERT}BERT相同,[CLS]被添加至输入文本的开头作为整个矩阵的总结。

Image-grounded text encoder

通过在文本编码器的每个Transformer \text{Transformer}Transformer块的自注意力层SA \text{SA}SA和前馈网络层FFN \text{FFN}FFN添加交叉注意力层CA \text{CA}CA来注入视觉信息。一个任务相关的[Encode] token被添加在文本后,[Encode]输入的嵌入向量被用于image-text pair的多模态表示。

Image-grounded text decoder

使用级联自注意力层来替换文本编码器中的双向自注意力层。[Decode] token被用来表示序列的开始,且一个序列结束的token被用于表示结尾。

  1. 预训练目标函数

    作者在预训练期间共同优化了三个目标,其中两个基于理解的目标和一个基于生成的目标。每个图像-文本对仅需要一次通过计算较重的视觉Transformer的正向传递,而三次通过文本转换器的正向传递,以激活不同的结构以计算如下所述的三个损失函数。

图像文本对比损失 (ITC) 激活单模态编码器。其目的是对齐视觉transformer和文本transformer的特征空间,通过鼓励正图像-文本对具有相似的表示来实现。事实证明,这是提高视力和语言理解的有效目标。

**图像文本匹配损失(ITM)**激活图像文本编码器。它的目的是学习图像-文本多模态表示,捕捉视觉和语言之间的细粒度对齐。ITM是一个二分类任务,给定其多模态特征,模型使用ITM头 (线性层) 来预测图像-文本对是正 (匹配) 还是负 (不匹配)。

**语言建模损失(LM)**激活image-grounded文本解码器,该解码器旨在生成给定图像的文本描述。它优化了交叉熵损失,从而训练模型以自回归方式最大化文本的可能性。在计算损失时,作者采用0.1的标签平滑。与广泛用于VLP的MLM损失相比,LM使模型具有将视觉信息转换为连贯字幕的泛化能力。

为了在利用多任务学习的同时进行有效的预训练,文本编码器和文本解码器共享除SA层之外的所有参数。原因是编码和解码任务之间的差异最好由SA层捕获。尤其是,编码器采用双向自注意来构建当前输入token的表示,而解码器采用因果自注意来预测下一个token。另一方面,嵌入层、CA层和FFN在编码和解码任务之间的作用类似,因此共享这些层可以提高训练效率,同时受益于多任务学习。

  1. CapFilt \text{CapFilt}CapFilt

    由于高昂的标注成本,存在有限数量的高质量人工标注图像文本对 ,如COCO。最近的研究利用了大量从网络上自动收集的图像和文本对。但是,这些文本通常无法准确描述图像的视觉内容,从而使它们成为嘈杂的信号,对于学习视觉语言对齐不是最佳的。

作者提出了字幕和过滤(Captioning and Filtering,CapFilt),这是一种提高文本语料库质量的新方法。上图给出了CapFilt的图示。它引入了两个模块:一个用于生成给定web图像的字幕的字幕器,以及一个用于去除噪声图像-文本对的过滤器。字幕器和过滤器都是从同一个预训练过的MED模型中初始化的,并在COCO数据集上单独微调。微调是一个轻量级的过程。

具体地说,字幕器是一个基于图像的文本解码器。它与LM目标相结合,对给定图像的文本进行解码。给定web图像,字幕器生成合成字幕。过滤器是一个基于图像的文本编码器。它与ITC和ITM的目标相结合,以了解文本是否与图像匹配。过滤器会去除原始web文本和合成文本中的噪声文本,如果ITM头预测文本与图像不匹配,则该文本被视为噪声文本。最后,作者将过滤后的图像-文本对与人类标注对结合起来,形成一个新的数据集,并使用该数据集预训练一个新模型。

四、实验
​ 暂无

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一颗2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值