ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

【机器学习】(32)—— Embedding 串讲

2026/8/4 23:34:00 拓冰建站 浏览量
【机器学习】(32)—— Embedding 串讲 文章目录1. 前面几篇分别讲了什么2. 表格场景3. 多维空间4. 向量来源5. 提交前检查6. 常见误区7. 和前面篇章关系8. 术语速查9. 延伸阅读10. 小结与下一主题摘要第 2931 篇分别讲了为何需要 Embedding、嵌入空间里距离意味着什么以及向量可以从哪些途径得到。本文不引入新公式把这三篇串成可对照的备忘什么时候上 Embedding、表格里怎么接、词表与维数注意什么并预告下一主题——语言模型与更长上下文。1. 前面几篇分别讲了什么第 17 篇的 One-Hot 在词表较小时很合适。品牌、车型、用户 ID 这类水平很多时稀疏向量会把后续全连接撑得很肥也几乎表达不了「谁和谁更像」。Embedding 相关三篇补的就是这块。篇次大概讲了什么29One-Hot 在高基数下的问题Embedding 查表与参数量30嵌入空间、距离 / 余弦、任务依赖静态嵌入及局限31降维、联合训练、预训练静态与上下文嵌入的差别贯穿示例仍是汽车品牌走离散 ID重量与马力走数值特征目标可以是油耗回归或是否高效。换了表示方式划分、防泄漏和验证集选参的要求没有换。若刚读完 2931本文可当复习若手头正好有高基数类别要进模型也可先对照第 5 节的核对项再决定 One-Hot 还是 Embedding。2. 表格场景高基数类别接到预测模型时一条常见路径是切分 train / val / test → 只在训练集上建词表含 UNK 策略 → 品牌 ID → Embedding(d 维) → 与标准化后的数值特征拼接 → MLP / 线性层 → 油耗相关目标 → 用验证集选 d、正则、是否早停与第 28 篇神经网络串讲相同的部分先切分再fit测试集少碰类别不平衡时别只看准确率。Embedding 多出来的部分要决定词表与UNK、嵌入维d dd、以及多个类别字段时各用一张表再拼接。水平很少时继续 One-Hot 往往更简单不必为了「用上 Embedding」而用。多个类别字段时品牌、车身类型、销售区域等常见做法是各自一张嵌入表查出向量后与数值特征一起拼接。不必强行把所有离散字段塞进同一张超大表字段语义不同分开学通常更清楚也便于对某一字段单独调d dd。One-HotEmbedding向量长度V VVd ≪ V d\ll Vd≪V相似性输入里几乎看不出训练后可反映远近更适合词表小词表大、且有监督信号主要负担后续V × N V\times NV×N权重表V × d V\times dV×d 后续d × N d\times Nd×N3. 多维空间第 30 篇的核心可以压成几条每个类别是d dd维空间中的一个点欧氏距离或余弦刻画相对相似没有跨任务通用的绝对阈值真实轴通常不能按「甜度」「价位」直接命名教学用的 1D/2D 图只为直觉嵌入依赖任务油耗任务下的近邻不必等于「是否家用」任务下的近邻静态词嵌入一词一点多义场景会不够用上下文嵌入随句子变化抽出嵌入表做近邻检查适合发现「全挤成一团」或「邻居完全乱」这类异常不能代替验证集上的业务指标。样本量小、品牌极多时近邻本身也不稳定。分析近邻时前后使用的距离定义要一致有的流程先把向量归一化再比余弦有的直接比欧氏距离。尺度变了数值阈值不能沿用。二维投影若做了只是观察工具投影会损失信息不能当成嵌入质量的最终证明。4. 向量来源路径何时更常考虑降维如 PCA已有高维词袋 / 数值需要压缩或作对照基线联合训练表格高基数 有标签汽车品牌最常见起点预训练再接入文本等有大规模语料可冻结或微调汽车品牌 ID优先联合训练。只有车评等自由文本、且多义明显时再考虑上下文嵌入或预训练语言模型。降维得到的坐标不一定贴合油耗损失应用验证集与可学习 Embedding 比较而不是默认 PCA 更好。比较时尽量只改一项同一划分、同一数值预处理、同一输出头分别试 One-Hot、PCA 压缩与可学习 Embedding再看验证集。这样更容易判断收益是否来自表示方式本身。5. 提交前检查[ ] 词表水平数已估计很小则考虑 One-Hot很大再上 Embedding [ ] 词表与 UNK 只在训练集确定验证 / 测试只变换 [ ] 嵌入维 d 用验证集选过不是盲目加大 [ ] 品牌嵌入与数值特征拼接方式正确 [ ] 验证损失与业务指标一起看必要时做近邻抽查 [ ] 测试集未参与调 d / 调结构 [ ] 可选与 One-Hot 或逻辑回归基线对比过若验证集上 Embedding 并不比 One-Hot 更好可以维持更简单的编码。表示方式是手段指标才是目的。d dd的试探范围不必一次拉得很开。汽车数据若只有数千行可先在8 88、16 1616、32 3232这类取值上比较验证集没有明显差异时优先选更小的d dd减少过拟合与算力。嵌入表很大时也可以对低频品牌并入UNK避免大量只出现一两次的行占满容量。概念示意embembedding_table[brand_id]# (batch, d)xconcat([emb,weight_scaled,hp_scaled],-1)y_hatmodel(x)6. 常见误区情况说明词表很小仍强行 Embedding收益有限维护成本上升全表先建词表再切分泄漏把某一任务的嵌入当成通用品牌坐标换任务常需重训或微调只看近邻好看不看验证指标近邻是辅助静态与上下文分不清静态一词一点上下文随句而变d dd越大越好过拟合与算力都会涨有了 Embedding 就忽略输出头与划分第 27、28 篇的要求仍在第 26 篇里非线性可分靠浅层网络第 29 篇里高基数靠 Embedding解决的是不同瓶颈前者是决策边界形状后者是离散输入的维数与相似性。两者可以同时出现在一个模型里——品牌嵌入后仍可用带 ReLU 的隐藏层拟合更弯曲的油耗关系。7. 和前面篇章关系主题相关篇与 Embedding 的关系类别词表与 One-Hot17词表小用 One-Hot词表大再考虑嵌入划分、泄漏、验证18、19、22词表与 UNK 必须训练集拟合过拟合与早停21、26、28嵌入参数多同样需要正则与早停输出头27嵌入只改输入分类 / 回归头规则不变神经网络结构2326嵌入向量当作普通稠密特征往后传可以把 Embedding 看成输入侧的可学习编码层而不是一套独立于专栏前半部分的新学科。旧纪律仍然约束新模块。例如品牌嵌入训得再好若输出层在互斥三分类上误用了多个独立 Sigmoid优化目标仍然不对。实践里也常见「先逻辑回归 One-Hot 基线再换 Embedding 浅层 MLP」的对比。基线能说明任务难度与数据质量若基线已经很好上复杂表示的必要性会下降。8. 术语速查术语含义高基数类别水平很多的离散特征Embedding将离散 ID 映为d dd维稠密向量嵌入空间这些向量所在的d dd维空间静态嵌入每个词 / ID 全局一个向量上下文嵌入同一词随上下文可对应不同向量UNK未见或低频类别的占位联合训练嵌入表与下游网络共用任务损失更新9. 延伸阅读资源适合看什么专栏第 29 篇动机与查表专栏第 30 篇空间与静态嵌入专栏第 31 篇获取路径专栏第 17 篇One-Hot 基础专栏第 28 篇神经网络单元串讲10. 小结与下一主题Embedding 这几篇可以概括为词表很大时用短稠密向量代替超长 One-Hot减轻后续权重并保留学相似性的可能。向量落在嵌入空间里远近由任务与数据塑造轴多半不可直接命名。表格场景优先联合训练降维与预训练是另外的来源多义文本再考虑上下文嵌入。本单元到此先告一段落。后面讨论序列与语言模型时会默认已经熟悉稀疏 One-Hot 的问题、查表得到稠密向量、空间中的相对相似性以及联合训练与预训练的差别。若这些内容还有些模糊可以把第 2931 篇按「动机 → 空间 → 来源」再过一遍会比较省事。下一主题会进入语言模型在词或子词序列上模型如何利用上下文估计下一个词或某一位置的词出现的可能以及为什么需要比 N-gram、简单固定窗口更长的上下文。Embedding 仍会作为输入侧的要素出现但讨论重心会从「单个离散 ID」转到「整段序列」。汽车例子也会扩展除了品牌 ID还可能涉及车评文本、故障描述等序列输入——那时会用到本单元的嵌入概念以及后面的序列建模工具。系列导航上一篇【机器学习】31—— 如何得到 Embedding下一篇预告语言模型在预估什么从上下文到下一词如果本篇对你有帮助欢迎点赞、收藏、关注博主机器学习专栏持续更新中下次更新不迷路。