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)
- Solo una salida por secuencia (muchos a uno)
- Una secuencia corresponde a una secuencia (muchos a muchos, la longitud es incierta)
- Cada vector corresponde a una salida (correspondencia de muchos a muchos y uno a uno)
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?
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 saw
formularios saw
en 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 window
procesamiento Los datos de un tamaño de ventana son suficientes, el efecto es el siguiente:
Pero todavía hay los siguientes problemas de esta manera:
- En una oración, ¿cómo se determina el tamaño de la ventana?
- Para toda la oración, ¿cómo usar la ventana para cubrir?
- 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:
Por supuesto, la autoatención se puede superponer, para que podamos generar mejor los resultados que queremos:
[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:
Correlación
Comencemos con cómo generar b 1 b ^ 1b1 Para ilustrar este mecanismo de autoatención:
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 .
Desde un punto de vista macro
Entonces, ¿cómo integrar las cosas mencionadas anteriormente o cómo es el proceso de integración?
query
El 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 comoq
.key
Es 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:
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:
Obtenemos este α \alphaDespués de α, necesitamos hacer el cálculo final para obtener nuestro resultado previstob 2 b^2b2 :
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
[La imagen de arriba también se puede representar con la imagen en P204 de "Red neuronal y aprendizaje profundo"]
- Obtenga softmax de KQ
- De softmax, V a la salida
- Resumido de la siguiente manera:
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.
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.
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:
Al final, solo necesitas combinar los resultados:
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.
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:
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)
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.
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.
La siguiente figura ilustra otro problema: RNN no puede lograr la computación paralela, pero se puede lograr la autoatención.
El artículo anterior mencionó que después de agregar algo a la autoatención, se convertirá en RNN.
más investigación
ción es alcanzable.
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)]