Note
什么时候应使用知识图谱增强 RAG?
围绕结构化关系、多跳推理和可解释查询讨论图检索的适用场景。
在什么场景下,你会选择使用图数据库或知识图谱来增强或替代传统的向量数据库检索?
我会选择使用图数据库或知识图谱(Knowledge Graph, KG)来增强或替代传统向量数据库,主要是在处理高度关联、结构化的数据以及需要进行复杂关系推理的场景下。
向量数据库擅长的是语义相似度的模糊匹配,而知识图谱擅长的是实体与关系的精确查询。
核心应用场景:
-
需要多跳推理(Multi-hop Reasoning)的复杂问题:
- 场景描述: 当用户的问题无法通过单个文档或事实来回答,而需要沿着实体之间的关系链进行多次“跳转”才能找到答案时。
- 举例:
- “
Llama 2的作者所在的公司的CEO是谁?”- 这是一个三跳查询:
Llama 2->作者->Meta->CEO
- 这是一个三跳查询:
- “和我正在处理的这个客户(A公司)在同一个行业、并且使用了我们产品B的成功案例有哪些?”
A公司->所属行业->同行业的其他公司->使用了产品B的公司
- “
- 为什么用KG: 这类问题用向量检索几乎无法完成,但对于知识图谱来说,就是几次简单的图遍历查询。
-
当数据本身具有强结构和关联性时:
- 场景描述: 数据中包含大量的实体(人、公司、产品、地点)和它们之间明确的关系(雇佣、投资、拥有、位于)。
- 举例: 金融领域的公司股权结构、欺诈检测中的资金流动网络、医疗领域的药物-基因-疾病关系网络、供应链管理。
- 为什么用KG: 将这些数据建成知识图谱,可以最大化地利用其结构信息。例如,可以快速找到一个公司的所有子公司,或者发现两个看似无关的人之间的隐藏联系。
-
需要提供高度可解释性的答案时:
- 场景描述: 在一些严肃的应用(如金融风控、医疗诊断)中,不仅需要给出答案,还需要清晰地解释答案是如何得出的。
- 举例: “为什么将这个交易标记为高风险?” -> “因为交易方A是B公司的子公司,而B公司在一个月前被列入了制裁名单。”
- 为什么用KG: 知识图谱的查询路径本身就是一种非常直观、可解释的证据链。
增强或替代?
在大多数情况下,知识图谱和向量数据库是互补增强的关系,而非完全替代。一个常见的先进RAG模式是:
- 混合检索: 首先用LLM分析用户问题。
- 如果问题涉及复杂关系,则先查询知识图谱,找到核心的实体和事实。
- 然后,将这些从图谱中检索到的结构化信息,作为上下文,或者用来构建更精确的查询,再去向量数据库中检索相关的非结构化文本,以获得更详细的解释和背景。
- 最后,将两方面的信息汇总给LLM生成答案。