MovieChat: From Dense Token to Sparse Memory for Long Video Understanding

CVPR 2024

Abstract

最近,集成视频基础模型和大语言模型来构建视频理解系统可以克服特定预定义视觉任务的限制。然而,现有系统只能处理帧数很少的视频。对于长视频,计算复杂性、内存成本和长期时间连接带来了额外的挑战。利用AtkinsonShiffrin记忆模型,以transformrer中的token作为记忆的载体,结合我们专门设计的记忆机制,我们提出了MovieChat来克服这些挑战。MovieChat 在长视频理解方面实现了最先进的性能,并发布了具有 1K 长视频和 14K 手动注释的 MovieChat-1K 基准,以验证我们方法的有效性。

1. Introduction

大型语言模型 (LLM) 的最新进展在自然语言处理 (NLP) 领域取得了巨大成功。将多模态引入LLM并将其转化为能够进行多模态理性化和理解的多模态大语言模型(MLLM)是一个自然的过程。MLLM 在各种多模态任务中表现出了令人难以置信的突发能力,例如感知(例如计数、OCR),常识推理和代码推理,从而产生了一条潜在的途径通向通用人工智能(AGI)。与 LLM 和其他特定于任务的模型相比,MLLM 提供了更人性化的场景解释、用户友好的交互界面以及更广泛的功能。

现有的以视觉为中心的 MLLM 遵循的范式是利用预先训练的 LLM 和视觉编码器以及附加的可学习模块(Q-former)或简单的投影层。在视频领域,一些先前的工作遵循这种范式来构建视频MLLM,而另一种范式中的工作则通过应用程序编程接口(API)将现有的视觉感知工具和LLM结合起来构建系统无需训练。但此前,还没有针对长视频(超过一分钟)的模型或系统进行探索,也缺乏评估这些系统能力的标准化基准。

在本文中,我们提出了 MovieChat,这是一种集成视觉模型和 LLM 来执行长视频理解任务的新颖框架。我们认为计算复杂度、内存成本和长期时间连接是长视频理解的主要挑战。 Atkinson-Shiffrin 记忆模型提出短期记忆充当长期记忆的缓冲区,充当将信息编码到长期记忆中的处理器。受此启发,我们提出了一种处理长视频理解任务的记忆机制,其中包括快速更新的短期记忆和紧凑的持续长期记忆。我们使用滑动窗口方法来提取视频特征并以标记形式表示它们,然后将其按顺序逐帧输入到短期记忆中。短期记忆有固定的长度,当达到设定的限制时,最早的标记将被弹出并合并到长期记忆中。经过投影层后,视频表示被输入到大型语言模型中以与用户交互。如图 1 所示,我们提出的 MovieChat 机制在视频随机存取存储器 (VRAM) 成本方面优于其他现有方法。我们还发布了一个新的基准测试 MovieChat-1K,其中包含 1K 长视频和 13K 手动问答对,以验证我们提出的 MovieChat 的有效性。

image-20241213155159716

千兆字节 (GB) 下的 VRAM 成本(y 轴)与帧数(x 轴)比较。我们在 224 × 224 分辨率下测试所有方法的仅视觉推理,无需帧采样。虽然之前的方法只能支持大约 100 帧的推理,但 MovieChat 可以在 24GB 显卡上处理超过 10K 帧的视频。在每帧 VRAM 成本平均增加(每帧 21.3KB 到 ∼ 200MB)方面,MovieChat 比其他方法有 10000 倍的优势。

本文工作的贡献总结如下:

  • 我们提出了 MovieChat,这是一个集成视觉模型和 LLM 的新颖框架,它是第一个支持长视频(> 10K 帧)理解任务的框架。
  • 我们提出了一种有效的内存管理机制,以降低计算复杂度和内存成本,同时增强长期连接。
  • 我们发布了第一个带有手动注释的长视频理解基准MovieChat-1K,并进行了广泛的定量评估和案例研究,以评估理解能力和推理成本的可比性能。

2.1 MLLM

LLM最近在自然语言处理(NLP)任务中取得了巨大成功。许多工作尝试通过结合其他模态的模型来构建 MLLM 。Flamingo连接了强大的预训练纯视觉模型和纯语言模型,并通过少量学习实现了最先进的性能。MiniGPT-4将冻结的视觉编码器与冻结的 LLM、Vicuna对齐,仅使用一个投影层来实现该系统。VideoChat通过可学习的神经接口集成了视频基础模型和LLM,在时空推理、事件定位和因果关系推理方面表现出色。Video-LLaMA进一步利用预训练模型 ImageBind和 LLaMA,在 BLIP-2 之后的视频中引导跨模态训练。然而,由于计算复杂度高、内存成本大和长期时间连接弱,这些方法无法处理长视频理解。因此,我们的主要努力是引入有效的记忆机制来克服这些挑战。

2.2 长视频理解

理解长视频是计算机视觉中的一项具有挑战性的任务。现有技术使用 3D CNN 进行长期特征库 、以物体/人类为中心的运动或其他形式作为视频表示。构建长格式视频理解数据集具有挑战性,而且很少被探索。[54]从 Kinetics-400 [14] 捕获大规模数据,但仅适用于通用事件边界检测任务。[55]从电影的音频描述中创建了语言基础基准,但缺乏长期的理解评估。

然而,这些数据集缺乏针对长视频的多样化且细粒度的密集字幕。

2.3 视觉任务中的记忆模型

一些先前的工作在视频中的各种视觉任务中探索记忆模型,例如视频对象分割(VOS),多对象跟踪(MOT)、视觉对象跟踪(VOT)和动作理解。MeMOT 构建了一个大型时空存储器,用于存储跟踪对象的过去观察结果。 XMem开发了一种架构,该架构结合了多个独立但深度连接的特征内存存储来处理具有数千帧的长视频。我们借鉴了现有技术的经验,并结合大模型进一步采用了有效的记忆机制。

我们的方法侧重于减少视频中视觉标记的冗余,并构建一种记忆机制来在大时间范围内传递信息。

3. MovieChat

image-20241213164745508

图 2.MovieChat 插图。 MovieChat 使用滑动窗口提取视频特征,并以token形式表示它们,然后将其按顺序逐帧输入短期记忆。当固定长度的短期记忆达到其预设限制时,最早的令牌将被弹出并合并到长期记忆中。MovieChat 包含两种不同的推理模式:全局模式(专门利用长期记忆)和断点模式(另外将当前短期记忆作为视频表示的一部分)。断点模式允许理解特定时刻的视频。经过投影层后,视频表示被输入到大型语言模型中以与用户交互。

3.1 Overview

我们提出的方法 MovieChat 包含几个关键组件,包括逐帧视觉特征提取器、短期和长期记忆模块、视频投影层和大语言模型(LLM),如图 2所示。MovieChat 旨在通过与用户的交互式对话来理解超长视频(>10K 帧)。为了解决在 GPU 内存和 RAM 中同时存储大量帧的不切实际的存储需求,我们采用滑动窗口方法来有效处理视频。短期记忆模块通过滑动窗口嵌入密集token,长期记忆模块定期更新。MovieChat 支持两种推理模式:断点模式用于理解视频中的特定时刻,根据该特定帧或场景提供见解和答案;另一方面,全局模式用于从整体上理解整个视频,从而能够全面理解整体内容和上下文。

3.2 Visual Feature Extraction

对于视觉特征提取,我们不使用基于视频的基础模型(例如 ViViT或 VideoSwin),而是简单地使用基于图像的模型来获取token形式的逐帧特征。具体来说,我们利用预先训练的模型作为我们的视觉特征提取器,包括 EVA-CLIP [23] 中的 ViT-G/14 和 BLIP-2 [35] 中的 Q-former。这主要是因为:1)很少有视频基础模型能够与文本很好地对齐,2)我们提出的记忆机制可以有效地捕获时间特征。

给定一个原始视频 vZT×3×H×W\mathbf{v} \in \mathbb{Z}^{T \times 3 \times H \times W},其包含TT 帧 RGB 图像,每帧的分辨率为 H×WH×W。特征提取是通过滑动窗口的方式进行的,具体公式如下:

