Qu'est-ce que les réseaux de neurones graphiques ? Explication et applications [avec schémas]

Publié: 2021-01-08

Table des matières

introduction

Ces derniers temps, les réseaux de neurones ont acquis une énorme popularité en raison de leur application et de leur facilité d'utilisation dans le domaine de la reconnaissance de formes et de l'exploration de données. L'application de Deep Learning à des tâches telles que la détection d'objets et la reconnaissance vocale à l'aide de techniques telles que CNN, RNN et les auto-encodeurs a apporté une énorme quantité de travail dans la recherche et le développement des réseaux de neurones.

L'application de Deep Learning sur des données telles que des images, du texte et des vidéos est facilement réalisée car elles sont basées sur des données euclidiennes. Qu'en est-il des applications où les données sont représentées sous forme de graphes (non euclidiens) avec des relations très complexes entre les objets ?

C'est là que nous introduisons le concept de Graph Neural Networks (GNN). Dans cet article, nous passerons en revue les définitions et les bases des graphes et des GNN et verrons certaines des dernières applications des réseaux de neurones graphiques.

Qu'est-ce qu'un graphique ?

D'après le titre - Graph Neural Networks, nous voyons que la partie la plus fondamentale de GNN est un graphe.

En informatique, un graphe est défini comme une structure de données à deux composants. Sommets et arêtes. Un graphe G, peut être défini comme G = VE . Où V est l'ensemble des sommets et E sont les arêtes entre eux. Les termes sommets et nœuds sont souvent utilisés de manière interchangeable. S'il y a une flèche sur les arêtes appelée dépendance directionnelle, il s'agit alors d'un graphe orienté. Sinon, ce sont des graphes non orientés.

La source

Un graphique peut représenter plusieurs choses - réseau de médias sociaux, réseau de villes, molécules, etc. Considérez le graphique suivant qui représente un réseau de villes. Les villes sont représentées comme les nœuds et les routes qui les relient sont les bords.

La source

En utilisant le réseau de graphes ci-dessus, nous pouvons résoudre plusieurs problèmes relatifs à ces villes, comme trouver quelles villes sont bien connectées ou trouver la distance la plus courte entre deux villes.

Que sont les réseaux de neurones graphiques ?

Comme les graphes ont des pouvoirs expressifs extrêmement forts, ils attirent largement l'attention dans le domaine de l'apprentissage automatique. Chaque nœud est associé à une intégration. Cette intégration définit le nœud dans l'espace de données. Les réseaux de neurones de graphes font référence aux architectures de réseaux de neurones fonctionnant sur un graphe.

L'objectif principal d'une architecture GNN est d'apprendre un encastrement qui contient des informations sur son voisinage. En utilisant cette intégration, nous pouvons résoudre plusieurs problèmes comme l'étiquetage du nœud, la prédiction des nœuds et des arêtes, etc.

En d'autres termes, les réseaux de neurones graphiques sont une classe supplémentaire de méthodes d'apprentissage en profondeur conçues pour effectuer des inférences sur des données fournies par des graphiques. Ils sont appliqués sur des graphes et peuvent facilement effectuer des tâches de prédiction au niveau des nœuds, des arêtes et des graphes.

Pourquoi pas CNN ?

Le principal avantage de GNN est qu'il peut effectuer des tâches que les réseaux de neurones convolutifs (CNN) n'ont pas réussi à faire. Les CNN sont utilisés pour effectuer des tâches telles que la détection d'objets, la classification et la reconnaissance d'images. En utilisant des couches convolutionnelles cachées et des couches de regroupement, CNN y parvient.

Il est difficile de calculer CNN sur des données graphiques car il s'agit d'une topologie hautement arbitraire et complexe, ce qui signifie qu'il n'y a pas de localité spatiale. De plus, il existe un ordre de nœuds non fixe qui rend plus difficile l'application de CNN.

Réseaux de neurones graphiques

Ainsi, il est entendu que, comme on l'appelle, GNN est un réseau de neurones qui est directement appliqué aux graphes, fournissant un moyen pratique pour les tâches de prédiction au niveau des bords, des nœuds et des graphes. Il existe principalement trois types de réseaux de neurones graphiques :

  1. Réseau de neurones de graphe récurrent
  2. Réseau convolutif spatial
  3. Réseau convolutionnel spectral

