【AAAI 2024】MuLTI:高效视频与语言理解

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: 多模态理解模型具有广泛的应用,比如多标签分类、视频问答(videoQA)和文本视频检索等。现有的方法已经在视频和语言理解方面取得了重大进展,然而,他们仍然面临两个巨大的挑战:无法充分的利用现有的特征;训练时巨大的GPU内存消耗。我们提出了MuLTI,这是一种高度准确高效的视频和语言理解模型,可以实现高效有效的特征融合和对下游任务的快速适应。本文详细介绍基于MuLTI实现高效视频与语言理解。

一、背景

1.1 多模态的发展

多模态理解模型具有广泛的应用,比如多标签分类(Classification)、视频问答(videoQA)和文本视频检索(Retrieval)等。现有的方法已经在视频和语言理解方面取得了重大进展,然而,他们仍然面临两个巨大的挑战:

1、在处理长序列时平衡计算效率和模型性能。

2、减少预训练和下游任务之间的领域差距。


多模态理解模型一般由三个模块组成:文本编码器(Text Encoder)、视频编码器(VIdeo Encoder)和特征融合模块(Feature Fusion)。后两者通常会导致较高的计算成本。


对于特征融合模块,很难做到既高效又有效。以前的一些工作,比如VIOLET和Clover,它们直接连接视频和文本编码器的输出,然后由Transformer的Encoder进行特征融合,此时模型的计算复杂度和显存消耗与级联序列长度的平方成正比,当长文本与长视频输入到这些模型中时,特征融合所消耗的显存消耗会大幅度上升。为了减轻计算负担,一些工作如ALPRO,FrozenBiLM,CLIPBert在特征融合之前通过均值池化或Class Token的方式压缩视频特征,然而,在多模态融合之前将所有信息压缩到一个向量中可能会丢失重要的细节。一些工作如Flamingo采用Sampler和随机查询来进行有效的视频特征压缩,这种方法是次优的,可能会损害视频特征的完整性。基于上述分析,我们面临了一个难题:如果去压缩特征,容易导致特征的细节丢失;如果不压缩处理特征,特征融合的显存占用过大。此时,如何平衡模型的计算量和准确性是特征融合模块的挑战。

图1


如何将预训练与下游任务相结合也是一项挑战。以前的预训练框架通常应用四个典型的预训练任务:用于视频编码器优化的掩码帧建模(MVM)任务,用于文本编码器优化的掩码语言建模(MLM)任务,用于视频和文本编码器的联合优化的视频文本匹配(VTM)和视频文本比较(VTC)任务。在大规模视频文本数据集上进行预训练可以显著提高视频文本模型的性能。然而,现有的预训练任务和下游任务之间仍然存在领域差距,特别是在视频QA中。将videoQA引入预训练任务的困难在于构建合适的问答对。


1.2 模型的提出

为了应对这些挑战,我们像图1(d)一样设计 MuLTI。它具有用于序列压缩和多模态融合的文本引导多路采样器(Text-Guided MultiWay-Sampler)。现有的方法如Flamingo,通常使用可学习的查询向量(Query)通过采样器对视频特征进行采样。随机初始化的查询向量可能会丢弃重要的原始特征信息,从而导致性能下降。我们在文本引导多路采样器中设计了一种轻量级的自适应池方法,通过计算每个序列块的重要性来获得压缩特征。然后,我们将压缩特征添加到采样特征中,并使用短文本特征对长视频特征进行采样和融合。我们共享了采样器与特征融合模块的注意力权重,并为采样器中的不同模态保留不同的前馈网络。


图1显示,以前的模型(a)和(b)通过其冗长的级联特征融合消耗了大量的GPU内存。(b)和(c)都压缩视频特征,这是一种常见的选择,因为与文本相比,它们的长度更大。然而,由于视频特征中的信息丰富,过度压缩可能会损害性能。相反,我们设计了类似于(d)的MuLTI,并引入了文本引导的多路采样器来有效地压缩文本特征以进行融合。由于文本更简洁准确,我们使用精简的文本来指导视频特征采样,从而提高了性能。

