Gevorderd • Les 7
Embeddings en semantisch zoeken
Hoe kan een computer begrijpen dat “auto” en “wagen” hetzelfde betekenen? Het antwoord ligt in embeddings: wiskundige representaties van betekenis. Ze vormen de basis van moderne zoeksystemen, aanbevelingsalgoritmes en RAG-architecturen.
Wat zijn embeddings?
Een embedding is een vector: een lijst getallen die de betekenis van een woord, zin of document vastlegt. Woorden met vergelijkbare betekenis krijgen vectoren die dicht bij elkaar liggen in de vectorruimte. “Koning” en “koningin” liggen bijvoorbeeld dicht bij elkaar, maar ver van “fiets”. Moderne embedding-modellen zoals text-embedding-3 van OpenAI of de embedding-modellen van Cohere verwerken volledige zinnen en documenten.
Hoe werkt semantisch zoeken?
Bij traditioneel zoeken wordt gezocht op exacte woordovereenkomsten. Semantisch zoeken vergelijkt de embedding van je zoekvraag met de embeddings van alle documenten in de database. Documenten die qua betekenis dicht bij je vraag liggen worden bovenaan getoond, ook als ze niet exact dezelfde woorden bevatten. Dit maakt zoekopdrachten veel natuurlijker.
Cosine similarity
Om te meten hoe dicht twee embeddings bij elkaar liggen, gebruikt men cosine similarity: een maatstaf die de hoek tussen twee vectoren berekent. Een waarde van 1 betekent identiek, 0 betekent geen verband. In de praktijk gebruik je libraries zoals FAISS of vector databases zoals Pinecone, Weaviate of Chroma om snel te zoeken in miljoenen embeddings.
Toepassingen
Embeddings worden gebruikt in zoeksystemen, aanbevelingsalgoritmes (“je vindt dit wellicht ook leuk”), duplicaatdetectie, sentiment-analyse en als fundamenteel onderdeel van RAG-systemen waarbij documenten worden opgezocht op basis van de vraag van de gebruiker.