Un réseau de neurones récurrent, ou RNN, est une architecture de réseau de neurones conçue pour traiter des données séquentielles en maintenant un état caché interne qui est mis à jour à chaque étape et transmis pour influencer le traitement des entrées suivantes. Contrairement aux réseaux à propagation avant, qui associent une entrée fixe à une sortie fixe sans mémoire des entrées précédentes, les RNN partagent les mêmes poids à chaque étape d'une séquence et peuvent, en principe, utiliser des informations provenant de points arbitrairement éloignés de cette séquence pour éclairer chaque nouvelle prédiction.
Historique
Les premières architectures récurrentes incluent le réseau de Hopfield de John Hopfield en 1982, un modèle de mémoire associative, et le réseau récurrent simple proposé par Jeffrey Elman en 1990, qui a montré qu'un réseau pouvait apprendre à représenter la structure grammaticale d'un flux de mots sans que les règles ne lui soient explicitement données. Tout au long des années 1990 et 2000, les RNN étaient l'architecture par défaut pour les tâches séquentielles en traitement du langage naturel et en reconnaissance vocale, mais les RNN simples se sont révélés difficiles à entraîner sur de longues séquences, car les gradients calculés par rétropropagation dans le temps tendent à diminuer ou à exploser de manière exponentielle avec la longueur de la séquence, un problème analysé formellement par Sepp Hochreiter en 1991. Ce problème de gradient qui s'évanouit ou explose a motivé l'architecture LSTM en 1997 et, plus tard, l'unité récurrente à portes plus simple, toutes deux ayant ajouté des mécanismes de portes permettant aux gradients de circuler plus stablement à travers de nombreuses étapes.
Architecture et entraînement
Un RNN traite une séquence élément par élément, combinant l'entrée courante avec l'état caché transmis de l'étape précédente pour produire un nouvel état caché et, éventuellement, une sortie à cette étape. L'entraînement utilise la rétropropagation dans le temps, qui déplie le calcul récurrent sur toutes les étapes d'une séquence et applique un descente de gradient ordinaire au réseau résultant, effectivement très profond. Ce dépliement constitue également le principal inconvénient des RNN : parce que chaque étape dépend de la sortie de la précédente, la séquence doit être largement traitée étape par étape plutôt qu'en parallèle, ce qui rend les RNN lents à entraîner sur les longues séquences et les grands ensembles de données devenus standard dans les années 2010.
Apogée et déclin
Les RNN, et en particulier les variantes empilées de LSTM, ont alimenté la première génération de systèmes pratiques de traduction automatique et de reconnaissance vocale grâce à des architectures comme séquence à séquence, introduites en 2014, qui associaient un RNN encodeur compressant une séquence d'entrée en un vecteur fixe à un RNN décodeur générant la séquence de sortie à partir de ce vecteur. Les mécanismes d'attention, ajoutés aux modèles séquence à séquence vers 2015 pour permettre au décodeur de consulter tous les états de l'encodeur plutôt que de se fier à un seul vecteur compressé, ont à la fois amélioré la qualité de la traduction et préparé le terrain pour l'architecture transformeur de 2017, qui a entièrement abandonné la récurrence au profit de l'auto-attention et pouvait être entraînée entièrement en parallèle. Parce que les transformeurs égalaient ou dépassaient les performances des RNN tout en s'entraînant bien plus rapidement sur le matériel GPU disponible à l'époque, ils ont remplacé les RNN comme architecture dominante pour les grands modèles de langage et la majeure partie du traitement du langage naturel en quelques années.
Héritage
Les RNN restent utilisés dans des contextes avec des contraintes strictes de mémoire ou de latence, ainsi que dans certaines applications de séries temporelles et de contrôle. Leur idée centrale, selon laquelle un état caché de taille fixe peut résumer une histoire de longueur illimitée, a refait surface au milieu des années 2020 dans les modèles à espace d'état comme Mamba, qui visent à combiner l'inférence en temps linéaire des RNN avec une efficacité d'entraînement plus proche de celle des transformeurs.