- Kategorien:
VECTOR_COSINE_SIMILARITY¶
Berechnet die Cosinus-Ähnlichkeit zwischen zwei Vektoren.
Die Cosinus-Ähnlichkeit basiert auf dem Winkel zwischen zwei Vektoren in einem mehrdimensionalen Raum, wobei die Größe der Vektoren nicht berücksichtigt wird. Der Wert der Cosinus-Ähnlichkeit ist das innere Produkt der Vektoren geteilt durch das Produkt ihrer Längen. Die Cosinus-Ähnlichkeit liegt immer im Intervall [-1, 1]
. Beispielsweise haben identische Vektoren eine Cosinus-Ähnlichkeit von 1
, zwei orthogonale Vektoren haben eine Ähnlichkeit von 0
und zwei entgegengesetzte Vektoren haben eine Ähnlichkeit von -1
.
- Siehe auch:
VECTOR_INNER_PRODUCT, VECTOR_L2_DISTANCE, Vektoreinbettungen
Syntax¶
VECTOR_COSINE_SIMILARITY( <vector>, <vector> )
Argumente¶
vector
Der VECTOR-Wert, aus dem der Winkel berechnet wird.
vector
Der VECTOR-Wert, nach dem der Winkel berechnet wird.
Rückgabewerte¶
Gibt einen FLOAT-Wert im Intervall [-1, 1]
zurück, der die Cosinus-Ähnlichkeit zwischen den beiden Eingabevektoren angibt.
Nutzungshinweise¶
Aufgrund von Berechnungsoptimierungen in den Vektorvergleichsfunktionen können Gleitkommafehler etwas größer als üblich sein (z. B. etwa 1e-4).
Beispiele¶
In diesem Beispiel wird die Funktion VECTOR_COSINE_SIMILARITY aufgerufen, um den Vektor zu finden, der [1,2,3]
am nächsten kommt.
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... |
+-------------------------+