¿Cómo funciona un mecanismo de atención en el aprendizaje profundo?

A un alto nivel, un mecanismo de atención permite que su red neuronal se centre en partes relevantes de su entrada más que en las partes irrelevantes cuando realiza una tarea de predicción.

La atención apunta a capturar algo que hacemos como humanos. Por ejemplo, si está traduciendo manualmente una oración larga de un idioma a otro, en cualquier momento se centrará más en la palabra o frase específica que está traduciendo, sin importar dónde se encuentre en la oración de entrada. La atención recrea este mecanismo para las redes neuronales.

El mecanismo de atención se usa con mayor frecuencia en los modelos de secuencia a secuencia. Sin un mecanismo de atención, su modelo tiene que capturar la esencia de toda la secuencia de entrada en un solo estado oculto (representado por S en el diagrama a continuación). Esto es muy difícil de hacer en la práctica, y este problema empeora cuanto más larga sea su secuencia de entrada.

El mecanismo de atención mejora este modelo al permitirle “mirar hacia atrás” en la oración de entrada en cada paso de la etapa de decodificador. Cada salida del decodificador ahora depende no solo del último estado del decodificador, sino también de una combinación ponderada de todos los estados de entrada.

Dado que todo lo que agrega el mecanismo de atención es una estructura adicional a su red, se aprende como parte del entrenamiento estándar del modelo a través de la propagación hacia atrás. No necesita hacer nada especial para ello.

Como ejemplo ilustrativo, considere esta tarea de traducción del inglés al francés. Puede ver la red “atendiendo” a diferentes partes de la oración de entrada al proponer la traducción final.

Dado que el inglés y el francés son idiomas bastante bien alineados, puede ver que el decodificador elige atender las cosas en su mayoría de forma secuencial para la frase “Zona Económica Europea” que se traduce a “zone économique européenne”.

Puede encontrar más detalles sobre la atención en estos enlaces:

  • Atención y redes neuronales recurrentes aumentadas
  • Atención y memoria en aprendizaje profundo y PNL
  • Echar un vistazo a la arquitectura de red neuronal utilizada para la traducción automática neuronal de Google

Gracias Stephen Merity y Distill por los diagramas anteriores.

Primero, creo, como lo hizo Sadid Hasan en su respuesta, que en este caso es más interesante dar enlaces a los mejores recursos que reformularlos.

Pasé bastante tiempo entendiendo el concepto y los diferentes modelos, así que asegúrese de no haberlo buscado en Google y pegar un enlace aleatorio.

Aquí hay una lista curada de lo que es posible que desee leer (el orden es importante):

  1. Atención y memoria en aprendizaje profundo y PNL (wildml.com, Denny Britz): presentamos el concepto desde cero, explicando por qué se desarrolló, así como la intuición de cómo funciona utilizando varios ejemplos y abriendo con sus limitaciones.
  2. Atención y redes neuronales recurrentes aumentadas (distil.pub, C. Olah & S. Carter), muy buen artículo para más detalles. Muy útil para entender cómo funciona realmente.
  3. Tutorial de TensorFlow sobre Seq2Seq: un buen tutorial de un modelo seq2seq con atención implementada. Contiene referencias importantes. El texto en sí no es muy útil para comprender conceptos, pero implementarlo (o leer / editar la implementación existente) puede ser algo bueno

Ir más lejos:

Dado que la atención generalmente se usa con RNN, puedo sugerir lo siguiente:

  • Tutorial de redes neuronales recurrentes, Parte 1 – Introducción a los RNN (D. Britz)
  • La efectividad irracional de las redes neuronales recurrentes (A. Karpathy)

Además, en el campo del resumen abstracto, A. See hizo un gran trabajo con su publicación de blog muy reciente:

  • Domando redes neuronales recurrentes para un mejor resumen: explicando algunas limitaciones que encontró con los modelos de atención y cómo superó esos problemas. Tenga en cuenta que ella también hace referencia a enlaces que sugerí anteriormente.

