正在進行 RAG 開發的工程師們務必參考 Google 這篇資訊檢索領域的新論文,該論文介紹了一種名為 MUVERA 的先進檢索演算法。此演算法能巧妙地將複雜的多向量檢索問題,簡化為單向量的最大內積搜尋,從而在保持高精確度的同時,實現與單向量搜尋媲美的速度。
背景:從單向量到多向量
神經嵌入模型是現代資訊檢索(IR)的基石。無論是搜尋引擎還是推薦系統,其核心任務都是根據使用者的查詢(例如「聖母峰有多高?」),從海量資料中找到最相關的資訊。嵌入模型能將每個資料點(如文件、圖片)轉換為一個數值向量,即「嵌入」,並確保語義相近的資料點在數學上也相互靠近。
傳統做法是為每個資料點生成一個單一的向量嵌入。透過計算向量間的內積相似度,系統可以利用高效的最大內積搜尋(MIPS)演算法,快速找到匹配結果。然而,近年來以 ColBERT 為代表的多向量模型展現了更優越的效能。這類模型為每個資料點生成一組向量,而非單個向量,並採用更複雜的相似度函數(如 Chamfer 相似度)來捕捉更豐富、更細膩的語義關係。儘管多向量方法提升了準確度,但也帶來了巨大的計算開銷,使得檢索過程變得異常昂貴。
多向量檢索的挑戰
多向量表示儘管在可解釋性和泛化能力上表現出色,但其檢索過程面臨著嚴峻的挑戰:
1. 嵌入數量劇增:為每個詞元(token)都生成嵌入,導致需要處理的向量數量急劇增加。
2. 相似度計算複雜:Chamfer 匹配這類相似度計算是一種非線性操作,需要進行矩陣乘法,其計算成本遠高於單向量的點積。
3. 缺乏高效的搜尋方法:單向量檢索可以受益於空間劃分等高度最佳化的次線性搜尋演算法,避免全域暴力比較。但多向量相似度的複雜性使得這些快速的幾何技術難以直接應用。
因此,一個文件可能因為某個詞元與查詢高度相關而被關注,但整體上卻並非最佳匹配。這要求必須採用更複雜且計算密集的檢索方法。
MUVERA 的解決方案:固定維度編碼(FDE)
為了解決上述問題,論文《MUVERA: Multi-Vector Retrieval via Fixed Dimensional Encodings》提出了一種創新的多向量檢索演算法。其核心思想是,透過一種巧妙的數學變換,將一組多向量壓縮成一個固定維度的單一向量,即固定維度編碼(Fixed Dimensional Encoding, FDE)。
這種變換的關鍵在於,經過壓縮後,兩個 FDE 向量之間的內積能夠高度近似原始多向量集合之間的 Chamfer 相似度。這樣一來,複雜的多向量檢索問題就被成功地簡化為單向量的最大內積搜尋(MIPS)問題。
MUVERA 的工作流程可以分解為以下三步:
1. FDE 生成:透過特定的映射函數,將查詢和文件的多向量集合轉換成固定長度的 FDE 向量。
2. 基於 MIPS 的檢索:使用標準的 MIPS 索引和演算法,對文件的 FDE 向量進行高效檢索,快速召回一批最相似的候選文件。
3. 重新排序:對召回的候選集,使用原始且更精確的 Chamfer 相似度進行重新排序,以確保最終結果的準確性。
MUVERA 的一個顯著優勢是其 FDE 變換過程與具體資料集無關,這使得它對資料分佈的變化具有很強的穩健性,也非常適合流式資料處理的應用場景。更重要的是,FDE 能夠保證在特定誤差範圍內近似真實的 Chamfer 相似度。因此,經過重排後,MUVERA 能夠確保找到最匹配的多向量表示。
理論基礎
該方法的理論靈感來源於概率樹嵌入,這是幾何演算法理論中的一個強大工具,並針對內積和 Chamfer 相似度進行了適配。
FDE 生成的核心在於對嵌入空間進行隨機劃分。如果查詢和文件中的相似向量恰好落入同一個劃分區域,它們的相似度就可以被高效地近似計算。透過隨機化的劃分方案,可以從機率上保證整體的近似效果。論文中提供了嚴格的理論證明,證實了 FDE 對 Chamfer 相似度的近似能力,為使用單向量代理進行多向量檢索提供了堅實的理論基礎。
實驗結果
在 BEIR 基準測試的多個資訊檢索資料集上,MUVERA 的表現非常出色。實驗表明,相較於之前的頂尖方法(如 PLAID),MUVERA 在顯著降低延遲的同時,獲得了更高的檢索召回率。
主要發現包括:
1. 更高的召回率:與常見的多向量檢索方法(單向量啟發式)相比,MUVERA 在檢索少得多的候選文件(5-20 倍)的情況下,就能達到同等甚至更高的召回率。
2. 極低的延遲:與高度最佳化的多向量檢索系統 PLAID 相比,MUVERA 在 BEIR 基準測試中的平均召回率高出 10%,而延遲則驚人地降低了 90%。
此外,實驗還發現 MUVERA 的 FDE 可以透過乘積量化技術進行有效壓縮,在對檢索品質影響極小的情況下,將記憶體佔用減少 32 倍。
結論
MUVERA 是一種新穎、高效的多向量檢索演算法,其近似品質和實際效能都得到了理論和實驗的驗證。透過將多向量搜尋簡化為單向量 MIPS,它充分利用了現有的最佳化搜尋技術,以極高的效率實現了最先進的效能。
這項工作為高效的多向量檢索開闢了新的道路,對於搜尋引擎、推薦系統、RAG 等應用都至關重要。
相關資源
話說回來,MUVERA 這個新方法能有效地提升 RAG 檢索階段的效率,現階段連 Python 函式庫都有了,需要的同學可以試試。
論文地址: http://research.google/blog/muvera-making-multi-vector-retrieval-as-fast-as-single-vector-search/
Chamfer 相似度: http://sciencedirect.com/topics/engineering/chamfer-matching
Python 函式庫: http://github.com/sigridjineth/muvera-py