PageRank算法
1. PageRank算法概述
PageRank,即網(wǎng)頁排名,又稱網(wǎng)頁級別、Google左側(cè)排名或佩奇排名。
是Google創(chuàng)始人拉里·佩奇和謝爾蓋·布林于1997年構(gòu)建早期的搜索系統(tǒng)原型時(shí)提出的鏈接分析算法,自從Google在商業(yè)上獲得空前的成功后,該算法也成為其他搜索引擎和學(xué)術(shù)界十分關(guān)注的計(jì)算模型。目前很多重要的鏈接分析算法都是在PageRank算法基礎(chǔ)上衍生出來的。PageRank是Google用于用來標(biāo)識網(wǎng)頁的等級/重要性的一種方法,是Google用來衡量一個網(wǎng)站的好壞的唯一標(biāo)準(zhǔn)。在揉合了諸如Title標(biāo)識和Keywords標(biāo)識等所有其它因素之后,Google通過PageRank來調(diào)整結(jié)果,使那些更具“等級/重要性”的網(wǎng)頁在搜索結(jié)果中另網(wǎng)站排名獲得提升,從而提高搜索結(jié)果的相關(guān)性和質(zhì)量。其級別從0到10級,10級為滿分。PR值越高說明該網(wǎng)頁越受歡迎(越重要)。例如:一個PR值為1的網(wǎng)站表明這個網(wǎng)站不太具有流行度,而PR值為7到10則表明這個網(wǎng)站非常受歡迎(或者說極其重要)。一般PR值達(dá)到4,就算是一個不錯的網(wǎng)站了。Google把自己的網(wǎng)站的PR值定到10,這說明Google這個網(wǎng)站是非常受歡迎的,也可以說這個網(wǎng)站非常重要。
2. 從入鏈數(shù)量到 PageRank
在PageRank提出之前,已經(jīng)有研究者提出利用網(wǎng)頁的入鏈數(shù)量來進(jìn)行鏈接分析計(jì)算,這種入鏈方法假設(shè)一個網(wǎng)頁的入鏈越多,則該網(wǎng)頁越重要。早期的很多搜索引擎也采納了入鏈數(shù)量作為鏈接分析方法,對于搜索引擎效果提升也有較明顯的效果。 PageRank除了考慮到入鏈數(shù)量的影響,還參考了網(wǎng)頁質(zhì)量因素,兩者相結(jié)合獲得了更好的網(wǎng)頁重要性評價(jià)標(biāo)準(zhǔn)。
對于某個互聯(lián)網(wǎng)網(wǎng)頁A來說,該網(wǎng)頁P(yáng)ageRank的計(jì)算基于以下兩個基本假設(shè):
? 數(shù)量假設(shè):在Web圖模型中,如果一個頁面節(jié)點(diǎn)接收到的其他網(wǎng)頁指向的入鏈數(shù)量越多,那么這個頁面越重要。
? 質(zhì)量假設(shè):指向頁面A的入鏈質(zhì)量不同,質(zhì)量高的頁面會通過鏈接向其他頁面?zhèn)鬟f更多的權(quán)重。所以越是質(zhì)量高的頁面指向頁面A,則頁面A越重要。
利用以上兩個假設(shè),PageRank算法剛開始賦予每個網(wǎng)頁相同的重要性得分,通過迭代遞歸計(jì)算來更新每個頁面節(jié)點(diǎn)的PageRank得分,直到得分穩(wěn)定為止。 PageRank計(jì)算得出的結(jié)果是網(wǎng)頁的重要性評價(jià),這和用戶輸入的查詢是沒有任何關(guān)系的,即算法是主題無關(guān)的。假設(shè)有一個搜索引擎,其相似度計(jì)算函數(shù)不考慮內(nèi)容相似因素,完全采用PageRank來進(jìn)行排序,那么這個搜索引擎的表現(xiàn)是什么樣子的呢?這個搜索引擎對于任意不同的查詢請求,返回的結(jié)果都是相同的,即返回PageRank值最高的頁面。
3. PageRank算法原理
PageRank的計(jì)算充分利用了兩個假設(shè):數(shù)量假設(shè)和質(zhì)量假設(shè)。步驟如下:
1)在初始階段:網(wǎng)頁通過鏈接關(guān)系構(gòu)建起Web圖,每個頁面設(shè)置相同的PageRank值,通過若干輪的計(jì)算,會得到每個頁面所獲得的最終PageRank值。隨著每一輪的計(jì)算進(jìn)行,網(wǎng)頁當(dāng)前的PageRank值會不斷得到更新。
2)在一輪中更新頁面PageRank得分的計(jì)算方法:在一輪更新頁面PageRank得分的計(jì)算中,每個頁面將其當(dāng)前的PageRank值平均分配到本頁面包含的出鏈上,這樣每個鏈接即獲得了相應(yīng)的權(quán)值。而每個頁面將所有指向本頁面的入鏈所傳入的權(quán)值求和,即可得到新的PageRank得分。當(dāng)每個頁面都獲得了更新后的PageRank值,就完成了一輪PageRank計(jì)算。
3.2 基本思想:
如果網(wǎng)頁T存在一個指向網(wǎng)頁A的連接,則表明T的所有者認(rèn)為A比較重要,從而把T的一部分重要性得分賦予A。這個重要性得分值為:PR(T)/L(T)
其中PR(T)為T的PageRank值,L(T)為T的出鏈數(shù)
則A的PageRank值為一系列類似于T的頁面重要性得分值的累加。
即一個頁面的得票數(shù)由所有鏈向它的頁面的重要性來決定,到一個頁面的超鏈接相當(dāng)于對該頁投一票。一個頁面的PageRank是由所有鏈向它的頁面(鏈入頁面)的重要性經(jīng)過遞歸算法得到的。一個有較多鏈入的頁面會有較高的等級,相反如果一個頁面沒有任何鏈入頁面,那么它沒有等級。
3.3 PageRank簡單計(jì)算:
假設(shè)一個由只有4個頁面組成的集合:A,B,C和D。如果所有頁面都鏈向A,那么A的PR(PageRank)值將是B,C及D的和。
繼續(xù)假設(shè)B也有鏈接到C,并且D也有鏈接到包括A的3個頁面。一個頁面不能投票2次。所以B給每個頁面半票。以同樣的邏輯,D投出的票只有三分之一算到了A的PageRank上。
換句話說,根據(jù)鏈出總數(shù)平分一個頁面的PR值。
例子:
如圖1 所示的例子來說明PageRank的具體計(jì)算過程。
3.4 修正PageRank計(jì)算公式:
由于存在一些出鏈為0,也就是那些不鏈接任何其他網(wǎng)頁的網(wǎng), 也稱為孤立網(wǎng)頁,使得很多網(wǎng)頁能被訪問到。因此需要對 PageRank公式進(jìn)行修正,即在簡單公式的基礎(chǔ)上增加了阻尼系數(shù)(damping factor)q, q一般取值q=0.85。
其意義是,在任意時(shí)刻,用戶到達(dá)某頁面后并繼續(xù)向后瀏覽的概率。1- q= 0.15就是用戶停止點(diǎn)擊,隨機(jī)跳到新URL的概率)的算法被用到了所有頁面上,估算頁面可能被上網(wǎng)者放入書簽的概率。
最后,即所有這些被換算為一個百分比再乘上一個系數(shù)q。由于下面的算法,沒有頁面的PageRank會是0。所以,Google通過數(shù)學(xué)系統(tǒng)給了每個頁面一個最小值。
這個公式就是.S Brin 和 L. Page 在《The Anatomy of a Large- scale Hypertextual Web Search Engine Computer Networks and ISDN Systems 》定義的公式。
所以一個頁面的PageRank是由其他頁面的PageRank計(jì)算得到。Google不斷的重復(fù)計(jì)算每個頁面的PageRank。如果給每個頁面一個隨機(jī)PageRank值(非0),那么經(jīng)過不斷的重復(fù)計(jì)算,這些頁面的PR值會趨向于正常和穩(wěn)定。這就是搜索引擎使用它的原因。
4. PageRank冪法計(jì)算(線性代數(shù)應(yīng)用)
4.1 完整公式:
關(guān)于這節(jié)內(nèi)容,可以查閱:谷歌背后的數(shù)學(xué)
首先求完整的公式:
Arvind Arasu 在《Junghoo Cho Hector Garcia - Molina, Andreas Paepcke, Sriram Raghavan. Searching the Web》 更加準(zhǔn)確的表達(dá)為:
是被研究的頁面,是鏈入頁面的數(shù)量,是鏈出頁面的數(shù)量,而N是所有頁面的數(shù)量。
PageRank值是一個特殊矩陣中的特征向量。這個特征向量為:
R是如下等式的一個解:
如果網(wǎng)頁i有指向網(wǎng)頁j的一個鏈接,則
否則=0。
4.2 使用冪法求PageRank
那我們PageRank 公式可以轉(zhuǎn)換為求解的值,
其中矩陣為 A =q× P + ( 1 一 q) * /N 。 P 為概率轉(zhuǎn)移矩陣,為 n 維的全 1 行.則=
冪法計(jì)算過程如下:
X 設(shè)任意一個初始向量,即設(shè)置初始每個網(wǎng)頁的PageRank值均。一般為1.
R = AX;
while (1 )(
if( lX -R I <) { //如果最后兩次的結(jié)果近似或者相同,返回R
return R;
} else {
X =R;
R = AX;
}
}
4.3 求解步驟:
一、 P概率轉(zhuǎn)移矩陣的計(jì)算過程:
先建立一個網(wǎng)頁間的鏈接關(guān)系的模型,即我們需要合適的數(shù)據(jù)結(jié)構(gòu)表示頁面間的連接關(guān)系。
1) 首先我們使用圖的形式來表述網(wǎng)頁之間關(guān)系:
現(xiàn)在假設(shè)只有四張網(wǎng)頁集合:A、B、C,其抽象結(jié)構(gòu)如下圖1:
圖1網(wǎng)頁間的鏈接關(guān)系
顯然這個圖是強(qiáng)連通的(從任一節(jié)點(diǎn)出發(fā)都可以到達(dá)另外任何一個節(jié)點(diǎn))。
2)我們用矩陣表示連通圖:
用鄰接矩陣P表示這個圖中頂點(diǎn)關(guān)系 ,如果頂(頁面)i向頂點(diǎn)(頁面)j有鏈接情況 ,則pij = 1 ,否則pij = 0 。如圖2所示。如果網(wǎng)頁文件總數(shù)為N, 那么這個網(wǎng)頁鏈接矩陣就是一個N x N 的矩 陣 。
3)網(wǎng)頁鏈接概率矩陣
然后將每一行除以該行非零數(shù)字之和,即(每行非0數(shù)之和就是鏈接網(wǎng)個數(shù))則得到新矩陣P’,如圖3所示。 這個矩陣記錄了 每個網(wǎng)頁跳轉(zhuǎn)到其他網(wǎng)頁的概率,即其中i行j列的值表示用戶從頁面i 轉(zhuǎn)到頁面j的概率。圖1 中A頁面鏈向B、C,所以一個用戶從A跳轉(zhuǎn)到B、C的概率各為1/2。
4)概率轉(zhuǎn)移矩陣P
采用P’ 的轉(zhuǎn)置矩陣進(jìn)行計(jì)算,也就是上面提到的概率轉(zhuǎn)移矩陣P 。 如圖4所示:
圖2 網(wǎng)頁鏈接矩陣: 圖3 網(wǎng)頁鏈接概率矩陣:
圖4 P’ 的轉(zhuǎn)置矩陣
二、 A矩陣計(jì)算過程。
1)P概率轉(zhuǎn)移矩陣:
2)/N 為:
3)A矩陣為:q× P + ( 1 一 q) * /N = 0.85 × P+ 0.15* /N
初始每個網(wǎng)頁的PageRank值均為1 , 即X~t = ( 1 , 1 , 1 ) 。
三、循環(huán)迭代計(jì)算PageRank的過程
第一步:
因?yàn)閄 與R的差別較大。 繼續(xù)迭代。
第二步:
繼續(xù)迭代這個過程...
直到最后兩次的結(jié)果近似或者相同,即R最終收斂,R 約等于X,此時(shí)計(jì)算停止。最終的R 就是各個頁面的 PageRank 值。
用冪法計(jì)算PageRank 值總是收斂的,即計(jì)算的次數(shù)是有限的。
Larry Page和Sergey Brin 兩人從理論上證明了不論初始值如何選取,這種算法都保證了網(wǎng)頁排名的估計(jì)值能收斂到他們的真實(shí)值。
由于互聯(lián)網(wǎng)上網(wǎng)頁的數(shù)量是巨大的,上面提到的二維矩陣從理論上講有網(wǎng)頁數(shù)目平方之多個元素。如果我們假定有十億個網(wǎng)頁,那么這個矩陣 就有一百億億個元素。這樣大的矩陣相乘,計(jì)算量是非常大的。Larry Page和Sergey Brin兩人利用稀疏矩陣計(jì)算的技巧,大大的簡化了計(jì)算量。
5. PageRank算法優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
是一個與查詢無關(guān)的靜態(tài)算法,所有網(wǎng)頁的PageRank值通過離線計(jì)算獲得;有效減少在線查詢時(shí)的計(jì)算量,極大降低了查詢響應(yīng)時(shí)間。
缺點(diǎn):
1)人們的查詢具有主題特征,PageRank忽略了主題相關(guān)性,導(dǎo)致結(jié)果的相關(guān)性和主題性降低
2)舊的頁面等級會比新頁面高。因?yàn)榧词故欠浅:玫男马撁嬉膊粫泻芏嗌嫌捂溄?#xff0c;除非它是某個站點(diǎn)的子站點(diǎn)。
參考文獻(xiàn):
維基百科http://en.wikipedia.org/wiki/Page_rank
PageRank算法的分析及實(shí)現(xiàn)
《這就是搜索引擎:核心技術(shù)詳解》
總結(jié)
以上是生活随笔為你收集整理的PageRank算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle EBS PAC定期成本分配
- 下一篇: 左移,右移的数字意义