二、多模态基础:文本、图像、视频、音频的表示方法,以及多模态对齐的基本概念
在构建视频语言多模态模型之前,我们必须先建立对四种核心模态——文本、图像、视频、音频——在计算系统中的表示方法的清晰认知。这些模态的底层数据结构、信息密度和语义抽象层次截然不同,而多模态对齐(Multimodal Alignment)正是解决“如何让模型理解不同模态之间对应关系”的关键机制。本章将从各模态的向量化表示出发,逐步深入到跨模态对齐的数学本质与工程实现路径。
上图展示了多模态模型训练中最核心的“编码-投影-对齐”三段式架构。所有模态首先通过各自的编码器提取特征,然后经过可学习的投影层映射到统一的向量空间,最后在该空间内通过对比学习或生成式目标实现对齐。下面我们逐一拆解每个环节的具体实现。
2.1 文本的表示方法:从离散符号到稠密向量
核心原理:文本是人类语言的外在符号系统,其本质是离散的、组合性的。计算机无法直接处理字符,必须将其转换为数值向量。现代文本表示经历了从 One-hot 到静态词向量(Word2Vec、GloVe),再到上下文相关的动态向量(BERT、)的演进。在视频语言模型中,文本通常被切分为子词(Subword)单元,例如 BPE(Byte Pair Encoding)或 WordPiece,每个子词对应一个唯一的 ID,再通过嵌入矩阵(Embedding Matrix)映射为稠密向量。
关键操作流程:
- 分词(Tokenization):使用预训练分词器(如 CLIP 的 BPE 词表,大小约 49,152)将句子拆分为 序列。
- 嵌入(Embedding):每个 ID 通过查表得到一个 512 或 768 维的向量。
- 位置编码(Positional Encoding):由于 Transformer 不具备序列顺序感知,需要添加可学习的位置向量或正弦位置编码。
- 上下文编码:经过多层 Transformer Block,每个 的向量融合了上下文信息,输出为
[seq_len, hidden_dim]的特征矩阵。
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 tokens | 32 | 768 | [32, 768] |
| 图像 | 224×224 | 196+1 | 768 | [197, 768] |
| 视频 | 8×224×224 | 784+1 | 768 | [785, 768] |
| 音频 | 10s Mel 谱 | ~1000 | 768 | [1000, 768] |
案例拆解:以 CLIP 模型为例,图像编码器为 ViT-B/32,输入 224×224 图像,输出 197 个 768 维向量。在训练时,图像特征经过平均池化得到 768 维的全局向量,与文本编码器输出的 [CLS] 向量计算余弦相似度。对于视频,VideoCLIP 将 8 帧输入编码为 785 个向量,再通过时间平均池化得到视频级表示。
2.3 音频的表示方法:从波形到频谱特征
核心原理:音频本质是一维的时域信号,但直接处理原始波形(Raw Waveform)需要极高的采样率(如 16kHz),序列过长。工程上通常将音频转换为二维的梅尔频谱图(Mel Spectrogram),将时间-频率信息可视化,从而复用图像编码器架构。另一种方案是使用预训练的音频模型(如 Wav2Vec 2.0、HuBERT)直接提取帧级特征。
操作流程:
- 预加重与分帧:对 16kHz 的音频按 25ms 窗长、10ms 步长分帧,每帧 400 个采样点。
- STFT 变换:对每帧做 512 点 FFT,得到 257 个频率 bin 的幅度谱。
- Mel 滤波:将 257 个 bin 映射到 80 个 Mel 刻度,得到 80 维特征。
- 对数压缩:取 log 后得到梅尔频谱图,形状为
[时间帧数, 80]。10 秒音频约产生 1000 帧。
实战场景:在视频-音频对齐任务中,我们通常将音频频谱图视为“图像”,使用 ViT 编码。例如,将 1000×80 的频谱图划分为 10×8 的 Patch,得到 100 个 。这种做法的优势是可以复用图像预训练权重,但需要将位置编码从 2D 改为 1D 时间轴。
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%。
常见误区与复盘:
- 误区一:认为对齐就是简单的向量拼接。实际上,拼接前必须确保各模态特征已投影到同一维度空间,否则模型会偏向高维模态。
- 误区二:忽略模态间信息量差异。视频包含大量冗余帧,直接平均池化会稀释关键信息。应使用注意力池化或帧选择机制。
- 误区三:在训练初期就解冻所有编码器。建议先冻结预训练编码器,仅训练投影层,待损失稳定后再逐步解冻。
总结复盘:多模态表示与对齐是视频语言模型的地基。文本通过子词嵌入获得语义,图像和视频通过 Patch/Tube 嵌入获得空间与时间结构,音频通过频谱图获得频率特征。对齐的本质是在共享空间中最小化异构数据间的语义距离。工程实现上,对比学习是最简单有效的起点,而生成式对齐更适合需要细粒度理解的任务。下一阶段,我们将探讨如何将这些基础组件组合成完整的视频语言模型架构。