
Define graphs as nodes with features connected by edges that encode relationships; distinguish directed from undirected graphs with twitter and facebook examples, and note adjacency and weights matrices.
Learn how to store graph data for a homogeneous graph with four nodes using an edge list and an adjacency matrix, including directed versus undirected edges and weighted connections.
Explore how the degree matrix and laplacian derive from the adjacency matrix to analyze node influence and graph structure, with applications in mesh completion and brain networks.
Embed each graph node into an embedding space to preserve node similarity. Use encoders and decoders to minimize a loss function that aligns original and embedding similarities for link prediction.
Explore the drawbacks of existing graph learning models, including lack of parameter sharing, missing semantic information, and non-inductive encoders, and learn how convolution motivates graph neural networks.
Learn to define graphs for graph neural networks using PyTorch Geometric and PyTorch, building a graph with node features, edge indices, and weights, then plot with NetworkX.
Explore how graph convolution extends signal processing concepts to graph data, using adjacency matrices and weighted shifts to apply convolution on non-Euclidean structures.
Explore how graph convolution uses a learnable weight matrix and shifting operator to expand from local to global graph representations across multiple layers, with k shifts and graph frequency insights.
Learn how graph neural networks encode a graph into an embedding space via its encoder, built from aggregation and update steps, preserving similarities between original and embedded representations.
Apply random-walk based node embedding with the karateclub library on a graph to perform node classification. Generate embeddings with the Depok deep-walk model and evaluate with a logistic regression classifier.
We introduce Node2Vec, a biased random walk variation of deep walk for graph embedding, using DFS and BFS to balance local and global representations.
Apply node2vec to the karate club graph, compare its embeddings to deepwalk, and demonstrate biased random walks with p and q to assess classification performance.
Learn to compute node embeddings with node2vec in PyTorch Geometric by importing the Cora planetoid data, building a node2vec model, training with batches, and evaluating embeddings and node classification.
train a node2vec model with pytorch geometric, learn lower dimensional embeddings through epochs, plot the embedding in 2d, and assess accuracy using logistic regression.
Introduce simple graph convolution as the first GNN method, address the downsides of deep walks, and explain graph convolution from a signal processing perspective with the message passing framework.
Explore simplifying graph convolution networks (SGC) for node classification, configure device and optimizer, train with masks, and compare the fast SGC accuracy to traditional methods.
Explore graph convolution networks (gcns) using a linear projection, normalized adjacency with self-loops, and nonlinear activation to produce node embeddings across layers for semi-supervised classification.
We review the graph neural network embedding methods, compare graph convolution network and graph attention network, and explain how message passing, aggregation, updates, and learnable parameters produce node embeddings.
GraphSAGE presents inductive representation learning by aggregating neighborhood features to update node representations, enabling generalization to unseen nodes and scalable learning on large graphs.
In recent years, Graph Neural Network (GNN) has gained increasing popularity in various domains due to its great expressive power and outstanding performance. Graph structures allow us to capture data with complex structures and relationships, and GNN provides us the opportunity to study and model this complex data representation for tasks such as classification, clustering, link prediction, and robust representation.
While the first motivation of GNN's roots traces back to 1997, it was only a few years ago (around 2017), that deep learning on graphs started to attract a lot of attention.
Since the concept is relatively new, most of the knowledge is learned through conference and journal papers, and when I started learning about GNN, I had difficulty knowing where to start and what to read, as there was no course available to structure the content. Therefore, I took it upon myself to construct this course with the objective of structuring the learning materials and providing a rapid full introductory course for GNN.
This course will provide complete introductory materials for learning Graph Neural Network. By finishing this course you get a good understanding of the topic both in theory and practice.
This means you will see both math and code.
If you want to start learning about Graph Neural Network, This is for you.
If you want to be able to implement Graph Neural Network models in PyTorch Geometric, This is for you.