Published: November 5, 2021
7
120
664

I've recently been asked the following question: "Let's say I have two spare days and want to really understand GNNs. What should I do?" My answers led me to revisit my old 'hints for GNN resources' in light of the new material I've (co)produced. See the thread for a summary!

I'd say it is good to start with something a bit more theoretical, before diving into code. Specifically, I've been recommending my @Cambridge_CL talk on Theoretical GNN Foundations: https://www.youtube.com/watch?... Why do I recommend this talk, specifically?

It is good to (a) have a rule-of-thumb to categorise the architectures you encounter, as GNNs evolve at an outrageous pace; (b) have a feel for the connections across different fields that propose GNNs, as each field (e.g. signal processing, NLP...) tends to use its own notation.

Armed with solid foundations, we can explore further. Within my talk, I list pointers to many other useful resources, but one I’d particularly recommend, especially for gaining a good intuitive coding angle, is @gordic_aleksa's pytorch-GAT repository: https://github.com/gordicaleks...

Aleksa wrote some amazing notebooks within this repo, that visually take you through the GNN's operations step-by-step. The visualisations are great enough to teach the principles that I'd recommend this to all even though it’s just one model (GAT) in one framework (PyTorch).

Conveniently, Aleksa also provides three different common implementation strategies for GNNs, so you can also weigh the pros and cons of each. Once you have an understanding of the primitive operations, migrating to libraries like PyTorch Geometric or DGL will feel more natural.

Lastly, if all this takes you less than 2 days and you want to broaden the perspective a bit further: @mmbronstein, @joanbruna, @TacoCohen and I taught a full 12h lecture course about our Geometric DL proto-book, which covers GNNs as a special case: https://geometricdeeplearning....

Following on these materials, you can then either consult: (a) parts of the proto-book, (b) the lectures; especially on graphs & sets + applications, (c) Colab-based tutorials on GNNs with recordings. Happy learning! :)

@PetarV_93 For a fascinating introduction to GNNs @MLStreetTalk released a great show a few weeks ago: https://youtu.be/bIZB1hIJ4u8

@PetarV_93 If you have an extra day to spare you can also checkout the PyG2.0 and the Stanford Graph Learning Workshop stream here : https://www.youtube.com/watch?...

Share this thread

Read on Twitter

View original thread

Navigate thread

1/10