Dans cet article, mon objectif est de donner une explication de ce que sont les réseaux de pointeurs, tels que définis dans l’article « Réseaux de pointeurs » (c’est l’article décrivant le réseau de pointeurs pour la première fois je crois), et pourquoi ils sont utilisés. Ce travail est effectué dans le cadre de mon doctorat, qui est dans le domaine du Traitement du Langage Naturel (PNL).

J’écris vraiment ce genre de notes pour ma propre compréhension, cependant, j’espère que vous trouverez que vous pouvez en bénéficier également.

Je recommanderais d’abord de lire « Pointer Networks » d’Oriol Vinyals, Meire Fortunato et Navdeep Jaitly, puis de revenir ici pour les explications que je donne.

Dans la première partie de mon explication, je donne un aperçu des termes clés utilisés dans l’article.

Dans la deuxième partie, je donne un résumé de l’article.

En règle générale, lorsque je travaille sur l’apprentissage d’un article scientifique, la première étape que je fais est d’écrire tous les termes inconnus ou ambigus qui sont utilisés de nombreuses fois dans l’article ou qui semblent importants pour sa compréhension.

Je suis généralement ces étapes simples pour trouver une définition claire:

– Avec ctrl + f, je trouve toutes les occurrences des mots ambigus dans le papier que je lis. Avec le contexte, je peux généralement commencer à intuitionner une définition du mot.

– recherchez le mot sur Internet avec des mots clés soigneusement choisis

Voici quelques-uns des termes peu clairs que j’ai trouvés dans l’article:

– problèmes combinatoires:
Un problème combinatoire consiste à trouver, parmi un ensemble fini d’objets, un qui satisfait un ensemble de contraintes.

– jetons:
Dans un contexte de PNL, un jeton est un jeton qui satisfait un ensemble de contraintes ou de sous-mots dans un langage.
Dans cet article cependant, les jetons sont des éléments d’une séquence de sortie, qui peuvent être de deux sortes: les jetons « spéciaux » et les jetons réguliers.
> Dans le cas de jetons « spéciaux », ils représentent le début ou la fin de la séquence de sortie.
> Les jetons réguliers sont constitués à partir des indices utilisés pour discriminer les différents éléments d’une séquence d’entrée.

– dictionnaire de sortie:
Dans ce contexte, un dictionnaire de sortie est une liste de toutes les valeurs possibles qu’un jeton peut prendre.

Exemples d’une séquence de jetons et de leur séquence d’entrée correspondante, extraits de l’article :

Cp1={⇒, (1, 2, 4), (1, 4, 5), (1, 3, 5), (1, 2, 3), ⇐} & P1 = {P_1, . . . , P_5} dans le contexte du problème de coque convexe (l’un des 3 problèmes combinatoires présentés dans l’article).

« ⇒ » et « ⇐ » sont des jetons « spéciaux ». Remarquez comment ils sont placés au début et à la fin de notre séquence de jetons de sortie.

« (1, 2, 4) » ou « (1, 4, 5) » sont des jetons réguliers. Ils sont constitués de 3 indices qui servent à discriminer des éléments de la séquence d’entrée {P_1,. . . , P_5}.

Notez que ce qui suit n’a pas pu être possible:

Cp1={⇒, (1, 2, 8), (1, 4, 5), (1, 3, 5), (1, 2, 3), ⇐} & P1 = {P_1, . . . , P_5} dans le contexte du problème de coque convexe, car il n’y a pas de P_8 dans notre séquence d’entrée.

Résumé de l’article

Après avoir lu l’article une première fois et cherché les définitions ci-dessus, ma compréhension de l’article est la suivante:

Cet article se concentre sur les problèmes combinatoires.
Le but de l’auteur est de construire un modèle capable de donner une séquence de sortie Cp correcte, compte tenu d’une séquence d’entrée P de taille variable et d’un problème combinatoire associé.

Un tel modèle contraste apparemment avec un modèle basé sur un réseau de neurones exclusivement récurrent (RNN), où le modèle ne peut être entraîné et ensuite utilisé que sur des entrées de même taille.

Une fois que j’ai fini d’éliminer les termes ambigus, je lis généralement l’article sur lequel je travaille une deuxième fois, pour évaluer si ma compréhension est correcte ou fausse. Pour ce faire, j’écris souvent un petit résumé de ce que je pense être pertinent pour ma compréhension, pour chaque partie qui constitue l’article.

Aperçu de l’introduction:

rom extraite de l’article

Sur la figure 1, nous voyons un modèle classique basé sur RNN de séquence à séquence à côté d’un réseau Ptr (réseau de pointeurs).
D’après la description de la figure, nous voyons que le réseau Ptr est composé d’un RNN de codage d’un côté, et d’un réseau de génération de l’autre côté, par opposition à l’utilisation de deux RNN pour le modèle de séquence à séquence.

Le réseau de génération du réseau Ptr semble produire une distribution softmax sur les entrées à chaque étape, ce qu’on appelle le « pointeur ».

