Vous êtes sur la page 1sur 71

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE

Ministère de l’Enseignement Supérieur et de la Recherche Scientifique


UNIVERSITÉ MOHAMMED SEDDIK BENYAHIA
JIJEL
FACULTÉ DE SCIENCES EXACTES ET D’INFORMATIQUE

MEMOIRE
Présenté en vue de l’obtention du diplôme de :

Master en Informatique
Option : Intelligence Artificielle
Par :
NECHNACHE Aboubakr
Et
CHARA Bilal

Thème
Une Méthode Pour La Détection Des
Communautés Dans Les Réseaux
Dynamiques
Devant le jury composé de
M me Chettibi Selwa Présidente
me
M Boudebza Souâad Encadreur
M. Labani Merouane Examinateur

—— Année Universitaire 2021/2022 ——


Remerçiements
.

Nous remerçions Allah, le tout-puissant qui nous a donné, la force, le courage, et la pa-
tience d’accomplir ce travail

Notre gratitude, nos vifs remerçiements et nos respects à notre encadrante M me Souâad
Boudebza, pour tous ses judicieux conseils, son temps qu’elle nous a consacré et pour ses
orientations.

Nous remerçions l’ensemble des membres du jury qui nous ont fait l’immense plaisir
d’avoir accepté d’examiner et d’évaluer notre travail.

Merçi aux collègues du travail, merçi aux collègues de l’université pour leurs encoura-
gements.

Un grand merçi à tous les enseignants du département d’Informatique qui ont été im-
pliqués d’une manière ou d’une autre dans la formation en Master et en Licence.
Dédicace
Je tiens à dédier cet humble travail à :

À ma très chère mère


Quoi que je fasse ou que je dise, je ne saurai point te remercier comme il se doit. Ton
affection me couvre, ta bienveillance me qui de et ta présence à mes côtés a toujours été
ma source de force pour affronter les différents obstacles.

A mon très cher père


Tu as toujours été à mes côtés pour me soutenir et m’encourager. Que ce travail traduit
ma gratitude et mon affection.

A mes très chers frères

Puisse Dieu vous donne la santé, le bonheur, le courage et surtout la réussite.

Je remerçie mon binôme Aboubakr pour sa sympathie et sa patience


Et mes amies Imen, Milok, Islam qui ont toujours été là pour moi. Leur soutien
inconditionnel et leurs encouragements ont été d’une grande aide.

Enfin, je remerçie mon directeur M. A. Farhat pour les façilités qu’il m’a fourni pour
compléter ce travail.
A tous ceux qui, par un mot, m’ont donné la force de continuer . . ..

Bilal
Dédicace
Je tiens à dédier cet humble travail à :

À ma très chère mère


Quoi que je fasse ou que je dise, je ne saurai point te remercier comme il se doit.Ton
affection me couvre, ta bienveillance me quide et ta présence à mes côtés a toujours été
ma source de Force pour affronter les différents obstacles.

A mon très cher père


Tu as toujours été à mes côtés pour me soutenir et m’encourager. Que ce travail traduit
ma gratitude et mon affection.

A mes très chers soeurs Biba, Sarah, Mimi et Pipi


A mes très chers frères Mounir, Wahid et Farid

Puisse Dieu vous donne la santé, le bonheur,le courage et surtout La réussite.

Je remerçie mon binôme Bilal pour sa sympathie et sa patience


Et mes amies Hanane, Salah Boukari, Bilal Himeur, Silloh qui ont toujours été
là pour moi. Leur soutien inconditionnel et leurs encouragements ont été d’une grande
aide.

Enfin, je remerçie tous ceux qui, par un mot, m’ont donné la force de continuer . . ..

Aboubakr
Résumé
Les grands réseaux d’interactions (appelés réseaux de terrains) issus de nombreuses dis-
ciplines (sociologie, biologie, informatiques, etc.) peuvent être représentés par des graphes
dont les noeuds représentent les acteurs du phénomène et les liens représentent les in-
teractions entre eux. Ces réseaux exhibent une structure mésoscopique appelée structure
communautaire. Une communautés est vue comme un sous-graphe composé de noeuds
qui sont densément liés entre eux et faiblement liés aux autres noeuds du réseau. Les
réseaux de terrain sont par nature dynamiques. Donc, au fur et à mesure de l’évolution
des interactions dans le réseau, la structure communautaire par conséquent change.
Dans le cadre de ce travail, nous abordons un sujet qui est encore très peu abordé dans
la littérature scientifique, celui de l’analyse multi-échelle temporelle des structures com-
munautaires. Nous proposons un algorithme de détection de communautés dynamiques
baptisé DCMET (Détection de Communautés à Multiples Échelles Temporelles), qui se
base principalement sur l’analyse des réseaux d’interaction à plusieurs échelles temporelles.
Cet algorithme concentre principalement sur le principe de similarité et le clustering des
communautés, il permet de détecter les communautés stables sur différentes échelles tem-
porelles.
Afin de valider notre proposition, nous avons effectué des expérimentations sur des ré-
seaux synthétiques et réels.

Mots-clés : algorithme de détection de communautés, communauté, communautés


dynamiques, analyse multi-échelles temporelles, graphes de terrain.
Abstract
Large networks of interactions (called complex networks) from many disciplines (socio-
logy, biology, computer science, etc.) can be represented by graphs where nodes represent
the actors of the phenomenon and links represent the interactions between them. These
networks exhibit a mesoscopic structure called community structure. A community is seen
as a subgraph composed of nodes that are densely linked to each other and weakly linked
to other nodes in the network. Complex networks are inherently dynamic. Thus, as inter-
actions in the network evolve, the community structure consequently changes.
In this work, we address a topic that is still very little addressed in the scientific literature,
that of the multi-scale temporal analysis of community structures. We propose a dynamic
community detection algorithm called DCMET, which is mainly based on the analysis
of interaction networks at several temporal scales. This algorithm focuses mainly on the
principle of similarity and clustering of communities, it allows to detect stable communi-
ties at different temporal scales.
In order to validate our proposal, we performed experiments on both synthetic and real
networks.

Keywords : community detection algorithm, community, dynamic communities, multi-


scale temporal analysis, complex networks.
TABLE DES MATIÈRES

Table des Matières i

Liste des figures iv

Liste des tableaux vi

Liste des acronymes vii

Introduction générale 1

I État de l’art 4
I.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
I.2 Les réseaux complexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
I.2.1 Définition d’un réseau complexe . . . . . . . . . . . . . . . . . . . . 4
I.2.2 Exemples des réseaux complexes . . . . . . . . . . . . . . . . . . . . 5
I.2.3 Propriétés des réseaux complexes . . . . . . . . . . . . . . . . . . . 5
I.2.3.1 Réseaux sans échelle . . . . . . . . . . . . . . . . . . . . . 5
I.2.3.2 Réseaux de petit monde . . . . . . . . . . . . . . . . . . . 6
I.2.3.3 Structure communautaire . . . . . . . . . . . . . . . . . . 7
I.3 Notion de la théorie des graphes . . . . . . . . . . . . . . . . . . . . . . . . 7
I.4 Représentation des réseaux dynamiques . . . . . . . . . . . . . . . . . . . . 8
I.4.1 Graphes agrégés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
I.4.2 Séries de snapshots . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
I.4.3 Réseau temporel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
I.5 Problème de la détection de communautés . . . . . . . . . . . . . . . . . . 9
I.6 Détection de communautés statiques . . . . . . . . . . . . . . . . . . . . . 10

i
Table des matières

I.6.1 Méthodes classiques . . . . . . . . . . . . . . . . . . . . . . . . . . 10


I.6.1.1 Partitionnement de graphes . . . . . . . . . . . . . . . . . 10
I.6.1.2 Clustering hiérarchique . . . . . . . . . . . . . . . . . . . . 11
I.6.1.3 Clustering par partition . . . . . . . . . . . . . . . . . . . 12
I.6.2 Approches basées sur la modularité . . . . . . . . . . . . . . . . . . 12
I.6.2.1 Greedy optimization . . . . . . . . . . . . . . . . . . . . . 13
I.6.2.2 Recuit simulé . . . . . . . . . . . . . . . . . . . . . . . . . 14
I.6.2.3 Optimisation extrême . . . . . . . . . . . . . . . . . . . . 15
I.7 Détection de communautés dynamiques . . . . . . . . . . . . . . . . . . . . 15
I.7.1 Opérations d’évolution de communautés . . . . . . . . . . . . . . . 15
I.7.2 Approches pour la détection de communautés dynamiques . . . . . 17
I.7.2.1 Approches travaillant sur des instantanés . . . . . . . . . . 17
I.7.2.2 Approches travaillant sur des réseaux temporels . . . . . . 22
I.7.3 Avantages et inconvénients des approches de détection de commu-
nautés dynamiques . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
I.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

II Proposition 26
II.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
II.2 Exigences de notre méthode . . . . . . . . . . . . . . . . . . . . . . . . . . 27
II.2.1 Analyser les réseaux dynamiques à plusieurs échelles temporelles . . 27
II.2.2 Détecter les communautés stables . . . . . . . . . . . . . . . . . . . 27
II.3 Méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
II.3.1 Partitionnement du graphe d’interactions . . . . . . . . . . . . . . . 28
II.3.2 Clustering des instantanés . . . . . . . . . . . . . . . . . . . . . . . 30
II.3.3 Détection de communautés . . . . . . . . . . . . . . . . . . . . . . . 31
II.3.4 Filtrage de communautés . . . . . . . . . . . . . . . . . . . . . . . . 31
II.3.5 Choix des fonctions et des paramètres . . . . . . . . . . . . . . . . . 31
II.3.5.1 Détection de communauté - DC . . . . . . . . . . . . . . . 31
II.3.5.2 Similarité des noeuds de la communauté - NCS . . . . . . 33
II.4 Exemple explicatif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
II.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

III Implémentation Et Expérimentation 40


III.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
III.2 Implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
III.2.1 Environnement de développement . . . . . . . . . . . . . . . . . . . 40

ii
Table des matières

III.2.1.1 Langage de programmation . . . . . . . . . . . . . . . . . 40


III.2.1.2 Platforme et IDE . . . . . . . . . . . . . . . . . . . . . . . 41
III.2.1.3 Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
III.2.2 Présentation de l’outil DCMET . . . . . . . . . . . . . . . . . . . . 43
III.3 Expérimentations et résultats . . . . . . . . . . . . . . . . . . . . . . . . . 44
III.3.1 Validation sur des donnés synthétiques . . . . . . . . . . . . . . . . 45
III.3.2 Validation sur des jeux de données réelles . . . . . . . . . . . . . . . 45
III.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

Conclusion générale et perspectives 49

Bibliographie vii

iii
TABLE DES FIGURES

I.1 Un exemple de réseau sans échelle complexe . . . . . . . . . . . . . . . . . 6


I.2 Exemple de réseau d’un petit monde . . . . . . . . . . . . . . . . . . . . . 6
I.3 Graphe non orienté G . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
I.4 Graphe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
I.5 Dendogram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
I.6 Un aperçu de l’algorithme de Louvain . . . . . . . . . . . . . . . . . . . . . 14
I.7 Opérations d’évolution de communautés . . . . . . . . . . . . . . . . . . . 16
I.8 Illustration de l’approche travaillant sur des instantanés. . . . . . . . . . . 18
I.9 Description de l’approche de détection statique basée sur l’informer succes-
sives. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
I.10 Exemple de l’approche de détection communautaire sur les réseaux temporels. 22

II.1 Partitionnement de graphe d’interaction . . . . . . . . . . . . . . . . . . . 29


II.2 Instantané T1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
II.3 Instantané T2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
II.4 Instantané T3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
II.5 Instantané T4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
II.6 Instantané T5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
II.7 Instantané T6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
II.8 Matrice de similarité de l’itération 0 . . . . . . . . . . . . . . . . . . . . . . 35
II.9 Union de cluster{1, 2, 5} . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
II.10 Union de cluster {3, 4} . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
II.11 Union de cluster {6} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
II.12 Matrice de similarité de l’itération 1 . . . . . . . . . . . . . . . . . . . . . . 36
II.13 Union de cluster {1, 2, 3, 4, 5} . . . . . . . . . . . . . . . . . . . . . . . . . 37

iv
Table des figures

II.14 Union de cluster {6} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37


II.15 Matrice de similarité de l’itération 2 . . . . . . . . . . . . . . . . . . . . . . 38
II.16 Unions de cluster de dernier itération{6} . . . . . . . . . . . . . . . . . . . 38

III.1 Site Web Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41


III.2 La platform Anaconda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
III.3 IDE Spyder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
III.4 Interface de l’application . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
III.5 Interface des tests sur les données synthétiques . . . . . . . . . . . . . . . 44
III.6 Interface des tests sur les données réelles . . . . . . . . . . . . . . . . . . . 44
III.7 Taux de participation des classes . . . . . . . . . . . . . . . . . . . . . . . 46
III.8 Communautés stables de différentes longueurs sur les données Sociopatterns
Primary School . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

v
LISTE DES TABLEAUX

I.1 Avantages et inconvénients des approches de détection de communautés


dynamiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

III.1 Comparaison des scores NMI obtenus par la méthode proposée (DCMET),
la méthode de [Boudebza et al., 2019] et la méthode de [Greene et al., 2010]. 45

vi
LISTES DES ACRONYMES

DCMET Détection Communauté Multi-Échelle Temporelle


DCD Detection Communauté Dynamique
ILCD Intrinsic Longitudinal Community Detection
CPM Clique Percollation Method
OLPCM Online Label Propagation CPM
NMI Information Mutuelle Normalisée
DC Detection Communauté
TMSCD Temporal Multi-Scale Community Detection
DESC Detect Evolving Community Structure
RFID Radio Frequency IDentification
IDE Integrated Development Environment
NP Nondeterministic Polynomial

vii
INTRODUCTION GÉNÉRALE

