Word2Vec del modelo de vector de palabra de red neuronal

1. Introducción

         La forma de codificar vocabulario basado en one-hot es realmente un dolor de cabeza e impotente. El dolor de cabeza es que ocupa mucho espacio y la cantidad de cálculo es grande, lo que es impotente es que una forma tan sencilla y grosera se haya transmitido hasta el presente. Hoy les presentaré un artefacto basado en el modelo de lenguaje de redes neuronales para generar vectores de palabras. En el último artículo sobre el modelo de lenguaje de redes neuronales , presentamos el método de trabajo del modelo de lenguaje. La entrada se convierte en un vector a través de la capa de incrustación, y luego los vectores se empalman utilizando la capa de proyección, a través de la capa oculta y luego en la capa de salida. Entonces, la palabra matriz de vectores se obtiene en la capa de entrada. El núcleo del modelo de lenguaje es expresar texto y generar texto. La palabra vector es solo un enlace, parte del preprocesamiento de datos. El modelo de vector de palabras que vamos a explicar hoy es todo lo contrario, su núcleo es generar vectores de palabras con la ayuda de modelos de lenguaje.

2. Descripción general de Word2Vec

           Como se muestra en la figura siguiente, la idea central es mapear el vocabulario en un espacio vectorial y usar la distancia del coseno entre vectores para representar la similitud de puntos entre vocabularios. Como se muestra abajo.

          

           Word2Vec contiene dos modelos para generar vectores, CBOW y Skip-Gram. Como se muestra a continuación, CBOW usa palabras circundantes para predecir la palabra central, mientras que Skip-Gram usa la palabra central para predecir palabras circundantes La idea es similar a Gram. Vamos a presentarlo en detalle a continuación.

          

3 saltos de gramo

         En este modelo, dada una entrada, nos dará palabras de salida que están cerca de la palabra. Como se muestra en la figura siguiente, agruparemos la palabra del medio y las palabras circundantes en un equipo.

         

          La siguiente figura es el proceso general del trabajo de salto-grama Primero, creamos un vocabulario basado en el texto del corpus, y luego realizamos la codificación one-hot de las palabras. La matriz entre la capa de entrada y la capa oculta es equivalente a la matriz de incrustación de palabras, luego la salida de la capa oculta es el vector de palabras correspondiente al contexto, y el vector de palabras se multiplica por todos los vectores de palabras para obtener la similitud. Use softmax en la capa de salida para convertir la similitud en una probabilidad, y el valor verdadero es el que seleccionamos de las palabras cerca del contexto.

         

       Por lo tanto, el peso final W de la capa de capa oculta que obtenemos es equivalente a la matriz de incrustación de palabras, y la salida de esta capa es la matriz de vectores de palabras final. Una vez finalizada la formación, se elimina nuestra capa de salida.

 

                    

4 ARCO

             La idea de CBOW es usar palabras circundantes para predecir la palabra del medio. El proceso consiste en ingresar el contexto compuesto por palabras circundantes, encontrar el vector de palabra correspondiente a través de la matriz de incrustación y luego agregar y promediar los vectores en el contexto como salida de la capa oculta. Finalmente, use softmax para predecir la probabilidad. Una vez que se completa el entrenamiento de la red, la salida de la capa oculta es el vector de palabras que necesitamos.

                                  

5. Árbol de Huffman

          El árbol de Huffman se denomina árbol binario óptimo, que es el árbol con la longitud de ruta ponderada más corta.

       

    El proceso de construcción es el siguiente, que puede verse como seleccionar el árbol más pequeño como el nodo hijo cada vez, y usar la suma como el nodo superior e iterar continuamente para formar un árbol.

         La capa de salida word2vector original necesita calcular el softmax de todas las palabras cada vez, lo que requiere una gran cantidad de cálculo y una convergencia lenta. Usando una estructura de árbol, cada nodo usa sigmoide para dos clasificaciones, el ejemplo positivo va a la derecha y el ejemplo negativo 1-theta va a la izquierda. Se puede demostrar que la suma de todas las probabilidades es 1. De esta manera, para el nodo correspondiente, calculamos la multiplicación de todas las probabilidades en la ruta correspondiente. Cuanto mayor es el peso, más corta es la ruta correspondiente. Esto acelera el cálculo por un lado. Cuando un peso se ajusta en la dirección inversa, está en la ruta. Se ajustarán todos los nodos de, lo que también acelera la velocidad de convergencia.

