Embeddings
Numerische Vektordarstellungen von Text, Bildern oder anderen Daten, die semantische Bedeutung in einem hochdimensionalen Raum abbilden.
Ein Ähnlichkeitsmaß, das den Winkel zwischen zwei Vektoren misst – der Standard für den Vergleich von Embeddings in der semantischen Suche und RAG-Systemen.
Cosine Similarity misst, wie ähnlich zwei Vektoren (Embeddings) sind. Es ist die Standard-Metrik für semantische Suche und RAG-Systeme.
Wie funktioniert es?
Statt die Entfernung zwischen zwei Punkten zu messen, misst Cosine Similarity den Winkel zwischen ihnen. Zeigen zwei Vektoren in dieselbe Richtung (Winkel = 0°), sind sie identisch (Similarity = 1).
Beispiel:
"Hund" → [0.8, 0.3, 0.5]
"Katze" → [0.7, 0.4, 0.6] → Similarity: 0.98 (sehr ähnlich)
"Auto" → [0.1, 0.9, 0.2] → Similarity: 0.45 (wenig ähnlich)
Warum nicht einfach Entfernung messen?
Cosine Similarity ignoriert die Länge der Vektoren – nur die Richtung zählt. Das ist wichtig, weil zwei Texte unterschiedlich lang sein können, aber dieselbe Bedeutung haben.
import numpy as np
def cosine_similarity(a, b):
return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))
| Metrik | Misst | Ideal für |
|---|---|---|
| Cosine Similarity | Winkel (Richtung) | Text-Embeddings |
| Euclidean Distance | Abstand | Bild-Embeddings |
| Dot Product | Richtung + Magnitude | Normalisierte Embeddings |
| Manhattan Distance | L1-Abstand | Sparse Vectors |
Für Millionen von Vektoren ist naive Berechnung zu langsam:
Cosine Similarity ist wie der Vergleich der Richtung zweier Kompassnadeln: Zeigen sie in dieselbe Richtung (Similarity = 1), sind die Konzepte ähnlich. Zeigen sie in entgegengesetzte Richtungen (-1), sind sie gegensätzlich.
Misst den Winkel zwischen zwei Vektoren (Wert zwischen -1 und 1)
1 = identisch, 0 = unabhängig, -1 = gegensätzlich
Standard-Metrik für Embedding-Vergleiche in Vektordatenbanken und RAG
Semantische Suche
Ähnlichste Dokumente zu einer Suchanfrage finden
Duplikaterkennung
Ähnliche oder doppelte Texte, Bilder oder Produkte identifizieren
Empfehlungssysteme
Ähnliche Produkte oder Inhalte basierend auf Embedding-Ähnlichkeit empfehlen
Clustering
Dokumente nach semantischer Ähnlichkeit gruppieren
Cosine Similarity misst die Richtung (Bedeutung), nicht die Länge der Vektoren. Zwei Texte können unterschiedlich lang sein, aber dieselbe Bedeutung haben – Cosine Similarity erkennt das. Euclidean Distance wird von der Vektorlänge beeinflusst.
Hängt vom Embedding-Modell ab. Bei OpenAI text-embedding-3: > 0.8 = sehr ähnlich, 0.5-0.8 = verwandt, < 0.5 = wenig Zusammenhang. Die Schwellenwerte variieren je nach Modell und Anwendung.
Cosine Similarity wird häufig in der semantischen Suche verwendet, um die Ähnlichkeit zwischen Dokumenten oder Texten zu bewerten. Es hilft dabei, relevante Ergebnisse zu finden, indem es die Winkel zwischen den Vektoren der Texte vergleicht.
Ja, es gibt mehrere Alternativen zur Cosine Similarity, wie die euklidische Distanz oder die Jaccard-Ähnlichkeit. Jede Methode hat ihre eigenen Vor- und Nachteile, abhängig von der spezifischen Anwendung und den Daten, die analysiert werden.