Cosine Similarity
Lerne, wie die Kosinus-Ähnlichkeit die Vektorähnlichkeit in der KI misst. Berechne visuelle Einbettungen mit Ultralytics YOLO26 und skaliere mit der Ultralytics Platform.
Die Kosinus-Ähnlichkeit ist eine grundlegende mathematische Metrik, die im Machine Learning (ML) und in der künstlichen Intelligenz (AI) verwendet wird, um zu messen, wie ähnlich zwei mehrdimensionale Arrays oder Vektoren sind, unabhängig von ihrer Größe oder ihrem Betrag. Durch die Berechnung des Winkels zwischen zwei Punkten in einem Vektorraum wird bestimmt, ob sie in etwa in die gleiche Richtung zeigen. Dieser winkelbasierte Ansatz ist entscheidend für die Verarbeitung von Daten, bei denen die Ausrichtung wichtiger ist als die Gesamtlänge, was ihn äußerst effektiv für den Vergleich abstrakter Datenrepräsentationen wie Embeddings macht.
Link to this sectionDie Mathematik hinter der Metrik verstehen#
Um diese Metrik zu berechnen, bildest du das Skalarprodukt zweier Vektoren und dividierst es durch das Produkt ihrer jeweiligen Beträge (Längen). Das resultierende Ergebnis liegt immer innerhalb eines festen Bereichs von -1 bis 1:
- Ein Wert von 1 bedeutet, dass die Vektoren genau in die gleiche Richtung zeigen, was auf maximale Ähnlichkeit hinweist.
- Ein Wert von 0 bedeutet, dass die Vektoren vollständig orthogonal zueinander sind (in einem 90-Grad-Winkel), was bedeutet, dass keine richtungsbezogene Ähnlichkeit vorliegt.
- Ein Wert von -1 bedeutet, dass sie genau in entgegengesetzte Richtungen zeigen.
In vielen modernen Deep-Learning-Frameworks, die für Computer Vision (CV) entwickelt wurden, kannst du problemlos auf optimierte Funktionen für diese mathematische Operation zugreifen, wie etwa auf das PyTorch-Modul functional oder TensorFlow-Metriken.
Link to this sectionUnterscheidung verwandter Konzepte#
Es ist hilfreich, die Kosinus-Ähnlichkeit von anderen häufig verwendeten Messungen der Datenanalyse zu unterscheiden, um zu verstehen, wann sie einzusetzen ist:
- Kosinus-Distanz: Obwohl eng verwandt, verhalten sich diese Begriffe umgekehrt proportional. Die Kosinus-Distanz wird einfach als 1 minus die Kosinus-Ähnlichkeit berechnet. Daher weist eine geringere Distanz auf eine höhere Ähnlichkeit zwischen Vektoren hin.
- Euklidische Distanz: Diese Metrik misst die physische Distanz in gerader Linie zwischen zwei Punkten und ist daher sehr empfindlich gegenüber der Gesamtgröße oder dem Betrag der Vektoren. Im Gegensatz dazu interessiert sich die Kosinus-Ähnlichkeit nur für den Winkel. In der Textanalyse beispielsweise können ein langes Dokument und ein kurzer Satz eine große euklidische Distanz aufweisen, aber wenn sie dasselbe Thema behandeln, bleibt ihre Kosinus-Ähnlichkeit hoch.
Link to this sectionReale Anwendungen in der KI#
Die Kosinus-Ähnlichkeit fungiert als Kern-Engine für zahlreiche moderne Softwareprodukte und überbrückt die Lücke zwischen Rohdaten und menschlicher Absicht.
- Vektorsuche und RAG: In Anwendungen der natürlichen Sprachverarbeitung (NLP), wie etwa Chatbots, werden Nutzeranfragen und interne Dokumente in dichte Embeddings umgewandelt. Das System berechnet schnell die Kosinus-Ähnlichkeit, um die kontextuell relevantesten Dokumente aus einer Vektordatenbank abzurufen – ein entscheidender Schritt bei der Retrieval-Augmented Generation (RAG).
- Empfehlungssysteme: E-Commerce- und Streaming-Dienste nutzen Tools wie Scikit-learn und SciPy, um Nutzerpräferenzen und Katalogartikel als Vektoren darzustellen. Durch das Messen des Ähnlichkeitswerts zwischen dem Profil eines Käufers und verschiedenen Produkten können Systeme visuell oder thematisch verwandte Artikel präzise empfehlen.
Link to this sectionVisuelle Ähnlichkeit mit Ultralytics messen#
Du kannst mithilfe modernster Vision-Modelle hochdimensionale Merkmalsvektoren direkt aus visuellen Daten extrahieren. Der folgende Python-Code zeigt, wie du ein Ultralytics YOLO26-Modell für die Bildklassifizierung lädst, Embeddings für zwei Bilder generierst und eine Kosinus-Ähnlichkeitsberechnung durchführst, um deren visuelle Übereinstimmung zu messen.
import torch
import torch.nn.functional as F
from ultralytics import YOLO
# Load a pre-trained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Generate embedding vectors for two separate images
results = model.embed(["bus.jpg", "car.jpg"])
# Calculate the cosine similarity between the two visual embeddings
similarity = F.cosine_similarity(torch.tensor(results[0]), torch.tensor(results[1]), dim=0)
print(f"Visual Similarity Score: {similarity.item():.4f}")Für Entwickler, die diese semantischen Suchfunktionen skalieren möchten, ist das Training hochpräziser Basismodelle von größter Bedeutung. Die Ultralytics Platform optimiert diese Pipeline durch das Angebot robuster Tools für Datenannotation, skalierbares Cloud-Training und nahtloses Model-Deployment, um sicherzustellen, dass deine zugrunde liegenden Embeddings so präzise und aussagekräftig wie möglich sind.






