KAG LLM + 图谱的五方面增强:知识表示增强、图结构与文本互索引、符号引导的拆解和推理、知识对齐、模型,支付宝支小宝、蚂蚁集团应用算法,医疗问答指标解释准确率 > 93%
  • 理解
  • 整体架构设计
  • 知识压缩
  • 解法拆解
  • 推理过程
  • KAG 对比微软 GraphRAG
  • 类比
  • 知识表示的增强
  • 1. 从静态二元到多元动态:
  • 2. DIKW层次表示:
  • 3. 三种建模方式的统一:
  • 4. LLM友好的知识表示:
  • 5. 实际应用优势:
  • 图结构与文本互索引:将原有的 term-based 倒排索引升级为 graph-based 倒排索引
  • 1. 传统的term-based倒排索引:
  • 2. 升级后的graph-based倒排索引:
  • 3. 具体示例展示:
  • 4. 检索过程对比:
  • 5. 优势:
  • 混合推理:符号决策、向量检索与大模型
  • 1. 混合推理的三个核心组件:
  • 2. 案例:糖尿病诊疗决策
  • 3. 推理流程示例:
  • 4. 各组件优势互补:
  • 5. 实际应用场景:
  • 6. 决策路径示例:
  • 符号引导的拆解和推理
  • 基于概念的知识对齐

论文: https://arxiv.org/pdf/2409.13731

代码: https://github.com/OpenSPG/KAG

理解

KAG是一个通过结合知识图谱(KG)和检索增强生成(RAG)来增强大语言模型(LLM)的框架。

与主要依赖向量相似度的传统RAG不同,KAG集成了结构化的知识推理。

纯向量相似度检索无法很好处理需要多跳推理的问题。

  • 知识表示方式:从纯文本到结构化知识图谱
  • 检索策略:从单纯相似度匹配到逻辑形式引导
  • 推理方法:从单次检索到多轮反思机制
  • 知识对齐:从独立知识到语义关联网络

主要组件:

  1. 面向LLM的知识表示
  • 数据/信息/知识的层次化组织
  • 图结构和文本之间的互相索引
  • 同时支持无模式和有模式约束的知识
  1. 逻辑形式求解器
  • 将复杂查询分解为子问题
  • 集成知识图谱推理和文本检索
  • 使用反思机制进行多轮求解
  1. 知识对齐
  • 标准化来自不同来源的知识
  • 将实例链接到领域概念
  • 自动完成语义关系

实验结果:

  • 显著超越现有RAG方法:
  • HotpotQA提升19.6% F1分数
  • 2WikiMultiHopQA提升33.5% F1分数
  • 成功应用于蚂蚁集团的电子政务和电子健康场景

局限性:

  1. 处理阶段需要多次调用LLM,导致计算开销大
  2. 复杂问题分解需要较高的能力
  3. 基于OpenIE的抽取会引入噪声,需要额外的对齐工作

关键洞见:
通过将结构化的知识图谱推理与传统检索相结合,KAG能够实现更准确和更有逻辑性的响应,特别是在需要多跳推理的复杂领域特定查询方面。

主要应用:

  1. 电子政务问答:帮助用户解答关于服务方法、所需材料、服务条件等问题
  2. 医疗健康问答:支持疾病、症状、疫苗、手术等专业医疗知识咨询

创新点:

  1. 引入了逻辑形式来指导检索和推理,使系统能更好地处理复杂查询
  2. 设计了知识对齐机制来提高知识的准确性和连通性
  3. 实现了图结构和文本的双向增强

这个框架的重要性在于它为构建专业领域的知识服务提供了一个可行的方案,既保持了大语言模型的灵活性,又具备了知识图谱的精确性和可解释性。

整体架构设计

KAG 由三大核心模块构成:

  • KAG-Builder (知识构建器)
  • 负责离线索引构建
  • 进行信息抽取和结构化
  • 执行知识图谱存储
  • 处理语义对齐

查询是,双重检索。

先结构化图谱搜索和推理,当图谱无法回答,变成非结构化文本信息检索。

  • KAG-Solver (求解器)
  • 采用逻辑形式引导推理
  • 结合知识图谱和语言模型推理
  • 整合多种检索方法
  • 支持多轮反思迭代

逻辑形式求解器:将复杂查询分解为可执行步骤,整合图检索和文本检索,多轮反思和迭代求解。

  • KAG-Model (模型增强)
  • 增强自然语言理解(NLU)能力
  • 提升自然语言推理(NLI)能力
  • 改进自然语言生成(NLG)能力

KAG LLM + 图谱的五方面增强:知识表示增强、图结构与文本互索引、符号引导的拆解和推理、知识对齐、模型,支付宝支小宝、蚂蚁集团应用算法,医疗问答指标解释准确率 > 93%_结构化

知识压缩

LLMFriSPG 框架通过三层结构压缩知识:

原始文档 -> 文本块(RC) -> 图信息(KGfr) -> 规范知识(KGcs)
  • 1.
  1. 原始文档 (医学教材/指南片段):
