AI 6 min

Wat is een embedding in AI en waar gebruik je het voor?

Kort antwoord

Een embedding is een lijst getallen, een vector, die de betekenis van een stuk tekst, een afbeelding of ander stuk data vastlegt op een manier die een computer kan vergelijken. Woorden of zinnen met een vergelijkbare betekenis krijgen embeddings die dicht bij elkaar liggen in de wiskundige ruimte, ook als ze geen woorden gemeen hebben. Embeddings vormen de basis voor semantisch zoeken, aanbevelingssystemen en technieken zoals Retrieval Augmented Generation.

Een embedding is een numerieke representatie van tekst, beeld of andere data waarmee AI-modellen betekenis en gelijkenis kunnen berekenen.

Computers kunnen van nature geen betekenis vergelijken; ze kunnen alleen getallen vergelijken. Een embedding is de brug tussen die twee werelden: het zet tekst, beeld of andere data om in een reeks getallen die de betekenis ervan vastlegt, zodat een computer kan berekenen hoe vergelijkbaar twee stukken data zijn.

Van woorden naar getallen

Stel je een embedding voor als een punt in een ruimte met honderden of duizenden dimensies. Elk woord, elke zin of elk document krijgt zo’n punt toegewezen. Woorden met een vergelijkbare betekenis, zoals “koning” en “vorst”, krijgen punten die dicht bij elkaar liggen. Woorden met een compleet andere betekenis, zoals “koning” en “fiets”, liggen ver uit elkaar.

Het bijzondere is dat deze modellen ook relaties tussen concepten vastleggen. Het verschil tussen de embedding van “koning” en “man” is wiskundig ongeveer gelijk aan het verschil tussen “koningin” en “vrouw”. Dit soort relaties ontstaan automatisch tijdens de training op enorme hoeveelheden tekst, zonder dat iemand ze handmatig heeft geprogrammeerd.

Waarom gewone zoekfuncties tekortschieten

Een traditionele zoekfunctie zoekt op exacte woorden. Zoek je naar “auto kopen”, dan mist die zoekfunctie een relevant document dat spreekt over “voertuig aanschaffen”, simpelweg omdat de woorden niet overeenkomen, ook al gaat het inhoudelijk over hetzelfde.

Embeddings lossen dit op door de betekenis te vergelijken in plaats van de exacte tekst. De zin “auto kopen” en “voertuig aanschaffen” krijgen embeddings die dicht bij elkaar liggen, waardoor een semantische zoekfunctie het relevante document wel vindt. Dit heet semantisch zoeken, en het is de reden waarom moderne zoeksystemen veel beter aanvoelen dan de ouderwetse keyword-zoekfuncties van tien jaar geleden.

Vectordatabases: embeddings op schaal doorzoeken

Bij een handvol documenten kun je embeddings nog handmatig met elkaar vergelijken. Bij miljoenen documenten wordt dat onhandelbaar; je hebt een gespecialiseerde vectordatabase nodig die embeddings efficiënt opslaat en razendsnel de meest gelijkende resultaten vindt, zonder elke vector met elke andere te hoeven vergelijken.

Bekende vectordatabases zijn Pinecone, Weaviate en pgvector, een uitbreiding op de bekende PostgreSQL-database. Voor bedrijven die al met Postgres werken, is pgvector vaak de meest praktische keuze, omdat je geen apart systeem hoeft te beheren naast je bestaande database.

De motor achter Retrieval Augmented Generation

Embeddings zijn de kern van Retrieval Augmented Generation, de techniek waarmee een large language model antwoorden geeft op basis van jouw eigen bedrijfsdocumenten in plaats van alleen zijn trainingsdata. De vraag van een gebruiker wordt omgezet in een embedding, vergeleken met de embeddings van alle documenten in de kennisbank, en de meest relevante fragmenten worden vervolgens aan het taalmodel meegegeven als context.

Zonder embeddings zou je bij elke vraag het volledige documentenarchief aan het model moeten voeren, wat vaak simpelweg niet past binnen het beschikbare context window en bovendien onnodig duur is.

Praktische toepassingen buiten chatbots

Embeddings worden breder ingezet dan alleen chatbots. Aanbevelingssystemen gebruiken embeddings om producten of artikelen te vinden die lijken op wat een gebruiker eerder bekeek. Deduplicatie-systemen gebruiken ze om bijna-identieke documenten te herkennen, ook als de tekst niet letterlijk gelijk is. Fraudedetectie gebruikt embeddings om afwijkend gedrag te herkennen dat lijkt op eerder gesignaleerde patronen.

Onze tip: heb je een bedrijfskennisbank of documentenarchief dat je doorzoekbaar wilt maken voor medewerkers of klanten, kijk dan niet alleen naar een chatbot maar eerst naar goed werkende embeddings en een passende vectordatabase. De kwaliteit van je zoekresultaten hangt namelijk meer af van hoe goed je documenten zijn opgeknipt en ge-embed dan van welk taalmodel je uiteindelijk gebruikt voor het antwoord.

Veelgestelde vragen

Hoe verschilt semantisch zoeken met embeddings van een gewone zoekfunctie?

Een gewone zoekfunctie (keyword search) vindt documenten die exact dezelfde woorden bevatten als je zoekopdracht. Zoek je naar 'auto kopen', dan mist een keyword search een document dat het heeft over 'voertuig aanschaffen', ook al gaat het over hetzelfde onderwerp. Semantisch zoeken met embeddings vergelijkt de betekenis in plaats van de exacte woorden, en vindt dat document dus wel, omdat de embeddings van beide zinnen dicht bij elkaar liggen ondanks de verschillende woordkeuze.

Wat is een vectordatabase en waarom heb je die nodig bij embeddings?

Een vectordatabase is een database die speciaal is gebouwd om embeddings (vectoren) efficiënt op te slaan en te doorzoeken op gelijkenis, in plaats van op exacte overeenkomst zoals een traditionele database. Bij miljoenen documenten is het niet praktisch om elke embedding met elke andere te vergelijken; een vectordatabase gebruikt slimme indexeringstechnieken om binnen milliseconden de meest gelijkende embeddings te vinden. Bekende voorbeelden zijn Pinecone, Weaviate en pgvector, een uitbreiding op PostgreSQL.

Hoe hangen embeddings samen met Retrieval Augmented Generation (RAG)?

Bij RAG wordt de vraag van een gebruiker eerst omgezet in een embedding, die vervolgens wordt vergeleken met de embeddings van alle documenten in een kennisbank. De meest relevante fragmenten worden opgehaald en samen met de oorspronkelijke vraag aan een taalmodel gegeven, zodat het antwoord gebaseerd is op specifieke, actuele bedrijfsdocumenten in plaats van alleen de trainingsdata van het model. Embeddings zijn hiermee de zoekmachine achter een RAG-systeem.

Kun je embeddings ook gebruiken voor afbeeldingen of alleen voor tekst?

Embeddings zijn niet beperkt tot tekst; modellen zoals CLIP maken embeddings van afbeeldingen op een manier die vergelijkbaar is met tekstembeddings, en zelfs in dezelfde vectorruimte, zodat je een tekstuele zoekopdracht kunt vergelijken met afbeeldingen. Dit maakt toepassingen mogelijk zoals het zoeken naar 'foto van een gele auto bij zonsondergang' in een fotoarchief zonder dat die foto's handmatig zijn getagd met die exacte woorden.

Hier over sparren?

Plan een vrijblijvend gesprek. We luisteren mee, schetsen een aanpak en geven een eerlijk beeld van wat haalbaar is, zonder verkoopdruk.