
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.