Ich bin ein Anfänger in neuronalen Netzen und erforsche derzeit das word2vec-Modell. Es fällt mir jedoch schwer zu verstehen, was die Feature-Matrix genau ist.
Ich kann verstehen, dass die erste Matrix ein One-Hot-Codierungsvektor für ein bestimmtes Wort ist, aber was bedeutet die zweite Matrix? Was bedeutet konkret jeder dieser Werte (dh 17, 24, 1 usw.)?
machine-learning
neural-network
word2vec
Satrajit Maitra
quelle
quelle
Antworten:
Die Idee hinter word2vec ist es, Wörter durch einen Vektor reeller Zahlen der Dimension d darzustellen . Daher ist die zweite Matrix die Darstellung dieser Wörter.
Die i- te Zeile dieser Matrix ist die Vektordarstellung des i- ten Wortes.
Nehmen wir an, Sie haben in Ihrem Beispiel 5 Wörter: ["Löwe", "Katze", "Hund", "Pferd", "Maus"], dann bedeutet der erste Vektor [0,0,0,1,0] Sie Ich betrachte das Wort "Pferd" und so ist die Darstellung von "Pferd" [10, 12, 19]. In ähnlicher Weise ist [17, 24, 1] die Darstellung des Wortes "Löwe".
Meines Wissens gibt es keine "menschliche Bedeutung" speziell für jede der Zahlen in diesen Darstellungen. Eine Zahl repräsentiert nicht, ob das Wort ein Verb ist oder nicht, ein Adjektiv oder nicht ... Es sind nur die Gewichte, die Sie ändern, um Ihr Optimierungsproblem zu lösen und die Darstellung Ihrer Wörter zu lernen.
Dieses Tutorial kann helfen: http://mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/ , obwohl ich denke, dass das Bild, das Sie eingefügt haben, von diesem Link stammt.
Sie können dies auch überprüfen, um mit TensorFlow mit Wortvektoren zu beginnen: https://www.tensorflow.org/tutorials/word2vec
quelle
TL; DR :
Die erste Matrix repräsentiert den Eingabevektor in einem heißen Format
Die zweite Matrix repräsentiert die synaptischen Gewichte von den Neuronen der Eingangsschicht zu den Neuronen der verborgenen Schicht
Längere Version :
Es scheint, dass Sie die Darstellung nicht richtig verstanden haben. Diese Matrix ist keine Merkmalsmatrix, sondern eine Gewichtsmatrix für das neuronale Netzwerk. Betrachten Sie das Bild unten. Beachten Sie insbesondere die linke obere Ecke, in der die Eingabeebenenmatrix mit der Gewichtsmatrix multipliziert wird.
Schauen Sie sich jetzt oben rechts an. Diese mit Weights Transpose dotierte Matrix-Multiplikation InputLayer ist nur eine praktische Möglichkeit, das neuronale Netzwerk oben rechts darzustellen.
Um Ihre Frage zu beantworten, ist die Gleichung, die Sie veröffentlicht haben, nur die mathematische Darstellung für das neuronale Netzwerk, das im Word2Vec-Algorithmus verwendet wird.
Der erste Teil [0 0 0 1 0 ... 0] repräsentiert das Eingabewort als einen heißen Vektor und die andere Matrix repräsentiert das Gewicht für die Verbindung jedes der Neuronen der Eingangsschicht mit den Neuronen der verborgenen Schicht.
Während Word2Vec trainiert, werden diese Gewichte zurückpropogiert und geändert, um Wörter als Vektoren besser darzustellen.
Sobald das Training abgeschlossen ist, verwenden Sie nur diese Gewichtsmatrix, nehmen [0 0 1 0 0 ... 0] für "Hund" und multiplizieren es mit der verbesserten Gewichtsmatrix, um die Vektordarstellung von "Hund" in einer Dimension = zu erhalten keine versteckten Schichtneuronen.
In dem von Ihnen dargestellten Diagramm beträgt die Anzahl der Neuronen mit versteckter Schicht 3
Die rechte Seite ist also im Grunde der Wortvektor.
Bildnachweis: http://www.datasciencecentral.com/profiles/blogs/matrix-multiplication-in-neural-networks
quelle