概念更新于 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,通过向量搜索检索最接近的分块,并以此作为模型回答的依据。

参考文献