Je kunt uitleggen wat een embedding is: hoe een stuk tekst een punt in een betekenisruimte wordt, waarom afstand daar betekenis is, hoe je dat meet met cosine similarity, en waar het model tekortschiet.
Handig vooraf: Wat is een token
Je denkt waarschijnlijk dat een computer zoekt door dezelfde woorden terug te vinden: typ "laptop", krijg pagina's met het woord "laptop". Of net het omgekeerde, dat de AI je zin gewoon begrijpt zoals een mens dat doet. Geen van beide klopt. Wat er echt gebeurt is vreemder en veel bruikbaarder: je tekst wordt een punt op een landkaart, en de afstand tot andere punten is de betekenis.
Kijk eerst wat dat oplevert voor je het een naam geeft. Je zoekt "goedkope laptop voor studenten". Hieronder staan drie documenten. Kies welke het best past, niet op woorden maar op bedoeling.
Je zoekt 'goedkope laptop voor studenten'. Welk document past het best op bedoeling?
Merk je wat er net gebeurde? Het winnende document, "betaalbare notebooks voor school", deelt geen enkel woord met je zoekopdracht. En het document dat het woord "laptop" letterlijk bevat, viel af. Trefwoord-overlap is geen betekenis-overlap.
Dat punt op de kaart heet een embedding. Een embedding is een lijst getallen, een vector, die een stuk tekst omzet in een punt in een ruimte met honderden tot duizenden dimensies. Een embedding-model is zo getraind dat teksten met vergelijkbare betekenis dicht bij elkaar belanden. Afstand in die ruimte staat voor verschil in betekenis, dus een machine zoekt op bedoeling in plaats van op trefwoord.
Het model leest je tekst niet als losse woorden, maar eerst als tokens, de stukjes uit een vaste lijst. Die tokens gaan erin; er komt één vector uit voor het hele stuk tekst. Hoe die vector ontstaat en waar hij tekortschiet, zit in deze drie lagen.
Elk stukje tekst krijgt een plek op een gigantische landkaart van betekenis. Wat hetzelfde bedoelt, woont in dezelfde buurt: 'appel', 'peer' en 'banaan' liggen bij elkaar, ver van 'banklening'. Zoeken wordt dan simpel: welke buren liggen het dichtst bij je vraag?
Hoe kan een zin zonder gedeelde woorden toch de beste match zijn?
Hoe dichter twee vectoren bij elkaar liggen, hoe verwanter hun betekenis. De gangbare maat is cosine similarity: de hoek tussen de twee vectoren. Kleine hoek, verwant; grote hoek, onverwant. OpenAI normaliseert zijn embeddings op lengte 1, waardoor die hoek een simpel inwendig product wordt. Zo ligt "appel" naast "peer" en "banaan", en ver van "banklening". En "bank" belandt in een andere buurt afhankelijk van de zin: geld of meubel.
Daarom is dit zo krachtig. Je vindt relevante tekst zonder gedeelde trefwoorden. Synoniemen, parafrases, zelfs een Nederlandse vraag op een Engels document matchen op betekenis. Dit is de motor onder semantisch zoeken, aanbevelingen en clustering, en de kern van RAG: je embed de vraag en haalt de dichtstbijzijnde stukken tekst op, precies wat er gebeurt als je een AI-chatbot op je eigen documenten bouwt.
Richtingen in de ruimte dragen zelfs betekenis. In de klassieke word-embeddings van word2vec en GloVe gold een verrassende rekensom: koning min man plus vrouw ligt het dichtst bij koningin. Richtingen coderen relaties: geslacht, meervoud, tijd. Mooi als intuïtie, maar overschat het niet. Het klopt het schoonst in die vroege modellen; moderne zins-embeddings doen die som lang niet zo netjes.
Waarom meer dimensies niet altijd winnen
Meer assen betekent meer nuance, maar ook meer opslag en rekenwerk, en de winst vlakt af. OpenAI's text-embedding-3-small geeft 1536 getallen, de large 3072. Toch verslaat diezelfde large ingekort tot 256 getallen nog steeds het oudere ada-002 op volle 1536. Het aantal dimensies zegt op zich niets over de kwaliteit.
Dan de belangrijkste grens. Een embedding is een lossy samenvatting van betekenis, gedestilleerd uit trainingsdata. Hij vangt statistische, correlationele betekenis, geen echt begrip, en erft de vooroordelen die in de data zaten: word-embeddings op Google News koppelden 'programmeur' aan man en 'huisvrouw' aan vrouw. Nabijheid is geen waarheid, en niet per se relevantie voor jouw specifieke taak.
Haal het even terug voor je verder gaat.
Twee zinnen delen geen enkel woord. Kunnen hun embeddings toch dicht bij elkaar liggen?
Betekenis werd plaats, en plaats is te meten. Dat is de hele truc: niet dat de machine je woorden begrijpt, maar dat ze veranderen in een coördinaat waar afstand iets zegt. Zodra je zoeken zo bekijkt, snap je meteen waarom een goed systeem soms feilloos het juiste stuk vindt zonder een gedeeld woord, en soms zelfverzekerd naast zit.
Veelgestelde vragen
Je eigen kennis doorzoekbaar op bedoeling
Betekenis als plek maakt je eigen documenten doorzoekbaar op bedoeling in plaats van op trefwoord. Ik denk met je mee, ontwerp de aanpak en bouw de semantische zoek- of RAG-laag op je eigen data, van eerste idee tot iets dat live staat.
Dit artikel is geproduceerd samen met het Agent Team. Meer over de redactie.
