In che modo il modello skip-gram di Word2Vec genera i vettori di output?


11

Sto riscontrando problemi nel comprendere il modello skip-gram dell'algoritmo Word2Vec.

Nel bag-of-word continuo è facile vedere come le parole di contesto possano "adattarsi" alla rete neurale, dal momento che in pratica le si calcola in media dopo aver moltiplicato ciascuna delle rappresentazioni di codifica a caldo singolo con la matrice di input W.

Tuttavia, nel caso di skip-gram, si ottiene il vettore della parola di input solo moltiplicando la codifica one-hot con la matrice di input e quindi si suppone di ottenere rappresentazioni di vettori C (= dimensione della finestra) per le parole di contesto moltiplicando il rappresentazione del vettore di input con la matrice di output W '.

Ciò che intendo è avere un vocabolario di dimensione e codifiche di dimensione , W \ in \ mathbb {R} ^ {V \ times N} matrice di input e W '\ in \ mathbb {R} ^ {N \ times V } come matrice di output. Data la parola w_i con la codifica one-hot x_i con le parole di contesto w_j e w_h (con ripetizioni one-hot x_j e x_h ), se moltiplichi x_i per la matrice di input W ottieni {\ bf h}: = x_i ^ TW = W_ {(i, \ cdot)} \ in \ mathbb {R} ^ N , ora come si generano i punteggi dei punteggi C da questo?VNWRV×NWRN×VwixiwjwhxjxhxiWh:=xiTW=W(i,)RNC

Risposte:


7

Ho avuto lo stesso problema nel comprenderlo. Sembra che il vettore del punteggio di output sarà lo stesso per tutti i termini C. Ma la differenza di errore con ciascun vettore rappresentato da uno caldo sarà diversa. Pertanto, i vettori di errore vengono utilizzati nella retro-propagazione per aggiornare i pesi.

Per favore correggimi se sbaglio.

fonte: https://iksinc.wordpress.com/tag/skip-gram-model/


quindi ? WRN×(VC)
Fabich,

0

In entrambi i modelli il punteggio in uscita dipende dalla funzione di punteggio che si utilizza. Ci possono essere due funzioni di punteggio softmax o campionamento negativo. Quindi usi una funzione di punteggio softmax. Otterrai una dimensione della funzione di punteggio di N * D. Qui D è la dimensione di un vettore di parole. N è il numero di esempi. Ogni parola è come una classe nell'architettura della rete neurale.


0

Nel modello skip-gram una parola codificata a uno caldo viene immessa in una rete neurale poco profonda a due strati. Poiché l'input ha una codifica a caldo, il livello nascosto contiene solo una riga della matrice di peso nascosta dell'input (diciamo riga perché la riga del vettore di input è una).kthkth

I punteggi per ogni parola sono calcolati dalla seguente equazione.

u=WTh

dove h è un vettore nel livello nascosto e è la matrice del peso di output nascosta. Dopo aver calcolato vengono calcolate le distribuzioni multinomiali dove è la dimensione di Windows. Le distribuzioni sono calcolate dalla seguente equazione.Wu CC

p(wc,j=wO,c|wI)=expuc,jj=1Vexpuj

Come puoi vedere, tutte le distribuzioni sono diverse. (Per ulteriori informazioni: https://arxiv.org/pdf/1411.2738.pdf ). In effetti, questo sarebbe più chiaro se usassero qualcosa come la seguente figura.C

In breve, c'è solo un vettore sorgente . Tuttavia, diverse distribuzioni sono calcolate usando la funzione softmax.uC

References:

  • Xin Rong, Spiegazione dell'apprendimento dei parametri Word2Vec

Quindi la matrice W è essenzialmente la parola vettori (l'output dell'algoritmo), e W 'è una matrice totalmente diversa che buttiamo via?
Nadav B,

W 'sono anche i vettori di parole che sono ugualmente buoni.
user3108764

1
Questo è sbagliato. Vedi l'equazione (26) di Xin Rong, Spiegazione dell'apprendimento dei parametri di Word2Vec. In effetti . Il vettore del punteggio di output sarà lo stesso per tutti i termini C. p(wc,j=wO,c|wI)=expuc,jj=1Vexpuj=expujj=1Vexpuj
siulkilulki,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.