Python Understanding Graph Neural Networks (GNNs) Tutorials & Examples

AI Thread 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,270
Reaction score
4,888
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...
 
Thread 'Is this public key encryption?'
I've tried to intuit public key encryption but never quite managed. But this seems to wrap it up in a bow. This seems to be a very elegant way of transmitting a message publicly that only the sender and receiver can decipher. Is this how PKE works? No, it cant be. In the above case, the requester knows the target's "secret" key - because they have his ID, and therefore knows his birthdate.
Thread 'Project Documentation'
Trying to package up a small bank account manager project that I have been tempering on for a while. One that is certainly worth something to me. Although I have created methods to whip up quick documents with all fields and properties. I would like something better to reference in order to express the mechanical functions. It is unclear to me about any standardized format for code documentation that exists. I have tried object orientated diagrams with shapes to try and express the...
Back
Top