Blog

Het potentieel van bedrijfsdata ontsluiten; De rol van vector embeddings

| Gert Jan Spriensma

Omdat dit zo'n basisonderdeel van AI is, vinden we dat je het moet begrijpen als jij en je bedrijf serieus zijn over data, ook als je er niet direct mee werkt. Hieronder leggen we uit wat vector embeddings zijn, zonder al te diep in de techniek te gaan.

Wat zijn vector embeddings?

Kort gezegd is een vector embedding een numerieke representatie van tekst, beelden, geluiden, enzovoort. Je kunt bijvoorbeeld elk woord van een zin nemen en er een getal aan toekennen, wat een elementaire vector embedding is. We kunnen bijvoorbeeld de zin 'Een man loopt in een veld' vertalen naar een vector van getallen.

Tabel die elk woord van a man is walking in a field telt en optelt tot een eenvoudige woordvector

De vector embeddings in moderne AI-applicaties zijn complexer. Als we bij tekst blijven, zal het proberen de essentie van een zin op een vector te mappen. Zo kun je in een voorbeeld dat door Word2Vec is gedeeld (een vroege implementatie uitgevonden door Google) verschillende dieren gemapt vinden op een set concepten.

Woorden als bunny, rabbit, mother en man gescoord op zes dimensies, met verwante woorden dicht bij elkaar geplot

Dit voorbeeld mapt naar 6 verschillende dimensies, maar echte vector-mapping kan honderden of duizenden dimensies hebben. Dat kunnen we ons niet voorstellen, maar het is hetzelfde als gaan van 2-dimensionale ruimte naar 3 dimensies, je voegt meer mogelijkheden toe. Stel dat je alleen de optie van gehele getallen hebt op een schaal van 1-100. 1 dimensie zou je 100 posities geven, de tweede dimensie zou 100x100 = 10000 posities geven en de derde dimensie zou je al 1 miljoen posities geven (100x100x100).

Wat kun je met die vector embeddings doen?

Nadat de vector embedding is gemaakt, hebben we dus een numerieke representatie van de tekst. Omdat het getallen zijn kunnen we ermee rekenen. Dat opent veel mogelijkheden, die allemaal neerkomen op hetzelfde idee, namelijk dingen vinden die dicht bij elkaar liggen. Of het nu gaat om het maken van clusters, het vinden van het beste alternatief of het identificeren van afwijkingen, het komt allemaal neer op hoe dicht verschillende vectoren bij elkaar liggen.

De grafieken aan de rechterkant tonen een 2D-visualisatie (dimensiereductie) van het Word2Vec-voorbeeld. Daar liggen het konijntje en het konijn heel dicht bij elkaar omdat ze het concept van zoogdier en niet-knaagdier delen. In sommige gevallen wordt de hamster ook als dichtbij beschouwd, terwijl die in andere gevallen als onderdeel van een ander cluster wordt gezien.

Terug naar het eerdere voorbeeld van "Een man loopt in een veld", dit ligt nu dichter bij de tekst "een kleine jongen loopt" dan bij "een hond loopt langs een veld". Hoewel de zinnen "Een man loopt in een veld" en "een hond loopt langs een veld" meer op elkaar lijken, is de connectie tussen een man en een kleine jongen sterker. Dus de similarity score van die twee zinnen is hoger.

Zinnen geplot op betekenis, waarbij a man is walking in a field dicht bij a little boy is walking ligt

Als we al deze teksten in een database hebben, kunnen we de nabijheid berekenen ten opzichte van de string die we zoeken. Dit is wat we een similarity search noemen.

Wat zijn de toepassingen voor vector embeddings?

Hoewel veel mensen nu opeens bekend zijn met vector embeddings, wordt het concept al jaren toegepast. Een Google image search of een aanbeveling nadat je een serie op Netflix hebt afgekeken, het is allemaal gebaseerd op dit concept.

Een paar voorbeelden van wat je met vector embeddings kunt doen:

  • Magische foto-editors, bijvoorbeeld mensen uit de achtergrond verwijderen
  • Productaanbevelingen
  • Chatbots die vragen beantwoorden op basis van jouw data
  • Klanten identificeren die dreigen weg te lopen
  • De-duplicatie van data
  • Anomaliedetectie

Een voorbeeld, van een use-case van vector embeddings?

Onlangs deden we een project waarbij we een chatbot ontwikkelden om vragen te beantwoorden over een dataset van miljoenen artikelen. We gebruikten een systeem om alleen de relevante artikelen op te halen, met de ideeën die in deze post worden besproken. We vectoriseerden de vraag en vergeleken die vector met de vectoren in de database (similarity search), wat leidde tot 10 artikelen die werden gebruikt om de vraag te beantwoorden.

We bespreken dat project in een vervolgpost, maar je kunt nu al meer informatie over dat project vinden in de use-cases.

Gert Jan Spriensma

Auteur

Gert Jan Spriensma

Ervaren AI-engineer die productieklare AI-systemen bouwt.

LinkedIn

Nieuwsbrief

Blijf op de hoogte

Meld je aan voor onze nieuwsbrief en ontvang onze kijk op alles wat speelt in data en AI.

Contact

Wat wil jij met AI bereiken?

Neem contact op met ons team via contact@mozaik.ai of gebruik het formulier hieronder.

Of kom langs op ons kantoor: Pakhuis De Hoop, Breestraat 59, Amersfoort.

Pakhuis De Hoop, Breestraat 59, Amersfoort

We gebruiken je gegevens alleen om op je bericht te reageren. Lees meer in ons privacybeleid.