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 并驾齐驱
- 2018:ELMo 引入双向 LSTM 上下文感知表示;BERT(Google)将 Transformer 引入预训练,首次实现真正的动态上下文词向量
- 2019:SBERT(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 等
- 领域微调:在垂直语料上做对比学习微调,可显著提升专业术语的召回率
- 多模态 Embedding:CLIP(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」只有一个向量,无法区分「银行」与「河岸」
常见误解
日常交流中容易听到的简化说法,未必准确,但能帮助理解误解从何而来。
- 「把文字变成数字」
- 「语义向量」
- 「把句子变坐标」
相关术语
和本术语关联紧密的其他词条,便于串联理解。
🎯 考点练习
含该术语的高频面试题,含标准答案与追问。
- 中级概念高频查看详解 →
Word2Vec 和 Transformer Embedding 有何区别?
Word2Vec 是静态词向量,一词一向量;Transformer 是上下文相关动态表示,同一词在不同句子向量不同。
- 中级概念高频查看详解 →
BERT 和 GPT 的架构与适用场景有何不同?
BERT 是 Encoder-only 双向理解模型,适合分类/NER;GPT 是 Decoder-only 自回归生成模型,适合文本生成与对话。
- 中级概念查看详解 →
Look-alike 相似人群扩展是怎么用机器学习做的?
从种子人群出发,用相似度(向量召回)或分类模型(种子为正样本)扩展出相似用户,提升广告定向覆盖。
- 高级系统设计高频查看详解 →
如何设计广告点击率(CTR)预估系统?
CTR 预估 = 大规模稀疏特征经 embedding + 特征交叉(DeepFM/DIN)输出点击概率,离线看 AUC/GAUC,线上 A/B 看 CTR/CPM/收入。
延伸阅读
从知识库精选 2 篇文章,帮助深入理解该术语。
外部参考
维基百科:查看「Embedding」词条本页内容为本站原创撰写;维基百科链接仅作延伸参考。
