¿Cómo se usan las redes neuronales en el procesamiento del lenguaje natural?

Recientemente, se ha avanzado mucho en el uso de redes neuronales y otros algoritmos de aprendizaje profundo para obtener un alto rendimiento en una variedad de tareas de PNL. Tradicionalmente, el modelo de bolsa de palabras junto con los clasificadores que usan este modelo, como el Clasificador de máxima entropía, se han aprovechado con éxito para hacer predicciones muy precisas en tareas de PNL como el análisis de sentimientos. Sin embargo, con el advenimiento de la investigación de aprendizaje profundo y sus aplicaciones a la PNL, se han realizado descubrimientos que mejoran la precisión de estos métodos principalmente de dos maneras: una red neuronal supervisada para ejecutar su entrada a través de varias clasificaciones, y una función de optimización de red neuronal no supervisada selección como paso previo al entrenamiento.

La motivación para las redes neuronales y el aprendizaje profundo en PNL

En esencia, el aprendizaje profundo (y las redes neuronales) tienen que ver con darle a la computadora algunos datos y dejar que descubra cómo puede usar estos datos para obtener características y modelos para representar con precisión tareas complejas, como analizar una reseña de película por su sentimiento Con algoritmos de aprendizaje automático más comunes, las características diseñadas por humanos generalmente se usan para modelar el problema y la predicción se convierte en una tarea de optimización de pesos para minimizar una función de costo. Sin embargo, las características de elaboración manual requieren mucho tiempo, y estas características creadas por el hombre tienden a representar en exceso el problema general y se vuelven específicas o están incompletas en todo el espacio del problema.

Aprendizaje supervisado: de la regresión a una red neuronal

El clasificador Max Entropy, abreviado comúnmente como clasificador Maxent, es un modelo probabilístico común utilizado en PNL. Dada cierta información contextual en un documento (en forma de multisets, unigrams, bigrams, etc.), este clasificador intenta predecir la etiqueta de clase (positiva, negativa, neutral) para él. Este clasificador también se usa en redes neuronales, y se conoce como la capa softmax, la capa final (y a veces solo) en la red utilizada para la clasificación. Por lo tanto, podemos modelar una sola neurona en una red neuronal calculando la misma función que un clasificador de entropía máxima:

Aquí, x es nuestro vector de entradas, la neurona calcula la función con los parámetros w y b y genera un único resultado en h .

Entonces, se puede pensar que una red neuronal con múltiples neuronas alimenta la misma entrada a varias funciones de clasificación diferentes al mismo tiempo. La red neuronal no es más que ejecutar un vector dado de entradas ( x en nuestra imagen de arriba) a través de muchas funciones (en lugar de una sola), donde cada neurona representa una función de regresión diferente. Como resultado, obtenemos un vector de salidas:

… Y puede alimentar este vector de salidas a otra capa de funciones de regresión logística (o una sola función), hasta que obtenga su salida, que es la probabilidad de que su vector pertenezca a una determinada clase:

Aplicación de redes neuronales a problemas no supervisados ​​en PNL

En PNL, las palabras y sus contextos circundantes son bastante importantes: una palabra rodeada de un contexto relevante es valiosa, mientras que una palabra rodeada de un contexto aparentemente irrelevante no es muy valioso. Cada palabra se asigna a un vector definido por sus características (que a su vez se relacionan con el contexto circundante de la palabra), y las redes neuronales se pueden utilizar para aprender qué características maximizan la puntuación de un vector de palabras.

Un valioso paso previo a la capacitación para cualquier tarea de aprendizaje supervisado en PNL (como clasificar las reseñas de restaurantes) sería generar vectores de características que representen bien las palabras; como se discutió al comienzo de esta publicación, estas características a menudo están designadas por humanos. En lugar de esto, se puede usar una red neuronal para aprender estas características.

La entrada a dicha red neuronal sería una matriz definida por, por ejemplo, los vectores de palabras de una oración. Por ejemplo, considere la siguiente frase y su matriz asociada:

Nuestra red neuronal puede estar compuesta por varias capas, donde cada capa envía la salida de la capa anterior a una función. El entrenamiento se logra a través de la propagación hacia atrás: tomar derivados utilizando la regla de la cadena con respecto a los pesos para optimizar estos pesos. De esto, se aprenden los pesos ideales que definen nuestra función (que es una composición de muchas funciones). Después del entrenamiento, ahora tenemos un método para extraer vectores de características ideales a los que se asigna una palabra determinada.

Esta red neuronal no supervisada es poderosa, especialmente cuando se considera en el contexto de los modelos softmax supervisados ​​tradicionales. La ejecución de esta red no supervisada en una gran colección de texto permite que las características de entrada se aprendan en lugar de ser designadas por humanos, lo que a menudo resulta en mejores resultados cuando estas características se introducen en una red neuronal supervisada tradicional para su clasificación.

Redes neuronales recursivas

Los investigadores actuales investigan el uso de redes neuronales recursivas para aprender cómo las oraciones se dividen en estructuras de árbol. Esta red recursiva de aprendizaje profundo puede aprender con éxito cómo mapear oraciones similares en el mismo espacio vectorial, a pesar de que pueden estar compuestas de palabras que significan cosas completamente diferentes.

Si desea aprender en detalle sobre el aprendizaje profundo y las redes neuronales para PNL, le recomiendo encarecidamente el curso de Stanford: CS224d: Aprendizaje profundo para el procesamiento del lenguaje natural.

Fuentes

  1. Redes neuronales de capa oculta: aprendizaje profundo, PNL y representaciones
  2. Tutorial de aprendizaje automático: el clasificador de texto Max Entropy
  3. Tutorial de aprendizaje profundo de Stanford
  4. CS224d: aprendizaje profundo para el procesamiento del lenguaje natural

  • Las redes neuronales recurrentes con Sequence2Sequence learning se pueden utilizar para la traducción automática.
  • Las redes neuronales recurrentes con un FCN y Softmax en el paso final se pueden usar para la clasificación de texto intencional.
  • Las redes neuronales recurrentes bidireccionales se pueden usar para tareas de llenado de ranuras, como encontrar diferentes entidades con nombre u otras entidades en el texto.
  • Las redes de memoria de extremo a extremo se pueden usar para tareas de respuesta a preguntas.
  • Las redes neuronales recursivas se pueden utilizar para analizar y analizar los sentimientos.
  • Las redes neuronales recurrentes se pueden utilizar para la generación de subtítulos de imágenes.

Finalmente , se usan en casi todas partes en PNL y con mi conocimiento y experiencia limitados puedo decir que son muy útiles e influyentes en muchos temas de PNL.

En el siguiente tutorial, traté de cubrir el funcionamiento de RNN en un problema de PNL (es decir, extraer una secuencia significativa de términos). Este tutorial describe interactivamente lo siguiente:

1. Conceptos básicos de la red neuronal recurrente (RNN),

2. Diferencias arquitectónicas entre RNN y DNN (Red neuronal profunda).

3. Entrenamiento RNN – A través de un ejemplo muy simple.

Aprendizaje profundo utilizando la red neuronal recurrente Parte 1

Aprendizaje profundo utilizando la red neuronal recurrente Parte 2

Para darle la respuesta más simple y directa a su pregunta, lo remito al siguiente documento:

http://u.cs.biu.ac.il/~yogo/nnlp

¡Eso le dará todas las diversas formas actuales en que las arquitecturas neuronales juegan un papel en la PNL! (incluidas las redes neuronales recurrentes)