H-RCL 如何讓向量搜尋讀懂層級表格——MixRAG 框架深度解析

GuanLin’s Latent Space
記錄每一個學習的瞬間,分享技術心得與成長歷程

這篇文章是「Advanced RAG 架構思考」系列的第二篇技術解析,對應的綜述概覽在這裡。本篇聚焦 MixRAG(KDD 2026, arXiv:2504.09554),說明 H-RCL 表示法的數學定義、DocRAGLib 資料集、雙階段檢索設計,以及為什麼這一篇和 TableRAG 解決的是不同的問題。


前言:同樣是表格問題,但不一樣
#

讀完 TableRAG 之後,你可能會想:「好,我把表格放進 SQL 資料庫,問計算問題就交給 SQL,問題不就解決了?」

MixRAG 說:還沒。

TableRAG 解決的是「計算」問題——如何在完整表格上執行精確計算。但 MixRAG 解決的是「檢索」問題——當文件庫裡有 2,178 份文件,每份文件都包含文字和多張層級表格時,你怎麼找到「這個問題應該從哪份文件的哪張表格回答」?

這是 RAG 中的文件選擇問題,不是問答問題。而且在加入層級表格之後,這個選擇問題變得格外困難。

MixRAG 是在 KDD 2026 上發表出來的,它的核心貢獻可以分三層理解:

  1. DocRAGLib:第一個真正包含層級表格的異質文件 RAG benchmark
  2. H-RCL 表示法:讓層級表格在向量化後保留結構語意
  3. 三模組框架:從資料表示到跨模態檢索到多步推理的完整架構

核心問題:為什麼層級表格特別難
#

在進入 H-RCL 的細節之前,必須先理解「層級表格(Hierarchical Table)」的特殊性。

一般的平面表格(Flat Table)只有一行標題(Header),每個數據格的意義由這一行標題決定。這類表格線性化後,語意損失相對較小。

但當遇到財報、科學論文中常見的**「跨行/跨列合併(Row/Column Spans)」「多層級複合表頭」**時,Markdown 的線性結構會徹底崩潰。行與行之間的依賴關係、表頭對數值的制約,在 Chunking 之後化為破碎的字串,LLM 看到的只是失去上下文的孤立數字——這正是 MixRAG 要解決的核心痛點。

但真實的財務報表、醫療指引、政府統計報告,通常是層級表格

20132012
BuySellBuySell
Euro$—$2.2$—$1.5
Canadian dollar$—$35.4$—$18.9
Mexican peso$11.2$—$10.9$—
Total$11.2$37.6$10.9$20.4

這個表格中,11.2 這個數字的完整語意是:「墨西哥披索的 2013 年購買金額為 11.2(百萬美元)」。它同時由頂層標題的層級路徑(2013 → Buy)和左側標題的層級路徑(Mexican peso)共同定義。

當你把這張表格拍扁成 Markdown 文字,然後向量化,11.2 的 Embedding 可能只包含「這個數字在某個外匯表格裡」的模糊資訊,完全丟失了「2013 年」、「購買」、「墨西哥披索」這三個座標維度。

MixRAG 的問題意識:如果一個問題問的是「假設當前成長率持續,FES 2014 年的 Total Buy 和 Electric Sales to Affiliates 的 Revenues 加總是多少?」,向量搜尋必須找到這張表格所在的文件。但傳統方法的問題是:它可能因為問題中有「2014」這個年份,反而找到只包含「2014」字樣但不包含相關數據的文件。


H-RCL:讓每個數字記得它從哪裡來
#

H-RCL 與傳統 Markdown 拍扁法的對比示意
傳統拍扁法讓數字失去座標語意;H-RCL 保留完整路徑

H-RCL(Hierarchy Row-and-Column-Level)是 MixRAG 最核心的技術貢獻。理解它需要先理解三個概念層次:

概念一:層級路徑
#

每個數據格的位置,由兩條路徑共同定義:

  • 頂層路徑:從最高層標題往下串接到最底層。以上面的表格為例,11.2 的頂層路徑是 2013 → Buy
  • 左側路徑:從最左欄的標題往下串接。11.2 的左側路徑是 Mexican peso 這兩條路徑合在一起,唯一確定了表格裡任意一個數字的位置和語意。

概念二:RCL 摘要
#

