Exploring Graph Neural Networks

Graph Neural Networks (GNNs) are powerful models that allow handling graph-structured data, making them useful in various real-world applications such as social networks, biological data analysis, and recommendation systems.

This project explores how GNNs can be used for different tasks, including:

  1. Graph-Based Classification: implementing a GNN that can classify entire graphs while dealing with an interesting dataset. Exploring different graph-level aggregation techniques, analyzing class distributions, and experimenting with ways to improve model performance.
  2. Node-Based Classification in a Heterogeneous Graph: designing a GNN that can correctly classify nodes of different natures and feature dimensions inside a single graph, all while considering their heterogeneity.
  3. Investigating Topology in Node-Based Classification: analysis of how the structure (or topology) of a graph affects the performance of GNNs by exploring key graph measures such as node degree, modularity, and Ollivier-Ricci curvature and examining their impact on model performance.

alt text

Code Implementation
Report