跳转至

MegaRAG: Multimodal Knowledge Graph-Based Retrieval Augmented Generation

会议: ACL 2026
arXiv: 2512.20626
代码: https://github.com/AI-Application-and-Integration-Lab/MegaRAG (有)
领域: 多模态 RAG / 知识图谱
关键词: 多模态知识图谱, RAG, 跨模态推理, 视觉文档 QA, MLLM

一句话总结

MegaRAG 利用 MLLM 在长文档每一页并行抽取实体-关系并合并为多模态知识图谱(MMKG),再用"子图引导"的二轮 refinement 补全跨模态、跨页关系,配合双路检索与两阶段答案生成显著优于 GraphRAG/LightRAG/VisRAG,在 SlideVQA(2k) 上准确率 64.85%(baseline 最高 27.66%)。

研究背景与动机

领域现状:RAG 把外部知识塞给 LLM 已经成为长文档问答的事实标准;其中 GraphRAG / LightRAG 这一类 KG-based RAG 引入"实体-关系图",比 chunk-级稀疏/稠密检索更擅长多跳推理,能在百万 token 量级的语料上保持可扩展性。

现有痛点:1) 现有 KG-based RAG 几乎全是 纯文本 的——把书里的图表、流程图、地图等视觉信息扔掉了,而 slide deck、技术报告这类视觉文档的核心信息恰恰在图上;2) 即便存在多模态 RAG(VisRAG、ColPaLi、GME),它们只做 page-image 级的稠密检索,没有任何结构抽象,无法支撑跨页多跳推理;3) 受 MLLM 上下文窗口限制,GraphRAG/LightRAG 都是 chunk 内独立抽取再合并,跨 chunk/跨页关系被切断了,初始图天然碎片化。

核心矛盾:要"结构化抽象"就必须分页/分块抽取,要"全局覆盖"就要看到整本书——两者在 MLLM 上下文窗口下不可兼得。同时,要"利用图像"就必须把图像塞进 prompt,但塞太多又会让模型 dominate 在文本上,产生模态偏置。

本文目标:(i) 自动地、可扩展地从视觉文档构建 MMKG;(ii) 在受限上下文窗口下让每页"看到"全局图;(iii) 让答案生成同时吸收图结构 + 视觉证据而不偏科。

切入角度:作者观察到——initial KG 虽然碎片化,但已经是一份"压缩版的全局知识"。如果在第二轮 refinement 时把 当前页对应的子图 当作提示注回给 MLLM,既保留了全局长程依赖,又不会撑爆 prompt。

核心 idea:用"page-wise 并行初构 + 子图引导的全局精炼"两轮构图来打破"局部抽取 vs 全局覆盖"的 trade-off,再用双流(图答 + 视觉答)+ 后融合的两阶段生成消除模态偏置。

方法详解

整体框架

MegaRAG 想解决的是"视觉长文档问答":输入是 slide deck、技术报告这类图文混排的多页文档和一句自然语言 query,输出是同时吸收了图结构与视觉证据的答案。它的总思路是先把文档离线建成一张多模态知识图谱(MMKG),再在查询时双路取证、两阶段生成。建图分两轮——第一轮按页并行抽实体关系拿到碎片化的初始图,第二轮把"每页最相关的那一小块子图"回灌给 MLLM 补全跨页关系;查询时让一句 query 既查 KG 又查页图,最后用图答和视答各出一份中间结论再融合,避免模型在图文混输时偏科。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400, 'subGraphTitleMargin': {'top': 8, 'bottom': 16}}}}%%
flowchart TD
    DOC["多页视觉文档<br/>(正文 + 图表 + 整页渲染图)"]
    subgraph BUILD["双轮 page-wise MMKG 构建(离线)"]
        direction TB
        R1["第一轮:按页并行抽实体-关系<br/>图表当作 entity → 碎片化初始图 G⁰"]
        R1 --> R2["第二轮:每页召回 top-120 子图回灌<br/>补全跨页隐式关系 → MMKG G¹"]
    end
    Q["用户 query"]
    subgraph RET["双层关键词 + 三类向量库的统一检索"]
        direction TB
        KW["MLLM 抽 low-level / high-level 关键词"]
        KW --> VEC["GME 共享编码器查 entity / relation / page 三库<br/>一跳邻域扩展 → 子图 + 页图证据"]
    end
    subgraph GEN["两阶段答案生成"]
        direction TB
        AV["视答 a_v:仅凭页图"]
        AG["图答 a_g:仅凭子图"]
        AV --> FUSE["fusion prompt 融合 (不再触发检索)"]
        AG --> FUSE
    end
    DOC --> BUILD
    BUILD --> RET
    Q --> RET
    RET -->|页图证据| AV
    RET -->|子图证据| AG
    FUSE --> OUT["最终答案"]

