Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære CBoW- og Skip-Gram-Modeller | Ordindlejringer
Introduktion til NLP med Python

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 W1W^1 eller EE, fungerer som indlejringsmatricen. Hver række i denne matrix repræsenterer en indlejringsvektor for et tilsvarende ord, hvor den ii-te række svarer til det ii-te ord i ordforrådet.

Denne matrix indeholder VV (ordforrådsstørrelse) indlejringer, hver af størrelse NN, en dimension vi specificerer. Multiplikation af transponeret matrix (N×VN \times V matrix) med en one-hot kodet vektor (V×1V \times 1 vektor) henter indlejringen for et specifikt ord og producerer en N×1N \times 1 vektor.

Indlejringsmatrix

Den anden vægtmatrix, mellem det skjulte lag og outputlaget, har størrelsen N×VN \times V. Multiplikation af transponeret matrix (V×NV \times N matrix) med det skjulte lags N×1N \times 1 vektor resulterer i en V×1V \times 1 vektor.

CBoW

Her ses et eksempel på brug af en CBoW-model:

CBoW

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 W2W^2-matricen, hvilket resulterer i en V×1V \times 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.

Softmax

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:

Skip-gram

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×1V \times 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.

Note
Bemærk

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.

Note
Læs Mere

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 W1W^1 i det neurale netværk?

question-icon

Udfyld de tomme felter

The architecture tries to predict the target word from its context.
The
architecture tries to predict the context of the target word.

Klik eller træk`n`drop elementer og udfyld hullerne

question mark

Hvad repræsenterer den første vægtmatrix W1W^1 i det neurale netværk?

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 2

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 4. Kapitel 2
some-alt