目錄:
定義:
假設對象A具有指向它的對象T1 ... Tn。參數d是阻尼系數,取值范圍在0和1之間,通常將d設置為0.85。C(A)被定義為從對象A出去的連接數。
對象A的PageRank計算公式如下:
PR(A)=(1−d)+d(PR(T1)/C(T1)+...+PR(Tn)/C(Tn))
當一個節點只有輸出,沒有輸入的時候,因為d一般設置為0.85,所以:
PR(A)=(1-d)+ d *(0)= 0.15
計算原理:
每個對象的PR取決於指向它的對象的PR。在指向一個對象的所有對象都計算出了PR,才能夠計算出該頁面的PR值。
當所有對象形成閉環時,PR(A)可以使用簡單的迭代算法計算,並且對應於web的規范化鏈接矩陣的主特征向量。
基本上,每次計算都會對各對象的最終值進行更接近的估計。通過對這些對象進行大量重復的計算,直到結果變化很小為止。
示例1:
每個頁面都有一個輸出鏈接(輸出計數為1,即C(A)= 1,C(B)= 1)
假設A的PR(A)初始值為1
d = 0.85 //默認值
PR(A)=(1 - d)+ d(PR(B)/ 1) PR(B)=(1 - d)+ d(PR(A)/ 1) //即
PR(A)= 0.15 + 0.85 * 1 = 1 PR(B)= 0.15 + 0.85 * 1 = 1
假設A的PR(A)初始值為0
PR(A)= 0.15 + 0.85 * 0 = 0.15 PR(B)= 0.15 + 0.85 * 0.15 = 0.2775
//完成一次迭代,繼續第二次迭代
PR(A)= 0.15 + 0.85 * 0.2775 = 0.385875 PR(B)= 0.15 + 0.85 * 0.385875 = 0.47799375
//第三次迭代
PR(A)= 0.15 + 0.85 * 0.47799375 = 0.5562946875 PR(B)= 0.15 + 0.85 * 0.5562946875 = 0.622850484375
//結果數值不斷上升,但當達到1.0時,停止增加。
假設A的PR(A)初始值為40,B的PR(B)初始值為40
//初始值
PR(A)= 40 PR(B)= 40
//第一次迭代
PR(A)= 0.15 + 0.85 * 40 = 34.25 PR(B)= 0.15 + 0.85 * 0.385875 = 29.1775
//第二次迭代
PR(A)= 0.15 + 0.85 * 29.1775 = 24.950875 PR(B)= 0.15 + 0.85 * 24.950875 = 21.35824375
//結果數值不斷下降,但當達到1.0時,停止下降。
性質:
當沒有節點只進不出時,PageRank計算結果符合“ 歸一化概率分布 ”,所有節點的PageRank平均值為1.0。
示例2:
該實例不滿足只進不出條件,第三列的節點只有輸入,沒有輸出,所以PR的平均值不等於1.0
參考資料:
http://www.cs.princeton.edu/~chazelle/courses/BIB/pagerank.htm