• Aucun résultat trouvé

au parall´elisme et la distribution

Dans ce chapitre, nous avons d´ecrit une implantation informatique possible parall`ele et distribu´ee de la propagation de labels avec cœurs. Pour r´esoudre le probl`eme de la propagation de labels asynchrone, nous avons propos´e d’uti-liser le principe de coloration, o`u des groupes de nœuds changent leurs labels en mˆeme temps suivant la propagation de labels habituelle, alors que d’autres attendent leur tour.

En utilisant comme crit`ere la modularit´e, les exp´erimentations ont montr´e de meilleurs r´esultats en termes de qualit´e de partitionnement par rapport aux m´ethodes `a base de propagation de labels comme le LPA, mais cependant moins bons que pour la m´ethode de Louvain.

La m´ethode propos´ee est relativement lente. Le temps d’ex´ecution, que ce soit pour DBLP, You Tube ou live Journal peut n´ecessiter plusieurs heures. Le nombre de couleurs joue un rˆole majeur sur le temps d’ex´ecution. Par exemple, nous avons trouv´e 24 couleurs sur le graphe d’Amazon alors que 6 couleurs repr´esentent 86.52% des nœuds du graphe. Certaines couleurs ne repr´esentent quant-`a-elles que 0.0003% du total des nœuds du graphe, soit une dizaine de nœuds. Appliquer Par-CDLP sur un aussi petit groupe de nœuds requiert un temps tr`es important. Ce constat fut ´etabli pour tous les grands graphes qui furent utilis´es pour les exp´erimentations. De plus, l’´ecriture sur disque des donn´ees requiert un temps qui peut ˆetre tr`es important.

Nous ´etudions actuellement un moyen de r´eduire le temps d’ex´ecution, comme fusionner des groupes de nœuds de couleurs diff´erentes au risque de d´et´eriorer la qualit´e de partitionnement. Cette impl´ementation pourrait ´egalement ˆetre utile pour une version parall`ele et distribu´ee destin´ee au chevauchement. Nous ´

etudions ´egalement une version en m´emoire RAM, notamment en utilisant Apache Spark.

Chapitre 5

Conclusion

Sommaire

5.1 Contributions algorithmiques . . . 188 5.2 Perspectives . . . 189

Dans cette th`ese, nous nous sommes int´eress´es aux probl`emes de d´etections de communaut´es disjointes et chevauchantes, et `a la scalabilit´e de nos m´ethodes en proposant une version Hadoop pour la propagation de labels avec d´etection de cœurs.

Le premier chapitre a permis de d´ecrire trois grandes classes d’algorithmes en d´etection de communaut´es disjointes : les m´ethodes globales, locales et hybrides. Il a ´et´e observ´e que les m´ethodes locales, c’est-`a-dire dont le point de d´epart est atomique (par le nœud), permettaient de traˆıter de plus grands graphes que les m´ethodes globales, ou encore divisives. La propagation de labels est une m´ethode locale, qui a l’avantage d’ˆetre rapide et applicable `a des graphes de plusieurs millions de nœuds et d’arˆetes mais elle pr´esente certains inconv´enients, `a savoir de mauvaises propagations qui peuvent donner des communaut´es g´eantes, une forte instabilit´e due au non d´eterminisme de l’algorithme et l’impossibilit´e de trouver des communaut´es chevauchantes. C’est en ce sens que notre premi`ere contribution fut i) de proposer une version am´elior´ee de la propagation de labels en y incluant une stabilisation par recherche de cœurs et la mise en place de bar-rages artificiels pour ´eviter de mauvaises propagations. La seconde contribution ii) fut d’am´eliorer la m´ethode pr´ec´edente pour le chevauchement en y incluant une fonction d’appartenance permettant de d´etecter des nœuds pouvant ap-partenir `a plusieurs communaut´es. Plusieurs fonctions d’appartenance fond´ees sur la densit´e et le cœfficient de clustering sont propos´ees en vue d’une ´etude comparative. Enfin, nous avons propos´e iii) une impl´ementation MapReduce de notre propagation de labels pour travailler sur de plus grands graphes ayant au moins plusieurs millions de nœuds et d’arˆetes. La propagation de labels dans sa forme asynchrone pr´esenta une difficult´e pour le parall´elisme `a laquelle nous

avons r´epondu.

5.1 Contributions algorithmiques

Pour r´epondre `a la probl´ematique de d´etection de communaut´es disjointes, et rem´edier aux probl`emes de la propagations de labels, nous avons propos´e la propagation de labels avec barrages qui a montr´e des r´esultats encourageants en termes de qualit´e de partionnement sur des graphes sociaux.

