
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%。三個消融實驗把每個設計選擇都驗證得很乾淨。
WRITTEN BY

- Name
- Harry Chang
前面十篇(ai-087 到 ai-096)都在財報風險這條線上。這篇開始切換到王釧茹老師研究地圖的另一端:檢索(Retrieval)與 RAG。對想做「財報 RAG」「ERP 文件問答」的人來說,這條線更貼近實作。
先講這篇要解決的痛點。現在大家做檢索前,流行用 LLM 幫忙「改寫查詢(query reformulation)」——因為使用者打的問題常常又短又模糊,直接拿去搜命中率不高。常見做法是把問題丟給 LLM,讓它擴寫成一段更豐富的文字再去檢索。
但一個主流方法 MILL 有個問題:它把 LLM 生成的多段文字全部串接(concatenate)成一整坨再拿去檢索。作者認為這樣會「把多個不同觀點混在一起、稀釋掉各自的貢獻」。
MMLF(Multi-query Multi-passage Late Fusion)的主張因此很單純:
與其把生成的段落黏成一坨,不如讓每一段各自去檢索,最後在「排名結果」這一層才融合。
這就是標題「late fusion(晚融合)」的意思——晚一點、在結果端才合併,而不是早早在文字端就攪在一起。
- 參考資料與研究團隊
- 一、先補幾個名詞(檢索新手看這段)
- 二、MMLF 三步驟
- 三、實驗設定
- 四、主結果:五個資料集全面勝出
- 五、三個消融實驗:把每個設計選擇都驗一遍
- 六、這篇對「做 RAG 系統」的人有什麼用
- 七、研究限制(作者明列)
- 八、總結
- 參考資料
參考資料與研究團隊
- 論文名稱: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 的精神:一份文件如果在「很多份清單裡都排得前面」,就給它高分。計分方式是把它在每份清單的名次取倒數再加總(名次越前、倒數越大、貢獻越多)。這樣能凸顯「跨多個觀點都一致相關」的文件,壓低只在單一觀點下偶然出現的雜訊。
三、實驗設定
- 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 |
|---|---|
| DBPedia | 79.17 |
| FIQA-2018 | 91.02 |
| NFCorpus | 67.03 |
| TREC-COVID | 48.82 |
| Touche-2020 | 81.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 文件問答系統上:
- 拆問題:使用者一句模糊的問題,先讓 LLM 拆成幾個子問題,命中面更廣。
- 各自檢索、別黏成一坨:多個擴寫段落分開檢索,用 RRF 在結果端融合,比串成一大段再搜更好。
- 保留原始問題獨立參與:改寫是為了補強,不是取代;原問題那一路要留著。
- 不需微調:整條管線是 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」的價值。
參考資料
- 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.
- Gordon V. Cormack et al. Reciprocal Rank Fusion Outperforms Condorcet and Individual Rank Learning Methods. SIGIR 2009.
- Liang Wang et al. Query2doc: Query Expansion with Large Language Models. 2023.
- Pengyue Jia et al. MILL: Mutual Verification with Large Language Models for Zero-Shot Query Expansion. 2024.
- Nandan Thakur et al. BEIR: A Heterogeneous Benchmark for Zero-shot Evaluation of Information Retrieval Models. 2021.
免責聲明: 本文為論文閱讀與技術研究筆記。所述檢索方法與實驗數據僅供技術研究參考,實際套用於不同語言或領域(如繁中財報、ERP 文件)的效果仍需自行驗證。