milvus-logo
LFAI
フロントページへ
  • コンセプト

メトリクスの種類

類似度メトリクスは、ベクトル間の類似度を測定するために使用されます。適切な距離メトリックを選択することで、分類やクラスタリングのパフォーマンスを大幅に向上させることができます。

現在、milvusは以下の類似度メトリックをサポートしています:ユークリッド距離(L2)、内積(IP)、コサイン類似度(COSINE)、JACCARDHAMMINGBM25 (特に疎なベクトルの全文検索用に設計)。

以下の表は、さまざまなフィールド・タイプと、それらに対応するメトリック・タイプとの対応をまとめたものです。

フィールド・タイプ

次元範囲

サポートされるメトリック型

デフォルトのメトリック型

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次元ユークリッド空間の2点である。

これは最も一般的に使用される距離メトリックであり、データが連続的である場合に非常に有用である。

Milvusはユークリッド距離が距離メトリックとして選択された場合、平方根を適用する前の値のみを計算します。

内積 (IP)

2つの埋め込み間のIP距離は次のように定義されます。

Inner product formula 内積の公式

IPは、正規化されていないデータを比較する場合や、大きさや角度を気にする場合に便利です。

IPを使って埋め込み間の類似度を計算する場合、埋め込みを正規化する必要があります。正規化後の内積は余弦類似度に等しくなります。

X'が埋め込みXから正規化されたとします。

Normalized inner product formula 正規化内積の式

2つの埋め込み間の相関は次のようになります。

Correlation between embeddings 埋め込み間の相関

コサイン類似度

コサイン類似度は、2組のベクトル間の角度の余弦を用いて、それらの類似度を測定します。2組のベクトルは、[0,0,...]のような同じ点から出発し、異なる方向を向いている線分と考えることができます。

2組のベクトルA = (a0,a1,...,an-1)B = (b0,b1,...,bn-1)のコサイン類似度を計算するには、次の式を使います。

Cosine similarity formula コサイン類似度の公式

余弦類似度は常に区間[-1, 1]にある。例えば、2つの比例ベクトルは余弦類似度が1、2つの直交ベクトルは類似度が0、2つの対向ベクトルは類似度が-1です。余弦が大きいほど、2つのベクトル間の角度が小さくなり、これらの2つのベクトルが互いに似ていることを示します。

2つのベクトルの余弦類似度を1から引くことで、2つのベクトル間の余弦距離を求めることができます。

JACCARD 距離

JACCARD類似度係数は,2つの標本集合間の類似度を測定し,定義された集合の交点のカーディナリティをそれらの和のカーディナリティで割ったものとして定義される.有限の標本集合にのみ適用できる.

JACCARD similarity coefficient formula JACCARD類似度係数の式

JACCARD 距離は,データ集合間の非類似度を測定し,JACCARD 類似度係数を1から引くことによって得られる.

JACCARD distance formula JACCARD 距離の公式

ハンミング距離

HAMMING 距離はバイナリ・データ文字列を測定する.同じ長さの2つの文字列間の距離は、ビットが異なるビット位置の数である。

例えば、1101 1001 と 1001 1101 という2つの文字列があるとする。

11011001 ⊕ 10011101 = 01000100.これには2つの1が含まれるため、ハミング距離d (11011001, 10011101) = 2となる。

BM25類似度

BM25は広く使われているテキスト関連性測定法で、特に全文検索用に設計されている。以下の3つの重要な要素を組み合わせている。

  • 用語頻度(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の場合、完全な正規化が行われます。

翻訳DeepL

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
フィードバック

このページは役に立ちましたか ?