Explicación detallada del principio de Word2vec
árbol de Huffman
? Como se puede ver en la Figura 1, Skip-gram usa la palabra central actual (banca) para predecir las palabras cercanas. La Figura 1 divide la ventana en. El tamaño se establece en 2, es decir, se deben predecir dos palabras a la izquierda y dos palabras a la derecha.
?Para el tamaño de la ventana de predicción de cada posición y contexto, sea la palabra central actual, entonces el objetivo es maximizar:
?(1)
¿Dónde están los parámetros del modelo?
?Para convertir la maximización en minimización se puede tomar un número negativo y para simplificar el cálculo se puede tomar un logaritmo:
(2) ?
? Ahora la clave del problema es cómo calcular. Usamos dos vectores: el vector de representación de palabras central y el vector de representación de palabras de contexto. Entonces, la fórmula de cálculo para la probabilidad de aparición de la palabra central c y la palabra de contexto o es:
(3)
Entre ellas, V es el tamaño de todo el vocabulario. y es la representación vectorial de la palabra central. De hecho, la Ecuación 3 es la función de máximo suave.
La Figura 2 muestra el proceso de cálculo de Skip-gram. Como se puede ver en la figura, Skip-gram predice , , , Dado que solo se predicen las dos palabras antes y después, el tamaño de la ventana es 2. .
Capa de entrada a capa oculta: la palabra central de la capa de entrada está representada por un vector de calor (la dimensión es V*1, V es el tamaño de toda la lista de palabras) y la matriz de peso de la capa de entrada a la capa oculta es la matriz de palabras central W (la dimensión es V*d, d es la dimensión del vector de palabras), suponiendo que el vector oculto es (la dimensión es d*1), entonces:
?(4)
Capa oculta a capa de salida: la matriz de peso de contexto desde la capa oculta a la capa de salida es U (la dimensión es d*V) y la capa de salida es y (la dimensión es V*1), entonces:
? (5)
Tenga en cuenta que aunque el vector y de la capa de salida tiene la misma dimensión que el vector de la capa de salida, y no lo es. un vector caliente, y cada elemento del vector y es significativo. Por ejemplo, suponiendo que solo hay una oración en la muestra de entrenamiento, "Me gusta comer manzanas", usamos eat para predecir y los resultados de la capa de salida se muestran en la Figura 3.
Cada elemento del vector y representa la probabilidad de que la palabra predicha I, like, eat y apple sea la palabra correspondiente. Por ejemplo, la probabilidad de ser like es 0,05 y la probabilidad de ser to. es 0,80. Como queremos que el modelo prediga la palabra "a", debemos intentar que la probabilidad de "a" sea lo más grande posible, por lo que utilizamos la fórmula (1) como función de maximización.
El diagrama del principio de cálculo de la bolsa continua de palabras (CBOW) se muestra en la Figura 4. Como se puede ver en la figura, el resultado de predicción del modelo CBOW es:
(6)
Dado que solo se toman dos palabras antes y después de la palabra objetivo, el tamaño de la ventana es 2; suponiendo que la palabra de destino Tome una palabra antes y después, es decir, el tamaño de la ventana es, entonces el modelo CBOW es:
(6)
Capa de entrada oculta capa: como se muestra en la Figura 4, la capa de entrada es cuatro La representación vectorial única de la palabra es, respectivamente, (las dimensiones son V * 1, V es el tamaño de todo el vocabulario), recuerde que la matriz de peso de las palabras de contexto desde la capa de entrada a la capa oculta son W (la dimensión es V* d, d es la dimensión del vector de palabras) y el vector h de la capa oculta (la dimensión es d*1), entonces: p>
?(7)
Aquí necesita encontrar el valor de los vectores de palabras de un solo contexto y luego simplemente sumarlos y promediarlos.
De la capa oculta a la capa de salida: escriba la matriz de peso de la palabra central de la capa oculta a la capa de salida como U (dimensión d*V) y el vector y (dimensión V*1 ) de la capa de salida, Entonces:
? (8)
Cabe señalar que aunque el vector de la capa de salida tiene la misma dimensión que el vector de la capa de entrada , no es un vector caliente. Cada vector Todos los elementos tienen significado. (9)
Dado que la parte denominador de softmax es muy costosa, en aplicaciones prácticas la capa de salida generalmente se reemplaza por softmax jerárquico o muestreo negativo para reducir la complejidad computacional.
Softmax jerárquico es un árbol de Huffman. Los nodos de hoja del árbol son todas palabras en el texto de entrenamiento. Los nodos que no son de hoja son un clasificador binario de regresión logística. Se supone que todos los clasificadores de regresión logística. que la entrada del clasificador es el vector h. Luego recuerde que la salida del clasificador de regresión logística es pasar el vector h al hijo izquierdo del nodo con probabilidad; de lo contrario, se pasa al hijo derecho del nodo. , la probabilidad es. Este proceso de paso se repite hasta los nudos foliares.
Como se puede ver en la Figura 5 y la Figura 6, pasamos el vector h de la capa oculta directamente al softmax jerárquico. La complejidad del softmax jerárquico es O (log (V)). softmax para cada palabra es el siguiente:
Para el modelo CBOW o skip-gram, si la palabra que se va a predecir es to. Luego lo hacemos lo más grande posible, por lo que convertimos la tarea para entrenar un clasificador logístico V-1. La función objetivo de entrenamiento del modelo CBOW y del modelo skip es la misma que la forma anterior, que es:
? (10)
(11)
Muestreo negativo De hecho, es un medio para extraer ejemplos negativos para ayudar al entrenamiento. Su propósito es el mismo que el softmax jerárquico, que es mejorar la velocidad de entrenamiento del modelo. Sabemos que cuanto mayor sea la probabilidad de que el modelo prediga ejemplos positivos, mejor, y cuanto menor sea la probabilidad de que el modelo prediga ejemplos negativos, mejor. La idea del muestreo negativo es seleccionar aleatoriamente algunos ejemplos negativos de acuerdo con una determinada estrategia de muestreo negativo y luego garantizar que la probabilidad predicha de estos ejemplos negativos sea lo más pequeña posible. Por lo tanto, la estrategia de muestreo negativo tiene un gran impacto en el efecto del modelo. Las estrategias de muestreo negativo comúnmente utilizadas en word2vec incluyen muestreo negativo uniforme, muestreo por frecuencia de palabras, etc.
Tome "Me gusta comer manzanas" como ejemplo. Supongamos que el tamaño de la ventana es 2. Cuando la palabra central es como, I to se usa para predecir me gusta, así que aquí pensamos que (me gusta). ) y (a, me gusta) es una situación positiva, y (a mí, me gusta), (a, manzana), (a, manzana), (me, gusta), (a, manzana), (a mí, me gusta), ( a, manzana), (me, gusta), (me, gusta), (a, manzana), (me, gusta) y (a, me gusta) son situaciones negativas. apple), (to, apple) son ejemplos negativos porque (i, apple), (to, apple) no aparecen en los ejemplos positivos actuales. Usando NEG(w) para representar un ejemplo negativo, tenemos:
?(12)
(13)
Aquí está la representación vectorial de la palabra central de word * , h es el vector de salida de la capa oculta. Solo necesitamos maximizar la función objetivo:
?(14)
La importancia de esta función de pérdida es aumentar la probabilidad de ejemplos positivos y reducir la probabilidad de ejemplos negativos.
Tome "Me gusta comer manzanas" como ejemplo, suponiendo que el tamaño de la ventana es 1, es decir, usaremos like para predecir I to, así que aquí pensaremos (like, I) y (like , to) es un ejemplo positivo y (como, manzana) es un ejemplo negativo, porque (como, manzana) es un ejemplo negativo. Esto se debe a que (como Apple) no aparece en el ejemplo positivo. Entonces, para la muestra positiva dada (w, contexto(w)) y la muestra negativa muestreada (w, NEG(w)), existen:
? (15)
(16)
Aquí está la representación del vector de palabra central de la palabra *, y h es el vector de salida de la capa oculta. Solo necesitamos maximizar la función objetivo:
(17)
Las estrategias de muestreo negativo comúnmente utilizadas en word2vec incluyen muestreo negativo uniforme, muestreo por frecuencia de palabras, etc. El método de muestreo más utilizado es el modelo de distribución uniforme de potencia 3/4. En este método, la probabilidad de que se muestree una palabra depende de la frecuencia de las palabras en el corpus, lo cual es consistente con el modelo Unigram.
?(18)?
Entre ellos, V es el tamaño de toda la lista de vocabulario y es la frecuencia de la palabra.
¿Por qué 3/4? En realidad, esto está determinado por la experiencia del autor del artículo.
Supongamos que hay tres palabras, "yo", "paz" y "codiciar", con pesos de 0,9, 0,01 y 0,003 respectivamente.
Yo: 0,9^3/4 = 0,92
Paz: 0,01^3/4 = 0,03
Codiciar: 0,003^3/4 = 0,012 p> p>
Para "Covet", el peso aumentó 4 veces; para "Peace", aumentó 3 veces; para "Covet", aumentó 3 veces.
Se puede decir que en la dirección general de garantizar que las palabras de alta frecuencia se seleccionen fácilmente, al aumentar el peso de las palabras de baja frecuencia y las palabras raras a 3/4 de la potencia, la probabilidad de que aparezcan ser seleccionado se puede aumentar apropiadamente. De lo contrario, las palabras de baja frecuencia y las palabras raras serán difíciles de extraer y, por lo tanto, no se actualizarán en las incrustaciones correspondientes.
Preguntas y respuestas
Pregunta 1: Como se muestra en la Figura 7, el modelo de salto desde la capa oculta a la capa de salida utiliza peso compartido, por lo que hará que la salida sea Varias Los vectores de palabras de contexto son siempre los mismos, pero el propósito de la red es predecir las palabras que aparecerán en el contexto. De hecho, dada la palabra central, las palabras en el contexto serán diversas. ¿Cómo se explica esta forma de salida de Tick?
Respuesta 1: El propósito de la red no es predecir qué palabras aparecerán en el contexto. Esta es solo una tarea falsa. De hecho, la pérdida no se puede reducir, por lo que no se puede utilizar para predecir verdaderamente el contexto. Su intención original no es predecir el contexto, sino utilizar información del contexto para lograr la incrustación.
Si todas sus oraciones de 100 W son "Me gusta mucho el aprendizaje automático y el aprendizaje profundo" con peso ****, entonces el resultado es que, dada una máquina, realmente produce, le gusta y aprende. .. Las probabilidades de aprendizaje son exactamente las mismas, lo que significa que los vectores de palabras de estas cuatro palabras también son similares. Debido a esto, las palabras semánticamente similares tendrán asignaciones espaciales cercanas.
Pregunta 2: ¿Qué matriz de Word2Vec es un vector de palabras?
Respuesta 2: Como se muestra en la Figura 7, puede elegir arbitrariamente la matriz de palabras central W y la matriz de contexto W' como matriz de vectores de palabras.
Tres mil palabras, no es fácil codificar. Si encuentra algún problema o tiene alguna pregunta, deje un comentario y lo responderé y corregiré. Para preguntas importantes, continuaré actualizando Preguntas y Respuestas.
Referencias:
[1] Términos clave y explicación detallada de skip-gram
[2] Explicación fácil de entender del principio de word2vec
[3] CS224n: Aprendizaje profundo para el procesamiento del lenguaje natural.
(Invierno de 2017) 1080p
[4] Stanford ?CS224N: PNL con aprendizaje profundo | Invierno de 2019 Conferencia 2: Vectores de palabras y
Sentidos de palabras
[ 5] ¿Acerca de la salida de salto?
[6] Le, Quoc V y T. Mikolov "Representación distribuida de frases y documentos". (2014).
[7] Mikolov, T. "Representaciones distribuidas de palabras y frases y su composicionalidad". Advances in Neural InformationProcessing Systems 26(2013):3111- 3119.
[8]?Mikolov, Tomas, et al. "Estimación eficiente de representaciones de palabras en el espacio vectorial". [9]?Computerence (2013).
[9] Goldberg, Yoav y O. Levy. "Explicación de word2vec: derivación del método de incrustación de palabras de muestreo negativo de Mikolov et al.". 2014).