为了减少视频QA中预训练任务和下游任务之间的领域差距,我们引入了一种新的预训练任务——多选建模(Multiple Choice Modeling,MCM)并基于WebVid2M与CC3M数据集进行了预训练。MCM可以通过在大规模视频文本数据集上构建多项选择题回答任务来弥合预训练任务和下游任务之间的任务差距。它要求模型从随机构建的集合中找到与视频最匹配的文本描述,这增强了视频和文本编码器的表示能力以及视频和文本特征之间的对齐。


  • 我们提出了MuLTI,这是一个高度准确和内存高效的视频和语言框架,它通过特征采样和注意力模块实现了高效和有效的特征融合。
  • 我们提出了一种文本引导多路采样器(Text-Guided MultiWay-Sampler)来对长序列特征进行采样,并促进视频和文本特征之间的交互,从而降低内存成本并提高性能。
  • 我们设计了一种新的预训练任务,称为多选建模(MCM),以建好预训练和下游任务之间的任务差距。在七个英语任务和一个汉语多标签分类任务上的实验结果证明了MuLTI的有效性。


二、模型结构


2.1 视觉与文本编码器

在Base模型中,我们使用一个12层的VIT-B/16 去提取视觉特征,我们从输入视频中稀疏地采样 帧。VIT-B/16 模型将每个帧划分为 个不重叠的patch,实际上K就等于 。每个视频的特征向量在提取出来后便是 ,其中 是模型的特征宽度,实际上 就等于 。另外,我们使用一个12层的Bert去提取文本特征,我们假设文本长度为 ,文本编码器的输出就是 ,这里的d也是模型的特征宽度,实际上 就等于 。在[6]之后,我们探索了部分冻结编码器层的训练策略。


2.2 特征融合模块

如果我们将特征在 维度上进行平铺,此时我们会获得一个非常长的特征向量,其shape为 。由于我们需要进行特征融合,我们还需要将这个特征向量与文本的特征进行连接,堆叠后模型的特征长度会进一步上涨到 。当 的数量增加与 的长度增加时,如果不对这个向量进行处理,使用类似于VIOLET中的Encoder进行特征融合,此时模型的计算复杂度和显存消耗与级联序列长度的平方成正比,机器会立刻显存不足。因此我们需要对获取到的特征进行一些更为高效的处理。


图2

多模态融合模块的核心是Text-Guided MultiWay-Sampler,如图2(b)所示。多路采样器由Transformer的Decoder修改而来。具体而言,我们设计多路采样器模块来有效地压缩文本特征并融合不同的模态特征。


参考Flamingo,我们首先随机初始化一个可学习的查询向量,将其作为多路采样器的Query来压缩由文本编码器生成的文本特征。由于MultiWay-Sampler使用可学习的查询向量进行特征压缩,它会比基于池化的方法和基于Class Token的方法更能代表原始特征。我们使用表达式 代表通过MultiWay-Sampler使用查询向量 对特征 进行采样。


由于查询向量是在多路采样器中随机初始化的,在对特征进行压缩时可能无法完全表示原始特征。因此,我们设计了一种基于注意力的轻量级特征聚合方法Adapt-Pooling,以压缩长序列特征。Adapt-Pooling的详细结构如图2(b)的左侧部分所示。Adapt-Pooling的计算公式如下所示, 是Adapt-Pooling的输出:

其中 是模型的特征宽度, 是压缩后的特征长度, 代表对特征进行转置。因此, 是一个形状为 的矩阵,表示每个序列块的重要性, 表示输入特征的长度。我们将Adapt-Pooling获得压缩特征添加到采样器获得的特征中,就像残差模块一样。Adapt-Pooling选择性地突出显示关键输入片段,在保留其关键属性的同时浓缩特征。这种集成信息保证了数据的充分利用,提高了模型的性能和鲁棒性。

