Fonctionnement de seq2seq - Amazon SageMaker

Fonctionnement de seq2seq

Généralement, le réseau neuronal d'une modélisation seq2seq se compose de quelques couches, parmi lesquelles :

  • Couche d'intégration. Dans cette couche, la matrice d'entrée, qui correspond aux jetons d'entrée codés de façon fragmentée (codage à chaud, par exemple), est associée à une couche de fonctions dense. Cette action est obligatoire, car un vecteur de fonction haute dimension est plus à même de coder les informations relatives à un jeton particulier (mot pour le corpus) qu'un simple vecteur codé à chaud. Il s'agit aussi d'une pratique standard pour initialiser la couche d'intégration avec un vecteur textuel préformé comme FastText ou Glove, ou pour l'initialiser de façon aléatoire et acquérir les paramètres au cours de la formation.

  • Couche d'encodeur. Une fois que les jetons d'entrée ont été associés à un espace de fonctions haute dimension, la séquence est transmise via une couche encodeur pour compresser l'ensemble des informations de la couche d'intégration en entrée (de la totalité de la séquence) en un vecteur de fonction de longueur fixe. En règle générale, un encodeur se compose de réseaux de type RNN comme les réseaux LSTM (Long Short-Term Memory) ou GRU (Gated Recurrent Units). (Le blog Colah explique les réseaux LSTM de façon détaillée.)

  • Couche de décodeur. La couche décodeur accepte le vecteur de fonction codé et génère en sortie la séquence de jetons. Généralement, cette couche est également conçue avec les architectures RNN (LSTM et GRU).

La totalité du modèle est formée conjointement pour optimiser la probabilité de la séquence cible en fonction de la séquence source. Ce modèle a été présenté pour la première fois par Sutskever et autres en 2014.

Mécanisme d'attention. L'inconvénient d'une architecture encodeur/décodeur est que les performances du modèle diminuent au fur et à mesure que la longueur de la séquence source augmente : la raison en est la limite de la quantité d'informations que le vecteur de fonction codé de longueur fixe peut contenir. Pour résoudre ce problème, en 2015, Bahdanau et al. ont proposé le mécanisme d'attention. Dans un tel mécanisme, le décodeur tente de trouver l'emplacement dans la séquence de l'encodeur où peuvent se trouver les informations les plus importantes, puis utilise celles-ci et les mots précédemment décodés pour prédire le jeton suivant de la séquence.

Pour plus de détails, reportez-vous au livre blanc Effective Approaches to Attention-based Neural Machine Translation par Luong, et al. qui explique et simplifie les calculs des différents mécanismes d'attention. En outre, le livre blanc Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation par Wu, et al. décrit l'architecture de Google pour la traduction automatique, qui utilise les connexions skip entre les couches encodeur et décodeur.