dgl.double_radius_node_labeling
- dgl.double_radius_node_labeling(g, src, dst)[source]
双半径节点标记,如基于图神经网络的链接预测中所述。
此函数计算每个节点的双半径节点标签,以标记节点在给定目标链接的封闭子图中的不同角色。
源节点\(s\)和目标节点\(t\)的标签设置为1,而从源节点或目标节点不可达的节点的标签设置为0。其他节点\(l\)的标签根据以下哈希函数定义:
\(l = 1 + min(d_s, d_t) + (d//2)[(d//2) + (d%2) - 1]\)
其中 \(d_s\) 和 \(d_t\) 分别表示到源和到目标的最短距离。\(d = d_s + d_t\)。
- Parameters:
- Returns:
所有节点的标签。张量的形状为 \((N,)\),其中 \(N\) 是输入图中节点的数量。
- Return type:
张量
示例
>>> import dgl
>>> g = dgl.graph(([0,0,0,0,1,1,2,4], [1,2,3,6,3,4,4,5])) >>> dgl.double_radius_node_labeling(g, 0, 1) tensor([1, 1, 3, 2, 3, 7, 0])