Voorbeeld: Het Volgende Woord Voorspellen

We hebben onderzocht hoe woorden als vectoren kunnen worden weergegeven, hoe neurale netwerken betekenis vastleggen en hoe transformers attention gebruiken om met context om te gaan. Laten we nu zien hoe deze ideeën samenkomen in één compleet voorbeeld: een model leren om het volgende woord in een zin te voorspellen.

Dit is de fundamentele taak achter moderne NLP. Of een systeem nu documenten samenvat, vragen beantwoordt of chat zoals ChatGPT, in de kern voorspelt het herhaaldelijk het meest waarschijnlijke volgende token op basis van alles wat eraan voorafging.


Stap 1: Het Probleem En De Data Begrijpen

De basistaak is simpel: gegeven een zin als "The cat sat on the ___" moet het model leren dat waarschijnlijke vervolgen mat of sofa zijn, maar geen volcano.

Om dit vermogen te trainen, gebruiken we een dataset met tekst—boeken, artikelen of gesprekken. De data wordt getokenized (opgedeeld in eenheden zoals woorden of subwoorden) en weergegeven als numerieke IDs.

  • Bijvoorbeeld, de zin "cats chase mice"[42,381,97][42, 381, 97].
  • Vocabulairegrootte: vaak 30.000–50.000 tokens.
  • Inputformaat: reeksen tokens.
  • Output: kansverdeling over het vocabulaire voor het volgende token.
Illustration of predicting next word: 'The cat sat on the ___'

Kort gezegd leert het model om reeksen tokens om te zetten in kansverdelingen die vastleggen welke woorden het meest waarschijnlijk hierna komen.


Stap 2: Woorden Representeren

Voordat een netwerk tekst kan verwerken, moeten woorden in vectoren worden omgezet.

  • One-hot encoding: Elk woord wordt gerepresenteerd als een sparse vector met één “1” en verder allemaal “0’s”. Eenvoudig maar inefficiënt.
  • Embeddings: In plaats daarvan gebruiken we dichte vectoren waarbij vergelijkbare woorden dicht bij elkaar liggen in de ruimte. Bijvoorbeeld:
vec(cat)[0.12,0.85,0.33,...]\text{vec}(\text{cat}) \approx [0.12, -0.85, 0.33, ...]

Deze embeddings worden tijdens training geleerd en leggen semantische relaties vast zoals king – man + woman ≈ queen.


Stap 3: Het Model Bouwen

We gebruiken een Transformer-taalmodelarchitectuur:

  • Embedding-laag: zet tokens om in vectoren.
  • Positionele encoding: voegt informatie over woordvolgorde toe.
  • Attention-lagen: elk woord kan naar andere woorden in de zin “kijken” en de meest relevante wegen.
  • Feedforward-lagen: verwerken en transformeren representaties.
  • Outputlaag: een softmax-functie over het vocabulaire geeft kansen voor het volgende woord.

Voor “The cat sat on the ___” kan het model bijvoorbeeld uitgeven:

  • mat → 0,65.
  • floor → 0,20.
  • sofa → 0,10.
  • volcano → 0,0001.

Deze architectuur stelt Transformers in staat betekenis, context en relaties te vatten en coherente voorspellingen te produceren die weerspiegelen hoe woorden bij elkaar passen.


Stap 4: Het Netwerk Trainen

Loss function: We gebruiken cross-entropy-loss, die meet hoe ver de voorspelde kansen van het model afliggen van het juiste antwoord.

Loss=i=1Vyi×log(pi)\text{Loss} = - \sum_{i=1}^{V} y_i \times \log(p_i)

Je herinnert je deze formule misschien uit Hoofdstuk 3. Laten we haar ontleden:

  • VV is de grootte van het vocabulaire (alle mogelijke woorden).
  • yiy_i is het ware label voor woord ii (1 voor het juiste woord en 0 voor alle andere).
  • pip_i is de kans die het model aan woord ii toekent.

