How to transform a igraph or networkx object into hypergraph?
wanglu2014 opened this issue · comments
How to transform a igraph or networkx object into hypergraph object used in DHG?
Hi, you can extract the edge list and the number of vertices from G of networkx. Then, you can construct a DHG's Graph with the default construction function https://deephypergraph.readthedocs.io/en/0.9.3/api/dhg.html#dhg.Graph .
We will add the transform function of structures from igraph and networkx libraries in the next version. ^^
Thank you for your timely reply. Could you kindly suggest how to set node attribute?
If you don't have the node attribute, you can try the following ways:
- initialize the vertex feature with the normal distribution and set it as trainable parameters. (Common in recommender system)
- initialize the vertex feature with the normal distribution.
- initialize the vertex feature with a one-hot encoded vector. (you can encode the degree of each vertex or directly use a identity matrix as the vertex feature)
- train a auto encoder: the input is the adjacency matrix A and the output is the same. initialize the vertex feature with the hidden embeddings.
Thanks. If I want to set a numeric vector (degree) as node attribute. How to assign the numbers to nodes?
You can try to transform the degree to a one-hot vector. Refer to this https://github.com/weihua916/powerful-gnns/blob/master/util.py#L118