What is Combinatorial Optimization?
Combinatorial optimization is the process of searching for maxima (or minima) of an objective function F whose domain is a discrete but large configuration space (as opposed to an N-dimensional continuous space). Some simple examples of typical combinatorial optimization problems are:
The Traveling Salesman Problem: given (x, y) positions of N different cities, find the shortest possible path that visits each city exactly once.
Bin-Packing: given a set of N objects each with a specified size si, fit them into as few bins (each of size B) as possible.
What are Graph Neural Networks?
Graph Neural Networks (GNNs) are a class of deep learning methods designed to perform inference on data described by graphs. They can be directly applied to graphs, and provide an easy way to do node-level, edge-level, and graph-level prediction tasks.
Why GNNs?
Traditional models often assume regular data structures, while GNNs can handle irregular and dynamic graph structures with varying numbers of nodes and edges. This makes GNNs suitable for tasks like social network analysis, recommendation systems, and biology, where data often exhibits such irregularities.
Graph Convolutional Networks
GCNs operate based on the principle of information aggregation and diffusion. They learn to associate each node with a feature vector, which encodes information about the node itself and its neighboring nodes. This feature vector is iteratively updated through multiple layers, where each layer aggregates information from neighboring nodes and combines it with the node's current features. The convolutional operation in GCNs achieves this by computing weighted averages of neighboring node features, and these weights are learned during the training process.
Graph Attention Networks
Graph Attention Networks (GATs) are a category of Graph Neural Networks (GNNs) which incorporates the concept of attention mechanisms, allowing nodes in a graph to dynamically weigh the importance of their neighbors' features during information aggregation. This innovative approach enables GATs to capture complex relationships and dependencies within graphs.
The key advantages of GATs include their ability to adaptively focus on relevant neighbors, making them highly expressive and suitable for capturing intricate relationships in graphs.