第15章 多模态学习
多模态学习(Multimodal Learning)是当前深度学习最活跃的前沿方向之一。它研究的核心问题是:如何让模型像人类一样,同时处理并理解来自不同来源的信息(比如看到图片、听到声音、读到文字)。
在过去,模型通常只能处理单一类型的数据(如CNN处理图像,RNN处理文本)。而本章介绍的多模态学习,旨在打破这些"信息孤岛",实现"看图说话""语音翻译""视频理解"等复杂的跨领域任务。
本章将从多模态的定义出发,拆解其核心挑战、主流融合方法,以及在情感分析、图文生成等领域的经典应用,特别适合研究多模态情感分析方向的同学重点研读。
15.1 什么是"模态"与"多模态"
在进入技术细节前,我们需要先明确两个概念。
15.1.1 模态(Modality)
模态指的是信息的存在形式或载体。生活中最常见的模态包括:
- 视觉模态:图片、视频、动态手势。
- 语言模态:文字、单词、句子。
- 听觉模态:语音、音乐、环境声。
- 其他模态:触觉(压力)、嗅觉、生理信号(心率)等。
15.1.2 多模态学习的定义
多模态学习 就是让人工智能模型处理两种或两种以上模态的数据,并建立它们之间的关联。
生活中的例子 :
当你看一部电影时,你既接收了画面(视觉),又听到了台词和背景音乐(听觉)。你之所以能被感动,是因为你将"悲伤的画面"、"哽咽的台词"和"低沉的音乐"融合在了一起进行理解。这就是人类的多模态能力。
15.1.3 核心任务类型
多模态学习主要解决三类任务,难度由低到高:
- 模态转换(Translation) :从一种模态转换为另一种。例如:图像描述 (图→文)、文本生成图像 (文→图)、语音识别(声→文)。
- 模态对齐(Alignment):找到不同模态之间的对应关系。例如:给视频中的某句话配上对应的口型、给图片中的猫打上"猫"的标签。
- 模态融合(Fusion) :将多种模态的信息结合起来,完成一个任务。例如:多模态情感分析(结合视频画面中的表情、语音中的语气、文字内容,判断说话人的真实情绪)。
15.2 多模态学习的核心挑战
多模态学习之所以难,是因为不同模态的数据在本质上有着巨大的差异,这被称为**"异质性鸿沟"**。
15.2.1 异质性(Heterogeneity)
这是最根本的挑战。
- 文本是离散的、符号化的(由单词组成,有明确的语义)。
- 图像是连续的、像素化的(由数值组成,语义需要被提取)。
- 语音 是时序的、波形的。
问题:如何把一张猫的图片和"猫"这个单词放在同一个数学空间里进行比较?它们的维度、分布完全不同。
15.2.2 缺失性(Missing Modality)
在实际场景中,数据往往是不完整的。
- 例如:在社交媒体上,有的帖子只有文字,有的只有图片,有的图文并茂。
- 模型需要具备在部分模态缺失的情况下,依然能完成任务的能力。
15.2.3 语义鸿沟(Semantic Gap)
即"看得见"与"说得清"之间的差距。
- 模型可能能识别出图片里有"一个人在皱眉"(视觉特征),但很难将其准确映射到"愤怒"或"困惑"(高级语义),尤其是在结合语境时。
15.3 多模态融合的三种主流策略
融合(Fusion)是多模态学习的灵魂。根据融合发生的阶段不同,我们可以将其分为三类。你可以把这个过程想象成做一道菜(最终任务),食材就是不同的模态。
15.3.1 早期融合(Early Fusion)
- 别名:特征级融合(Feature-level Fusion)。
- 做法 :在数据处理的最底层 ,就把不同模态的特征拼接在一起。
- 例子:把图像的CNN特征向量和文本的Word2Vec向量直接拼接,输入到一个分类器里。
- 优点:模型结构简单,能保留底层的细粒度关联。
- 缺点 :容易造成维度灾难,且不同模态的特征分布差异大,直接拼接会导致模型难以训练(就像把生肉和生蔬菜直接搅在一起煮)。
15.3.2 晚期融合(Late Fusion)
- 别名:决策级融合(Decision-level Fusion)。
- 做法 :不同的模态各自训练独立的模型 ,最后只融合它们的预测结果 。
- 例子:训练一个图像模型预测情绪,训练一个文本模型预测情绪,最后用投票法(比如图像说开心,文本说难过,听谁的?)决定最终结果。
- 优点:训练简单,各模态之间互不干扰,鲁棒性强。
- 缺点:丢失了模态间的深层关联信息。模型只看到了最终结论,没看到过程,无法捕捉"图片和文字互相印证"的细节。
15.3.3 中期融合(Mid-level Fusion)
- 别名:模型级融合(Model-level Fusion)。
- 做法 :这是目前最主流的方法。在模型的中间层进行交互和融合。它结合了早期和晚期融合的优点。
- 核心思想:先让每个模态通过自己的编码器(如CNN处理图像,Transformer处理文本)提取高级特征,然后在这个"共同语言"的层面进行融合。
- 典型方法 :注意力机制 (Attention)。
- 工作原理:文本可以"关注"图片中重要的区域,图片也可以"关注"文本中的关键词。例如,文本提到"红色的车",模型会自动聚焦图片中的红色汽车区域。
15.4 经典多模态模型架构
针对不同的任务,研究者设计了不同的模型。这里介绍两种奠定了现代多模态基础的架构。
15.4.1 视觉问答模型(VQA):双编码器架构
任务描述 :给定一张图片和一个关于图片的问题,模型给出答案(如:图里有几只狗?)。
核心架构:
- 图像编码器:通常用CNN或ViT提取图像特征。
- 文本编码器:通常用RNN或Transformer提取问题特征。
- 融合层 :将两者的特征结合(常用双线性池化 或注意力 ),输入到分类器中预测答案。
意义:这是最基础的多模态理解架构,证明了跨模态交互的可行性。
15.4.2 CLIP模型:对比学习架构(图文预训练)
任务描述 :OpenAI提出的CLIP(Contrastive Language-Image Pre-training)是近年来的革命性模型。
核心思想 :"图找文,文找图"。
- 训练方式:给模型喂一堆(图片,文本)对。
- 对比学习:模型学会让"猫的图片"和"这是一只猫"的文本在向量空间里距离很近;同时让"猫的图片"和"这是一条狗"的文本距离很远。
- 优势 :这种模型在训练时不需要精细的标注(不需要标框、标类别),只需要互联网上的图文对即可。它能实现零样本学习(Zero-shot Learning),即训练时没见过的任务,直接也能做。
15.4.3 扩散模型与大语言模型结合(AIGC方向)
代表 :DALL·E, MidJourney。
核心:将大语言模型(LLM)作为文本编码器,将扩散模型作为图像生成器。LLM负责理解复杂的文本指令(如"一只戴着墨镜的猫在火星上喝咖啡"),将其编码为精准的特征,再交给扩散模型生成图像。
15.5 多模态情感分析(重点应用)
对于研究多模态情感分析 的同学,这一节是核心。传统的情感分析只看文字,而多模态情感分析结合了文本、语音(声学)、视觉(表情/姿态),能更准确地判断人类的真实情感。
15.5.1 情感的跨模态特性
人类的情感表达是多通道的:
- 文字:表达逻辑内容("我很开心")。
- 语音:表达情绪强度(语气是高昂还是低沉)。
- 视觉:表达真实态度(微笑可能是假的,微表情才是真的)。
- 挑战 :模态冲突。比如一个人笑着说"我没事",模型需要判断出他其实"有事"。
15.5.2 常用数据集
- CMU-MOSEI:目前最常用的多模态情感分析数据集,包含视频、音频、文本,标注了情绪类别和情感分值。
- IEMOCAP:包含双人对话的情感数据集,适合研究对话中的情感交互。
15.5.3 主流方法
目前的SOTA(State-of-the-art)方法通常基于 Transformer + 注意力融合:
- 单模态特征提取:用CNN提取人脸表情特征,用LSTM提取语音韵律特征,用BERT提取文本语义特征。
- 跨模态注意力:使用多头注意力机制,让文本特征去"听"语音的重点,让视觉特征去"看"文本的语境。
- 自监督学习:借鉴CLIP的思路,先在大量无标注视频上进行预训练,再在小样本的情感数据集上微调。
15.6 总结和深入阅读
多模态学习是通向**通用人工智能(AGI)**的必经之路,因为真实世界的信息本身就是多模态的。
核心知识点回顾
- 模态的异质性 是核心难点,解决思路是寻找共同的表示空间。
- 融合策略 分为早、中、晚三期,基于注意力的中期融合是目前的主流。
- 预训练是关键,像CLIP这样的图文预训练模型,极大地降低了下游任务的标注成本。
- 多模态情感分析 的关键在于处理模态互补 和模态冲突。
学习建议
对于本科生和研究生,建议按照以下路径学习:
- 复现经典 :先尝试用PyTorch实现一个简单的早期融合模型(拼接图像和文本特征做分类),理解数据处理的流程。
- 进阶实践 :使用预训练模型(如利用HuggingFace的
transformers库调用CLIP或BLIP模型),跑通一个图文检索或图像描述的Demo。 - 聚焦研究 :如果是研究情感分析,建议重点阅读CMU-MOSEI数据集的Baseline论文,尝试使用Transformer-XL 或跨模态注意力解决长视频的情感依赖问题。
深入阅读资料
- 综述论文:《Multimodal Machine Learning: A Survey and Taxonomy》(2017),这是该领域的开山综述,定义了基本术语。
- 经典论文 :
- CLIP:《Learning Transferable Visual Models From Natural Language Supervision》
- BLIP:《BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation》
- 工具库 :
- HuggingFace Transformers:提供了CLIP、ViLT、BLIP等几乎所有主流多模态模型的现成接口。
- TorchMultimodal:Meta官方推出的多模态库,适合更底层的研究。