[Embedding]embedding是什么(介绍)

334 阅读5分钟

我们来通俗易懂地解释一下 嵌入表示 这个概念。

世间万物, 不管是人还是物, 都可以映射到一个高维空间中, 它就是高维空间中的一个而已.

这并不是胡乱映射的, 相似的事物, 在空间中的距离也是接近的, 这就是物以类聚, 人以群分.

把一个东西, 用数字化的形式来表示, 这样的话, 计算机就能认识了(能看懂了), 当一个东西可以量化的时候, 那么就可以进行计算了.

1/核心比喻:事物的“数字身份证”和“地图坐标”

你可以把 Embedding 理解为:

  1. 一种数字身份证:它为用户,商品,物品,文字,图片,声音等任何数据,生成一串具有特定含义的数字编码。
  2. 一个高维空间中的坐标:它将抽象的概念(如“国王”、“猫”、“一首歌”)映射到一个多维的数学空间中的一个具体“点”。在这个空间里,语义或特征相似的事物,它们的“点”就会靠得很近

关键思想:Embedding 的核心是将非结构化的、离散的符号(如单词)转化为结构化的、连续的数值向量,并且在这个过程中,保留住原始数据之间的内在关系(如相似性、类比关系等)


2/如何理解它?(从两个角度)

角度一:从“稀疏”到“稠密”,从“无序”到“有序”

  • 传统方法(如One-Hot编码):用“国王” = [1, 0, 0, 0, 0, ...],“王后” = [0, 1, 0, 0, 0, ...] 表示。向量长度等于词汇表大小(几万到几十万), 非常庞大,绝大部分是0。这种表示是稀疏的、孤立的,无法表达“国王”和“王后”之间的任何关系。
  • Embedding方法:用“国王” = [0.8, -0.2, 1.3, ...],“王后” = [0.9, -0.1, 1.2, ...] 表示。向量长度是固定的一个较小值(如300维)。这种表示是稠密的、有意义的。你会看到这两个向量在数值上非常接近。

角度二:关系被编码在向量方向和距离中

在Embedding形成的空间中,我们可以做数学运算,而这些运算对应着语义关系。

  • 相似性:向量距离近(如用余弦相似度衡量)意味着意义相似。
    • 向量(“猫”)向量(“狗”) 的距离,会比 向量(“猫”)向量(“汽车”) 的距离近得多。
  • 类比关系:经典的例子是 国王 - 男人 + 女人 ≈ 王后
    • 这用向量运算表示就是:vec(“king”) - vec(“man”) + vec(“woman”) 的结果向量,会非常接近 vec(“queen”)
  • 聚类:所有水果的向量可能聚集在空间的一个区域,而所有国家名称的向量聚集在另一个区域。

3/举例说明

<例子1>:单词/句子嵌入(NLP中最经典的应用)

  • 目的:让计算机理解单词的语义。
  • 过程:通过在大规模文本(如维基百科)上训练模型(如Word2Vec, BERT),模型学会为每个单词生成一个向量。
  • 结果
    • vec(“巴黎”) - vec(“法国”) + vec(“德国”) 会得到一个非常接近 vec(“柏林”) 的向量。
    • vec(“厉害”)vec(“强大”) 的相似度很高。
    • vec(“苹果”[水果]) 可能介于 vec(“香蕉”)vec(“橙子”)vec(“手机”) 之间,但与水果类的更近。

<例子2>:图像嵌入

  • 目的:理解图片内容。
  • 过程:使用卷积神经网络处理图片,网络中间的某层输出(比如一个2048维的向量)就是这张图片的嵌入。它编码了图片的高级特征(是否包含猫耳、胡须、毛发纹理等,而不是具体的像素)。
  • 应用以图搜图。你上传一张猫的照片,系统计算其嵌入向量,然后在向量数据库中寻找与之最接近的其他图片嵌入,返回相似的猫图。

<例子3>:推荐系统中的用户和物品嵌入

  • 目的:预测用户可能喜欢什么商品/电影。
  • 过程
    • 为每个用户生成一个嵌入向量(表示其偏好:喜欢科幻、动作片还是文艺片)。
    • 为每个电影也生成一个嵌入向量(表示其特性:科幻程度、动作程度、浪漫程度)。
  • 应用:计算用户向量和电影向量的点积或相似度,得分高的电影就推荐给该用户。喜欢《星际穿越》的用户,其向量会和科幻类电影的向量很接近。

4/嵌入表示数据是什么样子的?

它是一个 一维的浮点数数组(向量),通常看起来像这样:

单词“cat”的嵌入向量(假设维度是5,实际通常是几百维):

[0.21, -0.45, 0.78, 0.12, -0.09]

句子“I love machine learning.”的嵌入向量(假设维度是4):

[-0.05, 0.83, 0.24, -0.41]

一张猫图片的嵌入向量(假设维度是3):

[1.2, -0.3, 0.5]

在实际存储和使用中:

  • 它们通常被保存在一个巨大的 嵌入矩阵/查找表 中。例如,一个10万个单词、每个词用300维向量表示的模型,就有一个形状为 [100000, 300] 的矩阵。
  • 当需要“猫”的嵌入时,系统就在这个矩阵中找到“猫”对应的索引行,取出那300个数字。
  • 这些向量会被存入专门的向量数据库(如Milvus, Pinecone, Weaviate)中,以便进行高效的相似性搜索。

5/总结

特性传统表示 (如One-Hot)嵌入表示 (Embedding)
形式稀疏的0/1向量稠密的浮点数向量
维度非常高(等于类别数)相对较低且固定(如300维)
含义仅表示身份/类别编码语义、特征和关系
关系无法直接计算关系可通过向量距离和运算体现关系
例子汽车 = [0,0,1,0,...]汽车 = [0.4, -0.2, 0.9, ...]

简单说,Embedding就是将现实世界的信息,翻译成AI能理解和计算的“数学语言”的过程,并且这种翻译方式能完美保留原始信息之间的关联。 它是现代AI(尤其是大语言模型)能够“理解”我们世界的基石。