Semantische gelijkenis: hoe computers begrijpen dat woorden hetzelfde bedoelen
Stel dat je aan een zoekmachine vraagt: "hoe kook ik rijst zonder pan". Je krijgt een pagina te zien met de titel "rijst bereiden zonder kookgerei". Geen van de woorden komt letterlijk overeen, en toch is de pagina precies raak. Dat is semantische gelijkenis: de mate waarin twee stukken tekst hetzelfde betekenen, ongeacht welke woorden ze daarvoor gebruiken. "Semantisch" verwijst simpelweg naar betekenis, in tegenstelling tot de letterlijke vorm van een tekst.
Vroeger zochten computers vooral op letterlijke woordovereenkomst: kwam "rijst" en "pan" voor in de tekst, dan was er een match. Betekenis speelde geen rol, dus synoniemen, omschrijvingen of andere formuleringen van dezelfde vraag werden vaak gemist. Semantische gelijkenis is het antwoord op dat probleem: een manier om taal zo om te zetten dat een computer kan "aanvoelen" of twee zinnen, woorden of documenten inhoudelijk bij elkaar horen, ook al lijken ze oppervlakkig niet op elkaar.
Wat is het precies?
De kern van semantische gelijkenis is een techniek die embeddings heet (letterlijk: "inbeddingen"). Een embedding is een lijst van getallen, een zogeheten vector, die een woord, zin of tekst representeert. Zo'n vector bestaat vaak uit honderden of duizenden getallen en beschrijft in feite de "positie" van die tekst in een denkbeeldige ruimte van betekenissen.
Het idee daarachter is niet nieuw: al in de jaren vijftig opperde de taalkundige John Firth dat je een woord herkent aan het gezelschap dat het houdt. Woorden die vaak in vergelijkbare zinnen naast dezelfde andere woorden staan, hebben waarschijnlijk een vergelijkbare betekenis. "Koning" en "vorst" duiken bijvoorbeeld vaak in dezelfde context op, terwijl "koning" en "broccoli" dat niet doen.
Moderne systemen leren dit patroon door een neuraal netwerk (een wiskundig model losjes geïnspireerd op de hersenen) te trainen op enorme hoeveelheden tekst, soms miljarden zinnen. Het model leert daarbij zelf welke woorden vaak samen voorkomen, en plaatst woorden en zinnen met een vergelijkbare betekenis dicht bij elkaar in de vectorruimte. Vroege methodes zoals Word2Vec en GloVe deden dit per los woord. Latere modellen, gebaseerd op de zogeheten transformer-architectuur (zoals BERT), kijken naar de hele zin tegelijk. Daardoor kunnen ze ook onderscheid maken tussen "bank" als zitmeubel en "bank" als financiële instelling, afhankelijk van de context.
Zodra twee teksten allebei zijn omgezet in een vector, kun je ze wiskundig vergelijken. Meestal gebeurt dat met de cosinusgelijkenis: een berekening die aangeeft hoe dicht twee vectoren bij elkaar liggen, uitgedrukt in een getal tussen -1 en 1 (of vaak herschaald naar 0 en 1). Hoe hoger dat getal, hoe groter de semantische gelijkenis volgens het model.
Wat wil men ermee bereiken?
De belofte van semantische gelijkenis is dat computers taal meer begrijpen zoals mensen dat doen: op basis van betekenis, niet van exacte woorden. Dat opent een reeks praktische toepassingen.
Zoekmachines gebruiken het om de intentie achter een zoekopdracht te begrijpen, ook als die anders geformuleerd is dan de tekst op een pagina. Aanbevelingssystemen, zoals bij streamingdiensten of webwinkels, gebruiken semantische gelijkenis om artikelen of content voor te stellen die inhoudelijk aansluiten bij wat je eerder bekeek. Chatbots en zogeheten RAG-systemen (Retrieval-Augmented Generation, oftewel taalmodellen die eerst relevante documenten opzoeken voordat ze een antwoord formuleren) gebruiken embeddings om snel de meest relevante stukken tekst uit een grote database te vinden.
Daarnaast speelt het een rol bij het opsporen van plagiaat en parafrases, het clusteren van vergelijkbare documenten, het filteren van duplicaten in grote datasets, en het controleren of een beweringen overeenkomt met feitelijke bronnen bij factcheckwerk. Het achterliggende doel is steeds hetzelfde: taal doorzoekbaar en vergelijkbaar maken op basis van inhoud, niet van toevallige woordkeuze.
Voorbeelden uit de praktijk
Word2Vec (Google, 2013) was een van de eerste technieken die liet zien dat je woordbetekenis bruikbaar in getallen kon vangen. Onderzoekers rond Tomas Mikolov toonden destijds de beroemde rekensom "koning - man + vrouw ≈ koningin", wat aantoonde dat de vectorruimte echte betekenisrelaties bevatte.
GloVe, ontwikkeld door de Stanford NLP Group, verscheen kort daarna als alternatieve methode en werd jarenlang veel gebruikt in onderzoek en industrie vanwege de goede prestaties en relatief eenvoudige training.
Sentence-BERT (SBERT), voorgesteld door onderzoekers Nils Reimers en Iryna Gurevych van het UKP Lab aan de TU Darmstadt in 2019, maakte het voor het eerst praktisch snel om hele zinnen (in plaats van losse woorden) te vergelijken. Voor die tijd was het met het originele BERT-model rekenkundig zeer kostbaar om duizenden zinnen onderling te vergelijken; SBERT loste dat op.
Google Search begon vanaf 2019 gebruik te maken van BERT-achtige technieken om zoekopdrachten beter te begrijpen, met name langere, spreektaal-achtige vragen waarbij de context van woorden ten opzichte van elkaar uitmaakt.
Semantic Scholar, een dienst van het Allen Institute for AI, gebruikt semantische gelijkenis om wetenschappelijke publicaties aan onderzoekers aan te bevelen op basis van inhoud in plaats van alleen trefwoorden of citaties, en is inmiddels een veelgebruikt hulpmiddel in de academische wereld.
Hoe ver is de techniek?
Voor tekst binnen dezelfde taal is semantische gelijkenis inmiddels een volwassen technologie: de modellen zijn breed beschikbaar, relatief goedkoop te gebruiken en geïntegreerd in tal van producten. Sinds de opkomst van generatieve AI-chatbots vanaf 2022 is de vraag naar deze techniek sterk gegroeid, omdat RAG-systemen embeddings nodig hebben om relevante documenten te vinden voordat een taalmodel een antwoord genereert. Dit heeft geleid tot een nieuwe categorie software: vectordatabases, gespecialiseerde systemen die miljoenen of miljarden embeddings kunnen opslaan en razendsnel de meest gelijkende vectoren kunnen opzoeken.
Toch zijn er duidelijke grenzen. De kwaliteit van semantische gelijkenis hangt sterk af van de data waarop een model getraind is: vaktaal, dialect of cultuurspecifieke uitdrukkingen worden vaak minder goed herkend. Modellen kunnen ook vooroordelen uit hun trainingsdata overnemen, bijvoorbeeld in de manier waarop ze bepaalde beroepen aan een geslacht koppelen. Ontkenning ("ik hou niet van koffie" versus "ik hou van koffie") en sarcasme blijven notoir lastig, omdat de vectoren van zulke zinnen soms toch dicht bij elkaar liggen terwijl de betekenis tegengesteld is.
Ook het meten van kwaliteit is niet eenvoudig: er bestaat geen absolute maatstaf voor "betekenis", dus onderzoekers gebruiken benchmarks zoals de STS Benchmark en het bredere MTEB (Massive Text Embedding Benchmark) om modellen onderling te vergelijken op tientallen taken tegelijk. Vertaling tussen talen (cross-linguale gelijkenis) is nog een actief onderzoeksgebied, met wisselende resultaten afhankelijk van de taalcombinatie.
Wie werken eraan?
Google (met Word2Vec en BERT) en OpenAI (met een eigen embeddings-API, waaronder het model text-embedding-ada-002 dat eind 2022 verscheen) behoren tot de grote spelers die zowel onderzoek doen als kant-en-klare modellen aanbieden. Meta AI ontwikkelde de veelgebruikte open-source bibliotheek FAISS voor het razendsnel doorzoeken van grote hoeveelheden vectoren.
Op universitair niveau springen het UKP Lab van de TU Darmstadt (Duitsland), verantwoordelijk voor Sentence-BERT, en de Stanford NLP Group (Verenigde Staten), bekend van GloVe, eruit. Het Allen Institute for AI (AI2) in Seattle bouwt met Semantic Scholar een van de bekendste praktijktoepassingen.
Hugging Face, een bedrijf gespecialiseerd in open-source AI-modellen, speelt een centrale rol als platform waar duizenden embeddingmodellen vrij te downloaden zijn en waar de MTEB-ranglijst wordt bijgehouden. Ook gespecialiseerde vectordatabasebedrijven zoals het Nederlandse Weaviate, en branchegenoten als Pinecone en Milvus, bouwen de infrastructuur die nodig is om semantische gelijkenis op grote schaal toepasbaar te maken.