Maison >Périphériques technologiques >IA >10 lignes de code pour compléter le graphique Transformer, le cadre de réseau neuronal graphique DGL a inauguré la version 1.0
En 2019, l'Université de New York et Amazon Cloud Technology ont lancé conjointement le framework de réseau neuronal graphique DGL (Deep Graph Library). Maintenant, DGL 1.0 est officiellement publié ! DGL 1.0 résume les différents besoins en matière d'apprentissage profond des graphes et de technologie de réseau neuronal graphique (GNN) dans le monde universitaire ou industriel au cours des trois dernières années. De la recherche universitaire sur des modèles de pointe à la mise à l'échelle des GNN vers des applications industrielles, DGL 1.0 fournit une solution complète et facile à utiliser pour que tous les utilisateurs puissent mieux tirer parti de l'apprentissage automatique des graphes.
DGL 1.0 fournit des solutions pour différents scénarios.
DGL 1.0 adopte une conception en couches et modulaire pour répondre aux différents besoins des utilisateurs. Les principales fonctionnalités de cette version incluent :
Diagramme de la pile technologique DGL 1.0
Adresse : https://github.com/dmlc/dgl
L'un des points forts de cette version est l'introduction de DGL-Sparse, une nouvelle interface de programmation qui utilise des matrices clairsemées comme abstraction de programmation principale. DGL-Sparse simplifie non seulement le développement de modèles GNN existants (tels que les réseaux convolutionnels graphes), mais fonctionne également avec les modèles les plus récents, notamment les GNN basés sur la diffusion, les réseaux neuronaux hypergraphiques et les transformateurs graphiques.
La sortie de la version 1.0 de DGL a suscité des réactions enthousiastes sur Internet. Des chercheurs tels que Yann Lecun, l'un des trois géants du deep learning, et Xavier Bresson, professeur agrégé à l'Université nationale de Singapour, ont tous apprécié et l'a transmis.
Dans l'article suivant, l'auteur décrit deux paradigmes GNN traditionnels, à savoir la vue de transmission de messages et la vue matricielle. Ces paradigmes peuvent aider les chercheurs à mieux comprendre le mécanisme de fonctionnement interne du GNN, et la perspective matricielle est également l'une des motivations du développement de DGL Sparse.
Vue de passage de messages et vue matricielle
Il y a un dicton dans le film "Arrivée": "La langue que vous utilisez détermine votre façon de penser et affecte votre vision des choses." Cette phrase convient également à GNN.
signifie que les réseaux de neurones graphes ont deux paradigmes différents. La première, appelée vue de transmission de messages, exprime le modèle GNN d'un point de vue local et précis, détaillant comment les messages sont échangés le long des bords et comment les états des nœuds sont mis à jour en conséquence. La seconde est la perspective matricielle. Étant donné que les graphiques ont une équivalence algébrique avec des matrices d’adjacence clairsemées, de nombreux chercheurs choisissent d’exprimer les modèles GNN dans une perspective globale à gros grain, en mettant l’accent sur les opérations impliquant des matrices d’adjacence clairsemées et des vecteurs propres.
La perspective de transmission de messages révèle le lien entre les GNN et le test d'isomorphisme des graphes de Weisfeiler Lehman (WL), qui repose également sur l'agrégation d'informations provenant des voisins. La perspective matricielle comprend GNN d'un point de vue algébrique, conduisant à des découvertes intéressantes, telles que le problème du sur-lissage.
En bref, ces deux perspectives sont des outils indispensables pour étudier le GNN. Elles se complètent et aident les chercheurs à mieux comprendre et décrire la nature et les caractéristiques des modèles GNN. C'est pour cette raison que l'une des principales motivations de la sortie de DGL 1.0 est d'ajouter le support de la perspective matricielle basée sur l'interface de transmission de messages existante.
DGL Sparse : une bibliothèque de matrices clairsemées conçue pour l'apprentissage automatique des graphes
La version DGL 1.0 possède une nouvelle bibliothèque appelée DGL Sparse (dgl.sparse), qui, avec l'interface de transmission de messages dans DGL, améliore la prise en charge de tous les types de modèles de réseaux neuronaux graphiques. DGL Sparse fournit des classes et des opérations matricielles clairsemées spécifiquement pour l'apprentissage automatique des graphes, ce qui facilite l'écriture de GNN d'un point de vue matriciel. Dans la section suivante, les auteurs présentent plusieurs exemples de GNN, montrant leurs formulations mathématiques et les implémentations de code correspondantes dans DGL Sparse.
Graph Convolutional Network
GCN est l'un des pionniers de la modélisation GNN. GCN peut être représenté à la fois avec une vue de transmission de messages et une vue matricielle. Le code suivant compare les différences entre ces deux méthodes dans DGL.
Utilisez l'API de messagerie pour implémenter GCN
Utilisation de DGL Sparse pour implémenter GCN
GNN basé sur la diffusion graphique
La diffusion graphique est le processus de propagation ou de lissage des caractéristiques ou des signaux des nœuds le long des bords. De nombreux algorithmes graphiques classiques tels que le PageRank entrent dans cette catégorie. Une série d'études ont montré que la combinaison de la diffusion de graphes avec des réseaux de neurones est un moyen efficace et efficient d'améliorer les prédictions des modèles. L'équation suivante décrit le calcul de base de l'un des modèles les plus représentatifs, APPNP. Il peut être implémenté directement dans DGL Sparse.
Réseau neuronal hypergraphique
Un hypergraphe est une généralisation de graphiques où les arêtes peuvent connecter n'importe quel nombre de nœuds (appelés hyperedges). Les hypergraphes sont particulièrement utiles dans les scénarios où des relations d'ordre supérieur doivent être capturées, comme le comportement de co-achat sur les plateformes de commerce électronique ou la co-auteur dans les réseaux de citations. Une caractéristique typique d'un hypergraphe est sa matrice de corrélation clairsemée, de sorte que les réseaux de neurones hypergraphiques (HGNN) sont souvent définis à l'aide de matrices clairsemées. Ce qui suit est un réseau convolutionnel hypergraphique (Feng et al., 2018) et son implémentation de code. Le modèle Transformer est devenu l'architecture de modèle la plus performante en matière de traitement du langage naturel. Les chercheurs commencent également à étendre Transformer à l’apprentissage automatique graphique. Dwivedi et al. ont été les pionniers de l'idée de limiter toute attention multi-têtes aux paires de nœuds connectées dans le graphique. Ce modèle peut être facilement implémenté avec seulement 10 lignes de code à l'aide de l'outil DGL Sparse.
Principales fonctionnalités de DGL Sparse
Par rapport aux bibliothèques matricielles clairsemées telles que scipy.sparse ou torch.sparse, la conception globale de DGL Sparse est de servir l'apprentissage automatique des graphes, y compris Les fonctionnalités clés suivantes :
En tirant parti de ces fonctionnalités de conception, DGL Sparse réduit la longueur du code de 2,7x en moyenne par rapport aux implémentations précédentes de modèles de vue matricielle utilisant des interfaces de transmission de messages. Le code simplifié réduit également la surcharge du framework de 43%. De plus, DGL Sparse est compatible avec PyTorch et peut être facilement intégré à divers outils et packages de l'écosystème PyTorch.
DGL 1.0 a été publié sur toutes les plates-formes et peut être facilement installé à l'aide de pip ou conda. En plus des exemples présentés précédemment, la première version de DGL Sparse comprend également 5 didacticiels et 11 exemples de bout en bout, qui peuvent tous être expérimentés directement dans Google Colab sans nécessiter d'installation locale.
Pour en savoir plus sur les nouvelles fonctionnalités de DGL 1.0, veuillez vous référer au journal de publication de l'auteur. Si vous rencontrez des problèmes ou avez des suggestions ou des commentaires lors de l'utilisation de DGL, vous pouvez également contacter l'équipe DGL via le forum de discussion ou Slack.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!