ElemedexEnciclopedia de bolsillo de arquitecturas de IA
N.º 015

LSTM

Long Short-Term Memory

Cinta transportadora

Lleva adentro una cinta transportadora y tres porteros que deciden qué sube, qué se queda y qué baja. Así recuerda cosas de hace cientos de pasos, algo imposible para sus antepasados. Esperó quince años a que las GPU lo hicieran famoso, reinó un lustro y en 2017 lo destronó un tal Transformer, que lee todo a la vez.

Altura
1 recurrente (1997) · 4 + 4 (seq2seq, 2014) · 8 + 8 (GNMT, 2016)
Peso
≈ 1,5 GB (seq2seq, fp32)
Parámetros
≈ 100 – 10 500 (1997) · 384 M (seq2seq, 2014)
Contexto
> 1000 pasos (tareas sintéticas) · ≈ 200 tokens efectivos (LM)
Datos de entrenamiento
12 M pares de oraciones, 652 M palabras (seq2seq, WMT'14 en–fr)
Año
1997
Generación
2 · Aprendizaje automático clásico
Creadores
Sepp Hochreiter & Jürgen Schmidhuber (TU München / IDSIA); forget gate: Gers, Schmidhuber & Cummins (2000)
Clase
Arquitectura

Estadísticas base

Total
196

Escalas ordinales y aproximadas, pensadas para comparar especies entre sí; los números duros están en la ficha.

Debilidades

  • Es secuencial: para calcular el paso 100 hay que calcular los 99 anteriores, así que aprovecha mal las GPU.
  • Su memoria efectiva en lenguaje ronda los 200 tokens, y el orden solo le importa en los más recientes.
  • Los gradientes todavía pueden explotar: hay que recortarlos.
  • Cuatro juegos de pesos por unidad (tres compuertas y un candidato): más caro que una recurrente simple.

Hábitat

Pasó sus primeros años resolviendo problemas sintéticos de laboratorio. Antes de 2013 ya reinaba en el reconocimiento de escritura manuscrita; en 2013 llegó al de voz y en 2016 al traductor de Google. Hoy sobrevive en el pronóstico de series temporales (Chollet la usa para predecir la temperatura) y como antepasado ilustre en todos los manuales.

Movimientos

Habilidades

Carrusel de error constante
Una celda lineal conectada a sí misma con peso 1: el error fluye a través de ella sin desvanecerse ni explotar.
Compuertas multiplicativas
Unidades sigmoides, con valores entre 0 y 1, que abren o cierran el acceso a la celda para escribir y para leer.
Compuerta de olvido
Agregada en 2000: permite que la celda se vacíe sola cuando lo que guardaba dejó de servir.

Anatomía

tanh(cₜ)Entrada xₜEstado previohₜ₋₁Olvidofₜ (σ)Entradaiₜ (σ)Candidatoc̃ₜ(tanh)Salidaoₜ (σ)hₜ = oₜ · tanh(cₜ)Predicción o capa siguienteCelda previa cₜ₋₁× fₜ: olvidar+ iₜ · c̃ₜ: escribirCelda nueva cₜCompuertasCinta de la celda

Una celda LSTM moderna (con compuerta de olvido). La entrada y el estado previo alimentan tres compuertas sigmoides y un candidato. A la derecha, la cinta: la celda vieja se multiplica por la compuerta de olvido, se le suma lo nuevo filtrado por la compuerta de entrada, y la compuerta de salida decide cuánto de la celda se lee como estado oculto. Como la cinta se actualiza sumando, el gradiente la recorre sin desvanecerse.

Cadena evolutiva

015 LSTM
  • dos LSTM: una lee, la otra escribe022 Seq2seq
  • un espacio de estados selectivo: recurrencia que se entrena en paralelo043 Mamba

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).

