Modelli CBOW e Skip-Gram
Si consiglia una conoscenza di base delle reti neurali per questo capitolo. Se non hai familiarità con l'argomento, puoi consultare questo corso:
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 unico 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-esima che corrisponde alla i-esima parola 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 ottiene 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 dimensioni 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:
Per prima cosa, la trasposizione della matrice degli embeddings viene moltiplicata per i vettori one-hot delle parole di contesto per produrre i loro embeddings. Questi embeddings vengono poi sommati o mediati a seconda dell'implementazione, per formare un unico vettore. Questo vettore viene moltiplicato per la matrice W2, producendo un vettore V×1.
Infine, questo vettore passa attraverso la funzione di attivazione softmax, che lo converte in una distribuzione di probabilità, dove ciascun elemento rappresenta la probabilità che una parola del vocabolario sia la parola target.
Successivamente, viene calcolata la funzione di perdita e entrambe le matrici dei pesi vengono aggiornate per minimizzare questa perdita. 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 su più epoche per garantire un apprendimento accurato. Infine, le righe della risultante matrice di embedding possono essere utilizzate come word embeddings. 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
Analizziamo ora un modello skip-gram:
Come si può vedere, il processo è per lo più simile al 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 per 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, soprattutto con vocabolari di grandi dimensioni, la funzione softmax può risultare troppo onerosa dal punto di vista computazionale. Pertanto, vengono spesso impiegate 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
Awesome!
Completion rate improved to 3.45
Modelli CBOW e Skip-Gram
Scorri per mostrare il menu
Si consiglia una conoscenza di base delle reti neurali per questo capitolo. Se non hai familiarità con l'argomento, puoi consultare questo corso:
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 unico 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-esima che corrisponde alla i-esima parola 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 ottiene 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 dimensioni 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:
Per prima cosa, la trasposizione della matrice degli embeddings viene moltiplicata per i vettori one-hot delle parole di contesto per produrre i loro embeddings. Questi embeddings vengono poi sommati o mediati a seconda dell'implementazione, per formare un unico vettore. Questo vettore viene moltiplicato per la matrice W2, producendo un vettore V×1.
Infine, questo vettore passa attraverso la funzione di attivazione softmax, che lo converte in una distribuzione di probabilità, dove ciascun elemento rappresenta la probabilità che una parola del vocabolario sia la parola target.
Successivamente, viene calcolata la funzione di perdita e entrambe le matrici dei pesi vengono aggiornate per minimizzare questa perdita. 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 su più epoche per garantire un apprendimento accurato. Infine, le righe della risultante matrice di embedding possono essere utilizzate come word embeddings. 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
Analizziamo ora un modello skip-gram:
Come si può vedere, il processo è per lo più simile al 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 per 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, soprattutto con vocabolari di grandi dimensioni, la funzione softmax può risultare troppo onerosa dal punto di vista computazionale. Pertanto, vengono spesso impiegate 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!