Bn={xi=V(vi)i=1,,C},n=1,,TC\mathbf{B}_n = \{ \mathbf{x}_i = \mathcal{V}(\mathbf{v}_i) \mid \forall i = 1, \dots, C \}, \quad n = 1, \dots, \lceil \frac{T}{C} \rceil

其中:

  • Bn\mathbf{B}_n 表示第 nn 个滑动窗口的视频片段特征。
  • CC表示滑动窗口的帧数。
  • $\mathcal{V}(\cdot) 是视觉特征提取函数,输入单帧是视觉特征提取函数,输入单帧 \mathbf{v}_i \in \mathbb{Z}^{3 \times H \times W}$,输出对应的特征。
  • $\mathbf{x}_i \in \mathbb{R}^{N \times D} $是每帧提取的 NN个视觉 token,DD 表示每个 token 的维度。

滑动窗口将视频分割成多个片段,每个片段包含 CC帧,特征提取器对每一帧进行处理并生成视觉 tokens。

3.3 Short-term Memory

短期存储器将帧token存储在临时固定长度缓冲区中。先前通过滑动窗口 G 次提取的视觉特征无需进一步处理,用于构造短期记忆。

  1. 短期记忆的构建: 假设在第 nn 个滑动窗口中,视频片段的特征为 Bn={xii=1,,C}\mathbf{B}_n = \{ \mathbf{x}_i \mid \forall i = 1, \dots, C \},那么短期记忆SS 的内容为所有视频片段的视觉特征,具体表达为:

S=nBn={xii=1,,K},n=1,,GS = \bigcup_n \mathbf{B}_n = \{ \mathbf{x}_i \mid \forall i = 1, \dots, K \}, \quad n = 1, \dots, G

其中:

  • SS 表示短期记忆中的所有视觉特征。
  • KK 表示短期记忆中的帧数,等于每个滑动窗口的帧数 CC 和滑动窗口次数 GG 的乘积。
  • CC 表示每个视频片段的帧数,GG 表示滑动窗口的数量。
  1. FIFO更新策略: 当新的视觉特征批次进入时,如果短期记忆已达到其预定容量,最早的特征将被移除并合并到长期记忆中。短期记忆的更新过程如下:
  • 新的视频片段特征进入短期记忆 SS
  • 当短期记忆的容量满时,最早的 KK 帧特征被弹出并通过合并操作传递到长期记忆中。
  • 更新后的短期记忆 SS 被重新初始化,并继续处理后续的帧。

该更新机制保证了短期记忆始终保持一个固定的容量,并通过FIFO策略保持视频特征的时序性。这种机制有效地避免了冗余信息的积累,同时为长期记忆的更新提供了必要的支持。

3.4 Long-term Memory

长时记忆可以有效避免灾难性知识遗忘问题,这对于处理长视频理解任务至关重要。短期记忆中存储的特征是密集的token,但由于GPU内存和计算成本的限制,将所有从短期记忆中掉落的token按顺序存储到长期记忆缓冲区中是不可行的。此外,我们在视频中观察到显着的时间冗余,其中活动跨越多个帧,视觉变化最小。为此,我们提出了一种合并相邻相似帧的方法,以简化视频特征表示并加速视频编码。该方法将密集标记转换为稀疏记忆,存储在长期记忆中。

对于短期记忆中的每个帧特征 xi\mathbf{x}_i,我们计算它与相邻帧 xi+1\mathbf{x}_{i+1} 的相似度,并选择具有最大相似度的相邻帧对进行合并。计算相似度的方式是通过计算transformer embedding中token 的余弦相似度:

s=1Nj=1N[cos(xi,j,xi+1,j)]s = \frac{1}{N} \sum_{j=1}^{N} \left[ \cos(\mathbf{x}_{i,j}, \mathbf{x}_{i+1,j}) \right]

其中:

  • ss 是两帧之间的余弦相似度。
  • NN 是每帧中 token 的数量。
  • cos(xi,j,xi+1,j)\cos(\mathbf{x}_{i,j}, \mathbf{x}_{i+1,j}) 是帧 xi\mathbf{x}_ixi+1\mathbf{x}_{i+1} 之间 tokenjtokenj 的余弦相似度。

