▊ 写在前面
视频文本检索在多模态研究中起着至关重要的作用,在许多实际应用中得到了广泛的使用。CLIP(对比语言图像预训练)是一种图像语言预训练模型,它展示了从网络收集的图像文本数据集中学习视觉概念的能力。 在本文中,作者提出了一个CLIP4Clip 模型,以端到端的方式将CLIP模型的知识转移到视频语言检索中。在本文中,作者通过实验研究了以下几个问题: 1) 图像特征是否足以用于视频文本检索? 2) 基于CLIP的大规模视频文本数据集的后预训练如何影响性能? 3) 对视频帧之间的时间依赖性建模的实用机制是什么? 4) 该模型对视频文本检索任务的超参数敏感性。 大量实验结果表明,基于CLIP的CLIP4Clip模型可以在各种视频文本检索数据集上实现SOTA结果,包括MSR-VTT、MSVC、LSMDC、ActivityNet和DiDeMo。 CLIP4Clip: An Empirical Study of CLIP for End to End Video Clip Retrieval 论文:https:///abs/2104.08860 代码:https://github.com/ArrowLuo/CLIP4Clip 随着每天在线上传视频的增加,视频文本检索成为人们高效查找相关视频的一个新兴需求。除了实际的web应用之外,视频文本检索是多模态视觉和语言理解的一项基础研究任务。我们可以直接通过输入来对以前的工作进行分类:原始视频(像素级) 或视频特征(特征级) 。 预训练的模型是特征级的,因为他们在一些大规模视频文本数据集上进行过预训练,例如Howto100M。输入是通过现成的冻结视频特征提取器生成的缓存视频特征。如果输入是原始视频,则会使预训练非常缓慢。然而,得益于大规模数据集,预训练模型在视频文本检索方面表现出显著的性能提升。 像素级方法直接以原始视频作为输入来训练模型,早期模型几乎都属于这种方法。这种方法结合成对文本学习视频特征提取器。相反,特征级方法高度依赖于合适的特征提取器。它不能将学习的梯度传播回固定的视频编码器。 最近的一些工作开始用像素级的方法对模型进行预训练,使预训练模型从原始视频中学习。最大的挑战是如何减少密集视频输入的高计算过载 。ClipBERT采用了稀疏采样策略,使端到端预训练成为可能。具体地说,该模型仅在每个训练步骤中从视频中稀疏地采样一个或几个短片段。 实验结果表明,端到端训练有利于低层特征提取。少量的稀疏采样片段就足以解决视频文本检索任务。Frozed模型将图像视为单帧视频,并设计了curriculum learning schedule,以在图像和视频数据集上训练模型。 结果表明,curriculum learning schedule从图像学习到多帧信息,可以提高学习效率。本文的目标不是预训练一种新的视频文本检索模型,而是主要研究如何将知识从图片文本预训练模型CLIP中迁移到视频本文检索任务中 。 在本文中,作者利用预训练好的CLIP,提出了一个名为CLIP4Clip(CLIP For ** video Clip ** retrieval)的模型来解决视频文本检索问题。具体而言,CLIP4Clip构建在CLIP之上,并设计了一个相似度计算器来研究三种相似度计算方法:无参数型 、顺序型 和紧密型 。 与目前基于CLIP的工作相比,不同之处在于,他们的工作直接利用片段进行 zero-shot预测,而没有考虑不同的相似性计算机制。然而,本文设计了一些相似性计算方法来提高性能,并以端到端的方式训练模型。 此外,通过大量的实验,作者得出了以下结论: 1)单个图像远远不足以用于视频文本检索的视频编码。 2) 在CLIP4Clip模型上对大规模视频文本数据集进行后预训练是必需的,并且可以提高性能,特别是对于大幅度的零样本预测。 3) 基于强大的预训练CLIP,对于小数据集,最好不要引入新参数,对视频帧采用平均池化机制;对于大数据集,最好引入更多参数,以学习大型数据集的时间依赖性。 4)视频文本检索中使用的CLIP是学习率敏感的。 (b) 因此,作者研究了的3D线性投影,以增强时间特征提取。三维线性投影会跨时间的patch。具体地说,三维线性使用以的核作为线性的三维卷积代替二维线性中的核,其中t、h和w分别为时间、高度和宽度。 作者直接从CLIP中的文本编码器来生成文本表示,其文本编码器是一种Transformer结构。这是一个12层,通道为512的模型,有8个注意力头。在CLIP之后,[EOS] token处Transformer最高层的激活被视为文本的特征表示。对于文本,其特征表示为。 在提取视频表示和文本表示之后,关键步骤是相似度计算。由于本文的模型是基于预训练的图像-文本模型构建的,因此应该在相似度计算模块中小心地添加新的可学习权重。如果没有权重初始化,很难进行学习,并且可能会影响使用反向传播的预训练模型训练的性能 。 因此,作者根据模块是否引入新参数进行学习,将相似度计算器的机制分为三类。无参数方法 ,即平均池化,在没有新参数的情况下融合视频表示。 另外,作者还提出两种方法引入了新的权值来学习,包括具有不同大小的新权值的序列型方法 和紧致型方法 。上图说明了三种机制的详细结构。 无参数类型和序列类型的相似度计算器属于松散类型,采用两个单独的分支分别用于视频和文本表示来计算余弦相似度。而紧凑型相似性计算器使用变压器模型进行多模态交互,并通过线性投影进一步计算相似性,两者都包含新的权重以供学习。 通过对图像-文本对的大规模预训练的CLIP,帧表示和文本表示已被层归一化并线性投影到多模态嵌入空间。因此,一个自然的想法是采用无参数类型直接从视频角度计算与图像/帧的相似性。 无参数类型首先使用平均池化来聚合所有帧的特征,以获得“平均帧”,然后,将相似性函数定义为余弦相似性: 平均池化操作忽略帧之间的顺序信息。因此,作者探索了两种为序列类型相似性计算器建模序列特征的方法。一个是LSTM ,另一个是带位置嵌入的Transformer编码器 。这两种模型都是序列特征的有效模型。 作者将它们分别表示为和。通过编码,嵌入了时间信息。后续操作与无参数类型相似性计算器相同。 与上述无参数类型和顺序类型不同,紧密型使用Transformer编码器进行视频和本文之间的多模态交互,并通过线性层预测相似性,这引入了未初始化的权重。首先,将文本表示和帧表示concat起来作为融合特征,然后用Transformer编码器进行建模,其公式如下: 其中,[,]表示concat操作。P是位置嵌入,T是类型嵌入。它包含两种类型的嵌入,一种用于文本,另一种用于视频帧。 接下来,作者使用两个线性投影层和一个激活函数来得到来计算相似度,表示为,其中FC是线性投影,ReLU为激活函数。 给定一个Batch。即B个视频- 文本或视频片段-文本对,模型需要生成并优化B×B相似度矩阵。作者使用这些相似度分数上的对称交叉熵损失来训练模型的参数: 其中损失函数为video-to-text损失和text-to-video损失的和。 由于本文的模型是通过帧作为输入直接在像素上进行训练的,因此提取帧是一种重要的策略。一个有效的采样策略需要考虑信息丰富度和计算复杂性之间的平衡。 为了考虑视频(或视频片段)中的顺序信息,作者采用了均匀的帧采样策略,而不是随机稀疏采样策略。采样率为每秒1帧。此外,作者还研究了不同的帧长和不同的提取位置。 虽然CLIP对于学习图像的视觉概念是有效的,但从视频中学习时间特征是必不可少的。为了进一步将CLIP的知识迁移为视频,作者用CLIP4Clip模型在Howto100M数据集上进行了后预训练。 基于效率考虑,对视频文本数据集进行预训练是非常具有挑战性的。因此,作者使用“食品和娱乐”类别(约380k个视频)作为后预训练数据集(本文其余部分称为HOWT100M-380k)。 上图展示了本文方法在不同超参数和实验设置下的实验结果,可以看出,本文方法对于学习率是非常敏感的。 上表展示了是否在Howto100M-380k数据集上后预训练的结果,可以看出,后预训练总体来说还是能够进一步的提高性能的。 上表展示了不同数据集不同帧采样策略的实验结果。 从上表可以看出,3D linear在MSR-VTT和MSVD上生成的结果都比2D linear差。 在本文中,作者使用预训练的CLIP作为主干网络来解决从帧级输入的视频片段检索任务。作者使用了无参数类型 、序列类型 和紧密类型 相似性计算器来获得最终结果。 实验结果证明了模型的有效性,并在MSR-VTT、MSVC、LSMDC、ActivityNet和DiDeMo上实现了SOTA结果。此外,作者从实验结果研究中得出了一些见解: 1)图像特征也可以促进视频文本的检索; 2)对优秀的图像文本预训练CLIP进行后预训练,可以进一步提高视频文本检索的性能; 3)三维patch线性投影和序列类型相似度计算会是一种promising的检索方法; 4)视频文本检索中使用的CLIP是学习率敏感的。 研究领域:FightingCV公众号运营者,研究方向为多模态内容理解,专注于解决视觉模态和语言模态相结合的任务,促进Vision-Language模型的实地应用。 知乎/公众号:FightingCV |