圖數據庫PageRank算法


目錄:

定義:

假設對象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 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM