HiRAG:分层知识增强的检索生成模型

Retrieval-Augmented Generation with Hierarchical Knowledge

HiRAG是一种创新的检索增强生成(RAG)方法,通过引入分层知识来增强RAG系统在索引和检索过程中的语义理解和结构捕获能力。该方法有效解决了现有RAG系统中存在的两个关键挑战:语义相似实体间的远距离结构关系以及局部与全局知识之间的知识鸿沟。

RAG系统架构图

传统RAG系统架构示意图

HiRAG由两个核心模块组成:HiIndex(分层索引)和HiRetrieval(分层检索)。HiIndex构建分层知识图谱,增强语义相似实体间的连接;HiRetrieval则通过三层知识检索机制(全局层、桥接层和局部层)有效桥接局部实体描述与全局社区知识,弥合知识层之间的差距。

warning 现有RAG系统的挑战

arrow_right
挑战1:语义相似实体间的远距离结构关系 - 现有方法过度依赖源文档,导致构建的知识图谱中许多实体在结构上不相近,尽管它们共享语义相似的属性。
arrow_right
挑战2:局部与全局知识之间的知识鸿沟 - 现有方法通常从全局或局部视角检索上下文,但未能解决这些知识层之间的内在差异,导致LLM难以协调不同范围的知识,产生不连贯的推理或不完整的答案。

architecture HiRAG整体架构

HiRAG框架由两个核心模块组成:

layers
HiIndex(分层索引) - 构建具有不同知识粒度的分层知识图谱。高层中的摘要实体表示更粗粒度、高级别的知识,但它们可以增强低层中语义相似实体之间的连接性。
search
HiRetrieval(分层检索) - 从每个检索到的社区中选择最相关的实体,并找到连接它们的最短路径,作为桥接层知识来连接局部和全局级别的知识。然后,LLM将使用这三层知识作为上下文生成响应。
// HiRAG框架的基本表示 M = (LLM, R(φ, ψ)) // 当回答查询q时,基于图的RAG系统生成最优响应a* a* = arg max_{a∈A} M(a|q, G) // 图数据库G从原始外部数据库D构建 G = φ(D) = {(h, r, t)|h, t ∈V, r ∈E}

HiRAG框架的数学表示

auto_awesome HiRAG的创新点与贡献

check_circle
识别并解决基于图的RAG系统中的两个关键挑战 - 语义相似实体间的远距离结构关系和局部与全局信息之间的知识鸿沟。
check_circle
提出无监督分层索引和新型桥接机制 - 用于有效知识整合,显著推进了RAG系统的最新技术。
check_circle
广泛的实验证明了方法的有效性和效率 - 全面的消融研究验证了每个组件的贡献。
HiRAG:分层知识增强的检索生成模型 - 现有RAG系统的挑战

现有RAG系统的挑战

HiRAG解决的关键问题

warning 现有RAG系统的两大挑战

尽管基于图的检索增强生成(RAG)方法在特定领域任务中显著增强了大型语言模型(LLM)的性能,但现有RAG方法未能充分利用人类认知中自然固有的分层知识,这限制了RAG系统的能力。我们识别出两个关键挑战:

link_off 挑战1:语义相似实体间的远距离结构关系

error_outline
现有方法过度依赖源文档,导致构建的知识图谱(KG)中许多实体在结构上不相近,尽管它们共享语义相似的属性。
实例说明
例如,实体"BIG DATA"和"RECOMMENDATION SYSTEM"在"DATA MINING"概念下共享语义相关性,但它们在KG中的远距离结构关系反映了语料库驱动的脱节。这种语义相关性与结构接近性之间的不一致在KG中是系统性的,破坏了它们在RAG系统中的效用,特别是在上下文连贯性至关重要的场景中。
lightbulb
这种不一致性导致RAG系统难以有效捕获和利用实体间的语义关系,从而限制了其在复杂推理任务中的表现。

compare_arrows 挑战2:局部与全局知识之间的知识鸿沟