L’analyse des réseaux issus des données réelles, aussi appelés graphes de terrains, est
un domaine ayant conduit à de nombreux travaux ces dernières années, dans de nom-
breuses domaines. En effet, il est possible de représenter des systèmes réels sous la forme
de réseaux. On peut notamment citer en informatique, le Web peut être vu comme un
ensemble de pages web (simples fichiers texte) reliées entre elles par des liens hypertextes.
Internet peut être vu comme un ensemble de routeurs interconnectés par des câbles, en
biologie, le cerveau est un ensemble de neurones en interaction, et une cellule peut être
modélisée comme un ensemble de protéines qui interagissent pour fonctionner.
Récemment, le développement technologique a conduit à la naissance d’immenses réseaux,
pouvant contenir des milliards de noeuds et de liens, et pour lesquels il est possible d’ob-
tenir de grandes quantités d’information, ces réseaux sont appelés les grands graphes ou
graphes de terrains. Ces derniers sont devenus un sujet d’étude à part entière. Une parti-
cularité des graphes de terrains, que ce sont souvent des graphes dynamiques, ils évoluent
au cours du temps, ce qui se traduit par l’ajout et la disparition des noeuds et des liens.
La dynamique de ces réseaux est donc un facteur important à prendre en compte lors de
l’analyse de ces réseaux. L’une des problématiques majeures dans l’analyse des réseaux
est celle de la détection de leurs structures communautaires dans le temps.
Nombreuses sont les solutions qui ont été proposées pour résoudre le problème de détection
de communautés dynamiques. Une solution classique consiste à considérer le réseau dyna-
mique comme une série d’instantanés et d’analyser ensuite l’évolution des communautés
entre ces instantanés. Cette solution a l’avantage de pouvoir réutiliser les algorithmes
de détection de communautés statiques sur lesquels de nombreux chercheurs travaillent
depuis longtemps, mais elle présente néanmoins deux problèmes :
— Problème de définition de l’échelle temporelle : En fait, les changements des
réseaux dynamiques peuvent être observées à différentes échelles : années, mois, jour,

1
Liste des tableaux

heure et même à des échelles plus petites. Par exemple, si l’on observe des interac-
tions entre chercheurs dans un laboratoire, on peut s’attendre à trouver des groupes
de personnes correspondant à des réunions ou des pauses-café, interagissant avec une
fréquence élevée sur de courtes périodes de temps, ou à des membres d’un projet
avec une fréquence moyenne à moyen terme, ou encore à des groupes de coordination
interagissent à fréquence faible sur de plus longues périodes de temps, etc [Boudebza
et al., 2019]. Par conséquent, les communautés peuvent exister à différentes échelles
de temps : à court terme, à moyen terme et à long terme. Le modèle d’instanta-
nés nécessite toujours de définir l’échelle temporelle d’analyse, c-à-d, la taille de la
fenêtre temporelle qui est souvent choisie de façon arbitraire. Donc, l’analyse des
communautés sur une échelle temporelle arbitraire va nécessairement passer à coté
de certaines communautés, les communautés formées par les interactions de faible
latence sont invisibles lorsque l’échelle temporelle est plus petite, ainsi les commu-
nautés formées par des interactions de haute fréquence ne peuvent pas être détectés
sur une échelle temporelle plus grande.
— Problème d’instabilité des communautés : Une question importante pour la
détection des communautés est la stabilité [Aynaud and Guillaume, 2010]. De nom-
breux algorithmes de détection de communautés statiques sur lesquels reposent les
méthodes dynamiques travaillant sur des instantanés sont instables car ils peuvent
fournir des résultats très différents pour des réseaux similaires. Ce problème devient
important dans les situations dynamiques, car il est important de s’assurer que l’évo-
lution des communautés détectées correspond bien aux modifications structurelles
et n’ait pas d’effets secondaires dus aux algorithmes utilisés.
L’objectif principal de ce mémoire est de concevoir un algorithme de détection de commu-
nautés pour les réseaux dynamiques, qui tente d’offrir une solution à ces deux problèmes.
Pour cela, nous avons défini une méthode qui permet une analyse multi-échelle des grands
graphes d’interaction, et garantit la stabilité des communautés. L’algorithme fonctionne
sur quatre étapes : le partitionnement de graphe d’interactions, après dans la deuxième
étape le clustering des instantanés, ensuite la détection de communautés, et finalement le
filtrage des communautés.
L’approche proposée est évaluée sur différents types de réseaux, des réseaux synthétiques
et des réseaux réels. Nous avons testé notre méthode avec un générateur des réseaux
dynamique qui permet de générer des communautés dynamiques à plusieurs échelles tem-
porelles. Les résultats sont composés en terme de NMI (Normalisée Mutuelle Informa-
tion). Notre méthode a été également testé sur des réseaux réels collecté par SocioPat-
terns [Stehlé et al., 2011]. Les résultats ont été validé qualitativement. Les résultats obte-

2
Liste des tableaux

nus sur les deux séries de tests sont satisfaisants.

Organisation du mémoire
Ce mémoire est organisé en 3 chapitres organisés comme suit :
Le chapitre I présente un bref état de l’art sur les réseaux complexe, les propriétés et
aussi les définissions de quelques concepts nécessaires sur la théorie des graphes. De plus
ce chapitre présente la notion de communauté ainsi une revue des recherches liées à la
détection de communautés dynamiques.
Le chapitre II est consacré à la présentation de notre nouvel algorithme proposé. Tout
d’abord, nous nous intéressons aux exigences de notre algorithme. Ensuite, nous détaillons
notre proposition baptisé DCMET (Détection Communauté Multi Échelle Temporelle)
sous ses différent angles, à savoir le partitionnement du graphe d’interactions, clustering
des instantanés, la détection de communautés,et enfin le filtrage des communautés.
Le chapitre III présente les environnements de développement, et détaille les expérimen-
tations menées pour juger l’intérêt de notre algorithme proposé. Les résultats de ces
expérimentations sont discutés dans ce chapitre afin de mieux valider notre méthode.
Ce travail se termine par une conclusion générale et des respectives.

3
CHAPITRE I

ÉTAT DE L’ART

I.1 Introduction
Ce chapitre présente l’état de l’art se rapportant à la détection de communautés.
Nous introduisons tout d’abord la notion du réseau complexe dans la section I.2, et nous
présentons ensuite des généralités sur la théorie des graphes dans la section I.3. Dans la
section I.4, nous présentons les différentes représentations des réseaux dynamiques. La
définition d’une communauté, ainsi que sa problématique de détection seront présentés
dans la section I.5. Après, dans la section I.6 nous présentons les principales approches
de détection de communautés statiques. Ensuite, nous décrivons dans la section I.7 les
principales approches de la détection de communautés dynamiques. Nous terminons ce
chapitre par une analyse critique de ces approches en soulignant leurs avantages et leurs
inconvénients.

I.2 Les réseaux complexes

I.2.1 Définition d’un réseau complexe


Un réseau complexe est un réseau avec une architecture et une topologie complexe et
irrégulière. Comme tous les réseaux, ils sont constitués de nœuds représentant des objets,
reliés entre eux par des liens. Ces réseaux sont des représentations abstraites de relations
réelles qui existent principalement dans divers systèmes biologiques et technologiques.
Permis les réseaux complexes on trouve les réseaux de terrain. Ces réseaux sont des graphes
de grande taille. Elles sont formées à partir de données collectées qui correspondent à la
réalité du terrain. En revanche, le réseau généré ne correspond pas aux données réelles.

4
I.2. Les réseaux complexes

I.2.2 Exemples des réseaux complexes


Les réseaux complexes existent dans de nombreux domaines, tels que la sociologie,
la biologie, la psychologie et l’informatique. Un réseau informatique, par exemple, est
constitué d’un ensemble d’équipements reliés entre eux pour échanger des informations,
chaque équipement est présenté comme un noeud du réseau. Un réseau biologique est tout
réseau qui s’applique aux systèmes biologiques. Un tel réseau est un système qui a des
sous-unités liées dans son ensemble, telles que des unités d’espèces liées tout au long d’un
réseau trophique. Il fournit des représentations mathématiques des connexions trouvées
dans la recherche écologique, évolutive et physiologique, telles que les réseaux de neurones.
Le réseau social est une structure sociale composée d’un ensemble d’acteurs sociaux, d’un
ensemble de liens binaires et d’autres interactions sociales entre les acteurs.

I.2.3 Propriétés des réseaux complexes


De nombreuses propriétés caractérisent les réseaux complexes. Les trois bien connues
et bien étudiées sont la propriété sans-échelle, la propriété petit-monde, et la structure
communautaire que nous décrivons brièvement dans cette section.

I.2.3.1 Réseaux sans échelle

Un réseau sans échelle est un réseau dont la distribution des degrés suit une loi de
puissance. En d’autres termes, la fraction P (k) d’un nœud de réseau avec k connexions à
d’autres nœuds s’applique aux plus grandes valeurs de k.
De nombreux réseaux sont signalés comme étant sans échelle, bien que l’analyse statistique
réfute bon nombre de ces affirmations et en conteste sérieusement d’autres. De plus,
certains soutiennent que le simple fait de savoir que la distribution des degrés est à queue
grasse est plus important que de savoir si un réseau est sans échelle par une définition
statistiquement rigoureuse. La figure I.1 montre un exemple d’un réseau complexe sans
échelle.

5
I.2. Les réseaux complexes

Figure I.1 – Un exemple de réseau sans échelle complexe

I.2.3.2 Réseaux de petit monde

Un réseau de petit monde est un graphe mathématique dans lequel la plupart des
nœuds ne sont pas voisins les uns des autres, mais les voisins d’un nœud donné sont
susceptibles d’être voisins les uns des autres, et la plupart des nœuds peuvent être atteints
par des sauts ou des étapes à travers un petit nombre de nœuds. Les réseaux de petit monde
ont tendance à contenir des cliques, c’est-à-dire des sous-réseaux avec des connexions
entrent presque deux nœuds. La figure I.2 montre un exemple d’un réseau complexe de
petit monde.

Figure I.2 – Exemple de réseau d’un petit monde

6
I.3. Notion de la théorie des graphes

I.2.3.3 Structure communautaire

La structure communautaire est l’une des caractéristiques les plus importantes obser-
vées dans les réseaux complexes. Une communauté est un sous-graphe dont les sommets
sont plus liés entre eux qu’avec le reste du réseau. L’extraction de la structure commu-
nautaire du réseau est appelée détection de communautés. Celle-ci est importante, car elle
permet de comprendre la structure et le fonctionnement du réseau.

I.3 Notion de la théorie des graphes


L’histoire de la théorie des graphes a probablement commencé par les travaux d’Euler
au 18ème siècle, et découle de l’étude de certains problèmes, comme le problème du
pont à Königsberg [Sachs et al., 1988]. La théorie des graphes a ensuite été développée
dans diverses disciplines telles que la chimie, la biologie, les sciences sociales, etc. C’est
une branche des mathématiques à part entière depuis le début du XXe siècle, grâce aux
travaux de [Neumann, 1976, Berge, 1983, Biggs et al., 1993]. De manière générale, les
graphes permettent de représenter la structure et les connexions d’ensembles complexes
en exprimant les relations entre leurs éléments.
Dans cette section nous présentons la définition d’un graphe et les notions classiques sur
les graphes. .
Définition d’un graphe : C’est un couple G = (S, A) composé par un ensemble fini des
sommets (noeuds) S et un ensemble de couples non ordonnés de sommets nommés liens
(arcs) A.
Un graphe G est la donnée d’un couple G = (S, A) tel que :
— S est un ensemble fini de sommets.
— A est un ensemble de couples non ordonnés de sommets {Si , Sj } ∈ S 2 .
— n = |S| le nombre de noeuds.
— m = |A| le nombre de liens.
— (i, j) une arête du graphe. i et j sont dits adjacents, ou voisins.

7
I.4. Représentation des réseaux dynamiques

Figure I.3 – Graphe G

La figure I.3 représente le graphe G = (S, A) Avec :

S = {A, B, C, D, E, F } et A = {{A, B}, {C, D}, {D, E}, {A, F }, {B, D}, {C, F }} (I.1)

I.4 Représentation des réseaux dynamiques


Dans le cadre de ce travail, nous nous intéresserons à l’étude des réseaux dynamiques.
La représentation de ces réseaux présente des défis importants, compte tenu des conditions
aux limites non uniformes entre la nature dynamique du réseau d’une part et le compor-
tement statique du graphe d’autre part. En fait, les réseaux sont souvent représentés sous
trois formes : graphes agrégés, séries de snapshots et réseaux temporels.

I.4.1 Graphes agrégés


Une façon simple pour traiter un réseau dynamique est de le simplifier en un seul
réseau statique en regroupant tous les contacts entre chaque paire de nœuds en une seule
arête. On peut construire un réseau statique binaire où les nœuds sont seulement liés
ou non, mais évidemment, beaucoup d’informations sont perdues. Une autre alternative
consiste à incorporer la fréquence d’interaction entre les nœuds en construisant des réseaux
pondérés. Toutes ces approches ne peuvent jamais conserver toutes les informations sur
l’évolution temporelle du réseau. Elles ne permettent pas une analyse longitudinale, par
exemple le suivi de l’évolution des communautés.

8
I.5. Problème de la détection de communautés

I.4.2 Séries de snapshots


Le réseau en évolution est modélisé par une série d’instantanés, chacun d’entre eux
étant un réseau statique représentant l’état du réseau à un moment donné [Aynaud, 2011].
Il y a deux façons pour construire un instantané, soit en capturant les contacts qui existent
à un pas de temps donné, soit en agrégeant tous les contacts pendant une période de
temps donnée. Le principal problème de cette approche est de déterminer la subdivisions
temporelle.

I.4.3 Réseau temporel


Les réseaux temporels conservent toutes les informations temporelles connues. Il existe
deux modèles principaux : la série de contact et le graphe d’intervalle. Dans une séquence
de contact, chaque interaction est représentée comme un triplet (i, j, t) où i et j sont
les entités en interaction et t est le moment où la relation est activée. Dans un graphe
d’intervalles, l’interaction est représentée comme un quadruplé (i,j,t,δt), ce qui signifie
que i est impliqué dans un contact avec j de t à δt. Dans ces modèles, seule l’information
temporelle sur les interactions est représentée, il n’y a pas d’information temporelle sur le
nœud.

I.5 Problème de la détection de communautés


