Modelli CBoW e Skip-Gram
Scorri per mostrare il menu
Sia le architetture CBoW che Skip-gram apprendono le word embeddings tramite una struttura di rete neurale composta dai seguenti strati:
- Uno strato di input;
- Un singolo strato nascosto;
- Uno strato di output.
La matrice dei pesi tra lo strato di input e quello nascosto, indicata come W1 o E, funge da matrice delle embedding. Ogni riga di questa matrice rappresenta un vettore di embedding per una parola corrispondente, con la riga i che corrisponde alla parola i-esima nel vocabolario.
Questa matrice contiene V (dimensione del vocabolario) embedding, ciascuna di dimensione N, una dimensione che specifichiamo. Moltiplicando la trasposizione di questa matrice (matrice N×V) per un vettore one-hot (V×1) si recupera l'embedding per una parola specifica, producendo un vettore N×1.
La seconda matrice dei pesi, tra lo strato nascosto e quello di output, ha dimensione N×V. Moltiplicando la trasposizione di questa matrice (matrice V×N) per il vettore N×1 dello strato nascosto si ottiene un vettore V×1.
CBoW
Di seguito, un esempio di utilizzo di un modello CBoW:
Innanzitutto, la trasposta della matrice degli embedding viene moltiplicata per i vettori one-hot delle parole di contesto per produrre i loro embedding. Questi embedding vengono poi sommati o mediati a seconda dell'implementazione per formare un singolo vettore. Questo vettore viene moltiplicato per la matrice W2, producendo un vettore V×1.
Infine, questo vettore passa attraverso la funzione di attivazione softmax, convertendolo in una distribuzione di probabilità, dove ciascun elemento rappresenta la probabilità che una parola del vocabolario sia la parola target.
Successivamente, viene calcolata la loss e entrambe le matrici dei pesi vengono aggiornate per minimizzare questa loss. Idealmente, si desidera che la probabilità della parola target sia prossima a 1, mentre le probabilità di tutte le altre parole si avvicinino a zero. Questo processo viene ripetuto per ogni combinazione di parola target e parole di contesto.
Una volta elaborate tutte le combinazioni, si completa un epoca. Tipicamente, la rete neurale viene addestrata per diverse epoche per garantire un apprendimento accurato. Infine, le righe della matrice degli embedding risultante possono essere utilizzate come word embedding. Ogni riga corrisponde alla rappresentazione vettoriale di una specifica parola nel vocabolario, catturando efficacemente le sue proprietà semantiche all'interno del modello addestrato.
Skip-gram
Esaminiamo ora un modello skip-gram:
Come puoi vedere, il processo è per lo più simile a CBoW. Inizia recuperando l'embedding della parola target, che viene poi utilizzato nello strato nascosto. Successivamente, viene prodotto un vettore V×1 nello strato di output. Questo vettore, ottenuto moltiplicando l'embedding della parola target con la matrice dei pesi dello strato di output, viene poi trasformato dalla funzione di attivazione softmax in un vettore di probabilità.
Sebbene questo vettore risultante di probabilità sia lo stesso per tutte le parole di contesto associate a una singola parola target durante un singolo passo di addestramento, la perdita per ciascuna parola di contesto viene calcolata individualmente.
La perdita per ciascuna parola di contesto viene sommata, e le matrici dei pesi vengono aggiornate di conseguenza a ogni iterazione per minimizzare la perdita totale. Una volta completato il numero specificato di epoche, la matrice degli embedding può essere utilizzata per ottenere gli embedding delle parole.
In pratica, specialmente con vocabolari di grandi dimensioni, la funzione softmax può risultare troppo onerosa dal punto di vista computazionale. Pertanto, vengono spesso utilizzate approssimazioni come il negative sampling per rendere il calcolo più efficiente.
1. Completa gli spazi vuoti
2. Cosa rappresenta la prima matrice dei pesi W1 nella rete neurale?
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione