【核心理解-7】检索与语义搜索:怎么快速找到相关知识

· 分类:核心理解

这一节点回答:怎么从大知识源里捞出和问题相关的片段

【小目标】

这一节点回答:怎么从大知识源里捞出和问题相关的片段? 也就是检索的方法光谱——从传统关键词到现代向量检索,各有什么特点、什么时候用什么、怎么组合。

这里最关键的一句判断:检索不是"哪个方法先进就用哪个",而是"哪个对业务场景有效就用哪个"。 方法本身没有高低之分,以业务评测为准(Recall@K / NDCG),别只看哪一个"看起来先进"。

【方法论】

一句话结论:检索是一条从"字面精确"到"语义模糊"的光谱,按底层表示可分为稀疏检索(关键词/BM25)和稠密检索(向量)两大类,主流方法共四种,绝大多数场景用混合检索(向量 + 关键词)效果最好。

检索方法光谱(从传统到现代)
   ① 关键词检索(BM25)—— 按词项统计相关性排名,吃精确术语/编号很准
   ② 向量检索 —— 语义相似排序,处理同义改写/口语
   ③ 混合检索(Hybrid)—— 向量 + 关键词双路取并集再融合,绝大多数 RAG 的默认
   ④ 图检索 / 子图 —— 沿图谱边递归取相邻节点,多跳关系用它

四种方法逐个讲:

① 关键词检索(BM25 / 稀疏检索)—— "字面匹配"

  • 按词项在文档中的统计相关性排名(词频 + 逆文档频率)
  • 吃精确术语/编号很准——产品型号、订单号、SKU、专有名词这种"就叫这个名"的东西,关键词检索比向量还准
  • 优点:快、便宜、可解释性强(知道命中了哪个词)
  • 缺点:对同义改写/口语/错别字无能为力——用户说"充电快",库里是"快充",它就对不上

② 向量检索(语义检索 / 稠密检索)—— "语义匹配"

  • 把 query 和文档都映射成向量,按相似度排序
  • 处理同义改写/口语很强——用户换个说法也能命中
  • 优点:对自然语言友好、不依赖关键词匹配
  • 缺点:对精确术语/编号可能不如关键词准;相似度分数的可解释性差

③ 混合检索(Hybrid Search)—— "两条腿走路"

  • 向量 + 关键词双路取并集,然后用融合算法(如 RRF 倒数秩融合)合并排序
  • 绝大多数 RAG 的默认配置——取长补短,效果通常比单一方法好
  • 为什么有效:关键词补"精确命中等",向量补"语义相似等",二者覆盖的错误模式不一样,混在一起就更全面
  • 影响质量的关键:
    • 融合权重:向量和关键词各占多少比重,需要在你的数据上调
    • 重排(Rerank):用更强的模型对初筛候选精排,把真正有用的提到最前。这是检索的"第二段",通常能显著提升效果
    • 元数据过滤:先按来源/类型/时间等元数据缩小候选范围,再做语义检索。相当于"先筛再排"
    • 查询理解:改写/拆解 query(如把长问题拆成多个检索点),提升召回质量

④ 图检索 / 图增强检索(Graph Retrieval / GraphRAG)—— "沿关系找"

  • 沿知识图谱的边递归取相邻节点,多跳关系和全局综合类问题用它
  • GraphRAG:在 RAG 基础上引入知识图谱/图检索,先把文档抽成图谱,再沿图谱关系召回——适合"跨多段综合""多跳关系"类问题
  • 适合:"张三的同事是谁""A 产品的同系列还有哪些""整份报告的核心主题有哪些"这类需要沿关系推或全局归纳的问题
  • 需要知识图谱作为基础(可以从文档自动抽取构建),构建/维护成本高于纯向量 RAG

评测指标(怎么判断检索好不好):

  • Recall@K:前 K 条结果里,命中了多少个真正相关的——"捞得全不全"
  • NDCG@K:不仅看有没有命中,还看命中的排在哪——"排得好不好"
  • 铁律:方法有没有用以业务评测为准,别只看哪一个"看起来先进"。在你的数据集上测出来的才是真的。