對於沒有層級結構的平面表格,RCL 為每一行和每一欄各生成一句摘要:

  • 行摘要:「Mexican peso 的資料:2013 Buy 為 11.2,2013 Sell 無交易……」
  • 欄摘要:「2013 Buy 欄下:Euro 為 $–,Mexican peso 為 11.2……」

概念三:H-RCL 摘要
#

H-RCL 是 RCL 的層級版本——摘要句裡用的不是最末層的標題,而是完整的層級路徑。

11.2 為例,H-RCL 生成的行摘要是:

Mexican peso2013 年 Buy 方向的交易金額為 11.2(百萬美元)」

這句話同時包含了頂層路徑(2013 → Buy)和左側路徑(Mexican peso),向量化之後,這兩個維度的語意都保留在裡面了。

為什麼這樣有效?
#

當使用者問:「2013 年 FES 的 Total Buy 和 Revenues of Electric Sales to Affiliates 各是多少?」

H-RCL 生成的行摘要可能是:

「Mexican peso 在 2013 年 Buy 方向的交易金額為 11.2(百萬美元),在 2013 年 Sell 方向無交易,在 2012 年 Buy 方向為 10.9(百萬美元)。」

這句話的向量,包含了「Mexican peso」、「2013」、「Buy」、「11.2」等所有關鍵語意。當問題中出現「2013 年的 Total Buy」時,這個行摘要的向量和問題向量之間的 cosine 相似度,會顯著高於只包含原始表格文字的 Embedding。


DocRAGLib:第一個真正的異質文件 RAG Benchmark
#

在介紹完整架構之前,有必要先了解 DocRAGLib,因為這個資料集的設計本身就說明了問題的複雜度。

為什麼需要 DocRAGLib?
#

現有的 benchmark(如 HybridQA、HiTab、MultiHiertt)主要針對單文件 QA——給定一份文件,從中回答問題。但真實的 RAG 場景是多文件檢索:資料庫裡有幾千份文件,你要找到正確的那份。

DocRAGLib 的設計目標是填補這個空缺:提供一個包含大量異質文件的語料庫,讓系統從中找到最相關的文件來回答問題。

DocRAGLib 的組成
#

資料來源

  • MultiHiertt 資料集(金融報告,包含文字和層級表格)
  • HiTab 資料集對應的原始網頁內容(通過連結爬取,重建完整異質文件)

規模

  • 2,178 份異質文件
  • 每份文件平均 1,453 個詞、3.85 張表格
  • 88.71% 的文件包含至少 2 張表格
  • 4,468 個 QA 對(訓練/驗證/測試 = 2,990/502/976)

領域分布:金融(42.99%)、社會(25.2%)、科學(13.84%)、醫療(7.34%)、其他(10.63%)

問題複雜度

  • 9.02% 只需要文字
  • 50.78% 只需要表格
  • 40.20% 同時需要文字和表格(這是最難的部分)

其中約三分之一的問題,答案是需要精確計算才能得出的——不是靠語意推測就能回答的類型。

這樣的資料集設計,讓 MixRAG 必須同時處理「找對文件」和「算對答案」兩個挑戰,也就是接下來三個模組要解決的問題。


MixRAG 三模組架構
#

MixRAG 三模組架構:異質文件表示、跨模態檢索、多步推理
MixRAG 三個模組:H-RCL 表示 → Ensemble 檢索 + LLM 精排 → RECAP 五步推理

模組一:異質文件表示模組(Heterogeneous Document Representation Module)
#

這個模組為每份文件生成兩種表示:

文字部分

切塊前先做語意補全——把代詞和省略的主語還原成具體名稱:

原文:「Apple 發布了新 iPhone。的銷量超過預期,該公司股價隨之上漲。」

補全後:「Apple 發布了新 iPhone。iPhone 的銷量超過預期,Apple 股價隨之上漲。」

補全完之後再切成句子,過濾掉少於 5 個詞的噪音句子。這樣每個 chunk 就算脫離前後文,也能獨立被理解。

表格部分

用 H-RCL 生成層級摘要,同時保留原始的 Table Level Summary。

雙語料庫設計

兩種摘要分別存進不同的語料庫:

  • Embedding 語料庫:存 H-RCL 摘要,用於語意向量搜尋
  • BM25 語料庫:存 Table Level Summary,用於關鍵詞搜尋 這樣設計是因為兩種搜尋方式的需求不一樣。H-RCL 摘要語意豐富,向量化之後效果很好;但它把多個關鍵詞合併進一句話,BM25 反而難以精確匹配。所以讓 BM25 用原始的 Table Level Summary,語意搜尋用 H-RCL,各自發揮優勢。

