200314 Comprensión personal de Embedding y su relación con word2vec
Enlace de referencia keras: 3) Explicación detallada de la capa de incrustación
Ejemplo de enlace de texto original:
/qianshishangdi/article/details/88640204
Lo siguiente Esta es una comprensión personal de la incrustación y su relación con word2vec. La expresión es lo más realista posible. El lenguaje puede ser inexacto. Las correcciones son bienvenidas.
Prototipo de Keras y parámetros clave:
keras.layers.embeddings.Embedding(input_dim, output_dim, input_length=None)
input_dim: int > 0. Tamaño del vocabulario, es decir, índice entero máximo + 1.
? salida_dim: int >= 0. Dimensiones de vectores de palabras.
? input_length: la longitud de la secuencia de entrada debe ser coherente con la longitud de los datos de entrada. Cuando esté arreglado. Este parámetro es necesario si necesita conectar las capas Aplanar y Densa (sin él, no se puede calcular el tamaño de salida de la capa densa)
Incrustación: cree una red neuronal de dos capas entrenable y los datos se preprocesado; incluyendo capa de entrada, capa de entrada y capa de salida.
input_dim es el vocabulario correspondiente al número de nodos de la capa de entrada. La capa de incrustación se da cuenta automáticamente de que cada nodo corresponde a un vocabulario.
La esencia de la incrustación es entrenar una tabla de vectores. relacionado con la entrada El tamaño de la tabla de vectores Es [input_dim, input_length, output_dim] (implícitamente requiere que la entrada sea un código único, los pesos de la capa de entrada y la capa de salida se optimizan gradualmente durante el proceso de entrenamiento); Y la tabla de peso puede expresar la relación lógica entre los datos de entrenamiento.
Incrustación de salida = entrada * Incrustación, que equivale a buscar la tabla en la matriz de peso de incrustación de acuerdo con el código one-hot de entrada para obtener un vector correspondiente a la entrada. Este vector se puede utilizar como vector de palabras en PNL. En comparación con one-hot, este vector de palabras es más pequeño y puede expresar la relación lógica entre palabras. El ángulo entre los vectores de palabras representa la similitud semántica entre los vectores de palabras.
La relación entre word2vec e incrustación: word2vec en sí es un modelo de lenguaje, generalmente considerado como una red neuronal de tres capas, de las cuales la primera capa es equivalente a incrustar y optimiza la velocidad de búsqueda de tablas (porque incrustar En sí misma es una red de dos capas, por lo que word2vec puede entenderse como una red neuronal profunda de 4 capas). El peso de la primera capa de word2vec es la tabla de vectores de palabras de entrada y la salida de la primera capa es el vector de palabras de word2vec. Muchos PNL utilizan word2vec únicamente como herramienta de vectorización de texto.
Resultados de ejecución