Définition d’une communauté : Jusqu’à ce jour, il n’y a pas de consensus sur
la définition de communautés. D’après Fortunato [Fortunato, 2010] une communauté est
un ensemble d’entités ayant beaucoup d’interactions entre eux et peu d’interactions avec
l’extérieur. Girvan et Newman en 2002 [Girvan and Newman, 2002] définissent une com-
munauté comme un ensemble d’entités qui ont des relations internes plus que des relations
externes.
Radicchi et al [Radicchi et al., 2004] ont défini une communauté on se basant sur les
degrés internes et externes des noeuds. Les sous-graphes sont considérés comme une com-
munauté forte si le degré interne de l’un de ses sommets est supérieur au degré interne de
tout autre sous-graphe. Une communauté est faible si son degré interne dépasse le degré
interne total de ses sommets dans toutes les autres communautés.
La définition d’une communauté se limite généralement à la division d’ensembles de
nœuds. Par exemple, cela n’inclut pas un nœud appartenant à plusieurs communautés
à des degrés divers, cela semble naturel dans les réseaux sociaux. Il existe également des
problèmes liés à la taille de la communauté. On peut en effet parfaitement imaginer qu’une

9
I.6. Détection de communautés statiques

communauté elle-même en contienne quelques-uns et ainsi de suite, créant une hiérarchie


communautaire. Dans quelle mesure est-il décomposé ? Quel est le niveau concerné ? Même
si plusieurs études vont dans ce sens [Melançon, 2006,Aynaud and Guillaume, 2011b,Wang
and Fleury, 2009], ces questions restent largement sans réponse aujourd’hui.
La détection de communautés est un enjeu crucial lors de l’analyse des systèmes com-
plexes, par exemple, on peut souhaiter étudier l’interaction des liens entre individus, entre
protéines, ou entre différents sites. Ces données peuvent être représentées sous forme de
graphes, où chaque nœud représente un individu et un lien représente l’interaction entre
deux individus. Ces réseaux ont la propriété d’être divisés en communautés. La détec-
tion de communauté aborde deux thèmes classiques du partitionnement de graphes et
du clustrering des données. La première, introduite à l’origine pour la parallélisation des
processus, tente d’allouer des points représentés par des sommets du graphe tout en mi-
nimisant les échanges représentés par des arêtes. Le deuxième sujet du clustrening de
données est un sujet général plus large où nous cherchons à regrouper des données ayant
des caractéristiques communes.

I.6 Détection de communautés statiques


Il existe de nombreux travaux sur le problème de détection des communautés dans
les réseaux statiques. Pour ce problème les chercheurs explorèrent des méthodes et des
solution, nous retenons deux grandes catégories des méthodes de la détection des commu-
nautés statique, la première catégorie regroupe les méthodes classiques de partitionnement
et de clustering alors que la deuxième contient des méthodes basées sur la modularité.

I.6.1 Méthodes classiques

I.6.1.1 Partitionnement de graphes

L’objectif du partitionnement de graphes est de partitionner un graphe donné en un


ensemble prédéfini X de sous-graphes, appelés partitions. Le problème de partitionnement
de graphes est NP-difficile. Il existe cependant de nombreuses solutions . L’une des pre-
mières solutions proposées était de rechercher des partitions d’une taille donnée, souvent
de la même taille. La méthode la plus connue est la méthode de [Lin and Kernighan,
1973]. Mais cette contrainte de taille était trop stricte pour fonctionner réellement et a
ensuite été assouplie, de manière à chercher un nombre spécifique de communautés sans
spécifier la taille exacte.
Une autre solution est basée sur les vecteurs propres de la matrice de Laplace, cette

10
I.6. Détection de communautés statiques

catégorie est appelée méthode de bissection spectrale [Spielman and Teng, 1996].

I.6.1.2 Clustering hiérarchique

L’approche hiérarchique est basée sur la définition d’une mesure de similarité entre les
nœuds du réseau. Elle se divise en deux catégories : agglomérative et divisive.

Figure I.4 – graphe Figure I.5 – Exemple de dendogram

I.6.1.2.1 Approche agglomérative : L’approche agglomérative est de type ascen-


dant, qui consiste à placer chaque nœud dans une communauté différente. Suppose une
structure dans laquelle chaque nœud du graphe représente une communauté. On com-
mence avec n communautés (n est le nombre de nœuds). Tout d’abord, on calcule la dis-
tance entre les communautés et on fusionne les deux communautés les plus rapprochées
de la nouvelle communauté. Ensuite, à chaque itération, les deux communautés les plus
similaires sont regroupées jusqu’à ce que tous les nœuds soient dans la même communauté.
La question de savoir si deux communautés sont proches les unes des autres est fondée
sur la modularité proposée par [Newman, 2004]. La modularité représente la différence
entre la valeur d’adjacence entre deux noeuds d’une même communauté et la probabilité
qu’ils soient reliés avec la modularité. Par conséquent, deux communautés sont fusionnées
seulement lorsque leur union répond à la condition susmentionnée. Concrètement, la mo-
dularité vise à optimiser le nombre de liaisons au sein des communautés. Généralement,
les algorithmes d’optimisation de la modularité visent à trouver la meilleure qualité de
coupe possible dans un délai raisonnable [Idrissa Sarr, 2016]. La figure I.5 montre les dif-
férentes étapes de ce processus peuvent être représentées sous la forme d’un arbre appelé
dendrogramme [Talbi, 2013], une feuille est une communauté avec un seul nœud et une
racine représentant l’ensemble du graphe.

I.6.1.2.2 Approche divisive : L’approche divisive est de type descendante, elle place
d’abord tous les nœuds dans la même communauté, puis supprime les liens entre les nœuds

11
I.6. Détection de communautés statiques

ayant une faible similarité. Par conséquent, la communauté mère est décomposée en plu-
sieurs partitions. Ce processus se répète jusqu’à ce que tous les nœuds soient dans une
communauté. Chaque algorithme de cette catégorie définit ses propres critères de sup-
pression de liens à chaque itération [Moctar, 2019]. Le premier exemple de cette approche
est l’algorithme de [Girvan and Newman, 2002], où l’heuristique utilisée pour sélectionner
les liens à supprimer à chaque itération consiste à choisir le lien avec la plus grande cen-
tralité d’intermédiarité. Rappelons que la centralité intermédiaire d’un lien e est donnée
par le rapport du nombre de chemins les plus courts passant par e et reliant n’importe
quelle paire de nœuds dans le graphe au nombre total de chemins les plus courts dans
le graphe. L’heuristique appliquée dans l’algorithme 1 de [Girvan and Newman, 2002] est
basée sur le fait que les liens inter-communautaires ont nécessairement une forte centralité
d’intermédiarité. Le principal inconvénient de cet algorithme est sa complexité élevée.

Algorithme 1 Algorithme de Girvan-Newman


1: Pour chaque arête d’un graphe, calculer la centralité d’interdépendance de l’arête.
2: Supprimer l’arête ayant la plus grande centralité d’interdépendance.
3: Calculer la centralité d’interdépendance pour chaque arête restante.
4: Répéter les étapes 2 à 4 jusqu’à ce qu’il n’y ait plus d’arêtes.

I.6.1.3 Clustering par partition

Dans cette approche, la détection de communauté est formulée comme un problème de


regroupement de données où l’objectif est de diviser les points de données en K groupes
disjoints afin de minimiser/maximiser un coût donné en fonction d’une mesure de dis-
tance entre les nœuds. L’algorithme de clustering par partition le plus populaire est le
K-means [MacQueen et al., 1967]. L’algorithme commence à partir de k centroïdes ini-
tiaux (centres des clusters), k étant le nombre souhaité de clusters. Chaque point de
données est ensuite attribué au centroïde le plus proche en fonction de la distance eucli-
dienne. Ensuite, la moyenne de la collection de points de données (clusters) obtenue est
calculée et les centroïdes sont mis à jour à la valeur moyenne. Les étapes d’affectation et
de mise à jour sont répétées jusqu’à ce que les centroïdes cessent de changer.
Le principal inconvénient de ces méthodes est qu’elles exigent une connaissance préalable
du nombre de clusters.

I.6.2 Approches basées sur la modularité


Introduite à l’origine pour définir un critère d’arrêt pour l’algorithme de [Girvan and
Newman, 2002], est rapidement devenue un élément essentiel de nombreuses méthodes

12
I.6. Détection de communautés statiques

de clustering. La modularité est de loin la fonction de qualité la plus utilisée et la plus


connue, elle s’écrire comme suit :
!
1 X ki kj
Q(C) = Aij − δ (Ci , Cj ) (I.2)
2m ij∈c 2m

Ou :
— Aij est un élément de la matrice d’adjacence entre les noeuds i et j ;
— ki et kj sont les degrés de centralité des noeuds i et j respectivement ;
— ci et cj sont les communautés de noeuds ;
— C est la communauté étudiée ;
— m est le nombre de connexions observées ;
— δ(Ci , Cj ) est le symbole delta de Kronecker [Law-Kam-Cio, 2014], qui indique si les
noeuds i et j appartiennent à la même communauté ;
ki kj
— 2m
est l’espérance de la connexion sous hypothèse de distribution aléatoire ;
Elle représente l’écart entre le nombre de connexions observées et le nombre théorique
(espéré) obtenu si les connexions avaient été distribuées aléatoirement entre les noeuds
(plus communauté compacte, plus le résultat de modularité est élevé).
La modularité d’un réseau après partitionnement en k communautés est définit comme
suite :
k
!
1 X X ki kj
Q= Aij − (I.3)
2m k=1 ij∈Ck 2m

Nous présentons ci-dessous quelques méthodes de détection de communautés qui sont


basées sur les techniques d’optimisation de la modularité.

I.6.2.1 Greedy optimization

Une méthode d’optimisation de la modularité basée sur le technique de regroupe-


ment hiérarchique de agglomérative est proposée par Girvan et Newman. L’algorithme
de [Girvan and Newman, 2002] algorithme a été le premier algorithme à maximiser la
modularité. Il s’agit d’une méthode de regroupement hiérarchique agglomérative, où, ini-
tialement, chaque nœud du graphe est considéré comme une seule communauté, puis elles
sont fusionnées de manière itérative afin d’obtenir la plus grande valeur de modularité.
Une autre méthode bien connue est l’algorithme de Louvain de [Blondel et al., 2008] 2.
Cet algorithme est un processus itératif de deux phases qui se répète jusqu’à ce que la
modularité ne peut plus augmenter.

13
I.6. Détection de communautés statiques

L’algorithme de Louvain [Blondel et al., 2008] est définit dans l’algorithme 2 et un exemple
qui illustre son fonctionnement est présenté dans à la figure I.6.

Algorithme 2 Algorithme de Louvain


1: Initialisation de la communauté et définir chaque nœud comme une communauté
distincte.
2: Trouve toutes les communautés connectées au noeud 1, et calcule le changement de
modularité après avoir déplacé le noeud 2 vers chaque communauté voisine. Déplace
le noeud 1 vers la communauté qui peut augmenter la modularité au maximum
3: Itéré sur tous les noeuds et exécuté l’étape 2 jusqu’à ce qu’il n’y ait plus de noeuds à
déplacer et obtenir une couche de partition de communauté.
4: Fusionnement de chaque communauté de l’étape 3 en un nouveau nœud. La relation
entre les nouveaux nœuds est la relation entre les communautés d’origine. Revenir
à l’étape 1 jusqu’à ce que tous les nœuds soient finalement fusionnés en une seule
communauté. La partition de la communauté à plusieurs niveaux est obtenue, et la
partition avec la plus grande modularité est sélectionnée comme résultat final de la
partition.

Figure I.6 – Un aperçu de l’algorithme de Louvain

I.6.2.2 Recuit simulé

Le recuit simulé est une méta-heuristique stochastique pour les problèmes d’optimi-
sation globale, évitant le risque d’être piégé dans des minima locaux. Tout d’abord, l’al-
gorithme commence par partitionner le réseau en partitions aléatoires. Ensuite, à chaque
itération, les marches aléatoires locales et globales sont à nouveau exécutées en fonction
de la modularité. Le déplacement local permet de déplacer aléatoirement un nœud d’un
module à un autre. Le mouvement global consiste à scinder et à fusionner des modules.
Le travail présenté par [Guimera and Amaral, 2005] introduit le principe du calcul de
la température, à la température t, des mouvements sont proposés et acceptés avec une

14
I.7. Détection de communautés dynamiques

certaine probabilité, par exemple : déplacement des nœuds du modèle vers un autre ou
fusion/division de modules.

I.6.2.3 Optimisation extrême

L’optimisation extrême est une méta-heuristique pour les problèmes d’optimisation


combinatoire, apparue pour la première fois dans le domaine de la physique statistique
par [Boettcher and Percus, 1999]. Elle consiste essentiellement à optimiser les variables
globales en améliorant les variables locales extrêmes. Cette technique a été appliquée
au problème d’optimisation de la modularité par [Duch and Arenas, 2005]. L’auteur a
utilisé la modularité comme variable globale pour optimiser et définir l’aptitude du nœud
(le rapport de la modularité locale d’un nœud à son degré) comme variable locale pour
le processus d’optimisation extrême. L’optimisation extrême se développe comme suit :
commence par la division aléatoire du réseau en deux partitions avec le même nombre de
nœuds. Ensuite, à chaque itération, déplacer le nœud avec la qualité d’ajustement la plus
faible de sa propre communauté à une autre. Cette étape nécessite de modifier la structure
de la communauté et de recalculer l’aptitude de nombreux autres nœuds. Ce processus
est répété jusqu’à ce qu’aucune modularité ne puisse être améliorée. Supprimer ensuite
les segmentations inter-communautaires pour créer des réseaux de sous-communauté et
continuer de manière récursive sur chaque réseau de sous-communauté jusqu’à ce que
l’atteignissions à l’état optimal avec la valeur de modularité la plus élevée.

I.7 Détection de communautés dynamiques


