Recherche de site Web

Introduction en douceur à l'attention mondiale pour les réseaux de neurones récurrents codeur-décodeur


Le modèle codeur-décodeur fournit un modèle pour utiliser des réseaux neuronaux récurrents pour résoudre des problèmes difficiles de prédiction séquence à séquence tels que la traduction automatique.

Attention est une extension du modèle codeur-décodeur qui améliore les performances de l'approche sur des séquences plus longues. L'attention globale est une simplification de l'attention qui peut être plus facile à mettre en œuvre dans les bibliothèques déclaratives d'apprentissage profond comme Keras et peut donner de meilleurs résultats que le mécanisme d'attention classique.

Dans cet article, vous découvrirez le mécanisme d'attention global pour les modèles de réseaux neuronaux récurrents d'encodeur-décodeur.

Après avoir lu cet article, vous saurez :

  • Le modèle codeur-décodeur pour les problèmes de prédiction séquence à séquence tels que la traduction automatique.
  • Le mécanisme d'attention qui améliore les performances des modèles codeurs-décodeurs sur de longues séquences.
  • Le mécanisme d'attention global qui simplifie le mécanisme d'attention et peut obtenir de meilleurs résultats.

Démarrez votre projet avec mon nouveau livre Long Short-Term Memory Networks With Python, comprenant des tutoriels étape par étape et le code source Python fichiers pour tous les exemples.

Commençons.

Aperçu

Ce tutoriel est divisé en 4 parties ; ils sont:

  1. Modèle codeur-décodeur
  2. Attention
  3. Attention mondiale
  4. Attention mondiale plus en détail

Modèle codeur-décodeur

Le modèle codeur-décodeur est un moyen d'organiser des réseaux neuronaux récurrents pour résoudre les problèmes de prédiction séquence à séquence où le nombre de pas de temps d'entrée et de sortie diffère.

Le modèle a été développé pour le problème de la traduction automatique, comme la traduction de phrases du français vers l'anglais.

Le modèle implique deux sous-modèles, comme suit :

  • Encodeur : modèle RNN qui lit la séquence source entière selon un codage de longueur fixe.
  • Décodeur : un modèle RNN qui utilise la séquence d'entrée codée et la décode pour générer la séquence cible.

L'image ci-dessous montre la relation entre les modèles d'encodeur et de décodeur.

Le réseau neuronal récurrent de mémoire à long terme et à court terme est couramment utilisé pour l'encodeur et le décodeur. La sortie du codeur qui décrit la séquence source est utilisée pour démarrer le processus de décodage, conditionné par les mots déjà générés en sortie jusqu'à présent. Plus précisément, l'état caché du codeur pour le dernier pas de temps de l'entrée est utilisé pour initialiser l'état du décodeur.

Le LSTM calcule cette probabilité conditionnelle en obtenant d'abord la représentation dimensionnelle fixe v de la séquence d'entrée (x1, …, xT) donnée par le dernier état caché du LSTM, puis en calculant la probabilité de y1, …, yT' avec un formulation standard LSTM-LM dont l'état caché initial est défini sur la représentation v de x1, …, xT

— Apprentissage séquence à séquence avec les réseaux de neurones, 2014.

L'image ci-dessous montre le codage explicite de la séquence source vers un vecteur de contexte c qui est utilisé avec les mots générés jusqu'à présent pour générer le mot suivant dans la séquence cible.

Cependant, […], yt et h(t) sont également conditionnés par yt−1 et par le résumé c de la séquence d’entrée.

— Apprentissage des représentations de phrases à l'aide du codeur-décodeur RNN pour la traduction automatique statistique, 2014.

Attention

Il a été démontré que le modèle codeur-décodeur est un modèle de bout en bout qui fonctionne bien sur des problèmes complexes de prédiction séquence à séquence tels que la traduction automatique.

Le modèle apparaît limité à des séquences très longues. On pensait que la raison en était le codage de longueur fixe de la séquence source.

Un problème potentiel avec cette approche codeur-décodeur est qu'un réseau neuronal doit être capable de compresser toutes les informations nécessaires d'une phrase source dans un vecteur de longueur fixe. Cela peut rendre difficile pour le réseau neuronal de gérer les phrases longues, en particulier celles qui sont plus longues que les phrases du corpus de formation.

— Traduction automatique neuronale en apprenant conjointement à aligner et à traduire, 2015.

Dans leur article de 2015 intitulé « Traduction automatique neuronale par apprentissage conjoint pour aligner et traduire », Bahdanau et al. décrire un mécanisme d’attention pour résoudre ce problème.

L'attention est un mécanisme qui fournit un codage plus riche de la séquence source à partir duquel construire un vecteur de contexte qui peut ensuite être utilisé par le décodeur.

L'attention permet au modèle d'apprendre à quels mots codés dans la séquence source prêter attention et dans quelle mesure lors de la prédiction de chaque mot dans la séquence cible.

L'état caché pour chaque pas de temps d'entrée est collecté à partir de l'encodeur, au lieu de l'état caché pour le pas de temps final de la séquence source.

Un vecteur de contexte est construit spécifiquement pour chaque mot de sortie dans la séquence cible. Tout d’abord, chaque état caché du codeur est évalué à l’aide d’un réseau neuronal, puis normalisé pour être une probabilité sur les états cachés du codeur. Enfin, les probabilités sont utilisées pour calculer une somme pondérée des états cachés du codeur afin de fournir un vecteur de contexte à utiliser dans le décodeur.

Pour une explication plus complète du fonctionnement de l'attention de Bahdanau avec un exemple concret, consultez l'article :

  • Comment fonctionne l'attention dans les réseaux de neurones récurrents codeur-décodeur

Attention mondiale

