Kosinusähnlichkeit für Retrieval
Die Kosinusähnlichkeit misst den Winkel zwischen zwei Vektoren – die Standarddistanzmetrik für die semantische Suche.
Kosinusähnlichkeit für Retrieval ist eine kostenlose AI Agents-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des AI Agents-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.
Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.
Ähnlichkeit messen
Wie nahe liegen zwei Vektoren beieinander? Drei gängige Distanzmaße:
- Kosinusähnlichkeit — Winkel zwischen den Vektoren
- Skalarprodukt — Projektion
- Euklidische Distanz (L2) — geradlinige Entfernung
Für Text-Embeddings ist die Kosinusähnlichkeit der Standard.
Formel der Kosinusähnlichkeit
Für die Vektoren A und B:
cos(A, B) = (A . B) / (|A| * |B|)
Das Ergebnis liegt zwischen -1 und 1:
- 1 = identische Richtung
- 0 = orthogonal (unverbunden)
- -1 = entgegengesetzt
In Python mit NumPy
Eine unkomplizierte Implementierung:
import numpy as np
def cosine_similarity(a, b):
a = np.array(a)
b = np.array(b)
return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))
print(cosine_similarity(vec_apple, vec_orange)) # high
print(cosine_similarity(vec_apple, vec_car)) # lowVor-normalisierte Vektoren
Wenn Ihre Embeddings bereits normalisiert sind (das ist bei den OpenAI-Embeddings der Fall), entspricht der Kosinus dem Skalarprodukt, und Sie können die Division überspringen:
def cosine_normalized(a, b):
return np.dot(a, b) # fasterTop-K-Retrieval
Um die K ähnlichsten Dokumente zu einer Query zu finden, berechnen Sie die Ähnlichkeit zu jedem Dokument und sortieren anschließend:
def topk(query_vec, doc_vecs, k=5):
scores = [(np.dot(query_vec, v), i) for i, v in enumerate(doc_vecs)]
scores.sort(reverse=True)
return scores[:k]Skalierung
Naives Top-K-Retrieval hat pro Query eine Komplexität von O(N) — für 10.000 Dokumente ist das problemlos, bei 10 Millionen jedoch langsam. Für große Korpora verwenden Sie Approximate-Nearest-Neighbor-(ANN-)Indizes: HNSW, IVF, FAISS.
Warum nicht euklidisch?
Die L2-Distanz behandelt die Vektorlänge als aussagekräftig. Bei Embeddings ist die Richtung wichtiger als der Betrag — deshalb setzt sich der Kosinus durch.
(Bei normalisierten Vektoren liefern L2 und der Kosinus dieselbe Rangfolge, daher spielt es keine Rolle.)
Skalarprodukt vs. Kosinus
Wenn Vektoren bereits normalisiert sind, entspricht das Skalarprodukt dem Kosinus und ist schneller (keine Division). Die meisten Produktionssysteme verwenden das Skalarprodukt auf normalisierten Vektoren.
A Tiny End-to-End Retrieval
docs = ['Python is a programming language', 'Pizza is Italian food', 'The Eiffel Tower is in Paris']
doc_vecs = [embed(d) for d in docs]
query_vec = embed('What is Python?')
scores = [(cosine_similarity(query_vec, v), d) for v, d in zip(doc_vecs, docs)]
scores.sort(reverse=True)
for s, d in scores:
print(f'{s:.3f} {d}')
# 0.83 Python is a programming language
# 0.45 Pizza is Italian food
# 0.41 The Eiffel Tower is in ParisHybrides Retrieval
Kombinieren Sie Kosinusähnlichkeit mit der Stichwortsuche (BM25), um die Vorteile beider Ansätze zu nutzen — semantische Suche und exakte Übereinstimmungen. Die meisten Produktionssysteme verwenden heute hybrides Retrieval.
Filterung anhand eines Schwellenwerts
Verwerfen Sie Ergebnisse unterhalb eines Ähnlichkeitsschwellenwerts, damit Sie dem LLM keinen irrelevanten Kontext übergeben:
results = [r for r in retrieved if r.score > 0.7]Kosinusbereich
In welchem Bereich liegen die Werte der Kosinusähnlichkeit?
Zusammenfassung
Kosinusähnlichkeit ist die Standardmetrik für das Retrieval mit Embeddings. Kombinieren Sie sie für den Produktionseinsatz mit hybrider Suche und ANN.
Häufig gestellte Fragen
Ist die Lektion „Kosinusähnlichkeit für Retrieval“ kostenlos?
Ja — der vollständige Text von „Kosinusähnlichkeit für Retrieval“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des AI Agents-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Kosinusähnlichkeit für Retrieval“?
Die Kosinusähnlichkeit misst den Winkel zwischen zwei Vektoren – die Standarddistanzmetrik für die semantische Suche. Du übst AI Agents mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um AI Agents zu starten?
Keine Vorkenntnisse erforderlich. AI Agents auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Kosinusähnlichkeit für Retrieval“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser AI Agents-Lektion Code schreiben und ausführen?
Ja. Jede AI Agents-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Was Embeddings sind (Vektorrepräsentationen)
- Embeddings mit text-embedding-3 erzeugen
- Kosinusähnlichkeit für Retrieval
- Embedding-Modelle im Vergleich (OpenAI vs. Cohere vs. OSS)