www.ITNetwork.fr

Le Blog > Comment marche Bert ?

— Hugo Abraham

Comment marche Bert ?

Bert est l’architecture de deep learning dont on susurre le nom partout sans comprendre comment il fonctionne. Il a atteint une certaine domination en NLP mais son fonctionnement semble peu intuitif Ă  beaucoup. Pour percer Ă  jour ce modĂšle hĂ©gĂ©monique nous allons observer ce qui le distingue de ceux qu’il remplace.

Comment fonctionne Bert, le modÚle qui a changé le NLP ?

Deux changements majeurs sĂ©parent Bert des modĂšles classiques et le rendent plus performant. Le premier est la maniĂšre dont Bert enchĂąsse(1) une sĂ©quence (souvent une phrase) dans une matrice, la seconde est l’utilisation de l’algorithme Transformers pour mettre en interaction tous les jetons de la sĂ©quence.

Les modĂšles prĂ©cĂ©dents utilisaient une reprĂ©sentation assez simple des jetons (gĂ©nĂ©ralement leur indice dans le vocabulaire extrait du jeu d’entraĂźnement). Les jetons Ă©taient analysĂ©s en relation avec tous les jetons qui les avaient prĂ©cĂ©dĂ©s dans la sĂ©quence, Ă  la maniĂšre dont nous pourrions lire un texte. VoilĂ  pourquoi la maniĂšre standard d’entraĂźner ce modĂšle est de lui faire prĂ©dire le jeton Ă  ajouter Ă  une sĂ©quence. Bien que puissant, ce modĂšle a du mal Ă  capturer les relations entre jetons Ă©loignĂ©s dans la sĂ©quence, plus encore les relations au delĂ  du bilatĂ©ral. Enfin, la position du jeton dans la sĂ©quence n’a que peu d’influence. Voyons comment Bert parvient Ă  rĂ©soudre chacune de ces embĂ»ches, en commençant par la derniĂšre.

C’est avant mĂȘme la prĂ©sentation de la sĂ©quence Ă  l’analyse que Bert intĂšgre la position, juste aprĂšs l’enchĂąssement de la sĂ©quence. Le but de cette Ă©tape est de construire une reprĂ©sentation numĂ©rique la plus complĂšte possible de la sĂ©quence. Assez naturellement on part de la reprĂ©sentation de chaque jeton par sa position dans la liste de tous les jetons, appelĂ© le vocabulaire du modĂšle. ‘lorem ipsum dolor sit amet’ devient donc [‘lorem’, ‘ipsum’, ‘dolor’, ‘sit’, ‘amet’] puis [31, 22, 12, 972, 442]. Jusqu’ici rien de trĂšs nouveau. Classiquement on dĂ©rive une reprĂ©sentation matricielle de la sĂ©quence en empilant des vecteurs unitaires correspondant Ă  chaque jetons: ‘lorem’ le 34 jeton est donc reprĂ©sentĂ© par le vecteur \( e^{(34)} \) qui a pour Ă©lĂ©ments 0 partout sauf en position 34 oĂč se trouve un 1. On les Ă©crits donc \( e^{(34)}_j = \delta_{34,j} \) avec \( j\in{ 0, n_{vocab}-1} \). Chaque vecteur-jeton est alors orthogonal aux autres et la matrice dans laquelle est enchĂąssĂ©e la sĂ©quence ne comporte que des zĂ©ros et des uns (ce qu’on appelle one hot encoding). Si ce procĂ©dĂ© semble naturel, il dissimule en rĂ©alitĂ© une hypothĂšse, que les jetons soient orthogonaux, i-e que la matrice ne contiennent que des zĂ©ros et des uns. Or l’objectif de l’apprentissage automatique est de limiter les suppositions. A cette fin, Bert considĂšre les Ă©lĂ©ments \( e^{(i)}_j \) (reprĂ©sentant le \( j^{Ăšme} \) Ă©lĂ©ment du \( i^{Ăšme} \) jeton du vocabulaire) comme des paramĂštres du modĂšle. C’est Ă  dire que ces Ă©lĂ©ments feront l’objet d’une rĂ©tropropagation pendant l’entraĂźnement; ils seront appris par le modĂšle. Il en rĂ©sulte que le vocabulaire s’adapte au jeu d’entraĂźnement, et renferme plus d’informations qu’un simple annuaire. N’oublions pas cependant notre objectif : intĂ©grer la position des jetons dans la reprĂ©sentation de la sĂ©quence. Nous dĂ©sirons que le vecteur reprĂ©sentant un jeton dĂ©pende de la position du jeton dans la sĂ©quence. Pour cela les auteurs de Bert ajoutent une matrice de position Ă  la matrice d’enchĂąssement. Nous nous contenterons ici de dire que cette matrice a pour caractĂ©ristique que chaque ligne soit diffĂ©rente selon une fonction prĂ©cise. Chaque vecteur-jeton est donc modifiĂ© en fonction de sa position dans la sĂ©quence. Le modĂšle possĂšde alors une reprĂ©sentation riche de chaque sĂ©quence; il dispose de beaucoup d’informations et pourra en extraire de meilleures prĂ©dictions. Pour plus d’informations au sujet de l’enchĂąssement et de Bert en gĂ©nĂ©ral on se reportera au trĂšs bon article de Miguel Rodrigo Calvo.

