Je suis un débutant dans les réseaux de neurones et j'explore actuellement le modèle word2vec. Cependant, j'ai du mal à comprendre ce qu'est exactement la matrice des fonctionnalités.
Je peux comprendre que la première matrice est un vecteur d'encodage à chaud pour un mot donné, mais que signifie la deuxième matrice? Plus précisément, que signifie chacune de ces valeurs (c.-à-d. 17, 24, 1, etc.)?
machine-learning
neural-network
word2vec
Satrajit Maitra
la source
la source
Réponses:
L'idée derrière word2vec est de représenter les mots par un vecteur de nombres réels de dimension d . Par conséquent, la deuxième matrice est la représentation de ces mots.
La i- ème ligne de cette matrice est la représentation vectorielle du i- ème mot.
Disons que dans votre exemple, vous avez 5 mots: ["Lion", "Chat", "Chien", "Cheval", "Souris"], alors le premier vecteur [0,0,0,1,0] signifie que vous considérons le mot «cheval» et donc la représentation de «cheval» est [10, 12, 19]. De même, [17, 24, 1] est la représentation du mot "Lion".
À ma connaissance, il n'y a pas de «sens humain» spécifique à chacun des nombres dans ces représentations. Un chiffre ne représente pas si le mot est un verbe ou non, un adjectif ou non ... Ce sont juste les poids que vous modifiez pour résoudre votre problème d'optimisation pour apprendre la représentation de vos mots.
Ce tutoriel peut vous aider: http://mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/ même si je pense que l'image que vous mettez provient de ce lien.
Vous pouvez également vérifier cela, ce qui peut vous aider à démarrer avec les vecteurs de mots avec TensorFlow: https://www.tensorflow.org/tutorials/word2vec
la source
TL; DR :
La première matrice représente le vecteur d'entrée dans un format chaud
La deuxième matrice représente les poids synaptiques des neurones de la couche d'entrée aux neurones de la couche cachée
Version plus longue :
Il semble que vous n'ayez pas bien compris la représentation. Cette matrice n'est pas une matrice de caractéristiques mais une matrice de poids pour le réseau neuronal. Considérez l'image ci-dessous. Notez particulièrement le coin supérieur gauche où la matrice de la couche d'entrée est multipliée par la matrice de poids.
Regardez maintenant en haut à droite. Cette multiplication matricielle InputLayer produite par points avec Weights Transpose n'est qu'un moyen pratique de représenter le réseau neuronal en haut à droite.
Donc, pour répondre à votre question, l'équation que vous avez publiée n'est que la représentation mathématique du réseau neuronal qui est utilisée dans l'algorithme Word2Vec.
La première partie, [0 0 0 1 0 ... 0] représente le mot d'entrée comme un vecteur chaud et l'autre matrice représente le poids pour la connexion de chacun des neurones de couche d'entrée aux neurones de couche cachés.
Au fur et à mesure que Word2Vec s'entraîne, il se propage en retour dans ces poids et les modifie pour donner de meilleures représentations des mots comme vecteurs.
Une fois l'entraînement terminé, vous utilisez uniquement cette matrice de poids, prenez [0 0 1 0 0 ... 0] pour dire «chien» et multipliez-le par la matrice de poids améliorée pour obtenir la représentation vectorielle de «chien» dans une dimension = pas de neurones de couche cachés.
Dans le diagramme que vous avez présenté, le nombre de neurones de couche cachés est de 3
Donc, le côté droit est essentiellement le mot vecteur.
Crédits image: http://www.datasciencecentral.com/profiles/blogs/matrix-multiplication-in-neural-networks
la source