L'une des intuitions de GNN est que les nœuds sont définis par ses voisins et ses connexions. Nous pouvons le visualiser en imaginant que si tous les voisins d'un nœud sont supprimés, alors le nœud perdra toutes ses informations. Ainsi, la notion de voisins d'un nœud et de connexions aux voisins définissent un nœud.

Dans cet esprit, donnons à chaque nœud un état (x) pour représenter son concept. Nous pouvons utiliser l'état du nœud (x) pour produire une sortie (o), qui est la décision concernant le concept. L'état final (x_n) du nœud est appelé « incorporation de nœud ». La tâche principale de tout le Graph Neural Network est de déterminer le "node embedding" de chaque nœud, en examinant les informations sur ses nœuds voisins.

Commençons par la version la plus puissante de GNN, Recurrent Graph Neural Network ou RecGNN

Réseau de neurones de graphe récurrent

Comme mentionné dans l'article original, RecGNN est construit avec une hypothèse du théorème du point fixe de Banach qui stipule que : Soit (X,d) un espace métrique complet et soit (T:X→X) une application de contraction. Alors T a un unique point fixe (x∗) et pour tout x∈X la suite T_n(x) pour n→∞ converge vers (x∗). Cela signifie que si j'applique le mappage T sur x pour k fois, x^k devrait être presque égal à x^(k-1).

Réseau convolutif spatial

L'intuition de Spatial Convolutional Network est similaire à celle du CNN. Comme nous le savons dans CNN, l'idée est d'effectuer une convolution en additionnant les pixels voisins autour d'un pixel central avec un filtre et des poids apprenables. Les réseaux convolutifs spatiaux adoptent une idée similaire en agrégeant les caractéristiques des nœuds voisins vers le nœud central.

La source

Réseau convolutionnel spectral

Contrairement à d'autres réseaux de neurones graphiques, ce type de GNN a une base mathématique solide. Il est développé sur la théorie du traitement du signal graphique. Il utilise l'approximation polynomiale de Chebyshev pour la simplification.

Que peut faire un GNN ?

Les problèmes qu'un GNN peut résoudre sont généralement classés en 3 catégories -

  1. Classification des nœuds
  2. Prédiction de lien
  3. Classement des graphiques

Classification des nœuds

consiste à prédire l'incorporation de nœuds pour chaque nœud dans un graphe. Dans de tels cas, seule une partie du graphe est étiquetée et c'est ce qu'on appelle un graphe semi-supervisé. Certaines applications sont des vidéos YouTube, la recommandation d'amis Facebook, etc.

Prédiction de lien

la tâche principale est d'identifier la relation entre deux entités dans un graphique et de prédire s'il existe une connexion entre les deux entités. Par exemple, considérons un système de recommandation dans lequel un modèle reçoit un ensemble d'avis d'utilisateurs de différents produits. La tâche consiste à prédire les préférences des utilisateurs et à régler le système de recommandation pour promouvoir les produits qui correspondent aux intérêts des utilisateurs.

Classement des graphiques

consiste à classer l'ensemble du graphique en plusieurs catégories différentes. C'est assez similaire à la tâche de classification d'images mais la cible ici est dans le domaine des graphes. Il existe plusieurs exemples de classification de graphes, comme en chimie, un modèle reçoit une structure moléculaire sous la forme d'un graphe et la tâche consiste à classer la cible dans une catégorie particulière.

Applications en temps réel de GNN

Depuis son introduction en 2018, les GNN ont trouvé un certain nombre d'applications en temps réel qui sont résumées ci-dessous.

Traitement du langage naturel

GNN trouve ses applications dans une grande variété d'applications PNL telles que la classification des sentiments, la classification des textes, l'étiquetage des séquences. Ils sont utilisés en PNL en raison de sa facilité d'application. Ils sont également utilisés dans l'analyse des réseaux sociaux, comme la prédiction de messages similaires et la recommandation de contenu spécifique aux utilisateurs.

Vision par ordinateur

La vision par ordinateur est un vaste domaine qui s'est développé rapidement avec l'aide du Deep Learning dans des domaines tels que la classification d'images, la détection d'objets, etc. L'application la plus populaire étant les réseaux de neurones convolutifs. Plus tard, les GNN ont également été appliqués dans ce domaine. Bien que l'application de GNN dans la vision par ordinateur en soit à ses balbutiements, elle montre un énorme potentiel dans les années à venir.

