【机器学习】(30)—— 嵌入空间

嵌入空间:距离、维数和静态 Embedding

文章目录

  • [嵌入空间:距离、维数和静态 Embedding](#嵌入空间:距离、维数和静态 Embedding)
    • [1. 向量不只是一串数](#1. 向量不只是一串数)
    • [2. 从一维到二维:多一个轴会改变远近](#2. 从一维到二维:多一个轴会改变远近)
    • [3. 距离表示相对相似](#3. 距离表示相对相似)
    • [4. 真实空间:d 更大,轴更难命名](#4. 真实空间:d 更大,轴更难命名)
    • [5. 静态嵌入:一词一个向量](#5. 静态嵌入:一词一个向量)
    • [6. 汽车流水线](#6. 汽车流水线)
    • [7. 常见误区](#7. 常见误区)
    • [8. 术语表](#8. 术语表)
    • [9. 延伸阅读](#9. 延伸阅读)
    • [10. 小结](#10. 小结)

摘要 :第 29 篇把 Embedding 说成「用短稠密向量代替超长 One-Hot」。向量落在哪里、彼此远近代表什么,需要放到嵌入空间里看。本文用低维示意图说明距离与相似性的关系、维数增加时信息如何变丰富,以及真实任务里轴往往不可直接命名;并介绍静态词嵌入(如 word2vec)在说明「上下文相近 → 向量靠近」时的作用与局限。贯穿示例仍是汽车品牌。


1. 向量不只是一串数

Embedding 输出的是 e ∈ R d \mathbf{e}\in\mathbb{R}^{d} e∈Rd。把每个品牌(或每个词、每个物品 ID)看成 d d d 维空间里的一个点,这些点所在的空间就是嵌入空间(embedding space)

第 29 篇强调查表与参数量;本篇关心空间几何:谁靠近谁、维数 d d d 起什么作用、换任务后空间会不会变。

上图把若干品牌排在一条假想轴上,例如「越往右越偏轿车取向」。这只是为了建立直觉。真实训练得到的轴,很少能用一句话准确命名。


2. 从一维到二维:多一个轴会改变远近

一维上,「苹果派」类甜品若硬插在热狗和卷饼之间,看起来还算挨着。一旦加上「甜品程度」这类第二维,它会离开那两条咸食,距离关系更符合常识。

换成汽车品牌,可以假想两个轴:

  • 横轴:更偏商用 / 皮卡,还是更偏轿车
  • 纵轴:价位或定位高低

家用轿车品牌彼此可能较近;跑车向品牌与商用车向品牌可能较远。二维里某两点的距离,不必等于它们在一维投影上的距离------多一个维度,就可能把「表面上挨着、实际上不同」的点拉开。

每个点用 d d d 个实数表示。示意里坐标常取在大约 − 1 , 1 -1,1 −1,1 0 , 1 0,1 0,1 附近;实际框架里初始化与尺度会随实现变化,不必死记数值范围。


3. 距离表示相对相似

对空间中两点 u , v \mathbf{u},\mathbf{v} u,v,常用欧氏距离:

∥ u − v ∥ 2 = ∑ k = 1 d ( u k − v k ) 2 \|\mathbf{u}-\mathbf{v}\|2=\sqrt{\sum{k=1}^{d}(u_k-v_k)^2} ∥u−v∥2=k=1∑d(uk−vk)2

或看余弦相似度(更关注方向):

cos ⁡ ( u , v ) = u ⋅ v ∥ u ∥ 2 ∥ v ∥ 2 \cos(\mathbf{u},\mathbf{v})=\frac{\mathbf{u}\cdot\mathbf{v}}{\|\mathbf{u}\|_2\|\mathbf{v}\|_2} cos(u,v)=∥u∥2∥v∥2u⋅v

在嵌入空间里,距离小 / 余弦大,通常解释为:在当前模型学到的表示下,这两个类别更相似。

现象 常见解释
两点靠近 任务相关行为更像(如油耗、定位接近)
两点远离 在该表示下差异更大
近邻品牌 可作定性检查:嵌入是否学到合理结构

这是相对相似性:没有绝对的「距离小于 0.3 就算同类」的通用阈值。阈值若要用,也应在验证集上按业务定义。

计算时注意向量是否已归一化:有的实现会先把嵌入除以模长再比余弦;直接比欧氏距离时,整体尺度也会影响数值大小。分析近邻时,同一套预处理要前后一致。

汽车油耗任务里,若干小型车品牌的向量聚在一起、若干大排量取向品牌聚在另一侧,是一种合理现象。若完全随机散开,可能是 d d d、正则或数据有问题,需要结合验证指标排查。


4. 真实空间:d 更大,轴更难命名

教学图用 1~3 维是因为能画。词嵌入常见 d d d 为数十到数百;推荐里的物品嵌入也可能是 32 32 32、 64 64 64、 128 128 128 等。 d d d 仍远小于 One-Hot 的词表大小 V V V,但已经远高于 3,无法直接可视化全部维度。

实践中通常由人指定任务和 d d d(或在小范围内用验证集选 d d d),模型在训练里调整各点位置,使损失下降。个别维度偶尔能事后牵强解释,多数时候不能 指望第 k k k 维等于「甜度」「液体程度」这种清晰概念。

嵌入一般依赖任务

  • 以「是否高效」为训练目标时,省油取向品牌更容易靠近
  • 以「是否偏家用代步」为目标时,家用与商用的分簇可能更突出,与油耗任务下的邻居不必一致

类比:麦片与早餐肠在「是否早餐相关」的空间里可能靠近,在「是否素食」的空间里可能远离。同一批离散 ID,换损失与标签,嵌入空间可以重排。

因此,不宜把某一任务训出的品牌向量当成与任务无关的「宇宙唯一品牌坐标」。迁移到新任务时,常常需要继续训练或重新学习嵌入。


5. 静态嵌入:一词一个向量

有一类任务对很多场景都有用:根据上下文预测词,或让「出现在相似上下文中的词」在空间中靠近。训练语料里若既有「他们骑着马走进峡谷」,也有「他们骑着驴走进峡谷」,模型有理由认为「马」与「驴」的用法相近,从而把二者的向量拉近。

静态嵌入(static embedding)指:每个词(或每个 ID)在全局共用一个 固定向量。经典例子是 word2vec:在大规模文本上训练后,得到词表里每个词一条向量。向量具体数值依赖语料;换语料,远近关系可能变化。

静态嵌入的价值在于:用无监督或自监督的上下文信号,先得到可迁移的语义几何,再接到分类、检索等任务。局限也很明确:多义词只有一个点。「行」在「银行」和「行走」里含义不同,静态向量无法随句子切换;「orange」既是颜色也是水果时,也会出现类似尴尬。

后来的上下文嵌入(contextual embedding)让同一词在不同句子里可以对应不同向量。那是后续主题;本篇只需知道静态嵌入的边界。

对汽车品牌而言,第 29 篇那种「跟油耗模型一起训」的 Embedding,通常也是每个品牌一个向量,形式上接近静态;若品牌名在不同地区含义不同,同样可能不够灵活。多数表格场景里,一品牌一向量仍然够用。


6. 汽车流水线

text 复制代码
品牌 ID → Embedding 向量 → 嵌入空间中的点
                ↓
        可查近邻 / 算距离(分析用)
                ↓
     与重量、马力等拼接 → 下游预测

训练结束后,可以抽出嵌入表,做一些检查,例如:

  • 给定某品牌,列出余弦相似度最高的若干邻居
  • 看已知「相近定位」的品牌是否更常出现在彼此的近邻里

这些检查不能代替验证集指标,但有助于发现明显异常(例如所有点几乎重合、或近邻完全混乱)。若样本量很小、品牌极多,近邻本身也会不稳定,这时更应优先相信验证损失与业务指标,而不是过度解读二维投影图。

符号小结:

符号 含义
V V V 词表大小
d d d 嵌入维数
e i \mathbf{e}_i ei 第 i i i 个类别的嵌入向量
∣ u − v ∣ 2 |\mathbf{u}-\mathbf{v}|_2 ∣u−v∣2 欧氏距离
cos ⁡ ( u , v ) \cos(\mathbf{u},\mathbf{v}) cos(u,v) 余弦相似度

7. 常见误区

情况 说明
把教学图里的轴名当成真实训练轴 假想维度只为直觉;真实轴通常不可命名
认为距离有跨任务通用阈值 相似性是相对的,且依赖任务与尺度
换了预测目标仍强行复用旧嵌入且不再训练 可能不匹配;至少应用验证集确认
静态词向量能解决一切多义词 一词一点,上下文变了含义可能对不上
d d d 越大空间一定越好 过大易过拟合,应用验证集选择
只看近邻好看,不看业务指标 近邻是辅助分析,终仍看验证 / 测试表现

第 29 篇的词表、UNK、防泄漏要求仍然有效。空间再漂亮,若词表用全表统计建出来,评估仍可能偏乐观。


8. 术语表

术语 含义
嵌入空间 嵌入向量所在的 d d d 维空间
相似性(几何) 常用距离或余弦衡量的相对远近
嵌入维 d d d 每个点的坐标个数
静态嵌入 每个词 / ID 全局共用一个向量
word2vec 基于上下文学习词向量的经典方法之一
上下文嵌入 同一词随句子上下文可对应不同向量
近邻 空间中距离最近或余弦最大的若干项

9. 延伸阅读

资源 适合看什么
专栏第 29 篇 Embedding 动机与查表
专栏第 17 篇 类别词表基础
gensim Word2Vec 静态词向量实验
PyTorch Embedding 任务内学习嵌入
scikit-learn 余弦相似度 近邻分析

10. 小结

嵌入空间把每个类别变成 d d d 维中的点;点与点的距离(或余弦)刻画模型学到的相对相似性。维数升高能表达更丰富的差异,但真实轴很少能像「甜度」那样直接读出来。嵌入通常随任务变化;静态词嵌入用「上下文相似 → 向量靠近」提供可迁移的语义几何,却受「一词一点」限制。

汽车品牌嵌入同样如此:可在油耗等任务里学习空间结构,并用近邻做辅助检查,最终仍以验证指标为准。

下一篇会谈 如何得到 Embedding:降维思路、作为网络一层与任务联合训练,以及静态嵌入与上下文嵌入的差别会如何影响用法。

系列导航


如果本篇对你有帮助,欢迎点赞、收藏、关注博主,机器学习专栏持续更新中,下次更新不迷路。

相关推荐
MindUp1 小时前
AI辅助PPT生成工具实测:百度文库等平台在技术学习场景下的内容生成与排版能力对比
人工智能·百度·powerpoint
甲维斯1 小时前
DeepSeekFlash前端依旧拉垮,而且变慢了很多!
前端·人工智能
console.log('npc')1 小时前
OpenClaw 使用教程:开源 AI Agent 编排框架完全指南
人工智能·microsoft·ai编程·openclaw
独行侠影a1 小时前
AI绘画与音乐:生成式艺术是创作还是抄袭?
人工智能
数字融合1 小时前
黎阳之光一数字孪生多能源可视化系统管理技术
人工智能·自动化·virtualenv
puamac1 小时前
LlamaFactory QLoRA SFT 微调实操指南
人工智能·llamafactory
米瑞格门窗1 小时前
上海系统门窗哪个靠谱
大数据·人工智能·安全·家装·家装建材·系统门窗
极客猴子1 小时前
AI会议记录工具横评:科会通、通义听悟、飞书妙记的自动整理效果有什么区别?
人工智能·飞书
Web3_Daisy1 小时前
如何在Robinhood Chain创建 Uniswap V3 流动性池
大数据·人工智能·web3·区块链