成年人2型糖尿病是一种以胰岛素抵抗和分泌不足为特征的代谢性疾病。

早期主要表现为多饮、多尿、多食和体重下降等症状。

诊断标准为:空腹血糖≥7.0mmol/L,或75g口服葡萄糖耐量试验2h血糖≥11.1mmol/L。

治疗上,首选二甲双胍单药治疗,建议从小剂量开始,500mg每日1-2次,随后根据耐受情况及血糖水平逐渐加量。

如单药效果不佳,可考虑联合其他降糖药物。同时要加强血糖监测,定期检查肝肾功能。
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  1. 文本块(RC):
    通过语义分块,将原文分成多个独立但相关的知识块:
[定义块]
成年人2型糖尿病是一种以胰岛素抵抗和分泌不足为特征的代谢性疾病。

[症状块]
早期主要表现为多饮、多尿、多食和体重下降等症状。

[诊断块]
诊断标准为:空腹血糖≥7.0mmol/L,或75g口服葡萄糖耐量试验2h血糖≥11.1mmol/L。

[治疗块]
治疗上,首选二甲双胍单药治疗,建议从小剂量开始,500mg每日1-2次,随后根据耐受情况及血糖水平逐渐加量。

[监测块]
要加强血糖监测,定期检查肝肾功能。
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  1. 图信息(KGfr):
    将文本块转化为实体和关系的图结构:
实体:
- 疾病: 2型糖尿病
- 症状: {多饮, 多尿, 多食, 体重下降}
- 检查指标: {空腹血糖, 口服葡萄糖耐量试验}
- 药物: 二甲双胍
- 监测项目: {血糖, 肝功能, 肾功能}

关系:
- (2型糖尿病, 特征是, 胰岛素抵抗)
- (2型糖尿病, 表现为, 多饮)
- (2型糖尿病, 诊断标准, 空腹血糖≥7.0mmol/L)
- (2型糖尿病, 治疗用药, 二甲双胍)
- (二甲双胍, 用法用量, 500mg每日1-2次)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  1. 规范知识(KGcs):
    将图信息规范化为标准化的医学知识:
疾病本体:
- ID: T2DM_001
- 名称: 2型糖尿病
- 分类: 代谢性疾病
- ICD编码: E11

诊断规则:
IF 空腹血糖 >= 7.0mmol/L OR 
   OGTT_2h >= 11.1mmol/L 
THEN 确诊_2型糖尿病

治疗规范:
IF 初次诊断_2型糖尿病 AND 无禁忌证
THEN 推荐_二甲双胍 {
    初始剂量: 500mg/次
    频次: 1-2次/日
    调整原则: 根据耐受性和血糖水平
}

监测方案:
WHEN 诊断_2型糖尿病
SCHEDULE {
    血糖监测: 每日,
    肝功能检查: 每3月,
    肾功能检查: 每3月
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.

这个转化过程展示了信息是如何逐步被结构化和规范化的:

  1. RC层保留了原始语义但提供了更清晰的结构
  2. KGfr层将非结构化文本转换为可计算的图结构
  3. KGcs层引入了标准化的专业规范和可执行的规则

在这个过程中:

  • 信息密度不断提高
  • 知识结构更加规范
  • 可计算性逐步增强
  • 专业性持续提升

这种层次化的知识表示让系统能够:

  • 在RC层处理自然语言问题
  • 在KGfr层进行知识推理
  • 在KGcs层执行专业决策

解法拆解

1. 知识表示解法:
子解法1 = DIKW分层表示
特征:知识有层次性和演进性
例子:医疗知识从检验数据->诊断信息->治疗方案->专家经验
之所以采用DIKW分层,是因为专业领域知识天然具有从数据到智慧的演进特性

子解法2 = 语义互联表示
特征:知识点之间存在复杂关联
例子:药品说明书中的适应症、禁忌症、用法用量等多维关联关系
之所以采用语义互联,是因为专业知识往往需要多维度联系才能准确表达

2. 互索引解法:
子解法 = 图结构倒排索引
特征:需要同时保证检索效率和语义完整性
例子:根据"青霉素过敏"能同时找到相关药品、病历和处置方案
之所以采用图结构索引,是因为需要在快速检索的同时保持知识的语义关联

3. 混合推理解法:
子解法1 = 符号推理(处理确定性规则)
特征:存在明确的专业规范和标准
例子:诊断标准的判定、处方开具的规则检查
之所以用符号推理,是因为专业决策首先要符合明确的规范要求

子解法2 = 向量检索(处理相似性问题)
特征:需要参考历史经验和类似案例
例子:寻找相似病例进行参考
之所以用向量检索,是因为专业实践中往往需要借鉴相似经验

子解法3 = 大模型推理(处理复杂综合问题)
特征:需要处理非结构化和开放性问题
例子:根据病情描述生成诊疗建议
之所以用大模型推理,是因为实际应用中常常遇到需要综合分析的复杂问题
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.

推理过程

将复杂问题分解为基本推理模式: