Definitie: Embeddings zijn numerieke weergaven van tekst, afbeeldingen of andere gegevens in de vorm van vectoren: lange reeksen getallen die de betekenis vastleggen. Teksten met een vergelijkbare betekenis krijgen embeddings die dicht bij elkaar liggen, waardoor computers op betekenis kunnen zoeken, vergelijken en groeperen.
In het kort
- Een embeddingmodel zet een woord, zin of document om in een vector van honderden tot duizenden getallen.
- Embeddings zijn de basis van semantisch zoeken, aanbevelingen, clustering en RAG, de techniek waarmee chatbots antwoorden op eigen documenten.
- De afstand tussen embeddings, vaak gemeten met cosinusgelijkenis, zegt iets over hoe sterk twee teksten op elkaar lijken.
- Een bekende vroege techniek was word2vec, in 2013 gepubliceerd door onderzoekers van Google; moderne modellen maken embeddings van hele zinnen en documenten.
Wat zijn embeddings?
Computers rekenen met getallen, niet met betekenis. Om een computer te laten begrijpen dat “factuur” en “rekening” ongeveer hetzelfde betekenen, of dat “auto” dichter bij “fiets” ligt dan bij “banaan”, moet je betekenis omzetten in getallen. Dat is wat embeddings doen.
Een embeddingmodel heeft van enorme hoeveelheden tekst geleerd welke woorden en zinnen in vergelijkbare contexten voorkomen. Het plaatst elke tekst als een punt in een ruimte met heel veel dimensies. Je kunt je dat voorstellen als een kaart: teksten over hetzelfde onderwerp liggen bij elkaar in de buurt, teksten over iets anders liggen verder weg. Het mooie is dat dit ook werkt voor zinnen die geen enkel woord gemeen hebben, maar wel dezelfde betekenis hebben. Daarmee lossen embeddings een oud probleem van zoekfuncties op: mensen gebruiken andere woorden dan de schrijver van een document. Wie zoekt op “inloggen lukt niet”, vindt dan ook een artikel met de titel “Wachtwoord vergeten”.
Hoe werken embeddings?
- Invoer. Een tekst, zoals een zin, alinea of document, gaat naar een embeddingmodel.
- Omzetten. Het model berekent een vector, bijvoorbeeld een reeks van 768 of 1.536 getallen.
- Opslaan. De vector wordt opgeslagen, vaak in een vectordatabase, samen met de originele tekst.
- Vergelijken. Een nieuwe tekst of vraag wordt ook omgezet in een vector en vergeleken met de opgeslagen vectoren.
- Resultaat. De teksten met de kleinste afstand, dus de grootste gelijkenis, worden als meest relevant gezien.
Een eenvoudig voorbeeld
Stel dat je drie zinnen hebt:
- “Hoe kan ik mijn bestelling retourneren?”
- “Ik wil een product terugsturen.”
- “Wat zijn jullie openingstijden?”
De eerste twee zinnen hebben bijna geen woorden gemeen, maar betekenen ongeveer hetzelfde. Hun embeddings liggen dicht bij elkaar. De derde zin gaat over iets anders en ligt verder weg. Een zoekfunctie op basis van embeddings vindt bij de vraag “spullen terugbrengen” daarom de eerste twee zinnen, ook al staan die woorden er niet in.
Toepassingen van embeddings
| Toepassing | Hoe embeddings helpen |
|---|---|
| Semantisch zoeken | Zoeken op betekenis in plaats van exacte woorden |
| RAG en chatbots | De juiste passages uit documenten vinden voor een taalmodel |
| Aanbevelingen | Vergelijkbare producten, artikelen of profielen voorstellen |
| Clustering | Grote hoeveelheden tekst automatisch in groepen indelen |
| Duplicaten vinden | Dubbele tickets, klachten of records herkennen |
| Classificatie | Teksten toewijzen aan categorieën |
| Meertalig zoeken | Teksten in verschillende talen met dezelfde betekenis vinden |
Embeddings in de praktijk van een bedrijf
- Klantenservice. Een binnenkomende vraag wordt vergeleken met eerder beantwoorde vragen, zodat een medewerker direct een passend antwoord als suggestie ziet.
- Interne kennis. Medewerkers zoeken in handleidingen en procedures in hun eigen woorden, zonder de exacte titel van een document te kennen.
- Webshop. Bij een product worden vergelijkbare producten getoond op basis van beschrijving en kenmerken.
- Recruitment. Vacatureteksten en profielen worden vergeleken op inhoud in plaats van alleen op trefwoorden.
- Analyse van feedback. Duizenden klantreacties worden automatisch in thema’s gegroepeerd, zodat zichtbaar wordt waar klanten het vaakst over beginnen.
Soorten embeddings
- Woord-embeddings: één vector per woord, zoals bij word2vec. Vroege techniek, minder geschikt voor hele zinnen.
- Zins- en document-embeddings: één vector per zin, alinea of document. De standaard voor zoeken en RAG.
- Beeld-embeddings: vectoren voor afbeeldingen, zodat je kunt zoeken op visuele gelijkenis.
- Multimodale embeddings: tekst en beeld in dezelfde ruimte, zodat je met een tekst afbeeldingen kunt vinden en andersom.
Waar komen embeddings vandaan?
Het idee om woorden als getallen weer te geven, bestaat al lang in de taalkunde en informatica. Een belangrijke doorbraak was word2vec, in 2013 gepubliceerd door onderzoekers van Google. Word2vec liet zien dat je met relatief eenvoudige neurale netwerken woord-embeddings kon maken waarin betekenisrelaties zichtbaar werden. Een bekend voorbeeld: de vector van “koning” min “man” plus “vrouw” kwam dicht uit bij “koningin”. Later kwamen modellen die niet alleen losse woorden, maar hele zinnen en documenten in hun context konden omzetten. Moderne embeddingmodellen zijn gebaseerd op dezelfde transformertechniek als grote taalmodellen en begrijpen daardoor veel beter wat een tekst als geheel betekent.
Embeddings en taalmodellen
Embeddings en grote taalmodellen zijn verwant, maar hebben een ander doel. Een taalmodel zoals ChatGPT of Claude genereert tekst: het maakt een antwoord, samenvatting of mail. Een embeddingmodel genereert geen tekst, maar een vector die de betekenis van een tekst vastlegt. In een chatbot op eigen documenten werken ze samen. Het embeddingmodel zorgt ervoor dat de juiste passages worden gevonden, en het taalmodel formuleert op basis van die passages een antwoord. Embeddingmodellen zijn doorgaans veel kleiner en goedkoper per gebruik dan taalmodellen, waardoor je ze ook voor grote hoeveelheden documenten kunt inzetten.
Wat kosten embeddings?
Embeddings maken kost weinig in vergelijking met het genereren van tekst door een groot taalmodel. Bij AI-diensten betaal je meestal per verwerkte hoeveelheid tekst, en voor een kennisbank van een paar honderd documenten zijn de kosten doorgaans beperkt. Je kunt ook open embeddingmodellen zelf draaien, zonder kosten per gebruik. Daarnaast betaal je voor de opslag en het doorzoeken van de vectoren, bijvoorbeeld in een vectordatabase of een uitbreiding op een bestaande database. Bij grote hoeveelheden documenten en veel zoekopdrachten loont het om die kosten vooraf door te rekenen.
Een embedding bekijken
Een embedding ziet er voor een mens weinig zinvol uit: een lange reeks getallen tussen bijvoorbeeld min één en één. Afzonderlijke getallen hebben geen leesbare betekenis; het gaat om het patroon van alle getallen samen. Daarom worden embeddings vrijwel nooit direct bekeken, maar alleen gebruikt om te vergelijken. Om embeddings toch zichtbaar te maken, worden ze soms teruggebracht naar twee of drie dimensies en als punten in een grafiek getekend. Dan zie je vaak mooi hoe teksten over hetzelfde onderwerp samen een groep vormen.
Hoe meet je gelijkenis?
De meest gebruikte maat is cosinusgelijkenis. Die kijkt naar de hoek tussen twee vectoren: hoe kleiner de hoek, hoe meer de teksten op elkaar lijken. Een waarde dicht bij 1 betekent veel gelijkenis, een waarde dicht bij 0 weinig. Andere maten zijn de euclidische afstand en het inproduct. Voor de meeste toepassingen hoef je dat niet zelf te berekenen: vectordatabases doen het voor je.
Belangrijk is wel dat een hoge gelijkenis niet hetzelfde is als een juist antwoord. Twee teksten kunnen over hetzelfde onderwerp gaan en toch iets tegengestelds zeggen, zoals “retourneren is gratis” en “retourneren is niet gratis”. Embeddings vinden de juiste onderwerpen; de inhoudelijke beoordeling volgt in de volgende stap, door een taalmodel of een mens.
Embeddings in een zoekfunctie: zo bouw je het op
- Verzamel de inhoud die doorzoekbaar moet worden, zoals artikelen, handleidingen of veelgestelde vragen.
- Deel lange teksten op in stukken van een paar alinea’s, met een verwijzing naar het brondocument.
- Maak embeddings van elk stuk met een embeddingmodel dat goed werkt in de talen van je inhoud.
- Sla de embeddings op in een vectordatabase of een database met vectorondersteuning, samen met de tekst en metadata zoals titel, datum en categorie.
- Zet zoekvragen om in een embedding met hetzelfde model.
- Zoek de meest vergelijkbare stukken en toon die, of geef ze door aan een taalmodel dat een antwoord formuleert.
- Test met echte vragen en pas het opdelen of het model aan als de resultaten tegenvallen.
Veelgemaakte fouten
- Te grote stukken tekst. Een embedding van een heel document is vaag; de vraag van een gebruiker gaat meestal over één onderwerp.
- Een model dat de taal niet goed kent. Test altijd met Nederlandse voorbeelden als je inhoud Nederlands is.
- Geen metadata. Zonder bron, datum en categorie kun je resultaten niet filteren of verantwoorden.
- Vergeten bij te werken. Gewijzigde documenten moeten opnieuw worden omgezet, anders vindt het systeem oude informatie.
- Alleen op betekenis zoeken. Bij productcodes, namen en nummers werkt een gewone zoekopdracht vaak beter. Combineer beide.
Waar let je op?
- Kies een geschikt model. Niet elk embeddingmodel werkt even goed in het Nederlands of voor jouw vakgebied.
- Gebruik hetzelfde model voor het opslaan en voor het zoeken. Embeddings van verschillende modellen zijn niet vergelijkbaar.
- Deel lange documenten op in stukken, zodat elke embedding over één onderwerp gaat.
- Houd embeddings actueel als documenten veranderen.
- Combineer met trefwoorden voor zoekvragen met codes, namen of nummers.
- Let op rechten. Zorg dat een gebruiker alleen resultaten krijgt uit documenten die hij mag zien.
- Privacy: embeddings zijn afgeleid van de originele tekst en verdienen dezelfde zorg als de tekst zelf.
Wat betekent dit voor jouw project?
Bij een AI-toepassing op eigen informatie begin ik bij de vraag wie welke informatie nodig heeft. Dat bepaalt welke documenten worden omgezet in embeddings en wie welke resultaten mag zien. De techniek is daarbij een middel. Het doel is dat een medewerker of klant snel het juiste antwoord vindt, met een verwijzing naar de bron.
Wil je dat je team of klanten op betekenis kunnen zoeken in je documenten? Stuur me welke informatie het is en wie ermee werkt. Dan bepalen we samen de logische eerste stap.
Veelgestelde vragen over embeddings
Wat zijn embeddings?
Embeddings zijn numerieke weergaven van tekst, afbeeldingen of andere gegevens als vectoren, reeksen getallen die de betekenis vastleggen. Teksten met een vergelijkbare betekenis krijgen embeddings die dicht bij elkaar liggen.
Waarvoor worden embeddings gebruikt?
Embeddings worden gebruikt voor semantisch zoeken, chatbots op eigen documenten via RAG, aanbevelingen, het indelen van teksten in groepen en het vinden van duplicaten.
Wat is het verschil tussen embeddings en een vectordatabase?
Embeddings zijn de vectoren die de betekenis van een tekst vastleggen. Een vectordatabase is de database waarin je die vectoren opslaat en snel doorzoekt op gelijkenis.
Verwante termen
Vectordatabase · RAG (Retrieval Augmented Generation) · Chatbot op eigen data · Large Language Model (LLM) · Fine-tuning · AI-chatbot
← Terug naar de kennisbank