ベクトル距離メトリック
ベクトル空間での距離の測定は、特定の問合せベクトルの最も関連性の高い結果を識別するときに核心となる部分です。このプロセスは、リレーショナル・データベースの世界でよく知られているキーワードのフィルタリングとは大きく異なります。
ベクトルを操作する場合、距離を計算して、2つのベクトルの類似度を判断する方法がいくつかあります。各距離メトリックは、異なる数式を使用して計算されます。2つのベクトル間の距離を計算するのにかかる時間は、ベクトル次元数やベクトル次元形式など、使用される距離メトリックやベクトル自体の形式など、多くの要因に依存します。一般的に、ベクトルを生成したベクトル埋込みモデルのトレーニングに使用した距離メトリックと一致させることが最善です。
- ユークリッド距離とユークリッド平方距離
ユークリッド距離は、比較される各ベクトルの座標間の距離(基本的には2つのベクトル間の直線距離)を反映します。これは、ベクトルの座標に適用されたピタゴラスの定理(SQRT(SUM((xi-yi)2)))
を使用して計算されます。 - コサイン類似度
最も広く使用されている類似度メトリックの1つは、特に自然言語処理(NLP)では、2つのベクトル間の角度のコサインを測定するコサイン類似度です。 - ドット積類似度
2つのベクトルのドット積類似度は、各ベクトルのサイズに角度のコサインを掛けることと見なすことができます。この定義に対応する幾何学的解釈としては、1つのベクトルのサイズに、1番目のベクトルに対する2番目のベクトルの投影のサイズを乗算することと同等です。また、その逆も同様です。 - マンハッタン距離
このメトリックは、比較する2つのベクトル次元間の距離を合計することで計算されます。 - ハミング距離
2つのベクトル間のハミング距離は、異なる次元数を表します。 - ジャッカード類似度
ジャッカード類似度は、2つのBINARY
ベクトルの間で共通する重要な(ゼロ以外の)次元(ビットの位置)のシェアを判別するために使用されます。 - カスタム距離関数
JavaScriptユーザー定義関数を使用して、カスタム・ベクトル距離を定義できます。これにより、使用できる距離方程式のタイプの柔軟性が高まり、ベクトル検索機能が幅広いユースケースに拡張されます。
親トピック: ベクトル距離関数および演算子