Embedding(嵌入) 是一种将离散对象(如词语、图像、图结构等)映射为连续稠密向量的技术。其核心目标是通过数学变换,将高维稀疏数据转换为低维稠密向量,同时保留对象间的语义或结构关系。
举个例子:在自然语言处理中,“国王” 和 “王后” 的向量差可能近似于 “男人” 和 “女人” 的向量差,这种向量空间中的线性关系体现了词语间的语义关联。
-
传统表示方法的局限
- one-hot 编码:将每个对象表示为高维 0-1 向量(如词语 “苹果” 对应维度为词典大小的向量,仅苹果位置为 1),但无法体现语义关联(如 “苹果” 和 “香蕉” 的向量距离与 “苹果” 和 “汽车” 相同)。
- 维数灾难:高维数据导致计算复杂度激增,且难以捕捉隐含关系。
-
Embedding 的映射逻辑
- 通过神经网络、矩阵分解等方法训练映射函数,使语义相近的对象在向量空间中距离更近。
- 向量维度通常为 50-512 维,远低于 one-hot 编码的维度(如百万级词典)。
-
词嵌入(Word Embedding)
- 代表模型:
- Word2Vec:通过预测上下文(CBOW)或词语(Skip-gram)训练词向量,如 “国王 - 男人 + 女人≈王后”。
- GloVe:基于全局词共现矩阵分解,结合统计信息和神经网络优势。
- BERT Embedding:融合词嵌入(Token Embedding)、段嵌入(Segment Embedding)和位置嵌入(Position Embedding),用于预训练模型。
- 应用:情感分析、机器翻译、文本分类。
-
句嵌入(Sentence Embedding)
- 如Doc2Vec,将文档映射为向量,保留段落语义。
- 图像嵌入(Image Embedding)
- 通过 CNN 提取图像特征,映射为向量(如 ResNet 提取的特征向量),用于图像检索、相似度匹配。
- 位置嵌入(Position Embedding)
- 在 Transformer 模型中,为图像块添加位置信息,解决二维空间的序列建模问题。
- 图神经网络(GNN)嵌入
- 如DeepWalk、GraphSAGE,将图节点映射为向量,保留拓扑结构和节点关系,用于社交网络分析、推荐系统。
- 知识图谱嵌入(Knowledge Graph Embedding):如 TransE,将实体和关系映射为向量,用于知识推理(如 “北京 - 中国 - 首都” 的关系建模)。
- 推荐系统嵌入:将用户和物品映射为向量,计算相似度(如 YouTube 推荐系统中的 DeepFM 模型)。
- 语义表示能力:向量空间中的距离直接反映对象语义相似度(如 “猫” 和 “狗” 的向量距离近于 “猫” 和 “汽车”)。
- 降维与泛化:压缩高维数据的同时保留关键特征,减少过拟合风险。
- 跨任务迁移:预训练的 Embedding(如 BERT 词向量)可迁移至下游任务,减少训练数据需求。
-
挑战
- 多模态融合:如何将文本、图像、音频等不同模态的 Embedding 统一建模。
- 动态更新:面对实时变化的数据(如新闻、社交网络),Embedding 需动态调整。
- 可解释性:向量维度的物理意义难以直观解释。
-
前沿方向
- 对比学习(Contrastive Learning):通过最大化相似样本向量的接近度、最小化不相似样本的距离优化 Embedding(如 SimCLR 模型)。
- 大规模预训练模型:如 GPT 系列、CLIP,通过海量数据训练通用 Embedding,适配多任务场景。
- 个性化 Embedding:针对用户行为动态生成专属向量(如推荐系统中的个性化物品表示)。
from gensim.models import Word2Vec
import numpy as np
Embedding 技术是连接离散对象与机器学习模型的桥梁,其核心价值在于将抽象语义转化为可计算的向量空间关系。从 NLP 到图网络,从传统模型到预训练大模型,Embedding 的发展始终围绕 “更精准的语义表示” 和 “更高效的迁移能力” 展开,未来将在多模态融合、动态建模等方向持续突破。