机器学习基础 高级

Embedding 深入:语义检索的数学原理

深入 Embedding 的训练原理与相似度度量,理解余弦相似度、对比学习,打通 RAG 的底层逻辑。

Embedding 是怎么训出来的

现代文本 Embedding 模型用对比学习(Contrastive Learning)训练:

  • 正样本对:问句和它的正确答案(语义相关)→ 拉近向量;
  • 负样本对:随机不相关文本 → 推远向量。

训练目标就是让"语义相近的文本在向量空间中彼此靠近"。这解释了 RAG 检索的一切行为:为什么换嵌入模型会改变召回、为什么领域术语检索不准(训练数据里没见过)。

相似度怎么算

余弦相似度 = cos(θ) = A·B / (|A| × |B|)
  • 只比方向不比长度,1 = 完全同向,0 = 无关;
  • 多数向量库默认用它;点积(内积)在归一化向量上等价;
  • 欧氏距离在高维文本向量上效果通常也接近。

维度与归一化

  • 常见维度:384(MiniLM)、1536(OpenAI)、1024/2048(国产模型);维度高表达力强但存储与计算贵;
  • 归一化:很多模型输出已归一化,混用时注意是否需要重归一化,否则相似度会失真。

实战要点回连

  • 查询和文档要用同一个嵌入模型(空间不同无法比较);
  • 检索不准先怀疑:切分破坏语义、领域词没见过,其次才是换模型;
  • 评测嵌入模型质量:用"问题→正确文档"对算 Hit Rate(见 RAG 评估课)。
Embedding 是连接"机器学习"与"LLM 应用"最紧密的一座桥 —— 本站 RAG 全套课程的地基就在这里。

📝 课后练习

quiz-1 文本 Embedding 模型用对比学习训练时的目标是?