error_outline
现有方法通常从全局或局部视角检索上下文,但未能解决这些知识层之间的内在差异。
实例说明
考虑查询"请介绍Amazon",全局上下文强调Amazon在技术领域的参与,如大数据和云计算,而局部上下文检索直接链接到Amazon的实体(如子公司、领导层)。当这两个知识层作为查询的上下文输入LLM而没有上下文对齐时,LLM可能难以协调它们的不同范围,导致不连贯的推理、不完整的答案,甚至矛盾的输出。
lightbulb
这凸显了需要新方法来桥接分层知识层,确保RAG系统中的连贯推理。
分层知识系统示例

分层知识系统示例:展示不同层级知识之间的关系与桥接

psychology 为什么分层知识是关键?

check_circle
自然认知模式 - 分层知识是图结构和人类认知中的自然概念,但在现有方法中被忽视。
check_circle
语义与结构统一 - 分层知识能够同时考虑语义相关性和结构接近性,解决两者之间的不一致问题。
check_circle
多粒度知识表示 - 不同层级的知识具有不同的粒度,能够从多个角度为查询提供上下文。
HiRAG:分层知识增强的检索生成模型 - HiRAG整体架构

HiRAG整体架构

分层知识增强的检索生成模型

architecture HiRAG框架概述

HiRAG由两个核心模块组成:HiIndex(分层索引)和HiRetrieval(分层检索)。HiIndex构建分层知识图谱,增强语义相似实体间的连接;HiRetrieval则通过三层知识检索机制有效桥接局部实体描述与全局社区知识,弥合知识层之间的差距。

RAG系统流程图

RAG系统流程图示例

1
构建分层知识图谱
2
检索三层知识
3
生成综合答案

layers HiIndex:分层索引模块

auto_awesome
核心功能 - 构建具有不同知识粒度的分层知识图谱,高层中的摘要实体表示更粗粒度、高级别的知识,增强低层中语义相似实体之间的连接性。
build
构建过程 - 从基本知识图谱开始,通过高斯混合模型(GMM)进行语义聚类,生成摘要实体,并建立层级间关系,形成多层知识结构。
// HiIndex分层索引伪代码 function HiIndex(Documents): // 1. 构建基本知识图谱 G0 = extractBasicKG(Documents) // 2. 初始化分层KG hierarchicalKG = {G0} L0 = entities(G0) // 3. 迭代构建更高层 i = 1 while True: // 获取实体嵌入 Zi = getEmbeddings(Li-1) // 语义聚类 Ci = GMM(Li-1, Zi) // 计算聚类稀疏度 CSi = calculateSparsity(Ci) // 检查是否停止 if changeRate(CSi) ≤ threshold: break // 生成摘要实体 Li = generateSummaryEntities(Ci) // 建立层级关系 Ei = establishRelations(Li-1, Li) // 更新分层KG Gi = updateKG(Gi-1, Li, Ei) hierarchicalKG.add(Gi) i += 1 return hierarchicalKG

HiIndex分层索引算法伪代码

search HiRetrieval:分层检索模块

auto_awesome
核心功能 - 检索三层知识(全局层、桥接层和局部层),有效桥接局部实体描述与全局社区知识,弥合知识层之间的差距。
build
检索过程 - 从每个检索到的社区中选择最相关的实体,并找到连接它们的最短路径,作为桥接层知识,然后LLM将使用这三层知识作为上下文生成响应。
// HiRetrieval分层检索伪代码 function HiRetrieval(query, hierarchicalKG): // 1. 检索局部层知识 localEntities = topNEntities(query, hierarchicalKG, n) // 2. 检索全局层知识 communities = findCommunities(localEntities) globalReports = getCommunityReports(communities) // 3. 构建桥接层知识 keyEntities = [] for community in communities: keyEntities.extend(topNEntities(query, community, m)) // 找到关键实体间的最短路径 reasoningPaths = [] for i in range(len(keyEntities)-1): path = shortestPath(hierarchicalKG, keyEntities[i], keyEntities[i+1]) reasoningPaths.append(path) // 构建桥接层子图 bridgeSubgraph = buildSubgraph(hierarchicalKG, reasoningPaths) // 4. 生成答案 answer = LLM.generate(query, localEntities, bridgeSubgraph, globalReports) return answer

