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 | Ordinnbygginger
Introduksjon til NLP

bookCBoW- og Skip-gram-modeller

Grunnleggende forståelse av nevrale nettverk anbefales for dette kapittelet. Dersom du ikke er kjent med emnet, kan du utforske dette kurset:

Både CBoW- og Skip-gram-arkitekturene lærer ordrepresentasjoner gjennom en nevralt nettverksstruktur som består av følgende lag:

  • et inndata-lag;
  • et enkelt skjult lag;
  • et utdata-lag.

Vektmatrisen mellom inndata- og skjult lag, betegnet som W1W^1 eller EE, fungerer som embedding-matrisen. Hver rad i denne matrisen representerer en vektor for et tilsvarende ord, der den ii-te raden samsvarer med det ii-te ordet i vokabularet.

Denne matrisen inneholder VV (vokabularstørrelse) embeddinger, hver av størrelse NN, en dimensjon vi spesifiserer. Ved å multiplisere transponatet av denne matrisen (N×VN \times V matrise) med en one-hot-kodet vektor (V×1V \times 1 vektor) hentes embedding-vektoren for et spesifikt ord, og gir en N×1N \times 1 vektor.

Den andre vektmatrisen, mellom det skjulte laget og utgangslaget, har størrelsen N×VN \times V. Ved å multiplisere transponatet av denne matrisen (V×NV \times N matrise) med det skjulte lagets N×1N \times 1 vektor, får man en V×1V \times 1 vektor.

CBoW

Her er et eksempel på bruk av en CBoW-modell:

Først multipliseres transponatet av embeddings-matrisen med one-hot-vektorene til kontekstordene for å produsere deres embeddinger. Disse embeddingene summeres eller gjennomsnittes avhengig av implementasjonen for å danne en enkelt vektor. Denne vektoren multipliseres med W2W^2-matrisen, noe som gir en V×1V \times 1 vektor.

Til slutt går denne vektoren gjennom softmax-aktiveringsfunksjonen, som konverterer den til en sannsynlighetsfordeling, der hvert element representerer sannsynligheten for at et ord i vokabularet er målordet.

Deretter beregnes tapet, og begge vektmatrisene oppdateres for å minimere dette tapet. Ideelt sett ønsker vi at sannsynligheten for målordet skal være nær 1, mens sannsynlighetene for alle andre ord nærmer seg null. Denne prosessen gjentas for hver kombinasjon av et målord og dets kontekstord.

Når alle kombinasjoner er behandlet, er en epoke fullført. Vanligvis trenes det nevrale nettverket over flere epoker for å sikre nøyaktig læring. Til slutt kan radene i den resulterende embedding-matrisen brukes som våre ord-embeddinger. Hver rad tilsvarer vektorrepresentasjonen av et spesifikt ord i vokabularet, og fanger effektivt opp dets semantiske egenskaper i den trente modellen.

Skip-gram

La oss nå se på en skip-gram-modell:

Som du ser, er prosessen stort sett lik CBoW. Den starter med å hente embedding av målordet, som deretter brukes i det skjulte laget. Dette etterfølges av å produsere en V×1V \times 1-vektor i utgangslaget. Denne vektoren, som oppnås ved å multiplisere målordets embedding med vektmatrisen i utgangslaget, blir deretter transformert av softmax-aktiveringsfunksjonen til en vektor av sannsynligheter.

Note
Merk

Selv om denne resulterende vektoren av sannsynligheter er den samme for alle kontekstord knyttet til ett enkelt målord under ett treningssteg, beregnes tapet for hvert kontekstord individuelt.

Tapet for hvert kontekstord summeres, og vektmatrisene oppdateres tilsvarende ved hver iterasjon for å minimere det totale tapet. Når det angitte antallet epoker er fullført, kan embeddings-matrisen brukes til å hente ut ordembeddingene.

Note
Les mer

I praksis, spesielt med store vokabularer, kan softmax-funksjonen være for beregningsmessig krevende. Derfor benyttes ofte tilnærminger som negativ sampling for å gjøre beregningen mer effektiv.

1. Fyll inn de tomme feltene

2. Hva representerer den første vektmatrisen W1W^1 i nevrale nettverk?

question-icon

Fyll inn de tomme feltene

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

Click or drag`n`drop items and fill in the blanks

question mark

Hva representerer den første vektmatrisen W1W^1 i nevrale nettverk?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 2

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Awesome!

