1. 嵌入的定义与本质
1.1 什么是嵌入?
嵌入(Embedding) 是一种将离散的、高维的、符号化数据(如单词、图像、用户ID等)映射到低维连续向量空间的技术。这些向量(称为嵌入向量)能够捕捉数据的语义、结构或特征,使得机器学习模型可以高效处理和理解数据。
形式化定义:
给定一个离散数据集合 VVV(如词汇表、图像集),嵌入是一个函数 f:V→Rdf: V \to \mathbb{R}^df:V→Rd,将每个数据点 x∈Vx \in Vx∈V 映射到一个 ddd 维实数向量 f(x)f(x)f(x),其中 ddd 通常远小于原始数据的维度。
1.2 通俗比喻
想象一个巨大的“概念宇宙”,每个单词、图像或用户是一颗星星,彼此之间的距离反映它们的相似性。嵌入就像一个“维度压缩器”,将这些星星从高维的、稀疏的宇宙投影到一个低维的、稠密的平面(比如 2D 或 300D)。在这个平面中,相似的事物(如“猫”和“狗”)靠得很近,而不相关的事物(如“猫”和“桌子”)距离较远。计算机通过这些向量间的几何关系(距离、角度)来理解和计算数据的语义。
1.3 嵌入的核心目标
- 降维:将高维稀疏表示(如 one-hot 编码)转化为低维稠密向量,降低计算和存储成本。
- 语义捕捉:嵌入向量在向量空间中的位置和关系反映数据的语义或特征。
- 泛化能力:通过嵌入,模型可以处理未见过的数据(例如新词、未标记图像)。
- 任务支持:嵌入向量作为特征输入,支持分类、回归、生成等任务。
2. 嵌入的数学与理论基础
为了更深入理解嵌入,我们需要从数学和理论角度剖析其工作原理。
2.1 离散表示的局限性
以自然语言处理(NLP)为例,假设有一个词汇表 V={ w1,w2,…,w∣V∣}V = \{w_1, w_2, \dots, w_{|V|}\}V={ w1,w2,…,w∣V∣},最简单的表示方法是 one-hot 编码:
- 每个词 wiw_iwi 用一个 ∣V∣|V|∣V∣ 维向量表示,只有第 iii 位为 1,其余为 0。
- 例如,词汇表 V={
苹果,橙子,香蕉}V = \{\text{苹果}, \text{橙子}, \text{香蕉}\}V={
苹果,橙子,香蕉},则:
- 苹果 = [1,0,0][1, 0, 0][1,0,0]
- 橙子 = [0,1,0][0, 1, 0][0,1,0]
- 香蕉 = [0,0,1][0, 0, 1][0,0,1]
问题:
- 高维稀疏:当 ∣V∣|V|∣V∣ 很大(如 10 万),向量维度极高,存储和计算成本巨大。
- 语义缺失:one-hot 向量之间正交(内积为 0),无法反映“苹果”和“橙子”都是水果的相似性。
- 泛化能力差:无法处理未见词(Out-Of-Vocabulary, OOV)。
2.2 嵌入的数学表达
嵌入通过一个可学习的映射函数将离散数据转化为低维向量:
Embedding(x)=W⋅x\text{Embedding}(x) = W \cdot xEmbedding(x)=W⋅x
其中:
- x∈{ 0,1}∣V∣x \in \{0, 1\}^{|V|}x∈{ 0,1}∣V∣ 是输入数据的 one-hot 向量。
- W∈R∣V∣×dW \in \mathbb{R}^{|V| \times d}W∈R∣

最低0.47元/天 解锁文章
1724

被折叠的 条评论
为什么被折叠?



