Embedding 到底是什么:从词向量到句子向量、相似度与局限性
1 几何直觉
Embedding 把离散符号映射到 (\mathbb{R}^d) 中的稠密向量,使语义相近者距离更近(以训练目标度量)。Word2Vec 时代主要是词级;现代检索常用句子/段落级向量,由深度编码器产生。
2 相似度度量
常用余弦相似度(方向一致)或点积(若向量已归一化两者等价于单调相关)。欧氏距离也可用,但要注意向量范数是否被约束。度量选择与索引结构(内积 vs L2)要一致,否则近似检索会错位。
3 训练目标多样性
对比学习(InfoNCE):拉近正样本、推开负样本;双塔召回:query/doc 各自编码;马尔可夫掩码语言模型也可衍生句向量。同一向量空间能否通用跨任务并不保证。
4 域偏移
用通用语料训练的向量在金融、医疗术语上可能失真。领域继续训练或专用模型往往必要;否则 RAG 检索显著掉线。
5 对称与非对称
「问题→文档」检索常用非对称编码器(query 与 passage 不同塔);对称模型更简单但问答匹配弱。混用模型会导致分数不可比。
5.1 向量维度与索引成本
维度越高未必越好;过高噪声维度稀释密度,且索引内存线性上涨。要在召回评测与资源曲线之间扫维度与量化等级。
5.2 归一化策略
有些管道强制 L2 normalize,有些不做;混合会导致分数阈值失效。上线统一规范化,并在日志记录版本号。
5.3 多语言向量
多语言模型若未覆盖某语种,会出现整体偏移。语种检测 + 分模型路由常见。
5.4 负样本挖掘
对比学习质量取决于负样本难度;全随机负样本太简单。hard negative mining提升判别边界,但训练不稳定需调温。
6 小结
Embedding 是语义检索与聚类的底座;相似度不是魔法距离,训练目标与域匹配决定上限。检索链路要与度量、索引、数据域同源配置,否则高分噪声频发。
6.1 与生成模型的分工
Embedding 负责「找」,生成模型负责「编」。不要用生成模型替代向量召回做海量初筛,成本与延迟都会炸。
7 聚类与异常检测侧应用
同一嵌入空间可做用户行为聚类、日志模板归类。要注意簇中心漂移:嵌入模型升级后簇划分改变,下游规则需重新标定。版本锁 + 周期性重聚类是运维常识。
8 向量数据库并非魔法
HNSW/IVF 只是近似最近邻;高召回依赖参数efConstruction、M、nprobe调优。强行追求超高召回会线性抬高延迟。SLA 表里要写清 QPS 与召回 trade-off,而不是只写「毫秒级」。
9 跨模态嵌入简述
图文共享嵌入(CLIP 类)可把图像与文本映射到同空间做检索;但与专用文本向量相比,纯文本检索未必更强。任务专用选型优于「一个大嵌入走天下」。
10 ANN 搜索参数如何影响召回
efSearch(HNSW)越大召回越高但查询越慢;nprobe(IVF)增大同理。上线前应用验证集扫参数曲线,记录 Recall@k 与 P99 延迟交点作为默认配置,而不是拍脑袋设「官方推荐值」。
11 负样本策略影响语义几何
对比学习若负样本太简单,向量空间边际不清;若太难(全批次随机),训练不稳。课程式提升负样本难度在工业界行之有效。Embedding 质量不只取决于 backbone,还取决于 batch 构造。
12 法规检索场景的特殊处理
法条用语严谨,口语查询embedding可能偏离。混合检索 + 同义词表 + 人工审核队列通常优于纯向量 Top-k。
13 向量漂移:模型升级后的运维动作
Embedding 服务升级不是「换权重文件」这么简单:旧向量与新向量不在同一几何里,存量索引要么全量重嵌入 + 重建索引,要么维护双版本并行灰度。中间态常见事故是阈值沿用旧值导致召回噪声暴增或断崖式下降。建议在验证集上重扫 Recall@k–延迟曲线,记录新版本默认阈值与拒识率,再切换生产路由。
14 批大小与难负样本:训练细节的工业含义
对比学习 batch 内负样本数量直接影响判别边界;太小则「伪负样本」过多拉坏几何,太大则显存吃紧。难负样本挖掘若不加 curriculum,早期训练会不稳定。日志应记录:负样本来源(随机/硬负/跨 batch queue)与温度,否则无法复现线上向量质量。文本截断策略也要固定:同一文档不同截断窗口会得到不一致向量,长文档应分段池化或滑动窗口聚合,并在检索侧用同样规则。
15 相关性 vs 相似度:不要把「像」当成「对」
向量近邻只说明表征接近,不说明答案正确;RAG 里常见「检索到了相似废话」。缓解路径包括:重排序 cross-encoder、基于引用 span 的打分、以及在生成侧要求「若文档未覆盖则拒答」。Embedding 团队要与生成团队对齐拒答策略,否则向量召回优化会被幻觉吞掉。
