初識PageRank算法

1、簡單PageRank計算

首先,咱們將Web作以下抽象:一、將每一個網頁抽象成一個節點;二、若是一個頁面A有連接直接鏈向B,則存在一條從A到B的有向邊(多個相同連接不重複計算邊)。所以,整個Web被抽象爲一張有向圖。算法

如今假設世界上只有四張網頁:A、B、C、D,其抽象結構以下圖,顯然這個圖是強連通的(從任一節點出發均可以到達另外任何一個節點)。數據結構

image

而後須要用一種合適的數據結構表示頁面間的鏈接關係。PageRank算法是基於這樣一種背景思想:被隨機衝浪者訪問越多的網頁質量更可能高,而隨機衝浪者在瀏覽網頁時主要經過超連接進行頁面跳轉,所以咱們須要經過分析超連接組成的圖結構來推算每一個網頁被訪問頻率的高低。更直觀的講,一個網頁的PangRank值越高,隨機衝浪者瀏覽網頁過程當中,停留在該頁面的機率越大,該網頁越重要。分佈式

簡單起見,咱們能夠假設當一個隨機衝浪者停留在某頁面時,跳轉到頁面上每一個被鏈頁面的機率是相同的。例如,上圖中A頁面鏈向B、C、D,因此一個用戶從A跳轉到B、C、D的機率各爲1/3。設一共有N個網頁,則能夠組織這樣一個N維矩陣:其中i行j列的值表示用戶從頁面j轉到頁面i的機率。這樣一個矩陣叫作轉移矩陣(Transition Matrix)。上圖的四個網頁對應的轉移矩陣M以下:ide

image

而後,假定隨機衝浪者出於n個頁面的初始機率相等,那麼初始的機率分佈向量就是一個每維均爲1/n的n維列向量V0。這裏咱們有4個網頁,故V0-1=[1/4 , 1/4 , 1/4 , 1/4 ]。大數據

這樣,咱們就能夠從初始向量V0開始,不斷的左乘轉移矩陣M,用戶在瀏覽網頁時主要經過超連接進行i次跳轉後,停留在每一個頁面的機率爲:Mi*V。直到最後兩輪迭代產生的結果向量差別很小時中止。實際中,對於Web而言,在錯誤控制在雙精度的狀況下,迭代50至75次已經足夠收斂。.net

下面是前四次跳轉過程當中,每次迭代後每一個頁面的PageRank值:get

image

能夠看見,隨着迭代次數的增長,網頁A的PageRank值愈來愈大,趨近與它的極限機率3/9。這也說明了隨機衝浪者停留在網頁A上的機率相對於網頁B、C、D來說較大,該網頁也較爲重要。it

 

2、問題1:終止點(Dead Ends)

終止點即爲沒有任何出鏈的點,以下圖中的C。數據挖掘

image

若是咱們不加處理,容許終止點存在的話,那麼隨着PageRank迭代次數的增長,各個網頁的PageRank值會趨向於0,從而沒法獲得任何有關網頁相對重要性的信息。io

image

處理終止點的方法是將終止點及其入鏈從圖中剔除。這樣作以後可能會產生更所的終止點,繼續迭代剔除終止點。可是最終咱們會獲得一個強連通子圖,其中全部節點都非終止點。下面咱們以左圖爲例,進行說明。左圖按上述步驟剔除終止點以後,得到右圖。

pagerank6

咱們獲得右圖對應的轉移矩陣,並計算圖中A、B、C的PageRank值。

pagerank7

咱們獲得A、B、C的PageRank值分別爲2/九、4/9,3/9,接下來按照剛纔刪除相反的順序來計算C和E的PageRank值。因爲C最後一個被刪除,於是首先計算C的PageRank值。A有三條出鏈,所以它對C貢獻了其1/3的PageRank值。D有三條出鏈,所以它對C貢獻了其1/2的PageRank值。因而C的PageRank值爲image 。而E的入鏈就只有C,C的出鏈只有E,因此E的PageRank值與C相等。

須要注意的是,當前全部節點的PageRank值和已經超過1,所以不能表明隨機衝浪者的機率分佈,但他們仍然可以反映網頁相對重要程度的合理估計值。

 

3、問題2:採集器陷阱(Spider Traps)

採集器陷阱是一系列節點集合,他們雖然沒有一個是終止點,可是卻沒有出鏈指向該集合以外的其餘節點。採集器陷阱致使在計算時將全部的PageRank值都分配給採集器陷阱之內的節點。

以下圖所示,C爲單節點構成的採集器陷阱及其轉移矩陣。

pagerank8

隨着迭代的進行,C的PageRank值不斷趨向於1,其餘非採集器陷阱內節點的PageRank值趨向於0。

image

處理採集器陷阱的作法是容許每一個隨機衝浪者以一個較小的跳轉機率隨機跳轉到一個隨機網頁,而不必定要沿着當前網頁上的出鏈前進。因而,根據前面的PageRank估計值V和轉移矩陣M估計下一次迭代後的PageRank值V’的迭代公式變爲:

image

其中,β是一個選定的常數,一般取值在0.8跟0.9之間。而e是一個份量都爲1維數爲n的向量,n是Web圖中全部節點的個數。βMv表示隨機衝浪者以機率β從當前網頁選擇一個出鏈前進的狀況。(1−β)e/n是一個全部份量都是(1−β)/n的向量,它表明一個新的隨機衝浪者已(1−β)的機率隨機選擇一個網頁進行訪問。

取β=0.8,上圖的迭代公式變爲:

image

下面是前幾輪迭代的結果:

image

做爲一個採集器陷阱,C得到了超過一半以上的PageRank值,可是這種效果受到了限制,其餘每一個節點也得到了一些PageRank值。

 

-------------------------------------------------

參考資料:

@王斌_ICTIR老師的《大數據:互聯網大規模數據挖掘與分佈式處理》及其對應的英文電子書《Mining of Massive Datasets》

相關文章
相關標籤/搜索