3分钟搞懂Embedding嵌入

Embedding(嵌入)= 把文字/图片/音频转换成向量(一串数字),让计算机能'理解'语义,是所有 AI 应用的基础。

开发者Club
3 分钟阅读
AI人工智能Embedding嵌入词向量Word2VecOpenAI Embeddings
阅读 —收藏 —

一句话定义

Embedding(嵌入)= 把文字/图片/音频转换成向量(一串数字),让计算机能"理解"语义,是所有 AI 应用的基础。

打个比方

计算机如何理解"相似性":

  • 人类理解:"猫"和"小猫"很相似,"猫"和"汽车"不相似
  • 计算机困境:文字只是符号,计算机不知道"猫"和"小猫"有什么关系
  • Embedding 解法:把文字变成坐标点,相似的词距离近

地图类比:

  • 想象一个高维空间(几百维)的地图
  • "猫"在坐标 [0.8, 0.2, -0.5, ...]
  • "小猫"在坐标 [0.82, 0.18, -0.48, ...](离"猫"很近)
  • "汽车"在坐标 [-0.3, 0.7, 0.9, ...](离"猫"很远)

具体例子:

  • "国王" - "男人" + "女人" ≈ "女王"(Word2Vec 经典案例)
  • 这说明 Embedding 不只是位置,还捕捉了语义关系

词向量空间:相似的词距离近

核心要点(3个)

1. Embedding 的基本原理

把离散符号(文字)转换成连续向量(数字)。

为什么需要 Embedding:

  • 问题:计算机只认数字,不认文字

  • 传统方法 One-Hot 编码的缺陷:

    猫 = [1, 0, 0, 0, ...]  (第1个位置是1)
    狗 = [0, 1, 0, 0, ...]  (第2个位置是1)
    汽车 = [0, 0, 1, 0, ...]  (第3个位置是1)
    
    • 维度爆炸:词汇量10万,就要10万维
    • 无法表达相似性:"猫"和"狗"距离 = "猫"和"汽车"距离
  • Embedding 解决方案:

    猫 = [0.8, 0.2, -0.5]  (压缩到几百维)
    狗 = [0.75, 0.25, -0.45]  (与"猫"距离近)
    汽车 = [-0.3, 0.7, 0.9]  (与"猫"距离远)
    
    • 维度固定(通常300-3072维)
    • 相似词距离近

One-Hot 编码 vs Embedding:从稀疏到稠密语义向量

Embedding 的核心特性:

  1. 稠密(Dense):每个维度都有意义,不是稀疏的
  2. 低维:几百到几千维,而非词汇量那么多维
  3. 语义性:相似的词/句子,向量距离近
  4. 可计算:可以做加减乘除,进行语义运算

维度的意义(举例):

  • 第1维:可能表示"生物性"(猫0.8,汽车-0.3)
  • 第2维:可能表示"体型大小"(大象0.9,蚂蚁-0.8)
  • 第3维:可能表示"危险性"
  • 实际上几百到几千维,每维的含义不明确但组合起来表达语义

2. Embedding 技术的演进

从 Word2Vec 到 GPT Embedding 的进化史。

第一代:Word2Vec(2013,Google)

  • 核心思想:一个词的意思由它的邻居决定
  • 方法:
    • CBOW:用上下文预测中心词
    • Skip-gram:用中心词预测上下文
  • 维度:通常300维
  • 优势:快速、高效、捕捉词语义
  • 局限:
    • 一词一向量(bank 在"银行"和"河岸"含义不同,但向量相同)
    • 只有词级别,没有句子级别

第二代:GloVe(2014,斯坦福)

  • 改进:结合全局统计信息
  • 方法:词共现矩阵分解
  • 特点:与 Word2Vec 类似效果,训练更稳定