La science

Les GNN sont également largement utilisés dans les sciences telles que les systèmes de physique, la prédiction des effets secondaires et la classification des maladies. Les chimistes utilisent également les GNN pour étudier la structure graphique des composés et des molécules.

Autres domaines

L'application de GNN n'est pas seulement limitée aux tâches ci-dessus. Il y a eu plusieurs tentatives d'application de GNN à une variété de domaines tels que les systèmes de recommandation, l'analyse des réseaux sociaux, etc.

Conclusion

Au cours des dernières années, depuis que les GNN ont été introduits, ils sont devenus un outil puissant et fiable pour résoudre des problèmes qui peuvent être modélisés par des graphes. Cela est dû à sa flexibilité, sa puissance expressive et sa facilité de visualisation. Ainsi, les GNN sont une solution intuitive aux données non structurées avec un large éventail d'applications du monde réel.

Si vous souhaitez en savoir plus sur GCN, ses fonctionnalités et ses avantages, inscrivez-vous sur upGrad Education Pvt. Ltd. Et le cours de troisième cycle et de diplôme de l'IIITB sur l'apprentissage automatique et l'intelligence artificielle. Ce cours sur l'apprentissage automatique et l'IA est conçu pour les étudiants et les professionnels en activité.

Le cours fournit une collection d'études de cas et de missions, des sessions de mentorat de l'industrie, le statut d'ancien élève de l'IIIT Bangalore, une aide au placement dans les meilleures entreprises et, plus important encore, une riche expérience d'apprentissage.

Qu'entendez-vous par réseau de neurones ?

Les réseaux de neurones sont des algorithmes de réseau qui aident à identifier des modèles et sont en quelque sorte conçus d'après le cerveau humain. Ils utilisent l'apprentissage automatique et l'intelligence artificielle pour comprendre les entrées sensorielles, catégoriser ou regrouper les données brutes. Toutes les statistiques réelles, qu'il s'agisse d'images, de musique, de texte ou de séries chronologiques, doivent être traduites dans les caractères reconnus par le réseau neuronal, qui sont numériques et codés en vecteurs. Ils facilitent la classification et le regroupement des données. Ils catégorisent les données lorsqu'ils ont un ensemble de données étiqueté, et ils aident à regrouper les données non étiquetées en fonction des similitudes entre les exemples d'entrées. Ils font partie d'applications d'apprentissage automatique plus étendues qui incluent des algorithmes d'apprentissage par renforcement, de variété et de régression.

Qu'est-ce qu'un réseau de neurones convolutifs ?

Un réseau neuronal convolutif, également connu sous le nom de CNN ou ConvNet, est une technique qui peut prendre une image d'entrée et donner la priorité à divers éléments de l'image, ainsi que les distinguer. La quantité de traitement requise par un CNN est nettement inférieure à celle des autres algorithmes. CNN a été conçu en prenant l'aide du cortex visuel, et il a un schéma similaire aux neurones de notre cerveau. Même dans CNN, les neurones individuels ne peuvent réagir aux impulsions que dans une petite zone du champ visuel appelée champ récepteur.

En quoi les réseaux de neurones sont-ils différents de l'apprentissage automatique ?

L'apprentissage automatique est un ensemble d'algorithmes puissants qui analysent les données, les étudient et appliquent ce qu'ils ont étudié pour trouver des modèles intrigants. Un réseau de neurones, quant à lui, est un ensemble de techniques utilisées dans l'apprentissage automatique pour modéliser des données à l'aide de graphes de neurones. Un réseau de neurones organise les algorithmes de manière à pouvoir porter des jugements fiables par lui-même, tandis qu'un modèle d'apprentissage automatique prend des décisions en fonction de ce qu'il a appris des données. Par conséquent, bien que les modèles d'apprentissage automatique puissent apprendre à partir des données, ils peuvent nécessiter une certaine interaction humaine dans les premières étapes. Les réseaux de neurones ne nécessitent pas d'interaction humaine puisque les couches empilées en leur sein transmettent des informations à travers des hiérarchies de concepts distincts, leur permettant d'apprendre de leurs propres erreurs.