Description
EvolveGCN est un projet open-source proposant l'implémentation du code pour les Réseaux Convolutifs Évolutifs (EvolveGCN), une approche novatrice pour les graphes dynamiques. Ce cadre, détaillé dans un article publié à AAAI 2020, aborde le défi de la modélisation des structures de graphes qui changent au fil du temps. Le dépôt fournit un ensemble complet d'outils et de scripts nécessaires pour reproduire les expériences et explorer les capacités d'EvolveGCN.
Le projet inclut du code pour la manipulation et le traitement de divers types de données de graphes dynamiques. Sept ensembles de données utilisés dans l'article original sont détaillés, notamment les modèles de blocs stochastiques, les réseaux de transactions Bitcoin (OTC et Alpha), le réseau social UC Irvine, les données de systèmes autonomes, le réseau d'hyperliens Reddit et l'ensemble de données elliptic. Des instructions sont fournies pour télécharger et préparer ces ensembles de données, avec une version pré-traitée de l'ensemble de données elliptic disponible via un lien, bien que des mises à jour notent l'invalidité du lien et fournissent des instructions de préparation manuelle.
La configuration d'EvolveGCN peut être effectuée à l'aide de Docker, ce qui simplifie la configuration de l'environnement. Le dépôt contient un Dockerfile qui décrit un conteneur pour exécuter des expériences sur des machines basées sur Unix. La disponibilité d'un GPU est recommandée pour l'entraînement, avec une option pour désactiver CUDA si nécessaire. Le processus d'installation implique la construction de l'image Docker et le démarrage d'un conteneur, qui fournit un environnement prêt à l'emploi pour exécuter le code.
L'utilisation implique l'exécution de scripts Python avec des fichiers de configuration spécifiés via des arguments de ligne de commande. Le script `run_exp.py` est central pour le lancement des expériences, utilisant des fichiers de configuration YAML qui définissent divers paramètres. Le projet prend également en charge le réglage des hyperparamètres en permettant de définir les paramètres dans des limites minimales et maximales définies, permettant un échantillonnage aléatoire pour chaque exécution. Pour une analyse détaillée, les fichiers journaux générés pendant les expériences peuvent être traités à l'aide du script `log_analyzer.py` pour extraire les métriques d'évaluation à l'époque de validation optimale.
EvolveGCN est particulièrement pertinent pour les chercheurs et les praticiens en apprentissage automatique, en réseaux neuronaux de graphes et en science des données qui travaillent avec des données de graphes évolutives ou dynamiques. Sa nature open-source et sa documentation détaillée en font une ressource précieuse pour faire progresser le domaine de l'apprentissage de représentations de graphes dynamiques et ses applications.
Points forts de EvolveGCN
Code pour les Réseaux Convolutifs Évolutifs (EvolveGCN)
Conçu pour l'analyse de graphes dynamiques
Comprend des implémentations pour 7 ensembles de données
Fournit une configuration Docker pour la gestion de l'environnement
Prend en charge le réglage des hyperparamètres avec des limites min/max
Inclut un script d'analyse de logs pour les résultats d'expériences
Publié dans AAAI 2020
Dépôt de code open-source
Nécessite PyTorch 1.0+ et Python 3.6+
Accélération GPU recommandée
Premiers pas avec EvolveGCN
Configurer l'environnement : Installer Docker et les pilotes NVIDIA si vous utilisez un GPU.
Construire l'image Docker : Naviguer vers le dossier `docker-set-up` et exécuter `sudo docker build -t gcn_env:latest .`.
Démarrer le conteneur Docker : Exécuter `sudo docker run -ti --gpus all -v $( pwd ) :/evolveGCN gcn_env:latest`.
Préparer les données : Télécharger et placer les ensembles de données dans le dossier 'data' conformément aux instructions.
Configurer l'expérience : Modifier ou créer des fichiers de configuration YAML dans le dossier 'experiments'.
Exécuter l'expérience : Exécuter `python run_exp.py --config_file ./experiments/parameters_example.yaml`.
Analyser les résultats : Utiliser `log_analyzer.py` pour analyser les fichiers journaux afin d'obtenir les métriques d'évaluation.
Cas d'utilisation de EvolveGCN
- Modélisation de Graphes Dynamiques
- Analyse de l'Évolution des Réseaux
- Classification de Nœuds
- Prédiction de Liens
- Représentation Temporelle de Graphes
- Analyse de Réseaux Sociaux
- Détection de Fraude







