乐于分享
好东西不私藏

从Word2Vec到BERT再到SimCSE:面试官问Embedding演进,别还停留在2013年

从Word2Vec到BERT再到SimCSE:面试官问Embedding演进,别还停留在2013年

     — 探索 AI 与 AGI 前沿 · 大模型 & AI Agent 实践 —       记录从传统开发到 AI 新时代的技术转型之旅     

面试官:”Embedding 有哪些算法?”答”Word2Vec 嘛”的,面试官追问”多义词怎么处理?”


为什么这道题必考?

这是 RAG 面试的技术深度题,考察你对 NLP 技术演进历史的理解。

很多同学知识停留在表面:

  • ❌ “Word2Vec 嘛,把词变成向量” —— 那是 2013 年的算法了
  • ❌ “用 BERT 啊,BERT 效果好” —— BERT 检索时要两两拼接,太慢了
  • ❌ “不知道 SBERT、SimCSE” —— 这些才是 RAG 标配

面试官想听的是三代演进的脉络为什么第三代是 RAG 标配


Q7:Embedding 有哪几种算法你了解过吗?

属性
内容
难度
⭐⭐⭐⭐
出现频率
🔥🔥🔥 中
题型
技术演进 + 对比分析

🎯 面试官想考察什么?

面试官想确认:

  1. 三代演进的脉络(静态词向量 → 上下文向量 → 句子级对比学习)
  2. 每一代解决的问题和局限
  3. 为什么第三代是 RAG 标配
  4. 最新趋势的关注(指令感知、Matryoshka、多模态)

满分回答框架

第一步:概述三代演进

Embedding 算法大致经历了三代演进,每一代都在补上一代的坑。

世代
代表模型
核心特点
主要局限
RAG 适用性
第一代
Word2Vec、GloVe、FastText
词级静态向量
无法处理多义词
❌ 不适用
第二代
ELMo、BERT
上下文动态向量
检索时需两两拼接,速度极慢
❌ 不适用实时检索
第三代
SBERT、SimCSE、BGE、E5
句子级 bi-encoder,对比学习
精度略低于 cross-encoder
✅ 标配

第二步:详细讲每一代

第一代:静态词向量(2013 年左右)

Word2Vec 是代表,每个词映射成固定向量。问题是:同一个词不管上下文是什么,向量永远不变。

详细说明:

  • CBOW(用周围词预测中心词)和 Skip-gram(用中心词预测周围词)
  • 「吃苹果」和「苹果手机」里的「苹果」向量完全一样
  • 处理不了多义词,表达能力有限

FastText 改进:

  • 把词拆成字符级 n-gram 子词
  • 能处理未登录词(训练集里没见过的词)

第二代:上下文相关向量(2018 年左右)

以 BERT 为代表,同一个词在不同语境下有不同的向量,表达能力大幅提升。

详细说明:

  • ELMo:双向 LSTM,第一个实用的上下文 Embedding
  • BERT:Transformer + Masked Language Model,效果全面超越 ELMo
  • 致命缺陷:要比较两个句子的相似度,必须把两个句子拼在一起跑 BERT
  • 百万级知识库要跑百万次,检索速度完全不可接受

第三代:句子级对比学习 Embedding(2019 年至今)

SBERT、SimCSE、BGE 为代表,专门为「两段文本有多相似」优化,能提前把文档向量算好存起来,查询时只算一次。

详细说明:

SBERT(Sentence-BERT):

  • 用 bi-encoder 结构:两个句子分别独立过 BERT
  • 各自得到句子级向量,用余弦相似度衡量距离
  • 速度快:chunk 向量提前算好存库,检索时只算 query 向量
  • 精度略降:看不到两段文字的交叉关系

SimCSE:

  • 对比学习:同一句话做两次 dropout 得到两个向量作为正样本
  • 解决 BERT 原生句子向量的「各向异性」问题
  • 向量分布更均匀,语义空间更合理

BGE(北京智源研究院):

  • 中文 RAG 场景最流行的开源模型
  • 同时支持 bi-encoder 和 reranker 两种形态

第三步:讲清为什么第三代是 RAG 标配

RAG 场景基本只考虑第三代模型,因为速度和精度的平衡最优。

关键对比:

特性
BERT(第二代)
SBERT(第三代)
结构
Cross-encoder
Bi-encoder
检索方式
两两拼接计算
各自编码,余弦相似度
速度
极慢(百万次计算)
极快(只算一次 query)
精度
略低但可接受
适用场景
小规模精排
大规模检索

结论:

  • 检索阶段用第三代(SBERT/BGE),速度快
  • 精排阶段可以用 Cross-encoder,精度高

第四步:提到最新趋势(加分项)

第三代还在持续进化,2025-2026 年有几个重要趋势值得关注。

详细说明:

指令感知 Embedding:

  • 如 Qwen3-Embedding
  • 模型能根据检索指令动态调整向量表示
  • 同一段文本在不同意图下产生不同向量

Matryoshka 表示学习(MRL):

  • 向量的前 N 维就能表达有意义的语义
  • 可以灵活截断维度来平衡精度和存储成本

多模态 Embedding:

  • 同一个模型既能编码文本也能编码图片
  • 支持文本和图片的跨模态检索

💡 加分回答点

加分点
话术示例
用演进逻辑讲
“每一代都在补上一代的坑:第一代处理不了多义词,第二代太慢,第三代才平衡”
区分两种结构
“Bi-encoder 速度快,Cross-encoder 精度高,RAG 检索用前者”
解释对比学习
“SimCSE 通过对比学习把向量’撑开’,解决各向异性问题”
提到最新趋势
“指令感知 Embedding 和 Matryoshka 降维是值得关注的新方向”

⚠️ 踩坑警示

错误回答
为什么不行
“Word2Vec 嘛”
那是 2013 年的算法,现在不适用于 RAG
“用 BERT 效果好”
BERT 检索时要两两拼接,百万级知识库太慢
“不知道 SBERT”
这是 RAG 标配,没听说过显得基础不扎实
“Embedding 算法都差不多”
没有理解三代演进的本质区别
“只知道一种算法”
面试官想听演进脉络和对比

🔍 面试官可能的追问

  1. “为什么 BERT 不能直接用于检索?”

    • 提示:Cross-encoder 结构必须两两拼接,百万次计算太慢
  2. “SBERT 精度比 BERT 低,为什么 RAG 还用?”

    • 提示:速度提升几个数量级,精度损失可接受,且后面还有 Rerank 精排
  3. “你们项目用的什么 Embedding 模型?”

    • 提示:中文场景用 BGE,能在业务数据上讲出选型理由
  4. “SimCSE 的对比学习原理是什么?”

    • 提示:同一句话 dropout 两次作为正样本,batch 内其他句子作为负样本

总结

要点
内容
核心考点
三代演进 + 每代特点局限 + 为什么第三代是标配
必提关键词
Word2Vec、BERT、SBERT、SimCSE、BGE、bi-encoder、对比学习
关键认知
每一代都在补上一代的坑,第三代平衡了速度和精度
加分项
区分 bi-encoder 和 cross-encoder、提到最新趋势

📌 建议收藏本文,面试前拿出来复习一遍,祝你早日拿到心仪 offer!

有问题欢迎在评论区留言,我会一一回复。


本文是《RAG 面试通关秘籍》系列第 7 篇,持续更新中…

— 本文由 AI大本营自习室 出品,转载请注明出处 —