FAISS(Facebook AI Similarity Search)における「距離計量と類似度」の基礎として、**L2距離(ユークリッド距離)**は最も基本的かつ広く使われる距離指標の一つです。以下に詳しく説明します。
1. L2距離(ユークリッド距離)とは
L2距離(またはユークリッド距離)とは、2つのベクトル間の直線距離(ユークリッド空間での距離)を表す指標です。次の数式で定義されます:
ここで:
-
は 次元のベクトル
-
はそれぞれのベクトルの第 成分
この距離は、幾何学的に「2点間の直線距離」と一致します。
2. FAISSにおけるL2距離の使用
FAISSではベクトル同士の類似性の比較を行うために、L2距離を以下のような場面で使用します。
2.1 インデックスの種類とL2距離
FAISSでL2距離が使用される代表的なインデックス:
-
IndexFlatL2 -
IndexIVFFlat(L2距離指定時) -
IndexHNSWFlat(metric=L2によって)
2.2 類似ベクトルの検索(search)
FAISSでは検索時に「距離が小さい順に近いベクトルを返す」という形式になります。L2距離が小さいということは、空間上でより近い=類似度が高いとみなされます。
-
D:各検索結果に対するL2距離の配列 -
I:検索結果のインデックス番号
3. 特徴と注意点
3.1 特徴
-
L2距離は直感的な類似度測定として理解しやすい
-
スケールに敏感で、ベクトルのスケーリングにより結果が変化する
3.2 注意点
-
次元が非常に高い場合(高次元空間)には「次元の呪い」の影響で精度が低下することがある
-
正規化されていないデータに対しては、Cosine類似度の方が適切な場合もある
4. まとめ
| 項目 | 内容 |
|---|---|
| 定義 | |
| FAISSでの使用例 | IndexFlatL2、IndexIVFFlat など |
| 類似度の解釈 | 距離が小さいほど類似度が高い |
| 長所 | 単純で分かりやすく、計算が高速 |
| 短所 | スケーリングや高次元に弱い傾向 |
ChatGPT4o 生成日:2025/06/18