Los mecanismos de atención son una parte no supervisada del procesamiento del lenguaje natural / aprendizaje automático en general que han mostrado una gran promesa. Una razón por la cual las redes neuronales y otros modelos de aprendizaje profundo han ganado importancia recientemente se debe al hecho de que la entrada a estas redes requiere una ingeniería de características mínima. Lo que esto significa en el contexto de PNL es que proporcionamos una red con, digamos, una lista de palabras en un documento (o tal vez le proporcionamos incrustaciones de palabras para estas palabras que fueron formadas previamente por una red separada). Como resultado, si consideramos la tarea típica de los modelos de lenguaje, ya no proporcionamos características como el hecho de que la palabra “perro” aparece después de la palabra “perezoso” en la secuencia “El zorro marrón rápido saltó sobre el perro perezoso”. “. En los modelos de lenguaje clásico, hemos encontrado que las características de bigram como esta son extremadamente útiles para una serie de tareas, sin embargo, son muy costosas de codificar (es decir, para un vocabulario de n-palabras tenemos n ^ 2 bigrams posibles ya que el orden importa. tal vez podríamos excluir la posibilidad de que la misma palabra aparezca dos veces seguidas, ya que esto es posible pero ocurre con muy poca probabilidad en la mayoría de los corpus, pero esto todavía produce una matriz de n ^ 2-n entradas, que sigue siendo O (n ^ 2) trabajar con) para vocabularios grandes. Como resultado, hemos preferido redes neuronales que aprenderán la importancia de los bigrams de forma natural. Sin embargo, tal vez aún queremos decirle a nuestra red neuronal que preste especial “atención” a alguna característica que no estamos señalando explícitamente. Aquí es donde entran en juego los mecanismos de atención. Alternativamente, los mecanismos de atención pueden aprender lo que es importante de forma natural, es decir, sin supervisión y, por lo tanto, sesgan las redes neuronales para favorecer las entradas con valores de atención más altos / sesgo contra las entradas con valores de atención más bajos. La atención aquí puede considerarse como un escalar multiplicativo, aunque vemos que la atención en algunos casos también se implementa de forma aditiva (y ha mostrado un mayor éxito en algunas tareas) y que, en general, esta segunda descripción de los mecanismos de atención, es decir, aquellos que aprenden qué es “importante”, a menudo se les llama auto-atención (lea los Métodos de redes neuronales de Yoav Goldberg para el procesamiento del lenguaje natural

para una explicación mucho mejor de los tipos de atención / dónde los usamos en la práctica y, en general, una explicación sucinta de NNs para PNL.

Hmm, entonces, ¿cuál es un ejemplo de atención de todos modos? Bien, digamos que queremos documentar el análisis de sentimientos a nivel, esa es la tarea en la que proporcionamos un documento y obtenemos una clasificación de “positivo”, “negativo”, “mixto” o “ninguno”. Digamos que, como creadores de este sistema, sabemos que nuestros documentos provienen de una fuente que recopila conversaciones políticas entre conservadores políticos. Aquí, podemos saber con nuestro conocimiento específico de dominio que las ideas políticamente liberales serán mal vistas y también conocer algunas palabras específicas que desencadenan la discusión de ideas políticamente liberales. Podemos intentar codificar un mecanismo de atención que ayude a nuestro NN a identificar esto, ya que a priori, si decimos tomar un NN existente que está entrenado para el análisis de sentimientos de propósito general, puede funcionar mal aquí ya que no será consciente de este dominio -Información específica.

Alternativamente, tal vez queremos entender si los políticos son realmente receptivos a las ideas del otro lado del espectro (suena notablemente diferente, pero quién sabe …). Como resultado, quizás tengamos un mecanismo de atención no supervisado que actúa ante un NN que está haciendo análisis de sentimiento a nivel de documento en el mismo corpus como se mencionó anteriormente. Lo que podríamos encontrar al observar los puntajes de atención de las palabras que indican ideas políticamente liberales en relación con los puntajes de atención a través de las palabras del documento podría permitirnos comprender que, de hecho, los conservadores políticos aprecian o no las conversaciones sobre ideas políticamente liberales. Esta noción de usar mecanismos de atención es bastante poco común, pero en general el problema aquí es que no sabemos cómo usar esta información de manera constructiva, pero esto puede ser una vía de exploración adicional.

En general, la atención no supervisada asociada a los LSTM / GRU bidireccionales es / ha llevado a un rendimiento de vanguardia en una gran cantidad de tareas de PNL, y en general es considerado por muchos como el punto de partida en esta etapa.

Las personas mencionaron mecanismos de atención para redes neuronales recurrentes. También hay algo de trabajo para prestar atención a las tareas de PNL sin RNN, por ejemplo:

  1. pregunta de respuesta: [1503.08895] Redes de memoria de extremo a extremo
  2. desambiguación del texto: [1704.04920] Desambiguación de la entidad articular profunda con atención neuronal local

También hay un artículo reciente que diseña un nuevo tipo de celda RNN basada en la atención y la usa para la traducción: [1706.03762] La atención es todo lo que necesita

Los mecanismos de atención en las redes neuronales se basan libremente en el mecanismo de atención visual que se encuentra en los humanos. La atención visual humana está bien estudiada y, aunque existen diferentes modelos, todos se reducen a poder enfocarse en una determinada región de una imagen con “alta resolución” mientras perciben la imagen circundante en “baja resolución”, y luego ajustan El punto focal en el tiempo.

Recomendaría este enlace: Atención y redes neuronales recurrentes aumentadas. ¡Espero que esto ayude!

More Interesting

Al diseñar nuevas arquitecturas de aprendizaje profundo, ¿cómo se determina si la arquitectura es mala o si la optimización del modelo es el problema?

Estoy tratando de evaluar el rendimiento del modelo (regresión). En la literatura, algunos usan RMSE y otros usan correlación. ¿Hay alguna diferencia entre ambos enfoques?

¿En qué áreas de la banca / finanzas se utiliza el aprendizaje automático?

¿Existen algoritmos que hacen lo contrario de la detección de anomalías, por ejemplo, señalan ocurrencias regulares en datos ruidosos?

¿Cuáles son algunos problemas de Kaggle que ayudarán a un principiante a avanzar?

¿Necesito una GPU para aprender el aprendizaje profundo?

¿Cuál crees que es la razón detrás de la asociación de Microsoft y Amazon en la tecnología de red neuronal llamada 'Gluon'?

¿Por qué la búsqueda de imágenes de Google es tan rápida?

¿Existe un equivalente de imagen (lenguaje de programación probabilístico del MIT para la percepción de la escena) para PNL?

¿Puedo incluir el aprendizaje automático en mi currículum después de aprender scikit-learn?

¿Qué es el remuestreo en el aprendizaje automático?

Quiero solicitar un programa de doctorado en Machine Learning, ¿cómo debo prepararme?

¿El aprendizaje supervisado se usa más?

¿Cuál es la diferencia entre TensorFlow y Grep? ¿Cuál es el más adecuado para el aprendizaje automático? ¿Por qué o por qué no?

¿Qué pensaría BF Skinner del aprendizaje automático?