我正在尝试构建一个有向图并在此图上计算个性化页面排名。因此,假设我有一个顶点{1,2,3,4}
图和边缘会从 2,3,4到顶点1,我想:使用python的networkX来计算个性化页面排名
(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〜几何(α)表示Pr [L = ] = (1−α)
α。这个 行走从s开始,并在每一步执行以下操作:以概率α终止; 并且剩余概率1-α继续到当前节点的随机出站邻居。这里,如果当前节点是u,那么随机邻居v∈Nout(u)是以概率wu选择的 ,如果该图是加权的,或者如果图是未加权的,则具有统一的概率012/1/dout(u)。那么任何结点t的PPR是,这一走,停在t时的概率 :
发现本文第6页:https://cs.stanford.edu/people/plofgren/bidirectional_ppr_thesis.pdf
,所以我想我所期待的计算时的“个性化网页排名对于s而言,t是“如果我们根据上述过程从s开始随机游走,那么此步行在t终止的概率是多少。
你必须解释你的意思是“个性化的......”在PageRank中,可以统一跳转到随机页面。 networkx中的“个性化”允许跳跃在不同页面上具有不同的着陆概率。在第一种情况下,所有页面的重量都是1,因此跳跃是统一的。在第二种情况下,所有页面的重量都是2,所以跳跃是统一的。所以两者都给出相同的结果(如果你根本没有分配权重,结果也是一样的)。 – Joel
@Joel只是在问题中增加了更多信息。 – chibro2