合并操作是通过加权平均来实现的,合并后的特征成为代表这两帧的一个新特征。为了保持长期记忆的有效性,经过合并的特征会被存储在长期记忆中。

image-20241213203326928

我们的目标是在每次合并操作后保留强化学习帧,这也将存储在长期记忆中的丰富信息嵌入其中。 RLR_L 是控制性能和效率之间权衡的超参数。因此,我们通过加权平均贪婪地合并每组具有最高相似度的相邻帧。迭代地进行合并操作,直到每个合并操作的标记计数达到预定义的值集RLR_L,从而得到输出视频特征 vZRL×3×H×W\mathbf{v}' \in \mathbb{Z}^{R_L \times 3 \times H \times W}。上述算法是无参数的,并且可以轻松插入基于帧的视频编码器中。虽然帧相似度计算带来了额外的计算开销,但与减少存储帧所获得的效率相比,可以忽略不计。

Extend positional encoding

由于长期记忆中存储的 token 数量可能超过预训练模型的最大长度位置编码,因此需要对位置编码进行扩展。在MovieChat中,采用了BERT的扩展位置编码方法,使得位置编码能够适应更长的长期记忆。

https://kexue.fm/archives/7947/comment-page-1#comments

3.5 Inference

以前的方法总是使用整个视频的表示来进行理解和问答,这可能无法定位特定时刻,尤其是在长视频中。为此,我们针对长视频理解任务提出了两种推理模式:全局推理和断点推理,如下所示。

Global mode

全局模式定义为对整个视频的理解和问答。在这种情况下,我们仅使用长期记忆 LL 作为视频表示 VV

Breakpoint mode

断点模式被明确定义为理解视频中的特定时刻。由于事件本质上具有连续性,因此我们不仅需要考虑与短期记忆SS中存储的时刻直接相关的信息,而且还需要考虑与长期记忆LL中存储的间接相关的信息。基于此,我们假设当查询特定时刻tt的电影时,视频表示VV应该是LLSS和当前视频帧特征xtx_t的聚合。我们发现,简单地连接这些项目可以产生出色的性能,并为未来的工作留下对其他聚合选择的进一步探索。

随后,视频表示 VV 在被馈送到 LLM OO 之前经过 Q-former 和线性投影层,可以表示为:

A=O(Q,P(V))A = O(Q, P(V))

其中 PP 是从视觉空间到文本空间的投影。 AA代表答案或指令,QQ代表问题。

4. A New Benchmark: MovieChat-1k

以前建立长视频理解基准的工作要么专注于非问答任务(例如,语言基础、通用事件边界检测、用户参与度和电影元数据预测等),要么缺乏长视频理解基准。为了更好地评估MovieChat的性能,我们收集了一个新的长视频理解任务基准MovieChat-1K,它包含来自各种电影和电视剧的1K高质量视频片段,并带有14K手动注释。

如图3a所示,我们收集了15个不同分布的热门类别的视频,包括纪录片、侦探片、动画片等。其中,每个视频都包含多个交替场景,在集合的背景下促成了多样化和动态的视觉叙事。图 3b 中的视觉表示展示了 MovieChat-1K 的剪辑持续时间分布。超过 90% 的视频时长在 10K 到 12K 帧之间,而 14.6% 的视频超出 12K 帧。只有 8.6% 的视频时长低于 10k 帧。

image-20241214172710325

图 3.MovieChat-1K 中的视频文本统计数据。它包含一组不同的类别,从多种问题类型中收集,并包含剪辑持续时间的不同分布。我们对占总数超过 4.5% 的视频类别进行了注释(视频类别的完整列表及其百分比见附录 B)。 “frm”表示视频帧数。

对于每个视频,我们手动设置并为整个视频提供 1 个密集字幕,为全局模式提供 3 个问答对,为断点模式提供 10 个带时间戳的问答对。图3c说明了MovieChat-1K中问题类型的分布。请注意,MovieChat-1K 是专门为长视频理解任务而设计的,大多数问题都是开放式的,只有四分之一被归类为多项选择题,以“Do”、“Does”、“Is”等开头词标记。 ”或“是”。我们还计算所提供的问答对的单词分布。如图4所示,包括常见的物体(人、衣服等)、时间(白天、夜晚等)、场景(室内、室外等)等。更多统计信息可以在附录中找到。

