CBoW- en Skip-Grammodellen
Een basiskennis van neurale netwerken wordt aanbevolen voor dit hoofdstuk. Indien je niet vertrouwd bent met dit onderwerp, raadpleeg gerust deze cursus:
Zowel de CBoW- als de Skip-gram-architecturen leren woordembeddings aan via een neurale netwerkstructuur die bestaat uit 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 corresponderend 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 transponering van deze matrix (een N×V matrix) te vermenigvuldigen met een one-hot gecodeerde vector (een 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 uitvoerlaag, 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 vertegenwoordigt 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 woordrepresentaties. 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 dienovereenkomstig bij elke iteratie 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 computationeel intensief zijn. Daarom worden benaderingen zoals negatieve sampling vaak toegepast 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.
Awesome!
Completion rate improved to 3.45
CBoW- en Skip-Grammodellen
Veeg om het menu te tonen
Een basiskennis van neurale netwerken wordt aanbevolen voor dit hoofdstuk. Indien je niet vertrouwd bent met dit onderwerp, raadpleeg gerust deze cursus:
Zowel de CBoW- als de Skip-gram-architecturen leren woordembeddings aan via een neurale netwerkstructuur die bestaat uit 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 corresponderend 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 transponering van deze matrix (een N×V matrix) te vermenigvuldigen met een one-hot gecodeerde vector (een 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 uitvoerlaag, 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 vertegenwoordigt 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 woordrepresentaties. 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 dienovereenkomstig bij elke iteratie 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 computationeel intensief zijn. Daarom worden benaderingen zoals negatieve sampling vaak toegepast 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!