Aprendizaje profundo - Procesamiento del lenguaje natural (1)

Los conceptos básicos del procesamiento del lenguaje natural
Este artículo está organizado de acuerdo con el "Análisis de las preguntas de la competencia Aliyun Tianchi - Aprendizaje profundo”, que pueden considerarse notas simples. Se recomienda leer junto con "Análisis de las preguntas de la competencia Aliyun Tianchi - Aprendizaje profundo" para mejores resultados.
1.1 Vector de palabra
Por lo general, las palabras y las palabras se asignan a un conjunto de vectores de números reales que reflejan sus características semánticas , lo que se denomina vector de palabra . Los vectores de palabras de uso común incluyen Representación One-Hot y Representación de distribución.

(1) Representación one-hot
La codificación one-hot utiliza N bits de codificación 0 y 1 para representar N estados, y solo un estado es válido en cualquier momento.
La codificación one-hot es equivalente a asignar una identificación única a cada palabra, que no puede reflejar la información semántica subyacente y ocupa un gran espacio de memoria.
(2) Representación de distribución
Las palabras se expresan como un vector denso de longitud fija, que puede reflejar la información semántica detrás de la palabra. Dado que el vector denso no se establece al azar, también es necesario modelar la oración, que es el modelo de lenguaje.
1.2 Modelo de lenguaje
El modelo de lenguaje define la distribución de probabilidad de secuencias de tokens en lenguaje natural. En términos sencillos, el modelo de lenguaje es modelar la oración y resolver la distribución de probabilidad de la oración (modelando la distribución de probabilidad de la oración).
(1) Modelo de lenguaje tradicional
① Modelo de bolsa de palabras Un
modelo que utiliza la frecuencia de palabras para reemplazar la codificación 0,1 en la codificación one-hot: el modelo de bolsa de palabras.
El modelo de bolsa de palabras no tiene nada que ver con el orden de las palabras en la oración original, sino que solo refleja la frecuencia de las palabras. En general, la frecuencia de una palabra refleja su importancia en una oración.
Modelo de ②n-grama
Dado que el modelo de bolsa de palabras no puede reflejar la información de orden de las palabras en una oración, la información semántica es unilateral. Para reflejar mejor la semántica, se propone un modelo de n-grama.
Utilice la suposición de Markov para simplificar el cálculo de las probabilidades de aparición de palabras.
Markov asume que el estado en un momento determinado solo está relacionado con el estado en (n-1) momentos anteriores.
El modelo de bolsa de palabras es un modelo de 1 gramo, y el modelo de n-gramas generalmente se calcula utilizando la estimación de máxima verosimilitud.
(2) modelo de lenguaje neuronal
El modelo de lenguaje neuronal obtiene la representación de la distribución de las palabras a través del entrenamiento de redes neuronales, lo que suele denominarse incrustación de palabras (Word Embedding). La esencia es aprender la red neuronal sin supervisión. Una vez que se completa el entrenamiento, se emiten las características de la capa oculta en el medio de la red, y las características de la capa oculta son los vectores de palabras que queremos obtener.
El modelo de lenguaje neuronal es esencialmente un modelo de clasificación. La eficiencia de entrenamiento del modelo de lenguaje neuronal se puede mejorar en gran medida a través de la tecnología de muestreo negativo y su función de pérdida correspondiente.
①Modelo Skip-Gram
El modelo Skip-Gram predice las palabras en la ventana de contexto a través de la palabra central, toma la oración procesada como índice de palabra como entrada y convierte el índice en el vector de palabra correspondiente (bs, len, dim) a través del Capa de incrustación. Entre ellos, bs: tamaño del lote, tamaño del grupo; len: la longitud de la oración; dim: la dimensión del vector de la palabra.
②El modelo CBOW
es contrario al modelo Skip-Gram. El modelo CBOW predice la palabra central a través de todas las palabras del contexto. El modelo CBOW acepta la oración que se procesará como un índice de palabras como entrada y convierte el índice en un vector de palabra correspondiente (bs, len, dim).
1.3 Aprendizaje profundo en el procesamiento del lenguaje natural
(1) Red neuronal convolucional
La red neuronal convolucional es un tipo de red neuronal que contiene unidades informáticas convolucionales. La unidad de cálculo de convolución realiza una suma ponderada en las áreas de datos correspondientes al deslizar continuamente la posición del kernel de convolución. Las unidades informáticas de convolución comunes incluyen la convolución unidimensional CNN1D, la convolución bidimensional CNN2D y la convolución tridimensional CNN3D.
La visión artificial utiliza principalmente la convolución bidimensional y el procesamiento del lenguaje natural utiliza principalmente la convolución unidimensional.
El modelo para la clasificación de texto utilizando redes neuronales convolucionales es TextCNN.
CNN1D es muy efectivo para extraer información de datos de secuencia en la ventana de contexto, pero es difícil mantener información en contexto de larga distancia (no apto para texto largo).
(2) Red neuronal recurrente
La red neuronal cíclica realiza el mismo cálculo de unidades cíclicas para cada posición de la secuencia, lo que mantiene la información de contexto a larga distancia, se ajusta naturalmente a las tareas de secuencia y se usa ampliamente en el procesamiento del lenguaje natural.
Estructuras comunes: LSTM (memoria a largo plazo), GRU (unidad recurrente cerrada). Resolver gradientes de explosión o desaparición para GRU de RNN simples
reduce la complejidad computacional en relación con los LSTM.
(3) Marco codificador-descodificador y mecanismo de atención Las
tareas principales del procesamiento del lenguaje natural pueden considerarse como tareas de muchos a muchos, es decir, la tarea de entrada y salida de secuencias (la clasificación de texto es la salida de la secuencia 1). Por lo tanto, el marco codificador-decodificador se adapta naturalmente a los requisitos de la tarea del procesamiento del lenguaje natural.
El marco codificador-decodificador, también conocido como marco Seq2Seq, puede verse como un modelo de lenguaje condicional. Los codificadores y decodificadores suelen utilizar redes neuronales recurrentes.
La red neuronal recurrente a veces conserva información demasiado larga y el mecanismo de atención puede retener información de forma selectiva.
A través del mecanismo de atención, el decodificador puede obtener selectivamente la información de estado oculta del codificador, mejorando así la eficiencia del entrenamiento.
El mecanismo de atención se puede considerar como una relación de par clave-valor (Clave, Valor) de consulta (Query).
En el procesamiento del lenguaje natural, el mecanismo de atención generalmente trata los pares clave-valor como equivalentes, es decir, K=V. Además, si se adopta el mecanismo de autoatención, Q=K=V.
El mecanismo anterior de usar vectores densos para calcular los pesos de atención se denomina colectivamente mecanismo de atención blanda, y el mecanismo de usar vectores codificados en caliente para calcular los pesos de atención se denomina mecanismo de atención dura.

Supongo que te gusta

Origin blog.csdn.net/weixin_47970003/article/details/123623865
Recomendado
Clasificación