image-20241214173011196

MovieChat-1K 中答案集的词云。

5. Experiments

我们对 MovieChat 和以前的方法进行定量和定性评估。此外,我们还进行消融研究来调查 MovieChat。实验设置和分析可以在附录中找到。

5.1 Quantitative Evalution

Shot video question-answering

我们使用几个广泛使用的开放式数据集:MSVD-QA 、MSRVTTQA 和 ActivityNet-QA 用于短视频问答任务。评估过程是在LLM的帮助下,使用默认的超参数设置。报告准确度和相对分数(范围为 0 到 5)。与之前的方法相比,MovieChat即使不是专门为短视频问答任务设计的,也取得了相当的性能,如表1所示。

image-20241214173741827

表1. GPT-3.5对短视频问答的定量评估。即使 MovieChat 不是专门为短视频问答任务设计的,但它也能实现相当的性能。最好的结果以粗体突出显示,次好的结果用下划线突出显示。

Short video generative performance

继Video-chatgpt之后,我们采用GPT辅助评估在处理后的ActivityNet-QA上对MovieChat和之前的方法之间的文本生成性能进行更全面的比较。评估流程涵盖关键指标(包括信息的正确性、详细方向、上下文理解、时间理解和一致性),并以 1-5 的范围为生成的预测分配相对分数。我们在表2中展示了发电性能评估的结果。 结果揭示了与以前的方法相比,其在所有关键方面的竞争表现。

image-20241214174111949

表 2. GPT-3.5 短视频生成性能的定量评估[46]。 CI代表信息的正确性,DO代表细节导向,CU代表上下文理解,TU代表时间理解,CO代表一致性。最好的结果以粗体突出显示,次好的结果用下划线突出显示。

Long Video question-answering

我们使用我们提出的 MovieChat-1K 评估 MovieChat 的长视频问答性能。我们将 1,000 个视频分为训练集 (800)、测试集 (100)、验证集 (100),并且仅使用测试集进行最终性能评估。我们选择三个最新的基于 LLM 的视频理解模型(例如 Video Chat 、Video LLaMA 和 VideoChatGPT)作为基线。然而,这些方法都无法支持这么长的视频(>10K 帧)。因此,为了适应全局问题中的长度限制,我们从原始视频中统一采样,直到每个模型可以正式支持的最大帧数。对于断点问题,我们在断点前后延长最大帧数的一半(即将断点放置在中心帧)。

为了增强结果的稳健性,我们同时采用 GPT-3.5 和 Claude 作为 LLM 助手,并辅以人类盲评的额外支持。我们观察到以前的LLM辅助评估方法针对视频问答任务生成的准确性和相对分数之间存在差异。然而,仅仅调整LLM的提示并不能有效解决这个问题。因此,在获得LLM辅助评估方法的准确性和分数后,我们进行手动过滤以去除数值不一致的结果,从而提高结果的可靠性。

如表3所示。 与之前的方法相比,MovieChat读取了更多的视频帧。在全局模式和断点模式下,我们的方法在 LLM 助理和人类盲评提供的平均准确度和分数方面保持了性能增益。与基线相比,我们全面评估了 MovieChat 在不同问题类型上的问答性能。结果表明,我们的方法在开放式问题和真假问题上都优于基线。

image-20241214175051093

表 3. 在全局模式下的 MovieChat-1K 测试集上对长视频问答的定量评估,平均值为 GPT-3.5 [46]、Claude [3] 和人类 bling 评分。 HBR 代表人类盲评。最好的结果以粗体突出显示,次好的结果用下划线突出显示。

Long video generative performance

我们比较了 MovieChat 和以前的方法在 MovieChat-1K 上的长视频问答中生成的答案的质量。如表所示。如图 4 所示,根据 GPT-3.5 、Claude和人类评分提供的平均分数,即使视频内容变得更加广泛,我们的方法也能继续生成更高质量的答案。

