Cosine-Similarity (Kosinus-Ähnlichkeit)

Wenn zwei Texte als Vektoren vorliegen, braucht es ein Maß, um ihre inhaltliche Ähnlichkeit zu bestimmen. Die Cosine-Similarity misst den Winkel zwischen zwei Vektoren. Je kleiner der Winkel, desto ähnlicher die Texte.

Was gemessen wird

Zwei Pfeile zeigen in einen Raum. Wenn sie in dieselbe Richtung zeigen, ist der Winkel zwischen ihnen null. Wenn sie senkrecht zueinander stehen, beträgt der Winkel 90 Grad. Die Cosine-Similarity berechnet den Kosinus dieses Winkels und drückt das Ergebnis als Zahl zwischen -1 und 1 aus.

Der entscheidende Punkt: Nur die Richtung zählt, nicht die Länge. Ein kurzer und ein langer Text können denselben Inhalt beschreiben. Ihre Vektoren haben unterschiedliche Längen, aber dieselbe Richtung. Die Cosine-Similarity erkennt das. Andere Abstandsmaße wie die euklidische Distanz würden die Texte als unterschiedlich bewerten, weil die Vektoren unterschiedlich lang sind.

Beispiel: Vektor A repräsentiert "Hund spielt im Park". Vektor B repräsentiert "Welpe tobt auf der Wiese". Beide beschreiben ein ähnliches Szenario. Die Cosine-Similarity liegt bei etwa 0,85.

Beispiel: Vektor A repräsentiert "Hund spielt im Park". Vektor C repräsentiert "Aktienmarkt bricht ein". Kein inhaltlicher Zusammenhang. Die Cosine-Similarity liegt nahe 0,1.

Wie die Berechnung funktioniert

Die Formel besteht aus zwei Schritten: das Skalarprodukt der beiden Vektoren berechnen und das Ergebnis durch das Produkt ihrer Längen teilen. Das Ergebnis ist der Kosinus des Winkels.

In Kurzform: cos(θ) = (A · B) / (|A| × |B|)

Beispiel mit einfachen Zahlen: Vektor A = [1, 2, 3]. Vektor B = [2, 4, 6]. Skalarprodukt: 1×2 + 2×4 + 3×6 = 28. Länge A: √(1+4+9) = √14. Länge B: √(4+16+36) = √56. Cosine-Similarity: 28 / (√14 × √56) = 28 / 28 = 1,0. Die Vektoren zeigen in exakt dieselbe Richtung, weil B ein Vielfaches von A ist.

Beispiel: Vektor A = [1, 0]. Vektor B = [0, 1]. Skalarprodukt: 0. Die Vektoren stehen senkrecht aufeinander. Cosine-Similarity = 0. Kein inhaltlicher Zusammenhang.

Fachliche Einordnung: In der Praxis haben Textvektoren Hunderte oder Tausende Dimensionen (768 bei BERT-base, 1.024 bei vielen neueren Modellen). Die Berechnung ist dieselbe, nur mit längeren Vektoren. Optimierte Bibliotheken und Vektordatenbanken berechnen Cosine-Similarity über Millionen von Vektoren in Millisekunden.

Was die Werte bedeuten

In der Praxis liegen die meisten Vergleichswerte zwischen 0,2 und 0,95. Die genaue Interpretation hängt vom verwendeten Einbettungsmodell ab: Verschiedene Modelle erzeugen Vektoren mit unterschiedlichen Wertebereichen.

Grobe Orientierung (modellabhängig):

Beispiel: In einem RAG-System wird ein Schwellenwert von 0,6 gesetzt. Nur Chunks mit einer Cosine-Similarity über 0,6 werden als relevant betrachtet und an das Sprachmodell weitergegeben. Alles darunter wird verworfen. Der Schwellenwert muss empirisch kalibriert werden: zu hoch und relevante Treffer gehen verloren, zu niedrig und irrelevante Treffer verfälschen die Antwort.

Beispiel: Zwei Suchergebnisse: Treffer A hat eine Similarity von 0,87, Treffer B von 0,52. Treffer A ist mit hoher Wahrscheinlichkeit relevant. Treffer B ist grenzwertig und wird in einem konservativen System verworfen.

Einsatz in der semantischen Suche

In einer semantischen Suche wird die Suchanfrage in einen Vektor umgewandelt. Dieser Vektor wird mit allen gespeicherten Vektoren verglichen. Die Cosine-Similarity bestimmt das Ranking: der höchste Wert ist der beste Treffer.

SuchanfrageVektor berechnen
Cosine-Similaritymit allen Vektoren vergleichen
Treffer 1Similarity: 0,91
Treffer 2Similarity: 0,73
Treffer 3Similarity: 0,44

Beispiel: Ein Support-System enthält 5.000 Chunks. Ein Kunde fragt "Wie kann ich mein Passwort ändern?". Das System berechnet den Vektor der Frage und vergleicht ihn per Cosine-Similarity mit allen 5.000 gespeicherten Vektoren. Der Chunk mit der höchsten Similarity (etwa 0,92) enthält die Anleitung zum Passwort-Ändern und wird als Antwortgrundlage verwendet.

Alternativen zur Cosine-Similarity

Cosine-Similarity ist das gebräuchlichste Maß für Textvergleiche, aber nicht das einzige.

Beispiel: Viele Einbettungsmodelle normalisieren ihre Vektoren auf Länge 1. In diesem Fall liefern Cosine-Similarity und Dot Product identische Rankings. Vektordatenbanken wie Qdrant bieten beide Optionen an und empfehlen Dot Product für normalisierte Vektoren, weil die Berechnung schneller ist.

Grenzen des Maßes

Beispiel: Zwei Texte erhalten eine Cosine-Similarity von 0,3. Ist das "zu wenig"? Das hängt vom Modell, von der Aufgabe und vom Kontext ab. Bei einer Faktensuche ist 0,3 zu niedrig. Bei einer explorativen Recherche ("zeige mir alles, was entfernt zum Thema passt") kann 0,3 ein nützlicher Treffer sein.

Fachliche Einordnung: In produktiven Retrieval-Systemen wird Cosine-Similarity selten allein als Rankingkriterium verwendet. Häufig folgt ein Reranking-Schritt, der die Top-K-Ergebnisse der Vektorsuche nochmals präziser sortiert, etwa mit einem Cross-Encoder-Modell. Die Cosine-Similarity dient dann als schneller Vorfilter, das Reranking als präzise Feinsortierung.


Karl Kratz · 29.01.2026

Technologie Künstliche Intelligenz Embeddings