# Motivation on GNNs

Graphs are an essential data type that enables the representation of
information that is relational in a properly structured manner. In this
context, GNN has recently emerged as an efficient Neural Network (NN)
technique with outstanding applications in many different fields where
data is fundamentally represented as graphs. Before *GNNs*, a common
approach to address graph-based problems was to use conventional NN
(e.g., fully-connected NN) which were fed with plain representations of
the graph that attempted to preserve its most meaningful information.
Due to the immense impact of this representation on the performance of
the model, we typically require *ML* experts to do feature engineering
or use generic embedding techniques. Even in such a scenario, however, we
still, end up with a model that works as well as the relevance of the
features we handcrafted, which can be a cumbersome task in complex
scenarios.

In this context, Graph Neural Networks (GNNs) was recently proposed as
a novel NN family specifically designed to process, understand, and
model graph-structured data autonomously. Similar to the way
Convolutional NNs process images, GNNs process input graphs in raw
format, without any pre-processing. Thus, during training, GNNs learn
how to process graphs according to the problem goals (e.g., predict a
particular global metric of the graph). Moreover, GNNs are invariant to
node and edge permutations, and offer strong *relational inductive bias*
over graphs. This endows them with powerful capabilities to generalize
to other graphs of different sizes and structures not seen during the
training phase. As a result, we have witnessed a plethora of
applications where GNN has shown unprecedented generalization properties
over graphs concerning previous NN architectures. Below we provide
several use-cases of different fields which are solved through the use
of Graph Neural Networks:

**Networking**: Modeling the performance of networks, optimizing the
routing, or scheduling jobs in data centers.

RouteNet: Leveraging Graph Neural Networks for Network Modeling and Optimization in SDN

Learning and Generating Distributed Routing Protocols Using Graph-Based Deep Learning

**Chemistry and biology**: Predicting complex molecular properties, drug
side effects, protein-protein interactions, or generating personalized
medication recommendations and novel compounds with some desired
properties.

Graph Convolutional Policy Network for Goal-Directed Molecular Graph Generation

Modeling polypharmacy side effects with graph convolutional networks

**Physics**: Modeling interactions between particles in complex systems,
or reconstructing particle tracks in high-energy particle accelerators.

**Mathematics**: Solving complex graph-based problems like graph clustering, or combinatorial optimization (e.g., TSP).

Learning to Solve NP-Complete Problems: A Graph Neural Network for Decision TSP

Weisfeiler and Leman Go Neural: Higher-Order Graph Neural Networks

**Information science**: Creating recommender systems applied to
multiple products and fields