CBoW- 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 W1 eller E, fungerer som embedding-matrisen. Hver rad i denne matrisen representerer en vektor for et tilsvarende ord, der den i-te raden samsvarer med det i-te ordet i vokabularet.
Denne matrisen inneholder V (vokabularstørrelse) embeddinger, hver av størrelse N, en dimensjon vi spesifiserer. Ved å multiplisere transponatet av denne matrisen (N×V matrise) med en one-hot-kodet vektor (V×1 vektor) hentes embedding-vektoren for et spesifikt ord, og gir en N×1 vektor.
Den andre vektmatrisen, mellom det skjulte laget og utgangslaget, har størrelsen N×V. Ved å multiplisere transponatet av denne matrisen (V×N matrise) med det skjulte lagets N×1 vektor, får man en V×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 W2-matrisen, noe som gir en V×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×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.
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.
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 W1 i nevrale nettverk?
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
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
CBoW- 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 W1 eller E, fungerer som embedding-matrisen. Hver rad i denne matrisen representerer en vektor for et tilsvarende ord, der den i-te raden samsvarer med det i-te ordet i vokabularet.
Denne matrisen inneholder V (vokabularstørrelse) embeddinger, hver av størrelse N, en dimensjon vi spesifiserer. Ved å multiplisere transponatet av denne matrisen (N×V matrise) med en one-hot-kodet vektor (V×1 vektor) hentes embedding-vektoren for et spesifikt ord, og gir en N×1 vektor.
Den andre vektmatrisen, mellom det skjulte laget og utgangslaget, har størrelsen N×V. Ved å multiplisere transponatet av denne matrisen (V×N matrise) med det skjulte lagets N×1 vektor, får man en V×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 W2-matrisen, noe som gir en V×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×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.
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.
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 W1 i nevrale nettverk?
Takk for tilbakemeldingene dine!