🐱 Voorspellingsvoorbeeld: als het model “mat” voorspelt met kans 0.90.9 (90%), dan is de loss log(0.9)0.05-\log(0.9) \approx 0.05 (een zeer kleine straf). Maar als het “mat” slechts 0.10.1 (10%) geeft, is de loss log(0.1)2.3-\log(0.1) \approx 2.3 (een veel grotere straf).

Het model wordt dus beloond voor het toekennen van hoge kans aan het juiste woord en anders gestraft.

Trainingsloop:

  1. Inputzin: “The cat sat on the”.
  2. Model voorspelt kansen voor het volgende woord.
  3. Het juiste woord is “mat” → loss wordt berekend.
  4. Backpropagation werkt alle attention-gewichten en embeddings bij.
  5. Herhaal dit miljoenen keren op verschillende zinnen.

Na verloop van tijd verschuift het model van willekeurige gokjes naar betekenisvolle voorspellingen.


Stap 5: Wat Het Model Leert

Attention-mechanismen laten het model zowel lokale grammatica als langetermijnafhankelijkheden vastleggen.

  • In “The cat that was sleeping finally woke up” koppelt attention "cat" aan "woke", niet alleen aan nabije woorden.
  • In “The animal didn’t cross the road because it was too tired” helpt attention om "it" te laten verwijzen naar "animal" en niet per ongeluk naar "road".

Dit vermogen om relevantie dynamisch te wegen maakt transformers zo krachtig.


Stap 6: Evaluatie

Om ons model te testen, meten we perplexity, een maat voor hoe goed het tekst voorspelt:

Perplexity=2Cross-Entropy Loss\text{Perplexity} = 2^{\text{Cross-Entropy Loss}}
  • Lage perplexity → model is zelfverzekerd en accuraat.
  • Hoge perplexity → model is onzeker of fout.

Een goed model kan zinnen genereren zoals:

  • “The cat sat on the mat, purring softly”, terwijl een zwakker model zou kunnen produceren:
  • “The cat sat on the banana, purring computers”.

Het verschil illustreert hoe goed het netwerk taalpatronen heeft vastgelegd.


Stap 7: Van Voorspelling Naar Conversatie

Op schaal leidt deze eenvoudige taak “voorspel het volgende woord” tot opmerkelijke mogelijkheden:

  • Zinvoltooiing: het vervolg van een frase voorspellen.
  • Samenvatting: verkorte versies van tekst voorspellen.
  • Vertaling: het volgende woord in een andere taal voorspellen.
  • Dialoog: de volgende beurt in een gesprek voorspellen.

ChatGPT is in wezen dit proces dat vele malen wordt herhaald, met extra fine-tuning en veiligheidslagen om antwoorden conversatiegericht en nuttig te maken.


Alles Bij Elkaar Gezet

Dit voorbeeld verbindt de kernreis van NLP:

  1. Tokens naar vectoren: woorden worden embeddings.
  2. Attention-lagen: context bepaalt welke woorden het meest tellen.
  3. Voorspelling: softmax geeft kansen voor het volgende woord.
  4. Leren: backpropagation past embeddings en attention-gewichten aan.
  5. Evaluatie: metrics zoals perplexity meten succes.

Wat begint als ruwe tekst, wordt een systeem dat taal kan modelleren—niet alleen woorden matchen, maar relaties, syntaxis en betekenis vastleggen.


Belangrijkste Inzichten

Next-word prediction is bedrieglijk simpel maar ongelooflijk krachtig. Het laat zien hoe embeddings, attention en transformers samenkomen om taal te produceren die natuurlijk aanvoelt. Ditzelfde mechanisme schaalt op naar chatbots, summarizers, vertalers en meer.

Het belangrijkste is dat het model dit allemaal automatisch uit data leert. Net zoals CNNs randen en vormen ontdekken, ontdekken taalmodellen grammatica en betekenis—waardoor de basistaak van “wat komt hierna” voorspellen de fundering wordt van moderne natural language processing.