【知识点】

  • 四大检索方法:关键词(BM25)、向量、混合、图检索。各有所长,按需选用。
  • 关键词检索吃精确术语很准:型号、编号、SKU 这类"就叫这个名"的东西,关键词可能比向量还准。
  • 向量检索吃口语/同义改写很强:用户换说法也能命中,但对精确术语可能不如关键词。
  • 混合检索是默认配置:向量 + 关键词双路融合,取长补短,绝大多数场景效果最好。
  • 重排是检索的"第二段":初筛 + 精排两段式,通常能显著提升效果。
  • 检索好不好,用业务数据说话:Recall@K 和 NDCG@K 是硬指标,别凭感觉。
  • F2.6 讲原理,F3.4 讲工程:本节点讲"为什么能检索、各方法边界",工程上怎么把 RAG 搭出来见阶段③第四章。

【名词卡】

名词 一句话解释
BM25 / 关键词检索 / 稀疏检索 按词项在文档中的统计相关性排名的经典检索方法,吃精确术语/编号很准
Semantic Search / 语义检索 / 向量检索 靠语义相似而非字面关键词检索;处理同义改写/口语
Hybrid Search / 混合检索 向量 + 关键词双路取并集再融合的检索,绝大多数 RAG 的默认
Rerank / 重排 用更强模型对初筛候选精排、把真正有用的提到最前(检索的两段式第二段)
Graph Retrieval / 图检索 沿图谱边递归取相邻节点的检索,多跳关系用它
Recall@K 前 K 条命中率——"捞得全不全",检索质量的核心离线指标
NDCG@K 排序质量评分——不仅看有没有,还看排得好不好
RRF / Reciprocal Rank Fusion / 倒数秩融合 混合检索中常用的融合算法,把多个排序结果合并
Metadata Filtering / 元数据过滤 先按来源/类型/时间等元数据缩小候选范围,再做语义检索——"先筛再排"
Query Understanding / 查询理解 改写/拆解 query 以提升召回质量的前置处理

易混对比:

  • 关键词检索 vs 向量检索:字面精确 vs 语义近似,常拼成混合检索
  • 检索 vs 重排:检索是"初筛捞一批",重排是"精排提顺序"
  • Recall@K vs NDCG@K:前者看"全不全",后者还看"排得好不好"

【练一练】

目标:亲手感受不同检索方法的差异——拿同一个问题,分别用关键词和向量思路去"捞",看各自命中什么。

实验:假设有一个手机导购知识库,里面有 6 条知识:

ID 知识内容
D1 华为 P60 搭载骁龙 8+ 处理器,配备 5000 万像素主摄,支持 66W 快充
D2 iPhone 15 采用 A16 仿生芯片,配备 4800 万像素主摄,电池容量 3349mAh
D3 小米 13 搭载骁龙 8 Gen2 处理器,支持 67W 有线快充,配备 5400 万像素主摄
D4 OPPO Find X6 Pro 搭载天玑 9200 芯片,支持 100W 超级闪充,配备 5000 万像素三摄
D5 vivo X90 搭载天玑 9200 处理器,支持 120W 双芯闪充,配备 5000 万像素主摄
D6 三星 Galaxy S23 搭载骁龙 8 Gen2 处理器,配备 5000 万像素主摄,支持 25W 快充

问题:"充电最快的手机是哪款?"

请你模拟两种检索方式:

A 组(关键词检索):

  • 找出问题里的关键词:"充电"、"最快"、"手机"
  • 在 6 条知识里找包含这些关键词的条目——哪些命中了?
  • 注意:"闪充"算不算"充电"?"快充"算不算?关键词检索能识别同义吗?

B 组(向量检索,凭你的语义直觉判断):

  • 凭你的语义直觉,哪 3 条知识和"充电最快"最相关?按相关度排序
  • 和 A 组的结果一样吗?有哪些是向量能命中但关键词命不中的?

对照思路(做完再看):

  • 关键词检索会命中 D1(快充)、D3(快充)、D6(快充)——但 D4(超级闪充)和 D5(双芯闪充)可能因为没有"充电"这个词而漏掉
  • 向量检索会把 D4、D5(闪充功率最高的)排在前面,因为"闪充"和"充电"语义相近
  • 这就是混合检索的价值——关键词补"快充/充电"精确命中的,向量补"闪充"语义相似的

思考题:如果用户问的是"120W 充电的手机"(精确数值),哪种检索更准?为什么?

相关文章