Autoatención mecanismo de autoatención

formulario de salida

Li Hongyi dijo:

  • La entrada del modelo es solo una forma: vector de palabra
  • Pero la forma de salida no es única, hay tres tipos principales:
    • Cada vector corresponde a una salida (correspondencia de muchos a muchos y uno a uno)
      • imagen-20211109112016976
    • Solo una salida por secuencia (muchos a uno)
      • imagen-20211109112047347
    • Una secuencia corresponde a una secuencia (muchos a muchos, la longitud es incierta)
      • imagen-20211109112106741

Introducción del mecanismo de autoatención.

[Aquí hay una explicación en la primera forma, qué es la autoatención]

Considere un ejemplo como este: ¿cómo funciona la lematización?

imagen-20211109112346840

El primer escenario

Lo primero que viene a la mente, y lo más fácil de pensar, es que uno a uno corresponde a la salida, pero hay un gran problema que no hay relación entre las palabras, es decir, la primera y la última palabra sawformularios sawen la imagen de arriba La salida es la misma, lo que obviamente no es correcto, entonces, ¿qué hacer al respecto?

Segunda etapa

Dado que uno de los problemas pendientes en la primera etapa es que no hay forma de considerar la información de las palabras en el texto completo, ¿podemos conectar toda la información?, la forma de lidiar con esto es agregar un mecanismo de ventana, de modo que solo windowprocesamiento Los datos de un tamaño de ventana son suficientes, el efecto es el siguiente:

imagen-20211109112906033

Pero todavía hay los siguientes problemas de esta manera:

  1. En una oración, ¿cómo se determina el tamaño de la ventana?
  2. Para toda la oración, ¿cómo usar la ventana para cubrir?
  3. La longitud de la oración no es única, cambia dinámicamente, entonces, ¿cómo determinar el tamaño de la ventana?

La tercera etapa (introducción de la autoatención)

El mecanismo de autoatención puede determinar automáticamente la longitud de la salida de acuerdo con la longitud de su entrada.El diagrama esquemático es el siguiente:

imagen-20211109123525469

Por supuesto, la autoatención se puede superponer, para que podamos generar mejor los resultados que queremos:

imagen-20211109123702536

[El artículo más importante sobre la autoatención es la propuesta de transformer - "La atención es todo lo que necesitas"]


El principio del mecanismo de autoatención.

El mecanismo más importante es ver cómo se implementa la autoatención:

imagen-20211109124030669

Correlación

Comencemos con cómo generar b 1 b ^ 1b1 Para ilustrar este mecanismo de autoatención:

imagen-20211109124752408

El primero es juzgar o encontrar la relación/correlación entre las secuencias de entrada (la función de este paso es encontrar qué vectores son importantes y cuáles no lo son en toda la secuencia).

Para facilitar la explicación, aquí se usa α \alphaα representa la correlación entre vectores.


módulo de atención

Aquí necesitamos el α \alpha anteriorSe explica cómo calcular α , y se usa comúnmenteDot-product(esto también se usa en el transformador). Por supuesto, también existe Aditivo Estos dos métodos se basan en los dos vectores de entrada, y luego multiplican dos matrices diferentes para realizar una operación para obtener el α \alphaun .

imagen-20211109125341963

Desde un punto de vista macro

Entonces, ¿cómo integrar las cosas mencionadas anteriormente o cómo es el proceso de integración?

imagen-20211109125958671
  • queryEl significado de esta palabra es el vector que queremos consultar (es decir, el contenido a consultar) , por lo que se representa con la palabra consulta, abreviada como q.
  • keyEs equivalente a una palabra clave, es decir, en relación con el vector a consultar, otros vectores se consideran como la palabra clave clave de la consulta .
  • De hecho, el proceso anterior es encontrar y q 1 q^1q1 k relacionado

Por supuesto, en el proceso de uso real, habrá una coincidencia entre usted y usted. En cuanto a cuál es el uso, no está claro:imagen-20211109130543463

Finalmente, pase una capa soft-max como salida y finalmente α \alphaSalida α , por supuesto, también puede usar soft-max como salida, dependiendo de cómo elija:

imagen-20211109130703250

Obtenemos este α \alphaDespués de α, necesitamos hacer el cálculo final para obtener nuestro resultado previstob 2 b^2b2 :

imagen-20211109171200612

