一、 从符号到语义:为什么需要 Embedding?
在计算机眼中,文字、图像、商品等万物最初只是一串符号或离散的 ID。我们无法直接计算“苹果”和“水果”之间的相似度。传统基于关键词匹配(如 TF-IDF)的方法,只能进行字面匹配,无法理解“汽车”和“轿车”本质是同一事物,也无法处理同义词、多义词带来的“词汇鸿沟”。
Embedding(嵌入) 技术正是为了解决这个问题而诞生的。它的核心思想是:将离散的、高维的符号,映射到一个连续的、低维的稠密向量空间中。在这个空间里,每个对象(如一个词、一句话、一个用户)都由一个固定长度的浮点数向量(例如 256 维或 768 维)来表示。这个向量就是这个对象的 Embedding。
关键理解:Embedding 不是一个具体的模型,而是一种表示学习的结果。它的精髓在于,通过模型(如 Word2Vec, BERT)在海量数据上训练,使得向量间的空间关系能够反映原始数据的语义关系。语义相近的对象,其向量在空间中的距离会更近。
二、 向量空间中的语义地图
想象一个巨大的多维地图,这就是我们所说的向量空间。每一个我们感兴趣的实体(如单词“国王”)都被投射到这个地图上的一个点(即它的向量)。
神奇的是,这个空间中存在着丰富的几何关系:
- 方向:向量之间的夹角或方向差异可以表征语义差异。例如,“国王”向量减去“男人”向量加上“女人”向量,得到的结果向量会非常接近“女王”的向量。
- 距离:两个向量之间的欧氏距离或余弦距离,直接衡量了它们所代表概念的语义相似度。距离越近,语义越相关。
这种从离散符号到连续向量的映射,实现了“语义的可计算化”。我们终于可以用精确的数学运算(点积、余弦相似度)来处理模糊的语义概念,这是信息检索、推荐系统等领域的革命性进步。
三、 衡量相似度:从向量到“相关性”
有了对象的向量表示,我们如何量化它们之间的相似度呢?最常用的指标是