Le mécanisme d’attention va étudier le rapport entre les mots d’une phrase. Sur quoi va-t-il se fonder ? Sur la phrase, qu’on va prendre enfin en compte ?
Pas du tout : le mécanisme d’attention provient des vecteurs eux-mêmes. On va regarder le rapport entre les mots de la phrase, mais en se fondant sur les informations données par les vecteurs.
On ne regarde pas la phrase, qui n’existe d’ailleurs en fait pas en soi : elle n’est là que comme assemblage d’éléments indépendants et au sens multiple, tels des individus dans la société capitaliste.
On part des vecteurs et on en assemble pour en former trois nouveaux :
– requête (query en anglais), soit Q : que recherche ce mot ?
Q représente la question que ce mot pose aux autres mots pour comprendre son contexte. Plus précisément, il sert à comparer ce mot avec les autres pour voir lesquels sont pertinents.
– clef (key en anglais), soit K : quelle information ce mot propose ?
K indique quelle information porte un mot, et l’utilité de cette information pour d’autres mots.
– valeur (value en anglais), soit V : quelle information sera transmise ?
V est le résultat de la combinaison de Q et K.
Reprenons notre exemple qui est « José aime danser la cumbia ».
Disons qu’on a trois dimensions, pour trois aspects : est-ce un verbe, un nom, un article, etc. ?
Ce mot est-il important pour l’action principale ?
A-t-il une relation forte avec d’autres mots ?
On est là pour l’instant hors de la phrase en tant que telle.
Mot | Query / Q (Ce qu’il cherche) | Key /K (Ce qu’il propose) |
---|---|---|
José | [0.8, 0.2, 0.5] | [0.9, 0.1, 0.3] |
aime | [0.6, 0.7, 0.8] | [0.7, 0.6, 0.9] |
danser | [0.5, 0.9, 0.4] | [0.4, 0.8, 0.6] |
la | [0.3, 0.2, 0.1] | [0.2, 0.3, 0.2] |
cumbia | [0.7, 0.3, 0.9] | [0.8, 0.4, 0.7] |
Maintenant on va vers les éléments de la phrase, en prenant pour deux mots leurs Q et K.
Avec eux, on obtient V, soit un score qui va déterminer le « poids » pour le mécanisme d’attention. L’intelligence artificielle va accorder plus d’importance à certains rapports en fonction de ce poids.
Voici un exemple pour « aime ».
Comparaison Q avec K | Calcul | Score d’attention |
---|---|---|
aime avec José (Q aime · K José) | (0.6×0.9)+(0.7×0.1)+(0.8×0.3) = 0.95 | Lien fort |
aime avec aime (Q aime · K aime) | (0.6×0.7)+(0.7×0.6)+(0.8×0.9) = 1.51 | (Lien avec soi-même) |
aime avec danser (Q aime · K danser) | (0.6×0.4)+(0.7×0.8)+(0.8×0.6) = 1.34 | Lien fort |
aime avec la (Q aime · K la) | (0.6×0.2)+(0.7×0.3)+(0.8×0.2) = 0.46 | Lien faible |
aime avec cumbia (Q aime · K cumbia) | 0.6×0.8)+(0.7×0.4)+(0.8×0.7) = 1.22 | Lien moyen |
Il faut bien comprendre que K et Q sont déterminés par l’embedding. Ils sont totalement indépendants de la phrase.
Autrement dit, les poids d’attention ne sont pas influencés par la phrase étudiée en elle-même. Ils sont issus de l’entraînement général du modèle sur un large corpus de textes.
Ils ne changent pas en fonction de la phrase analysée, ils ne sont pas recalculés ou ajustés pour chaque nouvelle phrase. Ils ne dépendent pas de la phrase actuelle, mais du modèle entraîné sur un large corpus.
C’est ici que commence le bricolage pour se rapprocher du sens de la phrase, sans jamais reconnaître la phrase en tant que tel.
Le modèle Transformer est anti-synthèse : il s’appuie sur des éléments-briques pour étudier un agrégat formé d’interactions de ces éléments-briques.
Contournant la phrase, qui est la qualité, le modèle Transformer cherche alors pour s’en sortir à s’appuyer sur la quantité. Le mécanisme d’attention est ainsi « multi-têtes ».
La démarche est alors de multiplier les K par les Q.
Certaines données des vecteurs sont privilégiées par rapport à d’autres et on a alors 8, 12, jusqu’à 96 « têtes » d’attention consistant en des poids obtenus au moyen de KxQ.
Ces têtes visent par exemple les relations syntaxiques, celles au sein de la phrase, celles avec les autres phrases s’il y en a, la présence de pronoms, la place des mots, etc.
Tout cela n’est pas choisi en cours de route, mais a été enregistré au préalable dans l’intégration de millions et de millions de documents.
En ingurgitant un nombre immense de textes, l’intelligence artificielle a appris à valider certaines têtes plus que d’autres. C’est purement statistique.
Prenons ici un exemple, avec la phrase « Le chat dort ». Imaginons qu’on ait eu un embedding de quatre dimensions.
Mot | Embedding |
---|---|
Le | [0.2, 0.8, -0.5, 0.3] |
chat | [0.9, 0.1, -0.7, 0.4] |
dort | [0.6, -0.2, 0.3, 0.7] |
Le Transformer ne comprend pas l’ordre des mots. On va alors avoir une tête qui réalise une analyse de position, qui a la même dimension que l’embedding.
Position | Positional Encoding |
---|---|
1 Le | [0.01, 0.99, -0.02, 0.03] |
2 chat | [0.02, 0.98, -0.04, 0.06] |
3 dort | [0.03, 0.97, -0.06, 0.09] |
On additionne ensuite l’embedding et le Positional Encoding pour obtenir une représentation finale.
Mot | Embedding + Positional Encoding |
---|---|
Le | [0.21, 1.79, -0.52, 0.33] |
chat | [0.92, 1.09, -0.74, 0.46] |
dort | [0.63, 0.77, 0.24, 0.79] |
Chaque tête d’attention avec ses poids travaille de manière indépendante des autres, traitant des représentations différentes de la même phrase.
Ces têtes d’attention ne sont non plus pas hiérarchisées, aucune tête n’est plus importante que l’autre dans le sens strict. Elles sont toutes utilisées simultanément pour apprendre des aspects variés des relations entre les mots dans la phrase.
Le tout est alors empilé; cela appelle la concaténation. On a alors un vecteur avec entre 512 et 2304 « dimensions ».
C’est ainsi que le mécanisme d’attention enveloppe la phrase, à partir de ses éléments, comme depuis l’extérieur.
-> Retour au dossier sur
L’intelligence artificielle, prolongement de la cybernétique