Apprentissage de plongements lexicaux par une approche réseaux complexes (Complex networks based word embeddings) (2019)

Abstract: La littérature des réseaux complexes a montré la pertinence de l’étude de la langue sous forme de réseau pour différentes applications : désambiguïsation, résumé automatique, classification des langues, etc. Cette même littérature a démontré que les réseaux de co-occurrences de mots possèdent une structure de communautés latente. Nous formulons l’hypothèse que cette structuration du réseau sous forme de communautés est utile pour travailler sur la sémantique d’une langue et introduisons donc dans cet article une méthode d’apprentissage de plongements originale basée sur cette hypothèse. Cette hypothèse est cohérente avec la proximité qui existe entre la détection de communautés sur un réseau de co-occurrences et la factorisation d’une matrice de co-occurrences, méthode couramment utilisée pour l’apprentissage de plongements lexicaux. Nous décrivons notre méthode structurée en trois étapes : construction et pré-traitement du réseau, détection de la structure de communautés, construction des plongements de mots à partir de cette structure. Après avoir décrit cette nouvelle méthodologie, nous montrons la pertinence de notre approche avec des premiers résultats d’évaluation sur les tâches de catégorisation et de similarité. Enfin, nous discutons des perspectives importantes d’un tel modèle issu des réseaux complexes : les dimensions du modèle (les communautés) semblent interprétables, l’apprentissage est rapide, la construction d’un nouveau plongement est presque instantanée, et il est envisageable d’en expérimenter une version incrémentale pour travailler sur des corpus textuels temporels.

