que gram machine-learning nlp neural-network gensim

machine learning - gram - ¿Qué representa el vector de una palabra en word2vec?



que es word2vec (2)

Los contextos de ancho fijo para cada palabra se utilizan como entrada en una red neuronal. La salida de la red es un vector de valores flotantes, también conocido como incrustación de palabra, de una dimensión determinada (normalmente 50 o 100). La red está capacitada para proporcionar una buena inserción de palabras dado el cuerpo de prueba / tren.

Uno puede crear fácilmente una entrada de tamaño fijo para cualquier palabra: diga M palabras a la izquierda y N palabras a la derecha de la misma. Cómo hacerlo para una oración o párrafo, cuyos tamaños varían, no es tan aparente, o al menos no lo fue al principio. Sin leer el documento primero, supongo que se puede combinar la inserción de ancho fijo de todas las palabras en la oración / párrafo para obtener un vector de longitud fija para una oración / párrafo.

word2vec es una herramienta de código abierto de Google:

  • Para cada palabra, proporciona un vector de valores flotantes, ¿qué representan exactamente?

  • También hay un documento sobre el vector de párrafos. Alguien puede explicar cómo están usando word2vec para obtener un vector de longitud fija para un párrafo.


TLDR : Word2Vec está construyendo proyecciones de palabras ( incrustaciones ) en un espacio latente de N dimensiones, (N es el tamaño de los vectores de palabras obtenidos). Los valores flotantes representan las coordenadas de las palabras en este espacio tridimensional.

La idea principal detrás de las proyecciones de espacio latente, colocar objetos en un espacio dimensional diferente y continuo, es que sus objetos tendrán una representación (un vector) que tiene características de cálculo más interesantes que los objetos básicos.

Para las palabras, lo que es útil es que tienes un espacio vectorial denso que codifica la similitud (es decir, el árbol tiene un vector que es más similar a la madera que al baile). Esto se opone a la codificación clásica escasa de una sola palabra o "bolsa de palabras" que trata cada palabra como una dimensión, haciéndolas ortogonales por diseño (es decir, el árbol, la madera y el baile tienen la misma distancia entre ellas)

Los algoritmos de Word2Vec hacen esto:

Imagina que tienes una oración:

El perro tiene que ir ___ a pasear por el parque.

Obviamente, usted quiere llenar el espacio en blanco con la palabra "afuera" pero también podría tener "afuera". Los algoritmos w2v están inspirados en esta idea. Le gustaría que todas las palabras que llenan los espacios en blanco se encuentren cerca, porque pertenecen juntas. Esto se denomina Hipótesis Distributiva . Por lo tanto, las palabras "afuera" y "afuera" estarán más juntas, mientras que una palabra como "zanahoria" estaría más lejos .

Esta es una especie de "intuición" detrás de word2vec. Para una explicación más teórica de lo que está pasando, sugiero leer:

Para los vectores de párrafo, la idea es la misma que en w2v. Cada párrafo puede ser representado por sus palabras. Dos modelos se presentan en el papel.

  1. En una "bolsa de palabras" (el modelo pv-dbow) donde se usa un vector de párrafo de longitud fija para predecir sus palabras.
  2. Agregando un token de párrafo de longitud fija en contextos de palabra (el modelo pv-dm). Al retropropagarse el gradiente, obtienen "una idea" de lo que falta, lo que hace que el párrafo con las mismas palabras / tema "faltan" estén muy juntos.

Bits del artículo :

El vector de párrafo y los vectores de palabras se promedian o concatenan para predecir la siguiente palabra en un contexto. [...] El token de párrafo se puede considerar como otra palabra. Actúa como una memoria que recuerda lo que falta en el contexto actual o el tema del párrafo.

Para comprender completamente cómo se construyen estos vectores, necesitará aprender cómo se construyen las redes neuronales y cómo funciona el algoritmo de propagación hacia atrás. (sugeriría comenzar por este video y la clase de Coursera de Andrew NG)

NB: Softmax es solo una forma elegante de decir clasificación, cada palabra en los algoritmos w2v se considera como una clase. El muestreo jerárquico de softmax / negativo es un truco para acelerar softmax y manejar muchas clases.