Embedding向量表示
Embedding 是把文本、图片、代码等对象映射成向量的技术。向量可以表达语义相似性,因此常用于语义检索、推荐、聚类、去重和 RAG。
# 1. 什么是 Embedding
文本:“如何重置密码”
-> Embedding 模型
-> [0.12, -0.08, 0.33, ...]
向量中的每个数字本身不需要人工解释,重要的是向量之间的距离或相似度能反映语义关系。
# 2. 为什么向量能做语义检索
如果两个文本语义相近,它们的向量距离通常也更近。
“怎么修改登录密码”
“如何重置账号密码”
距离近
“数据库索引怎么优化”
距离远
这让系统可以不完全依赖关键词匹配,而是按语义找到相关内容。
# 3. 常见相似度计算
| 方法 | 说明 |
|---|---|
| Cosine Similarity | 比较向量方向,语义检索常用 |
| Dot Product | 点积,相似度和向量长度有关 |
| Euclidean Distance | 欧氏距离,衡量空间距离 |
在实际系统中,具体使用哪种相似度要和 Embedding 模型、向量库索引方式保持一致。
# 4. Embedding 的典型用途
| 场景 | 用法 |
|---|---|
| RAG | 把文档 Chunk 向量化,按问题召回相关片段 |
| 搜索 | 做语义搜索,弥补关键词不足 |
| 推荐 | 根据用户兴趣和内容向量计算相似度 |
| 聚类 | 把相似文档、问题或用户分组 |
| 去重 | 识别语义重复但表达不同的内容 |
# 5. RAG 中的向量化流程
文档
-> 清洗
-> 切分 Chunk
-> Embedding
-> 存入向量库
用户问题
-> Embedding
-> 向量检索
-> 返回相似 Chunk
# 6. 常见坑
| 问题 | 原因 | 建议 |
|---|---|---|
| 检索结果不相关 | 文档切分差或模型不适合领域 | 优化切分,选择合适 Embedding |
| 关键词精确匹配缺失 | 向量检索偏语义,忽略精确词 | 使用混合检索 |
| 多语言效果差 | Embedding 模型多语言能力不足 | 选择支持目标语言的模型 |
| 向量更新困难 | 文档版本和索引不同步 | 建立增量更新和删除机制 |
# 7. 工程建议
- Embedding 模型和生成模型可以不同,按检索效果选型。
- 对专有名词、编号、代码、产品名,结合关键词检索更稳。
- 记录 Chunk 来源、版本、权限和更新时间。
- 建立检索评估集,不能只看单次体验。
# 8. Tips 快问快答
Q:Embedding 向量能还原原文吗?
A:通常不能直接还原。Embedding 主要表达语义位置,不是加密后的原文。
Q:向量维度越高越好吗?
A:不一定。维度影响表达能力、存储和检索成本。关键是模型是否适合任务。
Q:RAG 一定要用向量检索吗?
A:不一定。很多场景需要关键词、结构化过滤和向量检索结合,效果比单一向量检索更稳定。
上次更新: 2026/06/25, 17:53:09