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

milvus-logo
LFAI
主頁
  • 概念

度量類型

相似度量測向量之間的相似性。選擇適當的距離度量有助於大幅改善分類和聚類效能。

目前,Milvus 支援這些類似度量:Euclidean distance (L2), Inner Product (IP), Cosine Similarity (COSINE),JACCARD,HAMMING, 和BM25 (專為稀疏向量的全文檢索而設計)。

下表總結了不同欄位類型與相對應的度量類型之間的對應關係。

欄位類型

尺寸範圍

支援的公制類型

預設公制類型

FLOAT_VECTOR

2-32,768

COSINE,L2,IP

COSINE

FLOAT16_VECTOR

2-32,768

COSINE,L2,IP

COSINE

BFLOAT16_VECTOR

2-32,768

COSINE,L2,IP

COSINE

SPARSE_FLOAT_VECTOR

無需指定尺寸。

IP,BM25 (僅用於全文檢索)

IP

BINARY_VECTOR

8-32,768*8

HAMMING,JACCARD

HAMMING

  • 對於SPARSE_FLOAT_VECTOR 類型的向量場,僅在執行全文檢索時使用BM25 公制類型。如需詳細資訊,請參閱全文檢索。

  • 對於BINARY_VECTOR 類型的向量欄位,尺寸值 (dim) 必須是 8 的倍數。

下表總結了所有支援的度量類型的相似性距離值特性及其值範圍。

公制類型

相似性距離值的特性

相似性距離值範圍

L2

值越小表示相似度越高。

[0, ∞)

IP

值越大,表示相似度越高。

[-1, 1]

COSINE

值越大,表示相似度越高。

[-1, 1]

JACCARD

值越小,表示相似度越高。

[0, 1]

HAMMING

值越小,表示相似度越高。

[0,dim(向量)]

BM25

根據詞彙頻率、倒置的文件頻率和文件規範化來評分相關性。

[0, ∞)

歐氏距離 (L2)

基本上,歐氏距離量度的是連接 2 點的一段長度。

歐氏距離的公式如下。

Euclidean distance formula 歐氏距離公式

其中a = (a0,a1,...,an-1)b = (b0,b1,...,bn-1)是 n 維歐氏空間中的兩個點。

這是最常用的距離度量,在資料連續時非常有用。

當選擇歐氏距離為距離公制時,Milvus 只會計算應用平方根之前的值。

內積 (IP)

兩個嵌入之間的 IP 距離定義如下。

Inner product formula 內積公式

如果您需要比較非規範化的資料,或是關心幅度和角度時,IP 會比較有用。

如果您使用 IP 來計算嵌入式之間的相似性,您必須將您的嵌入式歸一化。歸一化之後,內積等於余弦相似度。

假設 X' 是由嵌入 X 規範化而成。

Normalized inner product formula 規範化內積公式

兩個嵌入式之間的相關性如下。

Correlation between embeddings 嵌入式之間的相關性

余弦相似性

余弦相似度使用兩組向量之間角度的余弦來衡量它們的相似程度。您可以將兩組向量視為從相同點 (例如 [0,0,...])開始,但指向不同方向的線段。

要計算兩組向量A = (a0,a1,...,an-1)B = (b0,b1,...,bn-1) 的余弦相似度,請使用下列公式。

Cosine similarity formula 余弦相似度公式

余弦相似度總是在區間[-1, 1]。舉例來說,兩個成正比的向量的余弦相似度為1,兩個正交的向量的相似度為0,兩個相反的向量的相似度為-1。余弦越大,兩個向量之間的角度越小,表示這兩個向量之間的相似度越高。

將它們的余弦相似度從 1 減去,就可以得到兩個向量之間的余弦距離。

JACCARD 距離

JACCARD 相似度系數量度兩個樣本集之間的相似度,定義為定義集的交集的 cardinality 除以它們的結合的 cardinality。它只適用於有限樣本集。

JACCARD similarity coefficient formula JACCARD 相似度系數公式

JACCARD 距離量度資料集間的不相似性,將 JACCARD 相似度系數從 1 減去即可得到。對於二元變數,JACCARD 距離等同於 Tanimoto 系數。

JACCARD distance formula JACCARD 距離公式

HAMMING 距離

HAMMING 距離量度二進位資料字串。長度相等的兩個字串之間的距離是位元位置不同的位元數。

例如,假設有兩個字串,1101 1001 和 1001 1101。

11011001 ⊕ 10011101 = 01000100.由於這包含兩個 1,所以 HAMMING 距離 d (11011001, 10011101) = 2。

BM25 相似度

BM25 是一種廣泛使用的文字相關性測量方法,專門設計用於全文檢索。它結合了以下三個關鍵因素。

  • 詞彙頻率 (TF):測量詞彙在文件中出現的頻率。雖然較高的頻率通常表示較高的重要性,但 BM25 使用飽和參數 k1 來防止過度頻繁的詞彙主宰相關性得分。

  • 反向文件頻率 (IDF):反映詞彙在整個語料庫中的重要性。出現在較少文件中的詞彙會得到較高的 IDF 值,表示對相關性的貢獻較大。

  • 文件長度規範化較長的文件往往會因為包含較多的詞彙而得分較高。BM25 藉由將文件長度規範化來減緩這種偏差,而參數 b 則控制規範化的強度。

BM25 評分的計算方式如下。

BM25 similarity formula BM25 相似度公式

參數說明。

  • Q:使用者提供的查詢文字。

  • D:被評估的文件。

  • TF(qi,D):詞彙頻率,表示詞彙qi 在文件D 中出現的頻率。

  • IDF(qi):反向文件頻率,計算方式為

    IDF formula IDF 公式

    其中N 是語料庫中的文檔總數,n(qi) 是包含術語 qi 的文檔數目。

  • ∣D∣:文件D 的長度 (詞彙總數)。

  • avgdl:語料庫中所有文件的平均長度。

  • k1:控制詞彙頻率對分數的影響。較高的值會增加詞彙頻率的重要性。典型的範圍是 [1.2,2.0],而 Milvus 允許的範圍是 [0,3]。

  • b:控制長度規範化的程度,範圍從 0 到 1。當值為 0 時,不套用規範化;當值為 1 時,套用完全規範化。

免費嘗試托管的 Milvus

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

開始使用
反饋

這個頁面有幫助嗎?