• Aucun résultat trouvé

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

t

pour 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

k

V

avecd

k

la 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

k

est 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

x

etw

n

devant ê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

n

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

7

Avec 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

2

Soitd

x

la dimension du vecteurxdonné en entrée, etd

f f

une dimension arbitraire,

W

1

est ainsi une matrice de dimensiond

x

×d

f f

, b

1

est un vecteur de dimension

d

f f

,W

2

est de dimensiond

f f

×d

x

etb

2

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

8

Plus

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