Repository: stellargraph/stellargraph

Issue #1124: Deep Graph Infomax demo could potentially be in demos/embeddings rather than node-classification
Created: 2020-03-20T00:14:33Z
Describe the bug
The Deep Graph Infomax algorithm is an unsupervised method, i.e. it is typically used to compute embeddings which can be used for downstream tasks. It has a demo at https://github.com/stellargraph/stellargraph/blob/3348ad45845bef09c13a39d3432f35a2b0a1a450/demos/node-classification/deep-graph-infomax/gcn-deep-graph-infomax-cora-example.ipynb
For other algorithms/demos like this, we typically put them in demos/embeddings (with the downstream task at the end still), rather than in node-classification, since they can be used for much more than that.
For example, https://github.com/stellargraph/stellargraph/blob/3348ad45845bef09c13a39d3432f35a2b0a1a450/demos/embeddings/embeddings-unsupervised-graphsage-cora.ipynb
To Reproduce
Steps to reproduce the behavior:

See if https://github.com/stellargraph/stellargraph/tree/develop/demos/node-classification includes Deep Graph Infomax
See if https://github.com/stellargraph/stellargraph/tree/develop/demos/embeddings includes it

Observed behavior
1 has DGI, 2 doesn't.
Expected behavior
1 shouldn't have DGI, 2 should.
Environment
Operating system: N/A
Python version: N/A
Package versions: StellarGraph 3348ad4
Additional context
N/A

Duplicate issue #1087: Provide clearer guidance on how to find an appropriate demo
Created: 2020-03-17T03:35:57Z
Description
Currently, someone looking at our demos lands at https://github.com/stellargraph/stellargraph/tree/develop/demos (or https://github.com/stellargraph/stellargraph/tree/master/demos) and then has to orient themselves and find an appropriate place to visit for their problem. We can try to provide more task-oriented guidance, in addition than just listing the algorithms and high-level task descriptions (which works well for someone familiar with graph ML):

someone new to the library and just wants to understand how it works (relates to #992)
someone with a specific dataset and problem who may not know all the graph-jargon or the algorithm jargon

For 1, we can provide links to specific notebooks.
For 2, we might provide more generic descriptions of the problems so people can orient themselves. The same applies within each subfolder, e.g. if someone wants to do inductive NAI on a homogeneous graph with node features, how do they work that out from https://github.com/stellargraph/stellargraph/tree/develop/demos/node-classification especially if they're only passingly familiar with what a "homogeneous" graph is in this context.
This relates to #992 and #910.

Closing comment (2020-04-08T06:02:37Z): This is now mostly done with #1200, but there's a few left-over pieces of work in the notes there:

this only rewrites the basics, node-classification, link-prediction, graph-classification, embeddings, interpretability sub-readmes, the others are left for now to avoid this PR spiralling completely out of control (it would be good to land this before tomorrow morning) and will be done in follow up work
we should probably add a glossary somewhere, so we don't have to explain/remind what terms like heterogeneous, inductive, ... means
node-classification/node2vec is a bit weird: it's "really" a unsupervised algorithm and node classification is an downstream task on top of the embeddings computed with it, we could potentially fold it into embeddings (similar to #1124)
community_detection could be folded into embeddings too, because it's also a downstream task on top of unsupervised GraphSAGE (maybe we could have a more explicit "downstream tasks" demo in embeddings, and then all of the others can just refer to that?)

These need to at least be converted into follow up issues before we can call this done.