Comment le modèle skip-gram de Word2Vec génère-t-il les vecteurs de sortie?


11

J'ai des problèmes pour comprendre le modèle skip-gram de l'algorithme Word2Vec.

Dans un sac de mots continu, il est facile de voir comment les mots de contexte peuvent "s'adapter" dans le réseau neuronal, car vous les basez en moyenne après avoir multiplié chacune des représentations de codage à chaud avec la matrice d'entrée W.

Cependant, dans le cas de skip-gram, vous obtenez uniquement le vecteur de mot d'entrée en multipliant le codage à chaud avec la matrice d'entrée, puis vous êtes supposé obtenir des représentations de vecteurs C (= taille de fenêtre) pour les mots de contexte en multipliant le représentation vectorielle d'entrée avec la matrice de sortie W '.

Je veux dire, ayant un vocabulaire de taille et codages de taille N , W R V x N matrice d'entrée et W 'R N × V comme matrice de sortie. Étant donné le mot w i avec un codage à chaud x i avec les mots de contexte w j et w h (avec les répétitions à chaud x j et x h ), si vous multipliez x i par la matrice d'entrée W, vous obtenez h =VNWRV×NWRN×VwixiwjwhxjxhxiW , maintenant comment générer desvecteurs de score C à partir de cela?h:=xiTW=W(i,)RNC

Réponses:


7

J'ai eu le même problème pour le comprendre. Il semble que le vecteur de score de sortie sera le même pour tous les termes C. Mais la différence d'erreur avec chaque vecteur représenté à chaud sera différente. Ainsi, les vecteurs d'erreur sont utilisés en rétropropagation pour mettre à jour les poids.

Corrigez-moi si j'ai tort, s'il-vous plait.

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


donc ? WRN×(VC)
Fabich

0

Dans les deux modèles, le score de sortie dépend de la fonction de score que vous utilisez. Il peut y avoir deux fonctions de score softmax ou échantillonnage négatif. Vous utilisez donc une fonction de score softmax. Vous obtiendrez une taille de fonction de score de N * D. Ici D est la dimension d'un vecteur de mots. N est le nombre d'exemples. Chaque mot est comme une classe d'architecture de réseau neuronal.


0

Dans le modèle à saut de gramme, un mot codé à chaud est envoyé à un réseau neuronal peu profond à deux couches. Étant donné que l'entrée est codée à chaud, la couche masquée ne contient qu'une seule ligne de la matrice de pondération cachée d'entrée (disons ligne car la k t h ligne du vecteur d'entrée est une).kthkth

Les scores de chaque mot sont calculés par l'équation suivante.

u=WTh

où h est un vecteur dans la couche cachée et est la matrice de poids de sortie cachée. Après calcul, u C, les distributions multinomiales sont calculées où C est la taille des fenêtres. Les distributions sont calculées par l'équation suivante.Wu CC

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

Comme vous pouvez le voir, toutes les distributions sont différentes. (Pour plus d'informations: https://arxiv.org/pdf/1411.2738.pdf ). En fait, ce serait plus clair s'ils utilisaient quelque chose comme la figure suivante.C

En résumé, il n'y a qu'un seul vecteur source . Cependant, C différentes distributions sont calculées à l'aide de la fonction softmax.uC

References:

  • Xin Rong, explication de l'apprentissage des paramètres de Word2Vec

Donc, la matrice W est essentiellement les vecteurs de mots (la sortie de l'algorithme), et W 'est une matrice totalement différente que nous jetons?
Nadav B

W 'est également des vecteurs de mots qui sont également bons.
user3108764

1
C'est faux. Voir l'équation (26) de Xin Rong, Explication de l'apprentissage des paramètres de Word2Vec. En réalitép(wc,j=wO,c|wI)=expuc,jj=1Vexpuj=expujj=1Vexpuj
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.