The Transformer es un modelo de aprendizaje profundo propuesto en 2017, que se utiliza esencialmente en tareas de PNL. Si está trabajando en tareas de procesamiento de lenguaje natural como resúmenes de texto, traducción o predicción de emociones, encontrará este término muy a menudo.
RNN sufrió el problema del gradiente de fuga que causa la pérdida de memoria a largo plazo. RNN procesa el texto de forma secuencial, lo que significa que si hay una oración larga como: ‘XYZ estuvo en Francia en 2019 cuando no hubo casos de covid y allí se reunió con el presidente de ese país’. Ahora bien, si preguntamos que aquí ‘ese país’ se refiere a qué lugar? RNN no podrá recordar que el país era ‘Francia’ porque se ha encontrado con la palabra ‘Francia’ mucho antes. La naturaleza secuencial del procesamiento significa que el modelo fue entrenado a nivel de palabra, no a nivel de oración. Los gradientes transportan información utilizada en la actualización de parámetros RNN y cuando el gradiente se vuelve más pequeño, entonces no se realiza un aprendizaje real.
Al agregar algunas celdas de memoria más y resolver el problema de los gradientes que desaparecen, el problema relacionado con la pérdida de memoria a largo plazo se resolvió en cierta medida. Pero el problema con el procesamiento secuencial permaneció porque RNN no pudo procesar la oración intacta a la vez. En lugar de procesar en paralelo, procesó las palabras una por una. Este problema no se puede solucionar en los LSTM debido a su diseño secuencial. En LSTM, usamos el método de incrustación estática, que sugiere que, sin conocer el contexto de una palabra, la incrustamos en algún vector n-dimensional. Pero si cambia el contexto, también cambia el significado.
Ej: Hay una palabra – ‘ Punto ‘, y la usamos en dos contextos diferentes que se detallan a continuación
- La aguja tiene una punta afilada .
- No es de buena educación señalar a las personas.
Aquí, la palabra ‘Punto’ tiene dos contextos diferentes en ambas oraciones, pero cuando se realiza la incrustación, el contexto no se tiene en cuenta. Por lo tanto, se necesitaba una arquitectura diferente: Transformer. El Transformador fue propuesto en el artículo Attention is All You Need .
Las redes neuronales se han clasificado principalmente en dos grupos, que son: Feedforward y Feedback . Los transformadores se basan en redes de retroalimentación, lo que significa que la información se mueve de la entrada a la salida y no contiene un circuito de retroalimentación. Por el contrario, los LSTM utilizan redes de retroalimentación, lo que significa que la información puede pasar en ambas direcciones y consiste en una ruta de retroalimentación, es decir, podemos volver a utilizar la memoria para nuevas predicciones.
Ahora, llegando a la arquitectura del Transformador. El codificador y el decodificador son componentes básicos de un transformador. El bloque codificador convierte la secuencia de palabras de entrada en un vector y un decodificador convierte un vector en una secuencia. Por ejemplo: un texto en francés procesado en su equivalente en inglés puede ser:
Je suis étudiant –> Soy estudiante.
La arquitectura del codificador tiene dos capas: Self Attention y Feed Forward . Las entradas del codificador primero pasan por una capa de autoatención y luego las salidas de la capa de autoatención se envían a una red neuronal de avance. Los datos secuenciales tienen características temporales. Significa que cada palabra tiene alguna posición con respecto a la otra. Por ejemplo, tomemos una oración: ‘El gato no persiguió al ratón, porque no tenía hambre’. Aquí, podemos decir fácilmente que ‘eso’ se refiere al gato, pero no es tan simple para un algoritmo. Cuando el modelo está procesando la palabra ‘eso’, la autoatención le permite asociar ‘eso’ con ‘gato’. La autoatención es el método para reformular la representación a partir de todas las demás palabras de la oración.
La arquitectura del decodificador tiene tres capas: Autoatención, atención codificador-decodificador y Feed Forward. El decodificador tiene tanto la capa de autoatención como la de retroalimentación que también están presentes en el codificador, pero entre ellas hay una capa de atención que ayuda al decodificador a enfocarse en las partes relevantes de la oración de entrada.
Hay seis capas de codificadores y decodificadores en la arquitectura Transformer. En el codificador inferior, se realizan incrustaciones de palabras y cada palabra se transforma en un vector de tamaño 512. La entrada a los otros codificadores sería la salida del codificador que está directamente debajo. Las diversas capas del codificador son para descubrir la canalización de NLP. Me gusta: la primera capa se usa para las etiquetas de parte del discurso, la segunda capa para los constituyentes, la tercera capa para las dependencias, la cuarta capa para los roles semánticos, la quinta para la correferencia y la sexta para las relaciones.
La última capa es la capa Softmax que asigna una probabilidad a cada palabra del vocabulario y toda esta probabilidad suma 1.