二、多模态基础:文本、图像、视频、音频的表示方法,以及多模态对齐的基本概念

在构建视频语言多模态模型之前,我们必须先建立对四种核心模态——文本、图像、视频、音频——在计算系统中的表示方法的清晰认知。这些模态的底层数据结构、信息密度和语义抽象层次截然不同,而多模态对齐(Multimodal Alignment)正是解决“如何让模型理解不同模态之间对应关系”的关键机制。本章将从各模态的向量化表示出发,逐步深入到跨模态对齐的数学本质与工程实现路径。

多模态表示与对齐核心框架 文本 (Text) Embedding 图像 (Image) Patch Embedding 视频 (Video) 时空 Tube Embedding 音频 (Audio) Spectrogram / Wave2Vec 单模态编码器 (Text Encoder / ViT / Video Encoder / Audio Encoder) 输出: 各模态独立的特征序列 (Sequence of Vectors) 可学习的线性投影层 (Linear Projection) 将不同模态特征映射到同一维度空间 (如 D=1024) 共享语义空间 (Shared Semantic Space) 对比学习 (CLIP/VideoCLIP) · 生成式对齐 (Q-Former) · 时序对齐 (CTC)

上图展示了多模态模型训练中最核心的“编码-投影-对齐”三段式架构。所有模态首先通过各自的编码器提取特征,然后经过可学习的投影层映射到统一的向量空间,最后在该空间内通过对比学习或生成式目标实现对齐。下面我们逐一拆解每个环节的具体实现。

2.1 文本的表示方法:从离散符号到稠密向量

核心原理:文本是人类语言的外在符号系统,其本质是离散的、组合性的。计算机无法直接处理字符,必须将其转换为数值向量。现代文本表示经历了从 One-hot 到静态词向量(Word2Vec、GloVe),再到上下文相关的动态向量(BERT、)的演进。在视频语言模型中,文本通常被切分为子词(Subword)单元,例如 BPE(Byte Pair Encoding)或 WordPiece,每个子词对应一个唯一的 ID,再通过嵌入矩阵(Embedding Matrix)映射为稠密向量。

关键操作流程:

  1. 分词(Tokenization):使用预训练分词器(如 CLIP 的 BPE 词表,大小约 49,152)将句子拆分为 序列。
  2. 嵌入(Embedding):每个 ID 通过查表得到一个 512 或 768 维的向量。
  3. 位置编码(Positional Encoding):由于 Transformer 不具备序列顺序感知,需要添加可学习的位置向量或正弦位置编码。
  4. 上下文编码:经过多层 Transformer Block,每个 的向量融合了上下文信息,输出为 [seq_len, hidden_dim] 的特征矩阵。
工程要点:在视频语言模型中,文本编码器通常直接复用 CLIP 或 T5 的预训练权重,并在训练初期冻结(Freeze)以节省显存。文本序列长度一般截断至 32-77 个 ,因为视频描述通常较短,过长的序列会引入噪声并增加计算量。

2.2 图像与视频的表示方法:从像素到 Patch 与 Tube

核心原理:图像是二维的像素网格,视频则是三维的时空体素(Voxel)。ViT(Vision Transformer)将图像划分为固定大小的 Patch(如 16×16 像素),每个 Patch 展平后通过线性投影得到向量,再添加位置编码。对于视频,ViViT 或 TimeSformer 等模型将视频帧划分为时空 Tube(如 16×16×2 帧),同时编码空间与时间维度。

判断方法与操作流程:

  • 图像输入:将 224×224 的图像划分为 196 个 16×16 的 Patch,每个 Patch 映射为 768 维向量,加上 [CLS] 标记用于全局分类。
  • 视频输入:采样 T=8 帧,每帧 224×224,划分为 Tube 后得到 [T/2, H/16, W/16] 个 。例如 8 帧、224×224 的视频,若 Tube 大小为 2 帧,则 数量为 4×14×14=784 个。
  • 3D 位置编码:需要同时编码帧索引和空间位置,通常使用可学习的 3D 位置嵌入。
模态输入尺寸 数量单 维度编码器输出形状
文本32 tokens32768[32, 768]
图像224×224196+1768[197, 768]
视频8×224×224784+1768[785, 768]
音频10s Mel 谱~1000768[1000, 768]

案例拆解:以 CLIP 模型为例,图像编码器为 ViT-B/32,输入 224×224 图像,输出 197 个 768 维向量。在训练时,图像特征经过平均池化得到 768 维的全局向量,与文本编码器输出的 [CLS] 向量计算余弦相似度。对于视频,VideoCLIP 将 8 帧输入编码为 785 个向量,再通过时间平均池化得到视频级表示。

