D´ etection de communaut´ es dans les grands graphes de terrain
Rushed Kanawati
LIPN, CNRS UMR 7030 Universit´e Paris Sorbonne Cit´e
http://lipn.fr/∼kanawati rushed.kanawati@lipn.univ-paris13.fr
October 31, 2016
Plan
1 Probl´ematique
2 Identification de communaut´es
3 Partitionnement de graphe
4 Evaluation de communaut´es
Communaut´ e ?
D´ efinition
Un sous-graphe dense faiblement li´ e au reste du graphe.
Communaut´ e ?
Definition
Un sous-graphe dense faiblement li´ e au reste du graphe.
Int´ erˆ ets
v R´ eseaux sociaux : identification de groupes d’amis v Web : ensemble de pages web traitant un mˆ eme th` eme,
v R´ eseaux biologiques : un ensemble de g` enes d´ edi´ es ` a une mˆ eme fonction,
v etc.
Application
v Parall´ elisation
v Visualisation
v Compression
Probl` emes
v Identification de communaut´ e : d´ elimiter la communaut´ e d’un nœud.
v Partitionnement du graphe en N sous-graphes (communaut´ es non chevauchantes).
v Detection de communaut´ es (potentiellement chevauchantes)
Identification de communaut´ es
Exemple : communaut´ e ´ ego-centr´ ee (LinkedIn)
Identification de communaut´ es : approche g´ en´ erale
Contraintes
Vision partielle du graphe centr´ e sur le nœud cible.
V = D ⊕ S ⊕ U
D : Ensemble de nœuds explor´ es S : Ensemble de nœuds
partiellement explor´ es.
U : Ensemble de nœuds non-explor´ es
D = C ⊕ B
C : Ensemble de nœuds dont tous
les voisins sont aussi dans D
B : Ensemble de nœuds de D qui
Identification de communaut´ es : approche g´ en´ erale
1 C ← φ, B ← {n
0}, S ← Γ(n
0) 2 Q ← 0 /* Une fonction de qualit´ e / 3 Tant que on peut am´ eliorer Q faire
1 n ← argmax
n∈SQ 2 S ← S − {n}
3 D ← D + {n} /* D = C ∪ B*/
4 Mettre ` a jour B, S , C
4 Retourner D : la communaut´ e de n
0Fonction de qualit´ e : exemples I
La modularit´ e locale R [Clauset05]
R =
B Binin+Bout
B
in=len(g.es.select( within=B))
B
out=len(g.es.select( between=(B,S)))
Fonction de qualit´ e : exemples II
La modularit´ e locale M M =
DDinout
D
in=len(g.es.select( within=D))
D
out=len(g.es.select( between=(B,S)))
Fonction de qualit´ e : exemples III
La modularit´ e locale L L =
LLinex
o` u : L
in=
P
i∈D
kΓ(i)∩Dk kDk
L
ex=
P
i∈B
kΓ(i)∩Sk kBk
Partitionnement de graphe
D´ efinition
P = {P
1, . . . , P
n}, ∩
i:1→nP
i= φ , ∪
i:1→nP
i= V Nombre de partitions : Nombre de Bell B
n= P
nk=1
C
knB
n−1Approches
v Approches centr´ ees groupes o` u des nœuds sont regroup´ es en communaut´ es en fonction de propri´ et´ es topologiques partag´ ees.
v Approches centr´ ees r´ eseau o` u la structure globale du r´ eseau est examin´ ee pour la d´ ecomposition du graphe en communaut´ es.
v Approches centr´ ees propagation qui appliquent souvent une proc´ edure d’´ emergence de la structure communautaire par ´ echange de messages entre nœuds voisins.
v Approches centr´ ees graines o` u la structure communautaire est
construite autour d’un ensemble de nœuds choisis d’une mani` ere
inform´ ee.
Approches centr´ ees groupes
v Recherche de groupes denses : v Cliques maximales
v γ-dense quasi clique.
v K-core : sous-graphe connexe maximal dans lequel le degr´ e de chaque nœud est sup´ erieur ou ´ egale ` a k
v . . .
v Ad´ equat pour graphes denses
v Souvent NP-Complet.
Group-based approches
from Symeon Papadopoulos, Community Detection in Social Media, CERTH-ITI, 22 June 2011
Example: Clique percolation
Suits fairly dense graph.
Approches centr´ ees R´ eseau
v Algorithme de clustering v Approches d’optimisation
v Approches bas´ ees sur la propagation locale
v Approches centr´ ees graine
Approche de clustering : Classification hi´ erarchique
Chaque sommet = communaut´ e.
On it` ere jusqu’au avoir une seule communaut´ e :
Calcule les distances entre chaque 2 communaut´ es Fusionner les deux communaut´ es les plus proches On obtient un dendrogramme de communaut´ es.
Distance entre communaut´ es : La distance minimale, maximale, ou
moyenne entre deux sommets des 2 communaut´ es. Distance entre
barycentres des communaut´ es.
Approches d’optimisation
v D´ efinition d’une fonction de qualit´ e de partition
v Application d’approches d’optimisation.
Fonction de qualit´ e : La modularit´ e
La modularit´ e
Q(P ) = 1 2m
X
c∈P
X
i,j∈c
(A
ij− d
id
j2m ) (1)
Figure: Exemple de calcul de la modularit´ e : Q =
(15+6)−(11.25+2.56)25
= 0.275
Optimisation : Algorithmique g´ en´ etique
Une population de solutions : chaque individu est repr´ esent´ e par une s´ equence de g` enes
Evolution de la population par m´ ecanismes de : croisement, mutation et s´ election naturelle.
G` ene : vecteur d’affectation de communaut´ e aux sommets.
M´ ecanismes de s´ election : Modularit´ e.
Int´ erˆ et : Parrall´ elisation facile.
Approches s´ eparatives
igraph.Graph.community edge betweenness Principe : A chaque it´ eration retirer un lien inter-communuat´ e
Diff´ erents crit` eres pour identifier un lien inter-communaut´ e Algo. de Girvan et Newman :la centralit´ e d’interm´ ediarit´ e.
Complexit´ e O(m
2n).
Algo. de Fortunato : centralit´ e d’information. L’efficacit´ e d’un graph E est donn´ e par la moyenne de
d1ij
, La centralit´ e d’une arˆ ete (i , j ) est donn´ e par la diminution de E en retirant ce lien.
Complexit´ e O(m
3n).
Approche Agglom´ erative I
igraph.community multilevel
Chaque nœud est associ´ e ` a une communaut´ e R´ ep´ eter jusqu’` a stabilisation :
pour chaque nœud i ´ evaluer le gain de modularit´ e ∆Q si i rejoint la communaut´ e d’un noœud voisin j
∆Q = (
P
in+2ki,in
2m
− (
P
tot+ki
2m
)
2) − (
P
in
2m
− (
P
tot
2m
)
2− (
2mki)
2) P
in
est la somme des poids des liens dans la communaut´ e cible,
Approche Agglom´ erative II
P
tot
est la somme des liens adjacents aux nœuds de la communaut´ e cible,
k
i,inest la somme des poids des liens reliant i ` a des nœuds de la communaut´ e cible.
(suite R´ ep´ eter jusqu’` a stabilisation)
i est ajout´ e ´ a la communaut´ e qui maximise le gain si ce gain est positif.
Remplacer le graphe actuel par le graphe de connexion de communaut´ es calcul´ e comme suit :
Les nœuds sont les communaut´ es
Le poids d’un lien (u, v ) est la somme des poids des liens reliant
tous les nœuds de u aux nœuds de v
Approche Agglom´ erative III
Optimisation de la modularit´ e: Limites
Hypoth` eses
La meilleure partition est celle qui maximise la modularit´ e
Si un graphe a une structure communautaire alors il est possible de trouver une partition precise qui avec une modularit´ e maximales.
Les partitions ayant des modularit´ es ´ elev´ ees sont similaires entre elles.
Les trois hypoth` eses sont fausses [GdMC10, LF11].
Modularit´ e: limite de la r´ esolution
Distribution de la modularit´ e
Approches de propagation
Algorithm 1 Label propagation
Require: G =< V , E > a connected graph,
1: Initialize each node with unique label l
v2: while Labels are not stable do
3: for v ∈ V do l
v= arg max
l
|Γ
l(v )| /* random tie-breaking */
4: end for
5: end while
6: return communities from labels
Γ
l(v ) : set of neighbors having label l
Approche de propagation d’´ etiquettes
igraph.community label propagation 1 Chaque nœud est attribu´ e une ´ etiquette unique.
2 Chaque nœud propage son ´ etiquette ` a ses voisins.
3 A r´ eception, chaque nœud adopte l’´ etiquette majoritaire.
4 En cas de conflit, un nœud choisit une ´ etiquette al´ eatoirement.
5 Deux approches : Propagation synchrone et propagation asynchrone.
Probl` eme :
Stabilit´ e des partitions retrouv´ ees.
Solution : calcul de cœurs de communaut´ es
Label propagation
Avantages
I Complexit´ e : O(m)
I Simplicit´ e de Parall´ ellisation
Inconv´ enients
I Probl` eme de convergence, d’oscillation.
I Probl` eme de stabilit´ e
Diff´ erentes ex´ ecutions donnent diff´ erentes
solutions pour un mˆ eme r´ eseau
Label propagation: Convergence
I Asynchronous label update, [RAK07]
I Semi-synchronous label update (graph coloring + propagation by color) [CG12].
I Accentuer le probl` eme de instabilit´ e !
I Plus difficile ` a parall´ eliser.
Robust Label propagation
I Label hop attenuation [LHLC09]
I Balanced label propagation [SB11].
I Multiplex approach !
I Ensemble clustering → cœurs de communaut´ es
[OGS10, SG12, LF12].
Cœurs de communaut´ es I
v Etant donn´ e N partitions d’un graphe G de n nœuds
v Calculer la matrice n × n de consensus C = c
ijo` u c
ijest la fr´ equence de co-occurrence des nœuds i; j dans une mˆ eme communaut´ e.
v C est la matrice d’adjacence du graphe de consensus.
Cœurs de communaut´ es II
Exemple : Club de Karat´ e de Zachary I
Exemple : Club de Karat´ e de Zachary II
Exemple : Club de Karat´ e de Zachary III
Exemple : Club de Karat´ e de Zachary IV
Exemple : Club de Karat´ e de Zachary V
Exemple : Club de Karat´ e de Zachary VI
Cœurs de communaut´ es
v Etant donn´ e un seuil α ∈ [0, 1]
v Retirer du graphe de consensus les liens dont le poids ≤ α v Les composantes connexes du graphe r´ esultat sont les cœurs de
communaut´ es
Exemple : Club de Karat´ e de Zachary
Label propagation preprocessing (EPP)
1 Appliquer l’algorithme LP n fois
2 Calculer les cœurs de communaut´ es pour α = 1
3 R´ eduire le graphe en substituant chaque communaut´ e par un simple nœud.
4 Appliquer un algorithme de d´ etection de communaut´ es sur le graphe r´ eduit.
5 Expansion des r´ esultats.
Approches centr´ ees graine
Algorithm 2 General seed-centric community detection algorithm Require: G =< V , E > a connected graph,
1: C ← ∅
2: S ← compute seeds(G)
3: for s ∈ S do
4: C
s← compute local com(s,G)
5: C ← C + C
s6: end for
7: return compute community(C)
Seed-centric approaches
Table: Characteristics of major seed-centric algorithms
Algorithm Seed Nature Seed Number Seed selection Local Com. Com. computation Leaders-Followers [SZ10] Single Computed informed Agglomerative -
Top-Leaders [KCZ10] Single Input Random Expansion -
PapadopoulosKVS12 Subgraph Computed Informed Expansion -
WhangGD13 Single Computed informed Expansion -
BollobasR09 Subgraph Computed informed expansion -
Licod [Kan11] Set Computed Informed Agglomerative -
Yasca [Kan14] Single Computed Informed Expansion Ensemble clustering
L’algorithme LICOD
1 D´ eterminer l’ensemble des Leaders L 2 R´ ep´ eter jusqu’` a stabilisation ou max fois :
Chaque x ∈ V trie les communaut´ es c ∈ C dans un ordre d´ ecroissant selon le degr´ e d’appartenance P
x0Pour chaque x ∈ V , calculer
P
xt= FusionVotes(P
yt−1y ∈ {X } ∪ Γ(x)) Recalculer L
3 Retourner pour chaque nœud la communaut´ e plac´ ee en tˆ ete de
vecteur de pr´ ef´ erence.
LICOD: Identification de Leaders
Pour chaque x ∈ V , calculer les propri´ et´ es suivantes prop(x):
Propri´ et´ e locale: centralit´ e de degr´ e
Propri´ et´ es globales: centralit´ e de proximit´ e, centralit´ e de d’interm´ ediarit´ e (?)
Autre: PageRank
Soit F
x= {y ∈ Γ(x) : prop(x ) > prop(y)}
x est un Leader si
|Γ(x)||Fx|> σ ∈ [0, 1]
LICOD: Degr´ e d’appartenance
Le degr´ e d’appartenance d’un nœud v ` a une communaut´ e c est donn´ ee par l’inverse du plus court chemin SP liant v ` a un des leaders de c : appartenance (v, c) =
(min 1x∈COM(c)SP(v,x))+1
LICOD: Fusion des votes
Application des m´ ethode de votes:
M´ ethodes de condercet non-consistantes: Majority, Borda M´ ethodes de condercet consistantes: Kemeny, local Kemeny Exemple:
A > B > C > D A > B > C > D B > C > A > D D > A > B > C B > D > A > C
Borda → B > A > D > C > E
Kemeny → A > B > C > D > E
The YASCA algorithm
Algorithm 3 The Yasca community detection algorithm Require: G =< V , E > a connected graph,
1: C ← ∅
2: S ← compute seeds(G) /* diverse seed nodes */
3: for s ∈ S do
4: C
s← compute local com(s,G)
5: C ← C + (C
s, C
s)
6: end for
7: return Ensemble Clustering(C)
Selection de graine
Diversit´ e guid´ ee par les attributs topologiques
Diversit´ e bas´ ee sur la centralis´ e (Degr´ es , betweenness, . . . , etc) Nœuds d’articulation + nœuds centrals dans le bi-connected core Bi-connected core
Composant bi-connect´ e : A sous-graphe maximal qui reste connexe apr` es la suppression de n’importe quel nœud.
A bi-connected core: Un graphe connexe maximal apr` es la suppression de tous les compensates bi-connect´ e de taille 1.
Pont: Un composnat bi-connect´ e de taille 1 connexe ` a un bi-connected core
Nœud d’articulation : L’intersection d’un pont et d’un bi-connected
core.
Yasca: R´ esultats
Comparative Results on benchmark networks : NMI
Nœus d’articulation + top15% nodes centrales dans le
bi-connected-core
Evaluation des algorithmes de d´ etection de communaut´ es
3 grandes approches :
Qualit´ es structurelles des communaut´ es retrouv´ ees.
Comparaison avec une v´ erit´ e de terrain.
Evaluation orient´ es tˆ aches
Fonctions d’´ evaluation structurelle
La qualit´ e de C = {S
1, . . . , S
i} est donn´ ee par :
Q (C) = P
i
f (S
i)
|C| (2)
f () est une fonction de qualit´ e d’une communaut´ e.
4 familles de fonctions de scoring :
Fonctions bas´ ees sur la connectivit´ e interne.
Fonctions bas´ ees sur la connectivit´ e externe.
Fonctions hybrides
Fonctions inform´ ees par des mod` eles.
Fonctions d’´ evaluation de la connectivit´ e interne
Densit´ e interne : f (S) =
n 2×mSS×(nS−1)
Degr´ es moyen : f (S) =
2×mn SS
FOMD: Fraction over Median Degree : f (s ) =
|{u:u∈S,|(u,v),v∈S|>dm}|nS
,
d
mest le m´ edian de degr´ es des nœuds dans V
TPR: Triangle Participation Ratio :
|{u∈S}:∃v,w∈S:(u,v),(w,v),(u,w)∈E|nS
Fonctions d’´ evaluation de la connectivit´ e externe
Expansion : f (S ) =
CnSS
Cut : f (S ) =
n CsS×(N−nS)
Fonctions hybrides
Conductance : f (S ) =
2mCSS+CS
MAX-ODF : Out Degree Fraction : f (S ) = max
u∈S|{(u,v)∈E,v6∈S}|d(u)
AVG-ODF : f (S) =
n1S
× P
u∈S
|{(u,v)∈E,v6∈S}|
d(u)
Fonctions guid´ ees par un mod` ele
La modularit´ e : f (s ) =
14(m
S− E (m
S))
E (m
S) le nombre attendu de liens dans un graphe al´ eatoire ayant la
mˆ eme distribution de degr´ es.
Comparaison avec une v´ eriti´ e de terrain
Principe : calculer une similarit´ e (ou distance) entre une partition calcul´ ee et une partition de r´ ef´ erence.
La partition de r´ ef´ erence peur ˆ etre : annot´ ee par un expert
ou g´ en´ er´ ee par un mod` ele.
Deux types de mesures :
Mesures bas´ ees sur le compte des accords.
Mesures bas´ ees sur la th´ eorie de l’information.
Mesures bas´ ees sur le comptes des accords
Soient U, V deux partitions d’un graphe G Indice de Rand :
a pairs plac´ es dans une mˆ eme communaut´ e selon U et V b pairs plac´ es en mˆ eme communaut´ e selon U et en diff´ erents communaut´ e selon V
c pairs plac´ es en mˆ eme communaut´ e selon V et en diff´ erents communaut´ e selon V
d pairs plac´ ees en diff´ erentes communaut´ e selon U et selon V.
rand =
a+b+c+da+dARI =
Cn2(a+d)−[(a+b)(a+c)+(c+d)(b+d)](Cn2)2−[(a+b)(a+c)+(c+d)(b+d)]
E(ARI)=0
rappel : C
nk=
k!(n−k)!n!L’information mutuelle
Rappel : L’information mutuelle entre deux variables al´ eatoires X , Y est : I (X , Y ) = H(X ) + H(Y ) − H(X , Y )
H(X ) = P
nxi=1
p(x
i) × log (
p(x1i)
) Normalisation : NMI (U, V ) = √
I(U,V)H(U)H(V)
Probl` eme de v´ erit´ e de terrain
Existence de quelques graphes de benchmark (Zachary, Football, . . . , etc.),
Graphe de tr` es petits tailles.
Difficile de trouver de grands graphes avec v´ erit´ e de terrain.
Benchmarks artificiels : Le mod` ele LFR
But : G´ en´ eration d’un graphe compos´ e d’un ensemble de k communaut´ es plus au moins interconnect´ es entre elles.
Algorithme :
Soit N le nombre de nœuds du graphe ` a g´ en´ erer. La distribution de degr´ es est tir´ ee selon une loi de puissance de param` etre γ tel que le degr´ es d’un nœud est dans un intervalle [K
min, K
max].
µ est un param` etre de connexion entre communaut´ e : µ ∈ [0, 1]
La distribution des tailles de communaut´ es suit une autre lois de puissance de param` etre β.
Par it´ eration : assigner un nœud ` a une communaut´ e
al´ eatoirement choisi de sorte que la taille de la communaut´ e soit sup´ erieur au degr´ es interne du nœud.
Si la communaut´ e ´ elue est complet on exclue un de ses membres choisi d’une mani` ere al´ eatoire. Le nœud exclu devint un nœud non assign´ e.
L’algorithme s’arrˆ ete lorsque tous les nœuds sont assign´ es ` a des
Bibliography I
Gennaro Cordasco and Luisa Gargano,Label propagation algorithm: a semi-synchronous approach, IJSNM1(2012), no. 1, 3–26.
B. H. Good, Y.-A. de Montjoye, and A. Clauset.,The performance of modularity maximization in practical contexts., Physical ReviewE(2010), no. 81, 046106.
Rushed Kanawati,Licod: Leaders identification for community detection in complex networks, SocialCom/PASSAT, 2011, pp. 577–582.
,Yasca: An ensemble-based approach for community detection in complex networks, COCOON (Zhipeng Cai, Alex Zelikovsky, and Anu G. Bourgeois, eds.), Lecture Notes in Computer Science, vol. 8591, Springer, 2014, pp. 657–666.
Reihaneh Rabbany Khorasgani, Jiyang Chen, and Osmar R Zaiane,Top leaders community detection approach in information networks, 4th SNA-KDD Workshop on Social Network Mining and Analysis (Washington D.C.), 2010.
Bibliography II
Andrea Lancichinetti and Santo Fortunato,Limits of modularity maximization in community detection, CoRR abs/1107.1(2011).
,Consensus clustering in complex networks, Sci. Rep.2(2012).
Ian X.Y. Leung, Pan Hui, Pietro Lio, and Jon Crowcroft,Towards real-time community detection in large networks, Phys.
Phy. E.79(2009), no. 6, 066107.
Michael Ovelg¨onne and Andreas Geyer-Schulz,Cluster cores and modularity maximization, ICDM Workshops, 2010, pp. 1204–1213.
Usha N. Raghavan, Roka Albert, and Soundar Kumara,Near linear time algorithm to detect community structures in large-scale networks, Physical Review E76(2007), 1–12.
Bibliography III
Lovro Subelj and Marko Bajec,Robust network community detection using balanced propagation, European Physics Journal B81(2011), no. 3, 353–362.
Massoud Seifi and Jean-Loup Guillaume,Community cores in evolving networks, WWW (Companion Volume) (Alain Mille, Fabien L. Gandon, Jacques Misselis, Michael Rabinovich, and Steffen Staab, eds.), ACM, 2012, pp. 1173–1180.
D Shah and T Zaman,Community detection in networks: The leader-follower algorithm, Workshop on Networks Across Disciplines in Theory and Applications, NIPS, 2010.