La LSTM (long short-term memory, algo así como «memoria de corto plazo de larga duración») es una arquitectura recurrente que le agrega a cada unidad una celda de memoria protegida y un conjunto de compuertas multiplicativas que deciden qué se escribe en ella, qué se conserva y qué se lee. Fue la respuesta de Sepp Hochreiter y Jürgen Schmidhuber al gran defecto de redes como la de Elman: no podían aprender relaciones entre sucesos separados por muchos pasos.
El problema
Al entrenar una red recurrente con retropropagación a través del tiempo, la señal de error que viaja hacia atrás se multiplica en cada paso por factores que dependen de los pesos y de la derivada de la función de activación. Si esos factores son menores que 1, el error decae exponencialmente; si son mayores, explota (Hochreiter y Schmidhuber, 1997, secs. 1, 3). Es el gradiente que se desvanece, que Hochreiter había analizado en su tesis de 1991.
Cómo funciona
La solución de 1997 es casi de ingeniería: una unidad lineal conectada a sí misma con peso 1, el carrusel de error constante, por la que el error fluye sin decaer ni explotar. Para que esa memoria no se llene de ruido, una compuerta de entrada la protege de entradas irrelevantes y una compuerta de salida protege al resto de la red de contenidos que todavía no vienen al caso (Hochreiter y Schmidhuber, 1997, secs. 4, 7). En tareas sintéticas, la LSTM salvaba demoras de más de 1000 pasos, donde los métodos anteriores fracasaban (1997, sec. 1).
La versión que se usa hoy tiene además una compuerta de olvido, que Gers et al. (2000) introdujeron para que la celda pudiera vaciarse sola al procesar flujos continuos. En cada paso, tres compuertas sigmoides (con valores entre 0 y 1) y un candidato calculado con tanh se combinan así:
- cₜ = fₜ ⊙ cₜ₋₁ + iₜ ⊙ c̃ₜ: olvidar parte de lo viejo, escribir parte de lo nuevo;
- hₜ = oₜ ⊙ tanh(cₜ): leer parte de la celda como estado oculto.
Chollet propone imaginar la celda como una cinta transportadora que corre en paralelo a la secuencia: la información sube en un punto, viaja intacta y se baja cuando hace falta (Chollet, 2021, sec. 10.3). Como la cinta se actualiza sumando, y no multiplicando por una matriz de pesos, el gradiente la recorre sin desvanecerse (explotar, todavía puede).
Época dorada
Según Chollet, el algoritmo apenas cambió desde 1997 (Chollet, 2021, sec. 1.3): lo que faltaba eran datos y GPU. Ya dominaba el reconocimiento de escritura cursiva cuando, en 2013, una LSTM profunda obtuvo el que sus autores describían como el mejor resultado registrado en el benchmark de fonemas TIMIT (Graves et al., 2013). En 2014, Sutskever et al. (2014) usaron dos pilas de cuatro capas LSTM, una que lee la oración de origen y otra que escribe la traducción, con 384 millones de parámetros y 12 millones de pares de oraciones inglés–francés: nacía Seq2seq (2014, secs. 3.1, 3.4). Un truco curioso: invertir el orden de las palabras de origen mejoraba mucho los resultados (2014, sec. 3.3). La atención de Bahdanau et al. (2015) alivió el cuello de botella de comprimir toda la oración en un solo vector (Alammar y Grootendorst, 2024, pp. 13–14; Buckner, 2024, p. 270), y en 2016 el traductor de Google pasó a una red con ocho capas LSTM codificadoras y ocho decodificadoras (Wu et al., 2016). La GRU de Cho et al. (2014) es una forma más liviana, con dos compuertas.
Las estadísticas de esta ficha describen una LSTM de esa época (el modelo de Sutskever y colegas), no las de 1997, que tenían entre un centenar y diez mil pesos (Hochreiter y Schmidhuber, 1997, sec. 5.7).
Límites
La recurrencia es secuencial y desaprovecha el paralelismo del hardware (Alammar y Grootendorst, 2024, p. 14). Por eso el Transformer, que prescinde de ella, la desplazó desde 2017 (Vaswani et al., 2017; Buckner, 2024, p. 272). La memoria efectiva es menor que la teórica: Khandelwal et al. (2018) encontraron que un modelo de lenguaje LSTM usaba unos 200 tokens de contexto, era muy sensible al orden dentro de la oración más reciente e ignoraba el orden más allá de unos 50 tokens. Los gradientes todavía explotan y hay que recortarlos (Sutskever et al., 2014, sec. 3.4). Y, como admitían sus autores, contar pasos con precisión (¿pasó hace 99 o hace 100?) está fuera de su alcance (Hochreiter y Schmidhuber, 1997, sec. 6).