Gephi – les fondations
Transcription
Gephi – les fondations
Gephi – les fondations Clément Levallois Gephi Support Team et professeur à l’EMLyon Business School (2014 -) V 1.0 – Nov. 2013 1 Note biographique • Formation initiale en économie et sciences de gestion, puis doctorat en histoire des sciences. • Je me suis tourné depuis 2008 vers les méthodologies digitales – – – – “data visualization”, analyse de réseaux, “natural language processing”, applications web, etc. Membre de la “Gephi Community Support” team Formateur Gephi certifié, créateur de plugins. https://marketplace.gephi.org/service/data-analysis/ • En poste à la Rotterdam School of Management (2008-2013), professeur à l’EMLyon à partir de 2014. • Contact et remarques: sur twitter @seinecle ou www.clementlevallois.net Clement Levallois L’EQUIPE GEPHI 3 Gephi • Logiciel créé en 2008 par une équipe de 4 ingénieurs en informatique inspirés par un professeur: 4 Clement Levallois Gephi • En 2013, – – – – – 11 développeurs Une vingtaine de développeurs de plugins 4 Google Summer of Code Java Duke Award en 2011 210,000 téléchargements l’année passée • Interface de Gephi disponible en français, espagnol, japonais, brésilien, russe, chinois, polonais et tchèque. • Près de 1,600 publications universitaires citent Gephi. • Forum actif (www.forum.gephi.org) 5 Clement Levallois Gephi • Un logiciel écrit en Java pour Mac, PC et Linux • Existe en version pour programmeurs (le Gephi Toolkit) pour créer des graphes automatiquement via API • Un écosystème de plugins et d’applications apparentées • Un engagement pour l’open source, le service logiciel de qualité et la liberté d’utilisation. 6 Clement Levallois Les plugins Gephi • Vous avez accès à un programmeur Java (même junior?) le « Gephi plugin bootcamp » fournit des exemples très simples pour créer de nouveaux plugins: https://gephi.org/2012/introducing-the-gephi-plugins-bootcamp/ Quel temps de travail pour un plugin? Comptez une journée de formation pour la familiarisation. Puis: ~ une journée pour un plugin très simple. ~ une semaine pour des fonctions plus avancées. 7 Clement Levallois Le futur de Gephi • Gephi est actuellement en version bêta (0.8.2) – Signifie que le logiciel va encore subir des évolutions majeures, et qu’il n’est pas stable (bugs et crashes sont une réalité!) • La prochaine version (0.9) arrivera sans doute en 2014, et apportera des gains de performance notables. • La version 1.0 est encore loin dans le futur (2015? 2016?). Gephi sera alors stable et « achevé ». 8 Clement Levallois Une remarque sur ces slides Signale un point important ou une erreur à éviter. 9 Clement Levallois SETUP DE GEPHI 10 Check list - Vérifiez que vous avez bien la version de Gephi la plus récente (0.8.2 beta en 2013) - Dans le menu de Gephi, sélectionnez Help -> Check for updates et installez les mises à jour - Vous aurez besoin d’une souris avec molette centrale pour faciliter les zooms - Dans le menu de Gephi, sélectionnez Tools -> Options -> Visualization -> OpenGL - Ici, augmentez le facteur d’ “anti-aliasing”. Selon votre carte graphique cela peut apporter un gain substantiel de rendu à l’écran. - Nous allons télécharger des plugins. Vérifiez que votre connexion Internet fonctionne. - Si par la suite Gephi manque de mémoire (graph de grande taille, etc.) gardez ce lien parmi vos favoris: https://gephi.org/users/install/ 11 Clement Levallois Ajouter des plugins à Gephi • Les plugins sont des bouts de logiciel ajoutables à Gephi. Ils ont été créés par des utilisateurs ou des entreprises, qui les ont partagés librement. • Dans le menu de Gephi, sélectionnez: Tools -> Plugins -> Available plugins • Sélectionnez avec la case à cocher les plugins suivants: Circular Layout, Force Atlas 3D • Cliquez sur “Install” et suivez les instructions • Note: Vous remarquerez qu’il y a un menu “Plugin” dans la fenêtre principale de Gephi, qui est vide. C’est une fonction secrète. (ou juste un aspect de l’interface mal conçu!) 12 Clement Levallois Une note sur la terminologie X Un “sommet” (ou noeud. par mauvaise habitude j’emploie la terminologie anglaise “node”). Un graphe orienté (la direction des liens a une signification – le lien s’appelle alors “arc”) Y Une “arête” (ou un lien, une connection… le terme anglais est “edge”) Y est né en… Y est célibataire / marié … Y a pour latitude … Y a pour longitude … Attributs du node (NB: les liens peuvent aussi avoir des attributs!) 3 Un graphe non-orienté (la direction des liens n’a pas d’importance) Un graphe valué (les liens ont une valeur numérique attachée – un “poids”) 13 Clement Levallois PRATIQUE D’UN WORKFLOW A-Z 14 Les étapes • Importer un réseau • Spatialiser un réseau • Visualiser des attributs présents dans les données • Visualiser des attributs créés par Gephi • Exporter une visualisation 15 Clement Levallois Le jeu de données • Réseau de co-occurrence des personnages des Miserables, par Victor Hugo • 2 personnages sont connectés s’ils sont mentionnés à proximité l’un de l’autre dans le texte. • Jeu de données mis à disposition par The Stanford GraphBase, http://www.ctan.org/tex-archive/support/graphbase/ • Téléchargez le fichier ici: www.clementlevallois.net/gephi/tuto/miserables.gexf 16 Clement Levallois 1. Importer un fichier dans Gephi 17 Clement Levallois 2. Le rapport d’importation Cet onglet fournit des infos sur différentes erreurs liées au format de fichier lors de l’import. Très pratique pour débugger ses fichiers. Ce rapport fournit des informations sur le fichier qui vient d’être importé. Redimensionne les noeuds. Ne pas cocher si votre fichier spécifie des dimensions que vous voulez préserver. Un lien A-B doit-il être vu comme A->B? Vous le choisissez ici. Si vous voulez ajouter ce graphe à un autre déjà ouvert dans Gephi Nombre de noeuds trouvés. Nombre de connections trouvées Si votre graphe est un snapshot dans le temps. Importer le même graphe plusieurs fois, avec des dates différentes, crée un graphe dynamique. Le graphe évolue-t-il dans le temps? S’agit-il d’un métagraphe? (non traités ici) Les réseaux importés sont souvent formés d’une liste de noeuds (ex: A, B et C), et d’une liste de liens (ex: A –B, B-C). Que faire si Gephi trouve un lien A-D? Si D est manquant dans la liste des noeuds, vous pouvez faire qu’il soit ajouté ici. Sinon, le noeud D et le lien A-D ne seront pas importés dans Gephi. 18 Clement Levallois 3. Le graphe, une fois ouvert. 19 Clement Levallois 4. Sauvegarder un projet Gephi. • Les projets peuvent être sauvegardés avec un fichier .gephi • Ces fichiers ne peuvent être ouverts qu’avec Gephi. Ils contiennent toutes les informations sur votre projet. – Sélectionnez File -> Save. – De nombreux rapports font état de bugs sur ces fichiers, donc exportez toujours vos réseaux comme indiqué ci-dessous. • Le réseau seul peut être exporté sous plusieurs formats: – gexf et graphML sont des formats qui préservent les attributs. => Sélectionnez File -> Export -> Graph File pour exporter. 20 Clement Levallois 5. Utiliser la souris • Clic gauche: accomplit l’action sélectionnée • Clic droit: déplace le graphe dans son ensemble • Molette centrale: zoom avant / arrière • “Alt” + clic gauche restant appuyé sur le graphe: déplace le graphe sur une 3ème dimension (donne un effet de profondeur et de perspective) 21 Clement Levallois 6. Disposer les fenêtres Mon expérience: n’utilisez pas ce menu “Configure Window”. Le menu « Window » me sert uniquement à refaire apparaître une fenêtre quand je l’ai close par erreur. Glissez-déplacez les fenêtres en portant attention aux pointillés rouges et leurs effets. Essayez de maximiser l’espace consacré à la fenêtre “graph”: c’est la fenêtre principale! 22 Clement Levallois 7. Afficher les labels • Référez-vous à la “cheat sheet” 1 en annexe. • Remarquez le panneau au bas de l’écran, et son onglet “Labels”. • Les noeuds et les liens peuvent avoir des labels. En pratique on affiche plus souvent les labels des noeuds. Cliquez ici pour afficher les labels des noeuds. 23 Clement Levallois 8. Qu’est-ce qu’un layout • C’est simplement une procédure pour positionner les noeuds sur l’écran, en fonction d’une certaine logique que l’on est libre de choisir. • Beaucoup de façons de positionner les noeuds existent – vous êtes libres d’inventer les vôtres! (en passant, c’est une excellente raison de vouloir apprendre à programmer / écrire un plugin) 24 Clement Levallois 9. Exemple simple d’un layout • Sélectionnez “Circular Layout” dans le menu déroulant des layouts. • Ne changez aucun setting et cliquez “run”. 25 Clement Levallois 10. Exemple simple d’un layout (suite) Le layout circulaire applique la règle suivante: “dispose les noeuds en cercle, à intervalle régulier les uns des autres”. Peut-on distribuer les noeuds selon d’autres règles? 26 Clement Levallois 11. Un layout intéressant: Force Atlas 2 • Sélectionnez “Force Atlas 2” dans le menu déroulant des layouts. • Cliquez sur “Run”. 27 Clement Levallois 12. Force Atlas 2 – le résultat Résultat: les noeuds connectés tendent à être positionnés à proximité les uns des autres, dans les mêmes régions de l’écran. C’est très pratique pour interpréter un graphe: - Les groupes de noeuds sont repérables facilement, - Les relations entre groupes sont elles aussi visibles. Des travaux récents ont démontré que nous pouvons en effet nous fier à cette impression visuelle: c’est bien le cas que les groupes de noeuds + fortement connectés vont se trouver dans les mêmes régions de l’écran. Clement Levallois Voir Noack (2009) et Waltman, van Eck and Noyons (2010) parmi les références citées. 28 13. Quelle est la logique des layouts “force based”? • “Les noeuds se repoussent comme des aimants , tandis que les liens attirent les noeuds qu’ils connectent, tels des ressorts”. • Ces forces mettent les noeuds en mouvement, jusqu’à ce qu’un point d’équilibre soit atteint (les nœuds ne bougent plus) • La spécificité de Force Atlas 2: La force de répulsion est modifiée de façon à ce que les noeuds très connectés et leurs nœuds « satellites » peu connectés se repoussent peu. (voir Jacomy et al. 2012 parmi les références). 29 Clement Levallois Les algos “force-based” • Fruchterman-Rheingold – le layout classique. Les forces s’exercent entre nodes voisins. • Kamada and Kawai – utilise une force d’attraction entre deux nodes proportionnelle à la taille du chemin le plus court les séparant. • Yifan Hu – rassemble les nodes en groupe, et applique une logique force-based à ces groupes. 30 Clement Levallois Repousse les nodes qui ont beaucoup de liens sortants Uniquement intéressant si votre réseau est orienté. Exemple d’un réseau de pages web: les sites qui ont beaucoup de lien sortants, mais peu de liens pointant vers eux, vont être positionnés au centre. Cette option les repousse vers la périphérie du graph. Augmente la force de répulsion La force de répulsion décroît fortement quand les nodes s’éloignent. Choisir cette option garde la force de répulsion constante - le graph va être beaucoup plus « espacé ». Empêche que les nodes ne se chevauchent Très pratique pour rendre le graphe plus lisible. Choisissez le layout « Label Adjust » (non montré ici) pour faire de même avec les labels des nodes. Contrôle la force des liens entre nodes Votre graph est peut être « valué » (les liens ont une valeur numérique). Dans ce cas, ce paramètre contrôle la magnitude de l’attraction exercée par les liens. Augmente la vitesse d’exécution Chaque « core » du processeur d’un ordi a deux threads. Un ordinateur quad-core peut monter à 8 threads (on met 7 en pratique pour éviter la saturation) Contrôle l’intensité des forces de répulsion et d’attraction entre nodes Contrôle le regroupement des nodes vers le centre de l’écran Option pratique pour récupérer les nodes partis s’égarer très loin Détermine de combien les nodes peuvent se déplacer Utile quand un graph bouge trop: on peut diminuer cette valeur pour le « geler ». Augmente spectaculairement la vitesse d’exécution En approximant la force de répulsion plutôt que son calcul exact. Degré de précision / approximation Augmenter ce facteur permet d’aller encore plus vite (si l’option précédente est cochée), mais une valeur trop haute rend le graph instable (il ne se stabilise plus). Clement Levallois 31 Force Atlas ou Force Atlas 2? • Force Atlas 2 est une version retravaillée de Force Atlas. – Le code a été rendu plus rapide – L’algo est multi-threaded (plus rapide) • Paramètres différents: – Force d’attraction et de répulsion dans « Force Atlas » ont été fusionnées en un paramètre unique (« échelle ») dans « Force Atlas 2 », qui rassemble les deux. 32 Clement Levallois Un piège de lecture • Les nœuds au centre sont-ils centraux? (ce slide est basé sur le post de blog de Scott Weingart: « Networks Demystified 8: When Networks are Inappropriate ») – voir références en fin. 33 Clement Levallois Le piège expliqué • Las Vegas peut apparaître comme central sur la carte: beaucoup de connexions à d’autres villes, et occupe une place centrale dans la région Sud-Ouest • Les voyageurs vont à Las Vegas, y restent quelques jours, puis repartent chez eux. • Donc Las Vegas n’est pas un connecteur entre aéroports (« hub »), cette ville n’est pas « centrale » au sens de lieu de transit privilégié d’un destination à une autre. • C’est plutôt une dépression (« sink ») 34 Clement Levallois Le problème des minima locaux • Le layout peut « rester bloqué » sur une situation non idéale (un node qui reste voisin d’un autre, alors qu’il ne sont pas liés). • Ouvrir Les Misérables.gexf pour reproduire la situation • Solution: – Garder cette possibilité à l’esprit: plus le graph est large plus la position de chaque node individuel reste sujette à interprétation, cependant la position des groupes et des communautés reste un indicateur robuste. – Commencer par un layout très large (échelle élevée), puis le regrouper (échelle réduite). Cela permet aux nodes de se positionner sans « se gêner mutuellement ». 35 Clement Levallois Essayer Force Atlas 3D https://marketplace.gephi.org/plugin/force-atlas-3d/ 36 Clement Levallois OpenOrd pour les graphs de grande taille? • Mon avis personnel: – Le fonctionnement d’OpenOrd n’est pas explicable simplement Pour essayer soi-même: OpenOrd: an open-source toolbox for large graph layout. Shawn Martin, W. Michael Brown, Richard Klavans, Kevin W. Boyack. Proc SPIE 01/2011; 7868:786806. DOI:10.1117/12.871402 Disponible ici: http://www.researchgate.net/publication/253087985_OpenOrd_an_open-source_toolbox_for_large_graph_layout – Le résultat n’est pas clair • Communautés mal distinguées. • Comparer à Force Atlas par exemple. – Force Atlas 2 est plus rapide sur un graph de 5000 nodes et 24000 liens par exemple. – Je recommande donc Force Atlas 2 dans tous les cas 37 Clement Levallois 14. Changer la taille des noeuds • Référez-vous à la « cheat sheet » de ce document. 2 en annexe • Click droit sur l’icône « size » et entrez « 15 » pour valeur. Validez. • Puis click gauche sur la même icône. 38 Clement Levallois 15. Visualiser les attributs de vos données • Les noeuds de notre réseau ont un attribut: le genre des personnages des Misérables. cet attribut n’est pas disponible dans le fichier livré avec Gephi, téléchargez-le ici: www.clementlevallois.net/gephi/tuto/miserables.gexf • Nous pouvons projeter cette information sur le réseau en utilisant la couleur des noeuds comme repère visuel. • Note: nous n’avons que deux valeurs différentes pour cet attribut (masculin ou féminin), mais nous pourrions évidemment en avoir beaucoup plus (et donc beaucoup plus de couleurs). 39 Clement Levallois 16. “Partitioning” ou “ranking”? • Masculin Partitioning : Féminin Utile pour les attributs catégoriques (qualitatifs): “masculin ou féminin”, “Sud, Nord, Est, Ouest”, “pays de résidence”. Chaque catégorie est représentée par une couleur différente, comme ci-dessus. • Ranking: 28 ou: 28 35 35 Utile pour les attributs qui sont graduels (quantitatifs) (age, etc… n’importe quel attribut numérique). Cette graduation est représentée visuellement soit par des tailles différentes, soit par des échelles dégradées de couleur (du clair au sombre, ou des couleurs froides à chaudes, habituellement). 40 Clement Levallois 17. Exemple de partitioning • Dans l’onglet “partition”, cliquez sur le bouton refresh pour être sûr que Gephi trouve bien tous les attributs disponibles. • Dans le menu déroulant, sélectionnez “Gender” qui est le seul attribut disponible dans notre cas d’étude. • Cliquez sur “apply”! • Si les liens de notre réseau avaient possédé un attribut (relation entre 2 personnages: ami, ennemi ou neutre?), nous aurions pu colorer les liens selon le même principe. • Les noeuds de la même catégories peuvent être groupés en un “super noeud”. Ce sont les graphes hiérarchiques, non traités ici. 41 Clement Levallois 18. Visualiser de nouveaux attributs avec Gephi • Gephi peut calculer des métriques, telles que “Quels noeuds sont centraux” dans le réseau. • Le point-clé est: ces métriques sont des attributs (des noeuds ou liens), et ils peuvent donc être visualisés comme n’importe quel autre attribut. • Visualiser ces métriques (plutôt que de les lire dans un tableur) stimule la compréhension des données. 42 Clement Levallois 19. Détecter des communautés et les visualiser • Sélectionner l’onglet de statistiques et cliquer sur Modularity. • Cet algo identifie les groupes de noeuds qui sont relativement denses. • Résultat, chaque noeud se voit attribuer à un de ces groupes ( “class”). • De même que nous avons coloré les noeuds par genre, nous les colorons ici par leur groupe (“classe”) d’appartenance. • Sélectionner l’onglet de partition, appuyer sur l’icone “modularity class” et “apply”. , sélectionner • Note: on peut choisir quelles couleurs vont être appliquées en cliquant sur les carrés de couleur. Cliquer ici pour choisir une couleur différente. 43 Clement Levallois Groupes et « modularité » • Modularité (Newman 2004) – Nombre de liens dans chaque groupe moins nombre de liens dans les mêmes groupes, dans un graph ou les liens auraient été redistribués de façon aléatoire. • Trouver les communautés dans un graph = définir des groupes de façon à ce que le score de modularité soit le plus haut. 44 Clement Levallois 20. Visualisation de communautés: le résultat 45 Clement Levallois 21. Conseils pour soigner l’apparence du graphe • Appliquer le layout “Label adjust” – Pour éviter que les labels ne se chevauchent • Utiliser un fond de couleur noir éventuellement – Cliquer sur le bulbe d’ampoule en bas à gauche (voir cheat sheet 2 ) • Moduler l’épaisseur des liens – Avec un slider 46 Clement Levallois 22. Gephi: quel output? • Le slide suivant montre comment exporter une image de Gephi. Estce la seule finalité de Gephi? • Mon opinion est que l’intérêt de Gephi réside avant tout dans les découvertes possibles lors de l’exploration du graph dans Gephi. • L’export du graph dans un fichier ou une page web répond à des besoins de communication – mais l’export n’est pas la seule raison d’utiliser Gephi. • Jer Thorp, qui est une référence en “data visualization”, fait une remarque similaire dans un post de blog pour la Harvard Business Review: http://blogs.hbr.org/cs/2013/04/visualization_as_process.html 47 Clement Levallois 23. Exporter une visualisation • Directement depuis l’overview panel par une capture d’écran(see cheat sheet 2 ). • Ou avec une page web. Voir le plugin SigmaExport. – Faire File -> Export -> Sigma.js puis uploader le répertoire créé sur un serveur. • Ou avec le preview panel (voir cheat sheet 5 ). • Pourquoi les vues dans l’overview et la preview ne sont-elles pas identiques? – Les deux technologies employées sont différentes, car l’overview est interactif. – Cette différence de technologie implique qu’il y a des différence gênantes entre les deux vues. – Dans mon expérience personnelle, j’essaie d’obtenir un rendu aussi bon que possible dans le Preview. J’exporte, puis j’ouvre l’image avec Inkscape pour peaufiner le résultat. 48 Clement Levallois 24. Les Miserables juste avant l’export en svg 49 Clement Levallois 25. Ajuster les labels, ajouter une légende 50 Clement Levallois Nous avons appris • • • • • • • • Préparer et configurer Gephi. Lire un rapport d’importation de réseau Utiliser l’interface de Gephi Notions: qu’est-ce qu’un layout? Principe de Force Atlas Ecueil à éviter dans la lecture d’un graphe. Ranking, partitioning, métriques Exporter un graph sous forme de fichier image 51 Clement Levallois Prochaine étape: l’importation de données dans Gephi 52 Clement Levallois References Bastian M., Heymann S., Jacomy M. (2009). Gephi: an open source software for exploring and manipulating networks. International AAAI Conference on Weblogs and Social Media. http://gephi.org/publications/gephi-bastian-feb09.pdf Jacomy M., Heymann S., Venturini T. , Bastian M. (2012): “ForceAtlas2, A Continuous Graph Layout Algorithm for Handy Network Visualization.” (draft) http://www.medialab.sciencespo.fr/publications/Jacomy_Heymann_Venturini-Force_Atlas2.pdf Noack A. (2009). “Modularity clustering is force-directed layout,” Physical Review E, vol. 79(2). Thorp J. (2013). Visualization as Process, Not Output. HBR Blog Network, April 3. http://blogs.hbr.org/cs/2013/04/visualization_as_process.html Waltman L., van Eck N. J., Noyons E. C.M. (2010). “A unified approach to mapping and clustering of bibliometric networks”, Arxiv, http://arxiv.org/abs/1006.1032 53 Clement Levallois Flight patterns http://www.aaronkoblin.com/work/flightpatterns/ Le blog post de Scott Weingart: http://www.scottbot.net/HIAL/?p=39600 Algos force-based: T. Kamada and S. Kawai. An algorithm for drawing general undirected graphs. Inform. Process. Lett., 31:7–15, 1989. Fruchterman, Thomas M. J.; Reingold, Edward M. (1991), "Graph Drawing by ForceDirected Placement", Software – Practice & Experience (Wiley) 21 (11): 1129– 1164,doi:10.1002/spe.4380211102. Y. F. Hu, Efficient and high quality force-directed graph drawing. The Mathematica Journal, 10 (37-71), 2005. (high resolution version (30 MB)) 54 Clement Levallois