Catégories :

Fonctions de similarité vectorielle

VECTOR_COSINE_SIMILARITY

Calcule la similarité cosinus entre deux vecteurs.

La similarité cosinus est basée sur l’angle entre deux vecteurs dans un espace multidimensionnel ; l’ampleur des vecteurs n’est pas prise en compte. La valeur de similarité cosinus est le produit interne des vecteurs divisé par le produit de leurs longueurs. La similitude cosinus se situe toujours dans l’intervalle [-1, 1]. Par exemple, des vecteurs identiques ont un similarité cosinus 1, deux vecteurs orthogonaux ont une similarité 0 et deux vecteurs opposés ont une similarité -1.

Voir aussi :

VECTOR_INNER_PRODUCT , VECTOR_L2_DISTANCE , Intégrations vectorielles

Syntaxe

VECTOR_COSINE_SIMILARITY( <vector>, <vector> )
Copy

Arguments

vector

Valeur VECTOR à partir de laquelle calculer l’angle.

vector

Valeur VECTOR vers laquelle calculer l’angle.

Renvoie

Renvoie une valeur FLOAT dans l’intervalle [-1, 1] qui indique la similarité cosinus entre les deux vecteurs d’entrée.

Notes sur l’utilisation

  • En raison d’optimisations de calcul des fonctions de comparaison de vecteurs, les erreurs en virgule flottante peuvent être légèrement plus importantes que d’habitude (par exemple, environ 1e-4).

Exemples

Cet exemple appelle la fonction VECTOR_COSINE_SIMILARITY pour trouver le vecteur le plus proche de [1,2,3].

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... |
+-------------------------+