Description
GraphSAINT est un framework général et flexible conçu pour l'entraînement de réseaux neuronaux sur graphes (GNN) à grande échelle. Il se distingue par une méthodologie d'entraînement par mini-batchs novatrice qui emploie l'échantillonnage de graphes, une rupture avec les approches conventionnelles d'échantillonnage de couches. Cette technique d'échantillonnage de graphes permet la construction de couches GNN complètes sur de petits sous-graphes échantillonnés, plutôt que l'échantillonnage au sein des couches. Ce changement fondamental de perspective entraîne plusieurs avantages clés.
Lire la suite
La précision est améliorée grâce à des techniques de normalisation simples mais efficaces qui atténuent le biais introduit par l'échantillonnage de graphes. De plus, GraphSAINT propose des échantillonneurs de graphes légers qui préservent les voisins cruciaux en fonction des caractéristiques topologiques, abordant la perte d'informations inhérente à tout processus d'échantillonnage. Ceci peut également être considéré comme une forme d'augmentation de données ou de régularisation d'entraînement.
L'efficacité est considérablement améliorée en résolvant le problème de « l'explosion des voisins », un défi courant dans les méthodes d'échantillonnage de couches. En construisant des couches GNN complètes et non échantillonnées sur des sous-graphes, le nombre de voisins reste constant quelle que soit la profondeur du réseau, réduisant le coût de calcul par mini-batch de l'exponentiel au linéaire par rapport à la profondeur du GNN. Cela réduit également considérablement la surcharge de communication dans les environnements distribués.
La flexibilité est un principe fondamental de GraphSAINT. La propagation des couches sur un sous-graphe de mini-batch reflète étroitement celle sur le graphe complet, permettant l'entraînement transparent de la plupart des architectures GNN conçues pour les graphes complets. Ceci contraste avec certains algorithmes d'échantillonnage de couches qui ne prennent en charge que des architectures GNN limitées. La scalabilité est atteinte en termes de taille de graphe, de taille de modèle et de ressources parallèles. Les tailles de sous-graphes n'ont pas besoin de croître proportionnellement à la taille du graphe, permettant aux grands graphes de tenir dans la mémoire GPU. Les coûts d'entraînement évoluent linéairement avec la largeur et la profondeur du GNN, et l'échantillonnage de graphes est hautement parallélisable.
Le dépôt fournit des implémentations Python en TensorFlow et PyTorch, ainsi qu'une implémentation C++ pour les techniques d'entraînement parallèles. Il prend en charge diverses architectures GNN comme GraphSAGE, GAT et JK-Net, ainsi que plusieurs échantillonneurs de graphes, notamment Node, Edge, RW et MRW. Le framework est conçu pour les chercheurs et les praticiens travaillant avec de grands ensembles de données de graphes qui nécessitent un entraînement GNN efficace et précis.
- CatégoriePlateformes de machine learning
- Modèle tarifaireOpen source
- DéploiementCloud, Auto-hébergé
- PlateformesLinux, Windows
Fonctionnalités principales de GraphSAINT
Entraînement par mini-batchs pour GNN profonds sur de grands graphes
Méthode d'apprentissage inductive basée sur l'échantillonnage de graphes
Approche novatrice d'entraînement par mini-batchs utilisant l'échantillonnage de graphes
Élimine le biais introduit par l'échantillonnage de graphes via la normalisation
Échantillonneurs de graphes légers pour préserver les voisins importants
Résout le problème de « l'explosion des voisins » pour l'efficacité
Scalable par rapport à la taille du graphe, la taille du modèle et les ressources parallèles
Prend en charge plusieurs architectures GNN (GraphSAGE, GAT, JK-Net, GaAN, MixHop)
Prend en charge divers échantillonneurs de graphes (Node, Edge, RW, MRW, Graphe complet)
Disponible en implémentations TensorFlow et PyTorch
Inclut une implémentation C++ pour les techniques d'entraînement parallèles
Facilite la personnalisation pour vos propres ensembles de données et échantillonneurs
Premiers pas avec GraphSAINT
Accéder au modèle : Cloner le dépôt GitHub.
Configurer l'environnement : Installer les dépendances, y compris Python, TensorFlow/PyTorch, Cython et g++.
Compiler les échantillonneurs : Exécuter `python graphsaint/setup.py build_ext --inplace`.
Préparer le jeu de données : Formater vos données de graphe dans `adj_full.npz`, `adj_train.npz`, `role.json`, `class_map.json` et `feats.npy`.
Configurer l'entraînement : Définir les hyperparamètres à l'aide des fichiers de configuration YAML dans `./train_config/`.
Exécuter l'entraînement : Exécuter les scripts d'entraînement en utilisant `python -m graphsaint.<tensorflow/pytorch>_version.train` avec les indicateurs appropriés pour les données, la configuration et l'utilisation du GPU.
Cas d'utilisation de GraphSAINT
- Entraînement de graphes à grande échelle
- Apprentissage inductif sur les graphes
- Apprentissage de représentations de graphes
- Classification de nœuds
- Prédiction de liens
- Prédiction au niveau du graphe
- Développement de GNN personnalisés