Completion rate improved to 3.45

bookCBoW- og Skip-gram-modeller

Sveip for å vise menyen

Grunnleggende forståelse av nevrale nettverk anbefales for dette kapittelet. Dersom du ikke er kjent med emnet, kan du utforske dette kurset:

Både CBoW- og Skip-gram-arkitekturene lærer ordrepresentasjoner gjennom en nevralt nettverksstruktur som består av følgende lag:

  • et inndata-lag;
  • et enkelt skjult lag;
  • et utdata-lag.

Vektmatrisen mellom inndata- og skjult lag, betegnet som W1W^1 eller EE, fungerer som embedding-matrisen. Hver rad i denne matrisen representerer en vektor for et tilsvarende ord, der den ii-te raden samsvarer med det ii-te ordet i vokabularet.

Denne matrisen inneholder VV (vokabularstørrelse) embeddinger, hver av størrelse NN, en dimensjon vi spesifiserer. Ved å multiplisere transponatet av denne matrisen (N×VN \times V matrise) med en one-hot-kodet vektor (V×1V \times 1 vektor) hentes embedding-vektoren for et spesifikt ord, og gir en N×1N \times 1 vektor.

Den andre vektmatrisen, mellom det skjulte laget og utgangslaget, har størrelsen N×VN \times V. Ved å multiplisere transponatet av denne matrisen (V×NV \times N matrise) med det skjulte lagets N×1N \times 1 vektor, får man en V×1V \times 1 vektor.

CBoW

Her er et eksempel på bruk av en CBoW-modell:

Først multipliseres transponatet av embeddings-matrisen med one-hot-vektorene til kontekstordene for å produsere deres embeddinger. Disse embeddingene summeres eller gjennomsnittes avhengig av implementasjonen for å danne en enkelt vektor. Denne vektoren multipliseres med W2W^2-matrisen, noe som gir en V×1V \times 1 vektor.

Til slutt går denne vektoren gjennom softmax-aktiveringsfunksjonen, som konverterer den til en sannsynlighetsfordeling, der hvert element representerer sannsynligheten for at et ord i vokabularet er målordet.

Deretter beregnes tapet, og begge vektmatrisene oppdateres for å minimere dette tapet. Ideelt sett ønsker vi at sannsynligheten for målordet skal være nær 1, mens sannsynlighetene for alle andre ord nærmer seg null. Denne prosessen gjentas for hver kombinasjon av et målord og dets kontekstord.

Når alle kombinasjoner er behandlet, er en epoke fullført. Vanligvis trenes det nevrale nettverket over flere epoker for å sikre nøyaktig læring. Til slutt kan radene i den resulterende embedding-matrisen brukes som våre ord-embeddinger. Hver rad tilsvarer vektorrepresentasjonen av et spesifikt ord i vokabularet, og fanger effektivt opp dets semantiske egenskaper i den trente modellen.

Skip-gram

La oss nå se på en skip-gram-modell:

Som du ser, er prosessen stort sett lik CBoW. Den starter med å hente embedding av målordet, som deretter brukes i det skjulte laget. Dette etterfølges av å produsere en V×1V \times 1-vektor i utgangslaget. Denne vektoren, som oppnås ved å multiplisere målordets embedding med vektmatrisen i utgangslaget, blir deretter transformert av softmax-aktiveringsfunksjonen til en vektor av sannsynligheter.

Note
Merk

Selv om denne resulterende vektoren av sannsynligheter er den samme for alle kontekstord knyttet til ett enkelt målord under ett treningssteg, beregnes tapet for hvert kontekstord individuelt.

Tapet for hvert kontekstord summeres, og vektmatrisene oppdateres tilsvarende ved hver iterasjon for å minimere det totale tapet. Når det angitte antallet epoker er fullført, kan embeddings-matrisen brukes til å hente ut ordembeddingene.

Note
Les mer

I praksis, spesielt med store vokabularer, kan softmax-funksjonen være for beregningsmessig krevende. Derfor benyttes ofte tilnærminger som negativ sampling for å gjøre beregningen mer effektiv.

1. Fyll inn de tomme feltene

2. Hva representerer den første vektmatrisen W1W^1 i nevrale nettverk?

question-icon

Fyll inn de tomme feltene

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

Click or drag`n`drop items and fill in the blanks

question mark

Hva representerer den første vektmatrisen W1W^1 i nevrale nettverk?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 2
some-alt