Operations 09
Retrieve
四路融合检索
交互
切换查询并开关检索策略。点击 "RRF Fusion" 查看多策略结果如何融合。
Query:
Semantic
向量相似度
张伟住在上海浦东新区
0.92
张伟去年住在北京朝阳区
0.88
张伟经常去杭州出差
0.71
Keyword
关键词匹配
张伟住在上海浦东新区
0.95
张伟去年住在北京朝阳区
0.90
张伟的公司地址在深圳
0.60
Graph
图谱遍历
张伟 → 居住于 → 上海 (当前)
0.96
张伟 → 就职于 → 字节跳动(上海)
0.78
上海 → 位于 → 中国东部
0.55
Temporal
时间加权
张伟住在上海浦东新区 [2025-03 至今]
0.98
张伟住在北京朝阳区 [2023-01 ~ 2025-02]
0.45
张伟住在杭州 [2021-06 ~ 2022-12]
0.20
单一策略远远不够
同一个问题,不同检索策略会给出不同答案。没有哪种是万能的:
| 策略 | 擅长 | 弱项 |
|---|---|---|
| 语义搜索 | 模糊查询、意图理解 | 精确名称、专有名词 |
| 关键词搜索 | 精确名称、特定术语 | 同义词、意图理解 |
| Graph 遍历 | 关系推理、多跳查询 | 模糊搜索、无明确实体 |
| 时间过滤 | 区分当前与历史事实 | 与时间无关的查询 |
Hindsight 的 TEMPR:四路融合
Hindsight(1.8K stars)并行运行四种策略,然后通过 RRF(Reciprocal Rank Fusion)融合结果。
路径 1:语义 — vector 相似度搜索
路径 2:关键词 — BM25 关键词匹配
路径 3:Graph — 实体 graph 遍历
路径 4:时间 — 时间加权排序
————————————
RRF 融合:求倒数排名之和,重新排序
路径 2:关键词 — BM25 关键词匹配
路径 3:Graph — 实体 graph 遍历
路径 4:时间 — 时间加权排序
————————————
RRF 融合:求倒数排名之和,重新排序
什么是 RRF?
一种简单高效的融合算法。对每个结果,求其在所有策略中排名倒数之和:
score(d) = sum( 1 / (k + rank_i(d)) )
其中 k 是平滑常数(通常为 60)。即使某个结果只在一种策略中排名靠前,RRF 也能给它一个合理的综合得分。
效果
在 LongMemEval 上,Hindsight 的 TEMPR 达到 91% 准确率,而全上下文基线约为 46%。多路融合远优于"把所有内容塞进上下文"。
要点
没有银弹。每种检索策略都有盲区。工程最优解是多路并行检索 + 排名融合,让各策略相互弥补。这也是 Graphiti 同时支持 graph 遍历和 vector 搜索的原因。
下一节
Memory 不仅是存取。新信息不断涌入,旧 Memory 需要整合与再思考。下一节:Memory 的演化。