然后我们使用压缩后的文本特征和相同的采样器用于再次对平铺后的视觉特征进行采样,以融合多模态特征。我们在MultiWay-Sampler中为不同模态共享采样器中的自注意力模块,以促进多模态特征之间的交互。总的来讲,融合模块的公式如下所示, 是文本特征的查询向量, 是视觉特征, 是文本特征, 是融合模块的输出:

我们的特征融合模块比基于Flatten和Transformer Encoder的效率要高得多,这个分析非常简单:假设VIT-B/16 用作每帧提取器,每个帧将被Flatten为长度196的序列。假设采样器中使用的视频和文本查询数分别为 ,视频特征的长度为 ,文本特征的长度是 ,因此flatten方法的复杂性将为 。应用多路采样器后,我们方法的复杂性为 。由于 通常比 小得多,因此我们的方法更有效。


2.3 不同型号的MuLTI

在本节中,我们考虑在有足够资源的情况下实现更高的性能。我们首先将视频编码器从VIT-B/16替换为VIT-L/14,并将文本编码器从Bert-Base替换为Bert-Large。然后,我们得到MuLTI-L。此外,为了满足有限资源的训练要求,我们将视频编码器从VIT-B/16替换为VIT-B/32,并将文本编码器从12层减少到6层。不同模型的浮点运算(FLOPs)、参数(Params)和每秒帧数(FPS)显示在表1。

表1


三、模型的预训练

我们使用四个目标对 MuLTI 进行预训练,包括三个经典的目标:Masked Language Modeling (MLM),Video Text Matching(VTM),and Video Text Comparison(VTC)。 在本节中,我们重点介绍我们提出的一种新技术:Multiple Choice Modeling(MCM)。


尽管MLM、VTC、VTM已经证明了它们在学习视频和文本表示方面的有效性,但预训练任务和下游任务(如视频问答)之间仍然存在很大的领域差距。将视频问答引入预训练任务的难点在于如何构建合适的问答对。选择题是视频问答的常见形式。受多项选择题的启发,我们发现原始配对视频文本描述是自然正确的答案。在这个基础上,我们引入了Multiple Choice Modeling(MCM),这是一种新的预训练任务,提高了模型对视频问答题的敏感性。具体来说,它的结构如下,这是一个四选择题。

"[CLS]<Question> ? [SEP] Option 1: <Answer 1>. [SEP] Option 2: <Answer 2>. [SEP] Option 3: <Answer 3>. [SEP] Option 4: <Answer 4>."

我们将正确的描述随机放入 中,并通过文本语料库获取正确描述以外的答案。问题也有多种选择,如"What does this picture describe?","What does this video describe?","What can we learn from the video?"等。 MCM 不需要大量额外的手动注释或大量的数据预处理,这是一种高效且可扩展的解决方案。 MCM 的动机是加强模型对 videoQA 任务的敏感性。 由于 MCM 可以提高模型从文本中提取视频相关内容的能力,这也提高了模型在文本视频检索任务上的性能。


考虑到 MLM、VTM 和 VTC的有效性,我们还采用它们进行预训练。MLM 以 15% 的概率随机屏蔽输入标记,并用 [MASK] 替换它们,之后根据视频和文本预测屏蔽的文本标记。VTC 将匹配的视频文本对视为正对,将批次中的其他视频文本对视为负对。VTM 与 VTC 非常相似,它预测视频和文本描述是否相互匹配。 VTM需要通过特征融合模块来融合特征,基于交叉熵损失而不是对比损失来训练分类任务。MuLTI 的整体预训练目标是:


四、实验

4.1 实现细节


i、预训练数据集

