PPR
- class dgl.transforms.PPR(alpha=0.15, eweight_name='w', eps=None, avg_degree=5)[source]
基类:
BaseTransform
将个性化 PageRank (PPR) 应用于输入图以进行扩散,如 The pagerank citation ranking: Bringing order to the web 中所述。
扩散后,将对加权邻接矩阵进行稀疏化。具体来说,权重低于阈值的边将被丢弃。
此模块仅适用于同构图。
- 参数:
alpha (float, optional) – 重启概率,通常介于 \([0.05, 0.2]\) 之间。
eweight_name (str, optional) – 用于获取和存储边权重的
edata
名称。如果输入图中不存在此名称,则此模块会为所有边初始化权重为 1。边权重应为一个形状为 \((E)\) 的张量,其中 E 是边的数量。eps (float, optional) – 扩散后稀疏化中保留边的阈值。权重小于 eps 的边将被丢弃。
avg_degree (int, optional) – 结果图的期望平均节点度。这是控制结果图稀疏性的另一种方法,仅在未给定
eps
时有效。
示例
>>> import dgl >>> import torch >>> from dgl import PPR
>>> transform = PPR(avg_degree=2) >>> g = dgl.graph(([0, 1, 2, 3, 4], [2, 3, 4, 5, 3])) >>> g.edata['w'] = torch.tensor([0.1, 0.2, 0.3, 0.4, 0.5]) >>> new_g = transform(g) >>> print(new_g.edata['w']) tensor([0.1500, 0.1500, 0.1500, 0.0255, 0.0163, 0.1500, 0.0638, 0.0383, 0.1500, 0.0510, 0.0217, 0.1500])