- カテゴリ:
VECTOR_COSINE_SIMILARITY¶
2つの ベクトル のコサイン類似度を計算します。
コサイン類似度は、多次元空間における2つのベクトル間の角度に基づいており、ベクトルの大きさは考慮されません。コサイン類似度は、ベクトルの内積を長さの積で除算した値です。コサイン類似度は常に区間 [-1, 1]
内にあります。たとえば、同一のベクトルはコサイン類似度が 1
、直交する2つのベクトルは類似度が 0
、対向する2つのベクトルは類似度が -1
です。
- こちらもご参照ください。
構文¶
VECTOR_COSINE_SIMILARITY( <vector>, <vector> )
引数¶
vector
角度を計算する元の VECTOR 値。
vector
角度を計算する先の VECTOR 値。
戻り値¶
2つの入力ベクトルのコサイン類似度を示す区間 [-1, 1]
で、 FLOAT 値を返します。
使用上の注意¶
ベクトル比較関数の計算最適化により、浮動小数点演算誤差が通常よりわずかに大きくなることがあります(例: 約1e-4)。
例¶
この例では、 [1,2,3]
に最も近いベクトルを見つけるために VECTOR_COSINE_SIMILARITY 関数を呼び出しています。
SELECT a, VECTOR_COSINE_SIMILARITY(a, [1,2,3]::VECTOR(FLOAT, 3)) AS similarity
FROM vectors
ORDER BY similarity DESC
LIMIT 1;
+-------------------------+
| [1, 2.2, 3] | 0.9990... |
+-------------------------+