Live data from Hacker News

Why I'm Lukewarm on Graph Neural Networks

singlelunch.com

11–20 of 50 posts

Re: Why I'm Lukewarm on Graph Neural Networks

#11
I suspect we will not see a revolution in deep learning from GNN without a corresponding hardware(FPGA?) or optimization method(HSIC? HTMs?) advance.

GNNs trained by backprop are making many of the same mistakes that LSTMs did: solve one important problem(exploding/vanishing gradients), but introduce a bunch of hyperparameters that bring along their own set of problems. GRUs are successful in my opinion, because they remove some of those tunable parameters.

Of course as the post suggested, not being able to tune something, often loses out against some more tuned and curated solution. GNNs being the newest version, having tons of parameters to tweek. In the end do we get a better, ultimately more generalizable solution? Or do we just get more hyperparameters to tune, and spend more time and money for a modest, unrepeatable gain.

Re: Why I'm Lukewarm on Graph Neural Networks

#13
I don't know much about graph neural networks although it is a topic that I want to study in the next few months.

But what bothered me in your article is what you wrote about graph data structures.

NetworkX is indeed very slow, this is due to two facts: - NetworkX is a pure Python implementation and does not relay on some methods written in a faster language like C. - They use dictionaries to represent the graphs, which may have some advantages when mutating graphs, but of course have much worse locality than an adjacency list or a some sparse matrix format.

But even for python there are much faster libraries such as igraph. The data structure in igraph is an edge list.

A lot of single core graph libraries use an adjacency list internally, and while it is true that the index list for each vertex can be somewhere arbitrary in memory, they usually do not behave like a linked list, unless you graph is really sparse. One of the most used operations in graph algorithms is to iterate over the neighbors of a vertex, and for this, adjacency lists are very good.

They also have a small advantage over CSR matrices for adding or removing edges, and they might use slightly less memory, as their index type only needs to be able to index all vertices and not all edges, so they need half of the space, which is better for caches.

Re: Why I'm Lukewarm on Graph Neural Networks

#15
post #5

By no means I am an expert in deep learning, but lately I've been considering graph NNs snake oil of neural networks. There are no impressive results on any common tasks and that picture is supported by a recent paper claiming transformers to "contain a graph network inside".

Google maps improved their worse-case residuals of traffic estimation using GNNs (messaging passing Nets, not graph embeddings).

Re: Why I'm Lukewarm on Graph Neural Networks

#16

I don't know much about graph neural networks although it is a topic that I want to study in the next few months. But what bothered me in your article is what you wrote about graph data structures. NetworkX is indeed very slow, this is due to two facts: - NetworkX is a pure Python implementation and does not relay on some methods written in a faster language like C. - They use dictionaries to represent the graphs, wh…

There's graph-tool but it is annoying to compile sometimes: https://graph-tool.skewed.de/

Re: Why I'm Lukewarm on Graph Neural Networks

#17

I don't know much about graph neural networks although it is a topic that I want to study in the next few months. But what bothered me in your article is what you wrote about graph data structures. NetworkX is indeed very slow, this is due to two facts: - NetworkX is a pure Python implementation and does not relay on some methods written in a faster language like C. - They use dictionaries to represent the graphs, wh…

Indeed, the best support for large graphs in Python is found inside scipy.sparse

Re: Why I'm Lukewarm on Graph Neural Networks

#18
post #7
post #5

By no means I am an expert in deep learning, but lately I've been considering graph NNs snake oil of neural networks. There are no impressive results on any common tasks and that picture is supported by a recent paper claiming transformers to "contain a graph network inside".

Graph NNs are widely used in the chemical domain -- molecules are easily modeled as graphs, so it's a natural fit.

And for large molecules (e.g., proteins) graph methods really start to shine.

Re: Why I'm Lukewarm on Graph Neural Networks

#19
NetworkX isn't a bad library, nor is it only suitable for "babies". Yeesh. Actual people work on this stuff, you know, and they may have different goals, requirements, etc than you. This whole post reeks of someone who's so in love with being a maverick speaking uncomfortable truths that they've lost sight of this human element.

If you're offended by (say) research papers that fail to break enough new ground to satisfy you, sorry about your luck, but again, not everyone's optimizing the same function as you. You'll probably do better bringing people around when you're not implying (or outright saying) their work is shit.

Re: Why I'm Lukewarm on Graph Neural Networks

#20

NetworkX isn't a bad library, nor is it only suitable for "babies". Yeesh. Actual people work on this stuff, you know, and they may have different goals, requirements, etc than you. This whole post reeks of someone who's so in love with being a maverick speaking uncomfortable truths that they've lost sight of this human element. If you're offended by (say) research papers that fail to break enough new ground to satis…

I never said NX is bad, but it is for "baby" graphs. NX can't scale past a few hundred thousand nodes.

I appreciate NX's place in the ecosystem, but its implementation leaves a large gap to be filled for an intermediate library that is a Pandas analogue for graphs.

Post reply on HN