On présente ici un réseau récurrent séquence à séquence (ou sequence to sequence: seq2seq) pour la traduction automatique. Nous présentons ci-dessous une architecture simplifiée basée sur un réseau récurrent composé le plus souvent de cellules LSTM avec un mécanisme d'attention.
Le réseau RNN, et tout particulièrement la variante LSTM, permettent de créer des modèles Séquence à séquence (Seq2seq) pour la traduction automatique. Mais le problème du goulot d'étranglement entre l'encodeur et le décodeur a conduit à l'utilisation d'un mécanisme d'attention pour faciliter l'accès à l'information pertinente contenue dans les états cachés de l'encodeur lors de la phase de décodage et garantir un bon alignement des mot dans les séquences en sortie.
Liens pour les vidéos :
I- Introduction
https://youtu.be/JhH6MSST2ic
II- Principes du mécanisme d'attention
https://youtu.be/EjhPvC9aizs
III- Machine Translation avec Attention
https://youtu.be/5avpZ0Ea4x8
IV- Graphe et matrice des liaisons pertinentes
https://youtu.be/1zFXWT4cuKI
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
RNN avec mécanisme d'attention
1. Réseaux de neurones récurrents
Avec mécanisme d'Attention
NATURAL LANGUAGE PROCESSING
(NLP)
juillet 2020
JAOUAD DABOUNOU
FST de Settat
Université Hassan 1er
RNN avec Attention
3. ct-1 ct
Réseaux LSTM
3J. DABOUNOU - FST DE SETTAT
xt+1
ht+1
+x
x
tanh
tanh
x
xt
ht
+x
x
tanh
tanh
x
xt-1
ht-1
+x
x
tanh
tanh
x
ht-2
ht-1 ht
ct-2 ct+1
ht+1
Les réseaux LSTM (Long Short Term Memory ou mémoire à long terme et à court terme ) sont un type spécial de
RNN, capable d'apprendre les dépendances à long terme. Ils ont été introduits par Hochreiter et Schmidhuber en
1997, et ont été par la suite affinés et popularisés par de nombreuses personnes. Ils fonctionnent extrêmement bien
sur une grande variété de problèmes et sont maintenant largement utilisés.
4. 4
Traduction automatique
J. DABOUNOU - FST DE SETTAT
Réseau de neuronesHe visited the magical medina Il a visité la médina magique
Un réseau de neurones pour la traduction automatique (Neural Machine Translation : NMT) fait un mapping entre
une séquence en entrée dans une langue donnée et une séquence en sortie dans la langue cible.
5. 5
Modèle séquence à séquence
J. DABOUNOU - FST DE SETTAT
Réseau de
neurones
Seq2seq
medinaHe visited the magical médinaIl a visité la magique
Les modèles de séquence à séquence font référence à la classe plus large de modèles qui incluent tous les modèles
qui mappent une séquence à une autre. Il sont très souvent utilisés dans la traduction automatique. Dans ces
modèles, l'entrée et la sortie ne sont pas nécessairement de la même longueur.
6. 6
Modèle SEQ2SEQ de niveau mot
J. DABOUNOU - FST DE SETTAT
medinaHe visited the magical
Réseau de
neurones
Seq2seq
Réseau de
neurones
Seq2seq
Dans les modèles Seq2Seq de niveau mot, le réseau reçoit un à un les mots de la première séquence.
7. 7
Modèle SEQ2SEQ de niveau mot
J. DABOUNOU - FST DE SETTAT
médinaIla visitélamagique
Réseau de
neurones
Seq2seq
Lorsque tous les mots de la séquence en entrée sont reçus par le réseau, il entame la traduction et renvoie les mots
de la séquence en sortie l'un à la suite de l'autre dans la langue cible.
8. 8
Modèle encodeur-décodeur
J. DABOUNOU - FST DE SETTAT
medinaHe visited the magical médinaIl a visité la magique
Encoder
Decoder
Ces modèles peuvent être considérés comme composés de deux réseaux de neurones récurrents: un encodeur et
un décodeur. On parle alors d'une architecture encodeur-décodeur (Encoder/Decoder).
9. 9
Modèle encodeur-décodeur
J. DABOUNOU - FST DE SETTAT
medinaHe visited the magical
Encoder
Decoder
Dans l'architecture codeur-décodeur, la première séquence est entrée mot à mot.
10. 10
Modèle encodeur-décodeur
J. DABOUNOU - FST DE SETTAT
Encoder
Decoder
médinaIla visitélamagique
Encoder
Decoder
Contexte
Lorsque la séquence entière est entrée dans l'encodeur, celui-ci crée un contexte représentant la séquence d'origine.
Ce contexte est ensuite transmis au réseau décodeur qui l'utilise pour construire la séquence en sortie mot après
mot.
11. Encoder
Decoder
Encoder
Decoder
Contexte
11
Modèle encodeur-décodeur
J. DABOUNOU - FST DE SETTAT
medinaHe visited the magical médinaIl a visité la magique
0.1
-1.1
-0.3
-1.0
0.1
-0.6
0.2
-0.1
-0.9
-0.3
0.2
-0.4
0.5
-0.1
0.2
-0.5
-0.1
0.4
-0.7
0.7
-0.3
0.4
0.2
-0.5
0.1
0.1
0.8
0.2
-0.7
1.1
-0.2
0.2
0.3
-0.4
0.9
0.1
-1.1
-0.3
-1.0
0.1
-0.2
0.4
1.0
0.1
-0.3
-0.5
-0.2
-0.3
0.2
0.7
-0.3
-1.0
0.5
-0.6
0.5
-0.5
-0.1
-0.8
0.5
0.4
Les entrées du réseau sont une représentation vectorielle des mots (One-hot encoding, word embedding,…) et non
les mots eux-mêmes.
Le texte d'entrée est traité par l'encodeur pour être codé en un vecteur contexte, qui est ensuite transmis au
décodeur pour générer la sortie.
12. 12
Modèle encodeur-décodeur
J. DABOUNOU - FST DE SETTAT
visited
h3
the
h4
magical
h5
medina
h6
He
h2
z = h7
<s>
h1
</s>
h7
English encoder French decoder
h2
out
h3
out
h4
out
h5
out
h1
out
h6
out
h7
out
médinaIl a visité la magique </s>Le dernier état caché du premier
réseau RNN est utilisé comme contexte
qui représente la phrase en anglais.
Encoder
Decoder
Encoder
Decoder
Contexte
Le décodeur utilise le contexte comme état initial, génère un premier mot, ensuite l'utilise comme entrée pour
générer le mot suivant et ainsi de suite jusqu'à la génération de la fin de séquence </s>.
<s>
13. 13
Modèle encodeur-décodeur: RNN traduction
J. DABOUNOU - FST DE SETTAT
visited
h3
the
h4
magical
h5
medina
h6
He
h2
z = h7
<s>
h1
</s>
h7
English encoder
French decoder
h2
out
h3
out
h4
out
h5
out
h1
out
h6
out
h7
out
Représente la phrase en anglais
Encoder
Decoder
Encoder
Decoder
Contexte
x1 x2 x3 x4 x5 x6 x7
z1 z2 z3 z4 z5 z6 z7
Embedding
𝐡t = 𝐭𝐚𝐧𝐡(𝐖hh 𝐡t−1 + 𝐖xh 𝐱t)
médinaIl a visité la magique </s>
y1 y2 y3 y4 y5 y6 y7
SoftmaxEmbedding
Lors de la phase d'entrainement, les sorties zt du décodeur sont comparées aux sorties attendues yt dans l'expression
de la fonction de perte.
Dans certaines implémentations,
on utilise les yt comme entrée pour
générer le mot suivant.
<s>
14. Encoder
Decoder
Encoder
Decoder
Contexte
14
Modèle encodeur-décodeur
J. DABOUNOU - FST DE SETTAT
visited
h3
the
h4
magical
h5
medina
h6
He
h2
z = F(h1, h2, …, h7)
<s>
h1
</s>
h7
English encoder French decoder
h2
out
h3
out
h4
out
h5
out
h1
out
h6
out
h7
out
médinaIl a visité la magique </s>
Combinaison des états cachés hs
représentant la phrase en anglais
Le contexte ainsi obtenu peut ne pas tenir compte des états cachés de début des séquences. Surtout qu'elles sont de
taille variable. Pour résoudre ce problème, lors de la phase d'entrainement, au lieu d'utiliser le dernier état caché du
premier réseau pour commencer le deuxième réseau, on peut choisir une somme pondérée des différents états
cachés h1, h2, …, h7, surtout
qu'ils sont disponibles.
<s>
15. 15
Limites Modèle encodeur-décodeur
J. DABOUNOU - FST DE SETTAT
visited
h3
the
h4
magical
h5
medina
h6
He
h2
z = F(h1, h2, …, h7)
<s>
h1
</s>
h7
English encoder French decoder
h2
out
h3
out
h4
out
h5
out
h1
out
h6
out
h7
out
médinaIl a visité la magique </s>
Représente la phrase en anglais
• Taille fixe quelque soit la taille des séquences qui est
variable
• Perd la dynamique temporelle qui est inhérente aux
séquences
L'information dans le contexte peut s'effacer
lorsque la taille de la sortie est grande
Encoder
Decoder
Encoder
Decoder
Contexte
Reste que le contexte obtenu ainsi continue à présenter quelques inconvénients.
<s>
16. 16
Modèle encodeur-décodeur
J. DABOUNOU - FST DE SETTAT
visited
h3
the
h4
magical
h5
medina
h6
He
h2
ct = Ft(h1, h2, …, h7)
<s>
h1
</s>
h7
English encoder French decoder
h2
out
h3
out
h4
out
h5
out
h1
out
h6
out
h7
out
médinaIl a visité la magique </s>
Le contexte comme
combinaison des hs.
Partager le contexte sur tous les tokens.
Encoder
Decoder
Encoder
Decoder
Contexte
Une idée à développer consiste à utiliser le contexte comme entrée supplémentaire pour obtenir chaque mot du
décodeur.
<s>
17. EncoderEncoder
Decoder
Contexte
17
Modèle encodeur-décodeur
J. DABOUNOU - FST DE SETTAT
c1 = F1(h1, h2, …, h7)
c2 = F2(h1, h2, …, h7)
c3 = F3(h1, h2, …, h7)
c4 = F4(h1, h2, …, h7)
c5 = F5(h1, h2, …, h7)
c6 = F6(h1, h2, …, h7)
c7 = F7(h1, h2, …, h7)
English encoder French decoder
visited
h3
the
h4
magical
h5
medina
h6
He
h2
<s>
h1
</s>
h7
h2
out
h3
out
h4
out
h5
out
h1
out
h6
out
h7
out
médinaIl a visité la magique </s>
<s>
Le contexte comme
combinaison des hs, mais aussi
adapté aux tokens en sortie
𝐜t =
s=1,7
ats 𝐡s
ats 0 et
s=1,7
ats = 1
18. 18
MÉCANISME D'ATTENTION
J. DABOUNOU - FST DE SETTAT
c1 = F1(h1, h2, …, h7)
c2 = F2(h1, h2, …, h7)
c3 = F3(h1, h2, …, h7)
c4 = F4(h1, h2, …, h7)
c5 = F5(h1, h2, …, h7)
c6 = F6(h1, h2, …, h7)
c7 = F7(h1, h2, …, h7)
English encoder French decoder
visited
h3
the
h4
magical
h5
medina
h6
He
h2
<s>
h1
</s>
h7
MÉCANISME D'ATTENTION h2
out
h3
out
h4
out
h5
out
h1
out
h6
out
h7
out
médinaIl a visité la magique </s>
<s>
𝐜t =
s=1,7
ats 𝐡s
ats 0 et
s=1,7
ats = 1
19. 19
MÉCANISME D'ATTENTION
J. DABOUNOU - FST DE SETTAT
c1 = F1(h1, h2, …, h7)
c2 = F2(h1, h2, …, h7)
c3 = F3(h1, h2, …, h7)
c4 = F4(h1, h2, …, h7)
c5 = F5(h1, h2, …, h7)
c6 = F6(h1, h2, …, h7)
c7 = F7(h1, h2, …, h7)
English encoder French decoder
visited
h3
the
h4
magical
h5
medina
h6
He
h2
<s>
h1
</s>
h7
MÉCANISME D'ATTENTION h2
out
h3
out
h4
out
h5
out
h1
out
h6
out
h7
out
médinaIl a visité la magique </s>
<s>
𝐜t =
s=1,7
ats 𝐡s
ats 0 et
s=1,7
ats = 1
20. 20
Machine Translation avec Attention
J. DABOUNOU - FST DE SETTAT
English encoder French decoder
visited
h3
the
h4
magical
h5
medina
h6
He
h2
<s>
h1
</s>
h7
MÉCANISME D'ATTENTION
ats = softmax score 𝐡t
out
, 𝐡s pour s = 1,7
𝐜t =
s=1,7
ats 𝐡s
𝐡t
att
= tanh(𝐖ch
att
𝐜t + 𝐖hh
att
𝐡t
out
)
Calculer : 𝐡t
out
= tanh(𝐖hh
out
𝐡t−1
out
+ 𝐖xh
out
𝐳t)1
4
𝐳t=Softmax (𝐖hz
out
𝐡t
att
)5
2
3
score 𝐡t
out
, 𝐡s =
𝐡t
out T
𝐡s ∶ Produit scalaire
𝐡t
out
𝐖a 𝐡s ∶ Multiplicatif
𝐯a
T 𝐭𝐚𝐧𝐡(𝐖a[𝐡t
out
; 𝐡s ]) ∶ Concaténation
h2
out
h3
out
h4
out
h5
out
h1
out
h6
out
h7
out
médinaIl a visité la magique </s>
<s>
21. 21
Machine Translation avec Attention
J. DABOUNOU - FST DE SETTAT
English encoder French decoder
visited
h3
the
h4
magical
h5
medina
h6
He
h2
<s>
h1
</s>
h7
h1
out
Représente la phrase en anglais
<s>
Embedding
x1
Calculer : 𝐡1
out
= tanh(𝐖hh
out
𝐡7 + 𝐖xh
out
𝐱1)1
22. 22
Machine Translation avec Attention
J. DABOUNOU - FST DE SETTAT
English encoder French decoder
visited
h3
the
h4
magical
h5
medina
h6
He
h2
<s>
h1
</s>
h7
h1
out
MÉCANISME D'ATTENTION
a1s = softmax score 𝐡1
out
, 𝐡s pour s = 1,7
𝐜1 =
s=1,7
a1s 𝐡s
score 𝐡1
out
, 𝐡s =
𝐡1
out T
𝐡s ∶ Produit scalaire
𝐡1
out
𝐖a 𝐡s ∶ Multiplicatif
𝐯1
T
𝐭𝐚𝐧𝐡(𝐖a[𝐡1
out
; 𝐡s ]) ∶ Concaténation
2
3
<s>
Embedding
x1
Calculer : 𝐡1
out
= tanh(𝐖hh
out
𝐡7 + 𝐖xh
out
𝐱1)1
23. 23
Machine Translation avec Attention
J. DABOUNOU - FST DE SETTAT
English encoder French decoder
visited
h3
the
h4
magical
h5
medina
h6
He
h2
<s>
h1
</s>
h7
h1
out
MÉCANISME D'ATTENTION
a1s = softmax score 𝐡1
out
, 𝐡s pour s = 1,7
𝐜1 =
s=1,7
a1s 𝐡s
𝐡1
att
= tanh(𝐖ch
att
𝐜1 + 𝐖hh
att
𝐡1
out
)
score 𝐡1
out
, 𝐡s =
𝐡1
out T
𝐡s ∶ Produit scalaire
𝐡1
out
𝐖a 𝐡s ∶ Multiplicatif
𝐯1
T
𝐭𝐚𝐧𝐡(𝐖a[𝐡1
out
; 𝐡s ]) ∶ Concaténation
2
3
4
𝐳1=Softmax (𝐖hz
out
𝐡1
att
)5Sortie décodeur:
z1
<s>
Embedding
x1
Calculer : 𝐡1
out
= tanh(𝐖hh
out
𝐡7 + 𝐖xh
out
𝐱1)1
24. 24
Machine Translation avec Attention
J. DABOUNOU - FST DE SETTAT
English encoder French decoder
visited
h3
the
h4
magical
h5
medina
h6
He
h2
<s>
h1
</s>
h7
h1
out
MÉCANISME D'ATTENTION
a2s = softmax score 𝐡2
out
, 𝐡s pour s = 1,7
𝐜2 =
s=1,7
a2s 𝐡s
𝐡2
att
= tanh(𝐖ch
att
𝐜2 + 𝐖hh
att
𝐡2
out
)
score 𝐡2
out
, 𝐡s =
𝐡2
out T
𝐡s ∶ Produit scalaire
𝐡2
out
𝐖a 𝐡s ∶ Multiplicatif
𝐯1
T
𝐭𝐚𝐧𝐡(𝐖a[𝐡2
out
; 𝐡s ]) ∶ Concaténation
Calculer : 𝐡2
out
= tanh(𝐖hh
out
𝐡1
out
+ 𝐖xh
out
𝐳1)1
2
3
4
𝐳2=Softmax (𝐖hz
out
𝐡2
att
)5
z1
h2
out
<s>
Embedding
x1
z2
Sortie décodeur:
25. 25
Machine Translation avec Attention
J. DABOUNOU - FST DE SETTAT
English encoder French decoder
visited
h3
the
h4
magical
h5
medina
h6
He
h2
<s>
h1
</s>
h7
MÉCANISME D'ATTENTION
ats = softmax score 𝐡t
out
, 𝐡s pour s = 1,7
𝐜t =
s=1,7
ats 𝐡s
𝐡t
att
= tanh(𝐖ch
att
𝐜t + 𝐖hh
att
𝐡t
out
)
Calculer : 𝐡t
out
= tanh(𝐖hh
out
𝐡t−1
out
+ 𝐖xh
out
𝐳t)1
4
𝐳t=Softmax (𝐖hz
out
𝐡t
att
)5
2
3
score 𝐡t
out
, 𝐡s =
𝐡t
out T
𝐡s ∶ Produit scalaire
𝐡t
out
𝐖a 𝐡s ∶ Multiplicatif
𝐯a
T 𝐭𝐚𝐧𝐡(𝐖a[𝐡t
out
; 𝐡s ]) ∶ Concaténation
h2
out
h3
out
h4
out
h5
out
h1
out
h6
out
h7
out
médinaIl a visité la magique </s>
<s>
Sortie décodeur:
26. 26
Machine Translation avec Attention
J. DABOUNOU - FST DE SETTAT
visited
h3
the
h4
magical
h5
medina
h6
He
h2
<s>
h1
</s>
h7
MÉCANISME D'ATTENTION
h2
out
h3
out
h4
out
h5
out
h1
out
h6
out
h7
out
médinaIl a visité la magique </s>
<s>
ats = softmax score 𝐡t
out
, 𝐡s
pour s = 1,7
𝐜t =
s=1,7
ats 𝐡s
𝐜3 =
s=1,7
a3s 𝐡s
a3s 0 et
s=1,7
a3s = 1
h1 h2 h3 h4 h5 h6 h7
𝐜3
visité
visited the magical medinaHe<s> </s>
0
1
0.12 0.2 0.61 0.07 10-5 10-5 10-7a3s
27. 27
Machine Translation avec Attention
J. DABOUNOU - FST DE SETTAT
visited
h3
the
h4
magical
h5
medina
h6
He
h2
<s>
h1
</s>
h7
MÉCANISME D'ATTENTION
h2
out
h3
out
h4
out
h5
out
h1
out
h6
out
h7
out
médinaIl a visité la magique </s>
<s>
𝐜6 =
s=1,7
a6s 𝐡s
a6s 0 et
s=1,7
a6s = 1
h1 h2 h3 h4 h5 h6 h7
𝐜6
visited the magical medinaHe<s> </s>
0
1
10-8 10-6 10-4 0.05 0.79 0.15 10-8a3s
magique
ats = softmax score 𝐡t
out
, 𝐡s
pour s = 1,7
𝐜t =
s=1,7
ats 𝐡s
28. 28
Machine Translation avec Attention
J. DABOUNOU - FST DE SETTAT
visited
h3
the
h4
magical
h5
medina
h6
He
h2
<s>
h1
</s>
h7
+ + + ++ + +
médinaIl a visité la magique </s>
𝐜6 =
s=1,7
a6s 𝐡s
a6s 0 et
s=1,7
a6s = 1
h1 h2 h3 h4 h5 h6 h7
𝐜6
visited the magical medinaHe<s> </s>
0
1
10-8 10-6 10-4 0.05 0.79 0.15 10-8a3s
magique
Graphe des liaisons pertinentes
29. 29
Machine Translation avec Attention
J. DABOUNOU - FST DE SETTAT
Il
a
visité
la
médina
magique
</s>
<s>
He
visited
the
magical
medina
</s>
Matrice de distribution de l'attention
visited
h3
the
h4
magical
h5
medina
h6
He
h2
<s>
h1
</s>
h7
+ + + ++ + +
médinaIl a visité la magique </s>
Graphe des liaisons pertinentes