什么是人工智能的嵌入(Embedding)?
Embedding 是一种机器学习概念,用于将数据映射到高维空间,将语义相似的数据放在一起。Embedding 模型通常是 BERT 或其他 Transformer 系列中的深度神经网络,可以用一系列称为向量 (vectors)的数字有效地表示文本、图像和其他数据类型的语义。这些模型的一个主要特点是,向量之间在高维空间中的数学距离可以表示原始文本或图像语义的相似性。这一特性开启了许多信息检索应用,如谷歌和必应等网络搜索引擎、电子商务网站上的产品搜索和推荐,以及最近流行的生成式人工智能中的检索增强生成(RAG)范式。

Embedding 有两大类,每一类都能产生不同类型的向量:
密集嵌入:大多数嵌入模型将信息表示为数百到数千维的浮点向量。由于大多数维度的值都不为零,因此输出的向量被称为'密集'向量。例如,流行的开源嵌入模型 BAAI/bge-base-en-v1.5 输出的向量为 768 个浮点数(768 维浮点向量)。
稀疏嵌入:相比之下,稀疏嵌入的输出向量大部分维数为零,即'稀疏'向量。这些向量通常具有更高的维度(数万或更多),这是由标记词汇量的大小决定的。稀疏向量可由深度神经网络或文本语料库统计分析生成。由于稀疏嵌入向量具有可解释性和更好的域外泛化能力,越来越多的开发人员采用稀疏嵌入向量作为高密度嵌入向量的补充。
如向量数据库 Milvus,专为向量数据管理、存储和检索而设计。通过整合主流的嵌入 (embedding) 和重排 (reranking) 模型,可以轻松地将原始文本转换为可搜索的向量,或使用强大的模型对结果进行重排,从而获得更准确的 RAG 结果。
对于 AI 或机器学习算法来说,原始数据如文字、视频、图片等,这些数据并没有相似性或距离的概念。例如'手机'与'苹果',对于现代人来说,会知道'苹果'在语义上会联想到'手机',Embedding 在这当中加入了距离来表达它们之间的关联性,距离越近相关性越高。这使得数据维度大幅减少,而且节省了很多存储空间。

1. Embedding 往往包含语义关系
Embedding 能捕捉词与词之间的语义关系。相似词的向量通常在空间中接近,并能区分同义词(如'big'和'large'),还能捕捉更复杂的语义关系:
'king' - 'man' + 'woman' ≈ 'queen'
king 去掉 man 的语义,再加上 woman 的语义,就和 queen 的语义相近。
像 BERT 或 GPT 这样的模型会根据上下文调整词的向量。例如,'bank'在'河岸'和'银行'中的向量会不同。'bank'在'river bank'和'money bank'中的表示是不同的。
2. 举个通俗的例子来说明
2.1 Embedding 像是一种'翻译器'
它把复杂的事物(比如单词、句子、图片)转化成'机器能理解的数字'。但这些数字不仅仅是随便的编码,而是带有意义的,比如让相似的东西靠得更近。


