tensorflow / gnn

TensorFlow GNN is a library to build Graph Neural Networks on the TensorFlow platform.
Apache License 2.0
1.36k stars 180 forks source link

Heterogeneous hypergraphs with GraphTensor #273

Closed alem88 closed 1 year ago

alem88 commented 1 year ago

Is it possible to construct heterogeneous hypergraph with GraphTensor? If yes, it would be great that you give some example in that direction.

arnoegw commented 1 year ago

Yes, GraphTensor can store edge sets with any fixed number of endpoints, not just the usual two (SOURCE and TARGET). Please see the API docs for tfgnn.HyperAdjacency.

However, many problems that look as if they require hyperedges can be modeled more flexibly with heterogeneous graphs and ordinary edges: make the "hyperedges" a node set and use ordinary edge sets to connect the "hypernodes". In particular, this allows a variable number of "hypernodes" per "hyperedge".

We have yet to see a model that would be formulated much better with true hyperedges than a node set representing them. (Do you have one in mind?) Therefore, at this stage, support for hypergraphs throughout the library is spotty (can't even parse them from tf.Example).

arnoegw commented 1 year ago

Let me try and drive this to a conclusion: Without a compelling example application, TF-GNN is unlikely to add more hypergraph support, so I'd like to mark this issue as closed. Please reopen if you have an example application that would benefit from using actual hyperedges instead of the mutliple node sets I mentioned.