Comment word2vec ou skip-gram model convertit-il les mots en vecteur?

j'ai lu beaucoup de documents sur la NLP, et je suis tombé sur de nombreux modèles. J'ai obtenu le modèle SVD et je l'ai représenté en 2-D, mais je n'ai toujours pas obtenu comment faire un vecteur de mot en donnant un corpus au modèle word2vec/skip-gram? Est-ce aussi une représentation matricielle de cooccurrence pour chaque mot? Pouvez-vous l'expliquer en prenant un exemple de corpus:

Hello, my name is John.
John works in Google.
Google has the best search engine. 

en gros, comment skip gram convertit John pour un vecteur?

14
demandé sur Prabhjot Rai 2015-09-08 15:46:46

3 réponses

je pense que vous aurez besoin pour lire un document sur le processus de formation. Fondamentalement, les valeurs des vecteurs sont les valeurs de nœud du réseau neuronal formé.

j'ai essayé de lire le document original mais je pense que le papier "word2vec l'Apprentissage des paramètres Expliqué" par Xin Rong a une explication plus détaillée.

10
répondu Yibin Lin 2017-07-10 10:02:37

le concept principal peut être facilement compris avec un exemple de Autoencodage avec des réseaux de neurones. Vous formez le réseau neuronal pour transmettre l'information de la couche d'entrée à la couche de sortie par la couche moyenne qui est plus petite.

dans un encodeur automatique traditionnel, vous avez un vecteur d'entrée de taille N, une couche moyenne de longueur M

une fois la formation terminée avec succès, vous verrez que le réseau neuronal, pour transporter l'information de la couche d'entrée à la couche de sortie, s'est adapté de sorte que chaque unité d'entrée possède une représentation vectorielle correspondante dans la couche du milieu .

en simplifiant un peu, dans le contexte de word2vec vos vecteurs d'entrée et de sortie fonctionnent plus ou moins de la même manière, sauf pour le fait que, dans l'exemple que vous soumettez au réseau l'appareil est allumé dans la couche d'entrée est différent de l'unité est en marche dans la couche de sortie.

En fait, vous formez le réseau en sélectionnant des paires de mots à proximité (pas nécessairement adjacents) de votre corpus et en les soumettant au réseau.

La taille de l'entrée et le vecteur de sortie est égale à la taille du vocabulaire de l'alimentation du réseau.

Votre vecteur d'entrée n'a qu'une unité allumée (celui correspondant à la première parole de la paire) le vecteur de sortie a une unité activée (celui correspondant à la deuxième mot de la paire).

9
répondu mic.sca 2016-05-31 20:52:36

pour les lecteurs actuels qui pourraient aussi se demander "qu'est-ce qu'un vecteur de mot signifie exactement" comme L'OP était à ce moment-là: comme décrit à http://cs224d.stanford.edu/lecture_notes/LectureNotes1.pdf, un vecteur de mot est de dimension n et n "est une taille arbitraire qui définit la taille de notre espace d'encastrement."C'est-à-dire, ce mot vecteur ne veut rien dire concrètement. C'est juste une représentation abstraite de certaines qualités que ce mot peut avoir, que nous pouvez utiliser pour distinguer les mots.

en fait, pour répondre directement à la question originale de "comment un mot est converti en une représentation vectorielle", les valeurs d'un vecteur embedding pour un mot est généralement juste randomisés à l'initialisation, et amélioration itération par itération.

2
répondu xji 2017-02-16 18:42:42