HiRetrieval分层检索算法伪代码

insights HiRAG的工作流程

looks_one
索引阶段 - 使用HiIndex模块构建分层知识图谱,从基本实体和关系开始,逐层构建更高层次的摘要实体,形成多粒度的知识表示。
looks_two
检索阶段 - 使用HiRetrieval模块,针对用户查询同时检索局部实体描述、全局社区报告和桥接这两者的推理路径,形成三层知识上下文。
looks_3
生成阶段 - 将三层知识上下文输入LLM,生成全面、准确且连贯的答案,有效解决语义相似实体间的远距离结构关系和局部与全局知识之间的知识鸿沟问题。
HiRAG:分层知识增强的检索生成模型 - HiIndex分层索引模块详解

HiIndex分层索引模块详解

构建分层知识图谱的方法与原理

layers HiIndex模块概述

HiIndex是HiRAG的核心模块之一,负责构建分层知识图谱,通过在不同层级构建不同知识粒度的知识表示,增强语义相似实体之间的连接性。HiIndex模块通过以下步骤构建分层知识图谱:

知识图谱技术架构图

知识图谱技术架构示例

1

构建基本知识图谱

description
文档分块 - 将输入文档分割成有重叠的文本块,确保信息完整性。
category
实体提取 - 使用LLM从文本块中提取实体,形成实体集合V₀。
share
关系抽取 - 基于文本块信息,使用LLM生成实体对之间的关系(或边)E₀。
2

高斯混合模型聚类

bubble_chart
实体嵌入 - 获取第(i-1)层中实体的嵌入表示Zᵢ₋₁。
group_work
语义聚类 - 使用高斯混合模型(GMM)基于Zᵢ₋₁对Lᵢ₋₁进行语义聚类,形成聚类集合Cᵢ₋₁。
calculate
聚类稀疏度计算 - 计算聚类稀疏度CSᵢ,用于确定是否继续构建更高层。
3

生成摘要实体

summarize
元摘要实体引导 - 使用元摘要实体集合X(如"组织"、"人物"、"位置"、"事件"、"技术"等)引导LLM生成摘要实体。
psychology
LLM生成摘要 - 将每个聚类中的实体描述输入LLM,生成第i层的摘要实体集合Lᵢ。
compare_arrows
建立层级关系 - 创建Lᵢ₋₁和Lᵢ中实体之间的关系E{ᵢ₋₁,ᵢ},连接每个聚类中的实体到相应的摘要实体。
4

更新知识图谱

update
合并实体和关系 - 更新知识图谱的实体集Vᵢ和关系集Eᵢ。
repeat
迭代构建 - 重复上述过程,从第1层构建到第k层,直到聚类稀疏度变化率低于阈值ε。
hub
社区检测 - 使用Leiden算法计算分层KG中的一组社区P,并为每个社区生成可解释的语义报告。

code HiIndex算法实现

// HiIndex分层索引算法伪代码 function HiIndex(Documents, threshold ε): // 1. 构建基本知识图谱 (第0层) chunks = splitDocuments(Documents, overlap) V0 = extractEntities(chunks) // 使用LLM提取实体 E0 = extractRelations(chunks, V0) // 使用LLM提取关系 G0 = {(h, r, t) | h, t ∈ V0, r ∈ E0} L0 = V0 Z0 = {Embedding(v) | v ∈ L0} i = 1 while True: // 2. 高斯混合模型聚类 Zi-1 = {Embedding(v) | v ∈ Li-1} Ci-1 = GMM(Li-1, Zi-1) // 语义聚类 // 3. 计算聚类稀疏度 CSi = 1 - Σ(S∈Ci-1 |S|(|S|-1)) / (|Li-1|(|Li-1|-1)) // 检查是否停止构建更高层 if changeRate(CSi) ≤ ε: i = i - 1 break // 4. 生成摘要实体和关系 Li = {} E{i-1,i} = {} for Sx in Ci-1: L, E = LLM(Sx, X) // 使用元摘要实体X引导LLM Li = Li ∪ L E{i-1,i} = E{i-1,i} ∪ E // 5. 更新知识图谱 Zi = {Embedding(v) | v ∈ Li} Ei = Ei-1 ∪ E{i-1,i} Vi = Vi-1 ∪ Li Gi = {(h, r, t) | h, t ∈ Vi, r ∈ Ei} i = i + 1 k = i Gk = {(h, r, t) | h, t ∈ Vk, r ∈ Ek} // 6. 社区检测 P = LeidenAlgorithm(Gk) // 使用Leiden算法计算社区 // 为每个社区生成语义报告 for p in P: report = LLM.generateCommunityReport(p) return Gk, P