Toutes les méthodes et définitions présentées jusqu’ici s’appliquent aux réseaux sta-
tiques. Cependant, la plupart des données sont dynamiques, c’est à dire le réseau change
au cours du temps. Cet aspect dynamique pose de nombreuses questions sur le sujet de la
détection de communautés. Dans cette section, nous allons commencer par introduire les
différentes opérations d’évolution des communautés. Nous présentons ensuite une revue
sur les différentes approches pour détecter les communautés dans des réseaux dynamiques.
Un résumé des principales forces et limitations ainsi qu’une comparaison de ces approches
sera présenté à la fin de cette section.

I.7.1 Opérations d’évolution de communautés


Le processus d’identification d’une communauté dynamique consiste à rechercher des
communautés importantes qui peuvent émerger de différentes manières à chaque étape de

15
I.7. Détection de communautés dynamiques

l’évolution du réseau. Une des premières études portant sur le suivi des communautés est
décrite dans [Palla et al., 2007]. L’auteur définit «six transformations possibles de la com-
munauté : naissance, mort, croissance, contraction, fusion et division»(voir figure I.7). Une
opération similaire est réalisée par [Asur et al., 2009] est également mentionné [Greene
et al., 2010].
[Bródka et al., 2013], identifie sept évolutions possibles de la dynamique des communau-
tés : rétrécissement, expansion, regroupement, clivage, apparition, disparition, continue.
Sauf le dernier, les six autres sont les mêmes que ceux définis par [Palla et al., 2007]. [Ca-
zabet, 2013]rajoute une huitième opération, appelé résurgence.

Figure I.7 – Opérations d’évolution communautaire dans les réseaux dynamiques. Figure
de [Palla et al., 2007]

Plus précisément, l’opération d’évolution des communautés dynamiques peut être ex-
primée comme suit :
— Croissance : la communauté grandit en intégrant des nouveaux noeuds/liens.
— Contraction : la communauté se rétrécit en raison de la perte de certains nœuds/liens.
— Fusion : Plusieurs communautés sont fusionnées en une seule.
— Division : diviser la communauté en plusieurs petites communautés.
— Naissance : La combinaison nœuds/liens forme une nouvelle communauté à l’instant
présent.
— Mort : La communauté qui existait à l’instant précédent disparaît à l’instant pré-
sent. La disparition d’une communauté peut se produire dans deux situations : soit
tous les nœuds de la communauté disparaissent, comme une communauté liée aux
saisons, soit les liens entre les nœuds disparaissent à un instant donné, on dit alors
Communauté événementielle.

16
I.7. Détection de communautés dynamiques

— continue : la communauté est constituée de nœuds/liens qui restent les mêmes d’un
instantané à l’autre.
— Résurgence : Les communautés disparaissent à certains moments puis réapparaissent
sous une forme identique ou très similaire quelque temps plus tard. C’est le cas des
communautés cycliques. Concernant l’inéquivalence entre «résurgence »et «mort +
naissance », il faut noter qu’au niveau de «résurgence » :
— La disparition et la renaissance d’une communauté ne sont pas continues.
— Les communautés qui en résultent peuvent subir des changements structurels
(notamment dans la répartition des liens).

I.7.2 Approches pour la détection de communautés dynamiques


Cette section présente les principales méthodes de détection des communautés dyna-
miques. Un résumé des principales forces et limitations ainsi qu’une comparaison de ces
approches sera présenté à la fin de cette section.

I.7.2.1 Approches travaillant sur des instantanés

La détection de communautés statiques semble être bien établie, et presque tous les
chercheurs ont l’idée de réutiliser les méthodes statiques dans des cas dynamiques. Il
existe de nombreuses tentatives d’adaptation des algorithmes statiques à des réseaux dy-
namiques ( [Hopcroft et al., 2004, Palla et al., 2007, Wang et al., 2008, Chen et al., 2010]).
L’idée générale est de considérer un réseau dynamique comme une série de réseaux sta-
tiques appelés "instantanés". Selon l’échelle temporelle, c’est-à-dire la taille de la fenêtre
d’agrégation utilisée pour construire le réseau d’instantanés, considérée lors de l’analyse
des communautés, les méthodes de cette approche peuvent être classées en deux catégorie.
Dans la première catégorie, les communautés sont étudiées à une seule échelle temporelle
alors que dans la deuxième, les communautés sont analysées à plusieurs échelles tempo-
relles de différentes tailles.

I.7.2.1.1 Approches étudiant une seule échelle temporelle


Le principe de cette approche repose sur trois étapes. Tout d’abord, l’évolution du réseau
est décomposée en plusieurs instantanés de la même taille, puis un algorithme statique
est appliqué à chaque instantané. Enfin, une étape d’appariement (correspondance) est
appliquée pour aligner les communautés trouvées dans les différents instantanés. La figure
I.8 montre une représentation de cette approche.

17
I.7. Détection de communautés dynamiques

Figure I.8 – Représentation de l’approche instantané [Cazabet, 2013].

L’instantané t ne possède que deux communautés, respectivement, bleue et verte. La


communauté bleue dans l’instantané t + 1 est divisée en deux sous-communautés, bleue
et rouge, mais la communauté verte demeure. Au temps t + 2, la communauté bleue reste
la même, celle en rouge et celle en vert se rétrécissent, et la nouvelle communauté bleu
clair apparaît.
Les méthodes de cette classe peuvent être divisées en deux catégorie selon la technique
d’appariement utilisée pour comparer les partitions trouvées à chaque instantané. La pre-
mière concerne les techniques basées sur la similarité. Elle utilise une fonction de qualité
pour mesurer la similarité entre les communautés dans des instantanés adjacents ou éloi-
gnés. Les communautés ayant la plus grande similarité faisant partie de la même commu-
nauté dynamique. Parmi les méthodes qui utilisent cette technique, on peut citer [Hopcroft
et al., 2004,Palla et al., 2007,Asur et al., 2009,Bródka et al., 2013,Rossetti, 2020,Tajeuna
et al., 2015]. La deuxième technique utilise la notion des noeuds centraux. Dans cette
technique la correspondance est réduite à des noeuds spécifiques, au lieu de considérer
tous les membres de la communauté. Les noeuds centraux représentent le sous-ensemble
le plus stable de noeuds dans une communauté et ils ne devraient pas changer avec le
temps. Ils peuvent être identifiés de différentes manières, par exemple en utilisant le cri-
tère de centralité. Parmi les méthodes qui utilisent cette technique, on peut citer, [Wang
et al., 2008, Chen et al., 2010, Morini et al., 2017].
Algorithme de [Greene et al., 2010] :
Les auteurs de [Greene et al., 2010] proposent un modèle de suivi d’évolution des commu-
nautés au fil du temps dans un réseau dynamique, où chaque communauté est caractérisée
par une série d’événements évolutifs significatifs. Ce modèle est utilisé pour motiver une
stratégie de mise en correspondance des communautés pour identifier et suivre efficace-
ment les communautés dynamiques. Les évaluations sur des graphes synthétiques conte-

18
I.7. Détection de communautés dynamiques

nant des événements intégrés démontrent que cette stratégie peut suivre avec succès les
communautés au fil du temps dans des réseaux volatils. De plus, ils décrivent des expé-
riences explorant les communautés dynamiques détectées dans un réseau réel d’opérateur
mobile contenant des millions d’utilisateurs. [Greene et al., 2010]
Algorithme de [Chen et al., 2010] :
[Chen et al., 2010] Introduit les concepts de représentation de graphe et de représentation
communautaire pour détecter et suivre la dynamique communautaire. La représentation
du graphe à t est le nœud qui apparaît également dans le graphe à t − 1. Un représen-
tant de la communauté est le nœud avec le plus petit nombre d’occurrences parmi les
autres communautés dans le même graphe. Tout d’abord, ils trouvent des représentants
de graphe dans chaque instantané et énumèrent les communautés dans chaque graphe
en utilisant les représentants de graphe comme graines. Ils ont ensuite utilisé des repré-
sentants de la communauté pour établir des relations entre les communautés à travers
différentes périodes. Enfin, des règles de décision sont utilisées pour décider du type de
dynamique communautaire.
Algorithme de [Morini et al., 2017] :
Dans [Morini et al., 2017], les auteurs calculent d’abord des instantanés de réseau agrégés
à partir d’observations d’horodaté à l’aide d’une fenêtre glissante. Les communautés sont
détectées indépendamment sur chaque fenêtre à l’aide d’un algorithme de détection sta-
tique. Ensuite, calcule de la similarité entre les paires de communautés à t et à t − 2, t − 1,
t+1, t+2. Cette information est utilisée pour lisser l’évolution de la communauté : si Ct−1
dans l’instantané précédent a une similarité forte avec Ct+n dans ce dernier instantané,
mais a une similarité plus faible avec les deux C1t et C2t à t, puis fusionné les deux, et la
communauté résultante est identifiée par Ct−n et Ct+n .
Algorithme de [Rossetti, 2020] :
L’algorithme Angel de [Rossetti, 2020] est une méthode centrée sur les nœuds pour dé-
tecter les communautés qui se chevauchent dans les réseaux statiques et dynamiques. La
variante dynamique de ce algorithme fonctionne comme suit : premièrement, les commu-
nautés de différents instantanés sont extraites à l’aide de la variante statique de l’algo-
|X∩Y |
rithme. Ensuite, le score de précision : Precision= (X, Y ) = |X|
est utilisé pour faire
correspondre les communautés entre des instantanés consécutifs dans les deux sens. Cela
permet d’identifier différents événements dans le cycle de vie d’une communauté.
La deuxième catégorie est celle des méthodes de détection statiques informées successives.
Ils proposent de considérer les résultats obtenus au temps t lors de la détection des com-
munautés au temps t + 1. Cela permet de réduire l’instabilité de l’algorithme, c’est-à-dire
que l’algorithme donne des résultats très éloignés pour des graphes très proches. En choi-

19
I.7. Détection de communautés dynamiques

sissant entre deux partitions différentes et pourraient prendre celle qui ressemble le plus
à la précédente, cette approche est illustré dans la figure I.9 et appliquée dans les travaux
de [Lin et al., 2009, Liu et al., 2020, Chen et al., 2020, Xie et al., 2011, Wang, 2012], nous
détaillerons certaines des méthodes ci-dessous :

Figure I.9 – Description de l’approche de détection statique basée sur l’informer succes-
sives [Cazabet, 2013].

Algorithme de [Lin et al., 2009] :


L’algorithme propose une solution probabiliste basée sur un modèle génératif qui formule
la fonction de qualité comme un problème de factorisation matricielle non négative pour
optimiser conjointement la qualité et la stabilité de la communauté.
Bien que cette approche ait l’avantage de permettre de détecter les communautés qui se
chevauchent, elle impose tout de même une forte limitation : le nombre de communautés
doit être connu à l’avance, et l’ajout ou la suppression de nœuds dans le temps est a priori.

20
I.7. Détection de communautés dynamiques

Il n’autorise pas non plus les opérations telles que la fusion ou la division communauté.
Algorithme de [Liu et al., 2020] :
Un travail est proposé par [Liu et al., 2020]. Les auteurs ont proposé un algorithme évolu-
tionnaire multi-objectif, dénommé DESC (Detecting the evolving community structure),
principalement pour capturer les modèles évolutifs des communautés dans les réseaux so-
ciaux dynamiques. Ils ont également utilisé la modularité et l’information mutuelle comme
fonctions objectives. Ils ont développé un opérateur de migration coopérant avec les opé-
rateurs génétiques classiques (opérateurs de sélection, de croisement et de mutation) pour
rechercher les connexions entre communautés, et adoptent la représentation du génome
dans [Yang et al., 2014] pour représenter les réseaux.
Algorithme de [Chen et al., 2020] :
[Chen et al., 2020] a proposé un algorithme de clustering d’affinité évolutif. Premièrement,
une matrice de similarité pondérée dans le temps est utilisée et calculée pour capturer les
changements temporels dans l’évolution de la communauté. Ensuite, des équations dif-
férentielles sont utilisées pour apprendre le comportement évolutif de l’intimité. Lors de
l’itération, l’affinité entre deux nœuds est mise à jour selon le mode d’itération. Les nœuds
à haute affinité se rassemblent dans le même groupe et les nœuds à faible affinité restent
à l’écart, formant une structure communautaire dans un réseau dynamique.

I.7.2.1.2 Approche étudiant plusieurs échelle temporelle


L’analyse des communautés sur une seul échelle temporelle arbitraire va nécessairement
passer à côté de certains communautés. Par exemple, sur une fenêtre de temps plus petite
on peut pas détecter les communautés de moyen et long termes, et sur une fenêtre de
temps plus longue on peut pas détecter les communautés de courte durée. Les approches
de détection de communautés qui sont basées sur une analyse à plusieurs échelles tem-
porelles ont l’avantage de pouvoir détecter des communautés qui existent à différentes
échelles temporelles. Malgré son importance, cet aspect d’anlyse multi-échelles tempo-
relles est très peu évoqué dans la littérature.
Algorithme de [Boudebza et al., 2019] :
Cette méthode permet de détecter des communauté stables, non redondantes et à diffé-
rentes échelles temporelles. C’est une approche itérative, qui commence à partir de la plus
grande échelle temporelle et progresse vers la plus petite échelle. Sur chaque échelle tem-
porelle, un processus à trois étapes est utilisé. La première étape consiste à chercher les
communautés intéressante (les communautés de bonne qualité), appelées les graines. La
deuxième étape consiste à filtrer les graines trouvées à l’étape précédente dans le but d’ac-
célérer le processus de détection. La troisième étape consiste à examiner les graines sur les

21
I.7. Détection de communautés dynamiques

différents instantanées adjacents (en avant et en arrière) pour voir si elles correspondent
ou non à des communautés stables. Le processus est répété pour chaque granularité tem-
porelle. Une réduction exponentielle est opté pour minimiser le nombre des échelles à
étudier et donc accélérer la méthode. [Boudebza et al., 2019]

I.7.2.2 Approches travaillant sur des réseaux temporels

L’évolution du réseau n’est plus vue comme une série d’instantanés, mais comme une
série de modifications du réseau. Il s’agit donc de prendre en compte les dernières mo-
dification faites sur le réseau et de modifier les communautés existantes en conséquence.
Cette approche est illustré dans la figure I.10.

Figure I.10 – Exemple de l’approche de détection communautaire sur les réseaux tem-
porels [Cazabet, 2013].