模組二:跨模態檢索
#

這個模組分兩個階段,先用兩種搜尋方式廣撒網,再用 LLM 精準篩選。

第一階段:Ensemble 檢索
#

同時跑兩種搜尋:

  • BM25 檢索:關鍵詞匹配,從 Table Level Summary 語料庫取 top-40 候選
  • Embedding 檢索:語意向量搜尋,從 H-RCL 語料庫取 top-60 候選 兩組結果合併,重複出現的文件只保留一份,平均得到約 93 份候選文件。

為什麼 Embedding 的份額(60)比 BM25(40)多?H-RCL 的語意豐富性讓 Embedding 搜尋對層級表格更有優勢;BM25 的強項是精確的關鍵詞匹配,拉太多反而引入噪音。論文實驗確認 n=40、m=60 這組配置最佳,候選集包含正確文件的比例(HiT Rate)達到 0.9805

第二階段:LLM 精排
#

從 93 份縮減到 1 份,這一步讓 LLM 來做。

但直接把 93 份完整文件丟給 LLM 會超出 context window,所以 MixRAG 先做一步動態片段過濾:對每份候選文件,只取出跟問題最相關的幾個片段,組成一個「濃縮版」,再讓 LLM 從這些濃縮版裡選出最相關的那份。

不同 Reranker 的比較:

Reranker 類型模型HiT@1
LLMGPT-4o0.73
LLMGPT-4o mini0.63
Cross-EncoderMiniLM-L-12-v20.56
BGE-Rerankerreranker-v2-m30.58

GPT-4o 的 HiT@1 達到 0.73,比最強的傳統 Reranker 高出約 26%。這個差距說明在「需要跨文件邏輯推理」的精排場景,LLM 的理解能力比傳統的向量匹配更有優勢。


模組三:多步推理模組(Multi-Step Reasoning Module)
#

找到目標文件 D* 之後,MixRAG 用 RECAP 策略來生成答案。

RECAP 是 MixRAG 自創的推理框架,結合了 CoT(Chain-of-Thought)的分步推理邏輯(把思考過程拆開來寫)和 PoT(Program of Thought)的工具導向計算(讓外部工具負責算數,不靠 LLM 自己算),五個字母各代表一個步驟:

R — Restate(重述問題)

「這個問題要求我計算 2014 年的預測值,需要找到 2012-2013 年的數據並推算成長率。問題類型:數值計算型,多步計算。」

E — Extract(提取相關數據)

「從 D* 中,Total Buy 2013 = 11.2,2012 = 10.9;Electric Sales to Affiliates Revenues 2013 = 652,2012 = 515。」

C — Compute(執行計算,寫出公式)

「Total Buy 成長率 R₁ = (11.2 - 10.9) / 10.9 = 2.75% Revenues 成長率 R₂ = (652 - 515) / 515 = 26.60% 2014 年 Total Buy = 11.2 × (1 + R₁) = 11.508 2014 年 Revenues = 652 × (1 + R₂) = 825.52 加總 = 836.45(百萬)」

A — Answer(生成最終答案)

如有外部計算器,驗證公式計算結果;選擇更可靠的那個作為最終答案。

P — Present(輸出格式化答案)

「836.45(百萬美元)」

RECAP 和 PoT 的關鍵差異是:PoT 讓 LLM 寫程式,由程式執行計算;RECAP 讓 LLM 寫出計算公式,由外部計算器驗證。RECAP 的 Compute 步驟比 PoT 更靈活(可以是任何語言的公式描述),而且用外部計算器做驗證而不是完全依賴程式執行,在複雜的多步計算中更穩定。


主要實驗結果
#

檢索性能對比
#

方法HiT@1HiT@3HiT@5HiT@10EM(基於 HiT@1)
Standard RAG1.59%3.39%5.38%12.55%0.51%
Table Retrieval37.05%52.99%59.96%64.94%19.06%
LangChain (GPT-4o)23.90%41.04%48.21%52.19%13.01%
Self-RAG (GPT-4o)28.29%45.02%50.00%55.98%21.41%
RAG-Critic (GPT-4o)29.00%46.11%50.51%60.55%25.31%
MixRAG (GPT-4o)54.10%72.44%76.03%86.89%32.28%