Aperçus des modèles:

Dans cette section, nous voyons un examen du modèle de séquence en séquence, du modèle d’attention d’entrée et enfin du modèle Ptr-Net.

Modèle A/Seq à seq:

Nous supposons que le lecteur sait ce que sont les RNN et comment ils sont utilisés pour créer un modèle seq-to-seq (sinon, je recommanderais de lire ceci et / ou ceci).

Les auteurs définissent la probabilité d’une séquence de sortie de jetons, comme le produit de la probabilité conditionnelle des jetons qui constituent notre sortie compte tenu des jetons qui les précèdent ainsi que de la séquence d’entrée.

Probabilité d’une séquence de sortie

Si notre Cp de sortie est constitué de 3 jetons, alors nous aurons m(P) = 3. Le symbole thêta représente les paramètres du modèle utilisé pour trouver cette probabilité.

Ici, le RNN utilisé pour générer la séquence de sortie (dite décodeur) modélise les probabilités conditionnelles associées aux jetons possibles, à chaque instant de sortie, compte tenu des jetons générés aux instants de sortie précédents.

Pendant l’entraînement, le modèle est entraîné pour générer la séquence de sortie appropriée et l’ensemble d’entraînement est utilisé en conséquence.

Formation des paramètres du modèle

Après avoir entraîné le modèle, nous l’utilisons pour trouver des solutions à des problèmes similaires à ceux de l’ensemble d’entraînement. C’est ce qu’on appelle le processus d’inférence.

Pendant l’inférence (lorsque le modèle est utilisé pour prédire une réponse au problème combinatoire), une procédure de recherche de faisceau est utilisée. Il modélise la meilleure séquence de sortie possible.

Principal à emporter:

Le modèle séquence à séquence ne fonctionne pas lorsqu’il est utilisé sur des entrées de taille différente. Il doit y avoir un modèle distinct pour chaque « n » / taille d’entrée.

Ma meilleure supposition est que cela est dû à la taille de la sortie définie lors de l’initialisation du modèle.
Plus précisément, le décodage RNN génère des états cachés à chaque instant de sortie. Ces états cachés sont utilisés de deux manières:
– en entrée pour le RNN à l’étape suivante
– pour calculer la sortie/jeton

Cette seconde utilisation de l’état caché est caractérisée par le produit scalaire avec un ensemble de poids W(S) qui convertit l’état caché en un vecteur de taille fixe, typiquement la taille du dictionnaire de sortie.

Calcul de la sortie au pas de temps t

La taille de W(S) étant fixée lors de l’initialisation, il est impossible pour le modèle de s’entraîner sur des problèmes avec différentes tailles de dictionnaire de sortie.

B / Entrée basée sur le contenu attention:

Le concept d’attention se manifeste dans cet article avec la formule:

Attention d’entrée basée sur le contenu

où e représente les états cachés du codeur, d les états cachés du décodeur, W1, W2 et v sont des paramètres du réseau d’attention.

Je connais déjà le concept d’attention en étudiant des modèles basés sur des transformateurs tels que BERT, qui utilise « l’attention Scaled Dot-Product ».

Bien que le mécanisme d’attention ici ne soit pas le même, l’objectif général derrière l’utilisation de l’attention est identique. L’objectif est de se concentrer sur les sous-parties de la séquence d’entrée. Pour ce faire, les auteurs concaténent une distribution normalisée sur les sorties ou états cachés du codeur aux états cachés du décodeur.

Cela contraste avec un modèle régulier de séquence à séquence, où le codeur ne donne que le dernier état caché comme entrée pour le décodeur.

Plats principaux à emporter:

Le mécanisme d’attention permet d’obtenir de meilleures performances par rapport au modèle régulier de séquence à séquence. Cependant, le problème des entrées de taille différente n’est pas résolu.

C /Ptr-Net:

L’idée derrière Ptr-Net est en fait assez simple. Il utilise la sortie du mécanisme d’attention pour modéliser la probabilité conditionnelle de chaque jeton.
En d’autres termes, l’étape où l’état caché est multiplié par un ensemble de poids W(S) est simplement ignorée.

Probabilités de modélisation Ptr-Net d’une séquence de sortie de jetons

Principal take-away :

L’utilisation de ce modèle permet de s’entraîner et de déduire sur des entrées de tailles différentes, tout en gardant un bon niveau de performance.

Le reste de l’article montre à quel point les différents modèles ci-dessus fonctionnent sur trois problèmes combinatoires différents.

Pensées de clôture:

Les articles scientifiques sont une très bonne source d’information, cependant, j’ai constaté par expérience qu’ils sont parfois un peu compliqués. Beaucoup d’informations doivent être transmises par une quantité limitée de texte. En conséquence, les auteurs ne peuvent pas tout expliquer, ils supposent que le lecteur a des connaissances de base sur le sujet d’intérêt.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.