カテゴリ:

Vector functions

VECTOR_COSINE_SIMILARITY

2つの ベクトル のコサイン類似度を計算します。

コサイン類似度は、多次元空間における2つのベクトル間の角度に基づいており、ベクトルの大きさは考慮されません。コサイン類似度は、ベクトルの内積を長さの積で除算した値です。コサイン類似度は常に区間 [-1, 1] 内にあります。たとえば、同一のベクトルはコサイン類似度が 1、直交する2つのベクトルは類似度が 0、対向する2つのベクトルは類似度が -1 です。

こちらもご参照ください。

VECTOR_INNER_PRODUCT , VECTOR_L1_DISTANCE , VECTOR_L2_DISTANCE , ベクトル埋め込み

構文

VECTOR_COSINE_SIMILARITY( <vector>, <vector> )
Copy

引数

vector

角度を計算する元の VECTOR 値。

vector

角度を計算する先の VECTOR 値。

戻り値

2つの入力ベクトルのコサイン類似度を示す区間 [-1, 1] で、 FLOAT 値を返します。

使用上の注意

  • Vector functions are optimized in a way that can reduce floating point precision. This function's results have a margin of error up to 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;
Copy
+-------------------------+
| [1, 2.2, 3] | 0.9990... |
+-------------------------+