Vectorembedding: hoe computers taal en betekenis leren 'begrijpen'
Stel je voor dat je elk woord, elke zin of elke foto kunt omzetten in een lijst van honderden getallen, en dat die lijst zo slim is samengesteld dat gelijkenis in betekenis zich vertaalt in gelijkenis in getallen. Dat is in de kern wat een vectorembedding is: een numerieke 'vertaling' van iets betekenisvols (een woord, een zin, een plaatje, een geluidsfragment) naar een punt in een wiskundige ruimte met vaak honderden dimensies.
Een handige analogie is een landkaart. Op een kaart liggen Amsterdam en Utrecht dicht bij elkaar, en Amsterdam en Sydney ver uit elkaar, omdat de kaart afstand in de echte wereld weergeeft. Een vectorembedding doet iets vergelijkbaars, maar dan met betekenis in plaats van geografie: de woorden 'hond' en 'puppy' liggen dicht bij elkaar in deze ruimte, terwijl 'hond' en 'belastingaangifte' ver uit elkaar liggen. Computers kunnen daardoor met rekenkundige afstand bepalen of twee dingen op elkaar lijken, zonder dat iemand die gelijkenis met de hand heeft opgeschreven.
Wat is het precies?
Een vectorembedding ontstaat door een stuk data (tekst, beeld, geluid) door een neuraal netwerk te laten verwerken dat speciaal getraind is om betekenisvolle patronen te herkennen. Dat netwerk geeft als uitkomst geen tekst of plaatje terug, maar een vector: een rijtje getallen, bijvoorbeeld 768 of 1536 getallen lang, afhankelijk van het model.
Tijdens het trainen krijgt het netwerk talloze voorbeelden te zien van woorden of zinnen in hun natuurlijke context. Het leert daaruit welke dingen vaak samen voorkomen of op elkaar lijken, en past de getallen in de vectoren daar geleidelijk op aan. Zo leert het model bijvoorbeeld dat 'koning' en 'koningin' een vergelijkbare relatie hebben als 'man' en 'vrouw' — een beroemd voorbeeld uit vroeg onderzoek, waarbij het verschil tussen de vectoren van die woordparen bijna identiek bleek.
Eenmaal gemaakt, kun je vectoren met elkaar vergelijken via een wiskundige afstandsmaat, vaak de zogeheten cosinus-gelijkenis: hoe kleiner de hoek tussen twee vectoren, hoe meer de onderliggende betekenissen op elkaar lijken. Dit maakt het mogelijk om razendsnel te zoeken naar 'dingen die hierop lijken' in enorme databases, zelfs als de exacte woorden niet overeenkomen.
Wat wil men ermee bereiken?
Het grote doel achter vectorembeddings is dat computers kunnen omgaan met betekenis in plaats van alleen met letterlijke tekst. Traditionele zoekmachines zochten op exacte woorden; wie 'auto kopen' intikte, kreeg geen resultaten met 'wagen aanschaffen', ook al betekenen die zinnen bijna hetzelfde. Met embeddings kan een systeem wél het verband leggen, omdat de vectoren van die zinnen dicht bij elkaar liggen.
Een tweede belangrijke drijfveer is de opkomst van grote taalmodellen zoals ChatGPT. Die modellen hebben geen geheugen van specifieke documenten, dus bedrijven gebruiken embeddings om relevante informatie uit eigen bestanden op te zoeken en als context aan het model te geven. Deze aanpak heet Retrieval-Augmented Generation (RAG, ofwel 'aanvulling door het ophalen van informatie'), en is inmiddels een van de meest gebruikte technieken om AI-chatbots feitelijk correcte, actuele antwoorden te laten geven over bijvoorbeeld bedrijfsdocumenten.
Daarnaast worden embeddings ingezet voor aanbevelingssystemen (welke films of liedjes lijken op wat je al leuk vond), fraudedetectie (welke transacties lijken op bekende fraudegevallen) en het clusteren van grote hoeveelheden ongestructureerde data zonder dat een mens alles handmatig moet labelen.
Voorbeelden uit de praktijk
De techniek is inmiddels op grote schaal toegepast. Enkele bekende voorbeelden:
- Word2Vec (Google, 2013) — ontwikkeld door onderzoeker Tomas Mikolov en collega's, een van de eerste wijdverspreide methodes om woorden om te zetten in betekenisvolle vectoren, en de basis voor veel latere toepassingen.
- GloVe (Stanford University, 2014) — een alternatieve embeddingmethode die woordvectoren leert uit globale co-occurrentiestatistieken in grote tekstcorpora, lange tijd een standaard in taaltechnologie-onderzoek.
- BERT-embeddings (Google, 2018) — in tegenstelling tot Word2Vec geeft BERT per zin een andere vector voor hetzelfde woord, afhankelijk van de context, wat de nauwkeurigheid van zoekmachines en vertaaltools sterk verbeterde.
- OpenAI's embeddingmodellen (vanaf 2022) — veel gebruikt door ontwikkelaars om RAG-chatbots te bouwen die kunnen 'praten' over eigen documenten, handleidingen of klantendata.
- Spotify gebruikt embeddings van liedjes en luistergedrag om gepersonaliseerde afspeellijsten zoals Discover Weekly samen te stellen, door nummers die 'muzikaal dicht bij elkaar' liggen te groeperen.
Hoe ver is de techniek?
Vectorembeddings zijn geen nieuwe hype, maar een volwassen en breed toegepaste technologie die al meer dan tien jaar in ontwikkeling is. Wat recent wel versnelt, is de schaal en de infrastructuur eromheen: het aantal vectordatabases — gespecialiseerde systemen om miljarden vectoren snel te doorzoeken — is sinds 2021 explosief gegroeid, mede door de populariteit van RAG-toepassingen met taalmodellen.
Een belangrijke mijlpaal was de introductie van transformer-gebaseerde modellen zoals BERT, die veel rijkere, context-afhankelijke embeddings opleverden dan de oudere Word2Vec-aanpak. Een volgende stap was het beschikbaar maken van kant-en-klare embedding-API's door bedrijven als OpenAI en Cohere, waardoor ontwikkelaars zelf geen taalmodel meer hoeven te trainen.
De belangrijkste overgebleven obstakels zijn praktisch van aard: embeddings van verschillende modellen zijn onderling niet compatibel, waardoor overstappen naar een nieuw model vaak betekent dat een hele database opnieuw moet worden omgezet. Ook is het lastig om precies te verklaren waarom twee vectoren dicht bij elkaar liggen, wat het debuggen van onverwacht gedrag moeilijk maakt. Daarnaast kunnen embeddings onbedoeld vooroordelen uit trainingsdata overnemen, bijvoorbeeld stereotype associaties tussen beroepen en geslacht, wat actief onderzoek naar correctiemethoden heeft aangewakkerd.
Wie werken eraan?
Het onderzoek en de toepassing van vectorembeddings is wereldwijd verspreid, met een zwaartepunt in de Verenigde Staten. Google (Word2Vec, BERT) en OpenAI (embedding-API's, gebruikt in ChatGPT-gerelateerde toepassingen) zijn toonaangevend, net als Meta (voorheen Facebook), dat met de open-source bibliotheek FAISS een veelgebruikte standaard voor het doorzoeken van vectoren heeft neergezet.
Op onderzoeksgebied speelt de Stanford University NLP-groep (GloVe) een belangrijke rol, net als diverse academische groepen die zich bezighouden met taaltechnologie en representatieleren. Daarnaast is een hele nieuwe industrie van gespecialiseerde vectordatabase-bedrijven ontstaan, waaronder Pinecone, Weaviate, Qdrant en Zilliz (maker van Milvus), die infrastructuur bouwen om embeddings op grote schaal op te slaan en te doorzoeken. Ook Microsoft (via Bing en Azure AI) en het Canadese Cohere leveren veelgebruikte embeddingmodellen voor bedrijfstoepassingen.