CBoW- og Skip-Gram-Modeller
Stryg for at vise menuen
Et grundlæggende kendskab til neurale netværk anbefales til dette kapitel. Hvis du ikke er bekendt med emnet, er du velkommen til at udforske dette kursus:
Både CBoW- og Skip-gram-arkitekturer lærer ordindlejringer gennem en neural netværksstruktur, der består af følgende lag:
- et inputlag;
- et enkelt skjult lag;
- et outputlag.
Vægtningsmatricen mellem input- og skjult lag, betegnet som W1 eller E, fungerer som indlejringsmatricen. Hver række i denne matrix repræsenterer en indlejringsvektor for et tilsvarende ord, hvor den i-te række svarer til det i-te ord i ordforrådet.
Denne matrix indeholder V (ordforrådsstørrelse) indlejringer, hver af størrelse N, en dimension vi specificerer. Multiplikation af transponeret matrix (N×V matrix) med en one-hot kodet vektor (V×1 vektor) henter indlejringen for et specifikt ord og producerer en N×1 vektor.
Den anden vægtmatrix, mellem det skjulte lag og outputlaget, har størrelsen N×V. Multiplikation af transponeret matrix (V×N matrix) med det skjulte lags N×1 vektor resulterer i en V×1 vektor.
CBoW
Her ses et eksempel på brug af en CBoW-model:
Først multipliceres transponeringen af embeddings-matricen med one-hot-vektorerne for kontekstordene for at producere deres indlejringer. Disse indlejringer summeres eller gennemsnitsberegnes afhængigt af implementeringen for at danne en enkelt vektor. Denne vektor multipliceres med W2-matricen, hvilket resulterer i en V×1 vektor.
Til sidst passerer denne vektor gennem softmax-aktiveringsfunktionen, som omdanner den til en sandsynlighedsfordeling, hvor hvert element repræsenterer sandsynligheden for, at et ord i ordforrådet er målordet.
Herefter beregnes tabet, og begge vægtmatricer opdateres for at minimere dette tab. Ideelt set ønsker vi, at sandsynligheden for målordet er tæt på 1, mens sandsynlighederne for alle andre ord nærmer sig nul. Denne proces gentages for hver kombination af et målord og dets kontekstord.
Når alle kombinationer er behandlet, er en epoke gennemført. Typisk trænes det neurale netværk over flere epoker for at sikre nøjagtig indlæring. Til sidst kan rækkerne i den resulterende embedding-matrix bruges som vores word embeddings. Hver række svarer til den vektorrepræsentation af et specifikt ord i ordforrådet, hvilket effektivt indfanger dets semantiske egenskaber i den trænede model.
Skip-gram
Lad os nu se nærmere på en skip-gram-model:
Som du kan se, er processen stort set den samme som for CBoW. Den starter med at hente embedding af målordet, som derefter bruges i det skjulte lag. Dette efterfølges af produktionen af en V×1 vektor i outputlaget. Denne vektor, opnået ved at multiplicere målordets embedding med outputlagets vægtmatrix, transformeres derefter af softmax aktiveringsfunktionen til en sandsynlighedsvektor.
Selvom denne resulterende sandsynlighedsvektor er den samme for alle kontekstord forbundet med et enkelt målord under et enkelt træningsskridt, beregnes tabet for hvert kontekstord individuelt.
Tabet for hvert kontekstord summeres, og vægtmatricerne opdateres tilsvarende ved hver iteration for at minimere det samlede tab. Når det angivne antal epoker er gennemført, kan embeddings-matricen bruges til at hente word embeddings.
I praksis, især med store ordforråd, kan softmax-funktionen være for beregningstung. Derfor anvendes ofte tilnærmelser såsom negativ sampling for at gøre beregningen mere effektiv.
1. Udfyld de tomme felter
2. Hvad repræsenterer den første vægtmatrix W1 i det neurale netværk?
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat