Soy un principiante en redes neuronales y actualmente estoy explorando el modelo word2vec. Sin embargo, me está costando entender cuál es exactamente la matriz de características.
Puedo entender que la primera matriz es un vector de codificación de una sola palabra para una palabra dada, pero ¿qué significa la segunda matriz? Más específicamente, ¿qué significa cada uno de esos valores (es decir, 17, 24, 1, etc.)?
machine-learning
neural-network
word2vec
Satrajit Maitra
fuente
fuente
Respuestas:
La idea detrás de word2vec es representar palabras por un vector de números reales de dimensión d . Por lo tanto, la segunda matriz es la representación de esas palabras.
La i -ésima línea de esta matriz es la representación vectorial de la i -ésima palabra.
Digamos que en su ejemplo tiene 5 palabras: ["León", "Gato", "Perro", "Caballo", "Ratón"], entonces el primer vector [0,0,0,1,0] significa que Estamos considerando la palabra "Caballo" y la representación de "Caballo" es [10, 12, 19]. Del mismo modo, [17, 24, 1] es la representación de la palabra "León".
A mi entender, no hay "significado humano" específicamente para cada uno de los números en estas representaciones. Un número no representa si la palabra es un verbo o no, un adjetivo o no ... Son solo los pesos que cambias para resolver tu problema de optimización para aprender la representación de tus palabras.
Este tutorial puede ayudar: http://mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/ a pesar de que creo que la imagen que puso fue de este enlace.
También puede verificar esto, lo que puede ayudarlo a comenzar con los vectores de palabras con TensorFlow: https://www.tensorflow.org/tutorials/word2vec
fuente
TL; DR :
La primera matriz representa el vector de entrada en un formato dinámico
La segunda matriz representa los pesos sinápticos desde las neuronas de la capa de entrada hasta las neuronas de la capa oculta.
Versión más larga :
Parece que no has entendido la representación correctamente. Esa matriz no es una matriz de características sino una matriz de peso para la red neuronal. Considere la imagen que se muestra a continuación. Observe especialmente la esquina superior izquierda donde la matriz de la capa de entrada se multiplica por la matriz de peso.
Ahora mira en la esquina superior derecha. Esta matriz de multiplicación InputLayer producida por puntos con Weights Transpose es solo una forma práctica de representar la red neuronal en la parte superior derecha.
Entonces, para responder a su pregunta, la ecuación que ha publicado es solo la representación matemática de la red neuronal que se utiliza en el algoritmo Word2Vec.
La primera parte, [0 0 0 1 0 ... 0] representa la palabra de entrada como un vector caliente y la otra matriz representa el peso para la conexión de cada una de las neuronas de la capa de entrada a las neuronas de la capa oculta.
A medida que Word2Vec se entrena, se propaga hacia atrás en estos pesos y los cambia para dar una mejor representación de las palabras como vectores.
Una vez que se completa el entrenamiento, usa solo esta matriz de peso, toma [0 0 1 0 0 ... 0] para decir 'perro' y multiplícalo con la matriz de peso mejorada para obtener la representación vectorial de 'perro' en una dimensión = no de neuronas de capa oculta.
En el diagrama que ha presentado, el número de neuronas de capa oculta es 3
Entonces, el lado derecho es básicamente la palabra vector.
Créditos de imagen: http://www.datasciencecentral.com/profiles/blogs/matrix-multiplication-in-neural-networks
fuente