一、背景
在当前的自然语言处理(NLP)与大模型应用中,将人类自然语言转化为计算机可理解的数值表示是核心步骤之一。例如在 NL2SQL(自然语言转 SQL)任务中,大语言模型(LLM)通常会将输入文本向量化后存储到向量数据库,再通过向量搜索匹配相关数据。这一过程中,Embedding(嵌入)技术展现了惊人的效果,使得程序能够更准确地'读懂'人类语言的语义。因此,理解 Embedding 对于非机器学习背景的技术人员同样至关重要。
二、什么是 Embedding
Embedding 是自然语言处理中的一种变革性技术,它改进了机器理解和处理人类语言的方式。其核心是将原始文本转换为数字向量,让计算机能够更好地进行数学运算和理解。
因为计算机底层只能处理数字,无法直接理解人类的语言符号。借助文本嵌入,计算机可以将文本映射为高维空间中的点,从而阅读、理解文本并对查询提供更准确的响应。
Embedding 是一种将文本中的单词或短语转换为机器可以理解的数字数据的方法。可以将其视为将文本转换为数字列表,其中每个数字都表示文本的一部分含义。这种技术可以帮助机器掌握单词之间的上下文和关系。
与传统的独热编码(One-Hot Encoding)相比,Embedding 提供了更紧凑的表示。在 One-Hot 编码中,词汇表中的每个词都是一个稀疏的高维向量,且词与词之间没有内在联系;而 Embedding 将词映射到低维稠密向量空间中,语义相似的词在向量空间中的距离也更近。
三、为什么需要 Embedding
Embedding 在机器学习和自然语言处理中的重要性主要体现在以下几个方面:
3.1 降维处理
- 高维数据问题:原始数据通常是高维的(如 One-Hot 编码),处理高维数据会导致计算复杂性增加,且容易出现'维度灾难'。
- 低维表示:通过 Embedding,可以将高维数据映射到低维空间(如 768 维或 1024 维),减少计算负担并提高处理效率。
3.2 捕捉语义关系
- 相似性表示:Embedding 能够将语义相似的对象(如词语或图像)映射到相近的向量,使得相似性度量变得直接和有效。
- 保留上下文信息:在自然语言处理中,Embedding 可以反映词语的上下文关系,从而更好地理解词语的多义性和含义。
3.3 更好的特征表示
- 稠密表示:与传统的独热编码相比,Embedding 提供了更稠密且具备语义信息的特征表示。
- 泛化能力:通过将数据映射到语义空间,模型能够在新数据上具有更好的泛化能力,即使遇到训练集中未出现的词也能通过子词信息进行处理。
3.4 提高计算效率
- 向量运算:在低维空间中,可以快速进行向量之间的计算(如点积、余弦相似度等),提高模型的响应速度。
- 简化算法:使用 Embedding 的模型通常比传统方法更简单且易于训练。
3.5 适应性强
- 多领域应用:Embedding 可以广泛应用于文本、图像、音频等多个领域,具有很强的适应性。
- 模型可扩展性:可以轻松地将新的数据嵌入现有的 Embedding 空间,支持增量学习。
四、Embedding 原理
Embedding 的原理主要基于将高维数据映射到低维空间的技术,以下是其核心概念和原理:
4.1 向量空间模型
- 基本思想:将每个对象(如词、句子或图像)表示为一个向量,在一个稠密的、低维的向量空间中,这些向量能够反映对象之间的相似性和关系。在这个空间中,几何距离对应语义距离。
4.2 训练方法
- 无监督学习:Embedding 通常通过无监督学习算法进行训练,这使得模型能够从大量数据中学习各个对象之间的隐含关系,而无需人工标注。
- 有监督微调:在特定任务上,可以使用标注数据对预训练的 Embedding 模型进行微调,以适配特定领域的语义。


