Appearance
Semantic Search
Semantic Search (语义搜索) 通过理解查询的意图而非仅仅匹配关键词,实现了从"文字匹配"到"意图理解"的跳跃。它是 RAG 系统、企业知识管理和现代搜索引擎的核心技术。
核心原理
从关键词到向量
传统搜索 (关键词匹配):
- 查询: "苹果的营养成分"
- 匹配: 包含"苹果" 和 "营养成分"的文档
- 问题: 无法理解"苹果"是水果还是公司
语义搜索 (向量匹配):
- 将查询和文档映射到同一个高维向量空间
- 计算查询与文档的相似度
- 优势: 理解同义词、上下文、意图
向量空间模型
查询: "如何制作披萨"
↓ Embedding 模型
查询向量: [0.1, -0.3, 0.8, ..., 0.2] ∈ R^d
文档 A: "意大利披萨的做法"
↓ Embedding 模型
向量 A: [0.15, -0.25, 0.75, ..., 0.18] ∈ R^d
相似度: cos(A, 查询) = 0.95 → 高相关技术组成
1. Embedding 模型
将文本转换为向量的模型:
| 模型 | 维度 | 特点 | 适用场景 |
|---|---|---|---|
| text-embedding-3 | 1,536 | OpenAI 最新,性能强 | 通用 |
| text-embedding-ada-002 | 1,536 | 成熟、稳定 | 通用 |
| bge-large | 1,024 | 开源、中文优化 | 中文场景 |
| e5-large | 1,024 | 开源、高质量 | 通用 |
| GTE | 768 | 阿里开源,效率高 | 中文场景 |
| Cohere Embed | 1,024 | 多语言 | 企业 |
2. 向量数据库
存储和检索向量的专用数据库:
| 数据库 | 特点 | 开源 | 适用规模 |
|---|---|---|---|
| Pinecone | 云服务、简单易用 | 否 | 中小规模 |
| Weaviate | 模块化、图谱支持 | 是 | 中大规模 |
| Milvus/Zilliz | 高性能、分布式 | 是 | 大规模 |
| pgvector | PostgreSQL 扩展 | 是 | 中小规模 |
| Chroma | 轻量、开发友好 | 是 | 小规模 |
| Qdrant | Rust 编写、高性能 | 是 | 中大规模 |
3. 相似度计算
常用的向量相似度度量:
- 余弦相似度 (Cosine Similarity): 最常用,对向量长度不敏感
- 欧氏距离 (Euclidean Distance): 直接计算距离
- 点积 (Dot Product): 计算效率高
混合搜索
关键词 + 语义混合
纯语义搜索有局限,混合方案更实用:
| 方法 | 原理 | 优点 |
|---|---|---|
| 重排除 (Reranking) | 先用关键词检索,再用向量重排 | 精度高、效率好 |
| 向量 + BM25 | 同时计算两种分数 | 兼顾精确匹配和语义理解 |
| 向量索引 + 过滤 | 语义检索后用关键词过滤 | 灵活控制 |
实际案例
企业文档搜索:
- 用关键词检索缩小范围 (BM25)
- 用向量相似度重排 (Embedding)
- 用 LLM 生成答案 (RAG)
RAG 中的语义搜索
架构位置
用户查询
↓
[Embedding 模型] → 查询向量
↓
[向量数据库] → Top-K 相似文档
↓
[Prompt 构建] 查询 + 上下文
↓
[LLM] 生成答案优化策略
| 策略 | 方法 | 效果 |
|---|---|---|
| 分块策略 | 文档切分方式 | 平衡精度和上下文 |
| 重叠窗口 | 分块间重叠 | 保持语义连续性 |
| 元数据过滤 | 按来源/日期筛选 | 提升相关性 |
| 重排除模型 | 专用 reranker | 提升最终精度 |
评估指标
| 指标 | 定义 | 优秀值 |
|---|---|---|
| Recall@K | 前 K 个结果中包含正确答案的比例 | 越高越好 |
| MRR | 正确答案的平均倒排序 | 越高越好 |
| NDCG | 考虑相关性级别的排序质量 | 越高越好 |
| Latency | 查询响应时间 | 越低越好 |
Synthesis
Semantic Search 是现代 AI 应用的基础设施之一。它解决了传统搜索"理解不了意图"的问题,但也引入了新的挑战:向量空间的"黑盒"特性、计算成本、与关键词搜索的整合。实践中,混合搜索 (关键词 + 语义) 通常是最佳方案,关键词负责精确匹配,语义负责理解意图。
Related Pages
- Retrieval Augmented Generation — RAG 技术
- Embedding Models / Vector Representations — 嵌入模型
- Vector Databases — 向量数据库
- LLM Evaluation — LLM 评测
Sources
"Dense Passage Retrieval for Open-Domain Question Answering" (Karpukhin et al., 2020)
"Learning Transferable Visual Models From Natural Language Supervision" (CLIP, OpenAI, 2021)
各向量数据库官方文档
BEIR 评测框架
Large Language Model (LLM) — 大语言模型的核心定义、技术原理与发展历程