【发布时间】:2017-08-29 01:00:30
【问题描述】:
我正在尝试构建一个有向图并计算此图上的个性化页面排名。因此,假设我有一个图,其顶点为 {1,2,3,4},边从 2、3 和 4 到顶点 1,我想:
(1) 计算每个顶点相对于 1 的个性化页面排名
(2) 计算每个顶点相对于 2 的个性化页面排名。
问题是我应该如何在个性化页面排名功能中传递此选项。以下代码似乎没有做我想要的:
import networkx as nx
G = nx.DiGraph()
[G.add_node(k) for k in [1,2,3,4]]
G.add_edge(2,1)
G.add_edge(3,1)
G.add_edge(4,1)
ppr1 = nx.pagerank(G,personalization={1:1, 2:1, 3:1, 4:1})
ppr2 = nx.pagerank(G,personalization={1:2, 2:2, 3:2, 4:2})
现在ppr1 == ppr2,尽管不应该是这样。
================================================ ==================== 更新。
针对下面的评论,我对个性化页面排名的理解来自以下几点:
一个等价的定义是随机游走开始的终端节点
来自 s.令 (X0, X1, ... , XL) 是从 X0 = s 长度开始的随机游走
L∼几何(α)。这里 L ∼ Geometric(α) 我们的意思是 Pr[L = ] = (1−α)
α。这
walk 从 s 开始并在每一步执行以下操作:以概率 α 终止;
并以剩余概率 1 - α,继续到
当前节点。这里如果当前节点是 u,随机邻居 v ∈ N out(u) 是
如果图是加权的或具有均匀概率,则以概率 wu,v 选择
如果图未加权,则为 1/dout(u)。那么任意节点t的PPR就是概率
这条步行停在 t:
在本论文第 6 页找到:https://cs.stanford.edu/people/plofgren/bidirectional_ppr_thesis.pdf
所以我想我在计算“t 相对于 s 的个性化页面排名”时要寻找的是,如果我们根据上述过程从 s 开始随机游走,那么这个游走终止于的概率是多少吨。
【问题讨论】:
-
您必须解释“关于...的个性化”是什么意思 在 PageRank 中,可以统一跳转到随机页面。 networkx 中的
personalization允许该跳转具有不同的登陆不同页面的概率。在您的第一种情况下,所有页面的权重为 1,因此跳转是均匀的。在第二种情况下,所有页面的权重都为 2,因此跳转也是均匀的。所以两者都给出了相同的结果(如果你根本不分配权重,结果也是一样的)。 -
@Joel 刚刚添加了更多相关信息。
标签: python graph networkx pagerank