Autonomous Knowledge Graph Exploration with Adaptive Breadth-Depth Retrieval¶
会议: ACL 2026
arXiv: 2601.13969
代码: https://github.com/mims-harvard/ark
领域: 图学习 / 知识图谱检索 / RAG / LLM Agent
关键词: 知识图谱, 自适应检索, 广度深度权衡, 工具使用, 轨迹蒸馏
一句话总结¶
本文提出 ARK:一个 training-free 的知识图谱检索 agent,只暴露「全局词法搜索」和「单跳邻居展开」两个最小工具,让 LLM 自主在广度和深度之间切换,无需种子节点或固定跳数;在 STaRK 三图上把 Hit@1 平均推到 59.1%,最高比 training-free baseline 提升 31.4%,并可把策略 label-free 蒸馏进 Qwen3-8B。
研究背景与动机¶
领域现状:把知识图谱(KG)接进 RAG 已是主流,因为 KG 把证据组织成「实体 + 类型化边」,能复用、能做关系约束。当前 KG 检索有两条路线:(i) 相似度检索(BM25、ada-002、GritLM、KAR)覆盖广但浅;(ii) 多跳遍历(Think-on-Graph、GraphFlow)能跟关系链但要先找 seed entity,且常常需要任务特定训练。
现有痛点:相似度方法把局部邻居编码进 embedding 后就「冻结」了,多跳查询要么扩展上下文、要么堆 message passing,复杂度爆炸;遍历方法对 seed 敏感——种子选错或不全,搜索就被困在局部、永远摸不到正确证据。更糟的是大量方法依赖图特定训练,换图就完蛋。
核心矛盾:KG 查询本质上同时有两种需求——广度(涉及多实体或松散概念,需要全图覆盖)和深度(证据藏在多跳路径上);但现有系统只能在一种模式下擅长,没法在一条 trajectory 内自适应切换。
本文目标:搭一个 training-free 框架,让 LLM 在一条 trajectory 内自由选「全局搜」还是「关系展开」,不锁定 seed,也不预设跳数;同时设计能用 label-free 方式蒸馏进小模型的工具接口。
切入角度:把检索从「在固定索引上打分」改成「带工具的交互式 agent 决策」,工具集刻意做到最小(只 2 个原语),让能力来自 LLM 的工具使用,而非工具本身的复杂度。
核心 idea:用「全局 BM25 搜索 + 类型过滤的单跳邻居」两个原语 + 一个 ReAct 风格 agent,把多跳遍历表达成「邻居调用的多次组合」,把广度-深度切换交给 LLM 自己决定。
方法详解¶
整体框架¶
ARK 把知识图谱检索从"在固定索引上打分"改造成"带工具的交互式 agent 决策",核心是让 LLM 在一条轨迹里自己决定该"广撒"还是"深挖"。图被形式化为 \(G = \langle V, E, \phi_V, \phi_E, d_V \rangle\),agent \(\mathcal{A} = \langle \text{LLM}, \mathcal{T} \rangle\) 拿到查询 \(Q\) 后产出轨迹 \(\tau = ((s_1, A_1, o_1), \dots, (s_T, A_T, o_T))\):每一步从两个工具里挑一个调用、拿到新观测,同时维护一个有序候选列表 \(\mathcal{R}\)(把工具返回的节点 append 进去,或调用 finish 收尾)。文本相关性自始至终用 BM25 的 \(\operatorname{rel}(q, d_V(v))\) 算,快且稳,适合 agent 在轨迹中反复发短查询;可选地并发跑 \(n\) 个独立 agent 再投票聚合。整套框架本体 training-free,能力全压在 LLM 的工具使用上,而非工具本身的复杂度。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400, 'subGraphTitleMargin': {'top': 8, 'bottom': 16}}}}%%
flowchart TD
Q["查询 Q + 知识图谱 G"] --> AGENT
subgraph AGENT["极简双工具接口(单 agent ReAct 循环)"]
direction TB
R["ReAct agent:每步选一个工具调用"]
R -->|文本主导查询| GS["全局搜索<br/>全图 BM25 取 Top-k"]
R -->|关系主导查询| NB["邻居展开<br/>单跳邻域 + 类型过滤"]
GS --> CAND["有序候选列表 R"]
NB --> CAND
CAND -->|未结束继续探索| R
end
AGENT -->|并发 n 个独立 agent| VOTE["并发自一致<br/>频次投票 + 先发现优先"]
VOTE --> OUT["输出排序候选列表"]
AGENT -. GPT-4.1 teacher 轨迹 .-> DISTILL["Label-free 轨迹蒸馏<br/>SFT 学生 Qwen3-8B"]
DISTILL -. 蒸馏后替换 backbone .-> AGENT
关键设计¶
1. 极简双工具接口:只给两个原语,把多跳交给组合。
传统遍历 agent 的老毛病是"seed 选错就全盘皆输",一旦起点不对就被困在局部、永远摸不到正确证据。ARK 干脆只暴露两个工具:Global Search \(\operatorname{Search}_G(q, k)\) 在全图节点描述上做 BM25 取 Top-k,提供"进入图的全局锚点";Neighborhood Exploration \(\operatorname{Neighbors}(v, q, F)\) 在节点 \(v\) 的一跳邻域 \(N_F(v) = \{u \in N(v) \mid \phi_V(u) \in F_V, \phi_E(\{u,v\}) \in F_E\}\) 内按 BM25 排前 k,支持节点/边类型过滤 \(F = (F_V, F_E)\) 和子查询 \(q\)。LLM 通过 ReAct 提示交替调用:文本主导的查询(如 AMAZON)就连续 global search 拿候选;关系主导的查询(如 MAG 找作者论文)就先 global search 锚一个起点,再用多次 Neighbors 把多跳路径拼出来。关键在于 global search 在整条轨迹里永远可用,等于给 agent 一个随时能"重新看全图"的逃生口,根治了 seed 锚定病;多跳深度也不预设,agent 看够了自己 finish。
2. 并发自一致:靠投票筛出稳定共识而非更多候选。
单个 agent 在高分支的图上很容易 drift,越搜越偏。ARK 借鉴 LLM 推理里的 self-consistency,同时跑 \(n\) 个带随机解码的独立 agent,每个产出自己的 \(\mathcal{R}^{(i)}\),最终按节点在所有轨迹里的出现频次排序,平票时用"最早出现位置"破——既奖励多数共识又奖励早发现。整个 rank fusion 用最简单的"拼接 + 频次排序"实现。实验里 voting 明显强于 ordering(拼接保首次)和 random(乱序),说明并发的价值不是"凑更多候选"而是"凑稳定信号";而且 agent 之间彼此独立,端到端延迟取决于最慢的那个而非求和,几乎是白捡的性能。
3. Label-free 轨迹蒸馏:把工具使用策略灌进 8B 学生。
ARK 用大闭源模型推理贵,于是把策略蒸馏到小模型。做法是拿 GPT-4.1 当 teacher 在训练集上跑 ARK 收集轨迹(每 query 3 条、最多 20 步、不做拒绝采样),这些轨迹本身就是"带工具调用 + 工具返回"的完整对话;学生 Qwen3-8B 用 next-token loss 只在 assistant token 上微调,只学"调哪个工具、参数怎么填",全程不碰任何 ground-truth 相关性标签。训练用 LoRA、16384 上下文、lr=1e-5 跑一个 epoch(单 H100 约五小时),按 validation early stop。label-free 是这套蒸馏真正实用的关键——上一张新图只要 teacher 跑得起就能产出训练数据,不需要人工 relevance 标注。
损失函数 / 训练策略¶
ARK 本体 training-free,只有蒸馏阶段做 SFT。总预算约 18,000 trajectories / 图、约 94.4M tokens;训练时用 mask 把 user 消息和 tool output 屏蔽掉,loss 只在 assistant 的工具调用 token 上计算。聚合规则(频次 + 先发现优先)是写死的、不参与学习。
实验关键数据¶
主实验(STaRK,GPT-4.1 backbone)¶
| 类别 | 方法 | AMAZON Hit@1 | MAG Hit@1 | PRIME Hit@1 | 平均 Hit@1 | 平均 MRR |
|---|---|---|---|---|---|---|
| Training-free / Retrieval | BM25 | 44.94 | 25.85 | 12.75 | 27.85 | 36.68 |
| Training-free / Retrieval | KAR | 54.20 | 50.47 | 30.35 | 45.01 | 52.67 |
| Training-free / Agent | Think-on-Graph + GPT-4o | 20.67 | 23.33 | 16.67 | 20.22 | 31.43 |
| Training-free / Agent | ARK | 55.82 | 73.40 | 48.20 | 59.14 | 67.44 |
| 需训练 / Retrieval | mFAR | 53.0 | 55.9 | 40.0 | 49.63 | 60.20 |
| 需训练 / Retrieval | MoR | 52.19 | 58.19 | 36.41 | 48.93 | 58.77 |
| 需训练 / Agent | GraphFlow | 47.85 | 39.09 | 51.39 | 46.11 | 54.89 |
| 需训练(蒸馏) | ARK distilled (Qwen3-8B) | 54.99 | 61.66 | 31.87 | 49.51 | 58.47 |
蒸馏学生在 AMAZON 几乎追平 teacher(55.82 → 54.99),MAG +26.6 / PRIME +13.5 绝对点优于 base Qwen3-8B;teacher 保留率最高 98.5%。
消融实验(10% 测试子集)¶
| 配置 | AMAZON Hit@1 | MAG Hit@1 | PRIME Hit@1 | 含义 |
|---|---|---|---|---|
| Full ARK | 58.5 | 79.2 | 49.2 | 完整双工具 |
| w/o Neighbors | 54.5 | 30.5 | 23.1 | 砍掉邻居展开,MAG/PRIME 灾难性掉点 |
| Neighbors w/o \(q\) | 56.0 | 72.1 | 44.7 | 邻居不按子查询排序,温和掉点 |
| Neighbors w/o \(F\) | 55.5 | 79.2 | 42.2 | 关掉类型过滤,PRIME(异构 biomed)掉 7 个点 |
聚合策略对比:Voting 在 MAG 73.40 / Ordering 71.24 / Random 38.04(Hit@1),证明并发不是「凑更多候选」而是「凑稳定共识」。
关键发现¶
- ARK 会按查询自适应调工具:AMAZON 上 87.7% 调用是 global search(文本主导),MAG / PRIME 上 65.3% / 52.3% 调用转向邻居展开(关系主导),完全不需要人为告诉它「这是文本查询还是关系查询」。
- 类型过滤是异构图的关键:PRIME 是生医多类型图,关掉 \(F\) 后掉 7 个 Hit@1 点;同质图(AMAZON)影响小。这说明在重 schema 的图上类型约束几乎和遍历同等重要。
- 成功 trajectory 用邻居很节制:失败 case 要么完全不调邻居(不知道该多跳),要么调超过 10 次(漂移);成功 trajectory 在选择性扩张上止于约 10 次以内,验证了「自适应停止」的重要性。
- BM25 反而比 dense 强:在 ARK 内 BM25 在 AMAZON / PRIME 上 Hit@1 比 text-embedding-3-large 高 5–9 点;猜测原因是 agent 可以多轮迭代「补救」词法不匹配,dense 的优势在单次召回,但在多步搜索中被稀释。
亮点与洞察¶
- 「最小工具集 + 强 LLM」打败「复杂工具集 + 训练」:只用 2 个原语就吊打 GraphFlow 这种 RL-trained agent(除了 PRIME),强调当前阶段架构创新可能不如「把搜索决策权交回 LLM」更有效。
- Global search 永不退休:让 global search 在整条 trajectory 都保留可用,agent 就有「回到全图」的逃生口,根除遍历 agent 的 seed 锚定病。这个设计可以迁移到任何需要「全局视野 + 局部精修」的检索任务(数据库 query、代码导航、文件系统搜索)。
- Label-free distillation 的可复用性:把 teacher 的工具使用轨迹直接蒸到 student,省掉了 relevance 标注的成本,这套范式对任何「LLM agent + 工具」类系统都适用——只要 teacher 跑得起就能蒸。
局限与展望¶
- 延迟代价:agent 需要多轮 LLM 调用,端到端延迟比单次稠密检索高得多;高并发 / 在线场景吃力。
- 全局搜索是 BM25 的,对释义、跨语言别名、领域同义词不友好;在低文本密度的图(如纯关系图)上表现可能掉很多。
- 最强配置依赖大闭源 LLM(GPT-4.1),开源 backbone 即便蒸馏后在 PRIME 这种长 horizon 任务上仍明显落后 teacher。
- 只在 STaRK 三图上评测,是否在工业级图(动态、亿级节点)成立尚未验证;类型 schema 噪声大时类型过滤可能反成负担。
相关工作与启发¶
- vs Think-on-Graph: ToG 也是 training-free LLM 多跳遍历,但靠 beam search 扩 path、没有 global search 退路,容易锚错;ARK 把 global search 内化为可随时回退的工具。
- vs GraphFlow: GraphFlow 用 GFlowNets RL 学遍历策略,PRIME 上更强但需要图特定训练;ARK training-free 而且工具接口更小。
- vs KAR / mFAR / MoR: 这些是 retriever-style 方法,靠学多字段融合或 query expansion;ARK 把检索改成 agent 交互,能力上限不被 ranker 训练所限。
- vs ReAct / AvaTaR: 把 ReAct 范式专门套到 KG 检索上,给出了「最小工具集 + 投票 + 蒸馏」的完整 recipe,可借鉴到通用 tool-using agent 设计。
评分¶
- 新颖性: ⭐⭐⭐⭐ 工具极简化的想法本身朴素,但「training-free + label-free 蒸馏」组合很有意思
- 实验充分度: ⭐⭐⭐⭐⭐ STaRK 三图 + 多 backbone + 蒸馏曲线 + 工具/聚合/相关性多重 ablation
- 写作质量: ⭐⭐⭐⭐ 形式化清晰,把广度-深度 trade-off 讲得很直观
- 价值: ⭐⭐⭐⭐⭐ 给 KG-RAG 一个干净的「baseline + 蒸馏」方案,工业可直接 fork