Como se puede ver en la figura anterior, para un vector de entrada, hay un total de tres parámetros que deben generarse y operarse, a saber, qi, ki, viq^i,k^i,v^iqyo ,kyo ,vyo _

Desde la perspectiva de la operación matricial

De hecho, pensemos en ello en detalle, es decir, todas las operaciones vectoriales se reemplazan por matrices:

  • Obtener QKV desde la entrada a
imagen-20211109171935491

[La imagen de arriba también se puede representar con la imagen en P204 de "Red neuronal y aprendizaje profundo"]

  • Obtenga softmax de KQ
imagen-20211109172544715
  • De softmax, V a la salida
imagen-20211109172826827
  • Resumido de la siguiente manera:
imagen-20211109173010086

Mejoras en el Mecanismo de Atención de Word

Mecanismo de autoatención de varios cabezales

Tome el mecanismo de autoatención de 2 cabezas como ejemplo, entonces, ¿cómo lograrlo? ¿Qué significa? Basta con mirar la imagen de abajo.

imagen-20211109173623871

Como se muestra en la figura anterior, cuando se completa el cálculo de qi, dos matrices diferentes se multiplican correspondientemente, de modo que se obtiene un nuevo vector.

Entre ellos , qi, 1 q^{i,1}qi , 1 significa el primer vector del i-ésimo elemento


Entonces, ¿cómo hacer el cálculo de la atención?

Solo necesitamos multiplicar los valores correspondientes según el método mencionado anteriormente.

imagen-20211109173917981

La figura anterior es solo el cálculo de una "cabeza", luego el método de cálculo de la otra cabeza se muestra en la figura a continuación:

imagen-20211109174118495

Al final, solo necesitas combinar los resultados:

imagen-20211109174801264

código de localización

De hecho, no hemos discutido la información de ubicación, porque la información de ubicación es muy importante. Por ejemplo, en el etiquetado de parte del discurso, el comienzo de una oración generalmente no es un verbo, lo que puede ayudarnos a tomar decisiones hasta cierto punto.

La siguiente figura es un proceso de cálculo del código de posición, donde el lado derecho es eie^imii vector, cada columna representa un vector.

imagen-20211109175415375

En cuanto a la elección de esta posición, aún no hay una conclusión. Aún no se ha determinado cómo elegir, ya sea manualmente o aprender de los datos. La siguiente figura es una discusión relacionada propuesta en un documento:

imagen-20211109223205041

Autoatención vs CNN

Self-Atention encuentra píxeles relevantes globalmente, como si la ventana (campo de recepción) en CNN se aprendiera automáticamente.

El siguiente es un breve resumen de la diferencia entre el aprendizaje autosupervisado y CNN:

  • CNN es un mecanismo simple de autoatención; (CNN solo necesita considerar áreas configuradas artificialmente)
  • Por el contrario, el mecanismo de autoatención es una CNN compleja; (el mecanismo de autoatención es uno)

imagen-20211109224742063

La relación entre ambos se demuestra en un artículo titulado "Sobre la relación entre la autoatención y las capas de convolución" a través de fórmulas matemáticas rigurosas.

La siguiente imagen muestra las representaciones en diferentes conjuntos de datos. Se encuentra que cuando el conjunto de datos es pequeño, el efecto de CNN es mejor que la autoatención, de lo contrario, el efecto de CNN será peor.

imagen-20211110002555857

Autoatención vs RNN

La siguiente figura presenta brevemente la diferencia del mecanismo entre RNN y autoatención. En primer lugar, la primera diferencia es que el valor de salida amarillo al final de la figura a continuación es difícil de considerar la entrada del primer RNN en RNN (por supuesto , RNN bidireccional también se puede lograr, o RNN mejorado, como LSTM), y es fácil de implementar en autoatención.

imagen-20211110003131153

La siguiente figura ilustra otro problema: RNN no puede lograr la computación paralela, pero se puede lograr la autoatención.

imagen-20211110003640915

El artículo anterior mencionó que después de agregar algo a la autoatención, se convertirá en RNN.

más investigación

imagen-20211110004123281

ción es alcanzable.

imagen-20211110003640915

El artículo anterior mencionó que después de agregar algo a la autoatención, se convertirá en RNN.

más investigación

[Transferencia de imagen de enlace externo...(img-BYvL9z58-1686470533731)]

Supongo que te gusta

Origin blog.csdn.net/c___c18/article/details/131154289
Recomendado
Clasificación