关键设计

1. 双轮 page-wise MMKG 构建:用"子图回灌"打破局部抽取与全局覆盖的两难

受 MLLM 上下文窗口所限,整本书喂不进去,于是只能按页抽;可一旦按页切,跨页关系就被切断、初始图天然碎片化——这是 GraphRAG/LightRAG 共有的硬伤。MegaRAG 第一轮对每页独立提取 \((E,R)_i^0 = G(P_i)\),输入 \(P_i=\{T_i,F_i,B_i,I_i\}\)(正文、figure 图、table 图、整页渲染图),并把图表本身当作一个 entity("Annual Sales by Vehicle Type"这张柱状图就是一个节点),整页图 \(I_i\) 只供空间推理上下文不产 entity,合并时按 entity name 与 (source, target, type) 三元组去重并聚合 description,得到碎片化但已是"压缩版全局知识"的 \(\mathcal{G}^0\)

第二轮精炼写作 \((E,R)_i^1 = R(P_i, \mathcal{G}_i^0)\):用第一轮抽到的 entity name 和 relation keyword 当 query,去 \(\mathcal{G}^0\) 检索一个语义 top-120 + 一跳邻域的轻量子图 \(\mathcal{G}_i^0\)(截到 32K token),连同原始 \(P_i\) 让同一个 MLLM "对照全局"补回本页漏掉的 entity 与隐式关系(如把正文"Electric vehicle sales increased in 2023"与图节点用 illustrates 连起来)。妙处在于只在第二轮"看子图"而非把整张 \(\mathcal{G}^0\) 塞进 prompt:既不爆 token、又保住按页并行,还能召回跨页折线图与正文实体的连线。与 GraphRAG/LightRAG 的 chunk-内 gleaning 不同,这是跨页的全局信息回流,作者只跑一轮即收效明显。

2. 双层关键词 + 三类向量库的统一检索:一句 query 同时拿局部实体、全局结构和视觉页证据

只用 entity 检索会漏 relation 上下文,只用 relation 检索又会漏孤立 entity,而"找具体人名"和"找整章主题"本是两种粒度。MegaRAG 让 query 进来先由 MLLM 抽 low-level / high-level 两类 keyword,一起送进 entity 向量库取 top-\(k=60\),并行送进 relation 向量库取 top-\(k\)(每条 relation 顺带把 source/target entity 拉出),再对命中 entity 做一跳邻域扩展;同时把 query 编码后查 page-image 库取 top-\(m=6\) 作为视觉证据。

三类向量(entity、relation、page)共享同一个 GME (Qwen2-VL-2B) 编码器,落到同一个稠密空间,于是 text→entity / text→relation / text→page 的跨模态检索得以在一套编码器里完成。这正是 MegaRAG 兼顾两端的支点:VisRAG/ColPaLi 有视觉检索却没有 KG,GraphRAG/LightRAG 有 KG 却检不了图像,而它用共享编码器把两边一次收齐。

3. 两阶段答案生成:图答与视答先并行、后融合,刻意去模态偏置

作者发现单次 prompt 同时塞进子图(文本)和页图(图像)时,MLLM 会"过度关注文本"——典型的模态偏置,视觉细节被淹没。MegaRAG 因此把生成解耦成两阶段:第一阶段并行跑两个 prompt,(a) 只喂检索到的页图、让模型仅凭视觉证据出中间答案 \(a_v\),(b) 只喂子图、让模型仅凭结构化知识出中间答案 \(a_g\)

第二阶段再用一个 fusion prompt 把 \((a_v, a_g)\) 综合成最终回答,融合阶段只做整合、不再触发检索。本质上这是一种廉价的 chain-of-experts / ensemble:两路独立给出可比的中间结论,融合时各取所长,因而在 Diversity 与 Empowerment 维度提升最明显,代价只是多调一次 MLLM。

一个完整示例

