1. PageRank演算法概述
PageRank,即網頁排名,又稱網頁級別、Google左側排名或佩奇排名。
在谷歌主導網際網路搜尋之前, 多數搜尋引擎採用的排序方法, 是以被搜尋詞語在網頁中的出現次數來決定排序——出現次數越多的網頁排在越前面。 這個判據不能說毫無道理, 因為使用者搜尋一個詞語, 通常表明對該詞語感興趣。 既然如此, 那該詞語在網頁中的出現次數越多, 就越有可能表示該網頁是使用者所需要的。
可惜的是,這個貌似合理的方法實際上卻行不大通。 因為按照這種方法, 任何一個象祥林嫂一樣翻來覆去倒騰某些關鍵詞的網頁, 無論水平多爛, 一旦被搜尋到, 都立刻會 “金榜題名”, 這簡直就是廣告及垃圾網頁製造者的天堂。
是Google創始人拉里·佩奇和謝爾蓋·布林於1997年構建早期的搜尋系統原型時提出的連結分析演算法,自從Google在商業上獲得空前的成功後,該演算法也成為其他搜尋引擎和學術界十分關注的計算模型。目前很多重要的連結分析演算法都是在PageRank演算法基礎上衍生出來的。
PageRank是Google用於用來標識網頁的等級/重要性的一種方法,是Google用來衡量一個網站的好壞的唯一標準。在揉合了諸如Title標識和Keywords標識等所有其它因素之後,Google透過PageRank來調整結果,使那些更具“等級/重要性”的網頁在搜尋結果中另網站排名獲得提升,從而提高搜尋結果的相關性和質量。其級別從0到10級,10級為滿分。PR值越高說明該網頁越受歡迎(越重要)。
例如:一個PR值為1的網站表明這個網站不太具有流行度,而PR值為7到10則表明這個網站非常受歡迎(或者說極其重要)。一般PR值達到4,就算是一個不錯的網站了。Google把自己的網站的PR值定到10,這說明Google這個網站是非常受歡迎的,也可以說這個網站非常重要。
2. 從入鏈數量到 PageRank
在PageRank提出之前,已經有研究者提出利用網頁的入鏈數量來進行連結分析計算,這種入鏈方法假設一個網頁的入鏈越多,則該網頁越重要。早期的很多搜尋引擎也採納了入鏈數量作為連結分析方法,對於搜尋引擎效果提升也有較明顯的效果。 PageRank除了考慮到入鏈數量的影響,還參考了網頁質量因素,兩者相結合獲得了更好的網頁重要性評價標準。
對於某個網際網路網頁A來說,該網頁PageRank的計算基於以下兩個基本假設:
數量假設:在Web圖模型中,如果一個頁面節點接收到的其他網頁指向的入鏈數量越多,那麼這個頁面越重要。
質量假設:指向頁面A的入鏈質量不同,質量高的頁面會透過連結向其他頁面傳遞更多的權重。所以越是質量高的頁面指向頁面A,則頁面A越重要。
利用以上兩個假設,PageRank演算法剛開始賦予每個網頁相同的重要性得分,透過迭代遞迴計算來更新每個頁面節點的PageRank得分,直到得分穩定為止。 PageRank計算得出的結果是網頁的重要性評價,這和使用者輸入的查詢是沒有任何關係的,即演算法是主題無關的。假設有一個搜尋引擎,其相似度計算函式不考慮內容相似因素,完全採用PageRank來進行排序,那麼這個搜尋引擎的表現是什麼樣子的呢?這個搜尋引擎對於任意不同的查詢請求,返回的結果都是相同的,即返回PageRank值最高的頁面。
3. PageRank演算法原理
PageRank的計算充分利用了兩個假設:數量假設和質量假設。步驟如下:
1)在初始階段:網頁透過連結關係構建起Web圖,每個頁面設定相同的PageRank值,透過若干輪的計算,會得到每個頁面所獲得的最終PageRank值。隨著每一輪的計算進行,網頁當前的PageRank值會不斷得到更新。
2)在一輪中更新頁面PageRank得分的計算方法:在一輪更新頁面PageRank得分的計算中,每個頁面將其當前的PageRank值平均分配到本頁面包含的出鏈上,這樣每個連結即獲得了相應的權值。而每個頁面將所有指向本頁面的入鏈所傳入的權值求和,即可得到新的PageRank得分。當每個頁面都獲得了更新後的PageRank值,就完成了一輪PageRank計算。
3.2 基本思想:
如果網頁T存在一個指向網頁A的連線,則表明T的所有者認為A比較重要,從而把T的一部分重要性得分賦予A。這個重要性得分值為:PR(T)/L(T)
其中PR(T)為T的PageRank值,L(T)為T的出鏈數
則A的PageRank值為一系列類似於T的頁面重要性得分值的累加。
即一個頁面的得票數由所有鏈向它的頁面的重要性來決定,到一個頁面的超連結相當於對該頁投一票。一個頁面的PageRank是由所有鏈向它的頁面(鏈入頁面)的重要性經過遞迴演算法得到的。一個有較多鏈入的頁面會有較高的等級,相反如果一個頁面沒有任何鏈入頁面,那麼它沒有等級。
3.3 PageRank簡單計算:
假設一個由只有4個頁面組成的集合:A,B,C和D。如果所有頁面都鏈向A,那麼A的PR(PageRank)值將是B,C及D的和。
繼續假設B也有連結到C,並且D也有連結到包括A的3個頁面。一個頁面不能投票2次。所以B給每個頁面半票。以同樣的邏輯,D投出的票只有三分之一算到了A的PageRank上。
換句話說,根據鏈出總數平分一個頁面的PR值。
例子:
如圖1 所示的例子來說明PageRank的具體計算過程。