Communications Mining
Plus récente (Latest)
False
Image de fond de la bannière
Guide du développeur Communications Mining
Dernière mise à jour 17 mai 2024

Comment les machines apprennent à comprendre les mots : guide des intégrations dans NLP

Les algorithmes d'apprentissage automatique de Communications Mining sont basés sur des modèles de Transformer pré-entraînés, qui apprennent des représentations sémantiques informatives de séquences de texte, appelées intégrations. Au cours des dernières années, les modèles Transformer ont atteint des résultats de pointe sur la majorité des tâches courantes de traitement des langages naturels (NLP).

Mais comment en sommes-nous arrivés ? Qu’est-ce qui a fait que le Transformer est le modèle de choix pour les intégrations d’entraînement ? Au cours de la dernière année, les plus grandes améliorations du NLP ont été dues aux progrès de l'apprentissage des intégrations de texte pré-entraînées non supervisées. Dans cet article, nous examinons l'historique des méthodes d'intégration et comment elles se sont améliorées au fil du temps.

Ce message permettra

  • Expliquez ce que sont les intégrations et comment ils sont utilisés dans les applications NLP courantes.
  • Présenter un historique des méthodes populaires pour les intégrations d'entraînement, y compris les méthodes anciennes comme Word2vec et les méthodes modernes basées sur les Transformers telles que BERT.
  • Discutez des points faibles des méthodes d'intégration et comment elles peuvent être résolues.

Arrière-plan

Qu'est-ce qu'une intégration ?​​

Imaginons que nous ayons un grand nombre de documents sur lesquels nous voulons effectuer une tâche, telle que la reconnaissance de l'intention de l' orateur. Les méthodes NLP les plus modernes utilisent des approches basées sur les réseaux neuronaux. Ceux-ci encodent d'abord chaque mot sous la forme d'un vecteur de nombres, appelé intégration. Le réseau neuronal peut alors prendre ces intégrations en tant qu'entrées afin d'effectuer la tâche donnée.

Supposons que le corpus contient 10 000 mots uniques. Nous avons pu encoder chaque mot à l'aide d'un intégration « One-Hot » (c'est-à-dire un vecteur clairsemé de 10 000 dimensionnels avec des 0 partout sauf dans la position unique correspondant au mot, où la valeur est de 1), par ex.

'a' = [1, 0, 0, ..., 0, 0]
...
'my' = [0, ..., 0, 1, 0, ..., 0]
...
'you' = [0, 0, ..., 0, 0, 1]'a' = [1, 0, 0, ..., 0, 0]
...
'my' = [0, ..., 0, 1, 0, ..., 0]
...
'you' = [0, 0, ..., 0, 0, 1]

Cependant, cette approche présente quelques problèmes :

  • Incorporations sémantiques non informatives
    • Avec l'approche d'encodage en un seul champ, tous les intégrations sont orthogonaux les uns aux autres. Idéalement, nous aimerions que les mots liés sémantiquement les uns aux autres aient des intégrations « semblables », mais les intégrations à un seul clic n'encodent pas directement les informations de similarité.
  • Haute dimensionnalité
    • Le fait d'avoir un vecteur de 10 000 dimensionnels pour chaque mot signifie que nous pouvons rapidement manquer de mémoire lors de l'utilisation d'une approche basée sur le réseau neuronal. Dans de nombreux domaines, 10 000 est considéré comme une petite taille de taxonomie - les taxonomies sont souvent 5 à 10 fois plus grandes.

Par conséquent, les intégrations denses de sous-dimensionnel sont plus populaires. En plus de résoudre les problèmes de mémoire des intégrations en un seul clic, ils peuvent également encoder l’idée selon laquelle deux mots sont sémantiquement similaires. Par exemple, supposons que nous ayons des intégrations denses à 4 dimensionnels. Nous pouvons souhaiter que les intégrations de « Apple » et « banana » soient similaires, par exemple

apple = [3.14, -0.03, -0.26, -2.27]
banana = [2.95, -0.18, -0.11, 0.09]apple = [3.14, -0.03, -0.26, -2.27]
banana = [2.95, -0.18, -0.11, 0.09]

Les deux ont une grande valeur positive en première position. Nous pouvons également souhaiter que les intégrations de « Apple » et « microsoft » soient similaires, par exemple

apple = [3.14, -0.03, -0.26, -2.27]
microsoft = [-0.12, 0.48, -0.05, -2.63]apple = [3.14, -0.03, -0.26, -2.27]
microsoft = [-0.12, 0.48, -0.05, -2.63]

Les deux ont une grande valeur négative en quatrième position.

Comment les intégrations sont-elles utilisées ?​

Les intégrations qui encodent les informations sémantiques sont cruciales dans toutes les applications NLP. Quelle que soit la qualité du modèle qui les utilise, si les intégrations ne sont pas informatives, le modèle ne pourra pas extraire les messages nécessaires pour faire des prédictions précises.

Classification

Pour les tâches de classification (par ex. l'analyse des sentiments), l'approche la plus courante consiste à agréger les intégrations d'un document en un seul vecteur, et à transmettre ce vecteur de document en entrée dans un réseau de flux chargé des prédictions (voir la Figure 1 pour une illustration).

L'intégration agrégée peut être calculée à l'aide d'une méthode heuristique simple (par ex. en prenant la moyenne des intégrations), ou elle peut elle-même être la sortie d'un réseau neuronal (par exemple, LSTM ou Transformer).

Exécution de l'analyse des sentiments en agrégeant l'intégration d'un document, et en utilisant cette intégration agrégée pour faire la prédiction

Recherche sémantique

Au-delà des tâches de classification, les intégrations sont également particulièrement utiles pour la recherche sémantique. Il s'agit de récupérer les résultats non seulement sur la base des mots-clés, mais également sur la signification sémantique de la requête de recherche.

La recherche sémantique fonctionne en calculant d'abord une intégration agrégée pour chaque document dans un corpus (encore une fois, la fonction d'agrégation peut être héuristique ou apprise). Ensuite, la requête de recherche donnée est également intégrée et les documents avec les intégrations les plus proches de l'intégration de la requête de recherche sont renvoyés (voir la figure 2 pour une illustration). La proximité est généralement mesurée selon une métrique qui compare la distance entre deux intégrations, par exemple la similarité cossine.

Effectuer une recherche sémantique en comparant l'intégration de la requête de recherche avec chaque document et en identifiant la correspondance la plus proche.

Un historique des méthodes d'intégration​

La plupart des méthodes d'intégration de mots sont entraînées en prenant un grand corpus de texte et en examinant les mots qui apparaissent couramment les uns à côté des autres dans les phrases du corpus. Par exemple, le mot « ordinateur » peut souvent apparaître à côté de mots tels que « clavier », « software » et « Internet » ; ces mots avoisinants communs sont indicatifs des informations que l'intégration de « ordinateur » doit encoder.

Cette section couvre quatre techniques populaires pour apprendre les intégrations, de word2vec au BERT basé sur Transformer.

Word2vec​

word2vec, publié en 2013, est sans doute la première méthode à avoir populaire des intégrations de mots pré-entraînés et à les avoir généralisé dans le NLP moderne. word2vec englobe deux approches pour les intégrations d'apprentissage :

  • Paquets de mots continus (voir un exemple) avec la Figure 3.
    • Prédiction d'un mot donné conditionné sur les k mots adjacents de chaque côté.
      • Cela se fait en projetant (c'est-à-dire multiplication de matrice) les encodages à un champ des mots adjacents aux intégrations denses de dimensions inférieures, en prenant la moyenne et en l'utilisant pour prédire le mot manquant.
  • Icône de la barre d'état (voir la Figure 4 pour un exemple).
    • Prévoir les k mots adjacents de chaque côté d'un mot donné.
      • Cela se fait en projetant (c'est-à-dire multiplate-forme) l'encodage en un seul champ (One-Hot coding) du mot donné jusqu'à un intégration dense de dimension inférieure, et son utilisation pour prédire les mots manquants.
Le paquet continu de mots word2vec

Le modèle de skipgram word2vec.

Les auteurs montrent plusieurs analogues linéaires relativement intuitifs entre les intégrations. Étant donné que deux mots x et y ont une relation spécifique, et un autre mot z dans la même « catégorie » que y, les auteurs trouvent le mot w dont l'intégration est la plus proche (en utilisant la distance de cosine) de emb(x)][emb(y)+ emb(z). Le mot w résultant a souvent la même relation avec z que x l’est avec y (voir le tableau 1 pour quelques exemples).

Table 1 : Analogies apprises par le modèle word2vec.

Xyzw=nearest(emb(x)−emb(y)+emb(z))
plus grandegrandePetitePlus petit
PariFranceItalieCitrix
UiPathArgentélémentZn

Glouve

Comme décrit ci-dessus, word2vec est basé sur une fenêtre glissante locale. Cela signifie que word2vec n'utilise pas directement les statistiques globales de co-occurrence des mots, sauf par le biais du nombre d'exemples d'apprentissage créés. Par exemple, les intégrations n’intègrent pas directement le fait que le mot « banque » apparaît plus fréquemment dans le contexte du mot « argent » que « river », autre que le fait que « banque » et « argent » apparaîtront ensemble dans plus d'exemples d'entraînement que « Bank » et « river ».

Par conséquent, un an après la publication de word2vec , est mise à disposition de Cloud, qui combine les avantages des approches basées sur des fenêtres glissantes locales et des approches globales (c’est-à-dire au niveau du corpus), le nombre de co-occurrences de mots. Il le fait en entraînant des intégrations de sorte que le nombre global de co-occurrences entre deux mots détermine la similarité de leurs intégrations.

D'abord, une matrice de co-occurrence globale X est créée, dont les entrées XR,j indiquent le nombre de fois que le mot j apparaît dans le contexte du mot i. Ensuite, l'objectif Cloud entraîne les intégrations de mots pour minimiser l'objectif des moindres carrées suivant :


où V est le dictionnaire, u sont des vecteurs mots, v sont des vecteurs contexte, et b et c sont des biais. f(Xi,j​) est une fonction de pondération permettant d'éviter d'accorder trop de poids aux cooccurrences avec des valeurs extrêmement faibles et extrêmement élevées. Une fois l'entraînement effectué, le mot final intégrant le mot i est Wi,j​=Ui​+Vi​.

Les intégrations GoVe surpassent considérablement Word2vec dans la tâche des analogues de mots (décrit ci-dessus) et sont légèrement meilleures pour la reconnaissance des entités nommées. Par conséquent, les vecteurs GoVe ont été les intégrations de mots pré-entraînés de prédilection pendant plusieurs années, et restent toujours populaires à ce jour.

Remarque :

Une principal point faible des méthodes présentées jusqu’à présent est qu’elles sont statiques, c’est-à-dire que l’intégration d’un mot donné est toujours la même. Par exemple, prenez le mot « banque », qui peut faire référence au bord d'une cours d'eau ou à une institution financière ; son intégration devrait encoder les deux significations.

Pour résoudre ce problème, des méthodes d'intégration contextuelles ont été développées. Ceux-ci ont une intégration différente pour chaque mot selon la séquence (par ex. phrase, document) dans lequel elle apparaît. Cette ligne de travail a changé la donne ; Il est maintenant extrêmement rare de trouver des méthodes de pointe qui ne reposent pas sur des intégrations contextuelles.

ELMo​

Au milieu des années 2010, les réseaux neuronaux récurrents (RNN) étaient les architectures les plus populaires pour la majorité des tâches NLP. Les RNN effectuent des calculs sur des séquences de texte d'une manière pas à pas, en lisant et en traitant chaque mot un par un. Elles mettent à jour un « état caché », qui garde une trace de la séquence entière jusqu'à présent.

L'une des premières techniques d'intégration contextuelle populaires a été DELMo, publiée en 2018. ElMo apprend les intégrations en pré-entraînant un modèle RNN bidirectionnel sur un grand corpus de langage naturel à l'aide d'un objectif de prédiction du mot suivant. Plus précisément, DELMo entraîne à la fois un LSTM empilé vers l'avant et vers l'arrière, en prédisant respectivement le mot suivant ou précédent, comme illustré à la figure 5.

Une fois entraînés, les pondérations des LSTM avant et arrière sont figées et les sorties sont concaténées à chaque étape de chaque couche. Les auteurs constatent que les différentes couches apprennent différents aspects du langage : les couches initiales modèlent les aspects de la syntaxe tandis que les couches ultérieures capturent les aspects dépendants du contexte de la signification des mots. Par conséquent, une moyenne pondérée spécifique à la tâche sur les couches est prise comme intégration pour chaque mot.

ElMo, affiché avec un LSTM bidirectionnel à deux couches.

À l’époque, DELMo a considérablement dépassé les méthodes de pointe précédentes dans un certain nombre de tâches, y compris la réponse aux questions, la reconnaissance des informations textuelles et l’analyse des sentiments.

BERT​

Dans le même temps que le développement d'ElMo, le (désormais célèbre) Transformer a été publié en tant qu'architecture pour effectuer la traduction automatique. Il remplace les calculs séquentiels des RNN par un mécanisme d' attention - cela calcule une représentation contextuelle de chaque mot en parallèle, et est donc beaucoup plus rapide à exécuter qu'un RNN.

On s'est rapidement rendu compte que l'architecture du Transformer pouvait être généralisée au-delà de la traduction automatique à d'autres tâches, y compris les intégrations d'apprentissage. BERT, publié en 2019, est l’une des premières méthodes d’intégration contextuelle, et sans doute les plus populaires, à être basée sur l’architecture de Transformer.

Cependant, contrairement aux méthodes présentées jusqu'à présent, BERT n'apprend pas directement les intégrations de mots. Au lieu de cela, il apprend les intégrations de jetons de « sous-mots ». Le principal problème lors de l'apprentissage des intégrations de mots est qu'un dictionnaire de taille fixe est requis ; sinon, nous manquons de mémoire. Au lieu de cela, BERT utilise un algorithme connu sous le nom de WordPiece pour jetoniser les phrases en unités de sous-mots. Cela signifie que les mots peuvent être divisés en jetons distincts, par exemple les mots {'wait', 'waiting', 'waiter'} peuvent être jetons labellisés sous la forme {['wait'], ['wait', '## ing'], ['wait', '##er']}, tous partageant la même racine mais avec des suffixes différents.

Le BERT est pré-entraîné à l'aide de deux fonctions d'objectif (illustrées à la figure 6) :

  • Modélisation du langage masqué
    • Certains jetons choisis au hasard sont supprimés de la séquence et le modèle est chargé de les prédire.
  • Prédiction de la phrase suivante
    • Deux séquences (masquées) sont concaténées, avec un jeton [CLS] spécial au début et un jeton [SEP] à la fin de chaque séquence. Le modèle doit ensuite prédire si le second suit directement le premier dans le corpus d'origine, en utilisant l'intégration de la couche finale du jeton [CLS].

Lors de l'exécution de tâches en aval, l'intégration CLS peut être utilisée pour des tâches au niveau de la phrase/du document, par ex. la reconnaissance des intentions ou l'analyse des sentiments, tandis que les intégrations de jetons individuels peuvent être utilisées pour des tâches au niveau des mots, par ex. la reconnaissance d'entité nommée.

Étant donné que le Transformer n'est pas une architecture séquentielle, la couche d'entrée n'est pas simplement une projection de l'encodage de jeton à un point à utiliser. Au lieu de cela, il s'agit de la somme de trois intégrations différentes :

  • Une projection de l'encodage de jeton à un point.
  • Une intégration positionnelle (c'est-à-dire une intégration de la position du jeton dans la séquence).
  • Une intégration de segment (c'est-à-dire si le jeton provient de la première séquence ou de la seconde, dans l'objectif de prédiction de la phrase suivante décrit ci-dessus).
BERT, affiché avec un mécanisme d'attention à une seule couche. En réalité, toutes les opérations d’attention se produisent en même temps, mais ici, elles sont affichées de façon séquentielle.

Une fois pré-entraîné, BERT est généralement « affiner » pour les tâches en aval (c’est-à-dire que ses pondérations sont ensuite mises à jour pour chaque tâche ; elles ne sont pas figées comme ElMo). Sur un certain nombre de tâches, y compris SQuAD (réponse aux questions) et la référence GETLUE, le BERT a dépassé considérablement les méthodes de pointe précédentes.

Le BERT (et ses variantes de suivi) ont révolutionné le champ de la NLP ; Il est maintenant extrêmement rare de trouver des méthodes de pointe qui ne reposent pas sur des intégrations contextuelles basées sur l’architecture de Transformer.

Faiblesses des méthodes d'intégration​

Comme indiqué tout au long de cet article, les avancées en matière d'intégrations de formation ont révolutionné la NLP. Cependant, il y a certaines erreurs à connaître lorsque vous travaillez avec des intégrations pré-entraînées.

Tout d'abord, l'intégration de modèles peut encoder, et même amplifier, les biais contenus dans les ensembles de données sur lesquels ils sont entraînés. Par exemple, il a été illustré que les intégrations peuvent encoder des Stéréotypes professionnels basés sur le genre, par exemple que les enfants sont associés à des tâches telles que les travaux au usage domestique, tandis que les utilisateurs sont associés à des tâches telles que la programmation informatique. Des recherches plus poussées ont illustré que l'intégration de modèles peut permettre d'extraire des données d'apprentissage de langage, de root(((((((((glogloandandand-and-and-(((((((((((((C Class Class))))))) ni))])), et d'autres idéologies malveillantes (auto-désinstallées) à partir des données de l'entraînement (training data). La résolution des modèles de langage est un domaine de recherche actif ; les moyens optimaux d'identifier et d'atténuer ces biais restent une question ouverte.

Deuxièmement, les méthodes modernes d'intégration contextuelle impliquent des modèles d'entraînement avec des centaines de millions de paramètres sur des clusters de milliers de GPU pendant plusieurs semaines. Cela peut être extrêmement onéreux, à la fois pour un plan financier et pour l'environnement. Il existe un large éventail de méthodes pour entraîner des modèles plus efficaces, comme nous l'avons précédemment examiné.

Résumé​

Ce post a présenté une introduction au concept d'« intégrations », ces vecteurs denses de nombres entraînés pour représenter la signification sémantique des séquences de texte. Ce message a

  • Explication des intégrations et de la façon dont elles sont utilisées dans les applications NLP courantes.
  • Présentation d’un historique des méthodes populaires pour les intégrations d’entraînement, y compris des méthodes traditionnelle comme word2vec et des méthodes modernes basées sur Transformer telles que BERT.
  • Discussion des points faibles des méthodes d'intégration et comment elles peuvent être résolues.

Cette page vous a-t-elle été utile ?

Obtenez l'aide dont vous avez besoin
Formation RPA - Cours d'automatisation
Forum de la communauté UiPath
Logo Uipath blanc
Confiance et sécurité
© 2005-2024 UiPath. All rights reserved.