Paper 011 |別把生成的段落黏成一坨:MMLF 用「拆問題、各自查、再融合」改善 RAG 檢索

Paper 011 |別把生成的段落黏成一坨:MMLF 用「拆問題、各自查、再融合」改善 RAG 檢索

閱讀 NAACL 2025 Findings 論文 MMLF: Multi-query Multi-passage Late Fusion Retrieval。這篇離開了前十篇的財報風險線,切進現代 LLM 驅動的檢索/RAG。核心主張很單純:用 LLM 把使用者問題拆成多個子問題、各自擴寫成假想文件、分別去檢索,最後用 Reciprocal Rank Fusion(RRF)把多份排名「晚融合」起來——而不是像 MILL 那樣把生成的段落全部黏成一坨文字再檢索。在 5 個 BEIR 資料集上,Recall@1k 平均提升 4%、最高 8%。三個消融實驗把每個設計選擇都驗證得很乾淨。


前面十篇(ai-087ai-096)都在財報風險這條線上。這篇開始切換到王釧茹老師研究地圖的另一端:檢索(Retrieval)與 RAG。對想做「財報 RAG」「ERP 文件問答」的人來說,這條線更貼近實作。

先講這篇要解決的痛點。現在大家做檢索前,流行用 LLM 幫忙「改寫查詢(query reformulation)」——因為使用者打的問題常常又短又模糊,直接拿去搜命中率不高。常見做法是把問題丟給 LLM,讓它擴寫成一段更豐富的文字再去檢索。

但一個主流方法 MILL 有個問題:它把 LLM 生成的多段文字全部串接(concatenate)成一整坨再拿去檢索。作者認為這樣會「把多個不同觀點混在一起、稀釋掉各自的貢獻」。

MMLF(Multi-query Multi-passage Late Fusion)的主張因此很單純:

與其把生成的段落黏成一坨,不如讓每一段各自去檢索,最後在「排名結果」這一層才融合。

這就是標題「late fusion(晚融合)」的意思——晚一點、在結果端才合併,而不是早早在文字端就攪在一起。


參考資料與研究團隊

  • 論文名稱:MMLF: Multi-query Multi-passage Late Fusion Retrieval(註1)
  • 公開全文 PDF:2025.findings-naacl.367.pdf
  • 出處:Findings of ACL: NAACL 2025, pages 6602–6613
  • 主要研究人員:
    • Yuan-Ching Kuo(郭元璟,中央研究院)
    • Yi Yu(中央研究院 / Ohio State University)
    • Chih-Ming Chen(陳志明,中央研究院)
    • Chuan-Ju Wang(王釧茹,中央研究院,資深作者)

一、先補幾個名詞(檢索新手看這段)

這條線的術語和財報線不同,先鋪墊一下。

名詞白話說明
IR(Information Retrieval)資訊檢索:從一大堆文件裡,找出和查詢最相關的那些
稀疏檢索 / BM25靠「字面重疊」找文件;查詢和文件用字不同就抓不到
密集檢索(dense retrieval)把查詢與文件都轉成向量,靠語意相近度找,字面不同也抓得到
Query expansion / reformulation查詢擴充/改寫:把又短又模糊的問題補成更好搜的形式
Pseudo-document(假想文件)用 LLM 針對問題「編」出一段像答案的文字,拿它去比對真文件
RAG檢索增強生成:先檢索相關文件,再交給 LLM 生成答案。檢索品質=RAG 的天花板
Recall@1k前 1000 筆結果裡,抓回了多少比例的相關文件(要廣)
nDCG@10前 10 筆排得好不好,相關的有沒有排在前面(要準)
BEIR一套涵蓋多領域的檢索基準測試資料集

一句話串起來:檢索的目標是「把相關文件撈上來且排在前面」;query expansion 是為了讓模糊的問題更好搜;MMLF 就是一種用 LLM 做 query expansion 的新管線。


二、MMLF 三步驟

MMLF 是一條三步的管線(pipeline),且完全不需要微調模型,是 zero-shot 的。