Dans leur article « Approches efficaces de la traduction automatique neuronale basée sur l'attention », Minh-Thang Luong, chercheurs en PNL à Stanford, et al. proposent un mécanisme d'attention pour le modèle codeur-décodeur pour la traduction automatique appelé « attention globale ».

Il est proposé comme une simplification du mécanisme d'attention proposé par Bahdanau et al. dans leur article « Traduction automatique neuronale en apprenant conjointement à aligner et à traduire ». Dans l'attention de Bahdanau, le calcul de l'attention nécessite la sortie du décodeur à partir du pas de temps précédent.

L'attention globale, en revanche, utilise la sortie de l'encodeur et du décodeur uniquement pour le pas de temps actuel. Cela le rend intéressant à implémenter dans des bibliothèques vectorisées telles que Keras.

… notre chemin de calcul est plus simple ; on passe de ht -> at -> ct -> ~ht puis on fait une prédiction […] Par contre, à tout instant t, Bahdanau et al. (2015) construisent à partir de l'état caché précédent ht−1 -> at -> ct -> ht, qui, à son tour, passe par une couche de sortie profonde et une couche de sortie maximale avant de faire des prédictions.

— Approches efficaces de la traduction automatique neuronale basée sur l'attention, 2015.

Le modèle évalué dans Luong et al. L'article est différent de celui présenté par Bahdanau et al. (par exemple, séquence d'entrée inversée au lieu d'entrées bidirectionnelles, LSTM au lieu d'éléments GRU et utilisation de dropout), néanmoins, les résultats du modèle avec une attention globale obtiennent de meilleurs résultats sur une tâche de traduction automatique standard.

… l'approche de l'attention globale donne une augmentation significative de +2,8 BLEU, ce qui rend notre modèle légèrement meilleur que le système attentionnel de base de Bahdanau et al.

— Approches efficaces de la traduction automatique neuronale basée sur l'attention, 2015.

Examinons ensuite de plus près comment l’attention globale est calculée.

Attention mondiale plus en détail

L'attention globale est une extension du modèle codeur-décodeur attentionnel pour les réseaux neuronaux récurrents.

Bien que développé pour la traduction automatique, il est pertinent pour d'autres tâches de génération de langage, telles que la génération de sous-titres et le résumé de texte, et même pour les tâches de prédiction de séquence en général.

Nous pouvons diviser le calcul de l'attention globale en étapes de calcul suivantes pour un réseau codeur-décodeur qui prédit un pas de temps étant donné une séquence d'entrée. Voir l'article pour les équations pertinentes.

  • Problème. La séquence d'entrée est fournie en entrée du codeur (X).
  • Encodage. L'encodeur RNN code la séquence d'entrée et génère une séquence de même longueur (hs).
  • Décodage. Le décodeur interprète le codage et génère un décodage cible (ht).
  • Alignement. Chaque pas de temps codé est noté à l'aide du décodage cible, puis les scores sont normalisés à l'aide d'une fonction softmax. Quatre fonctions de notation différentes sont proposées :

    • point : le produit scalaire entre le décodage cible et l'encodage source.
    • général : le produit scalaire entre le décodage cible et l'encodage source pondéré.
    • concat : traitement par réseau neuronal de l'encodage source concaténé et du décodage cible.
    • localisation : un softmax du décodage cible pondéré.
  • Vecteur de contexte. Les poids d'alignement sont appliqués au codage source en calculant la somme pondérée pour obtenir le vecteur de contexte.
  • Décodage final. Le vecteur de contexte et le décodage cible sont concaténés, pondérés et transférés à l'aide d'une fonction tanh.

Le décodage final passe par un softmax pour prédire la probabilité du mot suivant dans la séquence sur le vocabulaire de sortie.

Le graphique ci-dessous donne une idée générale du flux de données lors du calcul de l'attention globale.

Les auteurs ont évalué toutes les fonctions de notation et ont constaté de manière générale que la simple fonction de notation par points semblait bien fonctionner.

Il est intéressant d’observer que le point fonctionne bien pour attirer l’attention mondiale…

— Approches efficaces de la traduction automatique neuronale basée sur l'attention, 2015.

En raison du flux de données plus simple et plus important, l'attention globale peut être un bon candidat pour une implémentation dans des bibliothèques d'apprentissage profond déclaratif telles que TensorFlow, Theano et des wrappers comme Keras.

Lectures complémentaires

Cette section fournit plus de ressources sur le sujet si vous souhaitez approfondir.

Encoder-Decoder

  • Apprentissage séquence à séquence avec les réseaux de neurones, 2014.
  • Représentations d'expressions d'apprentissage à l'aide du codeur-décodeur RNN pour la traduction automatique statistique, 2014.
  • Réseaux de mémoire à long terme et codeur-décodeur

Attention

  • Traduction automatique neuronale en apprenant conjointement à aligner et à traduire, 2014.
  • Comment fonctionne l'attention dans les réseaux de neurones récurrents codeur-décodeur

Attention mondiale

  • Approches efficaces de la traduction automatique neuronale basée sur l'attention, 2015.

Résumé

Dans cet article, vous avez découvert le mécanisme d'attention global pour les modèles de réseaux neuronaux récurrents d'encodeur-décodeur.

Concrètement, vous avez appris :

  • Le modèle codeur-décodeur pour les problèmes de prédiction séquence à séquence tels que la traduction automatique.
  • Le mécanisme d'attention qui améliore les performances des modèles codeurs-décodeurs sur de longues séquences.
  • Le mécanisme d'attention global qui simplifie le mécanisme d'attention et peut obtenir de meilleurs résultats.

Avez-vous des questions ?
Posez vos questions dans les commentaires ci-dessous et je ferai de mon mieux pour y répondre.

Articles connexes