Ga naar de hoofdinhoud
BVDNET
Arnhem · websites & automatiseringBVDNET
Kernconcepten

Cosine Similarity

Cosine similarity meet hoe vergelijkbaar twee vectoren zijn door de cosinus van de hoek ertussen te berekenen — de standaardmetriek voor het vergelijken van AI-embeddings.

Ook bekend als: cosinusgelijkenis, cosine distance, vector similarity

KernconceptenIntermediate
2026-W17
AI Intel Pipeline

Wat is Cosine Similarity?

Cosine similarity is een wiskundige maatstaf die de gelijkenis meet tussen twee vectoren door de cosinus van de hoek ertussen te berekenen. In AI wordt het gebruikt om te meten hoe semantisch vergelijkbaar twee stukken tekst, afbeeldingen of andere data zijn — uitgedrukt als een getal tussen -1 (tegengesteld) en 1 (identiek).

Waarom het ertoe doet

Cosine similarity is de standaard manier om embeddings te vergelijken en daarmee de ruggengraat van semantische zoeken, RAG-systemen, aanbevelingsengines en clusteringalgoritmen. Elke keer dat een systeem "de meest relevante documenten" vindt of "vergelijkbare producten" aanbeveelt, draait er cosine similarity.

Hoe het werkt

De wiskunde: $$\text{cosine similarity} = \frac{A \cdot B}{\|A\| \times \|B\|}$$

Waar A·B het inproduct is en ‖A‖ en ‖B‖ de vectorlengtes (normen).

Interpretatie:

  • 1.0 — vectoren wijzen dezelfde kant op (semantisch identiek)
  • 0.0 — vectoren staan loodrecht (geen relatie)
  • -1.0 — vectoren wijzen tegengesteld (semantisch tegengesteld)

Waarom cosine en niet Euclidische afstand?

  • Cosine meet de richting, niet de lengte van vectoren
  • Twee documenten over hetzelfde onderwerp in verschillende lengte hebben hoge cosine similarity maar grote Euclidische afstand
  • In hoog-dimensionale embedding-ruimtes is cosine stabieler

Praktisch gebruik:

  • Embedding-vectoren vergelijken (OpenAI, Cohere, E5)
  • Drempelwaarde instellen: similarity > 0,85 = "relevant"
  • Top-k retrieval: sorteer op cosine similarity, neem de beste k resultaten

Wanneer cosine similarity faalt:

  • Bij zeer korte teksten (te weinig informatie voor goede embeddings)
  • Wanneer woordvolgorde cruciaal is ("hond bijt man" vs. "man bijt hond")
  • Bij out-of-domain data (embeddings getraind op Engels werken minder goed op Nederlands)

Voorbeeld

De embeddings van "De kat zit op de mat" en "Een poes rust op het kleed" hebben een cosine similarity van ~0,92 — het model herkent dat ze hetzelfde betekenen ondanks andere woorden. "Het regent vandaag" heeft een cosine similarity van ~0,15 met dezelfde zin — duidelijk een ander onderwerp.