我们使用两个大型数据集对模型进行预处理,一个是WebVid-2M,其中包含2.5M个视频文本对。在CLIPBERT中提出,使用图像-文本对对视频-文本模型进行预训练也可以提高该模型在视频-文本任务中的性能。因此,CC-3M也用作预训练数据集,其中包含3M个图像文本对。总的来说,我们的预训练数据集包含5.5M个视频文本对。我们在 PyTorch 中详细实现了 MuLTI,视频编码器使用来自 CLIP 的预训练权重进行初始化。文本编码器使用 12 层 BERT 模型进行初始化。然后,使用 4 层多路采样器来压缩文本编码器的输出并融合多模态特征。查询嵌入的长度设置为16。采样器的所有参数都是随机初始化的。我们使用 256 的batch_size在 8 个 NVIDIA A100 GPU 上对 MuLTI 进行了 10 个 epoch 的预训练,对应于 200k 次迭代。使用学习率为 且权重衰减为 0.05 的 AdamW 优化器作为优化器。学习率首先预热到 ,然后线性衰减到零。对于每个视频,我们统一采样 16 帧并将它们缩放为 作为视频编码器的输入。


ii、下游任务与数据集

在视频问答方向,MuLTI模型在五个广泛使用的开放视频QA任务上进行了评估:

  • MSRVTT-QA基于MSRVTT的视频和字幕。该数据集有10k个视频,其中有243k个问答对,该数据集中有1.5k个候选答案。
  • MSVD-QA基于MSVD的视频和文本描述。该数据集有1970个视频,其中有50k个问答对,该数据集中有2423个候选答案。
  • TGIF-QA要求模型了解GIF视频的细节,以回答有关它们的问题。在TGIF-QA中,TGIF Action和TGIF Transition是多项选择任务,而TGIF Frame是一项开放式视频QA任务。

在文本视频检索方向,MuLTI模型在两个广泛使用Retrieval任务上进行了评估:

  • MSRVTT包含来自YouTube的10K个视频和200K个注释。我们遵循VIOLET,使用9k视频进行培训,使用1k视频进行测试。
  • DiDeMo包含来自Flickr的10K个视频,其中有40K个注释。我们遵循CLIPBERT并将同一视频中的所有注释连接到标题中。

还有一个中文的多标签分类数据集:

  • 视频标签是在线广告排名模型所需的重要特征,我们构建了一个大规模的内部多标签短视频数据集,其中包含486k个短视频,486k个文本字幕和21696个标签。每个视频文本对有多个标签。标签由来自短视频推荐平台的多位专业编辑进行交叉检查。我们还应用了一个在icdar挑战中具有最高性能的端到端文本检测仪,为每一帧生成OCR。每帧OCR拼接后截断为512。

4.2 建议方法的性能比较


表2 MSRQ代表MSRVTT-QA,MSVQ代表MSVD-QA

表2比较了MuLTI与现有方法在七个常用的公共数据集上的表现。


在视频问答任务中,MuLTI在MSRVTT-QA、MSVD-QA、TGIF-Action、TGIF-Transition和TGIF-Frames等数据集上超过了所有已经发表的基线模型。表格中FrozenBILM的结果是没有使用Speech的。总的来说,MuLTI在各种QA任务中实现了最先进的性能。

在文本-视频检索任务中,最有竞争力的文本-视频检索方法是基于CLIP的Vision Transformer和BERT在400M文本-图像对上的预训练。然而,尽管使用较少的预训练数据,MuLTI在两个基准任务上仍然具有很强的竞争力。值得注意的是,在使用DSL进行后处理后,MuLTI的性能优于CAMoE、QB-Norm和TS2-Net。

表3

表3比较了MuLTI与现有方法在多标签数据集上的表现。


对于多标签分类,我们将multi与VIOLET和ALPRO进行了比较,但排除了FrozenBiLM,因为其尺寸不适合在线部署。VIOLET和ALPRO不使用OCR,因为它们会导致V100 GPU内存不足。为了进行公平的比较,我们还在表3中报告了MuLTI的无OCR的性能;MuLTI显著超过VIOLET和ALPRO。