HiIndex分层索引算法伪代码

insights HiIndex的关键创新

auto_awesome
语义与结构双重连接 - 分层KG引入高层摘要实体,创建低层中远距离实体间的快捷方式,有效桥接语义相关概念。
auto_awesome
多分辨率语义聚合 - 高层实体作为语义中心,抽象语义相关实体的集群,无论它们在低层中的距离如何。
auto_awesome
动态层级确定 - 通过聚类稀疏度变化率自动确定分层KG的层数,确保知识表示的最优粒度。
auto_awesome
社区检测增强 - 结合分层结构和Leiden算法,形成既反映显式关系模式又隐含概念关系的知识分组。
HiRAG:分层知识增强的检索生成模型 - HiRetrieval分层检索模块详解

HiRetrieval分层检索模块详解

三层知识检索机制与桥接策略

search HiRetrieval模块概述

HiRetrieval是HiRAG的第二个核心模块,负责从分层知识图谱中检索三层知识,有效桥接局部实体描述与全局社区知识,弥合知识层之间的差距。HiRetrieval通过以下步骤实现三层知识检索:

检索增强生成流程图

检索增强生成(RAG)流程示例

1
检索局部层知识
2
检索全局层知识
3
构建桥接层知识
grain

局部层知识检索

filter_list
实体相似度计算 - 计算用户查询q与分层知识图谱Gk中每个实体v的语义相似度Sim(q, v)。
sort
Top-N实体选择 - 选择与查询最相关的前n个实体,形成局部层知识集合V̂。
description
实体描述获取 - 获取这些实体的详细描述,作为局部层知识上下文。
public

全局层知识检索

hub
社区发现 - 找到与检索到的实体V̂相连的社区P̂,这些社区包含与查询相关的全局知识。
summarize
社区报告获取 - 检索这些社区的语义报告,代表与用户查询相关的粗粒度知识。
visibility
全局视角提供 - 社区报告提供更广泛的上下文,帮助理解实体在更大知识体系中的位置和关系。
compare_arrows

桥接层知识检索

star
关键实体选择 - 从每个检索到的社区中选择与查询最相关的前m个关键实体,形成V̂P̂集合。
timeline
推理路径构建 - 找到连接V̂P̂中每对关键实体的最短路径,形成推理路径集合R。
share
桥接子图构建 - 基于R构建子图R̂,收集连接局部实体和全局社区知识的三元组。

code HiRetrieval算法实现

// HiRetrieval分层检索算法伪代码 function HiRetrieval(query, hierarchicalKG Gk, communities P, n, m): // 1. 检索局部层知识 V̂ = TopN({v ∈ Vk | Sim(q, v)}, n) // 选择最相关的前n个实体 // 2. 检索全局层知识 P̂ = ∪{p ∈ P | p ∩ V̂ ≠ ∅} // 找到与检索实体相连的社区 // 3. 构建桥接层知识 V̂P̂ = {} R = {} // 选择每个社区中的关键实体 for p in P̂: V̂P̂ = V̂P̂ ∪ TopN({v ∈ p | Sim(q, v)}, m) // 找到关键实体间的最短路径 for i in [1, |V̂P̂| - 1]: R = R ∪ ShortestPathGk(V̂P̂[i], V̂P̂[i + 1]) // 构建桥接层子图 R̂ = {(h, r, t) ∈ Gk | h, t ∈ R} // 4. 生成答案 answer = LLM.generate(query, V̂, R̂, P̂) return answer

