如果用dgl学习异构图神经网络,就会遇到这个函数。这个函数的作用就是返回异构图中指定元路径(meta path)的metagraph。
看官方API的解释:
Return a graph where the successors of any node u are nodes reachable from u by the given metapath.
意思是:返回一个图,其中任何节点u的后续节点都是可以通过给定元路径从u访问的节点。
这里指定的元路径为[‘AB’, ‘BA’],经过dgl.metapath_reachable_graph函数返回的结果的含义就是:A集合中的节点经过元路径访问到的A集合节点,所构成的图(这个图是个方阵)。也可以理解为:A->B->A。
g = dgl.heterograph({
('A', 'AB', 'B'): ([0, 1, 2], [1, 2, 3]),
('B', 'BA', 'A'): ([1, 2, 3], [0, 1, 2])})
new_g = dgl.metapath_reachable_graph(g, ['AB', 'BA'])
new_g.edges(order='eid')
(tensor([0, 1, 2]), tensor([0, 1, 2]))