图3

如图所示,当训练期间帧计数增加时,MuLTI保持的视频内存成本不到ALPRO和VIOLET的一半,因为其高效的融合模块最大限度地减少了内存成本的增加。

表4 TGMS代表Text-Guided MultiWay-Sampler,PB代表Pretraining Baseline,MSRQ代表MSRVTT-QA,MSVQ代表MSVD-QA,MSRR代表MSRVTT-Ret


最后,我们在表4中评估了我们的主要技术贡献。与基线模型相比,我们的主要技术贡献提高了所有数据集的性能。文本引导多路采样器增强了MuLTI的多模式融合能力,精确定位多余视频功能中的关键细节。MCM提高了模型的对齐能力,缩小了预训练和下游任务之间的差距。


4.3 消融实验:

i、文本引导多路采样器的重要性

表5 MSRQ代表MSRVTT-QA,MSVQ代表MSVD-QA

图4 F代表Flatten,E代表Encoder,D代表Decoder,S代表Sampler

我们在表5中比较了不同聚合方法的性能。结果表明,Flatten优于其他聚合方法,但需要大量的视频内存。在模型结构的分析中,我们得知部分解码器在长序列中使用的内存比编码器少。虽然它可以很好地处理像MSRVTT-QA这样的数据集。然而,但在处理长文本和视频时,成本仍然很高。具体内存成本如图4所示。

表6 CV代表压缩视频特征,CT代表压缩文本特征,SS代表Shared-Sampler,AP代表Adapt- Pooling


Flamingo使用基于解码器的采样器浓缩视频特征,这是次优的。文本特征更密集、更语义。通过使用文本查询来过滤冗余,语言指导对于从视频表示中提取有用信息是必要的。表6比较了不同的压缩方法,显示了文本压缩的优越性。


采样器和特征融合模块使用相同的解码器结构,可以在不影响性能的情况下共享权重,简化了模型优化。我们共享采样器和解码器的自注意力权重,但为每个模态保留单独的FFN,在保持性能的同时减少参数。与Flatten方法相比,Shared-Sampler在MSRVTT-QA和MSVD-QA上的精度分别提高了0.32%和1.45%。


如表6所示,采样器在压缩文本和视频特征时会导致较差的性能。采样器的随机查询向量具有丢失原始关键特征的风险;我们设计了一个轻量级的聚合模块Adapt-Pooling,以保留原有的功能。如表6所示,Adapt-Pooling提高了MSRVTT-QA和MSVD-QA的准确性。此外,我们探索了各种组合方法(添加、连接和相乘)都只有轻微的性能差异,在MSRVTT-QA上使用连接和相乘分别获得了45.51%和45.45%的准确率。

为了验证这些技术的鲁棒性,我们将其Shared-Sampler和Adapt-Pooling应用于压缩视频特征,这也提高了性能。

ii、Multiple Choice Modeling的重要性

表7 PB代表Pretraining Baseline,MSRQ代表MSRVTT-QA,MSVQ代表MSVD-QA,MSRR代表MSRVTT-Ret

MCM旨在通过将视频QA集成到预训练中来弥合预训练和下游任务之间的差距,增强模型对视频和句子主题的关注,以更好地提取多模式特征。


我们使用经典的MLM、VTM和VTC任务来预训练模型作为基线。由于MVM会导致视频内容损坏,与其他任务发生冲突,在我们最初尝试将MVM包括在预训练中时,我们观察到性能下降,如表7所示。因此,我们决定不使用MVM进行预训练。为了证实MCM的鲁棒性,我们还在使用MVM的基础上添加了MCM进行预训练。结果表明,MCM仍然显著提高了模型的性能。与用基线预训练的模型相比,MCM通过缩小预训练和下游任务之间的任务差距,显着提高了模型在视频QA任务上的性能。MCM对多模态特征对齐的促进提高了模型的检索任务性能。如表7所示,用MCM预训练的模型在视频QA和检索任务中都优于基线,证明了其有效性。


