从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 有哪几种算法你了解过吗?
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
🎯 面试官想考察什么?
面试官想确认:
-
三代演进的脉络(静态词向量 → 上下文向量 → 句子级对比学习) -
每一代解决的问题和局限 -
为什么第三代是 RAG 标配 -
最新趋势的关注(指令感知、Matryoshka、多模态)
满分回答框架
第一步:概述三代演进
Embedding 算法大致经历了三代演进,每一代都在补上一代的坑。
|
|
|
|
|
|
|---|---|---|---|---|
| 第一代 |
|
|
|
|
| 第二代 |
|
|
|
|
| 第三代 |
|
|
|
|
第二步:详细讲每一代
第一代:静态词向量(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 场景基本只考虑第三代模型,因为速度和精度的平衡最优。
关键对比:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
结论:
-
检索阶段用第三代(SBERT/BGE),速度快 -
精排阶段可以用 Cross-encoder,精度高
第四步:提到最新趋势(加分项)
第三代还在持续进化,2025-2026 年有几个重要趋势值得关注。
详细说明:
指令感知 Embedding:
-
如 Qwen3-Embedding -
模型能根据检索指令动态调整向量表示 -
同一段文本在不同意图下产生不同向量
Matryoshka 表示学习(MRL):
-
向量的前 N 维就能表达有意义的语义 -
可以灵活截断维度来平衡精度和存储成本
多模态 Embedding:
-
同一个模型既能编码文本也能编码图片 -
支持文本和图片的跨模态检索
💡 加分回答点
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
⚠️ 踩坑警示
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
🔍 面试官可能的追问
-
“为什么 BERT 不能直接用于检索?”
-
提示:Cross-encoder 结构必须两两拼接,百万次计算太慢 -
“SBERT 精度比 BERT 低,为什么 RAG 还用?”
-
提示:速度提升几个数量级,精度损失可接受,且后面还有 Rerank 精排 -
“你们项目用的什么 Embedding 模型?”
-
提示:中文场景用 BGE,能在业务数据上讲出选型理由 -
“SimCSE 的对比学习原理是什么?”
-
提示:同一句话 dropout 两次作为正样本,batch 内其他句子作为负样本
总结
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
📌 建议收藏本文,面试前拿出来复习一遍,祝你早日拿到心仪 offer!
有问题欢迎在评论区留言,我会一一回复。
本文是《RAG 面试通关秘籍》系列第 7 篇,持续更新中…
— 本文由 AI大本营自习室 出品,转载请注明出处 —
夜雨聆风