Advanced AI Engineering
De Wiskundige Revolutie achter Semantisch Zoeken
Als je een traditionele database zoals MySQL en PostgreSQL, vraagt om te zoeken naar documenten met het woord ‘auto’, zoekt de database naar exact die lettercombinatie. Zoek je naar ‘voertuig’, dan vindt de database niets, ondanks dat de betekenis nagenoeg identiek is. Computers begrijpen immers van nature geen taal; ze begrijpen uitsluitend getallen. De doorbraak die moderne AI (en RAG-systemen) in staat stelt om de *betekenis* en *context* van menselijke taal te begrijpen, is gebaseerd op twee wiskundige concepten: **Vector Embeddings** en **Cosine Similarity**.
Wat is een Vector Embedding?
Een vector embedding is een reeks getallen (een vector van bijvoorbeeld 1536 dimensies) die de semantische betekenis van een brok tekst (een woord, een zin of een heel document) vertegenwoordigt. Je stuurt tekst naar een embedding-model (zoals OpenAI’s text-embedding-3-small), en het model spuugt een lange lijst getallen uit.
Je kunt je dit voorstellen als een gigantische, multidimensionale ruimte (een semantische kaart). In deze ruimte liggen woorden met een vergelijkbare betekenis dicht bij elkaar. De vector voor het woord ‘koning’ ligt in deze wiskundige ruimte heel dicht bij ‘koningin’ en ’troon’, maar ligt mijlenver verwijderd van ’tractor’ of ‘rekenmachine’. Het model vangt hiermee nuances op in toon, context en synoniemen.
Cosine Similarity: De Afstand Meten in de Vectorruimte
Zodra duizenden documenten zijn omgezet in vectoren en zijn opgeslagen in een Vector Database, kun je vragen gaan stellen. Hoe weet de database welk document het beste past bij de vraag van de gebruiker? Dat gebeurt via **Cosine Similarity** (cosinus-gelijkvormigheid).
Wanneer een gebruiker een vraag stelt (“Hoe los ik een netwerkstoring op?”), wordt deze vraag direct omgezet in een vector. Vervolgens berekent het systeem de hoek tussen de vraag-vector en alle document-vectoren in de database. De cosinus van die hoek geeft een score tussen -1 en 1:
- Een score van 1.0 betekent dat de vectoren exact dezelfde richting op wijzen (de betekenis is 100% identiek).
- Een score van 0.0 betekent dat ze orthogonaal zijn (geen enkele relatie).
- Een score van -1.0 betekent exact het tegenovergestelde.
De database sorteert de resultaten op basis van de hoogste score en selecteert bliksemsnel de meest relevante documenten.
De Keuze van de Juiste Vector Database
Om deze berekeningen over miljoenen vectoren binnen milliseconden uit te voeren, volstaat een traditionele database niet. Er is een complete markt ontstaan rondom gespecialiseerde vector databases zoals Qdrant, Milvus, Weaviate en Pinecone, of extensies op bestaande systemen zoals pgvector voor PostgreSQL. Het begrijpen van embeddings en similarity is de absolute basis voor elke developer die geavanceerde AI-toepassingen wil bouwen. Lees meer over AI-ontwikkeling op Computable.
Volgende:
Kennisbank overzicht