Fuentes

  • Alammar, J., & Grootendorst, M. (2024). Hands-on large language models: Language understanding and generation. O’Reilly Media. §
  • Bahdanau, D., Cho, K., & Bengio, Y. (2015). Neural machine translation by jointly learning to align and translate. In 3rd International Conference on Learning Representations (ICLR 2015). https://doi.org/10.48550/arXiv.1409.0473 §
  • Buckner, C. J. (2024). From deep learning to rational machines: What the history of philosophy can teach us about the future of artificial intelligence. Oxford University Press. https://doi.org/10.1093/oso/9780197653302.001.0001 §
  • Cho, K., van Merriënboer, B., Gulcehre, C., Bahdanau, D., Bougares, F., Schwenk, H., & Bengio, Y. (2014). Learning phrase representations using RNN encoder–decoder for statistical machine translation. In A. Moschitti, B. Pang, & W. Daelemans (Eds.), Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP) (pp. 1724–1734). Association for Computational Linguistics. https://doi.org/10.3115/v1/D14-1179 §
  • Chollet, F. (2021). Deep learning with Python (2nd ed.). Manning Publications. §
  • Chomsky, N. (1957). Syntactic structures. Mouton. https://doi.org/10.1515/9783112316009 §
  • Gers, F. A., Schmidhuber, J., & Cummins, F. (2000). Learning to forget: Continual prediction with LSTM. Neural Computation, 12(10), 2451–2471. https://doi.org/10.1162/089976600300015015 §
  • Graves, A., Mohamed, A.-R., & Hinton, G. (2013). Speech recognition with deep recurrent neural networks. In 2013 IEEE International Conference on Acoustics, Speech and Signal Processing (pp. 6645–6649). IEEE. https://doi.org/10.1109/ICASSP.2013.6638947 §
  • Gulordava, K., Bojanowski, P., Grave, E., Linzen, T., & Baroni, M. (2018). Colorless green recurrent networks dream hierarchically. In M. Walker, H. Ji, & A. Stent (Eds.), Proceedings of the 2018 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long Papers) (pp. 1195–1205). Association for Computational Linguistics. https://doi.org/10.18653/v1/N18-1108 §
  • Hochreiter, S., & Schmidhuber, J. (1997). Long short-term memory. Neural Computation, 9(8), 1735–1780. https://doi.org/10.1162/neco.1997.9.8.1735 §
  • Khandelwal, U., He, H., Qi, P., & Jurafsky, D. (2018). Sharp nearby, fuzzy far away: How neural language models use context. In I. Gurevych & Y. Miyao (Eds.), Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers) (pp. 284–294). Association for Computational Linguistics. https://doi.org/10.18653/v1/P18-1027 §
  • Linzen, T., Dupoux, E., & Goldberg, Y. (2016). Assessing the ability of LSTMs to learn syntax-sensitive dependencies. Transactions of the Association for Computational Linguistics, 4, 521–535. https://doi.org/10.1162/tacl_a_00115 §
  • Sutskever, I., Vinyals, O., & Le, Q. V. (2014). Sequence to sequence learning with neural networks. In Advances in Neural Information Processing Systems (Vol. 27). Curran Associates. https://proceedings.neurips.cc/paper_files/paper/2014/hash/5a18e133cbf9f257297f410bb7eca942-Abstract.html §
  • Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., Kaiser, Ł., & Polosukhin, I. (2017). Attention is all you need. In Advances in Neural Information Processing Systems (Vol. 30). Curran Associates. https://proceedings.neurips.cc/paper_files/paper/2017/hash/3f5ee243547dee91fbd053c1c4a845aa-Abstract.html §
  • Wu, Y., Schuster, M., Chen, Z., Le, Q. V., Norouzi, M., Macherey, W., Krikun, M., Cao, Y., Gao, Q., Macherey, K., Klingner, J., Shah, A., Johnson, M., Liu, X., Kaiser, Ł., Gouws, S., Kato, Y., Kudo, T., Kazawa, H., . . . Dean, J. (2016). Google’s neural machine translation system: Bridging the gap between human and machine translation (arXiv:1609.08144). arXiv. https://doi.org/10.48550/arXiv.1609.08144 §
  • Yedetore, A., Linzen, T., Frank, R., & McCoy, R. T. (2023). How poor is the stimulus? Evaluating hierarchical generalization in neural networks trained on child-directed speech. In A. Rogers, J. Boyd-Graber, & N. Okazaki (Eds.), Proceedings of the 61st Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers) (pp. 9370–9393). Association for Computational Linguistics. https://doi.org/10.18653/v1/2023.acl-long.521 §