查看全课大纲(第 69 / 69 节)
- 1.NLP 的研究领域、应用与学习路径
- 2.自然语言的基本术语
- 3.信息论基础:信息熵与交叉熵
- 4.语言的进化与语义变迁
- 5.主观概率、客观概率与条件概率
- 6.贝叶斯原理与推理
- 7.随机变量:二项式、期望方差与联合概率
- 8.常见概率分布
- 9.辛普森悖论与贝叶斯解题实例
- 10.语言模型:语言概率与词袋模型
- 11.n-gram 语言模型(二元 / 三元 / N-Gram)
- 12.语言模型评价:交叉熵、困惑度与插值
- 13.朴素贝叶斯文本分类:垃圾邮件
- 14.拼写检查
- 15.中文分词:构词法、最大匹配、最优路径与 Jieba
- 16.词表示问题与语义相似度
- 17.TF-IDF 权重处理
- 18.One-Hot 表达与词表示的局限
- 19.Word2Vec 核心思想
- 20.Word2Vec 训练过程
- 21.Skip-gram 模型详解
- 22.词性标注任务与标注方法(规则 + N-Gram)
- 23.EM 算法与混合模型
- 24.高斯混合模型 GMM
- 25.从混合模型到隐马尔可夫模型
- 26.隐马尔可夫模型(HMM)推导与维特比解码
- 27.线性链条件随机场 CRF
- 28.贝叶斯网络与图模型
- 29.隐马尔可夫链与 HMM 推导
- 30.PLSA 主题模型
- 31.LSI 与 SVD 向量表达
- 32.LDA 与狄利克雷分布
- 33.主题模型实验复现(困惑度 / 分类 / 相似度 / 延展)
- 34.上下文无关文法(CFG)与句法分析
- 35.概率上下文无关文法 PCFG
- 36.统计机器翻译:词对齐与翻译模型
- 37.统计机器翻译中的对齐模型与参数估计
- 38.从统计机器翻译到神经机器翻译
- 39.神经元与反向传播速览(指向深度学习课)
- 40.CNN 原理及其在 NLP 中的应用
- 41.循环神经网络的基本原理与 Elman / Jordan 网络
- 42.LSTM:长短期记忆网络的核心思想与分步实现
- 43.Encoder-Decoder 框架
- 44.Seq2Seq 与早期注意力机制
- 45.注意力机制的背景与动机
- 46.注意力模型实现原理与匹配函数
- 47.记忆网络:组成与计算
- 48.注意力机制的应用与历史延展
- 49.Transformer 结构:Encoder-Decoder 栈与 Self-Attention
- 50.Multi-Head Attention、FFNN 与位置编码
- 51.层归一化、损失函数与 Universal Transformer 延展
- 52.预训练范式:从 ELMo 到 BERT
- 53.BERT 与掩码语言模型
- 54.BERT 下游任务微调与 GLUE 口径
- 55.GPT 与自回归语言建模
- 56.GPT-1 到 GPT-4 的演进
- 57.指令微调与 RLHF
- 58.分词器:BPE、WordPiece 与中文词表
- 59.上下文窗口与长文本处理
- 60.能力边界、成本与适用场景
- 61.文本分类实战:从朴素贝叶斯到逻辑回归
- 62.命名实体识别实战
- 63.文本生成与摘要实战
- 64.语义检索与向量库实战
- 65.RAG 知识库问答
- 66.NLP 评估指标:BLEU / ROUGE / BERTScore 与人工评估
- 67.幻觉与事实性问题
- 68.文本与知识结合(知识图谱压缩)
- 69.跨媒体信息检索与未来展望
跨媒体信息检索与未来展望
小象实战讲义 · 自然语言处理
在之前的课程中,我们主要探讨了自然语言内部的建模与理解。然而,现实世界的信息是丰富且多模态的,文本、图像、音频、视频常常交织在一起,共同描述同一个语义概念。本节我们将探讨如何建立不同模态信息(尤其是文本与图像)之间的语义关联,实现跨模态的信息检索(Cross-Modal Information Retrieval, CMIR),并以此为基础,展望自然语言处理与多模态智能融合的未来方向。
💡 核心导读
- 多模态信息的普遍性与挑战:互联网信息爆炸式增长,单一模态的信息越来越少,如何关联不同模态的语义信息是核心挑战。
- 跨模态检索的基本思想:将不同模态(如文本和图像)的特征映射到一个共同的语义空间(Common Space),使得语义相关的跨模态样本在该空间中距离相近。
- 特征提取的演进:从早期的词袋模型(Bag-of-Words)、主题模型(LDA)到深度学习的词向量(Word Embedding)、循环神经网络(RNN),以及从图像的手工特征(SIFT, HOG)到深度卷积网络特征(VGG, ResNet),特征提取技术的进步是跨模态检索发展的基础。
- 未来方向:跨模态检索是通向更复杂多模态任务(如图像问答、场景推理)的基石,最终目标是构建融合语言、视觉与知识的通用智能系统。
多模态信息的普遍性与挑战
在移动互联网时代,信息以爆炸式的速度增长。我们很少见到仅由单一模态(如纯文本或纯图片)构成的信息单元。一个典型的网页或文档,往往是文字、图片、视频、音频等多种模态信息的混合体。例如,在一篇介绍某个城市的词条中,我们会看到描述该城市的文字、城市风景图片、相关的视频片段,甚至可能听到一段代表性的环境声音。这些不同模态的信息都在从各自的角度描述同一个共同的语义对象。
这种多模态信息的并存带来了一个核心问题:如何发现并利用不同模态信息背后共通的语义关联? 这种关联对于提升信息检索的查全率(Recall)至关重要。
考虑一个例子:有两篇文章,第一篇大量出现“笔记本电脑”字样并配有相关照片,第二篇则使用“手提电脑”作为称谓并配有类似照片。如果仅基于文本关键词“手提电脑”进行搜索,可能只能找到第二篇,而遗漏了第一篇。然而,如果建立了文本与图像之间的跨模态关联,系统会发现这两篇文章的图片模态高度相似,从而推断它们可能描述的是同一类物品。这样,在搜索“手提电脑”时,即使第一篇没有出现该关键词,也能因其图像关联而被检索出来,从而提高了查全率。
这个例子揭示了跨模态检索的核心价值:不同模态的信息在语义上是相通的,但它们在单一模态的表征上可能存在差异(如“笔记本电脑”与“手提电脑”)。 通过挖掘跨模态的语义关联,我们可以突破单一模态检索的局限性。
跨模态检索的基本思想:共同语义空间
跨模态检索的核心挑战在于,不同模态(如文本和图像)的原始特征表示天然不同,没有直接的可比性。文本可能被表示为词频向量或词嵌入序列,而图像则被表示为像素矩阵或卷积神经网络提取的特征向量。如何让“一只猫的文字描述”和“猫的图片”在数学上可比?
解决这一问题的基本思想是共同语义空间学习(Common Space Learning)。
其核心步骤如下:
- 特征提取:分别从文本和图像中提取特征。对于文本,可以使用词袋模型、主题模型或深度神经网络(如 RNN/LSTM)得到特征向量。对于图像,可以使用手工特征(如 SIFT, HOG)或深度卷积网络(如 VGG, ResNet)提取特征向量。
- 空间映射:学习两个映射函数,分别将文本特征空间和图像特征空间中的向量,映射到一个新的、维度相同的“共同语义空间”中。
- 优化目标:优化映射函数,使得在原始数据中语义相关(例如,出现在同一文档中)的文本-图像对,在共同语义空间中的距离(如余弦距离或欧氏距离)尽可能小;而不相关的文本-图像对,则距离尽可能大。
我们可以用一个简单的图示来理解这个过程:
文本空间 (Text Space) 图像空间 (Image Space)
[T1] ---------------> [I1] (相关对)
[T2] [I2]
[T3] ---------------> [I3] (相关对)
↓ 映射 ↓
[t1] [i1]
[t2] [i2]
[t3] [i3]
\ /
\ /
\ /
\ /
↓ ↓
共同语义空间 (Common Semantic Space)
[c1] <---> [c1'] (距离近)
[c2] [c2']
[c3] <---> [c3'] (距离近)图示:将文本和图像特征映射到共同语义空间,使相关对距离接近。
图中,T1和I1是同一文档中的文本和图像,语义相关。经过映射后,它们在共同空间中的表示c1和c1'距离很近。而T2和I2来自不同文档,语义不相关,它们在共同空间中的表示c2和c2'距离则较远。
这种方法的优势在于,一旦我们学习到了良好的共同空间映射,就可以实现灵活的跨模态检索:
- 文本查询图像:将查询文本映射到共同空间,然后在该空间中搜索距离最近的图像向量。
- 图像查询文本:将查询图像映射到共同空间,然后搜索距离最近的文本向量。
特征提取技术的演进
跨模态检索的性能很大程度上依赖于文本和图像特征提取的质量。随着机器学习,尤其是深度学习的发展,特征提取技术经历了显著的演进。
图像特征提取
手工特征时代(Pre-Deep Learning):
- LBP (Local Binary Patterns, 2002):用于纹理分类。
- SIFT (Scale-Invariant Feature Transform, 2004):提取图像的局部特征点,对缩放、旋转具有一定不变性。
- HOG (Histogram of Oriented Gradients, 2005):通过计算局部区域的梯度方向直方图来构成特征,常用于行人检测。 这些特征依赖于研究者的先验知识设计,虽然在某些任务上有效,但泛化能力有限。
深度学习特征时代:
- AlexNet (2012):8层卷积网络,在ImageNet竞赛中大幅提升准确率,开启了深度学习在CV领域的浪潮。
- VGG (2014):19层网络,结构简洁,使用连续的3x3卷积核,成为许多任务的基准特征提取器。
- GoogleNet/Inception (2014):引入Inception模块,在增加网络深度的同时控制计算量。
- ResNet (2015):通过残差学习与快捷连接缓解深层网络的退化问题(网络加深后训练误差反而升高),使极深网络更易优化;梯度消失/爆炸在很大程度上已由归一化初始化和中间归一化层处理,并非残差连接直接解决。ImageNet 实验中网络深度可达 152 层。 这些深度卷积神经网络能够自动从海量数据中学习层次化的特征表示,从边缘、纹理到物体部件乃至整个物体,其特征具有更强的语义信息和泛化能力。在跨模态检索中,通常使用这些网络在大型图像数据集(如ImageNet)上预训练的模型来提取图像特征。
文本特征提取
统计模型时代:
- 词袋模型(Bag-of-Words, BoW)与 TF-IDF:将文本表示为词汇表中词的频率或加权频率向量。简单高效,但完全忽略了词序和语义信息。
- 主题模型(如 LDA):假设文档由多个主题混合而成,每个主题是词表上的一个概率分布。LDA可以学习文档-主题和主题-词的分布,得到文档的主题向量表示。它考虑了词的共现信息,能捕捉到一定的语义。
神经网络时代:
- 词嵌入(Word Embedding):如Word2Vec(CBOW/Skip-gram)、GloVe等,将每个词映射为一个低维稠密向量,语义相似的词在向量空间中距离相近。
- 序列模型:使用RNN、LSTM或GRU来处理词序列,能够捕捉文本的上下文和顺序信息,最终得到句子或段落的向量表示。
- 图卷积网络(GCN)用于文本:一种较新的思路是将文本建模为图(节点是词,边由词相似度构建),然后使用图卷积网络来学习文本的图结构表示,可以同时捕捉语义和结构信息。
在早期的跨模态检索工作中,研究者常使用CCA(典型相关性分析)或其核化/深度化变体,来对齐词袋特征和图像手工特征。随着深度学习的普及,主流方法转向使用深度网络(如CNN提图像特征,RNN/LSTM提文本特征)进行端到端的共同空间学习。
今天怎么做(现代做法对照)
上面梳理的手工特征、词袋、早期 CNN/RNN 属于演进过程中的历史脉络,不代表当前线上主流。现代跨模态检索的主流思路已转向:
- 双塔对比学习:文本塔与图像塔分别编码,在共同向量空间里用对比损失拉近相关图文对、推远无关对;检索时可预先建立向量索引,按相似度召回。
- 图文联合预训练:在大规模图文对上做跨模态预训练,得到统一的图文表征,再迁移到检索、视觉问答等下游任务;本节只做历史定位,不展开具体模型结构与参数。
- 与大模型结合:检索到的图文片段作为上下文提供给多模态大模型,再做进一步的理解与生成。
从检索到理解:多模态智能的未来展望
跨模态检索是实现更高级多模态人工智能的基础。一旦我们能够建立文本和图像之间的语义关联,就可以迈向更复杂的任务:
视觉问答(Visual Question Answering, VQA):给定一张图片和一个关于该图片的自然语言问题,系统需要给出正确答案。
- 例如,问题:“图片中有多少人戴着眼镜?” 系统需要先检测图片中的人和眼镜,然后理解“戴”这个关系,并进行计数。
- 这需要深度融合计算机视觉(物体检测、属性识别)和自然语言理解(问题解析、关系推理)的能力。
跨模态推理与场景理解:不仅识别物体,还要理解场景中物体之间的关系、人的活动以及场景的类别。
- 例如,一张图片中有键盘、书籍、领带,文本描述中频繁出现“工作”、“专业”等词;另一张图片中有杯子、瓶子、床,文本描述则与“家庭”、“休闲”相关。系统可以学习到“键盘”、“书籍”与“工作场景”的关联,以及“杯子”、“床”与“家庭场景”的关联,从而实现基于跨模态信息的场景分类或描述生成。
融合知识图谱的多模态智能:将文本、图像与结构化的知识图谱相结合。
- 知识图谱可以提供常识和关系推理能力。例如,知道“笔记本电脑”和“手提电脑”指向同一个实体,知道“工作场所”通常包含“办公桌”、“电脑”等物体。
- 多模态系统可以利用知识图谱来弥合不同模态信息之间的语义鸿沟,进行更深层次的推理。例如,看到一张穿西装打领带的人在办公室的照片,结合知识图谱中“西装”常与“正式场合”、“工作”关联,可以更准确地推断场景。
自然语言处理未来的一个重要发展方向,正是这种多模态、跨领域的语义融合与理解。语言不再是被孤立研究的对象,而是与视觉、听觉、知识等模态紧密交互,共同构成智能系统感知和认知世界的一部分。虽然让机器像人类一样真正理解语言和世界仍然是一个长远的目标,但在跨模态检索、视觉问答等具体任务上,我们已经取得了实质性的进展,并不断朝着通用人工智能(AGI)的愿景迈进。
📝 动手练一练
- 概念辨析:请简述“共同语义空间学习”的基本思想。为什么说它是解决跨模态检索核心挑战的关键?
👉 点击查看参考答案
共同语义空间学习的基本思想是为来自不同模态(如文本和图像)的数据,学习一个共享的、可比较的向量表示空间。具体做法是,通过两个映射函数,分别将文本特征和图像特征从它们各自原始的高维异构空间,投影到一个新的、同维度的语义空间中。在这个共同空间中,优化目标是使语义上相关的跨模态样本对(如描述同一主题的文本和图片)的向量表示距离尽可能近,而不相关的样本对距离尽可能远。
它是解决跨模态检索核心挑战的关键,因为不同模态的数据(如像素矩阵和词序列)其原始特征表示没有直接的可比性。共同语义空间提供了一个“中间桥梁”或“通用语言”,使得我们可以在这个统一的空间中使用标准的距离度量(如余弦相似度)来计算文本和图像之间的相关性,从而实现用文本查询图像或用图像查询文本。
- 简单模拟:假设我们有一个极简的跨模态数据集,包含两个文本-图像对。文本用2维词袋向量表示,图像用2维手工特征表示。我们定义一个简单的线性映射到共同空间(2维),并计算相关对的欧氏距离。请完成以下Python代码,计算映射后相关对的距离。
import numpy as np
# 极简数据:两个相关文本-图像对
# 文本特征 (BoW)
text_features = np.array([[1.0, 0.0], # 文本1
[0.0, 1.0]]) # 文本2
# 图像特征
image_features = np.array([[0.9, 0.1], # 图像1,与文本1相关
[0.2, 0.8]]) # 图像2,与文本2相关
# 定义一个简单的映射:假设我们"学习到"的映射就是乘以一个权重矩阵 W
# 为了简化,我们假设 W_text 和 W_image 都是单位矩阵,即不做变换,直接作为共同空间表示
# 这相当于一个最基础的基线:直接使用原始特征在共同空间比较(通常效果不好,这里仅为演示)
W_text = np.eye(2) # 2x2 单位矩阵
W_image = np.eye(2) # 2x2 单位矩阵
# 映射到共同空间
common_text = text_features.dot(W_text)
common_image = image_features.dot(W_image)
# 计算相关对在共同空间中的欧氏距离
pair1_distance = np.linalg.norm(common_text[0] - common_image[0])
pair2_distance = np.linalg.norm(common_text[1] - common_image[1])
print("共同空间中的文本表示:")
print(common_text)
print("\n共同空间中的图像表示:")
print(common_image)
print(f"\n相关对1(文本1-图像1)的距离:{pair1_distance:.4f}")
print(f"相关对2(文本2-图像2)的距离:{pair2_distance:.4f}")共同空间中的文本表示:
[[1. 0.]
[0. 1.]]
共同空间中的图像表示:
[[0.9 0.1]
[0.2 0.8]]
相关对1(文本1-图像1)的距离:0.1414
相关对2(文本2-图像2)的距离:0.2828👉 点击查看参考答案与解释
代码中,我们假设映射矩阵是单位矩阵,这意味着我们没有进行真正的“学习”,只是将原始特征直接视为共同空间表示。即使如此,由于我们构造的数据中相关对的原始特征已经比较相似(`[1,0]`和`[0.9,0.1]`),所以它们在共同空间中的距离(0.1414和0.2828)也相对较小。在实际模型中,和是通过大量数据训练得到的,目标是让所有相关对的距离远小于不相关对的距离。你可以尝试修改`image_features`,让不相关的对(如文本1和图像2)距离变大,来模拟优化过程。本章小结
本节我们探讨了自然语言处理迈向多模态融合的重要一步——跨媒体信息检索。我们认识到多模态信息关联的价值,学习了通过构建“共同语义空间”来桥接文本与图像等不同模态的基本原理,并回顾了支撑这一技术的特征提取方法的演进历程。最后,我们展望了以跨模态检索为基础,向视觉问答、场景推理乃至融合知识图谱的通用智能系统发展的未来图景。
📋 行动清单
- 理解核心思想:能够清晰阐述“共同语义空间学习”如何解决跨模态数据可比性的问题。
- 对比特征方法:了解文本特征(从BoW、LDA到Word2Vec、RNN)和图像特征(从SIFT、HOG到VGG、ResNet)的演进脉络及其在跨模态任务中的作用。
- 思考应用延伸:基于跨模态检索的思想,尝试构思一个简单的多模态应用场景(例如,用一段音乐搜索相关的风景图片,并说明可能的技术路径)。
—— 小象教研组