6. Muestreo negativo

        Debido a que la etiqueta original es codificación one-hot, los datos son muy discretos. Y solo se puede usar un ejemplo positivo para ajustar cada vez, por lo que la eficiencia es muy baja. Por lo tanto, el muestreo negativo consiste en seleccionar una parte de los ejemplos negativos para ajustar la pérdida.Cuando se seleccionan muestras negativas al azar, la probabilidad de que se seleccionen aquellas muestras con más ocurrencias será mayor. De esta forma, el ajuste de la pérdida será un poco mayor cada vez y la velocidad de convergencia será más rápida.

7. Resumen

        Este artículo presenta dos modelos vectoriales de palabras, CBOW y Skip-Gram en word2vector. CBOW usa palabras circundantes para predecir la palabra central y Skip-Gram usa la palabra central para predecir palabras circundantes. Por supuesto, la predicción no es el propósito real del modelo de vector de palabras, su núcleo es utilizar la estructura de este modelo de lenguaje para generar el modelo de vector de palabras. En el proceso de uso del modelo, no hay necesidad de una capa de salida posterior, es decir, la salida de la capa oculta es el vector de palabras que necesitamos. Al mismo tiempo, debido a que la pérdida tradicional es calcular la probabilidad de todas las palabras en el vocabulario, en general, el número de vocabularios es muy grande, por lo que la velocidad será muy lenta y cada vez habrá un solo ejemplo positivo para el ajuste inverso. Por esta razón, introdujimos dos métodos de optimización: árbol de Huffman y muestreo negativo. El árbol de Huffman es el árbol binario ponderado óptimo. Cuando cada nodo se ajusta en la dirección inversa, todos los parámetros de la ruta se ajustarán a; se utiliza muestreo negativo Parte de las muestras negativas se utilizan para el ajuste inverso, utilizamos un muestreo negativo ponderado, es decir, a mayor número de ocurrencias, mayor probabilidad de ser seleccionado. Lo mismo puede acelerar la convergencia.

8. Tonterías

        En este punto estoy a punto de vomitar, soy una persona que no puede empezar ni acabar bien. Si una cosa se hace durante demasiado tiempo, me enojaré mucho y querré terminarla antes. Esto es lo mismo que Da Vinci siempre se da por vencido cuando no puede terminar de pintar ¿Soy un poco insensible? Pero lo que quiero decir es que aprendas a aceptar tu yo imperfecto. Así como se dice que todo debe quedar inconcluso, la creación no puede ser celosa y los fantasmas y dioses no pueden ser dañados. Si el karma debe cumplirse, el mérito debe ser rentable, si no hay un cambio interno, atraerá preocupaciones externas. Así que siempre obtuve el tercer lugar desde que era niño, y ganaba premios todos los años, pero me sentí tan avergonzado que inmediatamente lo tiré cuando recibí el certificado de tercer lugar. Lo descubrí hasta la escuela secundaria. No era que fuera mejor que los dos primeros. Era la intención de Dios ocultar mis talentos. Si quieres mejorar, tienes que reconocerte. No crea en los demás y no crea en el tiempo. El tiempo y los demás son los dos mayores mentirosos.

 

Lies BigBang subtítulos en chino

 

Supongo que te gusta

Origin blog.csdn.net/gaobing1993/article/details/108479888
Recomendado
Clasificación