常见误区:初学者常将视频直接逐帧送入图像编码器,然后对帧特征取平均。这种方法忽略了帧间时序关系,导致模型无法区分“人跑步”和“人走路”。正确做法是使用 3D 卷积或时空 Transformer 显式建模时序依赖。

2.3 音频的表示方法:从波形到频谱特征

核心原理:音频本质是一维的时域信号,但直接处理原始波形(Raw Waveform)需要极高的采样率(如 16kHz),序列过长。工程上通常将音频转换为二维的梅尔频谱图(Mel Spectrogram),将时间-频率信息可视化,从而复用图像编码器架构。另一种方案是使用预训练的音频模型(如 Wav2Vec 2.0、HuBERT)直接提取帧级特征。

操作流程:

  1. 预加重与分帧:对 16kHz 的音频按 25ms 窗长、10ms 步长分帧,每帧 400 个采样点。
  2. STFT 变换:对每帧做 512 点 FFT,得到 257 个频率 bin 的幅度谱。
  3. Mel 滤波:将 257 个 bin 映射到 80 个 Mel 刻度,得到 80 维特征。
  4. 对数压缩:取 log 后得到梅尔频谱图,形状为 [时间帧数, 80]。10 秒音频约产生 1000 帧。

实战场景:在视频-音频对齐任务中,我们通常将音频频谱图视为“图像”,使用 ViT 编码。例如,将 1000×80 的频谱图划分为 10×8 的 Patch,得到 100 个 。这种做法的优势是可以复用图像预训练权重,但需要将位置编码从 2D 改为 1D 时间轴。

经验提醒:音频特征对噪声敏感,训练前应进行 VAD(语音活动检测)或降噪预处理。此外,音频的采样率、声道数必须统一,否则会导致特征维度不一致。

2.4 多模态对齐的基本概念与实现方法

核心原理:多模态对齐的目标是让不同模态的表示在共享语义空间中距离相近。例如,“狗叫”的音频片段、“一只狗在叫”的文本描述、“狗张嘴吠”的视频帧,这三者的向量在空间中应彼此靠近。对齐的数学基础是度量学习(Metric Learning),常用损失函数为 InfoNCE(对比学习)或均方误差(MSE)。

三种主流对齐范式:

  • 对比式对齐(Contrastive):以 CLIP 为代表,通过拉近正样本对(匹配的图文)距离、推远负样本对(不匹配的图文)距离来训练。损失函数为 L = -log(exp(sim(q,k+)/τ) / Σ exp(sim(q,k)/τ))。
  • 生成式对齐(Generative):以 BLIP-2 的 Q-Former 为代表,通过可学习的 Query 向量从视觉特征中“查询”信息,再输入 LLM 生成文本。对齐发生在 Query 与视觉特征的交叉注意力层。
  • 时序对齐(Temporal):用于视频-文本对齐,如 VideoCLIP 使用帧级对比损失,确保每一帧与对应的文本描述对齐。

案例拆解(小型场景化说明):假设我们有一个包含 100 个视频-文本对的数据集。每个视频编码为 785 个 ,文本编码为 32 个 。在对比训练中,我们取一个 batch 大小为 32,则得到 32 个视频特征和 32 个文本特征。计算 32×32 的相似度矩阵,对角线元素为正样本,其余为负样本。InfoNCE 损失鼓励对角线元素远大于非对角线元素。训练 10 个 epoch 后,模型在视频-文本检索任务上的 Recall@1 从 12% 提升至 45%。

关键参数与调优:温度系数 τ 控制相似度分布的锐利程度。τ 过小(如 0.01)会导致梯度爆炸,过大(如 1.0)则模型难以区分正负样本。实践中 τ 通常初始化为 0.07,并作为可学习参数。此外,负样本数量(batch size)直接影响对齐效果,建议在显存允许范围内尽量增大 batch size。

常见误区与复盘:

  • 误区一:认为对齐就是简单的向量拼接。实际上,拼接前必须确保各模态特征已投影到同一维度空间,否则模型会偏向高维模态。
  • 误区二:忽略模态间信息量差异。视频包含大量冗余帧,直接平均池化会稀释关键信息。应使用注意力池化或帧选择机制。
  • 误区三:在训练初期就解冻所有编码器。建议先冻结预训练编码器,仅训练投影层,待损失稳定后再逐步解冻。

总结复盘:多模态表示与对齐是视频语言模型的地基。文本通过子词嵌入获得语义,图像和视频通过 Patch/Tube 嵌入获得空间与时间结构,音频通过频谱图获得频率特征。对齐的本质是在共享空间中最小化异构数据间的语义距离。工程实现上,对比学习是最简单有效的起点,而生成式对齐更适合需要细粒度理解的任务。下一阶段,我们将探讨如何将这些基础组件组合成完整的视频语言模型架构。