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:
  • g (DGLGraph) – The input graph.

  • src (int) – 目标链接的源节点ID。

  • dst (int) – 目标链接的目标节点ID。

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])