Standard RAG 的 1.59% HiT@1 是那個慘不忍睹的數字。MixRAG 把它提升到 54.10%,提升幅度超過 33 倍

論文原文的說法是:MixRAG 的 HiT@1(54.10%)比表格檢索方法中最強的 baseline ——Table Retrieval(37.05%)——高出 46%(“significantly outperforming the strongest baseline (Table Retrieval) by 46%")。注意這裡比較的對象是 Table Retrieval,不是 RAG-Critic;RAG-Critic(29.00%)只是文字類 baseline 中最強的一個,論文摘要中的「46%」也是泛指對三類 baseline(text-only、table-only、naive-mixture)的整體提升,並非單獨對某一個 baseline 的數字。

QA 性能對比
#

方法GPT-4o EMGPT-4o mini EMGemini-2.0 EM
Direct35.34%23.55%26.64%
CoT46.87%36.84%38.01%
PoT61.90%55.64%51.84%
RECAP64.66%58.15%60.25%

RECAP 在所有測試模型上都超過了 PoT。RECAP 在 Qwen2.5-32B(開源模型)上達到 64.16%,幾乎與 GPT-4o(64.66%)持平,顯示 RECAP 策略本身的有效性不強依賴特定閉源模型。


消融實驗:H-RCL 的貢獻有多大
#

這是 MixRAG 論文中最有說服力的數據:

表格表示策略HiT@1HiT@3HiT@5HiT@10EM
Table Level Summary36.27%48.05%59.63%74.28%23.83%
General RCL Summary39.84%55.02%68.03%79.81%26.25%
H-RCL Summary54.10%72.44%76.03%86.89%32.28%

從 Table Level Summary 到 H-RCL:

  • HiT@1 提升 +17.83%——論文原文寫的相對提升是 47%(“H-RCL improves HiT@1 by 47%… compared to the Table Level Summary”);若直接用表格中的數字精算,(54.10-36.27)/36.27 約為 49.1%,與論文原文的 47% 略有差異,這裡以論文原文用語為準。
  • EM 提升 +8.45%(論文原文稱提升 28%;用表格數字精算約為 35.4%,同樣以論文原文為準)

僅僅改變表格表示方式,不換任何模型,就帶來了接近 50% 的相對提升。

換句話說:不換模型,只是改了表格的表示方式,就帶來了將近 50% 的相對提升。這個環節在工程實踐中通常被低估或忽略。

各模組的消融實驗(論文中的Table資訊):

變體HiT@1EM
完整 MixRAG54.10%32.38%
w/o Ensemble Retrieval(保留 LLM 精排,只用單一檢索器)
── 只用 Embedding47.34%27.77%
── 只用 BM2535.45%21.00%
w/o Two-stage Retrieval(同時去掉 Ensemble 與 LLM 精排,只用單一檢索器直接出結果)
── 只用 Embedding27.87%21.31%
── 只用 BM2515.57%13.11%
移除 RECAP 的 Compute 步驟54.10%25.61%

這裡有兩組容易混淆的消融:第一組「w/o Ensemble Retrieval」只去掉雙軌檢索中的一軌,但仍保留 LLM 精排,所以分數降幅較小(47.34% / 35.45%);第二組「w/o Two-stage Retrieval」是同時去掉 Ensemble 和 LLM 精排兩個階段,降幅更大(27.87% / 15.57%)。兩組的「只用 Embedding」與「只用 BM25」分數並不相同,不能混為一談。

有發現「完整 MixRAG」的 EM 在表格是 32.38%,但前面主表格與表格表示策略消融寫的是 32.28%。這是依論文資訊呈現,論文本身沒有說明這個差異從何而來,這裡還是保留論文原始數字。

移除 RECAP 的 Compute 步驟,EM 從 32.38% 降到 25.61%,下降超過 6%,說明讓 LLM 寫出計算公式(而不是直接計算)是 RECAP 最關鍵的創新。


可擴展性分析
#

論文在不同資料庫規模(280 / 500 / 1,000 / 1,500 / 2,178 份文件)下測試了 MixRAG 和 baseline 的性能衰減速度:

MixRAG 展現了最慢的性能衰減:當文件數量從 280 增加到 2,178 時,MixRAG 的 HiT@1 下降幅度顯著小於其他方法。特別是在 HiT@10 指標上,MixRAG 的曲線幾乎是平的,而其他方法都有明顯下滑。

這個結果說明 MixRAG 的設計在大規模文件庫下仍然有效,適合真實企業場景(通常有數千到數萬份文件)。


效率對比
#

方法前處理 Tokens生成 Tokens時間(秒)
Standard RAG04,6145.26
Table Retrieval1,3405,3723.81
Self-RAG2,55124,16615.47
RAG-Critic4,91734,99023.89
MixRAG1,10814,18911.76

MixRAG 的前處理 Token 用量是最低的(1,108,比 Self-RAG 少 57%,比 RAG-Critic 少 77%)。生成 Token 用量(14,189)雖然高於 Standard RAG,但比 Self-RAG 和 RAG-Critic 少 41-59%。

這個效率表現在高性能(54.10% HiT@1)和合理計算成本之間取得了很好的平衡。


工程落地的四個思考
#

一、H-RCL 的計算成本與快取策略
#

H-RCL 為每張表格的每一行和每一列生成摘要,然後送給 LLM 精修。對於包含 50 行 10 列的表格,這需要生成約 60 個 LLM 請求(50 行摘要 + 10 欄摘要)。

計算成本控制策略

  • H-RCL 摘要可以在文件入庫時一次性計算並快取,不需要在查詢時重新生成
  • 對於頻繁更新的表格,建立增量更新機制,只重新計算變更的行/列
  • 可以用較小的本地模型(如 Qwen-7B)替代 GPT-4o 做摘要生成,降低成本

二、BM25 和 Embedding 語料庫的維護
#

MixRAG 維護兩個語料庫,這增加了系統複雜度。在工程實踐中:

  • BM25 語料庫(Table Level Summary)更新快,適合用 Elasticsearch 或 OpenSearch
  • Embedding 語料庫(H-RCL 摘要)更新慢,適合用 Pinecone、Weaviate 或 Qdrant
  • 定期的雙語料庫同步是必要的運維工作

三、LLM Reranker 的成本控制
#

論文顯示 GPT-4o 作為 Reranker 最好,但成本最高。對於高併發場景:

  • 可以用 Qwen2.5-32B 替代 GPT-4o,性能相近但成本低很多
  • 對於不複雜的問題,可以跳過 LLM 精排,直接用 Embedding 排名結果
  • 建立問題複雜度分類器,只對複雜問題觸發 LLM 精排

四、RECAP 在特定場景的變體
#

RECAP 的 Compute 步驟要求 LLM 明確寫出計算公式。但對於不涉及數值計算的事實型問題(如「誰是 CEO?」),這個步驟反而是多餘的。

建議:在 RECAP 的 Restate 步驟中加入問題類型判斷,如果是非計算型問題,跳過 Compute 步驟直接到 Answer,節省 token 消耗。

在高並發或對延遲敏感的場景,可以用輕量級分類器(或小模型)在第一步就將問題分流:計算型問題走完整的 RECAP 五步流程,事實查找型問題直接簡化為單步 QA,以平衡系統的吞吐量與知識精準度,同時避免不必要的 TTFT(Time-to-First-Token)延遲。


MixRAG vs. TableRAG:選哪個?
#

目前可能想比較這兩篇論文解決的問題:

面向MixRAGTableRAG
主要問題從大型文件庫中找到正確文件在找到表格後精確回答計算問題
核心技術H-RCL 表示法 + LLM RerankerSQL 精確計算
資料庫需求向量索引 + BM25 索引向量索引 + MySQL/SQL 資料庫
適用場景企業知識庫,文件數量多,問題需要先找文件問題需要跨整張表格的精確計算(統計、聚合、排序)
互補性✅ 兩者解決不同子問題,可以組合使用

最佳實踐建議:在一個完整的 RAG 系統中,MixRAG 的表示和檢索邏輯(H-RCL + Ensemble + LLM Reranker)和 TableRAG 的執行邏輯(SQL 精確計算)是可以組合使用的。MixRAG 找到正確文件,TableRAG 在這張表格上精確執行計算。


結論
#

MixRAG 論文最值得記住的,就是這組數字:

1.59% → 54.10%

這 33 倍的提升,很大程度上來自一個決定:表格在進入向量空間之前,應該保留它的層級結構

這個決定不需要更大的模型,不需要更複雜的推理,只需要在資料準備環節做出正確的選擇。

這是 MixRAG 最直接的工程啟示:RAG 的性能天花板,通常卡在 Data Pipeline 的品質,跟模型參數量關係不大。


系列文章導航
#


延伸資源
#