Suppose I have a heterogeneous graph with Canonical Edge Types as following:
(“Member”, “Parent”, “Member”) , (“Member”, “Spouse”, “Member”) , (“Member”, “Buy”, “Product”)
The frequency distribution of relationship and nodes are :
Parent : 1000
Spouse: 500
Buy : 300
Member : 200
Product 100
How can I use the function dgl.contrib.sampling.NeighborSampler to create a sub-graph which can represent the distribution of edges and nodes for this heterogeneous graph ? In other word, I am not sure how to define the argument of transition_prob in the the following function of NeighborSampler such that the sampler is representative of the original graph.
The sampling of heterogenous graph is essential for mini batch training when the graph is giant.
Thanks
sampler = dgl.contrib.sampling.NeighborSampler(
g,
batch_size,
5,
1,
transition_prob=?,
seed_nodes=torch.arange(g.number_of_nodes()),
prefetch=True,
add_self_loop=True,
shuffle=False,
num_workers=4
)