Cosine Similarity

Die Richtung von Embeddings vergleichen

Ein Ähnlichkeitsmaß, das den Winkel zwischen zwei Vektoren misst – der Standard für den Vergleich von Embeddings in der semantischen Suche und RAG-Systemen.

Fortgeschritten2 Min Lesezeit

Erklärung starten

Auf einen Blick

3 Punkte

  1. Misst den Winkel zwischen zwei Vektoren (Wert zwischen -1 und 1)
  2. 1 = identisch, 0 = unabhängig, -1 = gegensätzlich
  3. Standard-Metrik für Embedding-Vergleiche in Vektordatenbanken und RAG

Sofortantwort

Cosine Similarity einfach erklärt

Maß zur Bestimmung der Ähnlichkeit zwischen Vektoren.

Kurz gesagt
Misst den Winkel zwischen zwei Vektoren (Wert zwischen -1 und 1)
Typischer Einsatz
Semantische Suche, Duplikaterkennung, Empfehlungssysteme
Wichtig zu wissen
Standard-Metrik für Embedding-Vergleiche in Vektordatenbanken und RAG

Cosine Similarity im Überblick

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.

Technisch betrachtet

Berechnung

import numpy as np

def cosine_similarity(a, b):
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))

Alternativen

MetrikMisstIdeal für
Cosine SimilarityWinkel (Richtung)Text-Embeddings
Euclidean DistanceAbstandBild-Embeddings
Dot ProductRichtung + MagnitudeNormalisierte Embeddings
Manhattan DistanceL1-AbstandSparse Vectors

Performance-Optimierung

Für Millionen von Vektoren ist naive Berechnung zu langsam:

  • ANN (Approximate Nearest Neighbors): HNSW, IVF für schnelle Suche
  • Quantisierung: Vektoren komprimieren für weniger Speicher
  • Batching: Viele Vergleiche parallel auf GPU

Schritt für Schritt

So entsteht ein Ähnlichkeitsscore

Cosine Similarity vergleicht nicht die Textlänge, sondern die Richtung zweier Embeddings im Vektorraum.

  1. Texte einbetten

    Vektoren

    Ein Embedding-Modell erzeugt für Anfrage und Dokument je einen Vektor mit vielen Zahlenwerten.

    Anfrage → q · Dokument → d
  2. Längen ausgleichen

    Normalisierung

    Die Berechnung berücksichtigt die Länge beider Vektoren, damit vor allem ihre Richtung zählt.

    q · d / (|q| × |d|)
  3. Score berechnen

    Ähnlichkeit

    Ein hoher Wert bedeutet, dass beide Vektoren in eine ähnliche Richtung zeigen.

    nahe 1 → ähnlich · nahe 0 → unähnlich
  4. Treffer ordnen

    Ranking

    Die Suche sortiert Dokumente nach ihrem Score und gibt die besten Kandidaten zur weiteren Prüfung weiter.

    Scores → Top-k Treffer

Konkretes Beispiel

Beispiel: Zwei ähnliche Fragen

Eine Suche soll passende Hilfeseiten für die Frage nach dem Zurücksetzen eines Passworts finden.

Anfrage

Wie ändere ich mein Passwort?

Sortierte Treffer

Die Seite Passwort zurücksetzen erhält einen hohen Score. Eine Seite zur Rechnungsadresse liegt weit darunter.

Der Score sagt, was im Embedding-Raum ähnlich ist. Ob ein Treffer fachlich genügt, entscheiden Quellenqualität, Filter und Evaluation.

Einordnung

Vorteile und Grenzen

Das spricht dafür

  • Vergleicht hochdimensionale Embeddings mit einer klaren Kennzahl.
  • Ist weit verbreitet und in vielen Vektordatenbanken direkt verfügbar.
  • Reduziert den Einfluss unterschiedlicher Vektorlängen.
  • Eignet sich gut zum Sortieren einer großen Menge von Kandidaten.

Das solltest du beachten

  • Der Wert ist nur so aussagekräftig wie das Embedding-Modell.
  • Ein hoher Score garantiert keine korrekte oder vollständige Antwort.
  • Passende Schwellenwerte unterscheiden sich je Datenbestand.
  • Metadaten, Rechte und Aktualität werden dadurch nicht geprüft.
Vertiefung · für Fortgeschrittene

Vom Vektor zum Ranking

Der Ähnlichkeitsscore ist eine Komponente der Suche, nicht deren vollständige Entscheidungslogik.

Wissenskarte

Winkel statt Textlänge

In der Praxis folgen auf den Score häufig Filter, Reranking und eine Prüfung anhand der Originalquelle. Cosine Similarity gliedert sich in: Query-Vektor, Dokumentvektor, Normen, Skalarprodukt, Score, Ranking.

01Einsatzbereiche

Wann ist Cosine Similarity sinnvoll?

Geeignet für

  • 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
  • ClusteringDokumente nach semantischer Ähnlichkeit gruppieren

↑ Inhalt

02Werkzeuge

Womit Cosine Similarity umgesetzt wird

↑ Inhalt

Merksatz

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.

  1. Misst den Winkel zwischen zwei Vektoren (Wert zwischen -1 und 1)
  2. 1 = identisch, 0 = unabhängig, -1 = gegensätzlich
  3. Standard-Metrik für Embedding-Vergleiche in Vektordatenbanken und RAG

04Anwenden

Cosine Similarity praktisch anwenden

↑ Inhalt

05Redaktion

Herkunft und Stand

Redaktion und Aktualität

Ebenex RedaktionRedaktion

Veröffentlicht
Aktualisiert

Dieses Feld entwickelt sich schnell. Oben stehen Veröffentlichung und letzte Änderung; ein Prüfdatum kommt dazu, sobald die Erklärung nach ihrer letzten Änderung geprüft wurde.

↑ Inhalt

06FAQ

Häufige Fragen zu Cosine Similarity

Warum Cosine Similarity statt Euclidean Distance?

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.

Was ist ein guter Cosine-Similarity-Wert?

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.

Wie wird Cosine Similarity in der Praxis angewendet?

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.

Gibt es Alternativen zur Cosine Similarity?

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.

↑ Inhalt

07Weiterlernen

Was möchtest du als Nächstes verstehen?

  • Grundlage nachholen

    Embeddings

    Vektoren, die semantische Bedeutung in hochdimensionalen Räumen abbilden.

  • Technisch vertiefen

    Embedding Space

    Ein mathematischer Raum, in dem ähnliche Konzepte nahe liegen.

  • In der Praxis anwenden

    Vektordatenbanken und Embeddings

    Wie Embeddings Text in Zahlen verwandeln – und warum das die Grundlage für RAG, Suche und KI-Anwendungen ist.

↑ Inhalt