Domanda word2vec: campionamento negativo (in parole povere)?


Sto leggendo il documento qui sotto e ho qualche problema, comprendendo il concetto di campionamento negativo.

http://arxiv.org/pdf/1402.3722v1.pdf

Qualcuno può aiutare, per favore?


51
2018-01-09 12:31


origine


risposte:


L'idea di word2vec è quello di massimizzare la somiglianza (prodotto punto) tra i vettori per le parole che appaiono ravvicinati (nel contesto l'uno dell'altro) nel testo e minimizzano la somiglianza delle parole che non lo fanno. Nell'equazione (3) del foglio a cui ti colleghi, ignora l'esponenziazione per un momento. Hai

      v_c * v_w
 -------------------
   sum(v_c1 * v_w)

Il numeratore è fondamentalmente la somiglianza tra le parole c (il contesto) e w (il bersaglio) parola. Il denominatore calcola la somiglianza di tutti gli altri contesti c1 e la parola target w. Massimizzando questo rapporto, le parole che appaiono più vicine nel testo hanno più vettori simili rispetto alle parole che non lo fanno. Tuttavia, calcolare questo può essere molto lento, perché ci sono molti contesti c1. Il campionamento negativo è uno dei modi per affrontare questo problema: basta selezionare un paio di contesti c1 a caso. Il risultato finale è che se cat appare nel contesto di food, quindi il vettore di food è più simile al vettore di cat (come misure per il loro prodotto dot) rispetto ai vettori di diverse altre parole scelte a caso (per esempio. democracy, greed, Freddy), invece di tutte le altre parole nella lingua. Questo fa word2vec molto più veloce da addestrare.


102
2018-01-09 16:11



Informatica SoftMax (La funzione per determinare quali parole sono simili alla parola di destinazione corrente) è costosa in quanto richiede la somma su tutte le parole in V (denominatore), che è generalmente molto grande.

enter image description here

Cosa si può fare?

Sono state proposte diverse strategie approssimativo il softmax. Questi approcci possono essere raggruppati in SoftMax-based e a base di campionamento- approcci. SoftMax-based gli approcci sono metodi che mantengono intatto lo strato di softmax, ma ne modificano l'architettura per migliorarne l'efficienza (ad esempio, gerarchico softmax). a base di campionamento- gli approcci d'altra parte eliminano completamente lo strato di softmax e invece ottimizzano qualche altra funzione di perdita che approssima la softmax (Lo fanno approssimando la normalizzazione nel denominatore della softmax con qualche altra perdita che è a buon mercato da calcolare come il campionamento negativo) .

La funzione di perdita in Word2vec è qualcosa del tipo:

enter image description here

Quale logaritmo può decomporsi in:

enter image description here

Con qualche formula matematica e gradiente (Vedi maggiori dettagli a 3) convertito in:

enter image description here

Come si vede convertito in un compito di classificazione binaria (y = 1 classe positiva, y = 0 classe negativa). Poiché abbiamo bisogno di etichette per svolgere il nostro compito di classificazione binaria, designiamo tutte le parole di contesto c come etichette vere (y = 1, campione positivo) (tutte le parole nella finestra della parola target), e K selezionato a caso dalla corpura come falso (y = 0, campione negativo).


Guarda il seguente paragrafo. Il nostro obiettivo è formare un classificatore binario. Per addestrare un classificatore di cui abbiamo bisogno positivo e negativo esempi. Supponiamo che la nostra parola target sia "Word2vecCon la finestra di 3, le nostre parole di contesto sono (L'algoritmo largamente popolare è stato, sviluppato) Le parole di contesto considerano etichette positive Abbiamo anche bisogno di alcune etichette negative Selezioniamo casualmente alcune parole dal corpus e le consideriamo come campioni negativi.Questa tecnica chiamata campionamento negativo.

enter image description here

Riferimento :


16
2017-12-25 07:32