Embeddings uitgelegd voor business software
Wat embeddings zijn, hoe AI er teksten mee op betekenis vindt, en waarom je bedragen en contractvoorwaarden er nooit op laat rusten.
Een embedding is een reeks getallen die de betekenis van een stuk tekst vastlegt, zodat software kan uitrekenen welke teksten op elkaar lijken. Twee zinnen die hetzelfde bedoelen maar andere woorden gebruiken, krijgen getallen die dicht bij elkaar liggen. Daarmee kan business software zoeken op betekenis in plaats van op exacte woorden. Voor bedragen, aantallen en datums zijn embeddings juist ongeschikt: die haal je uit een database, niet uit een gelijkenisscore.
Wat een embedding precies is
Een embeddingmodel is een AI-model dat maar één ding doet: het leest een stuk tekst en geeft een lange rij getallen terug. Die rij heet een vector. Afhankelijk van het model zijn het honderden tot een paar duizend getallen. Elk getal op zich betekent niets voor een mens. Samen vormen ze een positie in een ruimte met heel veel dimensies.
Het nuttige zit in de afstand. Teksten met een vergelijkbare betekenis komen dicht bij elkaar terecht. "De klant wil het contract opzeggen" en "Klant geeft aan niet te verlengen" delen bijna geen woorden, maar hun vectoren liggen dicht bij elkaar. "De klant wil het contract uitbreiden" ligt verder weg, ook al lijkt de zin letterlijk meer op de eerste.
Die afstand wordt meestal berekend met een eenvoudige formule, vaak cosine similarity genoemd. De uitkomst is een getal dat zegt hoe sterk twee teksten op elkaar lijken. Meer is het niet. Een embedding weet niet wat waar is, weet niet wat een factuur is en kan niet rekenen. Hij plaatst tekst op een kaart.
Waar embeddings in business software voor worden gebruikt
In bedrijfssoftware kom je embeddings vooral op vier plekken tegen.
1. Zoeken op betekenis
Een medewerker zoekt in het supportsysteem naar "klant kan niet inloggen". Een gewone zoekfunctie vindt alleen tickets met die woorden. Zoeken met embeddings vindt ook "wachtwoord werkt niet meer" en "toegang geblokkeerd". Dit heet semantisch zoeken.
2. Documenten vinden voor een AI-assistent
Als een taalmodel een vraag moet beantwoorden over je contracten of je handleidingen, moet eerst de juiste passage gevonden worden. Daarvoor worden documenten in stukken geknipt, van elk stuk wordt een embedding gemaakt en die worden opgeslagen in een vectordatabase. Bij een vraag zoekt het systeem de stukken die het dichtst bij de vraag liggen en geeft die mee aan het model. Dat is de kern van RAG, retrieval-augmented generation. Hoe dat zich verhoudt tot het rechtstreeks bevragen van je database lees je in RAG vs database queries voor bedrijfsdata.
3. Dubbelingen en verwante records vinden
Hetzelfde bedrijf staat in je CRM als "Bakker Installatietechniek B.V.", "Bakker Installatie" en "Bakker IT BV". Een exacte vergelijking ziet drie klanten. Embeddings van naam, adres en omschrijving laten zien dat twee ervan waarschijnlijk dezelfde zijn. Let op het woord waarschijnlijk: "Bakker IT BV" kan een ander bedrijf zijn. Een mens of een harde regel (KvK-nummer, btw-nummer) moet de knoop doorhakken.
4. Vrije tekst indelen
Notities van accountmanagers, redenen voor opzegging, omschrijvingen van meerwerk op een werkbon. Dat is tekst die niemand in een vast veld heeft gezet. Met embeddings kun je die groeperen: welke opzeggingen gaan over prijs, welke over service, welke over een overname. Je krijgt daarmee structuur in wat nooit gestructureerd is vastgelegd.
Waar het misgaat: embeddings en getallen
Hier zit de valkuil voor wie met omzet werkt. Embeddings zijn gemaakt om betekenis te vangen, niet om precisie te bewaren.
Voor een embeddingmodel lijken "Indexatie 3,2 procent per 1 januari" en "Indexatie 5,2 procent per 1 januari" bijna identiek. Het zijn twee zinnen over hetzelfde onderwerp met één ander cijfer. Voor je omzet is dat verschil precies waar het om gaat. Hetzelfde geldt voor "licentie voor 40 gebruikers" tegenover "licentie voor 400 gebruikers", of "factureren per kwartaal vooraf" tegenover "factureren per kwartaal achteraf".
Drie gevolgen:
- Een zoekopdracht vindt de verkeerde versie. Vraag je naar de indexatieclausule van klant A, dan kan het systeem de clausule van klant B teruggeven omdat die tekstueel bijna gelijk is. Het model dat het antwoord schrijft, merkt dat niet.
- Een gelijkenisscore is geen controle. Een score van 0,93 tussen contracttekst en factuurregel zegt dat ze over hetzelfde gaan, niet dat het bedrag klopt.
- Er is geen vaste drempel. Wat een "hoge" score is, verschilt per model en per soort tekst. Wie een drempel kiest zonder te testen op eigen data, gokt.
De regel die hieruit volgt is simpel. Embeddings gebruik je om te vinden. Bedragen, aantallen, datums en statussen haal je daarna op uit het systeem dat ze beheert: het ERP, de facturatie, het CRM. Een goed opgezet systeem gebruikt de embedding om de juiste klant en het juiste contract te vinden, en leest de indexatiepercentages vervolgens uit een veld of uit het brondocument zelf.
Embeddings binnen omzetcontrole
Waar passen embeddings in het opsporen van omzetlekkage? Vooral daar waar informatie in tekst zit en niet in velden.
Contractafspraken die nooit in een systeem zijn gezet. Een raamovereenkomst in pdf bevat een clausule over jaarlijkse prijsaanpassing. In het ERP staat geen indexatie. Embeddings helpen om in honderden contracten de passages over indexatie, minimale afname of meerwerktarieven terug te vinden. Het uitlezen van het percentage en het vergelijken met de gefactureerde prijs is een volgende, exacte stap. Meer over dat patroon in Revenue leakage door vergeten prijsindexatie.
Meerwerk in vrije tekst. Een monteur schrijft op de werkbon "extra leiding getrokken, klant akkoord". Niemand zet er een regel voor aan in de facturatie. Embeddings kunnen werkbonnen met zulke omschrijvingen naar boven halen, zodat iemand kan nagaan of er een factuurregel tegenover staat.
Signalen in mail en notities. "Klant overweegt andere leverancier" staat in een CRM-notitie, in drie verschillende formuleringen, verspreid over maanden. Semantisch zoeken vindt ze. Of het echt een churnrisico is, bepaalt de combinatie met harde data: dalende afname, openstaande tickets, een verlengdatum die nadert.
Het patroon is steeds hetzelfde. Embeddings maken een kandidatenlijst. Exacte data bevestigt of verwerpt. Een mens beslist bij twijfel. Dat is ook hoe AI binnen Revenue Intelligence hoort te werken: elke stap doet waar hij goed in is.
Rekenvoorbeeld: waarom een gelijkenisscore geen bewijs is
Rekenvoorbeeld: stel, je hebt 600 klantcontracten en je wilt weten bij welke klanten een indexatieclausule staat die niet is toegepast. Je laat een systeem met embeddings zoeken naar passages over prijsaanpassing.
- Het systeem vindt 180 contracten met een passage die sterk lijkt op "prijzen worden jaarlijks aangepast".
- Bij handmatige steekproef blijken daar ook contracten tussen te zitten waarin staat dat prijzen juist vastliggen voor de looptijd. Die zin gaat over hetzelfde onderwerp en scoort dus hoog.
- Stel dat 30 van de 180 zo'n vaste-prijsclausule bevatten. Wie zonder tweede stap bij die 30 klanten een correctiefactuur stuurt, factureert in strijd met het contract.
De juiste aanpak: gebruik de 180 als kandidatenlijst, laat per contract het percentage, de ingangsdatum en de uitzonderingen letterlijk uitlezen, en vergelijk dat met de prijzen in de facturatie. Pas dan heb je een bevinding in euro's. De getallen in dit voorbeeld zijn verzonnen om het mechanisme te laten zien, niet als gemiddelde.
Wat je moet weten voordat je een leverancier gelooft
Veel software zegt tegenwoordig "AI-zoeken" of "semantisch zoeken". Daar zitten bijna altijd embeddings onder. Vijf vragen om te stellen:
- Waar worden de embeddings gemaakt? Een embeddingmodel draait lokaal of bij een externe aanbieder. In het tweede geval gaat je tekst, inclusief namen en bedragen, naar die aanbieder. Vraag waar dat gebeurt en onder welke verwerkersovereenkomst. Zie ook Hoe bescherm je persoonsgegevens in AI-systemen?.
- Kun je uit een embedding de tekst terughalen? Niet letterlijk, maar een vector is ook niet anoniem. Onderzoekers hebben laten zien dat er soms veel van de oorspronkelijke tekst uit te reconstrueren is. Behandel een vectordatabase met dezelfde zorg als de bron.
- Wie mag wat zien? Als alle documenten in één vectordatabase staan, moet het systeem bij elke zoekopdracht nog filteren op rechten. Anders krijgt een verkoper via een AI-assistent passages uit HR-dossiers te zien.
- Wat gebeurt er als een document verandert? Een contract wordt aangepast of een klant zegt op. De oude embedding blijft staan tot iemand hem vervangt. Vraag hoe vaak en hoe dat wordt bijgewerkt.
- Waar komen getallen vandaan? Als een assistent zegt "klant X heeft een indexatie van 3 procent", vraag dan of dat getal uit een veld komt of uit een tekstpassage die het model heeft geïnterpreteerd. Alleen het eerste is controleerbaar zonder de bron te openen.
Controlelijst voor embeddings in je eigen omgeving
Gebruik deze lijst als je een tool met semantisch zoeken of een AI-assistent over je documenten beoordeelt:
- Welke bronnen worden omgezet in embeddings, en welke bewust niet?
- Staan er persoonsgegevens of contractbedragen in de tekst die naar het embeddingmodel gaat?
- Wordt bij elke zoekopdracht gefilterd op de rechten van de gebruiker?
- Hoe snel na een wijziging in de bron is de embedding bijgewerkt?
- Komen bedragen, aantallen en datums in antwoorden uit een gestructureerde bron, met verwijzing?
- Is er een tweede, exacte stap voordat een gevonden passage tot een actie leidt, zoals een factuur of een klantmail?
- Is getest op je eigen documenten hoe vaak het systeem de verkeerde maar sterk gelijkende passage teruggeeft?
Veelgestelde vragen
Is een embedding hetzelfde als een taalmodel?
Nee. Een embeddingmodel zet tekst om in getallen en schrijft niets. Een taalmodel schrijft tekst. In veel systemen werken ze samen: het embeddingmodel zoekt de juiste stukken, het taalmodel formuleert het antwoord.
Heb ik een vectordatabase nodig?
Alleen als je veel tekst hebt waarin je op betekenis wilt zoeken. Voor gestructureerde data zoals orders, facturen en CRM-velden is een gewone database met gewone queries beter en exacter.
Kunnen embeddings omzetlekkage vinden?
Ze kunnen helpen om plekken te vinden waar lekkage kan zitten, zoals contractclausules of werkbonnen met meerwerk. Of er werkelijk omzet weglekt, blijkt pas als je de gevonden afspraak exact vergelijkt met wat er is gefactureerd.
Zijn embeddings veilig voor vertrouwelijke contracten?
Dat hangt af van waar ze worden gemaakt en opgeslagen, en of rechten worden afgedwongen bij het zoeken. Een vector is geen versleuteling. Behandel hem als gevoelige data.
Moet ik mijn embeddings opnieuw maken als ik van model wissel?
Ja. Embeddings van verschillende modellen zijn niet met elkaar te vergelijken. Wie van model wisselt, moet alle documenten opnieuw omzetten.
Meer in dit cluster
- Hoe werkt AI binnen Revenue Intelligence?Begin hier
- RAG vs database queries voor bedrijfsdata
- Context windows uitgelegd voor AI-systemen
- Inference uitgelegd
- Fine-tuning vs RAG voor bedrijfssoftware
- AI architecture voor Revenue Intelligence
- Wat is anomaly detection?
- Wat is predictive analytics?