CBOW- og Skip-gram-modeller
Sveip for å vise menyen
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 embedding-vektor for et tilsvarende ord, der i-te rad samsvarer med i-te ord i vokabularet.
Denne matrisen inneholder V (vokabularstørrelse) embeddinger, hver av størrelse N, en dimensjon vi spesifiserer. Å multiplisere transponatet av denne matrisen (N×V matrise) med en one-hot-kodet vektor (V×1 vektor) henter ut embedding for et spesifikt ord, og gir en N×1 vektor.
Den andre vektmatrisen, mellom skjult og utdata-lag, har størrelse N×V. Å multiplisere transponatet av denne matrisen (V×N matrise) med skjult lags N×1 vektor gir en V×1 vektor.
CBoW
Se nå på et eksempel på bruk av en CBoW-modell:
Først multipliseres transponeringen av embeddings-matrisen med one-hot-vektorene til kontekstordene for å produsere deres embeddinger. Disse embeddingene blir deretter summert eller gjennomsnittlig avhengig av implementasjonen for å danne en enkelt vektor. Denne vektoren multipliseres med W2-matrisen, noe som resulterer i 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 embeddings-matrisen brukes som våre word embeddings. Hver rad tilsvarer vektorrepresentasjonen av et spesifikt ord i vokabularet, og fanger effektivt dets semantiske egenskaper i den trente modellen.
Skip-gram
La oss nå se på en skip-gram-modell:
Som du kan se, er prosessen stort sett lik CBoW. Den starter med å hente embedding for 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 sannsynlighetsvektor.
Selv om denne resulterende sannsynlighetsvektoren 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 beregningskrevende. 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