CBoW- en Skip-Grammodellen
Een basiskennis van neurale netwerken wordt aanbevolen voor dit hoofdstuk. Als je niet vertrouwd bent met dit onderwerp, bekijk dan gerust deze cursus:
Zowel de CBoW- als de Skip-gram-architecturen leren woordembeddings aan via een neuraal netwerk met de volgende lagen:
- een invoerlaag;
- een enkele verborgen laag;
- een uitvoerlaag.
De gewichtenmatrix tussen de invoer- en verborgen laag, aangeduid als W1 of E, fungeert als de embeddingsmatrix. Elke rij van deze matrix vertegenwoordigt een embeddingvector voor een overeenkomstig woord, waarbij de i-de rij overeenkomt met het i-de woord in de vocabulaire.
Deze matrix bevat V (vocabulairegrootte) embeddings, elk van grootte N, een dimensie die we specificeren. Door de getransponeerde matrix (N×V matrix) te vermenigvuldigen met een one-hot gecodeerde vector (V×1 vector), wordt de embedding voor een specifiek woord opgehaald, wat resulteert in een N×1 vector.
De tweede gewichts matrix, tussen de verborgen en uitvoer lagen, heeft de afmeting N×V. Het vermenigvuldigen van de getransponeerde matrix (V×N matrix) met de N×1 vector van de verborgen laag resulteert in een V×1 vector.
CBoW
Bekijk nu een voorbeeld van het gebruik van een CBoW-model:
Eerst wordt de getransponeerde embeddingsmatrix vermenigvuldigd met de one-hot vectoren van de contextwoorden om hun embeddings te verkrijgen. Deze embeddings worden vervolgens opgeteld of gemiddeld, afhankelijk van de implementatie, om één enkele vector te vormen. Deze vector wordt vermenigvuldigd met de W2 matrix, wat resulteert in een V×1 vector.
Ten slotte gaat deze vector door de softmax activatiefunctie, waardoor het wordt omgezet in een waarschijnlijkheidsverdeling, waarbij elk element de kans weergeeft dat een vocabulairewoord het doelwoord is.
Daarna wordt het verlies berekend en worden beide gewichtsmatrices bijgewerkt om dit verlies te minimaliseren. Idealiter willen we dat de kans op het doelwoord dicht bij 1 ligt, terwijl de kansen voor alle andere woorden naar nul gaan. Dit proces wordt herhaald voor elke combinatie van een doelwoord en zijn contextwoorden.
Zodra alle combinaties zijn verwerkt, is een epoch voltooid. Gewoonlijk wordt het neuraal netwerk over meerdere epochs getraind om een nauwkeurige training te waarborgen. Ten slotte kunnen de rijen van de resulterende embeddingmatrix worden gebruikt als onze woordembeddings. Elke rij komt overeen met de vectorrepresentatie van een specifiek woord in de vocabulaire en legt effectief de semantische eigenschappen vast binnen het getrainde model.
Skip-gram
Laten we nu een skip-grammodel bekijken:
Zoals te zien is, lijkt het proces grotendeels op CBoW. Het begint met het ophalen van de embedding van het doelwoord, die vervolgens wordt gebruikt in de verborgen laag. Daarna wordt een V×1 vector geproduceerd in de outputlaag. Deze vector, verkregen door de embedding van het doelwoord te vermenigvuldigen met de gewichtsmatrix van de outputlaag, wordt vervolgens door de softmax activatiefunctie omgezet in een vector van waarschijnlijkheden.
Hoewel deze resulterende vector van waarschijnlijkheden hetzelfde is voor alle contextwoorden die aan één doelwoord zijn gekoppeld tijdens één trainingsstap, wordt het verlies voor elk contextwoord individueel berekend.
Het verlies voor elk contextwoord wordt opgeteld, en de gewichtsmatrices worden bij elke iteratie dienovereenkomstig bijgewerkt om het totale verlies te minimaliseren. Zodra het opgegeven aantal epochs is voltooid, kan de embeddingsmatrix worden gebruikt om de woordembeddings te verkrijgen.
In de praktijk, vooral bij grote woordenschatten, kan de softmax-functie te rekenintensief zijn. Daarom worden benaderingen zoals negatieve sampling vaak gebruikt om de berekening efficiënter te maken.
1. Vul de lege plekken in
2. Wat stelt de eerste gewichtenmatrix W1 in het neuraal netwerk voor?
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Can you explain the main difference between CBoW and Skip-gram?
How does the softmax function work in these models?
What is the purpose of the embeddings matrix in these architectures?
Geweldig!
Completion tarief verbeterd naar 3.45
CBoW- en Skip-Grammodellen
Veeg om het menu te tonen
Een basiskennis van neurale netwerken wordt aanbevolen voor dit hoofdstuk. Als je niet vertrouwd bent met dit onderwerp, bekijk dan gerust deze cursus:
Zowel de CBoW- als de Skip-gram-architecturen leren woordembeddings aan via een neuraal netwerk met de volgende lagen:
- een invoerlaag;
- een enkele verborgen laag;
- een uitvoerlaag.
De gewichtenmatrix tussen de invoer- en verborgen laag, aangeduid als W1 of E, fungeert als de embeddingsmatrix. Elke rij van deze matrix vertegenwoordigt een embeddingvector voor een overeenkomstig woord, waarbij de i-de rij overeenkomt met het i-de woord in de vocabulaire.
Deze matrix bevat V (vocabulairegrootte) embeddings, elk van grootte N, een dimensie die we specificeren. Door de getransponeerde matrix (N×V matrix) te vermenigvuldigen met een one-hot gecodeerde vector (V×1 vector), wordt de embedding voor een specifiek woord opgehaald, wat resulteert in een N×1 vector.
De tweede gewichts matrix, tussen de verborgen en uitvoer lagen, heeft de afmeting N×V. Het vermenigvuldigen van de getransponeerde matrix (V×N matrix) met de N×1 vector van de verborgen laag resulteert in een V×1 vector.
CBoW
Bekijk nu een voorbeeld van het gebruik van een CBoW-model:
Eerst wordt de getransponeerde embeddingsmatrix vermenigvuldigd met de one-hot vectoren van de contextwoorden om hun embeddings te verkrijgen. Deze embeddings worden vervolgens opgeteld of gemiddeld, afhankelijk van de implementatie, om één enkele vector te vormen. Deze vector wordt vermenigvuldigd met de W2 matrix, wat resulteert in een V×1 vector.
Ten slotte gaat deze vector door de softmax activatiefunctie, waardoor het wordt omgezet in een waarschijnlijkheidsverdeling, waarbij elk element de kans weergeeft dat een vocabulairewoord het doelwoord is.
Daarna wordt het verlies berekend en worden beide gewichtsmatrices bijgewerkt om dit verlies te minimaliseren. Idealiter willen we dat de kans op het doelwoord dicht bij 1 ligt, terwijl de kansen voor alle andere woorden naar nul gaan. Dit proces wordt herhaald voor elke combinatie van een doelwoord en zijn contextwoorden.
Zodra alle combinaties zijn verwerkt, is een epoch voltooid. Gewoonlijk wordt het neuraal netwerk over meerdere epochs getraind om een nauwkeurige training te waarborgen. Ten slotte kunnen de rijen van de resulterende embeddingmatrix worden gebruikt als onze woordembeddings. Elke rij komt overeen met de vectorrepresentatie van een specifiek woord in de vocabulaire en legt effectief de semantische eigenschappen vast binnen het getrainde model.
Skip-gram
Laten we nu een skip-grammodel bekijken:
Zoals te zien is, lijkt het proces grotendeels op CBoW. Het begint met het ophalen van de embedding van het doelwoord, die vervolgens wordt gebruikt in de verborgen laag. Daarna wordt een V×1 vector geproduceerd in de outputlaag. Deze vector, verkregen door de embedding van het doelwoord te vermenigvuldigen met de gewichtsmatrix van de outputlaag, wordt vervolgens door de softmax activatiefunctie omgezet in een vector van waarschijnlijkheden.
Hoewel deze resulterende vector van waarschijnlijkheden hetzelfde is voor alle contextwoorden die aan één doelwoord zijn gekoppeld tijdens één trainingsstap, wordt het verlies voor elk contextwoord individueel berekend.
Het verlies voor elk contextwoord wordt opgeteld, en de gewichtsmatrices worden bij elke iteratie dienovereenkomstig bijgewerkt om het totale verlies te minimaliseren. Zodra het opgegeven aantal epochs is voltooid, kan de embeddingsmatrix worden gebruikt om de woordembeddings te verkrijgen.
In de praktijk, vooral bij grote woordenschatten, kan de softmax-functie te rekenintensief zijn. Daarom worden benaderingen zoals negatieve sampling vaak gebruikt om de berekening efficiënter te maken.
1. Vul de lege plekken in
2. Wat stelt de eerste gewichtenmatrix W1 in het neuraal netwerk voor?
Bedankt voor je feedback!