Cbow- og Skip-gram-modeller
Stryg for at vise menuen
Både CBoW- og Skip-gram-arkitekturer lærer ordindlejringer gennem en neuralt 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 af denne 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ægtningsmatrix, mellem det skjulte og outputlaget, har størrelsen N×V. Multiplikation af transponeret af denne matrix (V×N matrix) med det skjulte lags N×1 vektor resulterer i en V×1 vektor.
CBoW
Se nu et eksempel på brug af en CBoW-model:
Først multipliceres transponeringen af embeddings-matricen med one-hot-vektorerne for kontekstordene for at generere 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, hvilket 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 ønskes sandsynligheden for målordet 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 fuldfø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 embeddings-matrix anvendes som vores ordindlejringer. Hver række svarer til den vektorielle repræsentation af et specifikt ord i ordforrådet og indfanger effektivt 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 for målordet, som derefter bruges i det skjulte lag. Dette efterfølges af generering 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 tilknyttet 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 tilnærmelser som negativ sampling ofte 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