我正在嘗試構建一個有向圖並在此圖上計算個性化頁面排名。因此,假設我有一個頂點{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