Las limitaciones de las redes neuronales clásicas
Para entender la importancia de los Transformers, primero es necesario revisar las arquitecturas clásicas de redes neuronales que fueron predominantes en tareas de procesamiento de lenguaje natural (NLP) y otras aplicaciones secuenciales antes de que los Transformers surgieran. Estas arquitecturas, aunque efectivas en su momento, presentaban limitaciones que los Transformers superaron de manera significativa. Las dos arquitecturas más relevantes en este contexto son las Redes Neuronales Recurrentes (RNNs) y las Redes Neuronales Convolucionales (CNNs), que abordaban el procesamiento secuencial y la extracción de características de maneras diferentes
Redes Neuronales Convolucionales (CNNs)
Un Convolutional Neural Network (CNN) es un tipo de red neuronal profunda diseñada específicamente para procesar y analizar datos con una estructura bidimensional, como imágenes. Estas redes son especialmente eficaces en tareas de visión por computadora, como el reconocimiento de imágenes, la clasificación de objetos y la detección de características visuales, como bordes o texturas. Las CNNs se destacan por su capacidad de aprender automáticamente las características relevantes de los datos visuales a través de sus capas de convolución, lo que permite una mayor precisión sin la necesidad de diseñar manualmente estas características
Las CNNs están diseñadas para capturar relaciones locales entre los elementos de una entrada, pero no manejan bien las relaciones a largo plazo en los datos secuenciales, como las dependencias contextuales en una oración. Por ejemplo, en una oración larga, es posible que la relación entre palabras separadas por varias otras no se capture adecuadamente.
Las CNNs son muy buenas para procesar relaciones locales debido a sus filtros de convolución, que suelen tener tamaños de 3x3 o 5x5 en imágenes. Sin embargo, este tamaño de filtro solo captura relaciones en una ventana limitada de datos. Para capturar dependencias contextuales a largo plazo, se necesitarían múltiples capas de convolución que incrementan el costo computacional de manera exponencial. En secuencias largas de texto, esto es ineficiente y, en promedio, puede requerir hasta 10 veces más capas que otros modelos, como los Transformers, para lograr una comprensión similar de dependencias contextuales distantes...
Posicionalidad en secuencias
Los CNNs no tienen un sentido intrínseco del orden de las palabras o elementos en una secuencia. Aunque es posible añadir información posicional, la arquitectura de las CNNs no está diseñada para entender el contexto en el tiempo de manera eficaz.
Para intentar compensar la falta de un sentido innato del orden, se pueden añadir embeddings posicionales a las CNNs, pero esto solo mitiga parcialmente el problema. Comparativamente, un Transformer, que tiene un mecanismo de autoatención, puede modelar el orden y las dependencias a largo plazo de manera mucho más efectiva y con menos capas. En tareas de procesamiento de lenguaje natural, las CNNs necesitan entre 3 a 5 veces más capas para lograr una interpretación del contexto similar a la de los Transformers
Efectivas para el procesamiento de imágenes
Las CNNs han sido ampliamente utilizadas para el procesamiento de imágenes debido a su capacidad de detectar patrones locales (como bordes o texturas) utilizando filtros convolucionales. Sin embargo, no son tan efectivas para procesar secuencias de datos como el texto.
Las CNNs operan de manera eficaz en imágenes porque los filtros convolucionales suelen ser pequeños, por ejemplo, de 3x3 o 5x5 píxeles, y se aplican a diferentes partes de la imagen para detectar características locales. Sin embargo, en el procesamiento de texto, los patrones relevantes a menudo abarcan frases completas, lo que dificulta a las CNNs capturar dependencias a largo plazo. En comparación con los Transformers, que pueden manejar secuencias de hasta 512 tokens o más en un solo paso, las CNNs requerirían múltiples capas convolucionales adicionales para obtener un contexto similar, lo que incrementa el costo computacional y reduce su eficacia en tareas de procesamiento de lenguaje...
Redes Neuronales Recurrentes (RNNs)
Un Recurrent Neural Network (RNN) es un tipo de red neuronal diseñada para trabajar con datos secuenciales, como texto, audio o series temporales. A diferencia de las redes neuronales tradicionales, las RNN tienen conexiones recurrentes que permiten que la salida de una capa se retroalimente como entrada para la misma capa, lo que les da la capacidad de recordar información previa en la secuencia.
Dependencias a largo plazo
Aunque las RNNs están diseñadas para procesar secuencias, tienen problemas cuando se trata de capturar dependencias a largo plazo debido a la naturaleza secuencial de su procesamiento. La información que se encuentra al inicio de una oración puede perderse o diluirse a medida que la red procesa palabras posteriores.
El problema del gradiente desvaneciente en las RNNs puede limitar su capacidad para retener información relevante más allá de unos 5 a 10 pasos temporales. En secuencias más largas, la precisión disminuye significativamente, lo que llevó al desarrollo de variantes como LSTM y GRU, que pueden mantener dependencias a más largo plazo con mayor eficacia...
Procesamiento secuencial lento
Las RNNs procesan la secuencia de manera lineal, paso a paso, lo que limita su capacidad de paralelización. Esto hace que su entrenamiento sea lento y menos eficiente para trabajar con grandes cantidades de datos.
las RNNs tienen una capacidad de paralelización muy limitada. En un entorno de procesamiento de datos a gran escala, esto puede hacer que las RNNs sean hasta 10 veces más lentas que los modelos de Transformer, que procesan todas las entradas simultáneamente en lugar de de manera lineal....
Las variantes más avanzadas como las redes LSTM (Long Short-Term Memory) o GRU (Gated Recurrent Unit), fueron durante mucho tiempo la arquitectura principal utilizada en el procesamiento del lenguaje natural. Estas redes están diseñadas para manejar secuencias de datos y pueden "recordar" información de entradas previas a través de una estructura recurrente.
Las LSTM y GRU son significativamente más efectivas que las RNNs tradicionales para manejar secuencias largas. Las LSTM pueden retener información durante más de 100 pasos temporales, frente a los 5-10 pasos de las RNN estándar. Además, a pesar de tener una complejidad computacional superior, las GRU son más rápidas que las LSTM debido a su arquitectura más simple, y en algunos casos, pueden ser hasta 30 % más rápidas en su entrenamiento...