Algorithme de [Cazabet, 2013] :


L’algorithme ILCD (Intrinsic Longitudinal Community Detection) proposés par Caza-
bet [Cazabet, 2013] est l’un des premiers algorithmes capables à détecter des commu-

22
I.7. Détection de communautés dynamiques

nautés dynamiques dans des réseaux temporels. ILCD est inspiré de principes issus des
systèmes multi-agents (SMA). Le processus de simulation considère chaque noeud comme
un agent, qui peut procéder à 5 types d’actions : essayer de créer une nouvelle commu-
nauté, créer un nouveau lien avec un autre agent (arête du graphe), supprimer un lien
avec un autre agent, demander à rejoindre une communauté et demander à expulser un
agent d’une communauté. Pour chaque ajout d’un lien (i, j) dans le réseau, si i est dans
une communauté C et j n’appartient pas à C, l’algorithme évalue si j doit être intégré à
C. Lorsque il s’agit d’un retrait d’un lien interne d’une communauté, l’algorithme évalue
si des noeuds devraient quitter la communauté ou même si celle-ci Devrait se diviser.
Après chaque modification du réseau, si une ou plusieurs communautés ont été modifiées,
la fusion des communautés est étudiée.
Algorithme de [Boudebza et al., 2018] :
[Boudebza et al., 2018] proposent un algorithme en ligne, appelé OLCPM, basé sur les
méthodes de percolation de clique et de propagation de labels. OLCPM permet de dé-
tecter les communautés recouvrantes et de travailler sur des réseaux temporels avec une
granularité fine. À chaque changement du réseau, l’algorithme fait une mise à jour locale
des communautés.
Algorithme de [Zhao et al., 2019] :
Une approche incrémentale est proposée par [Zhao et al., 2019] pour détecter les com-
munautés dans les réseaux sociaux dynamiques. L’idée principale est de détecter la com-
munautés dans l’état initial du réseau, puis de collecter et d’analyser les changements
dynamiques incrémentaux, c’est-à-dire tous les changements entre deux pas de temps, et
enfin de mettre à jour la communauté de manière incrémentale. Cette méthode permet
l’ajout de sous-graphes (y compris les nœuds et les arêtes). Des stratégies de mise à jour
sont définies pour trouver des communautés à l’état actuel en fonction de la relation entre
le sous-graphe incluant des changements incrémentiels et les communautés à l’instant
précédent.

I.7.3 Avantages et inconvénients des approches de détection de


communautés dynamiques
Dans cette étude, nous avons répertorié deux grandes classes d’approches pour la
détection dynamique des communautés : les approches travaillant sur des instantanés et
les approches travaillant sur des réseaux temporels. Chaque classe d’approches présente
ses propres avantages et inconvénients. Un résumé des principales forces et limites de
chaque classe est fourni dans le tableau I.1, et les détails seront discutés ci-après.

23
I.8. Conclusion

Classe Avantage Inconvénient


- Réutilisation des algorithmes
- Instabilité des
Approches travaillant statiques et des techniques
algorithmes statiques.
sur des instantané de correspondance.
- Complexité élevée.
- Facilité du parallélisme.
- La stabilité de la détection
Approches travaillant
de la communauté. - Difficulté du parallélisme.
sur des réseaux
- Gérer toute l’évolution du - Dérive de la communauté.
temporels
réseau.

Table I.1 – Avantages et inconvénients des approches de détection de communautés


dynamiques

L’avantage évident des méthodes utilisant des instantanés est la réutilisation des outils
existants (algorithmes statiques et techniques d’appariement) sur lesquels de nombreux
chercheurs travaillent depuis longtemps. En revanche, cette approche a des faiblesses in-
hérentes qui est l’instabilité : sur deux graphes topologiquement très proches, un même
algorithme peut trouver des communautés très différentes. Les modifications obtenues ne
sont donc pas liées à des changements structurels, mais à l’incertitude de l’algorithme
utilisé. De plus, l’utilisation de la méthode d’instantané entraîne des opérations sur plu-
sieurs instantanés, encore sa complexité élevée. Les méthodes travaillant sur des réseaux
temporels ne souffre pas du problème d’instabilité. Mais, elles présentent néanmoins des
certaines limitations. Par exemple, la difficulté du parallélisme, puisque les communau-
tés découvertes représentent les meilleures solutions au niveau global. L’autre limitation,
c’est la dérive des communautés, cette question se pose lorsque on utilise des définitions
de communautés stochastiques comme modularité : parce que les partitions évoluent à
partir de solutions optimales locales, il n’existe aucune garantie qu’ils apporteront une
solution optimale au niveau global.

I.8 Conclusion
Dans ce chapitre, nous avons exposé les concepts de base sur les réseaux complexes,
leurs types et leurs propriétés. Après, nous introduisent quelques notions de la théorie des
graphes, ceci est considéré comme l’outil le plus approprié pour représenter des réseaux
complexes. Après, nous avons passé en revue la littérature sur le thème de la détection
de communauté dans les réseaux dynamiques et statiques. Un grand nombre d’études ont
montré un grand intérêt pour ce sujet. Bien que plusieurs approches aient été proposées
pour détecter les communautés dans les réseaux, nous présentons deux approches pour
la détection des réseaux statiques, les approches hiérarchiques et les approches basées

24
I.8. Conclusion

sur la modularité. Pour la détection des réseaux dynamiques, nous avons distingué deux
catégories, la première considère le réseau comme instantané et utilise les méthodes sta-
tiques, ce dernier pose le problème de l’instabilité. L’autre catégorie élimine le problème
de l’instabilité et utilise les réseaux temporels, mais elle ne peut pas se suivre toutes les
étapes d’évolution des communautés. Notre proposition qui sera décrite dans le chapitre
suivant, s’intéresse à cette dernière catégorie et tente toutefois à suivre toute l’évolution
de communautés.

25
CHAPITRE II
PROPOSITION

II.1 Introduction
Les interactions dynamiques sont souvent représentées par le modèle d’instantanés :
le réseau est divisé en plusieurs réseaux statiques. L’analyse des communautés sur de tels
modèles de réseaux est souvent confrontée à de nombreux problèmes. L’un des problèmes à
été présenté récemment dans les travaux de [Boudebza et al., 2019] qui est celui de l’analyse
multi-echelle temporelle. En fait, le modèle d’instantanés exige souvent le choix arbitraire
d’une échelle temporelle d’analyse. Donc, une analyse des communautés trouvées sur une
échelle choisie arbitrairement va nécessairement passer à coté de certaines communautés,
les communautés formées par les interactions de faible latence sont invisibles lorsque
l’échelle temporelle est plus petite, ainsi les communautés formées par les interactions à
haute fréquence sont perdues dans le bruit quand l’échelle temporelle est plus grande.
Une analyse des communautés à plusieurs échelles temporelle semble donc la solution
idéale pour étudier les réseaux d’interactions. Dans le présent chapitre, nous proposons
une méthode pour la détection des communautés dynamiques, basée sur une analyse à
plusieurs échelles temporelles. Ce chapitre est présenté comme suit. Dans la section II.2
nous commençons par décrire les exigences relatives à la méthode que nous proposons.
Ensuite, dans la section II.3, nous décrivons de façon détaillée notre méthode, nommée
DCMET (Détection de Communautés à Multiples Échelles Temporelles) et on conclu ce
chapitre par un exemple explicatif sur le déroulement de notre méthode dans la section
II.4.

26
II.2. Exigences de notre méthode

II.2 Exigences de notre méthode


Nous avons noté quelques faiblesses que nous avons présentées dans l’état de l’art.
Par conséquent, nous avons décidé de proposer une méthode qui surmonte au moins
partiellement ces faiblesses. Notre objectif est de pouvoir analyser des réseaux dynamiques
à plusieurs échelles temporelles, aussi nous voulons assurer la stabilité temporelle des
communautés.

II.2.1 Analyser les réseaux dynamiques à plusieurs échelles tem-


porelles
L’analyse des communautés à une échelle arbitrairement choisie est vouée à en man-
quer certaines : les communautés à faible latence sont invisibles avec de courtes fenêtres
d’agrégation, et les communautés à haute fréquence sont perdues dans le bruit avec de
longues fenêtres d’agrégation. Ainsi, l’analyse des communautés à plusieurs échelles de
temps semble être la bonne solution pour étudier les réseaux d’interactions.

II.2.2 Détecter les communautés stables


La question de la stabilité des communautés dans le temps est cruciale. Il existe deux
approches principales pour assurer la stabilité : [Cazabet, 2013]
— Approche globale : La détection de communauté peut se faire en considérant simul-
tanément toutes les étapes de l’évolution. Ainsi, au fil du temps, la vision globale
du réseau supprime l’instabilité. L’avantage de cette approche est la plus grande
facilité à repérer des événements périodiques : en analysant tout l’historique, il est
plus facile de se rendre compte de patterns apparaissant de manière similaire à des
périodes données.
— Approche itérative : Le réseau peut également être considéré pas à pas, pour chaque
nouvelle étape, le résultat de l’étape précédente est considéré dans un nouveau cal-
cul, éliminant ainsi l’instabilité. L’inconvénient de cette approche est la difficulté à
reconnaître les événements périodiques : on ne dispose a priori que de l’état précé-
dent du réseau. Il est bien sûr possible de faire un algorithme avec mémoire, mais
ce n’est pas induit par la méthode.
Dans notre cas, nous souhaitons étudier toutes les étapes de l’évolution du réseaux, pour
cela nous optons pour une approche globale pour assurer la stabilité de notre méthode.

27
II.3. Méthode