HiRetrieval分层检索算法伪代码

insights HiRetrieval的关键创新

auto_awesome
三层知识整合 - 同时检索局部实体描述、全局社区报告和桥接这两者的推理路径,形成全面的知识上下文。
auto_awesome
知识鸿沟弥合 - 通过桥接层知识有效连接局部细节和全局视角,解决现有RAG系统中局部与全局知识之间的鸿沟问题。
auto_awesome
推理路径优化 - 使用最短路径算法构建关键实体间的连接,确保桥接知识的简洁性和相关性。
auto_awesome
上下文对齐 - 三层知识上下文经过对齐处理,确保LLM能够协调不同范围的知识,生成连贯、准确的答案。

psychology 为什么HiRetrieval有效?

check_circle
解决挑战1 - 通过分层知识图谱Gk引入高层摘要实体,创建低层中远距离实体间的快捷方式,高效桥接语义相关概念。
check_circle
解决挑战2 - 通过构建连接与查询最相关实体及其关联社区的推理路径,确保细粒度细节和更广泛的上下文知识都能为推理过程提供信息。
check_circle
综合优势 - 通过整合(1)通过分层快捷方式连接的语义相似实体,(2)全局社区上下文,以及(3)连接局部和全局知识的优化路径,生成全面、上下文感知的用户查询答案。
HiRAG:分层知识增强的检索生成模型 - 实验结果与性能评估

实验结果与性能评估

HiRAG与基线方法的性能比较

assessment 实验设置

science
评估任务 - 在Query-Focused Summarization (QFS)Multi-Hop QA (MHQA)两个任务上评估HiRAG性能。
dataset
数据集 - QFS任务使用UltraDomain基准的Mix、CS、Legal和Agriculture数据集;MHQA任务使用2WikiMultiHopQA和HotpotQA数据集。
compare
基线方法 - NaiveRAG、GraphRAG、LightRAG、FastGraphRAG、KAG、RAPTOR、HippoRAG和HippoRAG2。
psychology
评估指标 - QFS任务使用胜率(Win Rate)评估全面性(Comprehensiveness)、赋能性(Empowerment)、多样性(Diversity)和整体表现(Overall);MHQA任务使用精确匹配(EM)和F1分数。
系统架构比较图

不同RAG系统架构比较

summarize QFS任务性能比较

HiRAG在所有四个数据集和四个评估维度上均显著优于现有方法。以下是Mix数据集上的胜率比较(%):

方法 全面性 赋能性 多样性 整体
NaiveRAG vs HiRAG 16.6 vs 83.4 11.6 vs 88.4 12.7 vs 87.3 12.4 vs 87.6
GraphRAG vs HiRAG 42.1 vs 57.9 35.1 vs 64.9 40.5 vs 59.5 35.9 vs 64.1
LightRAG vs HiRAG 36.8 vs 63.2 34.9 vs 65.1 34.1 vs 65.9 34.1 vs 65.9
FastGraphRAG vs HiRAG 0.8 vs 99.2 0.8 vs 99.2 0.8 vs 99.2 0.8 vs 99.2
KAG vs HiRAG 2.3 vs 97.7 3.5 vs 96.5 3.8 vs 96.2 2.3 vs 97.7
insights
关键发现 - HiRAG在所有数据集和评估维度上均显著优于基线方法,特别是在全面性和赋能性方面表现突出。

quiz MHQA任务性能比较

HiRAG在MHQA任务上也取得了最佳性能,以下是EM和F1分数比较(%):

方法 EM F1
NaiveRAG 54.4 60.8
RAPTOR 39.7 48.4
GraphRAG 45.7 61.0
LightRAG 2.5 12.1
FastGraphRAG 20.8 44.8
HippoRAG 59.4 67.3
HippoRAG2 60.5 69.7
HiRAG 69.0 74.4
insights
关键发现 - HiRAG在2WikiMultiHopQA和HotpotQA两个数据集上的EM和F1分数均显著优于所有基线方法,表明其在多跳问答任务上的强大性能。