第三代:BERT Embeddings(2018,Google)

  • 突破:上下文感知(Contextual Embeddings)
  • 特点:
    • 同一个词在不同句子中,向量不同
    • 例:"bank"在"river bank"和"bank account"中向量不同
  • 维度:768维(BERT-base)
  • 方法:Transformer 编码器
  • 优势:理解上下文,更准确

第四代:OpenAI ada-002(2022)

  • 模型:text-embedding-ada-002(已于2024年弃用,不推荐新项目使用)
  • 维度:1536维
  • 历史意义:首次将高质量 Embedding 以 API 形式普及,推动 RAG 大规模落地

第五代:当前主流(2024+)

  • text-embedding-3-small:OpenAI 推荐入门首选,性价比最高
    • 维度:最高1536维,支持自定义截断(最低256维)
    • 价格:$0.00002/1K tokens,比 ada-002 便宜5倍且效果更好
  • text-embedding-3-large:OpenAI 最高精度方案
    • 维度:最高3072维,支持自定义截断
    • 价格:$0.00013/1K tokens
  • Cohere Embeddings:多语言支持强
  • Jina Embeddings:支持8K长文本
  • 开源方案:sentence-transformers(Hugging Face)

Embedding 技术演进时间线:从 Word2Vec 到 OpenAI 3-small

技术对比:

技术时间维度上下文感知适用场景
Word2Vec2013300❌词语义相似度
GloVe2014300❌词语义相似度
BERT2018768✅文本分类、NER
OpenAI ada-00220221536✅已弃用
OpenAI 3-small2024256-1536✅通用语义搜索(推荐)
OpenAI 3-large2024256-3072✅高精度搜索

3. Embedding 的实际应用

Embedding 应用场景全景:语义搜索、RAG、推荐、分类、多模态、Agent记忆

Embedding 是 AI 应用的"幕后英雄"。

核心应用场景:

1. 语义搜索:

# 传统关键词搜索
search("苹果手机")  → 只找到包含"苹果手机"的文档
 
# Embedding 语义搜索
search("苹果手机")  → 找到"iPhone""苹果设备""Apple手机"等
  • 优势:理解同义词、近义词、相关概念
  • 应用:Google 搜索、企业知识库

2. RAG(检索增强生成):

用户问题 → Embedding → 向量数据库搜索相似文档 →
喂给 LLM → 生成回答
  • 核心组件:Embedding 把问题和文档转成向量
  • 应用:ChatGPT 记忆、企业问答机器人

3. 推荐系统:

  • 电商:推荐相似商品(商品描述 Embedding)
  • 内容:推荐相似文章/视频(标题+简介 Embedding)
  • 音乐:推荐相似歌曲

4. 内容分类和去重:

  • 自动分类:把文章 Embedding,相似的聚在一起
  • 去重:检测重复内容(Embedding 距离近)
  • 垃圾识别:垃圾邮件/评论检测

5. 多模态搜索:

  • CLIP:图片和文字在同一向量空间
  • 以图搜图:图片 Embedding 相似度
  • 跨模态搜索:文字搜图片,图片搜文字

6. AI Agent 记忆:

  • 存储历史对话 Embedding
  • 需要时检索相关对话
  • 实现"长期记忆"

实战代码示例(OpenAI Embeddings,v1.x API):

from openai import OpenAI
import numpy as np
 
client = OpenAI()
 
def get_embedding(text: str) -> list[float]:
    response = client.embeddings.create(
        model="text-embedding-3-small",
        input=text
    )
    return response.data[0].embedding
 
# 计算相似度
def cosine_similarity(a, b):
    a, b = np.array(a), np.array(b)
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))
 
text1 = "如何学习人工智能?"
text2 = "AI学习方法"
text3 = "今天天气真好"
 
emb1 = get_embedding(text1)
emb2 = get_embedding(text2)
emb3 = get_embedding(text3)
 
print(cosine_similarity(emb1, emb2))  # 约0.85(很相似)
print(cosine_similarity(emb1, emb3))  # 约0.2(不相似)