步驟 1:多查詢生成(Multi-query Generation)

把使用者的原始問題 q,用 LLM(MQR prompt)拆成 n 個子問題 q1、q2…qn,各自對應問題的不同面向。實驗固定 n=3。

目的:一個模糊問題往往同時想問好幾件事,拆開來才能各個擊破,擴大檢索涵蓋面。

步驟 2:查詢擴寫成段落(Query-to-passage Expansion)

再把每個子問題 qi,用 LLM(CQE prompt)擴寫成一段假想文件 pi。

這兩步合起來作者稱為 MQ2MP(Multi-Query to Multi-Passage)。關鍵是「先拆問題、再各自擴寫」兩階段分開——而不是一步到位。

步驟 3:晚融合(Ranked List Fusion)

把每一段 pi、再加上原始問題 q,總共 n+1 份,各自獨立去檢索,得到 n+1 份排名清單。最後用 RRF(Reciprocal Rank Fusion,倒數排名融合) 把這些清單合併成最終一份排名。

RRF 的精神:一份文件如果在「很多份清單裡都排得前面」,就給它高分。計分方式是把它在每份清單的名次取倒數再加總(名次越前、倒數越大、貢獻越多)。這樣能凸顯「跨多個觀點都一致相關」的文件,壓低只在單一觀點下偶然出現的雜訊。

Loading Diagram...

三、實驗設定

  • LLM:Llama-3-70B-Instruct(temperature 1、top_p 1)。
  • 編碼器:e5-small-v2,產生 384 維向量,用 cosine 相似度檢索。
  • 子問題數:固定 3。
  • 資料集:BEIR 的 5 個資料集——DBPedia、FIQA-2018、NFCorpus、TREC-COVID、Touche-2020。
  • 指標:Recall@1k(主)、nDCG@10。
  • 為求公平,關掉 pseudo-relevance feedback、mutual verification、few-shot 等進階技巧。
  • 對照方法:Raw Query(原始問題直接搜)、Query2Doc、CoT(Chain-of-Thought)、LC-MQR(LangChain 多查詢檢索器)、MILL(主要競爭對手)。

四、主結果:五個資料集全面勝出

在 5 個 BEIR 資料集上,MMLF 的 Recall@1k 與 nDCG@10 都優於全部五個對照方法。相對最強競爭者 MILL,Recall@1k 平均提升約 4%、最高約 8%

MMLF 各資料集的 Recall@1k(取自消融表最佳設定):

資料集MMLF Recall@1k
DBPedia79.17
FIQA-201891.02
NFCorpus67.03
TREC-COVID48.82
Touche-202081.44
平均73.50

作者強調:在這些方法本來就跑得很高的前提下,還能平均再拉 4%,是相當實在的進步。


五、三個消融實驗:把每個設計選擇都驗一遍

這篇的價值不只在「贏」,更在它用三個消融實驗(ablation study),逐一證明每個設計決策都有必要。以下都以 Recall@1k 平均分呈現。

5.1 融合方式:晚融合(RRF)勝過黏成一坨

融合方式Recall@1k 平均
concatenation(早融合,黏成一坨)69.76
CombSUM(分數相加)72.81
RRF(倒數排名融合)73.50

RRF 這種「以排名為基礎的晚融合」在 Recall@1k 上最好,直接支持了論文的核心主張——別在文字端黏成一坨(concatenation 最差)。(補充:在 nDCG@10 上 CombSUM 反而最佳,作者誠實列出這個例外。)

5.2 原始問題要不要留?要,而且要「獨立留」

設定Recall@1k 平均
不放原始問題71.51
原始問題「串接」進每段71.92
原始問題「獨立」參與融合73.50
獨立 + 串接都做73.24

結論:原始問題要保留(別完全被改寫取代),而且要讓它獨立成一路去檢索、再參與融合,效果最好——又一次呼應「別把東西黏在一起」。

5.3 兩階段(先拆問題再擴寫)勝過一步到位