以一份 SlideVQA 财报 deck 上的问题"2023 年电动车销量为何上升"为例:建图阶段,含销量柱状图的那一页先在第一轮被抽成"电动车""2023""Annual Sales by Vehicle Type(图节点)"等碎片 entity;第二轮该页拿自己的 entity name 去 \(\mathcal{G}^0\) 召回相邻的能源采购折线图子图,MLLM 据此补上"销量图 illustrates 正文结论""与可再生能源采购相关"等跨页关系,写入 \(\mathcal{G}^1\)。查询阶段,query 被拆成 low-level("电动车销量")与 high-level("新能源趋势")两类 keyword,分别命中 entity/relation 库并一跳扩展,同时直接召回那几张销量与能源页图。生成阶段,视答 \(a_v\) 从页图读出柱状趋势,图答 \(a_g\) 从子图读出"政策—采购—销量"的关系链,融合 prompt 把二者合成既有数字又有因果的最终答案。

损失函数 / 训练策略

MegaRAG 完全无需训练。建图与生成的所有 LLM 调用(GPT-4o-mini 建图/生成、GPT-4.1-mini 当 judge)都是 zero-shot prompting、temperature=0;GME-Qwen2-VL-2B 用现成多模态 encoder,单卡 RTX 3090 跑 encoding;文档解析用 MinerU 抽 text/figure/table;检索 \(k=60\)\(m=6\),refinement 跑 1 轮即足。这种"工程拼接"使它极易复用到任意新文档,当晚拿到就能跑。

实验关键数据

主实验

UltraDomain 纯文本 global QA(vs LightRAG,胜率%,越高越好)

领域 Comprehensiveness Diversity Empowerment Overall
Agriculture 65.6 vs 4.0 70.4 vs 10.4 76.0 vs 4.8 75.2 vs 4.8
CS 68.8 vs 3.2 72.0 vs 12.8 75.2 vs 10.4 76.8 vs 4.8
Legal 54.4 vs 9.6 69.6 vs 14.4 73.6 vs 12.0 72.0 vs 11.2
Mix 76.8 vs 3.2 76.8 vs 11.2 80.8 vs 4.0 80.0 vs 7.2

多模态局部 QA(Accuracy %)

方法 SlideVQA(2k) FinReport FinSlides TechReport TechSlides
NaiveRAG 11.34 29.66 14.64 36.63 32.94
GraphRAG (L) 6.80 24.50 11.98 29.60 26.81
LightRAG 27.66 31.30 13.02 42.74 31.39
MegaRAG 64.85 39.51 58.37 51.51 60.86

SlideVQA(2k) 上 MegaRAG 是最强 baseline LightRAG 的 2.3 倍;FinSlides 上提升绝对值高达 +45 pt

消融实验(DLCV / World History 多模态 global QA,胜率%)

配置 DLCV Overall World History Overall 说明
MegaRAG (full) 完整模型
A1: text-only graph 14.4 / 57.6 / 28.0 1.6 / 78.4 / 20.0 构图阶段去掉所有视觉输入
A2: 仅页检索(无 MMKG) 0.0 / 100.0 / 0.0 0.8 / 91.2 / 8.0 去掉 KG 检索,仅依赖 page retrieval
A3: 单阶段融合生成 1.6 / 61.6 / 36.8 0.8 / 75.2 / 24.0 不解耦图答与视答

格式为 "A_x Win / MegaRAG Win / Tie"。

MMKG 构建开销(World History 788 页)

Init Refinement Total GraphRAG
Time (min) 19.0 12.0 31.0 23.0
KG Tokens (M) 22.9 15.3 38.2 1.2

约为 GraphRAG 的 \(1.4\times\) 索引时间,但抽出 473–538 个视觉 entity 是文本 baseline 完全拿不到的。推理延迟单 RTX 3090 上 ~42s/q(GME 26.4s),换强 GPU 可大幅下降。

关键发现

  • MMKG 检索是收益最大的模块:A2 去掉 KG 后 MegaRAG 几乎 100% 胜出,说明视觉文档的多跳推理几乎完全靠结构化图,单纯页检索不可替代。
  • 视觉 entity 构图是第二关键:A1 去掉视觉后纯文本图丢失图表语义,在 DLCV 这种 slide-heavy 数据上掉得最猛——证明图表节点不是装饰而是真正提供 grounding。
  • 两阶段生成对 Diversity / Empowerment 贡献最大:A3 单 prompt 融合时 MLLM 会偏文本,导致回答缺少视觉证据带来的多样性。
  • 判定模型偏差小:作者用 Gemini-3-Flash 复跑同样实验,胜率排序与 GPT-4.1-mini 一致,Cohen's \(\kappa = 0.72\)