II.3 Méthode
Notre méthode baptisée DCMET (Détection de Communautés à Multiples Échelles
Temporelles), vise à détecter des communautés stables en analysant le réseau dynamique
sur plusieurs échelles temporelles. Nous utilisons un processus à quatre étapes :
1. Partitionnement de graphe d’interactions, nous partitionnons le graphe d’in-
teraction sur plusieurs instantanés, chaque instantané à une durée w. Le paramètre
w indique l’échelle temporelle exprimée dans une période de temps.
2. Clustering des instantanés, regrouper les instantanés similaires dans des clusters.
3. Détection de communautés, trouvez les communautés associées à chaque cluster.
4. Filtrage des communautés, pour éliminer les périodes des communautés ou les
communautés elles-mêmes qui sont redondantes avec les communautés déjà trouvées
à l’itération précédente.
Ce processus se répète à partir de l’étape 2 jusqu’à obtenir un seul cluster qui contient
toutes les instantanées ou il n y a plus de clusters similaires. Pour passer d’une itération
à une autre, nous avons utilisé un paramètre de réduction θr pour diminuer le seuil de
similarité. Le pseudo-code de notre méthode est décrit dans l’algorithme 3.
Avant de commencer à détailler chacune de ces quatre étapes, nous définissons d’abord
les fonctions et les paramètres de notre méthode :
— DC(G), un algorithme statique de détection de communautés pour un graphe G.
— NCS(G1 ,G2 ), une fonction de similarité entre deux graphes G1 et G2 .
— θs , un paramètre qui désigne le seuil de similarité.
— θt , un paramètre qui représente le seuil de stabilité.
— θr , un paramètre de réduction du seuil de similarité.
Voir la section II.3.5 sur la façon comment choisir ces fonctions et paramètres.
On définit une communauté dynamique stable C comme un couple C = (n, p), avec n la
liste des noeuds de la communauté, p sa période d’existence définie en tant que ensemble
d’intervalles pas nécessairement successifs, par exemple, p = [ti , tj [, [tk , tl [ signifie que la
communauté existe à deux intervalles : de ti à tj et de tk à tl .

II.3.1 Partitionnement du graphe d’interactions


Nous transformons un graphe d’interaction donné en une série de réseaux statiques,
c’est-à-dire d’instantanés. Chaque instantané regroupe les interactions dans une fenêtre

28
II.3. Méthode

Algorithme 3 DCMET
Input : G, w, θs , θt , θr
Output : com_f inal
1: résulta ← {}
2: com_f inal ← {}
3: Gw ← partitionner(G, w) ▷ partitionnement de graphe
4: Répéter
5: cl ← {}
6: N ← taille(Gw )
7: cl ← clustering(Gw , θs )
8: com_dyn ← detection_des_communauté(cl)
9: com ← {}
10: com ← f iltrage(com_dyn, θt )
11: com_f inal ← com_f inal + com
12: θs ← θs − θr
13: Jusqu’à(θs == 0 et cl == Gw )

temporelle de longueur w. Le paramètre w indique l’échelle temporelle initiale, exprimée


dans une période de temps (par exemple, 10 minutes, 2 heures, 3 semaines, etc). Nous
utilisons cette échelle w comme taille de fenêtre, et, à partir d’un temps t0 par défaut,
la date de la première interaction observée, on crée un graphe cumulé (instantané) pour
chaque période [t0 , t0 + w[, [t0 + w, t0 + 2w[, [t0 + 2w, t0 + 3w[, etc., jusqu’à ce que toutes
les interactions se trouvent dans un graphe cumulé. Ce processus produit une séquence
de graphes statiques, tels que Gt0 est un instantané cumulée des interactions du graphe
G pour la période commençant à t0 et de durée w. Gw est la liste de tous ces graphes.
La figure II.1 montre une illustration du partitionnement d’un graphe d’interaction en
plusieurs instantanés.

Figure II.1 – Partitionnement de graphe d’interaction

29
II.3. Méthode

II.3.2 Clustering des instantanés


À cette étape, on construit une matrice de similarité (distance), qui mesure la distance
entre toutes paires d’instantanées (la valeur 0 signifiait les instantanées similaires). Nous
utilisons la fonctions N CS comme mesure de distance, et le paramètre θs comme seuil
de similarité pour comparer la distance entre chaque deux instantanées, si la distance est
supérieur de seuil θs , on considère les deux instantanées comme similaires. Les instantanés
similaires sont ensuite regroupés dans un même cluster. Un cluster peut contenir deux
instantanés non successifs. Le résultat final de cette étape est la création des nouveaux
clusters (cl) contient des instantanés (partitions) similaires. Le pseudo-code de cette étape
est décrit dans l’algorithme 4.

Algorithme 4 clustering
Input : G, θs
Output : cl
1: M ← [][]
2: Pour i=0 à N-1 Faire
3: Pour j=0 à N-1 Faire
4: M [i, j] ← N CS(Gi .w, Gj .w)
5: Fin Pour
6: Fin Pour
7: cl ← {}
8: Pour i=0 à N-1 Faire
9: Pour j=0 à N-1 Faire
10: Si M [i, j] > θs Alors
11: bool ← f aux
12: Pour E dans cl Faire
13: Si Gw [i] ∈ E Alors
14: E ← E + Gw [j] ▷ le symbole "+" signifie l’union
15: bool ← vrai
16: Break
17: Fin Si
18: Fin Pour
19: Si bool == f aux Alors
20: C ← Gw [i] + Gw [j]
21: cl ← cl + c
22: Fin Si
23: Fin Si
24: Fin Pour
25: Fin Pour

30
II.3. Méthode

II.3.3 Détection de communautés


À cette étape, n’importe quel algorithme de détection de communautés statique DC
pourrait être utilisé. Pour éviter le problème d’instabilité, nous procédons comme suit : au
lieu d’appliquer l’algorithme DC sur chacune des instantanées d’un cluster, on l’applique
uniquement sur une instantanée qui représente l’union de tous les instantanées de ce
cluster, on duplique des résultats pour toutes les instantanées du cluster. La période de
chaque nouvelle communauté change, si les n instantanées sont successifs l’intervalle de
temps devenait [t1 , tn + w[ sinon il devint un ensemble d’intervalle de temps [t1 , t3 +
w[; [t4 , tn + w[. Le pseudo-code de cette étape est décrit dans l’algorithme 5.

II.3.4 Filtrage de communautés


L’étape de filtrage des communautés a pour objectif de réduire la redondance des com-
munautés et d’accélérer notre processus de détection de communautés. À chaque itération,
nous enlevons les communautés qui sont redondantes à l’itération précédente. il s’agit ici
de la redondance topologique, c’est-à-dire des communautés avec structure (nœuds/liens)
similaire, ou de la redondance temporelle, c’est-à-dire des communautés qui apparaissent
au niveau inférieur sur la même période. En d’autres termes, une communauté est conser-
vée si elle correspond à une situation jamais vue auparavant. Étant donné une mesure de
similarité structurelle Jaccard.

II.3.5 Choix des fonctions et des paramètres


Notre méthode permet d’utiliser différents algorithmes pour la détection de commu-
nautés statiques (DC), ainsi que pour les fonctions de similarité (N CS). Nous avons
utilisé dans notre méthode différents paramètres.
Dans cette section, nous verrons les fonctions choisies ainsi que les paramètres utilisés
dans notre méthode et les valeurs des paramètres.

II.3.5.1 Détection de communauté - DC

Selon l’accord de la littérature, on emploie la méthode de Louvain [Blondel et al., 2008],


qui crée une communauté unique. Cette méthode est efficace sur les réseaux statiques, et
l’un des algorithmes adaptatifs pour la détection de communauté dans de très grands gra-
phiques. En effet n’importe quel algorithme de détection de communautés statiques peut
être utilisé pour la détection de communauté, incluant les méthodes qui se chevauchent.

31
II.3. Méthode

Algorithme 5 Détection de communauté


Input : cl
Output : com_dyn
1: SF ← {}
2: Pour E dans cl Faire
3: S ← {}
4: S ← E[0]
5: Pour i = 0 à taille(E) Faire
6: S ← S + E[i]
7: Fin Pour
8: SF ← SF + S
9: com_static ← DC(SF ) ▷ Détection statique communauté
10: Fin Pour
11: P _total ← []
12: Pour E dans SF Faire
13: E1 ← E
14: E1 ← classement(E1 ) ▷ classement est une fonction de trie des périodes par
ordre descendant.
15: period ← []
16: Pour i = 0 à taille(E1 ) − 1 Faire
17: period ← period + (E1 [i], E1 [i] + w)
18: Fin Pour
19: i←0
20: Tantque i < taille(period) − 1 Faire
21: Si period[i][1] == period[i + 1][0] Alors
22: period[i][1] ← period[i + 1][1]
23: Supprimer(period[i + 1])
24: Sinon
25: i←i+1
26: Fin Si
27: Fin Tantque
28: P _total ← P _total + period
29: Fin Pour
30: Pour i = 0 à taille(SF ) Faire
31: com_dyn.n ← com_dyn.n + com[i]
32: com_dyn.p ← com_dyn.p + p_total[i]
33: Fin Pour

32
II.4. Exemple explicatif

II.3.5.2 Similarité des noeuds de la communauté - NCS

Afin d’évaluer la ressemblance des noeuds de notre communauté, on prend la fonction


de la similarité des noeuds qui a comme entrée deux graphes et renvoie comme sortie
leur similarité. Cette dernière est souvent utilisée pour la détection de communautés dy-
namiques. Pour évaluer cette similarité nous choisissons l’indice de Jaccard comme une
fonction de référence, qui est une mesure de la similarité très connu entre des paires
d’ensembles. Pour deux ensembles, A et B, l’indice de Jaccard est défini comme étant
A∩B
le rapport de la taille de leur intersection et de la taille de leur union : J(A, B) = A∪B
.
L’algorithme a quatre paramètres, w, θs , θr et θt qui définissent individuellement différents
seuils. Nous les expliquons et fournissons les valeurs utilisées dans les expériences.
1. w il correspond à la plus petite échelle temporelle qui sera étudiée et doit être fixé
au moins au taux de collecte. Pour les réseaux synthétiques, il est fixé à 1, et pour
le jeu de données SocioPatterns, il est fixé à 20 secondes.
2. θs détermine le seuil à partir du quel deux communautés sont considérées comme
similaires. Plus cette valeur est réduite, plus le nombre de communautés obtenues
est important. Nous avons donné une valeur initiale θs = 0.45, et nous réduirons la
valeur à chaque itération de θr jusqu’à ce qu’elle atteigne 0.
3. θr détermine la valeur de diminuer le seuil de similarité θs . Nous avons donné une
valeur initiale θr = 0.1.
4. θt détermine le seuil de stabilité, pour déterminer la stabilité d’une communauté, si
la communauté se répète 3 fois, on dit que la communauté est stable. Nous avons
donné une valeur θt = 3.

II.4 Exemple explicatif


Nous illustrons dans cette section le déroulement de notre algorithme sur un exemple
de graphe temporel.
A- Partitionnement de graphe
On suppose qu’on dispose d’un graphe d’interaction G décomposé en six instantanés
(étapes temporelles) illustrés dans les figures II.2, II.3, II.4, II.5, II.6, II.7.

33
II.4. Exemple explicatif

Figure II.2 – Instan- Figure II.3 – Instan- Figure II.4 – Instan-


tané T1 tané T2 tané T3

Figure II.5 – Instan- Figure II.6 – Instan- Figure II.7 – Instan-


tané T4 tané T5 tané T6

Itération 0 :
B- Clustering des instantanés
Nous calculons la matrice de distance entre les différents instantanés, en utilisant la mesure
de distance N CS décrit dans la section II.3.5. Les résultats obtenus sont montrés dans la
figure II.8

34
II.4. Exemple explicatif

Figure II.8 – Matrice de similarité

A partir de la matrice de similarité, on remarque l’émergence de certains instantanés


similaires où l’instantané 1 est similaire aux instantanés 2 et 5, sachant que la valeur de
θs = 0.45, on peut également remarquer que l’instantané 3 est similaire avec l’instantané
4, tandis que l’instantané 6 n’a aucune similitude.
Maintenant, on fait le clustering (regroupement) des instantanés similaires. Les instanta-
nés 1, 2 et 5 sont regroupés dans le cluster C1.
Les instantanés 3 et 4 sont regroupés dans le cluster C2.
L’instantané 6 fait partie du cluster C3.
Nous obtenons donc le clustering suivant : cl = {[1, 2, 5], [3, 4], [6]}.
C- Détection de communauté
À cette étape, on va faire le graphe d’union des instantanés de chaque cluster de l’ensemble
cl obtenu à l’étape précédente, voir les figures II.9, II.10 et II.11, et on applique ensuite
l’algorithme statique de détection de communautés DC qui est décrit dans la section II.3.5
sur le graphe d’union de chaque cluster. Les résultats obtenus par cette application sont :
8 communautés.
Les nouvelles périodes de cluster C1 sont p1 = [t1, t2 + w[, [t5, t5 + w[
Les nouvelles périodes de cluster C2 sont p2 = [t3, t4 + w[
Les nouvelles périodes de cluster C3 sont p3 = [t6, t6 + w[

35
II.4. Exemple explicatif

Figure II.9 – Union de Figure II.10 – Union Figure II.11 – Cluster


[1, 2, 5] de [3, 4] C3

D- Filtrage du communautés
Cette étape consiste à supprimer les communautés redondantes.
Avant de passer à la prochaine itération, on réduit le seuil de similarité d’une valeur de
θr = 0.1, donc θs = 0.35.
Itération 1 :
B- Clustering des instantanés
maintenant, on recalcule la matrice de distance entre les clusters obtenus à l’itération
précédente. Les résultats obtenus sont montrés dans la figure II.12.

Figure II.12 – Matrice de similarité

A partir de la matrice de similarité, on remarque l’émergence de certains instantanés


similaires où l’instantané 1 est similaire aux instantanés 2, 5, 3 et 4, sachant que la valeur
de θs = 0.35, tandis que l’instantané 6 n’a aucune similitude.

36
II.4. Exemple explicatif

Maintenant, on fait le clustering (regroupement) des instantanés similaires. Les instanta-


nés 1, 2, 5, 3 et 4 sont regroupés dans le cluster C1.
L’instantané 6 fait partie du cluster C2.
Nous obtenons donc le clustering suivant : cl = {[1, 2, 5, 3, 4], [6]}.
C- Détection de communauté
On va faire le graphe d’union des instantanés de chaque cluster de l’ensemble cl obtenu
à l’étape précédente, voir les figures II.13 et II.14, et on applique ensuite l’algorithme
statique de détection de communautés DC sur le graphe d’union de chaque cluster. Les
résultats obtenus par cette application sont : 8 communautés.
Les nouvelles périodes de C1 sont p1 = [t1, t5 + w[
Les nouvelles périodes de C2 sont p2 = [t6, t6 + w[

Figure II.13 – Union de [1, 2, 3, 4, 5] Figure II.14 – Cluster C2

D- Filtrage du communautés
Cette étape consiste à supprimer les communautés redondantes.
On termine cette itération par la diminution du seuil de similarité, θs = θs − θr = 0.25.
Itération 2 :
B- Clustering des instantanés
maintenant, on recalcule la matrice de distance entre les clusters obtenus à l’itération
précédente. Les résultats obtenus sont montrés dans la figure II.15.

37
II.4. Exemple explicatif

Figure II.15 – Matrice de similarité

A partir de la matrice de similarité, on remarque qui toutes les instantanées sont


similaires, donc on regroupe tous les instantanés dans le même cluster C1. Nous obtenons
donc le clustering suivant : cl = C1 = {[1, 2, 5, 3, 4, 6]}.
C- Détection de communauté
On va faire le graphe d’union des instantanés de le cluster de l’ensemble cl obtenu à l’étape
précédente, voir la figure II.16, et on applique ensuite l’algorithme statique de détection
de communautés DC sur le graphe d’union obtenu. Les nouvelles périodes de C1 sont
p1 = [t1, t6 + w[.

Figure II.16 – Cluster de dernier itération

38
II.5. Conclusion

D- Filtrage du communautés
Nous avons effectué le filtrage de communauté pour enlever les redondantes.
On termine le processus ici à cause de l’identique du cluster cl avec le graphe d’interactions
G.
Les résultats obtenus
Nous avons obtenu un résultat final de 4 communautés.

II.5 Conclusion
Dans ce chapitre, nous avons introduit un nouvel algorithme de la détection des com-
munautés dynamiques nommé DCMET. Ce dernier est considéré comme un des premiers
algorithmes pour analyse des réseaux dynamiques à plusieurs échelles temporelles. DC-
MET utilise le principe de similarité et le clustering pour détecter des communauté stables.
L’exemple explicatif a montré le fonctionnement de notre méthode. Dans le chapitre sui-
vant, nous définirons les environnements de développement de notre méthode, et nous
nous concentrerons à valider notre proposition.

39
CHAPITRE III

IMPLÉMENTATION ET EXPÉRIMENTATION

III.1 Introduction
Dans ce chapitre, nous montrerons dans la section III.2 l’implémentation de notre
système, nous présentons en premier lieu l’environnement de développements logiciel et
les outils utilisés pour implémenter notre application. Après, dans la section III.3 nous
allons présenter les résultats des expérimentations de l’algorithme proposé sur des données
de test synthétiques et réelles.

III.2 Implémentation

III.2.1 Environnement de développement


Avant de présenter notre outil DCMET, nous allons tout d’abord spécifier les outils
(langage de programmation, platforme de développement et bibliothèques) que nous avons
utilisé pour implémenter notre système.

III.2.1.1 Langage de programmation

Le langage utilisé pour le codage de notre application est principalement Python.

est le langage de programmation open source le plus couramment utilisé par


les informaticiens. Le langage est répandu dans les domaines de la gestion des infrastruc-
tures, de l’analyse des données ou du développement de logiciels. En fait, Python permet
aux développeurs de se concentrer sur ce qu’ils font, et non sur la façon dont ils le font.
Cela libère les développeurs des limitations de formulaire qui affectent quotidiennement

40
III.2. Implémentation

les langages plus anciens. Par conséquent, développement du code à l’aide de Python est
plus rapide que d’autres langages [Rédaction JDN, 2020].
Python et gratuit et téléchargeable sur ce site : https ://www.python.org/downloads

Figure III.1 – Site Web Python

III.2.1.2 Platforme et IDE

Après l’installation de Python, on passe à l’installation de la plateforme avec tous les


logiciels qu’on a besoin, pour ce but on a choisir Anaconda.

est un utilitaire pour Python offrant de nombreuse fonctionnalité. Il offre


par exemple la possibilité d’installer des librairies et de les utiliser dans ses programmes.
Outre cette console, anaconda propose un logiciel servant à divers usages. Celui-ci per-
met principalement d’accéder aux autres logiciels installés dans la suite anaconda. Il est
possible grâce à ce logiciel de contrôler les librairies utilisées par le programme, ainsi que
de vérifier si celles-ci sont bien à jour. De plus, il offre à ses utilisateurs une grande docu-
mentation et un espace de partage communautaire [Lesage, 2022].
Anaconda et gratuit et téléchargeable sur ce site : https ://www.anaconda.com/products/distribution

41
III.2. Implémentation

Figure III.2 – La platform Anaconda

Spyder est un logiciel de développement simplifiant la vie de ses utili-


sateurs, fournit un environnement de développement scientifique Python qui facilite les
fonctionnalités avancées d’édition, de test interactif, de débogage et d’introspection sans
utiliser les commandes de ligne de commande qui se trouve dans la barre des taches [Ka-
diyala and Kumar, 2017]. On peut accéder à ce logiciel en passant par l’anaconda Navi-
gator.

Figure III.3 – IDE Spyder

42
III.2. Implémentation

III.2.1.3 Packages

Après avoir installé le logiciel et la plate-forme, nous avons procédé à l’installation des
packages nécessaires au développement de notre application.

III.2.1.3.1 La librairie tnetwork


tnetwork est un progiciel Python permettant de manipuler des réseaux temporels, im-
plémenté par Rémy Cazabet [Rémy, 2022] 1 .
tnetwork est une bibliothèque conçue pour manipuler les réseaux temporels sous leurs
différentes formes (instantanés, flux de liens, graphes d’intervalles...). En particulier, elle
facilite l’exécution de quelques algorithmes standards pour la détection de communautés
dynamiques, mais aussi leur visualisation et leur évaluation [Rémy, 2022].

III.2.1.3.2 La librairie NetworkX


NetworkX 2 est un pack de langage Python pour explorer et analyser les réseaux et
les algorithmes de réseau. Le package de base fournit des structures de données pour
représenter différents types de réseaux ou de graphes, y compris des graphes simples, des
graphes orientés et des graphes avec des arêtes parallèles et des boucles automatiques.

III.2.2 Présentation de l’outil DCMET


La figure III.4 montre l’interface principale de notre application, dans laquelle il existe
deux espaces pour sélectionner les réseaux de test que l’utilisateur peut manipuler. Les
réseaux synthétiques ou les réseaux réels.

Figure III.4 – Interface de l’application


1. https ://tnetwork.readthedocs.io/en/latest/
2. https ://networkx.org/documentation/networkx-1.11/tutorial/tutorial.html

43
III.3. Expérimentations et résultats

La figure III.5 montre l’interface qui permet de tester notre outil sur des données syn-
thétiques, il permet à l’utilisateur de générer un graphe dynamique avec des communautés
stables comme décrit dans le travail de boudebza [Boudebza et al., 2019].

Figure III.5 – Interface données synthétiques

La figure III.6 montre l’interface qui manipule les donnés réels, il permet aussi la
visualisation des résultats (communautés).

Figure III.6 – Interface données réelles

III.3 Expérimentations et résultats


Nous avons réalisé deux types d’expérimentations : sur des données synthétiques, et
sur des réseaux réels.

44
III.3. Expérimentations et résultats

III.3.1 Validation sur des donnés synthétiques


Nous utilisons un générateur qui permet de générer des communautés dynamiques à
plusieurs échelles temporelles, ce générateur est décrit dans [Boudebza et al., 2019], un
réseau dynamique composé de T étapes temporelles, N nœuds et N C nombre commu-
nautés souhaitées. Nous avons comparé notre algorithme avec l’algorithme de [Boudebza
et al., 2019] et également avec l’algorithme dynamique de [Greene et al., 2010] qui a été
appliqué sur chaque étape temporelle, pour différentes tailles de fenêtre (échelles tempo-
relles). Les résultats sont ensuite comparés en calculant la NMI (Information Mutuelle
Normalisée) [Lancichinetti et al., 2009] qui est généralement appliquée pour mesurer le
degré de similarité entre les communautés trouvées par un algorithme et les vérités de
terrain. Plus la valeur NMI est élevée, plus le degré de similarité entre les résultats de la
partition de communautés et les résultats du monde réel est élevé [McDaid et al., 2011].
Nous avons généré des réseaux avec les paramètres suivants : T = 500, N = 100, en va-
riant le nombre de communautés stables SC = 5, 10, 20, 30, 40, 50. Les paramètres utilisés
par notre méthode sont les suivants : w = 1, θs = 0.45, θr = 0.1, θt = 3. Nous avons
obtenu une bonne correspondance, avec des communautés découvertes à travers de mul-
tiples échelles, le nombre total des communautés stables trouvées est 14 communautés.
Nous présentons les résultats de la comparaison dans le tableau III.1. Nous pouvons ob-
server que notre méthode dépasse la méthode de [Greene et al., 2010] pour des valeur de
SC < 40 en terme de NMI moyenne, mais la méthode de [Boudebza et al., 2019] est la
meilleure.

SC 5 10 20 30 40 50
DCMET 0.45 0.40 0.36 0.31 0.20 0.12
[Boudebza et al., 2019] 0.91 0.78 0.69 0.69 0.62 0.54
[Greene et al., 2010] 0.31 0.30 0.29 0.3 0.28 0.27
Table III.1 – Comparaison des scores NMI obtenus par la méthode proposée (DCMET),
la méthode de [Boudebza et al., 2019] et la méthode de [Greene et al., 2010].

III.3.2 Validation sur des jeux de données réelles


Dans cette partie, nous allons valider notre approche avec des réseaux réels. Notre
choix est porté sur les données de SocioPatterns 3 sur une école primaire [Stehlé et al.,
2011]. Le jeux de données capture les interactions entre les élèves d’une école. Cette école
a 5 niveaux, chaque niveau est divisé en 2 classes (A et B), pour un total de 10 classes. Les
3. www.sociopatterns.org

45
III.3. Expérimentations et résultats

données sont collectées à l’aide de la technologie RFID (identification par radio fréquence).
Cette technique enregistre la proximité des personnes à une distance d’environ 1,5 mètre,
77602 contacts ont été enregistrés entre 242 individus (232 élèves et 10 enseignants) au
cours de deux journées consécutives en octobre 2009 (jeudi 1er octobre et vendredi 2
octobre 2009) de 8h45 à 17h20 le premier jour, et de 8h30 à 17h05 le deuxièmes jour (ce
qui donne une durée moyenne d’interaction quotidienne de 176 minutes), la figure III.7
indique le taux de participation pour les classes scolaires.

Figure III.7 – Taux de participation des classes


[Stehlé et al., 2011]

Comme il n’y a pas de vérité de terrain pour se comparer, nous avons adopté une
approche d’évaluation qualitative. Nous avons utilisé l’information descriptive soulignée
dans l’étude SocioPatterns [Stehlé et al., 2011], et nous avons essayé de montrer que les
communautés trouvées par notre méthode sont significatives et pourraient permettre de
détecter des patterns intéressantes sur des données réelles.
La visualisation a été limitée à quatre classes (1B, 2B, 3B, 5B) pour permettre une analyse
précise des résultats. Au total, 25 communautés ont été détectées sur cet ensemble de
données. Nous avons capturé deux figures : la premiers correspond à des communautés
de longueur moins de 30 min et la deuxième correspond à des communautés de plus
de 2 heures (voir figure III.8). Les affiliations des nœuds sont ordonnées par classe, les
observations suivantes peuvent être faites :
— Pour une échelle moins de 30 minutes, nous avons détecté des communautés pendant
les pauses. Dans l’étude original de Sociopatterns, il est noté qu’il y a une très grande
fréquence d’interaction durant les pauses et que les pauses ne sont pas synchronisées
entre classes. Donc cela correspond bien a nous observations le matin, midi et le
soir.

46
III.3. Expérimentations et résultats

((a)) Durée <30 min

((b)) Durée>2 heures

Figure III.8 – Communautés stables de différentes longueurs sur les données Sociopat-
terns Primary School

47
III.4. Conclusion

— Pour une échelle supérieurs à deux heures, nous avons retrouvé la structure en
classe. Les mêmes communautés ont été retrouvées par les auteurs de Sociopatterns
en construisant le graphe cumulé de chaque journée.

III.4 Conclusion
Dans ce chapitre, nous avons effectué différents expérimentations pour valider notre
proposition sur des données synthétiques et réelles. Les résultats obtenus ont été satisfai-
sants et ont montré la pertinence de l’aspect multi échelle temporelle proposé par notre
méthode.

48
CONCLUSION GÉNÉRALE ET PERSPECTIVES

Dans le cadre de ce travail, nous nous sommes particulièrement intéressés à la détection


de communautés dynamiques dans les grands réseaux d’interactions. Celle-ci constitue un
outil puissant pour comprendre la structure et le fonctionnement de ces réseaux, et aussi
leurs mécanismes dynamiques.
Malgré la présence de plusieurs algorithmes conçus pour détecter les communautés dyna-
miques, il existe peu de travaux [Boudebza et al., 2019] qui aborde l’aspect multi-échelle
temporelles dans la détection de communautés dynamiques. En effet, c’est dans le cadre
de ce thème que s’oriente l’objectif de notre mémoire.
Au cours de ce projet, nous avons proposé une nouvelle méthode, appelé DCMET (Détec-
tion de Communautés à Multiples Échelles Temporelles), pour une détection à plusieurs
échelles temporelles de communautés. Notre algorithme se concentre principalement sur
le principe de similarité et de clustering.
Afin de valider notre outil DCMET nous avons réalisé des tests sur des réseaux artificiels
et d’autres sur des réels, Les résultats obtenus ont été satisfaisant et ont montré la perti-
nence de l’aspect multi échelle temporelle proposé par notre méthode.
Ce mémoire aborde un nouveau sujet de recherche sur la détection multi-échelle tem-
porelle des communautés, comme tout projet de recherche, ce travail ouvre un certain
nombre de perspectives, tel que : l’optimisation de l’algorithme afin de réduire la com-
plexité temporelle de notre algorithme, l’amélioration de la phase de clustering en utilisant
les algorithmes de clustering existants et l’amélioration de l’affichage des résultats en four-
nissant une organisation hiérarchique de communautés.

49
BIBLIOGRAPHIE

[Jac, ] Estimation de la similarité de deux ensembles ou plus — Snowflake Documentation.


[Fig, ] Louvain algorithm overview (fig. 1 in [10]).
[unk, ] Réseau complexe.
[Asur et al., 2009] Asur, S., Parthasarathy, S., and Ucar, D. (2009). An event-based fra-
mework for characterizing the evolutionary behavior of interaction graphs. ACM Tran-
sactions on Knowledge Discovery from Data (TKDD), 3(4) :1–36.
[Aynaud, 2011] Aynaud, T. (2011). Détection de communautés dans les réseaux dyna-
miques. PhD thesis, PhD thesis, Docteur de L’université Pierre et Marie Curie.
[Aynaud and Guillaume, 2010] Aynaud, T. and Guillaume, J.-L. (2010). Static commu-
nity detection algorithms for evolving networks. In 8th International symposium on
modeling and optimization in mobile, Ad Hoc, and wireless networks, pages 513–519.
IEEE.
[Aynaud and Guillaume, 2011a] Aynaud, T. and Guillaume, J.-L. (2011a). Extraction
hiérarchique de fenêtres de temps basée sur la structure communautaire. In MARAMI
2011.
[Aynaud and Guillaume, 2011b] Aynaud, T. and Guillaume, J.-L. (2011b). Structure
multi-échelle de grands graphes de terrain. Revue des Sciences et Technologies de
l’Information-Série TSI : Technique et Science Informatiques, 30(2) :137–154.
[Berge, 1983] Berge, C. (1983). Graphes, volume 2. Gauthier-villars Paris.
[Bernard, 2019] Bernard, J. (2019). Gérer et analyser les grands graphes des entités nom-
mées. PhD thesis, Université de Lyon.
[Berry and Bordat, 1999] Berry, A. and Bordat, J.-P. (1999). Orthotreillis et séparabilité
dans un graphe non orienté. Mathématiques et Sciences humaines, 146 :5–17.

vii
Bibliographie

[Bezdek, 2013] Bezdek, J. C. (2013). Pattern recognition with fuzzy objective function
algorithms. Springer Science & Business Media.
[Biggs et al., 1993] Biggs, N., Biggs, N. L., and Norman, B. (1993). Algebraic graph theory.
Number 67. Cambridge university press.
[Blondel et al., 2008] Blondel, V. D., Guillaume, J.-L., Lambiotte, R., and Lefebvre, E.
(2008). Fast unfolding of communities in large networks. Journal of statistical mecha-
nics : theory and experiment, 2008(10) :P10008.
[Boettcher and Percus, 1999] Boettcher, S. and Percus, A. G. (1999). Extremal optimi-
zation : Methods derived from co-evolution. arXiv preprint math/9904056.
[Boudebza et al., 2018] Boudebza, S., Cazabet, R., Azouaou, F., and Nouali, O. (2018).
Olcpm : An online framework for detecting overlapping communities in dynamic social
networks. Computer Communications, 123 :36–51.
[Boudebza et al., 2019] Boudebza, S., Cazabet, R., Nouali, O., and Azouaou, F. (2019).
Detecting stable communities in link streams at multiple temporal scales. In Joint
European Conference on Machine Learning and Knowledge Discovery in Databases,
pages 353–367. Springer.
[Bródka et al., 2013] Bródka, P., Saganowski, S., and Kazienko, P. (2013). Ged : the
method for group evolution discovery in social networks. Social Network Analysis and
Mining, 3(1) :1–14.
[Cazabet, 2013] Cazabet, R. (2013). Détection de communautés dynamiques dans des
réseaux temporels. PhD thesis, Université Paul Sabatier-Toulouse III.
[Cazabet et al., 2010] Cazabet, R., Amblard, F., and Hanachi, C. (2010). Detection of
overlapping communities in dynamical social networks. In 2010 IEEE second interna-
tional conference on social computing, pages 309–314. IEEE.
[Cazabet et al., 2020] Cazabet, R., Boudebza, S., and Rossetti, G. (2020). Evaluating
community detection algorithms for progressively evolving graphs. Journal of Complex
Networks, 8(6) :cnaa027.
[Chen et al., 2010] Chen, D., Shang, M., Lv, Z., and Fu, Y. (2010). Detecting overlap-
ping communities of weighted networks via a local algorithm. Physica A : Statistical
Mechanics and its Applications, 389(19) :4177–4187.
[Chen et al., 2020] Chen, J., Liu, D., Hao, F., and Wang, H. (2020). Community detection
in dynamic signed network : an intimacy evolutionary clustering algorithm. Journal of
Ambient Intelligence and Humanized Computing, 11(2) :891–900.

viii
Bibliographie

[Danon et al., 2005] Danon, L., Diaz-Guilera, A., Duch, J., and Arenas, A. (2005). Com-
paring community structure identification. Journal of statistical mechanics : Theory
and experiment, 2005(09) :P09008.
[Duch and Arenas, 2005] Duch, J. and Arenas, A. (2005). Community detection in com-
plex networks using extremal optimization. Physical review E, 72(2) :027104.
[Faron-Zucker, 2014] Faron-Zucker, C., editor (2014). Actes des 25es journées franco-
phones d’Ingénierie des Connaissances (IC 2014), France. Conférence IC.
[Fortunato, 2010] Fortunato, S. (2010). Community detection in graphs. Physics reports,
486(3-5) :75–174.
[Girvan and Newman, 2002] Girvan, M. and Newman, M. E. (2002). Community struc-
ture in social and biological networks. Proceedings of the national academy of sciences,
99(12) :7821–7826.
[Greene et al., 2010] Greene, D., Doyle, D., and Cunningham, P. (2010). Tracking the
evolution of communities in dynamic social networks. In 2010 international conference
on advances in social networks analysis and mining, pages 176–183. IEEE.
[Guimera and Amaral, 2005] Guimera, R. and Amaral, L. A. N. (2005). Cartography of
complex networks : modules and universal roles. Journal of Statistical Mechanics :
Theory and Experiment, 2005(02) :P02001.
[Hervé, 2017] Hervé, B. (2017). Connexité.
[Hopcroft et al., 2004] Hopcroft, J., Khan, O., Kulis, B., and Selman, B. (2004). Tracking
evolving communities in large linked networks. Proceedings of the National Academy of
Sciences, 101(suppl 1) :5249–5253.
[Hu et al., 2016] Hu, Y., Yang, B., and Lv, C. (2016). A local dynamic method for tra-
cking communities and their evolution in dynamic networks. Knowledge-Based Systems,
110 :176–190.
[Idrissa Sarr, 2016] Idrissa Sarr, A. O. M. M. (2016). IIETA | Advancing the World of
Information and Engineering.
[Isella, ] Isella, Lorenzo et Stehlé, J. e. B. A. e. C. C. e. P. J.-F. e. V. d. B. W. Qu’y
a-t-il dans une foule ? analyse des réseaux comportementaux en face à face. Journal de
biologie théorique, 271 :166–180.
[Jdidia et al., 2007] Jdidia, M. B., Robardet, C., and Fleury, E. (2007). Communities
detection and analysis of their dynamics in collaborative networks. In 2007 2nd In-
ternational Conference on Digital Information Management, volume 2, pages 744–749.
IEEE.

ix
Bibliographie

[Kadiyala and Kumar, 2017] Kadiyala, A. and Kumar, A. (2017). Applications of python
to evaluate environmental data science problems. Environmental Progress & Sustainable
Energy, 36(6) :1580–1586.
[Kernighan and Lin, 1970] Kernighan, B. W. and Lin, S. (1970). An efficient heuristic
procedure for partitioning graphs. The Bell system technical journal, 49(2) :291–307.
[Labatut and Orman, 2017] Labatut, V. and Orman, G. K. (2017). Community structure
characterization. arXiv preprint arXiv :1705.10621.
[Lancichinetti et al., 2009] Lancichinetti, A., Fortunato, S., and Kertész, J. (2009). Detec-
ting the overlapping and hierarchical community structure in complex networks. New
journal of physics, 11(3) :033015.
[Law-Kam-Cio, 2014] Law-Kam-Cio, Y.-M. (2014). Mise en œuvre d’un solveur de Ga-
lerkin discontinu pour la modélisation d’écoulements à surfaces libres viscoélastiques
tridimensionnels. PhD thesis, École Polytechnique de Montréal.
[Lesage, 2022] Lesage, L. (2022). Développer en Python avec Anaconda.
[Leskovec et al., 2009] Leskovec, J., Lang, K. J., Dasgupta, A., and Mahoney, M. W.
(2009). Community structure in large networks : Natural cluster sizes and the absence
of large well-defined clusters. Internet Mathematics, 6(1) :29–123.
[Likas et al., 2003] Likas, A., Vlassis, N., and Verbeek, J. J. (2003). The global k-means
clustering algorithm. Pattern recognition, 36(2) :451–461.
[Lin and Kernighan, 1973] Lin, S. and Kernighan, B. W. (1973). An effective heuristic
algorithm for the traveling-salesman problem. Operations research, 21(2) :498–516.
[Lin et al., 2009] Lin, Y.-R., Chi, Y., Zhu, S., Sundaram, H., and Tseng, B. L. (2009).
Analyzing communities and their evolutions in dynamic social networks. ACM Tran-
sactions on Knowledge Discovery from Data (TKDD), 3(2) :1–31.
[Liu et al., 2020] Liu, F., Wu, J., Xue, S., Zhou, C., Yang, J., and Sheng, Q. (2020).
Detecting the evolving community structure in dynamic social networks. World Wide
Web, 23(2) :715–733.
[Liu et al., 2010] Liu, J., Zhong, W., Abbass, H. A., and Green, D. G. (2010). Separa-
ted and overlapping community detection in complex networks using multiobjective
evolutionary algorithms. In IEEE Congress on Evolutionary Computation, pages 1–7.
IEEE.
[MacQueen et al., 1967] MacQueen, J. et al. (1967). Some methods for classification and
analysis of multivariate observations. In Proceedings of the fifth Berkeley symposium on
mathematical statistics and probability, volume 1, pages 281–297. Oakland, CA, USA.

x
Bibliographie

[McDaid et al., 2011] McDaid, A. F., Greene, D., and Hurley, N. (2011). Normalized mu-
tual information to evaluate overlapping community finding algorithms. arXiv preprint
arXiv :1110.2515.
[Melançon, 2006] Melançon, G. (2006). Espaces collaboratifs métaphores graphiques et
exploration visuelle. Intelligence collective rencontre, pages 37–42.
[Moctar, 2019] Moctar, A. O. M. (2019). Détection et suivi de l’évolution de communautés
ego-centrées dans les réseaux sociaux dynamiques. PhD thesis, Université Cheikh Anta
Diop de Dakar.
[Moctar and Sarr, ] Moctar, A. O. M. and Sarr, I. Détection de communautés statiques
et dynamiques.
[Mohamed Babou, 2012] Mohamed Babou, H. (2012). Comparaison de réseaux biolo-
giques. Theses, Université de Nantes.
[Mohamed Moctar and Sarr, 2016] Mohamed Moctar, A. and Sarr, I. (2016). Détection
de communautés statiques et dynamiques. Revue d intelligence artificielle, 30 :469–496.
[Morini et al., 2017] Morini, M., Flandrin, P., Fleury, E., Venturini, T., and Jensen, P.
(2017). Revealing evolutions in dynamical networks. arXiv preprint arXiv :1707.02114.
[Mseddi, 2017] Mseddi, A. (2017). Optimisation du placement et de la migration des
répliques de données dans les réseaux de diffusion de contenu basés sur le cloud.
[Mucha et al., 2010] Mucha, P. J., Richardson, T., Macon, K., Porter, M. A., and On-
nela, J.-P. (2010). Community structure in time-dependent, multiscale, and multiplex
networks. science, 328(5980) :876–878.
[Murtagh and Legendre, 2014] Murtagh, F. and Legendre, P. (2014). Ward’s hierarchi-
cal agglomerative clustering method : which algorithms implement ward’s criterion ?
Journal of classification, 31(3) :274–295.
[NDIAYE, 2017] NDIAYE, S. N. (2017). Quelques rappels sur la théorie des graphes.
[Neumann, 1976] Neumann, B. (1976). A problem of paul erdös on groups. Journal of
the Australian Mathematical Society, 21(4) :467–472.
[Newman, 2004] Newman, M. E. (2004). Fast algorithm for detecting community struc-
ture in networks. Physical review E, 69(6) :066133.
[Ng et al., 2001] Ng, A., Jordan, M., and Weiss, Y. (2001). On spectral clustering : Ana-
lysis and an algorithm. Advances in neural information processing systems, 14.
[Pai, 2021] Pai, P. (2021). Exemple de dendrogramme.
[Palla et al., 2007] Palla, G., Barabási, A.-L., and Vicsek, T. (2007). Quantifying social
group evolution. Nature, 446(7136) :664–667.

xi
Bibliographie

[Pedregosa et al., 2011] Pedregosa, F., Varoquaux, G., Gramfort, A., Michel, V., Thirion,
B., Grisel, O., Blondel, M., Prettenhofer, P., Weiss, R., Dubourg, V., Vanderplas, J.,
Passos, A., Cournapeau, D., Brucher, M., Perrot, M., and Duchesnay, E. (2011). Scikit-
learn : Machine learning in Python. Journal of Machine Learning Research, 12 :2825–
2830.
[Radicchi et al., 2004] Radicchi, F., Castellano, C., Cecconi, F., Loreto, V., and Parisi, D.
(2004). Defining and identifying communities in networks. Proceedings of the national
academy of sciences, 101(9) :2658–2663.
[Redaction, 2020] Redaction (2020). Tout est graphe ! Détection de communautés : théorie
et retour d’expérience.
[Rossetti, 2020] Rossetti, G. (2020). Angel : efficient, and effective, node-centric commu-
nity discovery in static and dynamic networks. Applied Network Science, 5(1) :1–23.
[Rossetti and Cazabet, 2018] Rossetti, G. and Cazabet, R. (2018). Community discovery
in dynamic networks : a survey. ACM computing surveys (CSUR), 51(2) :1–37.
[Rédaction JDN, 2020] Rédaction JDN, L. (2020).
[Rémy, 2022] Rémy, C. (2022). Community detection libraries.
[Sache, 1974] Sache, A. (1974). La théorie des graphes. Number 1554. Presses Universi-
taires de France-PUF.
[Sachs et al., 1988] Sachs, H., Stiebitz, M., and Wilson, R. J. (1988). An historical note :
Euler’s königsberg letters. Journal of Graph Theory, 12(1) :133–139.
[Spielman and Teng, 1996] Spielman, D. A. and Teng, S.-H. (1996). Spectral partitioning
works : Planar graphs and finite element meshes. In Proceedings of 37th conference on
foundations of computer science, pages 96–105. IEEE.
[Stehlé et al., 2011] Stehlé, J., Voirin, N., Barrat, A., Cattuto, C., Isella, L., Pinton, J.-
F., Quaggiotto, M., Van den Broeck, W., Régis, C., Lina, B., et al. (2011). High-
resolution measurements of face-to-face contact patterns in a primary school. PloS one,
6(8) :e23176.
[Tajeuna et al., 2015] Tajeuna, E. G., Bouguessa, M., and Wang, S. (2015). Tracking
the evolution of community structures in time-evolving social networks. In 2015 IEEE
International Conference on Data Science and Advanced Analytics (DSAA), pages 1–10.
IEEE.
[Talbi, 2013] Talbi, M. (2013). Une nouvelle approche de détection de communautés dans
les réseaux sociaux. PhD thesis, Université du Québec en Outaouais.

xii
Bibliographie

[Vanhems, ] Vanhems, Philippe et Barrat, A. e. C. C. e. P. J.-F. e. K.-N. e. R. C. e. K.


B.-a. e. C. B. e. V. N. Estimation des voies potentielles de transmission des infections
dans les services hospitaliers à l’aide de capteurs de proximité portables. PloS un, 8.
[Vinh et al., 2010] Vinh, N. X., Epps, J., and Bailey, J. (2010). Information theoretic
measures for clusterings comparison : Variants, properties, normalization and correction
for chance. The Journal of Machine Learning Research, 11 :2837–2854.
[Wang, 2012] Wang, Q. (2012). Détection de communautés recouvrantes dans des réseaux
de terrain dynamiques. PhD thesis, Lyon, École normale supérieure.
[Wang and Fleury, 2009] Wang, Q. and Fleury, E. (2009). Detecting overlapping commu-
nities in graphs. In European Conference on Complex Systems 2009 (ECCS 2009).
[Wang et al., 2008] Wang, Y., Wu, B., and Du, N. (2008). Community evolution of social
network : feature, algorithm and model. arXiv preprint arXiv :0804.4356.
[Xie et al., 2011] Xie, J., Szymanski, B. K., and Liu, X. (2011). Slpa : Uncovering overlap-
ping communities in social networks via a speaker-listener interaction dynamic process.
In 2011 ieee 11th international conference on data mining workshops, pages 344–349.
IEEE.
[Yang et al., 2014] Yang, Y., Han, L., Yuan, Y., Li, J., Hei, N., and Liang, H. (2014). Gene
co-expression network analysis reveals common system-level properties of prognostic
genes across cancer types. Nature communications, 5(1) :1–9.
[Zeng et al., 2019] Zeng, X., Wang, W., Chen, C., and Yen, G. G. (2019). A consensus
community-based particle swarm optimization for dynamic community detection. IEEE
transactions on cybernetics, 50(6) :2502–2513.
[Zhang, 2021] Zhang, J. (2021). An Improved Louvain Algorithm for Community Detec-
tion.
[Zhao et al., 2019] Zhao, Z., Li, C., Zhang, X., Chiclana, F., and Viedma, E. H. (2019).
An incremental method to detect communities in dynamic evolving social networks.
Knowledge-Based Systems, 163 :404–415.

xiii

Vous aimerez peut-être aussi