24. LSTM y GRU para secuencias de texto

24.1 Introducción

En el tema anterior vimos que las RNN fueron un avance importante para el procesamiento de secuencias, pero también arrastraban una limitación seria: les costaba conservar información relevante durante muchos pasos.

Para enfrentar ese problema surgieron arquitecturas recurrentes más sofisticadas, entre las que se destacan LSTM y GRU. Ambas fueron diseñadas para manejar mejor la memoria en secuencias largas y estabilizar el aprendizaje.

24.2 ¿Por qué no alcanzaba con una RNN simple?

Una RNN simple actualiza su estado oculto en cada paso, pero no controla de manera muy refinada qué información debe conservar y qué información debe descartar. Como consecuencia, las señales importantes pueden perderse con el tiempo.

Esto es especialmente problemático cuando la interpretación de una palabra depende de algo que apareció muchas posiciones antes. En teoría la RNN puede manejarlo, pero en la práctica suele fallar.

24.3 La idea central: controlar el flujo de información

La innovación principal de LSTM y GRU fue introducir mecanismos explícitos para regular qué información entra, cuál se mantiene, cuál se actualiza y cuál se olvida.

En lugar de tratar toda la memoria interna como un bloque único que cambia en cada paso, estas arquitecturas incorporan compuertas que actúan como filtros dinámicos.

Estas compuertas no son reglas programadas a mano. Son partes aprendidas del modelo que se ajustan durante el entrenamiento.

24.4 Qué significa una compuerta

Una compuerta puede pensarse como un mecanismo que decide cuánto de cierta información debe pasar y cuánto debe bloquearse. Gracias a estas decisiones, la red puede conservar señales importantes y evitar que otras irrelevantes saturen la memoria.

La palabra clave aquí es control. Mientras una RNN simple actualiza su estado de manera más directa, LSTM y GRU incorporan una gestión más fina del contexto.

24.5 LSTM: memoria a corto y largo plazo

LSTM significa Long Short-Term Memory. El nombre refleja su objetivo: combinar una memoria de corto plazo con un mecanismo que permita preservar información útil a más largo plazo.

La arquitectura introduce un estado de celda que funciona como canal principal de memoria, acompañado por compuertas que regulan cómo se actualiza ese estado.

La intuición es que la red no solo procesa la entrada actual, sino que decide activamente qué recordar y qué olvidar.

24.6 Compuertas en LSTM

Sin entrar en toda la formulación matemática, una LSTM clásica suele incluir tres mecanismos conceptuales muy importantes:

  • Compuerta de olvido: decide qué parte de la memoria previa conviene descartar.
  • Compuerta de entrada: decide qué información nueva debe incorporarse.
  • Compuerta de salida: decide qué parte del estado interno se expone como salida del paso actual.

Gracias a esta estructura, la red puede transportar información relevante durante más tiempo que una RNN simple.

24.7 Intuición del estado de celda

El estado de celda de una LSTM puede verse como una cinta de memoria que atraviesa la secuencia. Las compuertas deciden cuánto modificar esa cinta en cada paso.

Si aparece información importante al comienzo de una oración, la arquitectura puede aprender a preservarla hasta más adelante, en lugar de dejar que se diluya rápidamente.

La clave de LSTM no es solo tener memoria, sino poder administrarla de forma selectiva a lo largo de la secuencia.

24.8 GRU: una variante más simple

GRU significa Gated Recurrent Unit. También utiliza compuertas, pero con una estructura más compacta que la LSTM.

La idea general es similar: mejorar el flujo de información y reducir los problemas de dependencia larga. Sin embargo, GRU simplifica algunos componentes y fusiona ciertas funciones en menos mecanismos.

Esto hace que, en muchos casos, sea más ligera y más rápida de entrenar.

24.9 Compuertas en GRU

En términos conceptuales, una GRU suele trabajar con dos controles principales:

  • Compuerta de actualización: decide cuánto del estado anterior conservar.
  • Compuerta de reinicio: regula cuánto del pasado se utiliza al incorporar nueva información.

Aunque la formulación interna difiere de la LSTM, la meta es la misma: manejar mejor la memoria y facilitar el aprendizaje en secuencias.

24.10 LSTM versus GRU

Ambas arquitecturas buscan resolver el mismo problema, pero lo hacen con distintos niveles de complejidad.

  • LSTM: más expresiva y estructurada, con estado de celda explícito.
  • GRU: más compacta, con menos parámetros y menor costo computacional.

En algunos problemas LSTM puede rendir mejor. En otros, GRU logra resultados comparables con una implementación más simple. No existe una ganadora universal.

24.11 Qué mejoran respecto de las RNN

La mejora principal es su mayor capacidad para conservar información útil a lo largo del tiempo. Esto reduce, aunque no elimina por completo, los problemas asociados al desvanecimiento del gradiente.

En consecuencia, LSTM y GRU suelen capturar dependencias más largas que una RNN simple y entrenarse de manera más estable en muchas tareas secuenciales.

24.12 Un ejemplo intuitivo

Imaginemos una oración como "Aunque la trama parecía lenta al principio, la película termina siendo extraordinaria". Para interpretar correctamente el sentimiento final, el modelo necesita conservar información que aparece bastante después del comienzo.

Una arquitectura con mejor manejo de memoria tiene más posibilidades de integrar esas partes distantes de la secuencia sin perder el hilo general.

