Modelo de lenguaje Word2Vec: vectores densos de baja dimensión
A *** Hay dos modelos y dos métodos de aproximación de entrenamiento. Personalmente, creo que hay CBOW con muestreo negativo y SkipGram con H-softmax, por lo que las siguientes secciones los presentarán uno por uno.
Al final del entrenamiento, para las palabras, se obtienen dos conjuntos de vectores de palabras.
La palabra central está representada por y la palabra de fondo está representada por.
Para la palabra , cuando es la palabra central, su palabra de fondo es , y se toma el vector promedio de las palabras de fondo. Entonces, la probabilidad de usar estas palabras de fondo para generarla como palabra central es el valor del producto vectorial de las palabras de fondo que la generan (la suma de los valores del producto vectorial de las palabras de fondo que generan otras palabras), es decir,
Sea, entonces lo anterior La forma de la fórmula es un logaritmo
Luego busque la estimación de máxima verosimilitud general
Debido a la existencia del gradiente, excepto para las variables correspondientes, todos los demás valores pueden considerarse constantes, por lo tanto, el resto de las constantes. Por lo tanto, para las constantes restantes, el gradiente no puede afectar el resultado, entonces una de las palabras de fondo del gradiente utilizadas para generar la palabra central es:
Esta fórmula se puede escribir además como:
La parte mejorada son principalmente Operaciones que tienen en cuenta el tamaño del vocabulario. La operación softmax tiene en cuenta la posibilidad de que la palabra de fondo sea cualquier palabra del vocabulario (la operación está en el denominador).
Tenga en cuenta que en Softmax, el segundo término considera la situación de "dada una palabra de fondo, genera cada palabra en todo el vocabulario como una palabra central", por lo que su complejidad computacional es . Una forma de mitigar esto es considerar el caso en el que solo algunas palabras del vocabulario pueden ser palabras centrales; por ejemplo, si considera que como máximo una palabra puede ser una palabra central, entonces la complejidad computacional se reduce a.
Por lo tanto, es necesario realizar cambios en la función de pérdida antes:
función de pérdida antes,
función de pérdida después (también sumando uno al denominador para evitar que el denominador siendo 0 , porque 0 puede aparecer después de varias muestras),
donde
Cambia principalmente la probabilidad condicional de que la palabra central genere palabras de fondo. La generación de la palabra central se divide en dos partes (palabras de fondo y palabras irrelevantes):
La palabra central y la palabra de fondo aparecen al mismo tiempo, y la palabra central y la palabra irrelevante no aparecen al mismo tiempo. al mismo tiempo
Entre ellos, la función sigmoidea, utilizada para calcular
Usando expresiones exponenciales más suavizado,
El objetivo principal es usar una palabra para predecir la probabilidad de que aparezca en la secuencia del texto alrededor de la palabra.
Realice una estimación de máxima verosimilitud general en una oración de longitud
, dada cualquier palabra como palabra central, y use softmax como función de pérdida
para generar una palabra Como probabilidad de palabras de fondo
El cambio general del cálculo de Softmax, la complejidad cae de O (|V|) a la altura del árbol de Huffman correspondiente
Función de juicio: alcanzar el camino Cuando se alcanza el primer nodo, "su nodo secundario izquierdo" es igual a "llegar al primer nodo en el camino"
Solo considere los vectores involucrados en los nodos que no son hoja en el camino, no en la lista de palabras Rotar a través de todas las palabras.
Entre ellas, se encuentra la función sigmoidea.
Ejemplo
En la ruta desde el nodo raíz al nodo raíz, debe realizar el producto interno del vector de palabras y el vector del nodo no hoja.
En el siguiente ejemplo, debe recorrer hacia la izquierda, hacia la derecha y nuevamente hacia la izquierda.
(Aquí todo es multiplicación)
El segundo nodo es negativo porque la función de juicio es negativa porque su nodo no es el mismo que el nodo izquierdo del ejecutor.