Double Radius Node Labeling, as introduced in Link Prediction Based on Graph Neural Networks.

This function computes the double radius node labeling for each node to mark nodesβ different roles in an enclosing subgraph, given a target link.

The node labels of source $$s$$ and destination $$t$$ are set to 1 and those of unreachable nodes from source or destination are set to 0. The labels of other nodes $$l$$ are defined according to the following hash function:

$$l = 1 + min(d_s, d_t) + (d//2)[(d//2) + (d%2) - 1]$$

where $$d_s$$ and $$d_t$$ denote the shortest distance to the source and the target, respectively. $$d = d_s + d_t$$.

Parameters:
• g (DGLGraph) β The input graph.

• src (int) β The source node ID of the target link.

• dst (int) β The destination node ID of the target link.

Returns:

Labels of all nodes. The tensor is of shape $$(N,)$$, where $$N$$ is the number of nodes in the input graph.

Return type:

Tensor

Example

>>> import dgl

>>> g = dgl.graph(([0,0,0,0,1,1,2,4], [1,2,3,6,3,4,4,5]))