🚀 免費嘗試 Zilliz Cloud,完全托管的 Milvus,體驗速度提升 10 倍!立即嘗試

milvus-logo
LFAI
主頁
  • 使用者指南
  • Home
  • Docs
  • 使用者指南

  • 搜尋與重新排名

  • 重新排名

重排

Milvus 使用hybrid_search()API 實現了混合搜尋功能,結合了精密的重排策略來精煉來自多個AnnSearchRequest 實例的搜尋結果。本主題涵蓋重排過程,解釋其重要性以及 Milvus 中不同重排策略的實作。

概述

下圖說明了在 Milvus 中執行混合搜尋的過程,並強調了 reranking 在此過程中的作用。

reranking_process

混合搜尋中的重新排序是一個關鍵步驟,可整合來自多個向量領域的結果,確保最終輸出為相關且優先順序準確。目前,Milvus 提供這些重新排序策略:

  • WeightedRanker:這種方法是透過計算來自不同向量搜尋的分數(或向量距離)的加權平均值來合併結果。它根據每個向量領域的重要性來分配權重。

  • RRFRanker:此策略會根據不同向量列的排名來合併結果。

加權評分 (WeightedRanker)

WeightedRanker 策略會根據每個向量欄位的重要性,為每個向量檢索路徑的結果指定不同的權重。當每個向量欄位的重要性不同時,就會採用此重新排序策略,讓您可以藉由賦予某些向量欄位較高的權重,來強調這些向量欄位而非其他向量欄位。例如,在多模式搜尋中,文字描述可能被認為比影像中的顏色分佈更重要。

WeightedRanker 的基本流程如下:

  • 在擷取過程中收集分數:收集來自不同向量擷取路徑的結果及其分數。

  • 分數規範化:將每個路徑的分數歸一化為 [0,1] 的範圍,其中值越接近 1 表示相關性越高。由於分數分佈會因不同的度量類型而異,因此此歸一化非常重要。例如,IP 的距離範圍為 [-∞,+∞],而 L2 的距離範圍為 [0,+∞]。Milvus 採用arctan 函數,將值轉換到 [0,1] 的範圍,為不同的度量類型提供標準化的基礎。

    arctan-function

  • 權重分配:為每個向量擷取路徑分配一個權重w𝑖 。使用者指定的權重可反映資料來源的可靠性、準確性或其他相關指標。每個權重的範圍為 [0,1]。

  • 分數融合:計算標準化分數的加權平均值,得出最終分數。然後根據這些從高到低的分數對結果進行排序,以產生最終的排序結果。

weighted-reranker 加權排序

若要使用此策略,請套用WeightedRanker 實例,並透過傳入可變數量的數值參數來設定權重值。

from pymilvus import WeightedRanker

# Use WeightedRanker to combine results with specified weights
rerank = WeightedRanker(0.8, 0.8, 0.7) 

請注意

  • 每個權重值的範圍從 0 (最不重要) 到 1 (最重要),影響最後的彙總分數。

  • WeightedRanker 中提供的權重值總數應該等於您之前建立的AnnSearchRequest 實體數量。

  • 值得注意的是,由於不同度量類型的測量方式不同,我們會將召回結果的距離規範化,使其位於區間 [0,1],其中 0 代表不同,1 代表相似。最終的分數將是權重值與距離的總和。

對等排名融合 (RRFRanker)

RRF 是一種資料融合方法,它根據排名清單的倒數結合排名清單。它是一種平衡各向量領域影響力的有效方法,尤其是當重要程度沒有明顯的先後次序時。當您想要對所有向量領域給予同等的考量,或是不確定各領域的相對重要性時,通常會使用此策略。

RRF 的基本流程如下:

  • 在擷取過程中收集排名:跨多個向量欄位的擷取器擷取和排序結果。

  • 排名融合:RRF 演算法會對每個擷取器的排名進行權衡與合併。公式如下:

    rrf-ranker RRF-ranker

    這裡,𝑁 代表不同擷取路徑的數量,rank𝑖(𝑑) 是𝑖th retriever 擷取文件𝑑 的排名位置,𝑘 是平滑參數,通常設定為 60。

  • 綜合排名:根據綜合評分對擷取的結果重新排序,以產生最終結果。

若要使用此策略,請套用RRFRanker 實例。

from pymilvus import RRFRanker

# Default k value is 60
ranker = RRFRanker()

# Or specify k value
ranker = RRFRanker(k=100)

RRF 允許平衡各領域的影響力,而無需指定明確的權重。多個欄位同意的頂尖匹配項目將在最後排名中被優先排序。

免費嘗試托管的 Milvus

Zilliz Cloud 無縫接入,由 Milvus 提供動力,速度提升 10 倍。

開始使用
反饋

這個頁面有幫助嗎?