CBoW- og Skip-Gram-Modeller
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 word embeddings gennem en neural netværksstruktur bestående 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 embeddings-matrixen. Hver række i denne matrix repræsenterer en embedding-vektor for et tilsvarende ord, hvor den i-te række matcher det i-te ord i ordforrådet.
Denne matrix indeholder V (ordforrådsstørrelse) embeddings, 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 embedding 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 af denne 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 transponeret af embeddings-matrixen med one-hot vektorerne for kontekstordene for at generere deres embeddings. Disse embeddings summeres eller gennemsnitsberegnes afhængigt af implementeringen for at danne en enkelt vektor. Denne vektor multipliceres med W2-matrixen, 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 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 anvendes som vores word embeddings. Hver række svarer til vektorrepræsentationen 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 det kan ses, ligner processen i høj grad CBoW. Den starter med at hente embedding for målordet, som derefter anvendes i det skjulte lag. Dette efterfølges af at producere 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 vektor af sandsynligheder.
Selvom denne resulterende vektor af sandsynligheder 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 opnå 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
Awesome!
Completion rate improved to 3.45
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 word embeddings gennem en neural netværksstruktur bestående 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 embeddings-matrixen. Hver række i denne matrix repræsenterer en embedding-vektor for et tilsvarende ord, hvor den i-te række matcher det i-te ord i ordforrådet.
Denne matrix indeholder V (ordforrådsstørrelse) embeddings, 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 embedding 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 af denne 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 transponeret af embeddings-matrixen med one-hot vektorerne for kontekstordene for at generere deres embeddings. Disse embeddings summeres eller gennemsnitsberegnes afhængigt af implementeringen for at danne en enkelt vektor. Denne vektor multipliceres med W2-matrixen, 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 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 anvendes som vores word embeddings. Hver række svarer til vektorrepræsentationen 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 det kan ses, ligner processen i høj grad CBoW. Den starter med at hente embedding for målordet, som derefter anvendes i det skjulte lag. Dette efterfølges af at producere 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 vektor af sandsynligheder.
Selvom denne resulterende vektor af sandsynligheder 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 opnå 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!