(PTP)Position-guided Text Prompt for Vision-Language Pre-training
视觉语言预训练的位置引导文本提示
视觉语言预训练(VLP)已经显示出将图像和文本对统一起来的能力,促进了各种跨模态的学习任务。 然而,我们注意到,VLP模型往往缺乏视觉基础/定位能力,这对许多下游任务如视觉推理至关重要。在这项工作中,我们提出了一种新的位置引导的文本提示(PTP)范式,以提高用VLP训练的跨模态模型的视觉定位能力。具体来说,在VLP阶段,PTP将图像分为N×N块,并通过VLP中广泛使用的目标检测器识别每个块中的目标。然后,它通过鼓励模型预测给定区块中的目标或重新定义给定目标的区块,将视觉定位任务重新表述为给定PTP的填空问题,例如,在PTP中填写"[P]“或”[O]",“区块[P]中有一个[O]”。 这种机制提高了VLP模型的视觉定位能力,从而帮助它们更好地处理各种下游任务。通过将PTP引入到几个最先进的VLP框架中,我们观察到在代表性的跨模态学习模型架构和几个基准中都有持续的重大改进,例如ViLT基线的Flickr30K检索(平均召回率+4.8),以及SOTABLIP基线的COCO字幕(CIDEr+5.3)。 此外,PTP与基于目标检测器的方法取得了相似的结果,而且推理速度快得多,因为PTP在推理时抛弃了它的目标检测器,而后者则不能。
像CLIP、ALIGN和CoCa这样的视觉和语言预训练(VLP)模型极大地推动了许多跨模态学习任务的最先进性能,例如,视觉问题回答、推理和图像字幕。通常情况下,一个通用的跨模态模型首先以自监督的方式在大规模的图像标题数据上进行预训练,以看到足够的数据来获得更好的泛化能力,然后在下游任务上进行微调以适应。由于效果显著,这种预训练-微调的VLP模型范式已经主导了多模态领域。
图1. 三个VLP学习框架及其性能的比较。(a) 比较了基于区域特征的VLP(RF-VLP)、端到端VLP(E2E-VLP)和我们的基于位置引导的文本提示的VLP(PTP-VLP)。我们的PTP-VLP只需要大约15ms的推理时间,与E2E-VLP相同,但比RF-VLP快得多。(b) 在许多下游任务中广泛出现的位置感知问题上,在有遮蔽的文本和图像输入的情况下,RFVLP和PTP-VLP可以很好地预测物体,而E2E-VLP不能准确地指出图像中物体的位置信息。
在VLP中,正如以前的研究所观察到的,视觉基础对许多任务来说是至关重要的。为了对位置信息进行建模,传统的VLP模型(图1(a)的顶部)采用了在1600类视觉基因组上预训练的faster-rcnn来提取突出的区域特征和边界盒。然后这些模型同时使用边界框和物体特征作为输入。这样一来,这些模型不仅可以学习到突出区域中包含哪些物体,以及这些物体在哪里。然而,当使用区域特征作为输入时,该模型会关注边界框内的物品,而忽略边界框外的上下文数据。更严重的是,在下游任务中,这些方法仍然需要使用检测器来提取物体,给人以非常缓慢的推理速度。
为了摆脱区域特征以获得更高的效率,最近的研究(图1(a)中)采用原始像素图像作为输入,而不是区域特征,并用图像文本匹配和掩码语言模拟损失端到端训练模型。尽管速度较快,这些模型不能很好地学习物体的位置和它们之间的关系。 如图1(b)所示,我们观察到一个训练有素的ViLT模型很清楚动画中的物体是什么。 但是这个模型并没有准确地学习物体的位置。 例如,它错误地预测了 “狗在这个图像的右边”。 然而,在微调期间,下游任务实际上需要物体位置信息来全面理解图像。
在这项工作中,我们旨在缓解这些端到端模型的位置缺失问题,同时为下游任务保持快速的推理时间。受最近提示学习方法的启发,我们提出了一种新颖有效的位置引导文本提示(PTP)范式(图1(a)的底部),用于跨模态模型的预训练。 关键的见解是,通过在图像和文本中添加基于位置的共同参照标记,视觉定位可以被重新表述为一个填空问题,最大限度地简化了对象信息的学习。 为了在图像数据中建立自然语言表达,PTP包括两个部分: (1)区块标签的生成,将图像分为N×N个区块,并识别每个区块中的物体;(2)文本提示的生成,将查询文本放入基于位置的文本查询模板中。
通过将位置信息引入预训练,我们的PTP使VLP模型具有强大的视觉基础能力。 同时,由于我们没有在下游任务中使用目标检测器,我们保持了快速的推理时间。 实验结果表明,我们的方法在很大程度上超过了同类方法,尤其是在zero-shot的情况下。 例如,我们的PTP-BLIP在coco数据集上,以更少的训练数据(400万对3B)和更小的模型(220万对21B),在zero-shot检索Recall@1方面,比CoCa取得了3.4%的绝对精度。除了zero-shot任务外,我们还表明PTP可以在物体位置引导的视觉推理和其他常见的VLP任务(如视觉问题回答和图像说明)中取得强大的性能。
现有的VLP模型可以根据其架构大致分为三类:单流模型、双流模型和双流+融合编码器模型。下面将介绍这三种架构:
在这项工作中,在不丧失一般性的情况下,我们专注于提示所有这三种VLP模型,因为它们普遍存在,而且对不同的下游任务具有适应性。
提示学习最初是为探测预训练的语言模型中的知识而设计的,用于特定的下游任务。近年来,在视觉任务上的提示微调研究已经兴起,例如多模态学习和图像理解。先行的颜色提示在图像和文本颜色描述上增加了颜色提示,用于视觉基础。与我们的工作最相关的是Multi-modality Prompt,它为VLPT模型提出了多模态提示调整,在一些视觉语言任务上取得了可喜的成果。
然而,这些努力和早期的NLP研究一样,集中在微调中的提示工程,而使预训练阶段不受影响。相比之下,在这项工作中使用提示设计的目的是在模型仍处于预训练阶段时,为其提供在更细的层次上理解语义概念的能力。
定位能力已被证明对多种跨模态任务至关重要。为了将这种能力引入VLP模型,自下而上和自上而下及其后续工作将区域特征和边界盒向量连接在一起。但是,目标提取在推断下游任务中是很耗时的。最近,一些作品提出用额外的物体定位损失或词块对齐损失来训练VLP模型,然而,这些模型很难扩展,因为它们是专门为特定框架设计的。相比之下,我们的目标是提出一个学习位置信息的通用框架。为此,我们提出了一个简单的文本提示,可以很容易地插入现有的框架中。
在本节中,我们首先阐述了我们提出的位置引导的文本提示范式(简称PTP)。然后,我们介绍了如何将其与当前的视觉语言预训练(VLP)框架结合起来,通过以经典和流行的VILT、CLIP和BLIP为例,提高其视觉基础能力。
为了提高由VLP训练的跨模态模型的视觉基础能力,我们提出了一种新颖而有效的位置引导文本提示(PTP),帮助跨模态模型感知目标,并将这些目标与相关的文本对齐。PTP不同于传统的视觉语言对齐方法,后者将目标特征和边界框连在一起作为输入,以学习目标和相关文本之间的对齐,因此铺设了一条替代方法,确实享有一些优势,如第3.2节中所展示和讨论的。如图3所示,PTP有两个步骤: 1)区块标签的生成,将输入的图像分成几个区块,同时识别每个区块中的目标;2)文本提示的生成,根据步骤1)中的目标位置信息,将视觉定位任务重新制定为一个填空问题。 基于这些步骤,人们可以通过解决PTP中的填空问题,轻松地将PTP插入VLP模型。下面我们将介绍这两个步骤。
图3. 整体框架。任何预训练框架(图2中的单流、双流、双流+融合编码器)和大多数目标都可以与我们的PTP整合。虚线表示该模型可能不存在。我们删除下游任务的文本提示,并像往常一样评估模型
如图3所示,对于训练阶段的每个图像-文本对,我们将输入的图像平均分成N×N块。然后,我们通过以下两种方式之一来识别每个块中的对象:
(1) 目标检测器。我们首先采用VinVL中使用的强大的Faster-rcnn来提取每个图像的所有目标。 这个Faster-rcnn版本是基于ResNeXt152,并在1600类视觉基因组上进行训练。 然后,我们选择由O={oi}Ki=1表示的具有最高预测置信度的top-K目标,其中oi=(zi,qi)表示具有4维区域位置向量z和物体类别q的物体。对于每个区块,我们选择区域中心在该区块的目标。 最后,这个区块的最终标签是这些被选中的目标的q。在这项工作中,我们默认用目标检测器生成目标标签。
(2)CLIP模型。由于CLIP模型的效率和有效性,最近的一些工作也试图基于CLIP生成区域监督。 受这些工作的启发,PTP也可以通过CLIP(ViT-B)模型生成块状的目标监督。 首先,我们提取整个文本语料库中最常见的M(默认为3000)个关键词/短语。这些关键词/短语被认为是我们的词汇表V。然后,我们通过CLIP文本编码器提取所有这些M个关键词/短语嵌入的文本特征ei, i∈ [1, … , M ]。
此外,我们从每个区块中提取图像嵌入h,并计算每个文本特征之间的相似度。具有最高相似度分数的关键词/短语被选为这个特定区块的最终目标标签。从形式上看,每个区块的对象标签索引被计算为:
其中h是所选区块的视觉特征嵌入。与目标检测器相比,CLIP模型有两个优点。首先,相对于预先定义的对象类别,产生的对象标签更加多样化。第二,块状标签的生成比目标检测器快得多,例如,比Faster-RCNN(ResNeXt152)模型快40倍。请参考第4.3节的比较。
对于每个训练对的输入图像,第3.1.1节已经生成了目标标签和位置,这使得我们可以设计一个简单的文本提示,如下所示:
“区块[P]有一个[O]。”
其中P∈{1, ……, N2}表示所选区块的索引,用来表示物体位置;O表示为区块P生成的目标标签。 注意,我们在第4.3节中探讨更多的提示设计选择。对于某个P,我们可能对O有多种选择,因为该块可能包含多个对象。对于这种情况,我们每次都随机选择一个O。这样,我们的PTP中的每个句子都将细粒度的对象位置和语言纳入模型,从而提供了一种新的方式来对齐对象和相关的文本。
在这项工作中,我们将我们的PTP纳入主流的VLP框架,从而形成了PTP-ViLT、PTP-CLIP和PTP-BLIP。在收到PTP之后,我们有两个选择来训练这些模型:
整合到现有的任务中。使用文本提示的最简单方法是改变文本输入。 如图3所示,提示的文本和原始标题被简单地填充在一起。 从形式上看,我们方法的输入标题x被表示为:
其中w是文本,q是我们生成的文本提示。然后我们用传统的目标对VLP模型进行端到端的训练。我们采用语言建模(LM)损失、图像-文本匹配(ITM)和图像-文本对比(ITC)损失来训练我们的PTP-BLIP;我们使用ITM和屏蔽语言建模(MLM)损失来训练我们的PTP-ViLT;我们只使用ITC损失来训练PTP-CLIP。由于该方法性能良好,我们将其作为所有实验的默认方法。
作为一个新的pretext任务。另外,我们探索将位置预测作为一个额外的语言建模任务。形式上,如果D是预训练数据,y1, … … ,yT是我们生成的文本提示q的训练标记序列,那么在时间步骤t,我们设计我们的模型来预测一个概率分布p(t) = p(∗|y1, … , yt-1)。然后,我们逐步尝试最大限度地提高成为正确标记的概率。目标预测损失的计算方法如下:
其中θ是模型的可训练参数。这样,模型被要求预测哪个区块P有目标,以及这个区块中的目标O是什么。
讨论。值得注意的是,我们的方法不需要修改基础网络,可以适用于任何VLP模型,不需要花哨的东西。该模型被设计为从原始像素图像中学习位置信息。请注意,只有在预训练阶段,我们才需要目标的位置信息;然而在下游任务中,我们以正常的端到端方式评估模型,不需要目标信息,以摆脱沉重的目标特征提取。
在本节中,我们对PTP的多个下游任务进行了实证评估,并提出了一个综合研究。
我们首先描述了训练前的实验条件,包括数据集、训练配置、评估程序和我们研究中使用的基线模型。
数据集。如同早期的研究,我们首先使用一个由四个流行的预训练数据集组成的4M设置(COCO , VG , SBU 和CC3M )。根据最近的工作,我们还探索了14M的设置,其中包括除了4M数据集之外的额外的CC12M(实际上只有10M的图像可用)数据集。关于更多的数据集细节,我们请读者参考补充材料。
训练设置。我们的模型由PyTorch实现,并在8个NVIDIA A100 GPU上进行预训练。对于优化器和训练超参数,我们遵循基线作品中的原始实现,以进行公平的比较。对于图像增强,我们探索了RandAugment,并使用所有的原始策略,除了颜色反转,因为颜色信息很重要。我们以与图像相同的方式增强边界盒,以实现像旋转这样的仿射变换。在预训练期间,我们随机抽取分辨率为224×224的图像,并将图像分辨率提高到384×384进行微调。
基线。我们评估了三种预训练框架的变体,包括单流ViLT、双编码器CLIP和融合编码器BLIP,以评估它们的卓越性能。为了进行公平的比较,我们采用ViTB/16作为基础视觉编码器并使用相同的数据集。
在这一节中,我们将我们的PTP整合到现有的网络中,并与现有的VLP方法在广泛的视觉-语言下游任务上进行比较。然后我们介绍每个任务和微调策略。更多的细节可以在补充材料中找到。
我们在COCO和Flickr30K的基准上评估了PTP的图像-文本检索(TR)和文本-图像检索(IR)。对于PTP-BLIP,按照最初的实现,我们采用了一个额外的重新排序策略。
我们首先在表1中报告了图像-文本和文本-图像设置的zero-shot检索结果。1. 我们发现PTP在所有指标上都明显改善了基线。例如,对于ViLT基线,PTP导致了13.8%的绝对改善(从41.3%到55.1%),超过了MSCOCO上图像到文本检索的Recall@1。此外,基于强大的BLIP,我们的PTP-BLIP甚至在MSCOCO的大部分召回率上超过了CoCa,而数据却少得多。
表1. Flickr30K和MSCOCO数据集上的zero-shot图像-文本检索的结果。我们把那些在更大的语料库上训练的方法或使用更大的模型的方法剔除。†表示由我们自己实现的模型,并在同一数据集上进行训练,因为原始数据集无法访问或没有在这些分片上进行训练。Avg是所有图像到文本召回和文本到图像召回的平均值。
关于不同模型之间的微调设置的总结比较见表2。2,从中我们可以看到: (1) PTP在两个数据集中都以很大的优势超过了BLIP和ViLT基线。例如,PTP-ViLT在MSCOCO的TR的R@1上取得了令人印象深刻的5.3%的改进。(2) 以强大的BLIP为基线,PTPBLIP在相同的规模下实现了最先进的性能。请注意,训练成本与BLIP基线相同,因为我们用与基线相同的设置训练PTP,并且不增加最大输入文本标记。在类似的框架下,我们甚至可以缩小4M设置和ALBEF(14M数据)之间的差距。
表2. 在COCO和Flickr30K上进行的图像到文本检索和文本到图像检索的微调结果。请注意,UNITER、OSCAR和VinVL都使用了边界框和目标特征。BeIT-3使用额外的160GB文本语料库。
从以上这些结果中,我们指出UNITER, OSCAR, VinV, ImageBERT都和我们一样使用了fastr-cnn。然而,我们的PTP的结果比这些相关的工作要好得多。此外,我们只在预训练阶段使用目标检测器。这表明目标检测器并不是成功的秘诀,如何利用位置信息对VLP模型来说是至关重要的。
在这一节中,我们首先评估了我们的方法在4M设置下的检索任务与三个著名的基线进行比较。然后我们在CC3M上训练一个BLIP模型作为基线,并进行各种消融。
我们用三种不同的基线进行实验: ViLT、CLIP和BLIP,以探索PTP的影响。表6报告了在COCO 5K测试集的性能。比较这些基线实验的结果,我们发现PTP大大改善了i2t和t2i的性能。这表明PTP具有良好的通用性。
此外,我们还比较了运行时间。由于我们在下游任务中不使用目标检测器或提示,计算成本与基线模型保持一致,但比基于目标特征的VinVL快20倍。
我们研究了将PTP作为一个新的Pretext任务的效果。这样一来,Pretext任务不会影响其他预训练目标,如ITM和ITC,但它确实增加了计算成本。相反,提示设计只是修改了文本输入,因此它将对所有预训练目标产生影响。
我们在表7中报告了这一结果。我们观察到Pretext和Prompt设计在所有四个任务中都改善了基线。然而,提示远远优于Pretext,特别是对于COCO字幕的CIDER(127.2 vs 123.5)。在这项工作中,由于其效率,我们使用提示作为默认。
我们在表8中报告了结果。我们观察到精确的位置并没有产生优于块的结果,其原因可能是精确的位置很难学习。
此外,我们发现使用块状ID(如0)或名词(如左上角)仍然是类似的结果。最后,我们发现,混合版本并没有产生最好的结果。
在这个实验中,我们研究了在不同的颗粒度上提示我们的PTP的信息的功效,比如没有Positional。我们只是在删除提示时使用[P]和[O]。我们将结果列在Tab. 9. 我们观察到:一、有趣的是,每个组件都是至关重要的。没有任何一个组件,下游的性能会逐渐变差。尽管OSCAR发现,当使用区域特征作为输入时,使用对象标签作为补充输入可以改善结果,但我们已经表明,当使用原始像素图像时,对象标签是无效的。这说明需要建立一个可行的提示来理解物体标签和图像区域之间的一致性。
我们探索更精细的位置信息是否有助于我们的PTP。在图4中,我们将块的数量从1×1(去除PTP中的位置信息)改为4×4,并报告基于BLIP和ViLT模型的相对性能。可以看出,当块的数量超过1时,两个骨干网的结果都得到了改善。然而,一旦有16个块,所有下游活动的性能都会相对下降。原因可能是预测的边界框偏离了真实物体的定位,导致网格太小,可能不包含选定的物体。因此,我们建议使用3×3块,因为它可以享受准确性。
在这项工作中,一部分预测的边界框信息来自Faster-rcnn。为了验证物体的表现力,我们还考虑了两种变化:一、纯片段相似性。这种设计选择主要是出于效率的考虑,利用目标检测器是很耗时的,而且有时不容易获得。除了强大的基于ResNext152的目标检测器之外,我们还使用了一个较小的Faster-rcnn网络,利用ResNet101作为骨干。
结果报告在Tab. 10. 我们还报告了在8个NVIDIA V100 GPU上的整体特征提取时间。从表中可以看出,我们发现使用更强的检测器可以带来更好的结果,但同时也带来了巨大的计算成本。此外,我们观察到CLIP嵌入的结果与Faster-rcnn(ResNeXt152)非常接近。此外,它只需要Faster-rcnn(ResNeXt152)版本的2.3%左右的时间来为每个网格提取伪标签。我们得出结论,剪CLIP模型是PTP中物体检测器的一个很好的选择。
为了探索用PTP框架训练的模型是否真的能学习到位置信息,我们在本节中设计了一个填空的评估实验。按照ViLT,我们屏蔽了一些关键词,要求模型预测被屏蔽的词并显示其相应的热图。我们设计了两个文本提示,给定名词来预测定位,给定定位来预测缺失的名词。我们展示了前三名的预测结果,更多的可视化结果可以在补充中找到。
结果显示在图5中。一方面,我们发现PTP-ViLT可以根据块的位置信息和其视觉概念做出正确的目标预测。另一方面,当只屏蔽了位置信息时,我们见证了正确的块的高预测概率值。例如,在图5的底部,我们的模型正确地找到了所有看起来像 "人 "的patches。基于这些实验和图1,我们得出结论,PTP可以帮助基础VLP模型很好地学习基于简单文本提示的位置信息。
此外,我们用KMeans算法对ViLT和PTP-ViLT的标记级特征进行聚类。直观地说,具有相似语义的标记应该被聚类在一起。我们在图6中展示了可视化的结果。与ViLT基线相比,我们发现我们的方法可以更准确地聚类相似的补丁。这说明我们的PTP对语义信息的学习相当准确。
图6. token聚类的可视化。我们在CC3M训练集上用ViT-B/32模型训练ViLT和PTPViLT。我们在CC3M测试集上用KMeans算法展示了token集群的结果。PTP-ViLT显示出可选择的聚类
我们首先尝试利用现有的物体检测器/训练模型的位置信息,以简单的提示方式建立VLP模型。我们提供了一个成功的跨模态提示设置实践,以帮助提示工程。通过严格的实验,我们表明PTP可以作为一个通用的pipeline,在没有太多的额外计算成本的情况下提高位置信息的学习。然而,在这个时候,PTP并没有考虑到如何处理错误的对象标签。此外,这项工作没有充分探索更复杂的提示。未来的研究还将考察PTP在其他视觉语言任务上的表现。