Gelijkenis-zoeken is een methode om de items te vinden die het meest op een gegeven item lijken, door hun numerieke vingerafdrukken te vergelijken in plaats van hun ruwe inhoud. Of de items nu producten, foto’s of alinea’s zijn, elk wordt omgezet in een vector, en de zoekopdracht geeft de vectoren terug die het dichtst bij je zoekvraag liggen. Het is de stille motor achter ‘gerelateerde items’, het opsporen van dubbele records en de ophaalstap in de meeste AI-assistenten.
Hier is een alledaags voorbeeld. Streamingdiensten stellen een film voor ‘omdat je’ een andere keek. Ze vergelijken geen verhaallijnen woord voor woord; ze stellen elke titel voor als een set getallen en zoeken de dichtstbijzijnde buren in die ruimte. Gelijkenis-zoeken doet hetzelfde met alles wat je in embeddings kunt omzetten, en de vergelijking gebruikt vaak cosinusgelijkenis om te scoren hoe sterk twee vectoren op één lijn liggen.
Op grote schaal kun je niet elk item één voor één nalopen, dus de vectoren staan in een vectordatabase met een index die snel dichte treffers vindt. De afweging is een heel klein beetje nauwkeurigheid voor een enorme snelheidswinst, ruim waard als je in realtime miljoenen records doorzoekt. Dat benaderende matchen is waar “nearest neighbour” naar verwijst: de index geeft de items die vrijwel zeker het dichtst liggen, geen gegarandeerd exacte rangschikking.
Er is een stille valkuil om op te letten. Gelijkenis-zoeken weet alleen wat de embeddings vastleggen, dus een model dat vooral op Engels is getraind, rangschikt Nederlandse tekst slecht. De resultaten zijn maar zo goed als het model dat de vectoren maakte, en daarom telt de keuze van dat model net zo zwaar als het zoeken zelf.
Een handige vuistregel: gebruik gelijkenis-zoeken als “dichtbij genoeg” het doel is, zoals bij aanbevelingen of gerelateerde tickets. Voor exacte opzoekingen is een gewone databasequery sneller en betrouwbaarder.
Bij TopDevs gebruiken we gelijkenis-zoeken om aanbevelingen, slim zoeken en deduplicatie in klantsystemen aan te drijven, zodat gebruikers het juiste vinden zonder precies de juiste woorden te typen.