iMoonLab / DeepHypergraph

A pytorch library for graph and hypergraph computation.

Home Page:https://deephypergraph.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

How to transform a igraph or networkx object into hypergraph?

wanglu2014 opened this issue · comments

commented

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. ^^

commented

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:

  1. initialize the vertex feature with the normal distribution and set it as trainable parameters. (Common in recommender system)
  2. initialize the vertex feature with the normal distribution.
  3. 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)
  4. 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.
commented

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