設定Recall@1k 平均
MQ(只用子問題,不擴寫)68.92
MP(直接用原問題擴寫成段落)71.27
MQ2MP(先拆問題、再各自擴寫)73.50

只拆問題(MQ)或只擴寫(MP)都不夠好;「先拆再擴」的兩階段 MQ2MP 把兩者的好處都留住了。這證明步驟 1 與步驟 2 分開做是值得的。


六、這篇對「做 RAG 系統」的人有什麼用

MMLF 的三個設計原則,其實可以直接搬到自建的財報/ERP 文件問答系統上:

  1. 拆問題:使用者一句模糊的問題,先讓 LLM 拆成幾個子問題,命中面更廣。
  2. 各自檢索、別黏成一坨:多個擴寫段落分開檢索,用 RRF 在結果端融合,比串成一大段再搜更好。
  3. 保留原始問題獨立參與:改寫是為了補強,不是取代;原問題那一路要留著。
  4. 不需微調:整條管線是 zero-shot,換個 LLM 與編碼器就能用,落地成本低。

而它也誠實點出代價(見下)。


七、研究限制(作者明列)

7.1 計算成本高

要跑多次 LLM 推論(拆問題 + 每個子問題各擴寫一段),autoregressive 逐字生成本來就慢;子問題越多、成本越高。雖然段落可平行處理,仍是即時或大規模系統的瓶頸。

7.2 檢索負擔加倍

每段假想文件都要獨立檢索,再用 RRF 融合,文件庫一大、查詢量一高,額外開銷就明顯。

7.3 子問題數量未做消融

實驗固定 3 個子問題,但沒有系統性測試「幾個子問題最划算」——查詢多樣性、檢索效果與計算成本之間的取捨,留待後續研究。

補一個筆者觀察:所有結果都在 BEIR 的英文資料集上,換到中文財報/繁中 ERP 文件的效果仍需自行驗證;且 late fusion 的好處建立在「多個子問題確實涵蓋不同面向」之上,若 LLM 拆出來的子問題彼此重複,優勢會縮小。


八、總結

  • MMLF 是一條 zero-shot 的 LLM 查詢改寫 + 檢索管線,三步:拆子問題 → 各自擴寫成假想文件 → RRF 晚融合。
  • 核心主張:別把生成的多段文字串接成一坨(早融合),而要各自檢索、在排名端晚融合,保留每個觀點的獨立貢獻。
  • 在 5 個 BEIR 資料集上,Recall@1k 相對最強對手 MILL 平均提升約 4%、最高約 8%,且兩個指標全面勝出。
  • 三個消融各自證明:RRF 晚融合 > 串接;原始問題要獨立保留;兩階段 MQ2MP > 只拆或只擴寫。
  • 代價是多次 LLM 推論與加倍的檢索負擔;子問題數量的取捨尚未研究。

一句話收束:

好的檢索改寫,重點不是把資訊揉成更大一坨,而是讓每個觀點各自發聲、最後在結果端公平投票——這就是「late fusion」的價值。


參考資料

  1. Yuan-Ching Kuo, Yi Yu, Chih-Ming Chen, and Chuan-Ju Wang. MMLF: Multi-query Multi-passage Late Fusion Retrieval. Findings of NAACL 2025, 6602–6613.
  2. Gordon V. Cormack et al. Reciprocal Rank Fusion Outperforms Condorcet and Individual Rank Learning Methods. SIGIR 2009.
  3. Liang Wang et al. Query2doc: Query Expansion with Large Language Models. 2023.
  4. Pengyue Jia et al. MILL: Mutual Verification with Large Language Models for Zero-Shot Query Expansion. 2024.
  5. Nandan Thakur et al. BEIR: A Heterogeneous Benchmark for Zero-shot Evaluation of Information Retrieval Models. 2021.

免責聲明: 本文為論文閱讀與技術研究筆記。所述檢索方法與實驗數據僅供技術研究參考,實際套用於不同語言或領域(如繁中財報、ERP 文件)的效果仍需自行驗證。