chi*_*ro2 7 python pagerank graph networkx
我试图建立一个有向图,并计算该图上的个性化页面排名。因此,假设我有一个顶点{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})
Run Code Online (Sandbox Code Playgroud)
现在ppr1 == ppr2,即使事实并非如此。
================================================== ================更新。
作为对以下评论的回应,我对个性化页面排名的理解来自以下方面:
等效定义是从s开始的随机游走的终端节点。令(X0,X1,...,XL)是从长度为L0的X0 = s开始的随机游动。几何(?)。在这里由L?几何(?)是指Pr [L = ] = (1??)
?。步行从s开始,并在每个步骤中执行以下操作:以概率?,终止;剩下的概率为1?,继续到当前节点的随机邻居。如果当前节点为u,则随机邻居为v?。如果对图进行加权,则以概率wu,v选择N out(u);如果对图进行加权,则以均匀概率1 / dout(u)进行选择。那么任何节点t的PPR就是该行进在t处停止的概率:
在本论文的第6页上找到:https : //cs.stanford.edu/people/plofgren/bidirectional_ppr_thesis.pdf
因此,我假设在计算“相对于s的t的个性化页面等级”时我正在寻找的是,如果我们根据上述过程从s开始随机游走,那么该游走终止于t的概率是多少。
在 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})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3388 次 |
| 最近记录: |