Revenons aux deux premiers manquements des modĂšles classiques, les interactions distantes et multilatĂ©rales. C’est le rĂŽle des bloc de transformers. Leur objectif est de projeter la matrice reprĂ©sentant la sĂ©quence de sorte Ă  ce que chaque jeton interagisse avec tous les autres, ceci est classiquement le rĂŽle du produit scalaire entre chaque vecteur-jeton :

\[ e^{(i)}\dot e^{(j)} = e^{(i)}_k P_{kl} e^{(j)}_l \]

oĂč la matrice P joue le rĂŽle de mĂ©trique. Ie, la matrice P mesure la proximitĂ© entre deux jetons. En gĂ©omĂ©trie euclidienne, sur du plat quoi, \( P_{kl} = \delta_{kl} \), et on s’ennuie. Ici au contraire, la gĂ©omĂ©trie de l’espace des jetons est inconnue; la trouver est le but de l’entraĂźnement. En la trouvant, ou plus certainement en l’approximant, le modĂšle Ă©tablit quels jetons sont “proches” les uns des autres, c’est Ă  dire lesquels font unitĂ© de sens. Ce processus est itĂ©rĂ©, brassant les vecteurs-jetons Ă  chaque reprise et approximant un nouveau mĂ©trique. Ainsi on obtient une information sur les groupes de jetons, sur les proximitĂ©s conditionnelles, c’est Ă  dire des interactions Ă  plusieurs jetons. Voici le coeur vĂ©ritable de la supĂ©rioritĂ© de Bert sur ses successeurs, d’oĂč sa prĂ©sence dans le nom mĂȘme. La prĂ©sentation ici faite de l’attention Ă  tĂȘte multiple (le vrai nom de ce morceau d’algorithme), n’a pour but que d’en faire sentir l’objectif, pour une discussion moins vulgarisante et plus fidĂšle Ă  l’article original, on se reportera Ă  un article d’Anusha Lihala. Attention, elle prĂ©sente l’attention dans son ensemble. Le passage qui nous concerne est Ă  trouver dans la derniĂšre partie.

Bert assoit donc sa supĂ©rioritĂ© par une mise en relation intelligente de tous les jetons, ainsi qu’en traitant leur enchĂąssement comme un paramĂštre. On voit alors le coĂ»t en calcul et la quantitĂ© de donnĂ©es faramineuse nĂ©cessaire pour informer le modĂšle. C’est le prix Ă  payer pour la finesse d’analyse d’un modĂšle qui a brutalement propulsĂ© la comprĂ©hension du langage Ă  un niveau de prĂ©cision qui lui ouvre des opportunitĂ©s incroyables. Le modĂšle est prĂȘt, il ne reste plus qu’à l’appliquer.

Notes

  1. J’espĂ©re ainsi traduire le terme anglais embedding, bien qu’il signifie littĂ©ralement “mettre au lit”.