Python Understanding Graph Neural Networks (GNNs) Tutorials & Examples

Click For Summary
The discussion focuses on the challenges of understanding Graph Neural Networks (GNNs) and their applications, particularly in relation to tutorials from "A Blitz Introduction to DGL." The user is struggling with how to structure their dataset into nodes and edges and is uncertain about when to apply node classification, link prediction, or graph classification. They note that data can be manipulated for different problem types but lack clarity on the best approach. Resources such as articles, videos, and papers have been found helpful, but further guidance is needed to advance their understanding of GNNs. Overall, the user is exploring various formulations of their problem to effectively utilize their dataset.
Borg
Science Advisor
Gold Member
Messages
2,291
Reaction score
5,001
I've been reading various articles on Graph Neural Networks (GNNs) for the last month or so. In particular, I have been focusing on the tutorials in A Blitz Introduction to DGL. I made it through all of the tutorials OK but I'm having trouble understanding certain aspects of GNNs. I'm also trying to look at some of the examples in the GitHub repository here - https://github.com/dmlc/dgl/tree/master/examples but there a lot of examples to go through.

I have a dataset with lots of potential fields that I could use but I am not sure what path to start down. From what I understand, GNN nodes and edges can be defined by multi-dimensional arrays. I could break my data up like that but I've no idea what would make the most sense to put in the nodes vs. the edges.

I need a better understanding of when I should use node classification, link prediction or graph classification. From what I understand of it, it seems that you could just rearrange the data for a node classification problem and turn it into a link prediction problem. Also, the first tutorial uses a single graph for the Cora dataset with thousands of nodes. Later in the Graph Classification tutorial it has multiple graphs with just a few nodes in each. Then, when I get to the Make Your Own Dataset section, the data that they create doesn't make much sense to me. It seems that I can just manipulate my data into whatever type of problem that I want and just solve it accordingly but I'm not sure .

It may be that I just haven't found a good tutorial to understand GNNs well enough. I could really use some help in going beyond the basic examples.

 
Technology news on Phys.org
Thanks @jedishrfu Those were helpful in advancing my understanding. It seems that there are lots of ways to formulate a particular problem and I'm going to have to just try different variations with my data. While reading through those, I did run across an interesting set of Graph_Convolutional_LSTM comparisons that should help me to come up with variations of that type of implementation. The Graph LSTM seems closest to what I'm trying to achieve. Now I just need to figure out which of the 100+ columns to use and how to structure them...
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 18 ·
Replies
18
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 22 ·
Replies
22
Views
4K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 13 ·
Replies
13
Views
2K
  • · Replies 6 ·
Replies
6
Views
1K