image-20241214175256869

表 4. 使用 GPT-3.5 [46]、Claude [3] 和人类盲评的平均值对全局模式下的长视频生成性能进行定量评估。 CI代表信息的正确性,DO代表细节导向,CU代表上下文理解,TU代表时间理解,CO代表一致性。最好的结果以粗体显示,次好的结果以下划线显示。

5.2 Ablation Study

Short-term and long-term memory buffers

由于 MovieChat 结合了包括短期记忆和长期记忆的记忆机制,因此有必要评估所提出的记忆机制如何影响性能。表5和表6 提供了 MovieChat 对于长视频问答和生成任务的依赖于记忆的性能,以及 GPT-3.5 [46]、Claude [3] 和人类盲评的平均结果。具有记忆机制的MovieChat明显优于记忆无关的变体,这表明了记忆机制的重要性。

image-20241215143324744

表5.记忆机制(MM)如何影响长视频问答的消融研究。最好的结果以粗体显示。

image-20241215143420834

表 6. 关于记忆机制 (MM) 如何影响长视频生成性能的消融研究。 CI代表信息的正确性,DO代表细节导向,CU代表上下文理解,TU代表时间理解,CO代表一致性。最好的结果以粗体显示。

Hyper-parameter ablations

我们基于 MovieChat-1K 数据集执行一系列超参数消融,以更好地理解 MovieChat。图 5 显示了使用 GPT-3.5 [46]、Claude [3] 和人类盲评的平均结果消除内存缓冲区长度、合并长度和短期初始化时的性能。当所有四个都发生显着变化时,MovieChat 的性能会下降,这显示了我们凭经验选择的超参数的有效性。图 5 表明,从视频中获得的信息随着内存缓冲区长度的增加而扩展,而更精细细节的丢失则随着固定长度的合并而加剧。

此外,使用合并token进行短期初始化优于最后几个token和均匀采样。此外,合并token的长度和内存缓冲区大小对 MovieChat 的性能有综合影响。

image-20241215144700490

图 5. 超参数消融研究长期内存缓冲区 llengthl_{length}、短期内存缓冲区 lshortl_{short}、合并长度 lmergel_{merge} 和短期初始化的长度如何影响 MovieChat 在长视频理解上的性能。我们在长期记忆的消融研究中设置 lshortl_{short} = 16,lmergel_{merge} = 2,在短期记忆的消融研究中设置 llongl_{long} = 256,lmergel_{merge} = 2,在巩固长度和短期初始化的消融研究中设置 lshortl_{short} = 16。

5.3 Case Study

我们对MovieChat对各种开放式长视频(例如卡通电影和电视剧)进行长视频问答进行了广泛的案例研究,包括断点模式(Q#1)和全局模式(Q#2) )。如图6所示,在MovieChat和之前的方法[37,43,83]之间进行评估。对于断点模式下的 Q#1,我们标记提问时的时间戳。对于超过 10K 帧的长视频,MovieChat 仍然能够对有关当前时刻和整个视频内容的问题提供出色的回答,同时减少幻觉。

image-20241216101549960

图 6. 有关 YouTube 剪辑的问答,该剪辑是有关如何烹饪牛排的教程。整个教学过程从腌制牛排开始,然后用平底锅煎,准备配菜,最后装盘。绿色(红色)突出显示正确(错误)答案,黄色表示模型出现幻觉。

6. Limitation

尽管MovieChat在长视频理解方面表现出了令人印象深刻的能力,但它仍处于早期原型并存在一些局限性,包括:1)感知能力有限。 MovieChat 的性能受到预训练的短视频理解模型的阻碍。 2)处理时间不足。 MovieChat 仅提供长视频中事件的持续时间比例的粗略估计,缺乏时间细节的精确性。

7. Conclusion

最后,我们提出了一种集成视频基础模型和大语言模型的创新视频理解系统。通过在我们提出的系统 Transformers 中结合以token为代表的记忆机制,MovieChat 克服了与分析长视频相关的挑战。 MovieChat 在长视频理解方面实现了最先进的性能,超越了仅限于处理少帧视频的现有系统。