我正在尝试构建有向图并在此图上计算个性化页面排名。假设我有一个顶点为{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
,即使情况并非如此。
=============================================== =================== UPDATE。
在回复下面的评论时,我对个性化网页排名的理解来自以下内容:
等效定义是根据随机游走开始的终端节点
来自s。令(X0,X1,...,XL)是从X0 = s长度开始的随机游走
L~几何(α)。这里用L~Geometric(α)表示Pr [L = ] = (1−α)
α。这个
步行从s开始,并在每一步执行以下操作:概率α,终止;
并且以剩余的概率1 - α,继续随机的邻居
当前节点。这里,如果当前节点是u,则随机邻居v∈Nout(u)是
如果图是加权的或具有均匀概率,则以概率wu选择v
1 / dout(u)如果图表未加权。那么任何节点t的PPR就是概率
这个步行停在t:
在本论文的第6页上找到:https://cs.stanford.edu/people/plofgren/bidirectional_ppr_thesis.pdf
所以我想在计算“关于s的个性化页面排名”时我正在寻找的是如果我们根据上述过程从s开始随机游走,这个步行终止于什么的概率是多少?吨。
答案 0 :(得分:4)
在PageRank的概念化中,随机冲浪者正在跟随链接。在每个步骤中,冲浪者进入随机页面的非零概率(与跟随链接相反)。如果对该随机页面的选择进行加权,则将其称为个性化PageRank。
在您的情况下,您希望跳转到单个特定页面。所以你需要告诉它,当冲浪者跳过而不是跟随边缘时,所有其他页面在这些步骤中被选中的概率为零。
ppr1 = nx.pagerank(G,personalization={1:1, 2:0, 3:0, 4:0})
ppr2 = nx.pagerank(G,personalization={1:0, 2:1, 3:0, 4:0})