Un article expliquant l'intuition derrière "l'intégration positionnelle" dans les modèles de transformateurs du célèbre document de recherche - "Attention Is All You Need".
L'introduction de l'architecture de transformateur dans le domaine de l'apprentissage en profondeur a sans aucun doute ouvert la voie à la révolution silencieuse, en particulier dans les branches du TAL. L'une des parties les plus intégrantes de l'architecture du transformateur est "l'intégration positionnelle" qui donne aux réseaux de neurones la capacité de comprendre l'ordre des mots et leurs dépendances dans une longue phrase.
Cependant, nous savons que RNN et LSTM, qui ont été introduits bien avant les transformateurs, avaient la capacité de comprendre l'ordre des mots même sans intégration positionnelle. Ensuite, vous auriez un doute évident sur la raison pour laquelle ce concept a été introduit dans les transformateurs et sur le véritable avantage derrière l'incitation à cette notion. Laissez-nous conceptualiser toutes ces informations dans cet article.
L'intégration est un processus utilisé dans le traitement du langage naturel pour convertir du texte brut en vecteurs mathématiques. En effet, un modèle d'apprentissage automatique ne pourra pas consommer directement une entrée au format texte pour les différents processus de calcul internes.
Le processus d'intégration effectué par des algorithmes tels que Word2vec, Glove, etc. est appelé intégration de mots ou intégration statique.
Ici, un grand corpus de texte contenant beaucoup de mots est passé à l'intérieur d'un modèle pour le processus de formation. Le modèle attribuera une valeur mathématique correspondante à chaque mot en supposant que les mots qui apparaissent plus fréquemment à proximité les uns des autres sont similaires. Après ce processus, les valeurs mathématiques dérivées sont utilisées pour d'autres calculs.
Par exemple,
Considérez que notre corpus de texte avait 3 phrases comme mentionné ici-
Ici, nous pouvons voir que les mots "King" et "Queen" apparaissent fréquemment. Par conséquent, le modèle supposera qu'il pourrait y avoir des similitudes entre ces mots. Lorsque ces mots sont transformés en valeurs mathématiques, ils seront placés à une petite distance lorsqu'ils seront représentés dans un espace multidimensionnel.
Source image : Illustré par l'auteur
Imaginez qu'il y ait un autre mot "Road" alors logiquement il n'apparaîtra pas plus fréquemment avec "King" et "Queen" dans un grand corpus de texte. Par conséquent, ce mot sera placé loin l'un de l'autre dans l'espace.
Source image : Illustré par l'auteur
Mathématiquement, un vecteur est représenté à l'aide d'une séquence de nombres où chaque nombre représente la grandeur du mot dans une dimension particulière.
Par exemple,
Nous avons représenté le mot "King" en 3 dimensions ici. Par conséquent, il peut être hypothétiquement représenté dans un espace [0.21,0.45,0.67] .
Le mot "Queen" peut être hypothétiquement représenté par [0.24,0.41,0.62] .
Le mot "Route" peut être hypothétiquement représenté par [0.97,0.72,0.36] .
Comme nous l'avons vu dans la partie d'introduction, le besoin d'intégration positionnelle est de faire en sorte que le réseau de neurones comprenne l'ordre et la dépendance positionnelle dans la phrase.
Par exemple, considérons les phrases suivantes-
Phrase 1 - "Bien que Sachin Tendulkar n'ait pas atteint un siècle aujourd'hui, il a amené l'équipe à une position gagnante".
Phrase 2 - "Bien que Sachin Tendulkar ait atteint un siècle aujourd'hui, il n'a pas été en mesure d'amener l'équipe à une position gagnante".
Les deux phrases se ressemblent car elles partagent la plupart des mots, mais la signification intrinsèque des deux est très différente. L'ordre et la position d'un mot comme "pas" ont changé tout le contexte de l'information véhiculée ici.
Par conséquent, la compréhension des informations de position est très critique lorsque vous travaillez sur des projets NLP. Si le modèle comprend mal le contexte en utilisant simplement les nombres dans un espace multidimensionnel, cela peut entraîner de graves conséquences, en particulier dans les modèles prédictifs.
Afin de surmonter ce défi, des architectures de réseaux de neurones telles que RNN (Recurrent Neural Network) et LSTM (Long Term Short Term Memory) ont été introduites. Dans une certaine mesure, ces architectures ont très bien réussi à comprendre les informations de position. Le principal secret de leur succès est qu'ils essaient d'apprendre de longues phrases en préservant l'ordre séquentiel des mots. En plus de cela, ils auront des informations concernant les mots qui sont placés très près du "mot d'intérêt" et les mots qui sont placés très loin du "mot d'intérêt".
Par exemple,
Considérez la phrase suivante-
"Sachin est le plus grand joueur de cricket de tous les temps."
Source image : Illustré par l'auteur
Les mots soulignés de couleur rouge sont le "mot d'intérêt". C'est le mot que le réseau de neurones (RNN/LSTM) essaie d'apprendre à travers des processus mathématiques complexes tels que l'intégration. Nous pouvons voir ici que le "mot d'intérêt" est parcouru séquentiellement selon le texte original.
De plus, ils peuvent mémoriser la dépendance entre les mots en se souvenant des « mots de contexte » . Ici, les mots de contexte sont ceux qui sont placés près du « mot d'intérêt ». A titre de démonstration simple, on peut considérer les mots de contexte comme les mots soulignés par la couleur verte dans l'image suivante lors de l'apprentissage de chaque « mot d'intérêt » .
Source image : Illustré par l'auteur
Grâce à ces techniques, RNN/LSTM peut comprendre les informations de position dans un grand corpus de texte.
Tout va bien. Droit?
Alors, quel est le vrai problème ici ?
Le vrai problème est le parcours séquentiel des mots dans un grand corpus de texte. Imaginez que nous ayons un très grand corpus de texte avec 1 million de mots, il faudra beaucoup de temps pour parcourir séquentiellement chacun des mots. Parfois, il n'est pas possible de se permettre autant de temps de calcul pour former les modèles.
Pour surmonter ce défi, une nouvelle architecture avancée a été introduite - "Transformers".
L'une des caractéristiques importantes de l'architecture de transformateur est qu'elle peut apprendre un corpus de texte en traitant tous les mots en parallèle. Même si vous avez 10 mots ou 1 million de mots, peu importe la longueur du corpus.
Source image : Illustré par l'auteur
Source image : Illustré par l'auteur
Maintenant, il y a un défi associé à ce traitement parallèle des mots. Étant donné que tous les mots sont accessibles simultanément, les informations de dépendance seront perdues. Par conséquent, le modèle ne pourra pas se souvenir du "contexte" d'un mot particulier et les informations concernant la relation entre les mots ne peuvent pas être conservées avec précision. Ce problème nous ramène à nouveau au défi initial de préserver la dépendance contextuelle bien que le temps de calcul/apprentissage du modèle soit considérablement réduit.
Maintenant, comment pouvons-nous faire face à cette situation ?
La solution est "l'intégration positionnelle".
Au départ, lorsque ce concept a été introduit, les chercheurs étaient très désireux de dériver une méthode optimisée qui pourrait préserver les informations de position dans une architecture de transformateur.
La première méthode essayée dans le cadre de cette expérience d'essais et d'erreurs était "l'intégration positionnelle basée sur l'index des mots" .
Ici, l'idée était d'introduire un nouveau vecteur mathématique avec ce vecteur de mot qui peut contenir l'index d'un mot particulier.
Source image : Illustré par l'auteur
Supposons qu'il s'agit de la représentation des mots dans l'espace multidimensionnel-
Source image : Illustré par l'auteur
Après avoir ajouté le vecteur positionnel, la magnitude et la direction peuvent modifier la position de chaque mot comme ceci :
Source image : Illustré par l'auteur
L'un des gros inconvénients associés à cette technique est que si la longueur de la phrase est très grande, l'amplitude du vecteur positionnel augmentera également proportionnellement. Disons qu'une phrase a 25 mots, puis le premier mot sera ajouté avec un vecteur positionnel d'une magnitude de 0 et le dernier mot sera ajouté avec un vecteur positionnel d'une magnitude de 24. Cette grande disparité pourrait poser problème lorsque nous projettent ces valeurs dans des dimensions supérieures.
Une autre technique essayée pour réduire la grande ampleur du vecteur positionnel est "l'intégration positionnelle basée sur la fraction de longueur de la phrase" .
Ici, la valeur fractionnaire de chaque mot par rapport à la longueur de la phrase est calculée comme une grandeur du vecteur positionnel.
La valeur fractionnaire est calculée à l'aide de la formule-
Valeur = 1/N-1
Par exemple,
Considérons cette phrase-
Source image : Illustré par l'auteur
Dans cette technique, la magnitude maximale du vecteur positionnel peut être limitée à 1 quelle que soit la longueur de la phrase. Mais, il y a une grosse faille dans ce système.
Si nous comparons 2 phrases de longueurs différentes, la valeur d'intégration d'un mot à une position particulière sera différente. Un mot ou une position particulière doit posséder la même valeur d'intégration dans tout le corpus de texte pour faciliter la compréhension de son contexte. Si le même mot dans différentes phrases possède différentes valeurs d'incorporation, alors représenter les informations de l'ensemble du corpus de texte dans un espace multidimensionnel deviendra une tâche très complexe. Même si nous obtenons un espace aussi complexe, il y a de fortes chances que le modèle s'effondre à un moment donné en raison de la distorsion d'un trop grand nombre d'informations. Par conséquent, cette technique a été éliminée des progrès ultérieurs pour l'intégration positionnelle dans les transformateurs.
Enfin, les chercheurs ont mis au point un système d' "intégrations positionnelles basées sur la fréquence" qui a été acclamé par la critique dans le monde entier et finalement intégré à l'architecture du transformateur et mentionné dans le célèbre livre blanc - "L'attention est tout ce dont vous avez besoin" .
Selon cette technique, les chercheurs recommandent une manière unique d'intégrer les mots en fonction de la fréquence des ondes en utilisant la formule suivante-
Source image : Illustré par l'auteur
Où,
Source image : Illustré par l'auteur
Source image : Illustré par l'auteur
Source image : Illustré par l'auteur
Étant donné que la hauteur de la courbe dépend de la position du mot représenté sur l'axe des x, la hauteur de la courbe peut être utilisée comme approximation des positions des mots.
Si 2 mots sont de même hauteur alors on peut considérer que leur proximité dans la phrase est très élevée.
De même, si 2 mots sont de hauteurs radicalement différentes alors on peut considérer que leur proximité dans la phrase est très faible.
Selon notre exemple de texte - "Sachin est un grand joueur de cricket" ,
Pour le mot "Sachin" ,
En appliquant la formule,
Source image : Illustré par l'auteur
Pour je =0,
PE(0,0) = sin(0/10000^2(0)/3)
PE(0,0) = sin(0)
PE(0,0) = 0
Pour je =1,
PE(0,1) = cos(0/10000^2(1)/3)
PE(0,1) = cos(0)
PE(0,1) = 1
Pour je =2,
PE(0,2) = sin(0/10000^2(2)/3)
PE(0,2) = sin(0)
PE(0,2) = 0
Pour le mot "Génial",
En appliquant la formule,
Source image : Illustré par l'auteur
Pour je =0,
PE(3,0) = sin(3/10000^2(0)/3)
PE(3,0) = sin(3/1)
PE(3,0) = 0,05
Pour je =1,
PE(3,1) = cos(3/10000^2(1)/3)
PE(3,1) = cos(3/436)
PE(3,1) = 0,99
Pour je =2,
PE(3,2) = sin(3/10000^2(2)/3)
PE(3,2) = sin(3/1.4)
PE(3,2) = 0,03
Source image : Illustré par l'auteur
Ici, la valeur maximale sera plafonnée à 1 (puisque nous utilisons des fonctions sin/cos). Par conséquent, il n'y a pas de place pour les vecteurs positionnels de grande magnitude, ce qui était un problème dans les techniques antérieures.
De plus, les mots très proches les uns des autres peuvent tomber à des hauteurs similaires à des fréquences plus basses et leur hauteur sera un peu différente à des fréquences plus élevées.
Si les mots sont peu proches les uns des autres, leur hauteur sera très différente même à des fréquences plus basses et leur différence de hauteur augmentera à mesure que la fréquence augmente.
Par exemple,
Considérez la phrase - "Le roi et la reine marchent sur la route."
Les mots "King" et "Road" sont placés loin l'un de l'autre.
Considérez que ces 2 mots ont des hauteurs approximativement similaires après l'application de la formule de fréquence des ondes. Lorsque nous atteignons des fréquences plus élevées (telles que 0), leurs hauteurs deviennent plus dissemblables.
Source image : Illustré par l'auteur
Source image : Illustré par l'auteur
Source image : Illustré par l'auteur
Les mots "King" et "Queen" sont placés à une distance proche.
Ces 2 mots seront placés à une hauteur similaire dans les basses fréquences (comme 2 ici). Lorsque nous atteignons des fréquences plus élevées (telles que 0), leur différence de hauteur aurait augmenté un peu pour la différenciation.
Source image : Illustré par l'auteur
Mais nous devons noter que si les mots ont moins de proximité, leurs hauteurs différeront considérablement lorsque nous progressons vers des fréquences plus élevées. Si les mots sont très proches, leurs hauteurs ne différeront que légèrement lorsque nous progresserons vers des fréquences plus élevées.
Grâce à cet article, j'espère que vous avez acquis une compréhension intuitive des calculs mathématiques complexes derrière l'intégration positionnelle dans l'apprentissage automatique. En bref, nous avons discuté de la postulation derrière le concept de "Embedding", de certains de ses différents types et de la nécessité de mettre en œuvre l'intégration positionnelle pour atteindre certains objectifs.
Pour les passionnés de technologie dont le domaine d'intérêt est "le traitement du langage naturel", je pense que ce contenu sera utile pour comprendre en quelques mots certains des calculs sophistiqués. Pour des informations plus détaillées, vous pouvez vous référer au document de recherche renommé - "Attention is all you need" (j'ai ajouté l'ul pour accéder à ce document de recherche dans la section de référence).