24.13 Uso en modelado de lenguaje

Antes del auge de Transformers, LSTM y GRU fueron muy utilizadas en modelado de lenguaje. Su capacidad de procesar secuencias y mantener contexto las volvió especialmente adecuadas para predecir el siguiente token.

También se emplearon ampliamente en generación de texto y en sistemas secuencia a secuencia.

24.14 Uso en clasificación de texto

En clasificación de documentos, una LSTM o GRU puede recorrer la secuencia y producir una representación final que resuma el texto. Esa representación se usa luego para decidir la clase.

Esto fue muy valioso en tareas como análisis de sentimiento, detección de intención y clasificación temática, especialmente cuando el orden de las palabras influye en la interpretación.

24.15 Uso en etiquetado secuencial

Estas arquitecturas también fueron aplicadas a tareas donde se necesita una salida por token, como reconocimiento de entidades o etiquetado gramatical. En esos casos, el modelo produce representaciones contextualizadas para cada posición.

Las versiones bidireccionales resultaron especialmente útiles, porque combinan información del pasado y del futuro relativo de cada palabra.

24.16 Versiones bidireccionales

Al igual que con las RNN simples, tanto LSTM como GRU pueden utilizarse en forma bidireccional. Esto significa que una red procesa la secuencia de izquierda a derecha y otra de derecha a izquierda.

Luego se combinan ambas representaciones. Así, cada token queda descrito por contexto previo y posterior, algo muy útil cuando la interpretación depende de ambos lados.

24.17 Ventajas principales

LSTM y GRU fueron tan importantes porque ofrecieron ventajas claras sobre las RNN simples:

  • Mejor manejo de dependencias largas.
  • Entrenamiento más estable en muchas tareas.
  • Mayor capacidad para preservar información relevante.
  • Buen desempeño histórico en múltiples problemas de NLP.

24.18 Limitaciones que siguieron presentes

Aunque mejoraron mucho el panorama, LSTM y GRU no resolvieron todos los problemas. Seguían procesando la secuencia paso a paso, lo cual dificulta la paralelización y vuelve el entrenamiento más lento.

Además, aun con compuertas, manejar dependencias extremadamente largas seguía siendo complejo. Estas limitaciones prepararon el terreno para nuevas ideas como la atención.

24.19 Costo y complejidad

En comparación con una RNN simple, una LSTM suele tener más parámetros y una estructura más compleja. GRU reduce parte de ese costo, pero ambas siguen siendo arquitecturas recurrentes con procesamiento secuencial.

Por eso, la elección entre RNN, LSTM y GRU siempre dependió del equilibrio entre capacidad, costo y dificultad del problema.

24.20 Comparación general

Arquitectura Fortaleza principal Limitación principal
RNN simple Modelo secuencial básico y directo. Memoria débil en dependencias largas.
LSTM Mayor control de memoria y contexto. Más complejidad y más parámetros.
GRU Diseño más compacto con buen rendimiento. Menor expresividad estructural que LSTM en algunos casos.

24.21 Ejemplo en Python: comparar LSTM y GRU

Este ejemplo usa la misma entrada para una LSTM y una GRU, lo que permite ver que ambas reciben secuencias de forma parecida, aunque internamente manejen la memoria de manera distinta.

import torch
import torch.nn as nn

x = torch.randn(3, 5, 10)  # batch=3, longitud=5, features=10

lstm = nn.LSTM(input_size=10, hidden_size=16, batch_first=True)
gru = nn.GRU(input_size=10, hidden_size=16, batch_first=True)

salida_lstm, (h_lstm, c_lstm) = lstm(x)
salida_gru, h_gru = gru(x)

print("LSTM salida:", salida_lstm.shape)
print("LSTM hidden:", h_lstm.shape)
print("LSTM cell:", c_lstm.shape)

print("GRU salida:", salida_gru.shape)
print("GRU hidden:", h_gru.shape)

La comparación es útil porque deja ver que la LSTM mantiene explícitamente un estado adicional de celda, mientras que la GRU usa una estructura más compacta. Esa diferencia resume buena parte de la discusión conceptual del tema.

24.22 Qué debes recordar de este tema

  • LSTM y GRU surgieron para mejorar las limitaciones de memoria de las RNN simples.
  • Ambas usan compuertas para controlar qué información se conserva, se actualiza o se descarta.
  • LSTM introduce un estado de celda explícito y una estructura más compleja.
  • GRU ofrece una versión más compacta y eficiente en muchos escenarios.
  • Las dos arquitecturas fueron muy importantes en modelado de lenguaje, clasificación y etiquetado secuencial.
  • Aun así, seguían teniendo límites en paralelización y dependencias muy largas.

24.23 Conclusión

LSTM y GRU marcaron una etapa decisiva en la evolución del NLP neuronal porque mostraron que no bastaba con procesar secuencias: también hacía falta administrar la memoria de manera inteligente.

Gracias a sus compuertas, estas arquitecturas lograron mejorar notablemente el manejo del contexto y dominaron durante años buena parte de las tareas secuenciales en lenguaje natural.

En el próximo tema estudiaremos el mecanismo de atención, una idea que cambió otra vez el panorama al permitir que el modelo decida directamente en qué partes de la secuencia conviene enfocarse.