原文摘要 · English Abstract
We present VideoCLIP, a contrastive approach to pre-train a unified model for zero-shot video and text understanding, without using any labels on downstream tasks. VideoCLIP trains a transformer for video and text by contrasting temporally overlapping positive video-text pairs with hard negatives from nearest neighbor retrieval. Our experiments on a diverse series of downstream tasks, including sequence-level text-video retrieval, VideoQA, token-level action localization, and action segmentation reveal state-of-the-art performance, surpassing prior work, and in some cases even outperforming supervised approaches. Code is made available at https://github.com/pytorch/fairseq/tree/main/examples/MMPT.
概要
VideoCLIP 借鉴 CLIP 的对比预训练思路,但发现视频与文本天然缺乏精确的时序对齐(人说话与做动作往往不同步),若沿用「严格时间对齐」采样正样本会引入大量低相关配对。为此论文提出两项改动:一是采样时序重叠而非精确对齐的视频-文本片段对作为正样本,覆盖更长时间跨度并提升配对相关性;二是用检索增强训练动态挖掘跨视频的难负样本,替代传统batch内随机负样本。预训练在 HowTo100M 上完成,之后直接零样本迁移到文本-视频检索、视频问答、动作定位、动作分割四类任务,无需下游标签,部分任务甚至超过全监督方法。
「预训练+微调」在NLP和CV中取得成功后,GPT、CLIP等展示了「预训练+零样本迁移」无需下游标签也能取得强性能。但此前视频-文本预训练方法多假设视频与文本片段严格时间对齐,负样本仅来自同batch内随机组合。语音与画面常不同步,严格对齐会把不相关片段当正样本;随机负样本区分度不足,难学到细粒度关联,限制零样本迁移到检索、问答、片段级定位等任务。
关键贡献
- 提出预训练一个统一模型即可零样本迁移到序列级检索、问答、片段级定位与分割等多种视频-文本任务。
- 提出时序重叠(而非精确对齐)的视频-文本片段采样方法,显著提升正样本的语义相关性。
- 提出检索增强预训练:交替进行视频聚类检索与对比训练,动态挖掘跨视频难负样本。
- 在 Youcook2、MSR-VTT、DiDeMo、MSR-VTT QA、COIN、CrossTask 六个数据集上验证零样本与微调性能,多处超越有监督基线。
方法详解(完整做法)
总体思路
VideoCLIP 用一个双塔 Transformer 分别编码视频片段和文本片段,通过对比学习让语义相关的视频-文本对在嵌入空间中靠近、不相关的远离。与直接沿用「精确时间对齐」采样正样本的做法不同,VideoCLIP 先采样一个文本片段,再围绕其时间范围内的某个时刻生长出一个时长可变、与文本时序重叠但不必完全对齐的视频片段,以此获得语义上更相关的正样本对。同时,为了让负样本更具挑战性,模型交替执行「检索」和「训练」:先用当前模型给所有视频算全局特征并建立向量索引,再为每个训练batch检索出彼此邻近的视频簇,簇内不同视频的片段互为难负样本。预训练完成后,模型直接(不做任何微调)迁移到文本-视频检索、视频问答、动作分割、动作步骤定位四类任务。
双塔编码与池化
视频片段先经过冻结的预训练 CNN 视频编码器 提取特征,再用一个可训练 MLP 投影为与词嵌入同维度的视频 token:
视频 token 和文本 token 分别送入两个独立的可训练 Transformer 得到隐状态 ,再对序列做平均池化(而非用 [CLS] token)得到全局特征 ,平均池化是为了让每个 token 的隐状态本身也能承担片段级(动作定位/分割)任务,而不只是servece于全局表征。视频 CNN 冻结让模型能突破单个 CNN 通常仅约 3 秒的时间窗口限制,建模长达约 32 秒的视觉-文本对应关系。
对称 InfoNCE 对比损失
对一个批次 内的视频-文本对,损失是「视频→文本」和「文本→视频」两个方向对比损失之和:
其中视频到文本方向的对比项定义为:
是温度超参数(实验中固定为 1.0), 是与该视频片段时序重叠的正文本嵌入, 是同一批次内其他文本片段隐式构成的负样本;文本到视频方向的损失对称定义。
时序重叠的正样本采样
构造正样本对的具体步骤是:先采样一个文本片段(因为先采样视频片段可能附近没有对应文本),再在文本片段时间范围内随机选一个时间点作为视频片段的中心,最后以该中心生长出时长随机(最长约32秒)的视频片段。这样做的动机是:人说话和做动作通常不同步,严格按时间戳对齐的视频-文本片段实际语义相关性可能很低(例如一句话「我来教你做炒饭」对齐的画面可能只是「说话的人」,而「饭在锅里」的画面稍后才出现却语义更贴切);若把这类低相关对当作正样本、把语义更贴切的片段当作负样本,会削弱对比学习信号。允许时序重叠而非精确对齐后,一个视频(或文本)片段有更大机会被邻近的高相关片段监督,从而学到更细粒度的视频-文本关联。
检索增强预训练
每个 epoch 交替执行检索与训练两个阶段:先用当前模型为每个视频计算全局特征 (对该视频所有片段对的嵌入取平均),并对全部视频建立稠密向量索引;然后从 个最近邻视频中采样出 个视频组成一个「簇」,而不是直接取最近的 个——这是为了让簇内视频彼此都足够接近,而不只是都接近锚点视频 ;最后从各簇采样时序重叠的视频-文本对组成训练批次,簇内不同视频的片段互为难负样本。之所以要跨视频挖掘难负样本,是因为已有工作大多只在同一视频内采样多个片段做对比,而作者发现跨视频挖掘出的负样本明显更具挑战性、更能推动模型学习细粒度区分能力。
零样本迁移到片段级任务
对于动作分割这类需要拒识「Outside」标签(预训练阶段不存在的类别)的任务,模型对每个视频 token 的隐状态 与各标签文本嵌入 做点积,若最大相似度超过阈值 则取相似度最高的标签,否则判为 Outside:
由于零样本设置下没有验证集可调阈值, 直接估计为标签间两两点积的最大值 ,用标签自身的可分性代替人工调参。动作步骤定位任务没有 Outside 类别,直接对各步骤文本嵌入做 softmax 得到分布。
小结
VideoCLIP 的关键不是换了更大的模型或数据,而是重新设计了对比学习的「正样本怎么配」(时序重叠而非精确对齐)与「负样本怎么找」(跨视频检索而非batch内随机),这两点共同决定了零样本迁移的细粒度区分能力。
完整流程。 预训练:从 HowTo100M 采样时序重叠的视频-文本对 → 双塔 Transformer 编码并池化 → 对称 InfoNCE 损失训练;每个 epoch 先用当前模型给所有视频建索引并检索邻近视频簇,再从簇内采样难负样本训练。推理:直接用预训练好的视频/文本编码器计算相似度,按任务需要做检索排序、答案排序、阈值化标签匹配或 softmax 分布预测,全程不使用下游标签。
实验与关键数据
预训练数据为 HowTo100M(约110万条教学视频,平均6.5分钟/条)。零样本评测覆盖 Youcook2、MSR-VTT、DiDeMo(检索)、MSR-VTT QA、COIN(分割)、CrossTask(定位)六个数据集,均不用目标标签,结果显示多数据集上零样本逼近甚至超过全监督基线。
关键数据
影响与局限
VideoCLIP 是把 CLIP 式对比预训练+零样本迁移范式从图像扩展到视频-文本领域的早期代表工作,其「时序重叠采样」与「检索增强负样本挖掘」两个思路被后续视频-语言预训练与长视频理解工作广泛借鉴,也为之后基于大规模视频-文本对比学习的基础模型提供了方法论参照。
局限与不足
论文依赖冻结的预训练 S3D 视频编码器和 BERT 初始化的文本编码器,视频端本身的时序建模能力受限于 CNN 提取器每秒1个token的粗粒度采样,难以刻画更细的动作时序结构;检索增强训练需要每个epoch重建全部视频的稠密索引,带来额外的计算与工程开销,且聚类簇大小(k)、检索邻域大小(2k)等超参数需要经验调优;零样本在 MSR-VTT 上明显弱于 Youcook2,作者指出这是预训练语料(HowTo100M 教学视频的口语转写)与下游数据集(更具描述性的字幕)之间的领域偏移导致,说明方法的零样本泛化能力对预训练数据分布仍较敏感;动作分割中 Outside 阈值靠标签间点积的启发式估计,并非针对具体数据集校准,精度有限。