Come funziona il campionamento negativo in word2vec?


19

Ho cercato di capire il concetto di campionamento negativo nel contesto di word2vec. Non riesco a digerire l'idea del campionamento [negativo]. Ad esempio, nei lavori di Mikolov viene formulata l'aspettativa di campionamento negativa come

logσ(w,c)+kEcNPD[logσ(w,cN)].

Capisco il termine sinistro , ma non riesco a capire l'idea di campionare coppie di parole-contesto negative.logσ(w,c)


4
È ridicolo quanto sia sparpagliata la documentazione per word2vec. Troverai le derivazioni negative del campionamento qui: arxiv.org/pdf/1402.3722v1.pdf
Alex R.

Ho esaminato la spiegazione che hai citato e ho compreso la matematica dietro di essa. Ma non sono in grado di digerire l'intuizione dietro il campionamento.
Upendra Kumar,

Risposte:


27

Il problema

Ci sono alcuni problemi con l'apprendimento dei vettori di parole usando una rete neurale "standard". In questo modo, i vettori di parole vengono appresi mentre la rete impara a prevedere la parola successiva in base a una finestra di parole (input della rete).

Prevedere la parola successiva è come predire la classe. Cioè, tale rete è solo un classificatore "standard" multinomiale (multi-classe). E questa rete deve avere tanti neuroni di output quante sono le classi. Quando le classi sono parole reali, il numero di neuroni è, beh, enorme .

Una rete neurale "standard" è di solito addestrata con una funzione di costo tra entropia che richiede che i valori dei neuroni di output rappresentino le probabilità - il che significa che i "punteggi" di output calcolati dalla rete per ogni classe devono essere normalizzati, convertiti in probabilità effettive per ogni classe. Questa fase di normalizzazione è ottenuta mediante la funzione softmax . Softmax è molto costoso se applicato a un enorme livello di output.

La (a) soluzione

Per affrontare questo problema, ovvero il costoso calcolo del softmax, Word2Vec utilizza una tecnica chiamata stima del contrasto del rumore. Questa tecnica è stata introdotta da [A] (riformulata da [B]), quindi utilizzata in [C], [D], [E] per imparare gli incorporamenti di parole dal testo in linguaggio naturale senza etichetta.

L'idea di base è convertire un problema di classificazione multinomiale (in quanto è il problema di prevedere la parola successiva ) in un problema di classificazione binaria . Cioè, invece di usare softmax per stimare una vera distribuzione di probabilità della parola di output, viene invece usata una regressione logistica binaria (classificazione binaria).

Per ciascun campione di training, il classificatore avanzato (ottimizzato) viene alimentato da una coppia vera (una parola centrale e un'altra parola che appare nel suo contesto) e un numero di coppie corrotte in modo casuale (costituite dalla parola centrale e una parola scelta casualmente dal vocabolario). Imparando a distinguere le coppie vere da quelle corrotte, il classificatore apprenderà infine le parole vettori.k

Questo è importante: invece di prevedere la parola successiva (la tecnica di allenamento "standard"), il classificatore ottimizzato prevede semplicemente se una coppia di parole è buona o cattiva .

Word2Vec personalizza leggermente il processo e lo chiama campionamento negativo . In Word2Vec, le parole per i campioni negativi (usate per le coppie corrotte) sono tratte da una distribuzione appositamente progettata, che favorisce il disegno più frequente di parole meno frequenti.

Riferimenti

[A] (2005) - Stima contrastiva: formazione di modelli log-lineari su dati senza etichetta

[B] (2010) - Stima a contrasto di rumore: un nuovo principio di stima per modelli statistici non normalizzati

[C] (2008) - Un'architettura unificata per l'elaborazione del linguaggio naturale: reti neurali profonde con apprendimento multitasking

[D] (2012) - Un algoritmo rapido e semplice per l'addestramento di modelli linguistici probabilistici neurali .

[E] (2013) - Imparare in modo efficiente gli incastri delle parole con una stima del contrasto del rumore .


La risposta si basa su alcune mie note più vecchie - spero che fossero corrette :)


2
Lei ha parlato, "in Word2Vec, the words for the negative samples (used for the corrupted pairs) are drawn from a specially designed distribution, which favours less frequent words to be drawn more often". Mi chiedo è corretto? Perché alcune altre fonti affermano che le parole più frequenti vengono campionate come campioni negativi. Essentially, the probability for selecting a word as a negative sample is related to its frequency, with more frequent words being more likely to be selected as negative samples.
Tyler 傲 来 国 主


A proposito, qual è il motivo per scegliere tra parole alte o basse frequenti come campioni negativi? Il campionamento casuale da parole non contestuali non è abbastanza buono?
Tyler 傲 来 国 主

@Tyler 傲 来 国 主 A quanto ho capito, le parole meno frequenti sono più informative in quanto tendono ad essere specifiche del contesto. Le parole più frequenti tendono ad essere associate a molte più altre parole (prendiamo l'esempio estremo "il"). Questo rende le parole rare "più difficili" per ottenere il giusto (impari più velocemente) e riduce anche la possibilità di scegliere una parola che in realtà non è un campione negativo (poiché con grandi corpora, controllare questo è costoso ed è spesso escluso).
drevicko,

@drevicko Le parole meno frequenti sono più informative, ma le parole meno frequenti essendo campioni negativi sono meno informative. Secondo la teoria dell'informazione, maggiore è la probabilità, minore è l'auto-informazione. L'evento di parole frequenti come campioni negativi per una determinata parola target dovrebbe avere una probabilità minore, il che significa maggiori quantità di informazioni.
Tyler 傲 来 国 主 il
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.