Graph Neural Network (GNN)
Découvre les réseaux neuronaux de graphes (GNNs) pour traiter les données non euclidiennes. Apprends comment les GNNs améliorent le raisonnement relationnel aux côtés d’Ultralytics YOLO26 pour une IA visuelle avancée.
Un réseau neuronal de graphes (GNN) est une classe spécialisée d'architectures d'apprentissage profond conçues pour traiter des données représentées sous forme de graphes. Alors que les modèles traditionnels comme les réseaux neuronaux convolutifs (CNN) sont optimisés pour des structures en grille telles que les images, et que les réseaux neuronaux récurrents (RNN) excellent dans le traitement de données séquentielles comme le texte ou l'analyse des séries temporelles, les GNN sont particulièrement adaptés au traitement de données non euclidiennes. Cela signifie qu'ils opèrent sur des jeux de données définis par des nœuds (entités) et des arêtes (relations), ce qui leur permet d'apprendre à partir des interdépendances complexes qui caractérisent les réseaux du monde réel. En capturant à la fois les attributs des points de données individuels et les connexions structurelles entre eux, les GNN fournissent des informations précieuses dans les domaines où les relations sont tout aussi essentielles que les entités elles-mêmes.
Fonctionnement des réseaux neuronaux de graphes#
Le mécanisme fondamental d'un GNN repose sur un processus souvent appelé « propagation de messages » ou agrégation du voisinage. Dans ce cadre, chaque nœud du graphe met à jour sa propre représentation en recueillant des informations auprès de ses voisins immédiats. Pendant l'entraînement du modèle, le réseau apprend à produire des plongements efficaces — des représentations vectorielles denses — qui encodent les caractéristiques d'un nœud ainsi que la topologie de son voisinage local.
Grâce à plusieurs couches de traitement, un nœud peut finalement intégrer des informations provenant de zones plus éloignées du graphe, élargissant ainsi son « champ réceptif ». Le modèle peut ainsi comprendre le contexte d'un nœud au sein de la structure globale. Des frameworks modernes comme PyTorch Geometric et la bibliothèque de graphes profonds (DGL) facilitent l'implémentation de ces schémas complexes de propagation de messages, permettant aux développeurs de créer des applications sophistiquées basées sur les graphes sans repartir de zéro.
Les GNN par rapport aux autres architectures neuronales#
Pour comprendre le rôle particulier des GNN, il est utile de les distinguer des autres types courants de réseaux neuronaux (NN) présents dans le domaine de l'IA :
- Réseaux neuronaux convolutifs (CNN) : ce sont la référence pour les tâches visuelles, comme la classification d'images ou la détection d'objets. Des modèles comme Ultralytics YOLO26 s'appuient sur les CNN pour traiter des données de pixels organisées sur une grille fixe. Cependant, les CNN éprouvent des difficultés avec les structures irrégulières, où le nombre de voisins varie pour chaque nœud.
- Réseaux neuronaux récurrents (RNN) : les RNN traitent les entrées dans un ordre précis, ce qui les rend idéaux pour les tâches linguistiques ou le traitement automatique du langage naturel (NLP). En revanche, les GNN traitent des données où les relations sont spatiales ou relationnelles plutôt que strictement temporelles ou séquentielles.
- Graphe de connaissances : un graphe de connaissances est une base de données structurée de faits (entités et relations), tandis qu'un GNN est le modèle informatique utilisé pour apprendre à partir de ces structures. Les GNN sont fréquemment déployés sur des graphes de connaissances pour effectuer des tâches comme la prédiction de liens, améliorant souvent les pipelines de génération augmentée par récupération (RAG).
Applications concrètes#
La capacité à modéliser des relations arbitraires rend les GNN indispensables dans divers secteurs à fort impact :
-
Découverte de médicaments et santé : dans l'industrie pharmaceutique, les molécules chimiques sont naturellement représentées sous forme de graphes, où les atomes sont les nœuds et les liaisons les arêtes. Les GNN transforment l'IA dans le domaine de la santé en prédisant les propriétés moléculaires et en simulant les interactions entre protéines. Des innovations comme AlphaFold de Google DeepMind illustrent la puissance de l'apprentissage profond géométrique pour comprendre les structures biologiques.
-
Analyse des réseaux sociaux et recommandation : les plateformes utilisent les GNN pour analyser de vastes réseaux d'interactions entre utilisateurs. En modélisant les utilisateurs comme des nœuds et les amitiés ou les mentions « J'aime » comme des arêtes, ces réseaux alimentent des systèmes de recommandation qui suggèrent du contenu, des produits ou des relations. Cette approche, similaire aux méthodes utilisées dans GraphSage de Pinterest, s'adapte efficacement à des milliards d'interactions.
-
Logistique et prévision du trafic : dans l'IA appliquée à la logistique, les réseaux routiers sont traités comme des graphes, où les intersections sont les nœuds et les routes les arêtes. Les GNN peuvent prédire les flux de circulation et optimiser les itinéraires de livraison en analysant les dépendances spatiales entre différents segments routiers, dépassant largement les simples modèles statistiques de référence.
Intégration des concepts de graphes à l'IA appliquée à la vision#
Les réseaux neuronaux de graphes sont de plus en plus intégrés aux pipelines multimodaux. Par exemple, un système complet pourrait utiliser la segmentation d'images pour identifier les objets distincts d'une scène, puis employer un GNN pour raisonner sur les relations spatiales entre ces objets — ce que l'on appelle souvent un « graphe de scène ». Cela fait le lien entre la perception visuelle et le raisonnement logique.
L'exemple Python suivant montre comment relier l'IA appliquée à la vision aux structures de graphes. Il utilise le modèle Ultralytics YOLO26 pour détecter les objets, qui servent de nœuds, et prépare une structure de graphe élémentaire à l'aide de torch.
import torch
from ultralytics import YOLO
# Load the latest YOLO26 model
model = YOLO("yolo26n.pt")
# Run inference on an image to find entities (nodes)
results = model("https://ultralytics.com/images/bus.jpg")
# Extract box centers to serve as node features
# Format: [center_x, center_y] derived from xywh
boxes = results[0].boxes.xywh[:, :2].cpu()
x = torch.tensor(boxes.numpy(), dtype=torch.float)
# Create a hypothetical edge index connecting the first two objects
# In a real GNN, edges might be defined by distance or interaction
edge_index = torch.tensor([[0, 1], [1, 0]], dtype=torch.long)
print(f"Graph constructed: {x.size(0)} nodes (objects) and {edge_index.size(1)} edges.")Les développeurs qui souhaitent gérer les jeux de données nécessaires à ces pipelines complexes peuvent utiliser la plateforme Ultralytics, qui simplifie les flux de travail d'annotation et d'entraînement pour les composants de vision du système. En combinant des modèles de vision robustes au raisonnement relationnel des GNN, les ingénieurs peuvent créer des systèmes autonomes sensibles au contexte qui comprennent mieux le monde qui les entoure.