Nous avons propos´e deux versions fond´ees sur la d´etection de cœurs et sur des matrices de fr´equence. La premi`ere m´ethode ´etait fond´ee sur la cr´eation de plusieurs matrices de fr´equence aliment´ees avec diff´erents niveaux de bar-rages. La seconde m´ethode consiste `a alimenter une seule matrice de fr´equence mais avec diff´erents niveaux de barrages. La premi`ere m´ethode n´ecessite l’in-tervention d’une mesure de qualit´e pour savoir quelle matrice serait capable de donner le meilleur partitionnement. La seconde m´ethode, not´ee PLBS, n´ecessite de donner un intervalle sur lequel les propagations de labels avec diff´erents ni-veaux de barrages alimenteraient la matrice de fr´equence. Les r´esultats pour la simple propagation de labels avec barrages ont montr´e que le fait de mettre des barrages artificiels pouvait am´eliorer la qualit´e de partitionnement comme sur le r´eseau footballistique. Cependant, il y certains cas o`u la mise en place de barrages semble inutile, comme le cas du r´eseau de collaboration scientifique o`u les communaut´es sont d´ej`a bien d´efinies. Concernant les m´ethodes de d´etection par cœurs, PLBS montre des r´esultats tr`es satisfaisants, notamment en alimen-tant la la matrice de co-fr´equence de 0 `a 30 % de barrages. En alimentant une matrice de co-fr´equence par diff´erents niveaux de labels, le syst`eme assure que les nœuds avec une forte probabilit´e d’ˆetre ensemble auront une valeur ´elev´ee au sein de la matrice. Si le nombre de barrages est trop grand, le risque est d’obtenir dans le pire des cas un nœud correspondant `a une communaut´e, ce qui est ´equivalent `a ce que la diagonale de la matrice de co-occurence ne soit pas vide. Cependant, la diagonale n’est pas prise en compte pour la cr´eation des composantes connexes (ce qui est un avantage de la solution). On souhaiterait n´eanmoins trouver un intervalle pour am´eliorer le partitionnement avec un cer-tain pas et ne pas d´et´eriorer la qualit´e de partionnement.

Nous nous sommes ´egalement focalis´es sur l’ordre de visite des nœuds lors du processus par propagation de labels. Les exp´erimentations ont montr´e que l’ordre avait une incidence `a la fois sur la stabilisation et sur la qualit´e de par-titionnement.

Pour r´epondre `a la probl´ematique de d´etection de communaut´es chevau-chantes, nous avons voulu am´eliorer notre algorithme basique de d´etection de cœurs par propagation de labels en utilisant `a la fois l’information topologique sur les structures communautaires et l’information sur les arˆetes, notamment

celle concernant la pond´eration du graphe par utilisation de la matrice de fr´equence. Les fonctions d’appartenances fond´ees sur la centralit´e de nœuds et sur le cœfficient de clustering ont montr´e des r´esultats satisfaisants en mati`ere de qualit´e. L’une des forces des m´ethodes propos´ees est que l’algorithme per-met de r´epliquer certains nœuds dans des communaut´es diff´erentes autant de fois que n´ecessaire, c’est-`a-dire qu’un nœud peut appartenir `a une ou plusieurs communaut´es suivant la fonction utilis´ee. Mais cela n´ecessite, pour un nœud candidat au chevauchement, de tester toutes les combinaisons avec les commu-naut´es qui lui sont li´ees. Cela a pour cons´equence une augmentation du temps d’ex´ecution du programme informatique, notamment lorsqu’il y a beaucoup de communaut´es autour d’un nœud. Ainsi, nous avons pu observer, dans notre impl´ementation, que si un nœud ´etait li´e `a beaucoup de communaut´es, la taille du vecteur comprenant toutes les combinaisons pouvait devenir gigantesque et ralentir l’ex´ecution informatique. Nous proposons de ne pas consid´erer toutes les possibilit´es mais d’effectuer une proc´edure d’´echantillonnage. L’objectif ´etant, `a court terme, de pouvoir exploiter cette solution pour de grands graphes. Nous travaillons ´egalement sur d’autres mesures sociales en vue de faire une ´etude comparative.

Pour r´epondre `a la probl´ematique des grands graphes, nous avons d´evelopp´e une base pour la propagation de labels semi-synchrones `a base de cœurs. Notre m´ethode est fond´ee sur une coloration de graphe, qui sera utilis´ee pour effec-tuer la propagation de label semi-synchrone pour la d´etection de cœurs. Cette m´ethode permet l’´elaboration d’un dendrogramme. Notre mod´elisation Hadoop pour la d´etection de communaut´es a montr´e des r´esultats en termes de qua-lit´e de partitionnement encourageants. Cependant, le temps d’ex´ecution reste trop important. Nos observations ont montr´e que la coloration sur les nœuds du graphe ne suivait pas une loi uniforme. Un nombre r´eduit de couleurs couvre la majeure partie du r´eseau alors que la majorit´e des couleurs ne couvre qu’une infime partie du r´eseau. Cela a pour cons´equence que notre m´ethode prendra la majeure partie du temps `a la mise `a jour de labels d’un faible nombre de nœuds. Pour rem´edier `a ce probl`eme, nous avons d´ej`a fusionn´e des couleurs de telle sorte qu’il n’existe pas de connexions entre les nœuds de ces couleurs, ce qui a pu r´eduire le temps d’ex´ecution. Une piste, pour notre mod`ele Hadoop, serait d’analyser la fr´equence de mise `a jour des nœuds des labels et de ne pas effec-tuer de mise `a jour de certains nœuds. Par exemple, un nœud connect´e `a une communaut´e dont le label ne change plus depuis un certain nombre d’it´erations pourrait ne plus voir son label modifi´e. Nous d´eveloppons actuellement une so-lution in-memory en utilisant Apache Spark.