成本和性能:

  • OpenAI text-embedding-3-small:$0.00002/1K tokens(1万字约$0.002)
  • OpenAI text-embedding-3-large:$0.00013/1K tokens
  • 延迟:几十毫秒
  • 批量处理:可并发,单条最多支持8191个 token

为什么重要

Embedding 是 AI 理解世界的"翻译器",把人类语言翻译成计算机能理解的数字。

对 AI 的意义:

  • 🧠 语义理解基础:让 AI"懂"文字的意思
  • 🔗 连接不同模态:CLIP 连接图像和文本
  • 🚀 AI 应用的基石:搜索、推荐、RAG 都依赖 Embedding
  • 💰 降低成本:不需要重新训练模型,直接调用 Embedding API

技术突破意义:

  • Word2Vec(2013):开启 Embedding 时代
  • BERT(2018):上下文感知,质的飞跃
  • OpenAI text-embedding-3(2024):通用化、高性价比,人人可用

无处不在:

  • 你用 Google 搜索:背后是 Embedding 语义理解
  • 你刷抖音推荐:Embedding 计算相似度
  • 你问 ChatGPT:RAG 的 Embedding 检索相关信息

常见误解

误解1:Embedding 就是把文字变成数字

真相:不只是"变成数字",而是捕捉语义。相似的词,向量距离近,这是核心。

误解2:维度越高越好

真相:不是越高越好。text-embedding-3-small 最高1536维,3-large 最高3072维,但 3-small 在大多数任务上够用且更便宜。新模型还支持自定义截断维度,可按需降维。

误解3:一个词只有一个 Embedding

真相:BERT 之后,同一个词在不同上下文中,Embedding 不同。"bank"在"river bank"和"bank account"中向量不同。

误解4:Embedding 是最终结果

真相:Embedding 是中间表示,需要后续处理(如相似度计算、分类器、LLM 生成)才能产生最终结果。

Embedding 产品选择

快速上手(推荐首选):
  └─ OpenAI text-embedding-3-small
     - API 调用简单,性价比最高
     - 比 ada-002 更便宜且效果更好

追求极致精度:
  └─ OpenAI text-embedding-3-large
     - 最高3072维,支持自定义截断
     - 价格略高

开源免费:
  └─ sentence-transformers(Hugging Face)
     - 模型多,可本地部署
     - all-MiniLM-L6-v2(轻量)
     - all-mpnet-base-v2(效果好)

多语言场景:
  ├─ Cohere Embeddings(100+语言)
  └─ multilingual-e5(开源)

长文本(>512 tokens):
  ├─ Jina Embeddings(8K)
  └─ OpenAI text-embedding-3(8K+)

本地部署(隐私要求):
  └─ sentence-transformers 本地模型

3秒总结

记住这3点就够了:

  • ✅ 文字变坐标:把文字转成向量,相似的词距离近
  • ✅ 语义理解基础:让 AI"懂"文字意思,不只是匹配字符
  • ✅ 无处不在:搜索、推荐、RAG、分类,所有 AI 应用都用

⚠️ 时效性提醒

知识截止:2026-04-28

Embedding 技术持续进化:

  • 模型更新:OpenAI 定期发布新 Embedding 模型,ada-002 已弃用
  • 维度优化:可调维度(3-large 支持256-3072维)
  • 成本下降:竞争加剧,API 价格持续下降
  • 多模态融合:图文音频统一 Embedding 空间

建议查看最新:

  • OpenAI Embeddings 文档
  • Hugging Face sentence-transformers
  • MTEB 排行榜(Embedding 模型 benchmark)

💬 互动话题:你在用哪家的 Embedding 服务?OpenAI 还是开源方案?

📖 相关阅读:


创作日期:2025-12-05 更新日期:2026-04-28

评论

登录后即可发表评论

登录账户

加载评论中...