Embedding(嵌入)

Embedding

把文字变成数字

亦作、亦称:嵌入

Embedding(嵌入)是将离散符号——词、子词 token、乃至整段文本——映射到连续实数向量空间的技术,核心性质是语义相近的内容在向量空间中距离也更近。它是现代自然语言处理与大语言模型的基础组件,直接决定语义检索、RAG 召回和分类等下游任务的效果上限。

概述

Embedding 解决的根本问题是:计算机无法直接处理文字,将词语简单编号又无法捕获任何语义关系。

  • 核心思想:用一组实数(向量)表示一个词或句子,语义相近则向量距离近、语义无关则距离远
  • 典型维度:从早期 100—300 维(Word2Vec)到现代 768、1536、3072 维不等,维度越高表达能力越强但计算开销也更大
  • 训练方式:在大规模语料上通过预测上下文或对比学习自动习得,不需要人工标注语义
  • 核心度量:向量间的余弦相似度或内积,用于衡量两段文本的语义接近程度
  • 地位:大语言模型第一层就是 Embedding 矩阵,是整个推理流程的起点

发展脉络

  • 2003:Bengio 等发表「A Neural Probabilistic Language Model」,首次用稠密分布式向量表示词,奠定现代词向量思想基础
  • 2013:Mikolov 等(Google)发布 Word2Vec,提出 CBOW 与 Skip-gram 两种架构,训练效率大幅提升,静态词向量走入主流
  • 2014:Pennington 等(Stanford)发布 GloVe,基于全局词共现矩阵训练,与 Word2Vec 并驾齐驱
  • 2018ELMo 引入双向 LSTM 上下文感知表示;BERT(Google)将 Transformer 引入预训练,首次实现真正的动态上下文词向量
  • 2019SBERT(Sentence-BERT)通过孪生网络专门优化句级 Embedding,推理效率提升数百倍
  • 2022 至今BGE、E5、text-embedding-3 等通用句级模型涌现,对比学习成为主流训练范式,多语言对齐能力大幅提升

工作原理

以主流 Transformer 句级 Embedding 模型为例,输入文本分词后经过多层注意力,最终池化为单一向量。

  • 词表查表:每个 token ID 通过可学习的 Embedding 矩阵(词表大小 × 维度)转为稠密浮点向量
  • 上下文融合:向量经过多层自注意力后,每个 token 的表示都融入了整段文本的上下文信息
  • 池化:取 [CLS] token 向量或对所有 token 做平均池化(mean pooling),得到句子的单一向量
  • 训练目标:对比学习(如 SimCSE 使用 in-batch 负例,BGE 使用难负例挖掘)让相似句子向量对齐、不相似句子向量分散
  • 向量空间一致性:RAG 场景中 query 与 document 必须使用同一模型编码,否则两者向量空间不一致,相似度计算失效

类型与变体

  • 静态 vs. 上下文:Word2Vec、GloVe 每个词只有一个固定向量;BERT 系列根据上下文动态生成,「苹果」在不同句子中向量不同
  • 词级 vs. 句级:词级 Embedding 适合序列标注等 token 粒度任务;句级 Embedding 将整段文本压缩为单一向量,适合语义检索与 RAG
  • 通用模型:OpenAI text-embedding-3-large(3072 维)、开源 BGE-M3(支持 100+ 语言)、E5-mistral
  • 领域微调:在垂直语料上做对比学习微调,可显著提升专业术语的召回率
  • 多模态 EmbeddingCLIP(OpenAI,2021)将图像与文字映射到同一向量空间,实现跨模态检索

应用场景

  • 语义检索:文档预编码存入向量数据库(Faiss、Milvus、Qdrant),查询时通过近似最近邻(ANN)快速找到相关文档
  • RAG 召回:Embedding 质量直接决定检索阶段的召回率上限,是 RAG 流程的核心瓶颈之一
  • 文本分类:将句向量接分类头(线性层)即可做情感分析、意图识别等任务,少量标注数据即可微调
  • 推荐系统:用户向量与物品向量的内积作为相关度,实现大规模候选集的实时粗排
  • 聚类与异常检测:对大量文档做 K-Means 聚类,或通过距离阈值识别异常文本

与相邻概念的区别

  • Embedding vs. Tokenization:Tokenization 将原始文本切分为整数 ID 序列,Embedding 是在此之后将 ID 转为浮点向量,两者是先后步骤而非同一操作
  • 词级 Embedding vs. 句级 Embedding:词级表示每个 token,句级将整段文本压缩为单一向量;前者适合生成与序列任务,后者适合检索
  • Embedding 层输出 vs. Encoder 最终输出:模型第一层 Embedding 矩阵输出是静态查表结果;经过多层注意力后的输出才是上下文感知的「真正」表示
  • Embedding vs. Encoding(编码):日常口语中常混用,严格来说 Encoding 泛指任意信息表示过程,Embedding 特指低维稠密连续向量表示

局限与误区

  • 误区:维度越高越好:表达能力与计算/存储成本需权衡;在小数据集上高维向量容易引发维度灾难
  • 误区:高余弦相似度 = 语义相同:高相似度只表示在该模型的向量空间中接近,对训练分布外的专业术语可能失准
  • 长文本限制:模型有最大输入长度(如 512 或 8192 token),超出需分块(chunking),分块策略(chunk size、overlap)直接影响 RAG 质量
  • 跨模型不可混用:不同 Embedding 模型的向量空间彼此不兼容,混用会导致相似度计算完全失效
  • 静态 Embedding 的多义词问题:Word2Vec 中「bank」只有一个向量,无法区分「银行」与「河岸」

常见误解

日常交流中容易听到的简化说法,未必准确,但能帮助理解误解从何而来。

  • 「把文字变成数字」
  • 「语义向量」
  • 「把句子变坐标」

相关术语

和本术语关联紧密的其他词条,便于串联理解。

🎯 考点练习

含该术语的高频面试题,含标准答案与追问。

延伸阅读

从知识库精选 2 篇文章,帮助深入理解该术语。

  1. 1

    NLP 基础:从词嵌入到 Transformer

    自然语言处理的核心技术路线。从 One-Hot 到 Word2Vec,从 RNN/LSTM 到注意力机制,再到 Transformer 架构的完整演进历程。包含词向量可视化、注意力权重计算和简易 Transformer 的 Python 实现。

  2. 2

    RAG 检索增强生成架构指南

    如何结合外部知识库增强 LLM 的准确性和时效性

外部参考

维基百科:查看「Embedding」词条

本页内容为本站原创撰写;维基百科链接仅作延伸参考。