Embedding 特征在传统机器学习中如何使用?
简化版
Embedding 将高基数离散 ID 映射成可学习稠密向量,通过下游任务梯度学习相似性。它比 one-hot 节省输入维度并能表达邻近关系,但对冷启动、稀有 ID、表大小和时间泄漏必须单独处理。
详细版
-
词表映射和 unknown ID 是模型契约的一部分。
-
表参数量等于 vocabulary_size×embedding_dim。
-
稀有 ID 梯度少,向量估计方差高。
-
多值特征需用 mean/sum/attention 聚合并处理长度。
-
预训练 embedding 也要按目标任务和时间切分验证。
完整版教学
一、Embedding 是可训练查表,不是天然语义
one-hot 经过线性层等价于选取权重矩阵的一行,Embedding 把这一步直接实现成索引查表。
相似性来自共同优化目标,而非 ID 数字接近。
向量维度控制容量:太小表达不足,太大增加内存并容易记忆;没有只由词表大小决定的最优公式。
二、底层机制与公式
E in R^(V x D)
e_i=E[id_i]
params=V*D
三、带数字的推演
词表 100 万、维度 64、FP32 表占 1,000,000×64×4≈256MB;换 FP16 约 128MB。
若线上每请求查 20 个 ID,访存和分布式查表也会成为成本。
四、方案对比
| 方案/对象 | 核心特点 | 代价或边界 |
|---|---|---|
| One-hot | 无训练相似性假设 | 高维稀疏 |
| 随机初始化 Embedding | 随任务联合学习 | 冷 ID 不稳 |
| 预训练 Embedding | 利用外部共现 | 可能域偏移/泄漏 |
五、执行流程
训练期建词表 -> 保留 PAD/UNK -> 查表并聚合 -> 下游损失反传
-> 保存词表与表权重 -> 线上同映射查找 -> 监控 OOV
六、边界条件与工程代价
推荐系统若用未来交互预训练 embedding,再评估过去时点,会产生时间穿越;预训练语料也必须遵守 cutoff。
新 ID 全落到同一个 UNK 会丢失差异,可结合元数据、哈希桶或冷启动模型,但要验证碰撞和偏差。
记忆钩子:记住 embedding 是“用 ID 取一行、靠任务梯度塑造空间”。
七、常见误区与追问
-
误区:ID 数字相近会得到相似向量。 ID 只是行索引,相似性由训练信号决定。
-
追问:维度怎么选? 按验证收益、表内存和稀有度做消融。
-
误区:Embedding 总比 one-hot 好。 小词表线性任务中 one-hot 更透明且足够。
-
追问:OOV 怎么办? 固定 UNK/哈希/元数据回退并保持映射版本。
-
追问:表为何可能成为瓶颈? 参数和访问以 V×D 增长,常受内存带宽限制。
八、加强记忆
记住 embedding 是“用 ID 取一行、靠任务梯度塑造空间”。
回答时同时算 V×D 内存,并补齐稀有 ID 与线上 OOV。