Catégories :

Fonctions de similarité vectorielle

VECTOR_L2_DISTANCE

Calcule la distance L2 entre deux vecteurs.

La distance L2, également connue sous le nom de distance euclidienne, est une mesure de la distance entre deux vecteurs dans un espace vectoriel. La distance est calculée en prenant la racine carrée de la somme des différences des carrés des éléments vectoriels. La distance peut avoir une valeur supérieure ou égale à zéro. Si la distance est zéro, les vecteurs sont identiques. Plus la distance est importante, plus les vecteurs sont éloignés l’un de l’autre.

Voir aussi :

VECTOR_INNER_PRODUCT , VECTOR_COSINE_SIMILARITY , Intégrations vectorielles

Syntaxe

VECTOR_L2_DISTANCE( <vector>, <vector> )
Copy

Arguments

vector

Valeur VECTOR à partir de laquelle calculer la distance.

vector

Valeur VECTOR vers laquelle calculer la distance.

Renvoie

Renvoie la distance entre les deux vecteurs d’entrée sous forme de valeur FLOAT.

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 utilise la fonction VECTOR_L2_DISTANCE pour déterminer quels vecteurs de la table sont les plus proches l’un de l’autre entre les colonnes a et b :

CREATE TABLE vectors (a VECTOR(FLOAT, 3), b VECTOR(FLOAT, 3));
INSERT INTO vectors SELECT [1.1,2.2,3]::VECTOR(FLOAT,3), [1,1,1]::VECTOR(FLOAT,3);
INSERT INTO vectors SELECT [1,2.2,3]::VECTOR(FLOAT,3), [4,6,8]::VECTOR(FLOAT,3);

-- Compute the pairwise inner product between columns a and b
SELECT VECTOR_L2_DISTANCE(a, b) FROM vectors;
Copy
+------+
| 2.3  |
|------|
| 6.95 |
+------+