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