2.2 Traduction automatique neuronale
2.2.4 Architecture Transformer
Vaswani et al. (2017) constatent plusieurs problèmes dans les architectures
encodeur-décodeur s’appuyant sur des cellules récurrentes :
— Premièrement, à cause de la nature même de ces cellules récurrentes, qui
nécessitent d’abord de calculerh
tpour pouvoir ensuite calculerh
t+1,l’en-codage d’une séquence ne peut pas s’exécuter en parallèle et nécessiteO(n)
— Deuxièmement, bien que les cellules récurrentes soient capables de
modéli-ser des dépendances sur une longue distance, l’information disparaît toujours
progressivement à chaque fois qu’elle doit traverser une cellule, ce qui rend
difficile l’utilisation d’une information d’un bout à l’autre d’une séquence.
Afin de répondre à ces problèmes, les auteurs proposent une nouvelle
architec-ture de réseau neuronal appelée « Transformer », qui n’utilise aucune récurrence.
Elle repose essentiellement sur deux changements importants : (1) un nouveau
mécanisme d’attention appelé « attention multi-tête », et (2) une nouvelle façon
d’encoder la position d’un mot d’une séquence.
Figure 2.6 – Architecture Transformer. Figure issue de l’article deVaswani et al.
(2017).
La figure 2.6 illustre l’architecture Transformer dans son ensemble. Elle est
composée d’un encodeur (à gauche) et d’un décodeur (à droite) comme dans les
architectures vues précédemment.
Dans les sections suivantes, nous allons détailler le fonctionnement de
l’atten-tion multi-tête, du nouvel encodage des posil’atten-tions et des autres particularités du
Transformer. Pour finir, nous parlerons des nombreuses applications du
Transfor-mer dans les autres disciplines du TAL.
2.2.4.1 Attention multi-tête
Le mécanisme d’attention multi-tête est le composant central de l’architecture
Transformer. Illustré dans lafigure 2.7, il repose sur une formulation générale de
l’attention qui la définit comme un alignement entre une requête (queryouQ) et un
ensemble de paires de (clé, valeur) (keysetvaluesouK etV). Plus précisément,
l’attention se calcule comme une somme pondérée des valeurs, où chaque poids
associé à une valeur dépend d’une fonction entre la requête et la clé correspondante
à cette valeur.
Figure 2.7 – Attention multi-tête. Figure issue de l’article deVaswani et al.(2017).
Dans le cas de l’architecture encodeur-décodeur utilisée en TA, dans laquelle
on calcule une attention entre l’état courant d’un décodeur et tous les états d’un
encodeur,Qest le vecteur qui correspond au dernier état du décodeur, et K etV
sont tous les deux la même matrice qui correspond à tous les états de l’encodeur.
Dans le modèle Transformer, on calcule non seulement cette attention entre
l’encodeur et l’état courant du décodeur, mais aussi une attention au sein même de
l’encodeur, comme au sein même du décodeur, ce qui remplace les celulles
récur-rentes type LSTM ou GRU. Dans ce mécanisme, qu’on appelle « auto-attention »,
la requête est chaque élément de l’encodeur (ou du décodeur), et les clés et valeurs
sont toutes les sorties de ce même encodeur (ou décodeur).
Au niveau du calcul des poids de l’attention,Vaswani et al.(2017) introduisent
une nouvelle fonction appeléescaled dot-product attention, qui calcule l’attention
entre le vecteur de requête Q et deux vecteurs de clé et valeur K et V, avec la
formule suivante :
attention(Q, K, V) =sof tmax
QK
T√
d
kV
avecd
kla dimension deQ,K etV (qui sont les mêmes).
L’ensemble du mécanisme d’attention est finalement appelé attention «
multi-tête », parce qu’il repose sur n têtes qui calculent chacune en parallèle un score
d’attention sur une portion des valeurs Q, K et V, qui sont ensuite concaténés.
Plus précisément, si par exemple la dimensiond
kest de 512, et qu’on a huit têtes
d’attention (comme le modèle de base des auteurs), alors on calcule simultanément
l’attention entre huit portions du vecteur. Chaque portion est de taille 64 (512/8),
puis elles sont concaténées pour avoir en sortie un vecteur de taille 512.
Ainsi, avec le modèle Transformer, tous les vecteurs qui rentrent et sortent des
couches d’attention multi-tête doivent être de taille identique, et cette taille doit
être un multiple du nombre de têtes qui exécutent le calcul en parallèle.
2.2.4.2 Vecteurs de position
L’autre nouveauté principale de l’architecture Transformer, qui complète le
mé-canisme d’attention afin de pouvoir se passer entièrement des réseaux récurrents,
se situe au niveau de la manière d’encoder la position des éléments dans une
sé-quence.
Traditionnellement, dans les réseaux de neurones qui traitent des séquences, on
assigne un vecteur à chaque élément de la séquence en fonction de sa nature. Ainsi,
la séquence[a, b, b, c, a]a pour représentation vectorielle[v
a, v
b, v
b, v
c, v
a]avant de
passer dans l’encodeur. C’est ensuite le mécanisme de récurrence qui permet de
contextualiser les vecteurs en fonction des mots précédents et suivants.
L’encodage de position, tel qu’il est proposé dans l’architecture Transformer,
consiste à calculer les représentations vectorielles des éléments d’une séquence
en fonction de leur nature ainsi que de leur position dans la séquence. Les deux
informations s’additionnent simplement pour avoir la représentation finale. Ainsi,
la séquence[a, b, b, c, a]a pour représentation vectorielle[v
a+w
0, v
b+w
1, v
b+
w
2, v
c+w
3, v
a+w
4], les vecteursv
xetw
ndevant être de même dimension.
Les auteurs proposent ensuite deux méthodes pour calculer ces vecteurs de
position : soit en apprenant ces vecteurs conjointement avec le modèle, soit en
uti-lisant les fonctions périodiquessinusetcosinusavec plusieurs fréquences. L’idée
de cette dernière méthode est ainsi d’assigner à chaque dimension du vecteurw
nune valeur suivant une sinusoïde de fréquence différente. Les auteurs utilisent ainsi
les formules suivantes :
Grâce à cette méthode, illustrée dans lafigure 2.8, plutôt que d’apprendre les
vecteurs de position sur un corpus d’entraînement, le modèle est capable
d’ex-trapoler les représentations vectorielles pour des éléments dans des séquences de
longueur plus grande que celles rencontrées pendant l’entraînement.
Figure 2.8 – Encodage des positions avec les fonctionssinusetcosinus. Figure
issue de l’articleThe Annotated Transformer.
7Avec ces deux changements, les cellules récurrentes ne sont plus nécessaires
parce que chaque vecteur de mot contient l’information de sa propre position dans
la séquence. L’encodeur et le décodeur peuvent ainsi exploiter cette information
depuis n’importe quel autre mot de la séquence grâce au mécanisme d’attention,
sans limite de distance.
2.2.4.3 Autres particularités de l’architecture Transformer
En plus de l’attention multi-tête et de l’encodage des positions, d’autres
parti-cularités font la robustesse et l’efficacité du modèle Transformer. Nous allons les
présenter ici brièvement.
Feed-forward networks
Dans chaque encodeur et dans chaque décodeur Transformer, après le calcul
de l’attention se trouve une couche réalisant deux opérations linéaires successives
permettant d’ajouter des paramètres au modèle tout en conservant la même
dimen-sion en entrée et en sortie de chaque couche. Cette nouvelle couche, appeléefeed
forward network(FFN) réalise le calcul suivant :
F F N(x) = max(0, xW
1+b
1)W
2+b
2Soitd
xla dimension du vecteurxdonné en entrée, etd
f fune dimension arbitraire,
W
1est ainsi une matrice de dimensiond
x×d
f f, b
1est un vecteur de dimension
d
f f,W
2est de dimensiond
f f×d
xetb
2est de dimensiond
x. Ainsi, le résultat de
F F N(x)est toujours de dimensiond
x.
Connexions résiduelles et normalisation
Pour chaque couche du Transformer (couche d’attention ou couche de FFN),
deux techniques permettant d’accélerer l’entraînement sont appliquées : une
connexion résiduelle, méthode proposée par He et al. (2016), et une
normalisa-tion de couche, méthode proposée par Ba et al. (2016). Le résultat est que pour
chaque coucheCouche, la sortie de la couche est finalement :
x=N orm(x+Couche(x))
Enfin, une dernière forme de normalisation est appliquée en sortie de chaque
couche, le Dropout (Srivastava et al.,2014), avec une probabilité de0,1.
2.2.4.4 Améliorations et démocratisation de Transformer
L’architecture Transformer connaît plus tard des améliorations. Par exemple
l’architecture Transformer-XL (Dai et al.,2019) ajoute une nouvelle façon
d’en-coder les positions de façon relative, et des cellules récurrentes supplémentaires
permettent de conserver une mémoire d’une séquence à une autre. De même,
l’ar-chitecture RNMT+ (Chen et al.,2018) reprend des éléments du Transformer avec
des éléments de récurrence supplémentaires.
Cependant, l’architecture Transformer « classique » reste largement la plus
uti-lisée, et c’est toujours elle qui est utilisée dans les systèmes qui sont en tête des
principales campagnes d’évaluation en TA, par exemple sur les tâches de
traduc-tion anglais-français et anglais-allemand des campagnes d’évaluatraduc-tion WMT.
8Plus
globalement, l’architecture devient ainsi la base d’un grand nombre de réseaux de
neurones pour traiter des séquences, notamment dans l’apprentissage non
super-visé de modèles de langue pré-entraînés tels que BERT (Devlin et al., 2019) et
tous ses successeurs : XLM, XLNet, RoBERTa, FlauBERT, CamemBERT, etc.
(voirsection 1.3.3.2).
8. https://paperswithcode.com/task/machine-translation. Consulté le
Dans nos contributions, nous utilisons aussi l’architecture Transformer dans
nos systèmes de DL neuronaux (voirchapitre 5etchapitre 6) et de TA neuronaux
(voirchapitre 7etchapitre 8).
Dans le document
Modèles neuronaux joints de désambiguïsation lexicale et de traduction automatique
(Page 85-91)