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