核心要点

  • Embedding 层本质是可学习的查找表,把离散 id(词、类别)映射为低维稠密向量。

  • 相比 one-hot,稠密向量维度低、不稀疏,且能表达「语义相似」的距离关系。

  • 向量是模型参数,随反向传播一起训练,语义相近的 id 会被学到相近的向量。

  • 广泛用于 NLP 词嵌入、推荐系统的用户/物品 id、以及任意高基数类别特征。

标准回答

它在做什么

Embedding 层把离散的整数 id(如词表索引、用户 id、类别)映射成固定维度的稠密实数向量。实现上是一张形状为 [词表大小, 嵌入维度] 的可学习权重矩阵,前向时按 id 取出对应行——所以它等价于一次「查表」,也等价于 one-hot 向量乘以该矩阵。

为什么需要它

直接用 one-hot 表示离散变量维度极高且稀疏,向量间彼此正交、无法表达相似性。Embedding 把它压缩到低维稠密空间,既省参数又能让语义/行为相近的 id(如「猫」和「狗」、相似商品)落在相近位置,便于下游网络学习。

怎么学到的

嵌入矩阵就是模型参数,随整个网络一起反向传播更新。训练中共现、相似上下文的 id 会被推到相近向量,从而自动学出有语义结构的表示。也可以加载预训练词向量(如 Word2Vec)做初始化。

常见误区

⚠️ 常见踩坑

以为 Embedding 是固定不变的查表——它是可训练参数,会随任务一起优化;也别把它和 one-hot 等同,二者表达能力差别很大。

追问

追问 1Embedding 维度该怎么选?

维度是超参数,需在表达能力与过拟合/算力间权衡。词表越大、关系越复杂可用更高维(几百维);高基数但数据有限的类别特征常用较小维度。经验法则之一是取约为类别数的四次方根量级,最终以验证集效果调优。

追问 2Embedding 和全连接层有什么关系?

用 one-hot 输入接一个无偏置全连接层,数学上等价于 Embedding 查表:取出的那一行就是对应权重列。区别在实现效率——Embedding 直接按 id 索引,避免了与稀疏 one-hot 的大矩阵乘法,速度和内存都更优。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。