概念更新于 2026-06-21 · 版本 1.0
什么是 Embeddings 与向量搜索?
Embedding(嵌入)是一个数值向量,用于表示文本(或图像、音频、代码)的含义,从而使语义相似的项在向量空间中彼此接近。向量搜索用于查找与查询最接近的 Embedding,从而实现按含义而非关键词进行搜索。Embedding 是检索增强生成(RAG)、语义搜索、聚类和推荐的核心支柱。
证据: 基准测试置信度: 高来源: 基准测试来源: 论文
定义
Embedding 是一种稠密数值向量,用于对数据片段的含义进行编码,其位置使得相似的项在向量空间中彼此接近;向量搜索则用于检索与查询最接近的 Embedding。
核心要点
- Embedding 将含义转化为向量;相似的事物在空间中彼此接近。
- 向量搜索通过语义相似度进行检索,而非精确的关键词。
- 它们为 RAG、语义搜索、聚类和推荐提供支持。
- 混合搜索(向量 + 关键词)的效果通常优于其中任何一种单一方式。
- 分块(Chunking)和 Embedding 模型的选择决定了检索质量。
背景
计算机比较的是数字,而非含义。Embedding 弥合了这一差距:Embedding 模型将文本映射为向量,使得“取消我的订阅”和“如何退订”即使没有共同的词,也会落在彼此临近的位置。
这正是语义检索成为可能的原因。系统不再匹配关键词,而是对查询进行 Embedding,并找到最接近的已存储向量——这是 RAG 和现代搜索检索相关内容的基础。
架构
索引:内容被拆分为分块(Chunks),每个分块通过 Embedding 模型生成一个向量,然后存储在向量索引中。查询:对查询进行 Embedding,索引通过相似度度量(例如余弦相似度)返回最接近的向量。
生产系统会添加重排器(Re-ranker)以优化最靠前的结果,将向量搜索与关键词搜索相结合(混合搜索),并根据元数据和权限进行过滤。质量在很大程度上取决于分块和 Embedding 模型。
组件
Embedding 模型分块(Chunking)向量索引 / 数据库相似度度量(余弦)重排器(Re-ranker)混合(关键词)搜索
优势
- 按含义搜索,对措辞具有鲁棒性。
- 跨语言和多模态匹配。
- RAG 和语义搜索的支柱。
- 一旦建立索引,大规模查询的成本非常低。
风险
- 糟糕的分块会降低所有下游结果的质量。
- Embedding 模型不匹配会损害相关性。
- 向量可能会泄露敏感信息;请确保存储安全。
- 纯向量搜索可能会遗漏精确匹配的需求(请使用混合搜索)。
工具与技术
Embedding 模型(OpenAI、Cohere、开源模型)向量数据库(pgvector、Pinecone、Vertex AI Vector Search)重排器混合搜索引擎
示例
- 在帮助中心进行语义搜索,匹配的是意图而非关键词。
- 检索相关段落以作为 RAG 回答的依据。
- 利用工单的 Embedding 按主题对支持工单进行聚类。
常见问题解答
- Embedding 与关键词有什么区别?
- 关键词搜索匹配的是精确的词语;Embedding 匹配的是含义,因此即使使用释义和同义词,仍能检索到正确的内容。
- 什么是向量搜索?
- 通过余弦距离等相似度度量,查找与查询 Embedding 最接近的已存储 Embedding——即按语义接近度进行搜索。
- 为什么要将向量搜索和关键词搜索结合起来?
- 向量擅长表达含义,但可能会遗漏精确的术语(代码、名称)。混合搜索融合了这两者,以获得最佳的召回率和准确率。
- Embedding 是 RAG 的核心吗?
- 是的。RAG 对文档 and 查询进行 Embedding,通过向量搜索检索最接近的分块,并以此作为模型回答的依据。