Redes recurrentes para modelar secuencias de lenguaje
Una RNN transporta un estado de un símbolo al siguiente, pero eso no equivale a recordar todo el texto. Esta guía explica cómo aprende, por qué pierde dependencias y cómo comprobar su contexto efectivo.
El 4 de agosto de 2013, Alex Graves depositó un trabajo que mostraba una idea sencilla y fértil: una red recurrente podía generar texto prediciendo una unidad cada vez y usando su propia predicción como entrada del paso siguiente. Su paper sobre generación de secuencias con LSTM trabajaba con palabras, caracteres y bytes; lo importante no era que la máquina guardase una frase literal, sino que su estado cambiara con cada símbolo. Esa diferencia permite entender tanto la potencia de estas redes como su límite: recurrencia no significa memoria ilimitada.
El bucle que convierte el orden en información
Una red neuronal convencional recibe una entrada y produce una salida. Una red neuronal recurrente, o RNN, añade una conexión temporal: en el paso t combina la entrada actual con el estado oculto del paso t-1. El resultado es un nuevo estado, que pasa al siguiente paso, y una salida. Los mismos pesos se reutilizan a lo largo de la secuencia. Por eso «perro muerde hombre» y «hombre muerde perro» no recorren el mismo cálculo aunque contengan las mismas palabras.
El estado oculto no es un archivo donde cada palabra ocupa una casilla. Es una representación de tamaño fijo que comprime lo que la red ha considerado útil del prefijo leído. Si el modelo procesa «La médica guardó el informe en el cajón porque luego lo necesitaría», el estado posterior a «lo» debe conservar pistas suficientes para predecir qué puede venir después. No necesita reconstruir cada letra anterior, pero sí mantener las dependencias que reduzcan la incertidumbre de la próxima unidad.
Esta arquitectura admite varias relaciones entre entrada y salida. Puede etiquetar cada posición —por ejemplo, asignar una categoría gramatical a cada palabra—, resumir una secuencia completa en una salida, o producir otra secuencia. En un modelo de lenguaje causal, la tarea concreta es más austera: estimar una distribución de probabilidad para la siguiente palabra, carácter o símbolo a partir del historial representado hasta ese momento.
Qué aprende realmente un modelo recurrente de lenguaje
El texto se transforma primero en unidades discretas. En un modelo por palabras, cada posición identifica una palabra del vocabulario; en uno por caracteres, identifica una letra, un signo o un espacio. La salida suele pasar por una función softmax, que asigna una probabilidad a cada unidad posible. Durante el entrenamiento, la pérdida penaliza al modelo cuando concede poca probabilidad al símbolo real que venía a continuación.
La probabilidad de una secuencia se descompone así en una cadena de predicciones condicionadas: la probabilidad de cada unidad depende de todas las anteriores solo a través del estado que ha llegado hasta ese paso. Esa última cláusula es decisiva. Dos RNN con el mismo vocabulario pueden ofrecer contextos efectivos muy distintos si cambian el tamaño del estado, la celda recurrente, la longitud usada para entrenar o la política para reiniciar la memoria entre secuencias.
Graves probó esa mecánica en dos escalas de texto. En Penn Treebank comparó predicción por palabras y por caracteres sobre un corpus de algo más de un millón de palabras, con 930.000 para entrenamiento, 74.000 para validación y 82.000 para prueba. En el conjunto del Hutter Prize entrenó sobre los primeros 96 millones de bytes de Wikipedia y reservó cuatro millones para validación; el estado podía continuar hasta 10.000 caracteres antes de reiniciarse. Esos detalles, documentados en el mismo estudio original, importan más que decir simplemente que la red «entiende contexto»: especifican la unidad, la partición y el horizonte disponible.
Por qué se desvanecen o explotan los gradientes
Aprender exige atribuir un error posterior a decisiones anteriores. En una RNN se despliega el bucle temporal como si fuera una red profunda con una copia por paso y se aplica retropropagación a través del tiempo. La señal de corrección atraviesa repetidamente las mismas transformaciones. Si esas multiplicaciones reducen su magnitud, el gradiente se desvanece y los pasos lejanos apenas reciben crédito o culpa. Si la aumentan, el gradiente explota y las actualizaciones pueden volverse inestables.
El análisis de Pascanu, Mikolov y Bengio estudia ambos fenómenos y propone recortar la norma del gradiente para contener las explosiones. El recorte no crea memoria: evita que una actualización enorme descarrile el entrenamiento. Tampoco basta con que el vector de estado exista durante cientos de pasos. Una dependencia es útil solo si el entrenamiento consigue modificar los pesos para conservarla y recuperarla cuando cambia la predicción.
Además, muchos sistemas usan retropropagación truncada: el estado continúa hacia delante, pero el gradiente solo retrocede un número limitado de pasos. Esto reduce coste y permite actualizaciones más frecuentes, aunque separa dos horizontes que conviene declarar. El modelo puede recibir información antigua en su estado y, al mismo tiempo, haber aprendido con una ventana de atribución mucho más corta. «Procesa 10.000 símbolos» y «aprende dependencias de 10.000 símbolos» no son afirmaciones equivalentes.
LSTM y GRU: puertas para decidir qué conservar
Long Short-Term Memory modifica el bloque recurrente con una celda y puertas aprendidas. Una puerta de entrada regula qué información nueva se incorpora; una puerta de olvido decide cuánto del estado de la celda continúa; y una puerta de salida controla qué parte se expone como estado oculto. La ruta aditiva de la celda facilita que cierta información y su gradiente atraviesen más pasos que en una RNN básica. No convierte la memoria en infinita ni garantiza que la red elija la pista correcta.
La prueba está en cómo se evalúa. Si una palabra situada al principio determina una forma verbal mucho después, hay que medir el rendimiento por distancia entre ambas, no mezclar todos los casos en una media. También hay que indicar cuándo se reinicia el estado. Una red que conserva estado entre documentos puede parecer más capaz y, a la vez, contaminar una prueba con información que no estaría disponible en el uso real.
La GRU aplica el mismo principio con otra organización. El RNN Encoder-Decoder de Cho y sus coautores introdujo unidades con puertas de actualización y reinicio y aprendió una representación de longitud fija para condicionar una secuencia de salida. LSTM y GRU no son dos nombres para «más contexto»: son mecanismos distintos para controlar el flujo temporal. Se comparan con los mismos datos, tokenización, presupuesto y protocolo, no por la fama de la sigla.
Generar no es lo mismo que predecir con la respuesta delante
Durante el entrenamiento, el modelo suele recibir el símbolo real anterior y aprende a predecir el siguiente. Al generar, recibe una muestra de su propia distribución. Una elección poco probable pasa entonces a formar parte del historial y puede arrastrar las predicciones posteriores hacia una región que apenas apareció en los datos. Graves describía este bucle de muestrear, realimentar y volver a predecir; también advertía que una memoria corta deja menos opciones para recuperarse de errores anteriores.
Por eso una evaluación de generación debe separar dos pruebas. La primera mide la pérdida o la perplejidad sobre texto real, donde el historial es correcto. La segunda deja que el modelo continúe solo y observa estabilidad, repeticiones, cierres de signos, cambios de tema y secuencias imposibles. Una buena puntuación en la primera no demuestra por sí sola que un texto largo generado mantenga estructura. Son condiciones de entrada diferentes.
Qué cambió con la atención
La recurrencia obliga a calcular el paso actual después del anterior, lo que limita el paralelismo durante el entrenamiento. El Transformer presentado en 2017 eliminó recurrencia y convoluciones de su arquitectura central y usó atención para relacionar posiciones. Eso facilitó procesar muchas posiciones en paralelo y acortó el camino entre elementos distantes dentro de la ventana atendida.
La comparación no termina con «atención gana». Una RNN puede consumir un flujo paso a paso conservando un estado de tamaño fijo, una propiedad útil cuando los datos llegan en tiempo real o la memoria es limitada. La atención directa, en cambio, permite consultar representaciones de posiciones previas, pero su coste depende de cuántas posiciones se mantengan y comparen. La elección correcta nace de la tarea: latencia, longitud, memoria, posibilidad de paralelizar y clase de dependencia que deba conservarse.
Cómo comprobar una afirmación sobre memoria recurrente
Ante una demostración de una RNN, la primera pregunta es qué unidad predice: palabra, carácter, byte u otra segmentación. La segunda es dónde comienza y termina el estado. La tercera es cuánto retrocede el gradiente durante el entrenamiento. Sin esas tres respuestas, «contexto largo» puede describir una ventana de datos, una memoria persistente o solo una muestra que parece coherente.
Después hay que construir una prueba que obligue a usar el pasado. Se agrupan ejemplos por distancia entre la pista y la respuesta, se introduce una pista distractora más reciente y se compara con una base que solo vea una ventana corta. Para generación libre, se mide por separado qué ocurre después del primer error. Para uso en flujo, se cronometra símbolo a símbolo y se registra la memoria consumida por el estado. Cada medida responde a una propiedad concreta de la arquitectura.
El registro mínimo incluye vocabulario, tratamiento de unidades desconocidas, longitud de secuencia, tamaño y tipo de celda, regla de reinicio, truncamiento del gradiente y condición de evaluación. También debe decir si la métrica procede de predicción con historial real o de generación realimentada. Cambiar uno de esos elementos puede alterar el resultado sin que haya cambiado la palabra «RNN».
La capacidad que queda
La lección duradera no es memorizar que LSTM vino antes que Transformer. Es saber traducir «la red recuerda» a una afirmación comprobable: qué estado transporta, durante cuántos pasos, bajo qué entrenamiento y en qué prueba se demuestra que usa una pista distante. Una arquitectura recurrente ofrece un camino para llevar información hacia delante; el contexto efectivo es lo que realmente sobrevive, influye en la salida y resiste una prueba diseñada para necesitarlo.
Este artículo se ha elaborado con inteligencia artificial bajo supervisión editorial humana.