文本嵌入模型:把语义变成向量

02-嵌入与向量检索 核心 约 20 分钟 #embedding#嵌入模型#双塔#对比学习 更新 2026-10-02
当前状态:未学
本文基于模型知识整理(生成时未联网核对),关键结论建议对照经典文献复核。

一句话定义

嵌入模型把文本映射为固定维度向量,使"语义相近的文本在向量空间中相近"——它由 Transformer 编码器加对比学习训练而来,是语义检索(区别于字面匹配的关键词检索)的表示基础。

为什么重要

检索质量的第一决定因素就是嵌入模型:它决定了"意思相近但用词不同"的查询能否命中(向量检索的核心价值),也决定了领域术语、多语言、长文本这些场景会不会翻车。选型与微调的收益贯穿整个 RAG 生命周期。

前置知识

kp-004(分块决定嵌入的对象)、Transformer 编码器概念。

核心概念

  • 双塔结构(bi-encoder):查询与文档各自独立编码为向量,在线只算向量相似度——可离线建索引、检索快,是检索主力的形态。
  • 对比学习(contrastive learning):训练时拉近"正对"(查询-相关文档)、推远"负对"(无关文档),InfoNCE 类损失;负样本质量决定模型判别力。
  • 指令式嵌入:现代模型(如 E5/BGE 系列)给查询与文档加不同前缀("query:"/"passage:"),区分非对称任务两侧。
  • MTEB:大规模文本嵌入基准,横向比较模型在检索/聚类/分类等任务的成绩,是选型第一站。
  • 维度与归一化:常见 384–3072 维;检索用通常做 L2 归一化,使内积等价余弦(kp-008)。

原理与机制

从词向量到上下文向量:Word2Vec 时代一词一向量无法处理多义;BERT 类编码器按上下文动态编码,但原生 [CLS] 向量不适合直接做相似度。于是用对比学习微调(SimCSE → 检索强模型谱系):批次内构造正负对,学习"查询-文档"对齐空间。知识截止同理存在:嵌入模型的知识也停在训练时刻,但检索场景主要依赖语义匹配能力而非事实记忆,所以过期问题远小于生成模型。

域内表现为什么重要:通用模型对法律、医疗、代码等领域的术语分布适配差,同义改写识别弱。对策按成本递增:① 换用领域预训练模型(如代码/多语言/中文特化模型);② 对比学习微调(用真实查询-命中对,正对可从点击日志构造,负对需难负例挖掘 hard negatives);③ 领域词表与缩写预处理。

块大小与模型上限的耦合:模型有最大输入 token(常见 512/8k),超长块会被截断——截断尾部语义直接丢失。分块(kp-004)必须配合所选模型的窗口与"语义单块纯度"要求。

图示

查询"如何申请年假" ──► Encoder_Q ──► q ∈ R^768
文档块"年假需提前3天在OA提交" ──► Encoder_D ──► d ∈ R^768
相似度 = cos(q, d)   (归一化后内积)
训练: 拉近 (q, d+)  推远 (q, d-)   ← InfoNCE 损失

实例或案例

  • 选型流程:MTEB 检索榜单初筛 → 用自有数据(100–500 条真实问答对)跑召回率对比 → 看维度/成本/私有化约束定型号。
  • 中文企业知识库常选 BGE/E5 中文系列;代码库检索选代码特化模型;多语言站选多语言模型并统一归一化。
  • 微调案例:用客服点击日志构造正对、BM25 高位但向量低位的样本做难负例,微调后 MRR 提升可观——负例质量是关键。

常见误区

  • 误区一:"榜单第一名就是最优选"。MTEB 与你的语料分布、语言、长度分布可能不一致;必须用自有评测集复筛(kp-016 的思想提前到选型)。
  • 误区二:"嵌入模型不会有幻觉问题所以随便用"。它有领域盲区与语言盲区,错配时"相关内容在库里却检索不到",症状与幻觉混在一起更难排查。
  • 误区三:"换了嵌入模型只重建向量就行"。嵌入空间整体变化,相似度阈值、去重规则、评测基线全部要重设。

与其他知识点的关系

  • kp-008:相似度怎么算。
  • kp-009:向量如何被索引加速。
  • kp-012:领域漂移、长文本、多语言的坑全集。
  • kp-021:图嵌入把同样思想推广到图结构。

自测题

  1. 双塔结构为什么适合检索而不是精确匹配?

答:查询与文档独立编码、向量可离线预计算与索引,在线只需向量运算,代价是两侧无交互、细粒度判别弱于交叉编码器。

  1. 对比学习里"难负例"为什么重要?

答:随机负例太容易区分,模型学不到细粒度边界;用"BM25 认为相关但语义不符"等难负例才能训练出可用的判别力。

  1. 换嵌入模型时哪些东西要一起动?

答:全量重嵌入重建索引、相似度阈值与归一化约定、评测基线重跑、(若维度变化)存储与索引参数重配。

延伸阅读

  • Karpukhin 等, "Dense Passage Retrieval for Open-Domain Question Answering"(EMNLP 2020)。
  • Muennighoff 等, "MTEB: Massive Text Embedding Benchmark"(EACL 2023)。
  • BGE / E5 / GTE 系列模型卡与论文。