Red de conocimiento informático - Problemas con los teléfonos móviles - El análisis más completo de transformadores (solo presta atención)

El análisis más completo de transformadores (solo presta atención)

Transformer proviene de Google y se usa ampliamente en varias tareas de PNL. El modelo BERT mejoró y optimizó basándose en SOTA realizado por Transformer en 11 tareas de PNL en 2019.

Texto original: https://arxiv.org/pdf/ 1706.03762.pdf 'Atención es todo lo que necesitas'

Cuando se trata de problemas de secuencias de longitud variable, el enfoque habitual es utilizar volúmenes Red neuronal convolucional o red neuronal recurrente.

De hecho, tanto las redes neuronales convolucionales como las redes neuronales recurrentes son una especie de "codificación local" de secuencias largas: las redes neuronales convolucionales se basan obviamente en la codificación local de N-gramas, mientras que las redes neuronales recurrentes son Problemas como los gradientes que desaparecen sólo pueden establecer dependencias de corto alcance.

La atención puede entenderse como un método de enfoque de secuencia. La idea básica es asignar pesos de atención a las secuencias y centrar la atención en las secuencias más relevantes.

El mecanismo de atención es esencialmente un proceso de direccionamiento, que calcula el valor de atención calculando la distribución de la atención en términos de clave y lo adjunta a la consulta relacionada con la tarea dada. Vector de consulta Q.

Este proceso en realidad incorpora la capacidad de Atención para reducir la complejidad de las redes neuronales sin alimentar todas las N entradas a la red neuronal. Este proceso es en realidad una manifestación de atención para aliviar la complejidad de las redes neuronales. En lugar de ingresar todas las N entradas en la red neuronal para el cálculo, se selecciona cierta información relacionada con la tarea para ingresarla en la red neuronal, similar a la idea de RNN. Mecanismo de control de puerta.

N muestras de entrada están representadas por El mecanismo de atención es un mecanismo de autoatención, es decir, la probabilidad de su distribución de atención proviene de la transformación de la propia entrada de la red, mientras que la distribución de probabilidad de la atención tradicional proviene desde el exterior.

El modelo de transformador utiliza una estructura codificador-decodificador, donde la capa codificadora está apilada por seis codificadores, al igual que la capa decodificadora.

La estructura de cada capa de codificador y decodificador es la siguiente:

El modelo transformador carece de una forma de interpretar el orden de las palabras en la secuencia de entrada, que no es lo mismo que El modelo de secuencia. Para resolver este problema, el transformador agrega una codificación de posición vectorial adicional a la entrada de las capas del codificador y del decodificador, con las mismas dimensiones que la incrustación. Este vector utiliza un método único para permitir que el modelo aprenda el valor que determina la posición. de la palabra actual, o determina la distancia entre diferentes palabras en la oración. Existen varios métodos de cálculo para este vector de posición. El método de cálculo en el artículo es el siguiente:

Entre ellos, pos es la posición de la palabra actual en la oración e i es el índice de cada valor. en el vector se puede observar que, en posiciones pares se utiliza codificación sinusoidal y en posiciones impares se utiliza codificación coseno. Finalmente, la codificación de posición se agrega al valor de incrustación y se envía como entrada a la siguiente capa.

Hay una conexión residual alrededor de cada subcapa (autoatención, red de retroalimentación) en cada codificador, seguida de un paso de "normalización de capa".

Existen muchos tipos de normalización, pero todas tienen el mismo propósito, que es transformar la entrada en datos con media 0 y varianza 1. Normalizamos los datos antes de introducirlos en la función de activación porque no queremos que los datos de entrada caigan en la región de saturación de la función de activación.

El enmascaramiento es una máscara que enmascara ciertos valores para que no tenga impacto cuando se actualicen los parámetros. Hay dos tipos de máscaras involucradas en el modelo de transformador, a saber, máscaras de relleno y máscaras de secuencia. donde la máscara de relleno es necesaria para toda la atención del producto escalado, mientras que la máscara de secuencia solo se utiliza para la autoatención del decodificador.

Como se menciona en el artículo original, el motivo de la atención de múltiples cabezas es dividir el modelo en múltiples cabezas para formar múltiples subespacios, de modo que el modelo pueda prestar atención a diferentes aspectos de la información y finalmente sintetizar. todos los aspectos de la información.

De hecho, intuitivamente también podemos pensar que si diseñamos un modelo de este tipo, no solo prestaremos atención una vez, sino que el resultado de la síntesis de atención múltiple puede al menos mejorar el modelo, y también puede ser análogo a usar CNN al mismo tiempo. Al mismo tiempo, el papel de múltiples núcleos de convolución, intuitivamente, la atención de múltiples cabezales ayuda a la red a capturar información de diferentes aspectos. strong> Ayuda a la red a capturar características/información más ricas.

Desventajas de seq2seq: Es un poco inapropiado usar la palabra reemplazo aquí. Aunque seq2seq tiene una larga historia, siempre tiene su valor. El mayor problema de seq2seq es que comprime toda la información del lado del codificador en un vector de longitud fija. Y tómelo como entrada al primer estado oculto en el lado del decodificador para predecir el estado oculto de la primera palabra (token) en el lado del decodificador. Cuando la secuencia de entrada es larga, el lado del codificador obviamente pierde mucha información, y si el decodificador envía vectores fijos al lado del decodificador todos a la vez, el decodificador no puede centrarse en la información en la que quiere centrarse.

Ventajas de Transformer: Transformer no solo mejora en gran medida las dos deficiencias anteriores del modelo seq2seq (su módulo de atención interactiva de múltiples cabezales), sino que también introduce un módulo de autoatención que permite que la secuencia de origen y el destino secuencia para interactuar primero entre sí "Autorelevancia". Al mismo tiempo, se introduce un módulo de autoatención para permitir que la secuencia fuente y la secuencia objetivo se "autocorrelacionen" primero. En este caso, la representación incrustada de la secuencia fuente y la secuencia objetivo es más rica y la representación incrustada de la secuencia fuente y la secuencia objetivo es más rica. La capa FFN posterior también mejora la capacidad expresiva del modelo, y la potencia de computación paralela de Transformer supera con creces la serie de modelos seq2seq, por lo que creo que es una buena idea utilizar Transformer como modelo para representar la secuencia de origen y la secuencia de destino. Entonces, creo que aquí es donde Transformer supera a los modelos seq2seq.