analytics 消融研究

HiIndex贡献
+15.9%
移除HiIndex后整体胜率平均下降
桥接层贡献
+11.3%
移除桥接层后整体胜率平均下降
layers
HiIndex的重要性 - 移除HiIndex(使用扁平KG)后,胜率在大多数情况下显著下降,证明分层索引在增强语义相似实体连接性方面的重要作用。
compare_arrows
桥接层的重要性 - 移除桥接层知识后,胜率在所有数据集和评估维度上均显著下降,证明桥接层在弥合局部与全局知识鸿沟方面的关键作用。

speed 效率与成本分析

schedule
索引成本 - HiRAG需要更多时间和资源进行索引以获得更好的性能,但索引是离线过程,使用DeepSeek-V3对Mix数据集进行索引的总成本仅为约7.55美元。
online_prediction
检索效率 - 与KAG和LightRAG不同,HiRAG在检索过程中不消耗任何token,因此在线检索更高效。
balance
性能-成本权衡 - 尽管HiRAG的索引成本较高,但其显著的性能提升和高效的在线检索使其在实际应用中具有很高的价值。
HiRAG:分层知识增强的检索生成模型 - HiRAG的创新点与贡献

HiRAG的创新点与贡献

分层知识增强的检索生成模型的核心价值

auto_awesome 主要贡献概述

HiRAG通过引入分层知识来增强RAG系统在索引和检索过程中的语义理解和结构捕获能力,解决了现有RAG系统中的两个关键挑战,并在多个任务上取得了显著的性能提升。

知识图谱技术架构图

知识图谱技术架构示例

psychology

识别并解决关键挑战

check_circle
挑战1:语义相似实体间的远距离结构关系 - 通过分层知识图谱引入高层摘要实体,创建低层中远距离实体间的快捷方式,高效桥接语义相关概念。
check_circle
挑战2:局部与全局知识之间的知识鸿沟 - 通过三层知识检索机制(全局层、桥接层和局部层)有效桥接局部实体描述与全局社区知识,弥合知识层之间的差距。
architecture

提出创新架构与方法

layers
HiIndex:无监督分层索引 - 构建具有不同知识粒度的分层知识图谱,高层中的摘要实体表示更粗粒度、高级别的知识,增强低层中语义相似实体之间的连接性。
compare_arrows
HiRetrieval:新型桥接机制 - 通过三层知识检索机制有效桥接局部实体描述与全局社区知识,确保细粒度细节和更广泛的上下文知识都能为推理过程提供信息。
analytics

实验验证与性能提升

trending_up
显著性能提升 - 在QFS和MHQA任务上,HiRAG显著优于现有方法,在Mix数据集上的整体胜率比NaiveRAG高出75.2%,比GraphRAG高出28.2%。
science
全面消融研究 - 通过消融研究验证了HiIndex和桥接层知识的重要性,移除HiIndex后整体胜率平均下降15.9%,移除桥接层后平均下降11.3%。
87.6%
QFS任务整体胜率
73.7%
MHQA任务平均F1分数
+15.9%
HiIndex贡献度

explore 未来工作方向

speed
索引效率优化 - 通过并行化索引过程减少索引时间,降低构建高质量分层知识图谱的时间和资源开销。
tune
检索机制改进 - 研究更有效的查询感知排序机制,超越当前仅依赖LLM生成权重进行关系排序的方法。
extension
应用领域扩展 - 将HiRAG应用于更多专业领域和任务,验证其在不同场景下的通用性和有效性。

lightbulb HiRAG的核心价值

stars
理论与实践结合 - HiRAG不仅解决了现有RAG系统的理论挑战,还通过实际应用验证了其有效性,为RAG系统的发展提供了新方向。
stars
知识表示创新 - 通过分层知识表示,HiRAG实现了多粒度知识的有效组织和利用,为知识增强的AI系统提供了新思路。
stars
开源与社区贡献 - HiRAG已开源(https://github.com/hhy-huang/HiRAG),为研究社区提供了可复现的基准和进一步研究的基础。