AI-embeddings uitgelegd: hoe machines tekst begrijpen
Van zoekwoorden naar betekenis
Stel je voor: je zoekt een baan als "frontend developer". Je typt die term in op een vacaturesite en krijgt alleen vacatures terug waarin letterlijk "frontend developer" staat. De functie "React engineer", "UI-ontwikkelaar" of "webapplicatie-developer" mis je volledig — terwijl die misschien precies bij je passen.
Dit is het fundamentele probleem van zoeken op basis van zoekwoorden. Woorden zijn slechts labels. Twee totaal verschillende woorden kunnen dezelfde betekenis hebben, en hetzelfde woord kan in verschillende contexten iets heel anders betekenen. Traditionele zoekmachines begrijpen dat niet. Ze matchen tekens, geen concepten.
AI-embeddings lossen dit probleem op. Ze vertalen tekst naar een wiskundige representatie van betekenis. En dat verandert alles — van zoekmachines tot vacaturematching.
Wat is een embedding?
Een embedding is een lijst van getallen — een vector — die de betekenis van een stuk tekst vastlegt. Je kunt het vergelijken met coordinaten op een kaart, maar dan in een ruimte met honderden of zelfs duizenden dimensies.
Stel je een simpele tweedimensionale kaart voor. Op die kaart liggen alle mogelijke woorden, zinnen en documenten. Woorden die qua betekenis op elkaar lijken, liggen dicht bij elkaar. "Kat" en "poes" liggen bijna op dezelfde plek. "Kat" en "vliegtuig" liggen ver uit elkaar.
In werkelijkheid gebruiken moderne AI-modellen vectoren met 1536 dimensies of meer. Dat klinkt abstract, maar het principe is hetzelfde: elk getal in de vector representeert een aspect van de betekenis. Sommige dimensies vangen het onderwerp op, andere het sentiment, de technische diepgang, het ervaringsniveau of de branche.
Een concreet voorbeeld
Stel dat we de volgende drie zinnen omzetten naar embeddings:
- "Ervaren React developer gezocht voor fintech startup"
- "Frontend engineer met TypeScript-ervaring voor financieel platform"
- "Vrachtwagenchauffeur gezocht voor transport bedrijf"
Zin 1 en 2 krijgen vectoren die dicht bij elkaar liggen — ze beschrijven immers vrijwel dezelfde functie, ook al delen ze weinig exacte woorden. Zin 3 krijgt een vector die ver van de andere twee af ligt, want het beschrijft een totaal andere baan.
Hoe worden embeddings gemaakt?
Embeddings worden gegenereerd door grote taalmodellen (LLM's) die getraind zijn op enorme hoeveelheden tekst. Tijdens die training leert het model patronen in taal: welke woorden vaak samen voorkomen, welke concepten verwant zijn, welke contexten bij elkaar horen.
Het proces werkt als volgt:
- Tekst invoeren. Je geeft een stuk tekst aan het model — een CV, een vacaturetekst, een zin.
- Verwerking door het neurale netwerk. Het model verwerkt de tekst door miljoenen parameters, laag voor laag, en destilleert de betekenis.
- Vector als output. Het resultaat is een vector — een lijst van, bijvoorbeeld, 1536 getallen die samen de essentie van de tekst vastleggen.
Het bijzondere is dat dit model niet is geprogrammeerd met regels als "React hoort bij frontend". Het heeft dat zelf geleerd door miljoenen teksten te analyseren waarin die concepten samen voorkwamen.
Semantische gelijkenis: cosine similarity
Als je twee teksten hebt omgezet naar embeddings, wil je weten hoe vergelijkbaar ze zijn. Daarvoor gebruiken we cosine similarity — een wiskundige maat die de hoek tussen twee vectoren berekent.
De uitkomst ligt altijd tussen -1 en 1:
- 1.0 betekent identieke betekenis
- 0.0 betekent geen enkel verband
- -1.0 betekent tegenovergestelde betekenis
In de praktijk ziet een vacaturematching er ongeveer zo uit:
| Vergelijking | Cosine similarity |
|---|---|
| "Frontend developer" vs. "React engineer" | 0.89 |
| "Frontend developer" vs. "Backend developer" | 0.71 |
| "Frontend developer" vs. "Vrachtwagenchauffeur" | 0.15 |
De eerste twee functies liggen dicht bij elkaar — logisch, want ze delen een technologiedomein. Maar "frontend developer" en "React engineer" scoren nog hoger dan "frontend developer" en "backend developer", omdat de semantische overlap groter is.
Praktijkvoorbeeld: vacaturematching
Laten we een realistisch scenario doorlopen. Anna is een UX/UI-designer met vijf jaar ervaring in de e-commerce sector. Haar CV beschrijft expertise in Figma, gebruikersonderzoek, prototyping en design systems.
Hoe traditionele matching werkt
Een traditioneel systeem zoekt naar vacatures met de exacte woorden "UX designer" of "UI designer". De vacature "Product designer met focus op gebruikerservaring voor online retailplatform" wordt gemist, ook al is het een perfecte match.
Hoe embedding-based matching werkt
Een AI-systeem met embeddings zet Anna's CV om naar een vector die haar complete profiel representeert: niet alleen de functietitels, maar ook haar vaardigheden, ervaring, branche en senioriteit. Elke vacature wordt op dezelfde manier omgezet. Door de vectoren te vergelijken, vindt het systeem ook vacatures die qua betekenis overeenkomen — ongeacht de exacte woordkeuze.
Het resultaat: Anna krijgt niet alleen "UX designer"-vacatures, maar ook relevante functies als "product designer", "interaction designer" of "design lead" — mits de inhoud van die vacatures aansluit bij haar profiel.
Waarom dit beter werkt voor vacaturematching
De voordelen van embedding-based matching ten opzichte van zoekwoord-matching zijn aanzienlijk:
Taalongevoeligheid
Het systeem begrijpt dat "projectmanager", "project manager" en "het managen van projecten" hetzelfde betekenen. Je hoeft niet meer alle mogelijke varianten van een zoekterm in te voeren.
Context-begrip
"Python" in de context van softwareontwikkeling is iets heel anders dan "python" in een biologisch artikel. Embeddings vangen die context op.
Cross-linguale mogelijkheden
Geavanceerde embedding-modellen kunnen zelfs over taalbarrierres heen matchen. Een Nederlandstalig CV kan gematcht worden met een Engelstalige vacature, omdat de onderliggende betekenis hetzelfde is.
Impliciete vaardigheden
Als iemand schrijft dat hij "microservices heeft ontworpen met Docker en Kubernetes", impliceert dat ook kennis van containerisatie, cloud-infrastructuur en distributed systems — ook al staan die woorden er niet. Embeddings vangen die impliciete verbanden op.
Wil je meer weten over hoe MatchPilot deze technologie toepast? Lees dan Hoe AI-matching werkt.
De beperkingen
Embeddings zijn krachtig, maar niet perfect:
- Bias in trainingsdata. Als het model is getraind op teksten waarin bepaalde functies vooral aan een specifiek geslacht worden gekoppeld, kan die bias doorsijpelen in de embeddings. Lees meer over dit onderwerp in ons artikel over AI-bias bij vacatures.
- Recentheid. Nieuwe termen of technologieen die na de trainingsdatum zijn ontstaan, worden mogelijk niet goed begrepen.
- Nuance. Subtiele verschillen in senioriteit of specialisatie kunnen verloren gaan als de teksten te generiek zijn.
Embedding-technologie bij MatchPilot
MatchPilot maakt gebruik van state-of-the-art embedding-modellen met 1536 dimensies om je CV en vacatures om te zetten naar betekenisvolle vectoren. In combinatie met pgvector — een PostgreSQL-extensie voor vectorzoekopdrachten — kunnen we razendsnel de beste matches vinden uit duizenden vacatures.
Het resultaat: je krijgt vacatures voorgesteld die echt bij je passen, niet alleen op basis van woorden, maar op basis van wat je daadwerkelijk kunt en zoekt.
Maak gratis een account aan en ervaar zelf hoe slim matchen op betekenis werkt.
Klaar om de juiste match te vinden? Maak een gratis account aan.
Start gratisGerelateerde artikelen
Hoe AI-matching werkt: de technologie achter MatchPilot
Ontdek hoe MatchPilot AI-embeddings en vectorzoekopdrachten gebruikt om je automatisch te matchen met de juiste vacatures.
Machine learning in vacature-matching: zo werkt het achter de schermen
Hoe wordt machine learning ingezet om kandidaten aan vacatures te koppelen? Ontdek de werking van trainingsdata, modellen en continue verbetering in AI-matching.
Blockchain en CV-verificatie: de toekomst van betrouwbare referenties
Hoe kan blockchain helpen om CV-fraude te bestrijden? Lees over verifieerbare credentials, lopende pilots en de impact op het sollicitatieproces.
MatchPilot