## introduction dans l'état de l'art de l'apprentissage de plongements lexicaux, on recense de nombreuses approches basées sur une matrice de co-occurrences termes-termes construite en utilisant de grands corpus @xcite . les auteurs factorisent ensuite cette matrice creuse de façon à obtenir un nouvel espace dans lequel chaque terme est représenté par un vecteur dense. dans le domaine des réseaux complexes, ces matrices de co-occurrences sont appelées graphes ou réseaux. l'étude du langage naturel par le prisme des réseaux complexes n'est pas une science nouvelle. l'état de l'art du domaine utilise également de grands corpus pour construire des réseaux @xmath0, e) tels que chaque noeud @xmath1, et un lien (u, v) ∈ e entre deux noeuds représente une co-occurrence dans le corpus entre deux termes. ces réseaux peuvent être dirigés, ou valués, on se dote alors d'une fonction w qui associe un poids à chaque lien w : @xmath2. ces travaux ont notamment permis de révéler plusieurs propriétés de ces réseaux et ainsi de mieux comprendre la façon dont est construite la langue : ces réseaux sont petit-monde @xcite , sans-échelle avec une loi de puissance à deux vitesses @xcite expliquée par le modèle @xcite le poids des liens suit également une loi de puissance dans le cas des réseaux valués @xcite . parmi les propriétés observées, ce papier se concentre sur la présence d'une structure de communautés dans ces réseaux @xcite . la structure de communautés d'un réseau est une partition des noeuds du réseau telle que pour chaque partie, les noeuds sont plus connectés entre eux qu'avec le reste du réseau @xcite . nous faisons l'hypothèse que cette structure de communautés permet de construire des plongements lexicaux. cette hypothèse se base sur deux constats. le premier vient des exemples @xcite qui semblent indiquer que les communautés encapsulent une partie de l'information sémantique. d'ailleurs, la définition de la structure de communautés vient appuyer ce constat : pour chaque partie (communauté) de la partition (structure de communautés), les noeuds sont plus connectés entre eux qu'avec le reste du réseau. au regard de l'hypothèse de firth "a word is characterized by the company it keeps", on comprend que chaque communauté sera constituée de mots qui seront utiles pour se caractériser les uns les autres. le second constat vient de certains travaux de la littérature qui mettent en évidence les liens entre décomposition en valeur singulière (svd) et détection de communautés @xcite . or, appliquer une svd à une matrice de co-occurrences pondérée par la positive pointwise mutual information est une méthode efficace pour aboutir à des plongements lexicaux @xcite . nous présentons donc section 2 notre approche basée sur la détection de communautés pour extraire des plongements. cette approche considère chaque communauté comme une dimension, et les liens d'un noeud vers ces communautés permettent de calculer pour chaque dimension la valeur de la composante. nous montrons section 3 que les résultats expérimentaux démontrent la pertinence de l'approche, d'un point de vue qualitatif, mais également quantitatif. enfin, nous discuterons section 4 des avantages d'une telle approche. tout d'abord, celle-ci permet d'espérer des dimensions interprétables. ensuite, le calcul d'un plongement pour un terme est très rapide. enfin, ce type d'approche ouvre des perspectives pour créer des plongements lexicaux évoluant dans le temps via des algorithmes de détection de communautés incrémentaux. données. les données utilisées sont les googlebooksngram 1 anglais, corpus bristishenglish et englishfiction. les googlebooksngram sont des recueils de co-occurrences de termes observées sur une grande bibliothèque de textes allant des années 1800 à 2008. les co-occurrences sont fournies avec une fenêtre de contexte allant de 2 à 5. pour nos expériences, nous avons conservé seulement les co-occurrences observées depuis 1980 aboutissant à un vocabulaire avant pré-traitements d'environ 380000 termes. construction et pré-traitement du réseau. une fois le réseau créé en exploitant les cooccurrences d'un corpus textuel avec une fenêtre de taille f , on obtient alors @xmath3, e, w) comme décrit. pour rappel, l'ensemble des noeuds v est équivalent au vocabulaire considéré, l'ensemble des liens e représente les co-occurrences entre les termes du vocabulaire, et on définit la pondération des liens de e avec la fonction w(u, v), qui vaut le nombre de co-occurrences observées entre les termes représentés par les noeuds u et v dans le corpus en considérant le paramètre f . dans le but de ne conserver que les co-occurrences ayant une valeur sémantique, nous supprimons les liens entre les noeuds qui ne révèlent pas une dépendance statistique significative en utilisant l'éq. 1 : ce pré-traitement du réseau découle directement de ce qui est préconisé par l'état de l'art, notamment par @xcite . mais il semble également pertinent de l'appliquer pour simplifier le travail de l'algorithme de détection de communautés, dont les résultats s'améliorent avec des pré-traitements de type seuillage ou repondération @xcite . dans le but d'alléger le réseau avec un filtre basse-fréquence, nous appliquons l'algorithme 1 qui permet d'obtenir le k-coeur du réseau @xcite : il s'agit de supprimer tous les noeuds ayant moins de k voisins de manière récursive jusqu'à que tous les noeuds restant dans le réseau soient connectés à au moins k voisins. enfin, dans le but de supprimer les mots vides et de limiter l'influence des hautes fréquences (comme dans glove @xcite ou word2vec @xcite , nous choisissons de supprimer les ntop noeuds de plus haut degré. les meilleurs résultats sont empiriquement obtenus pour @xmath4. après pré-traitement, nous aboutissons à un vocabulaire de 135.000 mots dans le cas de notre corpus. ## résultats nous débuterons cette section avec quelques évaluations empiriques purement qualitatives concernant la pertinence des dimensions exploitées (les communautés) et l'espace appris (les voisinages). nous donnerons enfin des résultats quantitatifs qui démontrent l'intérêt de l'approche. sur notre corpus, après pré-traitement, nous aboutissons à une taille de vocabulaire qui est d'un peu plus de 135.000 mots, ce qui correspond au nombre de noeuds du graphe. après détection de communautés, nous obtenons environ 30.000 communautés (voir la distribution de leurs tailles figure 1 ), soit des vecteurs de taille 30.000. en revanche, on constate qu'en moyenne, seulement 300 (environ) composantes du vecteur sont non-nulles, les vecteurs sont donc extrêmement creux. figure 2 -en abscisse, les étiquettes des 30 dimensions les plus caractéristiques des vecteurs de putin, chirac et bush (10 par vecteur). la couleur représente la valeur de la composante pour chacun des vecteurs. communautés et interprétabilité. en utilisant des méthodes d'étiquetage des communautés, il est possible d'évaluer empiriquement la pertinence de l'approche. les communautés extraites constituent les dimensions des vecteurs qui semblent ainsi interprétables et cohérentes. nous donnons ici en exemple trois communautés et leurs étiquettes caractéristiques : base canonique et interprétabilité. avec une approche telle que celle de word2vec, il est difficile d'interpréter les dimensions. tout d'abord, supposer qu'il est possible d'interpréter les dimensions revient à faire l'hypothèse que chaque dimension peut être considérée indépendamment des autres, et que chaque dimension a un sens cohérent, i.e. qu'explorer les vecteurs colinéaires aux vecteurs de la base canonique de l'espace appris permettrait d'extraire ces sens. empiriquement, il est pourtant difficile d'affirmer cela. considérons un modèle word2vec à 300 dimensions appris sur le corpus google news @xcite , et prenons des contre-exemples simples. soit c la base canonique de l'espace de dimension 300 de notre expérimentation telle que @xmath5, 0, 0, • • • , 0), e 2 = (0, 1, 0, • • • , 0), • • • , e 300 = (0, 0, 0, • • • , 1)}. considérons maintenant notre modèle et les vecteurs canoniques de l'espace constitué via l'extraction des communautés. dans notre modèle comme dans les autres, il est possible d'extraire les plus proches voisins d'un mot ou d'un vecteur en utilisant la similarité cosine pour évaluer la distance entre deux vecteurs. considérons dans les cas des deux exemples suivants les 10 vecteurs les plus proches du vecteur canonique dont la composante non-nulle correspond à la communauté qui contient le mot alcohol, puis petal : dans le premier exemple, de manière générale, on obtient des termes liés à l'alcool directement : mannite pour le manniotal qui est un alcool, polyhydric parce que les alcools de sucre sont dits polyhydriques ; des termes liés au sucre qui est l'un des éléments de base pour la création d'alcool (lactose, disaccharise), au processus de création d'alcool (fermenter), ou à la chimie (dinitro, bisulphide). dans le second exemple, tout ou presque est lié à la fleur : les sépales (sepal), les étamines (stamen), papilionaceous qui est une fleur, drewdrop qui signifie goutte de rosée, bract qui est une petite feuille, corolla qui est un synonyme de pétale. dans ces deux cas, il existe un fort recouvrement entre les 10 plus proches voisins mentionnés ci-dessus et les représentants les plus caractéristiques de la communauté (étiquettes). un autre exemple parlant est celui du vecteur e 746 de notre modèle dont les 10 plus proches voisins sont : sifteen, fiftyfour, fortyseven, fiftyseven, sixtyfive, fortysix, fiftyfive, sixtyseven, twentyeight, twentyseven. la distance cosine peut comme dans les autres modèles être exploitée pour étudier la similarité entre les termes du vocabulaire, pas seulement avec les vecteurs canoniques. ainsi, la liste de voisins suivante fournit quelques exemples de résultats illustrant le bon fonctionnement de la méthode : similarité la tâche de similarité se présente comme une base de données de paires de mots, avec pour chaque paire un score associé. le score de similarité entre deux mots est issu d'une évaluation humaine. la qualité du modèle peut donc être évaluée en calculant la corrélation entre le vecteur de score humain et le vecteur de distances entre les vecteurs appris. une corrélation linéaire (coefficient de spearman proche de 1) correspond à un modèle complètement en accord avec l'évaluation humaine. catégorisation la tâche de catégorisation se présente comme une base de données de paires (mot, catégorie). le but est de réussir à regrouper des mots en différentes catégories en utilisant les vecteurs appris. pour faire cela, on opère une analyse de regroupement sur les vecteurs appris. on évalue ensuite le modèle en calculant la pureté entre les regroupements et la catégorisation humaine. nous utilisons la librairie word-embeddings-benchmarks foot_0 pour réaliser nos évaluations @xcite . nous comparons nos résultats à ceux obtenus avec des plongements pré-entraînés accessibles en ligne en utilisant cette librairie. les plongements utilisés sont ceux obtenus via les méthodes glove @xcite , nmt @xcite , hdc et pdc @xcite , skip-gram @xcite et lexvec @xcite .