五、未来工作

1、在Audio上进行探索,引入音频信息提升性能。2、进一步降低模型中的计算量最大的VIT的FLOPs与显存占用。

3、优化蒸馏模型模型,保证性能不损失的情况下降低VIT的FLOPs与显存占用。


论文标题:

MuLTI: Efficient Video-and-Language Understanding

论文作者:

刘波、陈云阔、程孟力、徐家琪、施兴

论文PDF链接:

https://arxiv.org/abs/2303.05707

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
2月前
|
机器学习/深度学习 自然语言处理 算法
Sentieon | 每周文献-Multi-omics-第三十一期
Sentieon | 每周文献-Multi-omics-第三十一期
88 0
|
2月前
|
安全 算法 数据挖掘
Sentieon | 每周文献-Multi-omics-第二十期
Sentieon | 每周文献-Multi-omics-第二十期
52 0
|
4月前
|
人工智能
极智AI | 讲解TensorRT Fully Connected算子
大家好,我是极智视界,本文讲解一下 TensorRT Fully Connected 算子。
67 0
|
4月前
|
机器学习/深度学习 数据采集 自然语言处理
【机器学习】Rasa NLU以及Rasa Core概念和语法简介(超详细必看)
【机器学习】Rasa NLU以及Rasa Core概念和语法简介(超详细必看)
180 0
|
11月前
|
机器学习/深度学习 设计模式 Rust
Rust机器学习之tch-rs
整体上tch-rs的使用思路和PyTorch是一致的,因为本身tch-rs就是PyTorch的C++库`libtorch`的绑定。如果你熟练使用PyTorch,那么用tch-rs上手会非常快。关键是用tch-rs能够带给你更快的速度,这在大规模项目中是一个巨大的优势。
698 0
Rust机器学习之tch-rs
|
11月前
|
机器学习/深度学习 自然语言处理 算法
Gato之后,谷歌也推出「通才型」智能体Multi-Game Decision Transformers
Gato之后,谷歌也推出「通才型」智能体Multi-Game Decision Transformers
151 0
|
11月前
|
机器学习/深度学习 算法 搜索推荐
动手学强化学习(一):多臂老虎机 Multi-armed Bandit
 强化学习关注智能体和环境交互过程中的学习,这是一种试错型学习(trial-and-error learning)范式。在正式学习强化学习之前,我们需要先了解多臂老虎机问题,它可以被看作简化版的强化学习问题。与强化学习不同,多臂老虎机不存在状态信息,只有动作和奖励,算是最简单的“和环境交互中的学习”的一种形式。多臂老虎机中的探索与利用(exploration vs. exploitation)问题一直以来都是一个特别经典的问题,理解它能够帮助我们学习强化学习。
549 1
|
机器学习/深度学习 算法 C++
Multi task learning多任务学习背景简介
Multi task learning多任务学习背景简介
|
机器学习/深度学习 存储 数据可视化
吴恩达机器学习ex3 Multi-class Classfication and Neural Networks(python)
吴恩达机器学习ex3 Multi-class Classfication and Neural Networks(python)
吴恩达机器学习ex3 Multi-class Classfication and Neural Networks(python)
|
机器学习/深度学习 数据采集 人工智能
模型监控:定义、重要性和最佳实践(AI Multiple)
正如我们在文章(机器学习生命周期)中指出的那样,MLOps 系统的生命周期包括各种过程,尽管付出了所有努力和时间,但不能保证创建有效的 MLOps。 据麦肯锡称,只有 36% 的公司可以部署 MLOps。 如果模型部署过程成功,则可以开始 ML 过程生命周期中最长的周期,即模型监控。