Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Modelli CBOW e Skip-Gram | Word Embeddings
Introduzione alla NLP

bookModelli 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 W1W^1 o EE, funge da matrice delle embedding. Ogni riga di questa matrice rappresenta un vettore di embedding per una parola corrispondente, con la riga ii-esima che corrisponde alla ii-esima parola nel vocabolario.

Questa matrice contiene VV (dimensione del vocabolario) embedding, ciascuna di dimensione NN, una dimensione che specifichiamo. Moltiplicando la trasposizione di questa matrice (matrice N×VN \times V) per un vettore one-hot (V×1V \times 1) si ottiene l'embedding per una parola specifica, producendo un vettore N×1N \times 1.

La seconda matrice dei pesi, tra lo strato nascosto e quello di output, ha dimensioni N×VN \times V. Moltiplicando la trasposizione di questa matrice (matrice V×NV \times N) per il vettore N×1N \times 1 dello strato nascosto si ottiene un vettore V×1V \times 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 W2W^2, producendo un vettore V×1V \times 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×1V \times 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à.

Note
Nota

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.

Note
Approfondisci

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 W1W^1 nella rete neurale?

question-icon

Completa gli spazi vuoti

The architecture tries to predict the target word from its context.
The
architecture tries to predict the context of the target word.

Click or drag`n`drop items and fill in the blanks

question mark

Cosa rappresenta la prima matrice dei pesi W1W^1 nella rete neurale?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 2

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 3.45

bookModelli 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 W1W^1 o EE, funge da matrice delle embedding. Ogni riga di questa matrice rappresenta un vettore di embedding per una parola corrispondente, con la riga ii-esima che corrisponde alla ii-esima parola nel vocabolario.

Questa matrice contiene VV (dimensione del vocabolario) embedding, ciascuna di dimensione NN, una dimensione che specifichiamo. Moltiplicando la trasposizione di questa matrice (matrice N×VN \times V) per un vettore one-hot (V×1V \times 1) si ottiene l'embedding per una parola specifica, producendo un vettore N×1N \times 1.

La seconda matrice dei pesi, tra lo strato nascosto e quello di output, ha dimensioni N×VN \times V. Moltiplicando la trasposizione di questa matrice (matrice V×NV \times N) per il vettore N×1N \times 1 dello strato nascosto si ottiene un vettore V×1V \times 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 W2W^2, producendo un vettore V×1V \times 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×1V \times 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à.

Note
Nota

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.

Note
Approfondisci

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 W1W^1 nella rete neurale?

question-icon

Completa gli spazi vuoti

The architecture tries to predict the target word from its context.
The
architecture tries to predict the context of the target word.

Click or drag`n`drop items and fill in the blanks

question mark

Cosa rappresenta la prima matrice dei pesi W1W^1 nella rete neurale?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 2
some-alt