ANALYSE DE RÉSEAUX
Chapitre 7
NetworkX
L’analyse de réseaux
Réseau : graphe entité-relation de grande taille, orienté ou non
Théorie des réseaux : discipline mathématique / informatique / sociologique Champ d’application très vaste :
• Réseaux sociaux :
– Au départ études sociologiques
– Succès des outils de « réseautage social » (FaceBook, LinkedIn, Google+ etc) – Réseaux de diffusion de l’information (Twitter)
• Réseaux de communication (Internet)
• Réseaux de documents (Web, Wikipedia, réseaux bibliographiques)
• Réseaux biologiques (régulation gène protéine / interaction protéine – protéine / métabolique)
Principales caractérisations :
• Orienté (Twitter) ou non orienté (Facebook)
• Homogène (Facebook) ou hétérogène (réseaux bibliographiques auteurs / articles).
Principaux problèmes
Dépendent de l’application :
• Analyse de la structure globale du réseau
– Analyse spectrale (valeurs propres) ou topologique (diamètre, etc) des réseaux
– Modèles génératifs (modèle aléatoire de Erdös-Rényi) et simulateurs de croissance des réseaux (Web, réseaux sociaux, etc)
– Modèle et simulation de la diffusion d’informations au sein des réseaux (rumeurs dans les réseaux sociaux, lien avec l’épidémiologie)
• Mesure d’importance / de centralité des sommets dans le réseau
– Web : pagerank
– Réseaux sociaux : mesure de popularité / d’influence – Bibliométrie : h-index, etc
• Classification de sommets et des liens
– Principe d’homophilie(« qui se ressemble s’assemble ») : forme de régularisation par le voisinage – Exemples : catégorisation des utilisateurs / prédiction de liens dans les réseaux sociaux, détection de
nœuds sur le Web
• Clustering de sommets :
– Réseaux sociaux : détection de communauté
– Réseaux biologiques : ensemble de protéines interdépendantes
Outils pour l’analyse de réseaux
• NetworkX / Prototypage Python
– Algorithmes classiques des graphes (flots max, plus courts chemins, etc) – Algorithmes de visualisation.
– Modèles génératifs de graphes aléatoires (Erdös-Rényi, etc)
– Algorithmes principaux d’analyse de réseaux (centralité, clustering, etc)
• Outils de visualisation de grands réseaux
– Gephi, Cytoscape,Tulip (INRIA)
• Passage à l’échelle / Big Data :
– Giraph on Hadoop – GraphX on Spark
– Bases de données de type graphes (Neo4J, etc)
Quelques métriques « topologiques » de centralité
Pour un sommet 𝑠 d’un graphe 𝑔 = 𝑆, 𝐴 connexede n sommets et m arêtes/arcs :
Degré (nbr d’amis…) : nombre 𝑑𝑒𝑔(𝑠) de voisins de 𝑠
Coefficient de clustering : ratio des voisins de 𝑠 qui sont connectés
𝐶 𝑠 = 𝑝𝑎𝑖𝑟𝑒𝑠 𝑑𝑒 𝑣𝑜𝑖𝑠𝑖𝑛𝑠 𝑑𝑒 𝑠 𝑐𝑜𝑛𝑛𝑒𝑐𝑡é𝑠 deg 𝑠
2
Proximité : distance moyenne de 𝑠 aux autres sommets
𝑑(𝑠) = 𝐸𝑠′ 𝑑 𝑠, 𝑠′ = 𝑠′∈S𝑑(𝑠, 𝑠′) 𝑛 − 1
Intermédiarité (betweenness) : nombre de plus courts chemins passant par 𝑠 𝐼(𝑠) = 1
𝑛 − 1
2 𝑠1,𝑠2 ⊆𝑆∖ 𝑠
𝑝𝑙𝑢𝑠 𝑐𝑜𝑢𝑟𝑡𝑠 𝑐ℎ𝑒𝑚𝑖𝑛𝑠 𝑒𝑛𝑡𝑟𝑒 𝑠1𝑒𝑡 𝑠2𝑝𝑎𝑠𝑠𝑎𝑛𝑡 𝑝𝑎𝑟 𝑠 𝑝𝑙𝑢𝑠 𝑐𝑜𝑢𝑟𝑡𝑠 𝑐ℎ𝑒𝑚𝑖𝑛𝑠 𝑒𝑛𝑡𝑟𝑒 𝑠1𝑒𝑡 𝑠2
n = 7 m = 9
i 1 2 3 4
deg(i) 𝟒 2 3 3
𝐶 𝑖 3
6
𝟏 2
3
1 3
𝑑 𝑖 𝟗
𝟔
13 6
10 6
𝟗 𝟔
𝐼 𝑖 5 0 1,5 𝟖
2
5
3
1
4
6 7
Quelques métriques « topologiques » de centralité
Exemple du club de Karaté de Zachaky
Quelques métriques topologiques globales
Diamètre : plus grande des distances (longueur d’un plus court chemin) entre deux sommets
D = max
𝑠1∈𝑆,s2∈𝑆𝑑 𝑠1, 𝑠2
Rayon : plus grande distance du centre (sommet le moins éloigné de tout autre sommet) à un sommet
𝑅 = min
𝐶∈𝑆 max
𝑠∈𝑆 𝑑 𝑠, 𝐶
Longueur moyenne : distance moyenne pour chaque paire de sommet 𝐿 = 𝐸 𝑑 𝑠1, 𝑠2 = 𝑠1∈𝑆,𝑠2∈S𝑑(𝑠1, 𝑠2)
𝑛 𝑛 − 1
Densité : ratio du nbr. d’arêtes sur nbr. des arêtes d’un graphe complet 𝑑 = 2𝑚
𝑛(𝑛 − 1) Degré moyen : moyenne des degrés des sommets
𝛿 = 2𝑚 𝑛
Coefficient de clustering : moyenne des coefficients de clustering des sommets 𝐶 = 𝐸 𝐶 𝑠 = 3 × 𝑛𝑏𝑟. 𝑑𝑒 𝑠𝑜𝑢𝑠 𝑔𝑟𝑎𝑝ℎ𝑒𝑠 𝑡𝑟𝑖𝑎𝑛𝑔𝑢𝑙𝑎𝑖𝑟𝑒𝑠
𝑛𝑏𝑟. 𝑑𝑒 𝑠𝑜𝑢𝑠 𝑔𝑟𝑎𝑝ℎ𝑒𝑠 𝑐𝑜𝑛𝑛𝑒𝑥𝑒𝑠 à 3 𝑠𝑜𝑚𝑚𝑒𝑡𝑠
1
2
3
4
5 6
n = 7m = 9 D = 4 R = 2 𝐿 = 1,7
d = 0,4 𝛿 = 2,6 𝐶 = 0,7
7
Théorie algébrique et spectrale des graphes
• Calcul différentiel (laplacien, etc) sur les graphes pour étudier les phénomènes de diffusion
• Représentent un graphe par ses matrices d’incidence / d’adjacence
• En pratique des matrices creuses disposant d’algorithmes d’algèbre linéaire de faible complexité
1
2
3
4
𝐴 =
𝑠1 𝑠2 𝑠3 𝑠4 𝑠1
𝑠2 𝑠3 𝑠4
0 0 0 2 1 0 0 0 0 1 0 1 1 1 0 0
𝐵 =
−1 −1 0 0 2 0
1 0 −1 −1 0 0
0 0 1 0 0 1
0 1 0 1 −2 −1
Cas des graphes orientés :
1
2
3
4
𝐴 =
𝑠1 𝑠2 𝑠3 𝑠4 𝑠1
𝑠2 𝑠3 𝑠4
0 1 0 3 1 0 1 1 0 1 0 1 3 1 1 0 Cas des graphes non orientés :
𝐴: matrice d’adjacence 𝑛 × 𝑛 𝐵: matrice d’incidence 𝑛 × 𝑚
Exemple de la centralité spectrale
Définition de la centralité spectrale : « Un sommet est d’autant plus central que ses voisins le sont » 𝐶 𝑠𝑖 = 1
𝜆 𝑣∈𝑉 𝑠𝑖 𝐶(𝑣) avec 𝜆 > 0 et ∀𝑖, 𝐶 𝑠𝑖 > 0 Théorème :
𝐶 = 𝐶 𝑠1 … 𝐶 𝑠𝑛 𝑇 est le vecteur propre de la plus grande valeur propre de la matrice d’adjacence Démonstration:
𝐶 𝑠𝑖 = 1
𝜆𝑣∈𝑉 𝑠𝑖
𝐶(𝑣) = 1 𝜆 𝑗
𝑎𝑖,𝑗 𝐶(𝑠𝑗) ⇒ 𝜆 𝐶 = 𝐴 𝐶
D’après le théorème de Perron-Frobenius sur les matrices irréductibles (donc sur les graphes connexes),
∀𝑖, 𝐶 𝑠𝑖 > 0 ⇒ 𝜆 est la plus grande valeur propre
Quelques métriques spectrales de centralité
sur l’exemple du club de Karaté de Zachary
MODÈLE DE MARCHE ALÉATOIRE ET
INDICE PAGERANK
Indice PageRank
(Larry Page, Sergey Brin, 1996)
L’indice PageRank de Google détermine la notoriété d’une page/site sur le Web.
Applications :
– pour pondérer la pertinence d’un couple (requête, page) par la notoriété de la page.
– pour lutter contre le web spam
Fondé sur les chaînes de Markov et les modèles de marche aléatoire :
– Un agent se promène aléatoirement sur la toile en suivant un lien au hasard
– La notoriété d’une page correspond au taux de présence (i.e. à la probabilité) de l’agent sur la page
Nombreuses variantes :
– Topic Sensitive PageRank : page rank associé à un thème particulier – SimRank : mesure de similarité entre deux noeuds
Chaîne de Markov :
transitions markoviennes aléatoires entre un ensemble fini de n états Matrice de transition d’une chaîne stationnaire :
𝑷𝑖,𝑗 = 𝑃 𝑋𝑡+1 = 𝑗 𝑋𝑡 = 𝑖 ⇒ 𝑃 𝑋𝑡 = 𝑷𝑇 𝑡 × 𝑃 𝑋0 Matrice stochastique : la somme des coefficients d’une ligne vaut 1.
Représentation sous la forme d’un graphe orienté pondéré
Rappel des chaînes de Markov
1 2 3
0,25 0,75
1 1
Temps de retour moyen : 𝑇𝑟 𝑥 = 𝐸 min
𝑡 𝑋𝑡 = 𝑥 𝑋0 = 𝑥) 𝑇𝑟 1 =
+∞
2 + 2𝑘 ⋅ 0,25 ⋅ 0,75𝑘 = 1 3
+∞
2𝑘 ⋅ 0,75𝑘 = 2
3 ⋅ 0,75
1 − 0,75 2 = 8 𝑷 =
0 1 0
0,25 0 0,75
0 1 0
⟺
Rappel des chaînes de Markov
Stationnarité : une distribution d’état 𝑃𝑋 est stationnaire ssi 𝑃𝑋 est vecteur propre de 𝑷𝑇 de la valeur propre 1 :
𝑃𝑋 =𝑷𝑇 ⋅ 𝑃𝑋
Ergodicité : une chaîne est ergodique si elle converge vers une même distribution 𝑃 𝑋∞ lorsque 𝑡 → +∞ :
∀𝑃 𝑋0 , lim
𝑡→+∞𝑃 𝑋𝑡 = 𝑃 𝑋∞ Théorème :
Une chaîne est ergodique si et seulement si elle est
– irréductible : tout état est accessible depuis tout autre état graphe fortement connexe ⇔ ∀𝑖, ∀𝑗, ∃𝑡 𝑷𝑇𝑡
𝑖,𝑗 > 0
– récurrente positive : l’espérance du temps de retour est fini pour tout état 𝑖 (ici au plus 8)
∀𝑖 𝐸 𝑇𝑟 𝑖 < +∞
– non périodique : les temps de retour possibles ont un pgcd égal à 1 (ici 2)
Propriété : la distribution asymptotique 𝑃 𝑋∞ d’une chaîne ergodique est la seule stationnaire.
Principe de PageRank
Principe : progression aléatoire équiprobable Matrice de transition équivalente :
Si
deg V
𝑖= 0,
𝑷𝑖𝑖= 1
et pour 𝑖 ≠ 𝑗,𝑷𝑖𝑗= 0
Sinon si 𝑖, 𝑗 ∈ 𝐸, alors 𝑷𝑖𝑗
=
1deg 𝑉𝑖 sinon 𝑷𝑖𝑗
= 0
1
2
3
4
5 6
Problème des culs-de-sac : La chaîne n’est pas irréductible.
𝑷 =
0 1
2 0 1
2 0 0 0 0 1
2 1
2 0 0 0 0 0 0 1 0 2
3 0 1
3 0 0 0 0 0 1
2 0 0 1 2
Principe de PageRank
Modification : saut aléatoire sur une page depuis un puits Si
deg V
𝑖= 0,
𝑷𝑖𝑗=
1𝑛
Sinon si 𝑖, 𝑗 ∈ 𝐸, alors 𝑷𝑖𝑗
=
1deg 𝑉𝑖 sinon 𝑷𝑖𝑗
= 0
1
2
3
4
5 6 𝑷 =
0 1
2 0 1
2 0 0 0 0 1
2 1
2 0 0 0 0 0 0 1 0 2
3 0 1
3 0 0 0 0 0 1
2 0 0 1 2 1
6 1 6
1 6
1 6
1 6
1 6
Principe de PageRank
Problème : non-ergodicité de 𝑷 (périodicité, non irréductibilité, temps de retour moyen infini) Solution : introduction d’une probabilité 𝛼 de reset de la marche aléatoire
𝑷𝑝𝑎𝑔𝑒𝑟𝑎𝑛𝑘 = 1 − 𝛼 ⋅ 𝑷+ 𝛼 ⋅ 1
𝑛 ⋅ 𝑱 avec ∀𝑖, ∀𝑗, 𝑱𝑖𝑗 = 1 Typiquement 𝛼 = 10 %
Propriété : 𝑷𝑝𝑎𝑔𝑒𝑟𝑎𝑛𝑘 est ergodique car
• Irréductible : ∀𝑖∀𝑗, Tij ≥ 𝛼
𝑛 > 0
• Non périodique : ∀𝑖, Tii ≠ 0 (boucle) donc P 𝑇𝑟 𝑖 > 0 et donc pgcd des temps de retour = 1
• Récurrente positive :
∀𝑖, 𝑃 𝑋𝑡 = 𝑖|𝑋0 = 𝑖 ≤ 1 − 𝛼
𝑛
𝑡−1 donc 𝐸 𝑇𝑟 𝑖 = 𝑡𝑡 × 1 − 𝛼
𝑛
𝑡−1 < +∞
Implémentation de PageRank
• Calcul matriciel de 𝑃 𝑋
∞impossible (multiplication par 𝑷 en Θ 𝑛
2)
• Utilise le fait que 𝑷 est une matrice creuse.
• Méthode itérative approchée sur les listes d’incidence inversées du graphe
– Initialisation : 𝑃 𝑋0 = 𝑗 = 1
𝑛
– 𝑃 𝑋𝑡+1 = 𝑗 = 1 − 𝛼 𝑝𝑎𝑔𝑒 𝑖 𝑝𝑜𝑖𝑛𝑡𝑎𝑛𝑡 𝑠𝑢𝑟 𝑗
1
𝑛𝑏𝑟 𝑑𝑒 𝑙𝑖𝑒𝑛𝑠 𝑑𝑒 𝑖𝑃 𝑋𝑡 = 𝑖 + 𝛼 ⋅ 1
𝑛
– Condition d’arrêt dès que 𝑋𝑡 − 𝑋𝑡−1 ∞ ≤ 𝜀
𝑝𝑎𝑔𝑒𝑟𝑎𝑛𝑘 𝑖 = 𝑃(𝑋𝑡 = 𝑖) dès que ∀𝑖 𝑃 𝑋𝑡 = 𝑖 − 𝑃 𝑋𝑡−1 = 𝑖 ≤ 𝜀
• Approche itérative compatible avec calcul de type Map/Reduce
(cf Giraph/Hadoop, NetworkX/Spark)
En résumé
1
2
3
4
5 6 𝑷 =
0 1
2 0 1
2 0 0 0 0 1
2 1
2 0 0 0 0 0 0 1 0 2
3 0 1
3 0 0 0 0 0 1
2 0 0 1 2 1
6 1 6
1 6
1 6
1 6
1 6
𝑷𝑝𝑎𝑔𝑒𝑟𝑎𝑛𝑘 = 0,9𝑷 + 0,1 𝑱
1
2
3
4
5 6
𝑃 𝑋∞ =
0,28 0,22 0,55 0,32 0,58 0,35 0,28
0,22
0,55 0,32
0,58 0,35
1. Prise en compte des puits
2. Introduction du reset
3. Algorithme itératif 4. Interprétation de la
distribution limite
DÉTECTION DE COMMUNAUTÉ ET
CLUSTERING SPECTRAL
Problème de détection des communautés dans les réseaux sociaux
Communauté : ensemble de sommets dont le sous-graphe induit a une forte densité d’arêtes par rapport à la densité moyenne du réseau
Problème de clustering topologique :
• Partition de communautés
• Communautés recouvrantes
• Modèles hiérarchiques (communautés imbriquées)
Exemples de méthodes
• Détection de k-cliques approchées
• Clustering spectral
Approche de type « clustering top-down »
(New Spectral Methods for Ratio Cut Partitioning and Clustering, Hagen & al, 1992)
Algorithme :
1. Trouver la meilleure coupe / partition en deux communautés disjointes 𝑆 et 𝑆 selon un critère de coût à minimiser
2. S’arrêter si on a atteint un critère d’arrêt
3. Sinon réitérer le processus sur chacun des deux sous-graphes induits par 𝑆 et 𝑆.
Coupe : ensemble 𝐶 des arêtes séparant deux sous-ensembles de sommets disjoints 𝑆 et 𝑆
Exemple de calcul de coupe
par la « méthode du vecteur de Fiedler »
Comment définir la meilleure coupe ?
Idée : trouver un ensemble de sommets pour lequel l’information diffuse/percole peu à l’extérieur
Objectif:
Trouver une coupe telle que
• 𝑆 ait peu de connexions externes
• 𝑆 ait beaucoup de connexions internes
• 𝑆 a moins de connexions que 𝑆 Fonction de coût à minimiser :
• Conductance 𝜙(𝑆)
• Coût de coupe 𝐶(𝑆)
𝜙(𝑆) = 3
min 9 +3,14 + 3 = 0,25
𝑪
𝑆 𝑆
𝜙(𝑆) = 𝑠1, 𝑠2 ∈ 𝐴| 𝑠1 ∈ 𝑆, 𝑠2 ∉ 𝑆
min 𝑠1, 𝑠2 ∈ 𝐴| 𝑠1 ∈ 𝑆 ∨ 𝑠2 ∈ 𝑆 , 𝑠1, 𝑠2 ∈ 𝐴| 𝑠1 ∉ 𝑆 ∨ 𝑠2 ∉ 𝑆 𝐶(𝑆) = 𝑠1, 𝑠2 ∈ 𝐴| 𝑠1 ∈ 𝑆, 𝑠2 ∉ 𝑆
𝑆 × 𝑆
𝐶(𝑆) = 3
5 ×7 = 0,08
Matrice laplacienne
Laplacien d’un graphe : matrice 𝐿 de taille 𝑛 × 𝑛 telle que 𝐿𝑖𝑖 = deg(𝑠𝑖) − 𝐴𝑖𝑖 et 𝑖 ≠ 𝑗 ⇒ 𝐿𝑖𝑗 = −𝐴𝑖𝑗 Propriétés :
• En notant D = 𝑑𝑖𝑎𝑔 deg 𝑠1 , … , deg 𝑠𝑛 , 𝐿 = 𝐷 − 𝐴 = 𝐵 × 𝐵𝑡
• Matrice symétrique définie semi-positive (donc diagonalisable de valeurs propres non négatives)
• Chaque composante connexe est un vecteur propre de la valeur propre 0 : 𝐿 × 1 = 0 avec 1 = 1 … 1 T
1
2
3
4
𝐷 =
𝑠1 𝑠2 𝑠3 𝑠4 𝑠1
𝑠2 𝑠3 𝑠4
4 0 0 0 0 3 0 0 0 0 2 0 0 0 0 5
𝐴 =
𝑠1 𝑠2 𝑠3 𝑠4 𝑠1
𝑠2 𝑠3 𝑠4
0 1 0 3 1 0 1 1 0 1 0 1 3 1 1 0
⇒ 𝐿 = 𝐷 − 𝐴 =
𝑠1 𝑠2 𝑠3 𝑠4 𝑠1
𝑠2 𝑠3 𝑠4
4 −1 0 −3
−1 3 −1 −1
0 −1 2 −1
−3 −1 −1 5
Spectre de la matrice laplacienne
Soit le spectre Λ𝐿 = 𝜆1, … , 𝜆𝑘 de 𝐿 tel que 0 = 𝜆1 < 𝜆2 < ⋯ < 𝜆𝑘 d’un graphe connexe Propriété :
𝜆
2= min
𝑋⊥1
𝑋
𝑇𝐿𝑋 𝑋
𝑇𝑋
= min
𝑥𝑖=0
𝑋
𝑇𝐿𝑋 𝑋
𝑇𝑋
𝑛 𝜆
2= min
𝑥𝑖=0 𝑥𝑖2=𝑛
𝑋
𝑇𝐿𝑋
= min
𝑥𝑖=0
𝑥𝑖2=𝑛 𝑖∈𝑆
deg 𝑠
𝑖⋅ 𝑥
𝑖2− 2
𝑖,𝑗 ∈A
𝑥
𝑖𝑥
𝑗= min
𝑥𝑖=0
𝑥𝑖2=𝑛 𝑖,𝑗 ∈A
𝑥
𝑖− 𝑥
𝑗 2Lien avec la coupe optimale
Soit 𝑋2 = 𝑥𝑖 le vecteur propre de 𝜆2 (vecteur de Fiedler) 𝑋2 = argmin
𝑥𝑖=0
𝑥𝑖2=𝑛 𝑖,𝑗 ∈A
𝑥𝑖 − 𝑥𝑗 2
Soit la coupe 𝑆 = 𝑠𝑖 | 𝑥𝑖 ≥ 0 et 𝑆 = 𝑠𝑖 | 𝑥𝑖 < 0 Supposons que ∀𝑖 𝑥𝑖 = ±1
• 𝑖,𝑗 ∈A 𝑥𝑖 − 𝑥𝑗 2 = 4 𝑠1, 𝑠2 ∈ 𝐴| 𝑠1 ∈ 𝑆, 𝑠2 ∉ 𝑆
• 𝑥𝑖 = 0 ⇒ 𝑆 = 𝑆 = 𝑛
2
Conséquence : coût de coupe 𝐶 𝑆 = 𝑠1,𝑠2 ∈𝐴| 𝑠1∈𝑆,𝑠2∉𝑆
𝑆 × 𝑆 = 𝜆2
𝑛 est minimal En pratique : les 𝑥𝑖 de 𝑋2 ne valent pas ±1 mais ne sont jamais très éloignés
En résumé
1
3
2
𝐿 = 𝐷 − 𝐴 =
2 −1 −1
−1 2 −1
−1 −1 3 −1
−1 3 −1 −1
−1 2 −1
−1 −1 2
Λ = 0 ;0,44; 3; 3; 3; 4,5
5
4
6
𝑋2 =
0,46 0,46 0,26
−0,26
1
3
2
5
4
6
0,46
0,46
0,26
−0,46
−0,46 -0,26
1. Calcul du Laplacien
2. Calcul des valeurs propres
3. Calcul du vecteur de Fiedler 4. Extraction des
composantes positives et négatives