Maison  >  Article  >  Périphériques technologiques  >  10 lignes de code pour compléter le graphique Transformer, le cadre de réseau neuronal graphique DGL a inauguré la version 1.0

10 lignes de code pour compléter le graphique Transformer, le cadre de réseau neuronal graphique DGL a inauguré la version 1.0

WBOY
WBOYavant
2023-04-11 23:52:011326parcourir

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.


10 lignes de code pour compléter le graphique Transformer, le cadre de réseau neuronal graphique DGL a inauguré la version 1.0

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 :

  • +100 exemples de modèles GNN prêts à l'emploi, plus de 15 modèles de référence les mieux classés sur Open Graph Benchmark (OGB) ;
  • +150 modules GNN communs, y compris les couches GNN, les ensembles de données, les modules de conversion de données graphiques, les échantillonneurs graphiques, etc., peuvent être utilisés pour créer de nouvelles architectures de modèles ou des solutions basées sur GNN
  • Transmission de messages flexible et efficace et abstraction matricielle clairsemée, en utilisant Pour le développement ; de nouveaux modules GNN ;
  • Les capacités de formation multi-GPU et distribuées prennent en charge la formation sur des dizaines de milliards de graphiques.


10 lignes de code pour compléter le graphique Transformer, le cadre de réseau neuronal graphique DGL a inauguré la version 1.0

Diagramme de la pile technologique DGL 1.0

10 lignes de code pour compléter le graphique Transformer, le cadre de réseau neuronal graphique DGL a inauguré la version 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.

10 lignes de code pour compléter le graphique Transformer, le cadre de réseau neuronal graphique DGL a inauguré la version 1.0

10 lignes de code pour compléter le graphique Transformer, le cadre de réseau neuronal graphique DGL a inauguré la version 1.0

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.

10 lignes de code pour compléter le graphique Transformer, le cadre de réseau neuronal graphique DGL a inauguré la version 1.0

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.

10 lignes de code pour compléter le graphique Transformer, le cadre de réseau neuronal graphique DGL a inauguré la version 1.0


10 lignes de code pour compléter le graphique Transformer, le cadre de réseau neuronal graphique DGL a inauguré la version 1.0

Utilisez l'API de messagerie pour implémenter GCN


10 lignes de code pour compléter le graphique Transformer, le cadre de réseau neuronal graphique DGL a inauguré la version 1.0

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.

10 lignes de code pour compléter le graphique Transformer, le cadre de réseau neuronal graphique DGL a inauguré la version 1.0

10 lignes de code pour compléter le graphique Transformer, le cadre de réseau neuronal graphique DGL a inauguré la version 1.0

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.

10 lignes de code pour compléter le graphique Transformer, le cadre de réseau neuronal graphique DGL a inauguré la version 1.0

10 lignes de code pour compléter le graphique Transformer, le cadre de réseau neuronal graphique DGL a inauguré la version 1.0

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 :

  • Sélection automatique du format clairsemé : DGL Sparse est conçu pour que les utilisateurs n'aient pas à se soucier du choix de la bonne structure de données pour stocker les matrices clairsemées (également appelées formats clairsemés). ). Les utilisateurs doivent seulement se rappeler que dgl.sparse.spmatrix crée une matrice clairsemée et que DGL sélectionnera automatiquement en interne le format optimal en fonction de l'opérateur appelé
  • éléments scalaires ou vectoriels non nuls : a ; Les modèles GNN apprennent plusieurs poids sur les bords (tels que les vecteurs d'attention multi-têtes démontrés dans l'exemple Graph Transformer). Pour s'adapter à cette situation, DGL Sparse permet aux éléments non nuls d'avoir des formes vectorielles et étend les opérations clairsemées courantes telles que la multiplication de matrice clairsemée-dense (SpMM), etc. Vous pouvez vous référer à l'opération bspmm dans l'exemple de Graph Transformer.

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.

Démarrez avec DGL 1.0

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer