1

Pagerank 算法(我知道)假设边缘没有权重。所以标准公式是:

PR(A) = (1 - d)/N + d*\sigma PR(E)/L(E)

其中 L(E) 是页面 E 的传出链接数,其中 E 是指向页面 A 的每个页面。

正如您在此处看到的,公式中不考虑进入 A 的边的权重。

两个问题:

a)如果我们考虑进入A的每条边的权重,那么调整后的公式是什么,假设权重越高越好(python中的networkx包确实考虑了加权边,但是代码比上面的公式更复杂,我宁愿检查是否有更简单的解决方案)

b)我实际上想要一个类似 BSP Pregel 的框架。有一个BSP Pregel 风格的实现,但如您所见,它不考虑边缘的权重。如果你能推荐一个,那就太好了

4

2 回答 2

0

这里有一个 WeightedPageRank 的 Java 实现。我没有尝试过,但在快速阅读来源后,它似乎符合您的要求。

于 2013-02-18T10:27:29.230 回答
0

我建议您首先将所有边缘权重加到邻居中,然后将节点排名的百分比发送给邻居。

示例:一个节点的等级为 10。他有 2 个邻居,它们的边的权重分别为 70 和 30。总而言之,这将是 100。对于边权重为 70 的第一个节点,您发出的等级为 7,并且到另一个 3。

于 2013-02-17T14:28:23.460 回答