亮点与洞察

  • "子图当 prompt"是个普适设计:MegaRAG 没有把整张图塞回去,而是动态地为每页召回"它最相关的那一小块全局结构"。这一招可以直接迁移到任何"全局信息 + 局部 chunk"的精炼场景,比如长文档摘要、code 仓库分析、长视频理解。
  • 图表作为一类 entity:传统 KG 把节点限定为 named entity(人/地/机构),而本文把一张柱状图、一张地图都看作 entity 并接入文本节点,这种 "visual-as-entity" 的本体扩展为 MMKG 提供了简单可行的模式。
  • 两阶段生成 = 廉价 ensemble:图答 + 视答并行 + 后融合本质上是 expert ensemble,但成本只是多调一次 MLLM。比单纯多模态 prompt 更稳,比真正训练多 expert 模型便宜得多。
  • 完全 training-free 仍达到 SOTA:所有组件都是 zero-shot prompting + 现成 encoder,对工业落地极友好——拿到新文档当晚就能跑。

局限与展望

  • 作者承认:实验只在单本书/单份报告内构图,跨多本书的 cross-document QA 没做;图像处理成本高,多模态数据规模有限;每张 figure 被视为单一 entity 可能漏掉细粒度对象;MLLM 抽取本身可能 hallucinate,目前无验证机制。
  • 自查:refinement 只跑一轮,作者声称收敛但没给 2-3 轮的对比曲线;评测全靠 LLM-as-judge(GPT-4.1-mini / Gemini-3-Flash),对 win-rate 类指标存在系统偏差,缺少 BLEU/ROUGE/F1 这类参考型指标做对比;GPU 单卡 42s/q 的延迟对在线场景仍偏高。
  • 改进方向:(1) 把 figure 细化拆成多 sub-entity(柱、轴、legend),用 set-of-mark 等方式做细粒度 visual entity 抽取;(2) 在 refinement 时引入 self-consistency 投票来抑制幻觉关系;(3) 跨文档场景下需引入 entity linking / canonicalization 来融合多本书的 MMKG;(4) 把生成阶段 distill 成单模型,去掉两阶段的延迟开销。

相关工作与启发

  • vs GraphRAG (Edge et al., 2024):GraphRAG 做 community-level 全局摘要 + 多 query 聚合,开销随社区数线性涨;MegaRAG 用 page-wise subgraph refinement,避免重复全局 LLM 调用,且原生支持多模态。本文显著优于 GraphRAG 在所有维度。
  • vs LightRAG (Guo et al., 2025):本文沿用 LightRAG 的双层 keyword 检索,但替换了 backbone(文本→多模态)且加了 refinement;构图开销略高但 QA 质量在所有 benchmark 全面胜出。
  • vs VisRAG / ColPaLi / GME:纯视觉 RAG,只做 page-image 检索,没有结构抽象;MegaRAG 把 GME 作为编码器复用,但额外加 MMKG 层做跨页推理。
  • vs MR-MKG / Query-driven MMKG:MR-MKG 依赖人工构建 MMKG,无法 scale;Query-driven MMKG 在线动态建图,适合短 query;MegaRAG 做离线全局图,适合长文档反复查询。
  • 启发:用 LLM 自动构 KG 已经成熟,关键是如何"在受限上下文里让局部抽取看到全局"——子图回灌是个简单可复用的范式。对视觉文档来说,把"图当 entity"是性价比极高的本体设计。

评分

  • 新颖性: ⭐⭐⭐⭐ "page-wise 并行 + 子图引导 refinement"在 MMKG 场景下是清晰、漂亮的解法,且 visual-as-entity 的 ontology 扩展是真正的多模态化。
  • 实验充分度: ⭐⭐⭐⭐⭐ 8 个数据集(4 文本 + 4 多模态)+ 5 个 baseline(含 NaiveRAG / GraphRAG / LightRAG / VisRAG / GME / ColQwen / Query-driven)+ 完整 3-stage 消融 + 两个 judge model 交叉验证 + indexing/inference 开销分析。
  • 写作质量: ⭐⭐⭐⭐ 方法图清晰,符号统一;附录给了 prompt 全文与 case study;个别地方文字稍重复,整体易读。
  • 价值: ⭐⭐⭐⭐⭐ 完全 training-free + 公开代码 + 在 visual document QA 这一极具工业价值的场景上把 baseline 拉开一倍以上,落地友好。