PageRank算法

PageRank算法原理

      PageRank的計算充分利用了兩個假設:數量假設質量假設。步驟如下:
      1)在初始階段:網頁通過鏈接關係構建起Web圖,每個頁面設置相同的PageRank值,通過若干輪的計算,會得到每個頁面所獲得的最終PageRank值。隨着每一輪的計算進行,網頁當前的PageRank值會不斷得到更新。

      2)在一輪中更新頁面PageRank得分的計算方法:在一輪更新頁面PageRank得分的計算中,每個頁面將其當前的PageRank值平均分配到本頁面包含的出鏈上,這樣每個鏈接即獲得了相應的權值。而每個頁面將所有指向本頁面的入鏈所傳入的權值求和,即可得到新的PageRank得分。當每個頁面都獲得了更新後的PageRank值,就完成了一輪PageRank計算。 

(常言道,看一個人怎樣,看他有什麼朋友就知道了。也就是說,一個人有着越多牛X朋友的人,他是牛X的概率就越大。將這個知識遷移到網頁上就是被越多優質的網頁所指的網頁,它是優質的概率就越大

PageRank的核心思想就是上述簡單卻有效的觀點。)

 

PageRank算法優缺點

優點:

        是一個與查詢無關的靜態算法,所有網頁的PageRank值通過離線計算獲得;有效減少在線查詢時的計算量,極大降低了查詢響應時間

缺點:

  • 人們的查詢具有主題特徵,PageRank忽略了主題相關性,導致結果的相關性和主題性降低

  • 舊的頁面等級會比新頁面高。因爲即使是非常好的新頁面也不會有很多上游鏈接,除非它是某個站點的子站點。

  • 該算法在初期的時候一直都是基於鏈接分析的,而一個網頁上的鏈接包含很多:比如廣告鏈接、功能鏈接、導航鏈接、以及多次重複的無效鏈接等等,這些鏈接都會被該算法計算在pr值傳遞之中,所以不能夠對網頁降噪之後在進行處理

 

基本思想

       如果網頁T存在一個指向網頁A的連接,則表明T的所有者認爲A比較重要,從而把T的一部分重要性得分賦予A。這個重要性得分值爲:PRT/ L(T)

   其中PRT)爲TPageRank值,L(T)T的出鏈數

       APageRank值爲一系列類似於T的頁面重要性得分值的累加。

       即一個頁面的得票數由所有鏈向它的頁面的重要性來決定,到一個頁面的超鏈接相當於對該頁投一票。一個頁面的PageRank是由所有鏈向它的頁面(鏈入頁面)的重要性經過遞歸算法得到的。一個有較多鏈入的頁面會有較高的等級,相反如果一個頁面沒有任何鏈入頁面,那麼它沒有等級。

3.3 PageRank簡單計算:

       假設一個由只有4個頁面組成的集合:ABCD。如果所有頁面都鏈向A,那麼APRPageRank)值將是BCD的和。

wKiom1Q9CzmgJp18AAAE5d1NJSM797.gif

wKioL1Q9C1KTXjq0AAAGGvwh2ik473.gif

       繼續假設B也有鏈接到C,並且D也有鏈接到包括A3個頁面。一個頁面不能投票2次。所以B給每個頁面半票。以同樣的邏輯,D投出的票只有三分之一算到了APageRank上。

wKiom1Q9CteTpviSAAAHocC1Ssg821.gif

換句話說,根據鏈出總數平分一個頁面的PR值。


如圖所示的例子來說明PageRank的具體計算過程。  

                 wKioL1Q9ClixhtHCAAFXLdlhdsM916.jpg        


修正PageRank計算公式

         由於存在一些出鏈爲0,也就是那些不鏈接任何其他網頁的網, 也稱爲孤立網頁,使得很多網頁能被訪問到。因此需要對 PageRank公式進行修正,即在簡單公式的基礎上增加了阻尼係數dampingfactorq q一般取值q=0.85

      其意義是,在任意時刻,用戶到達某頁面後並繼續向後瀏覽的概率。 1- q= 0.15就是用戶停止點擊,隨機跳到新URL的概率)的算法被用到了所有頁面上,估算頁面可能被上網者放入書籤的概率。

wKiom1Q9C4OCiqbfAAAJ9nZVEGk092.gif      

最後,即所有這些被換算爲一個百分比再乘上一個係數q。由於下面的算法,沒有頁面的PageRank會是0。所以,Google通過數學系統給了每個頁面一個最小值。

     所以一個頁面的PageRank是由其他頁面的PageRank計算得到。Google不斷的重複計算每個頁面的PageRank。如果給每個頁面一個隨機PageRank值(非0),那麼經過不斷的重複計算,這些頁面的PR值會趨向於正常和穩定。這就是搜索引擎使用它的原因。

 (一個很顯然的結論是,如果連通圖中有一個頂點的入度爲0,則經過有限次迭代之後,該連通圖內的所有頂點的PageRank均爲0,形象的說,這個頂點就像一個黑洞一樣,把整體的PageRank值慢慢地“吸收”了。由於它不對外貢獻任何PR值,所以整體的PR總和是在不斷地減少,直到最終收斂到0。我把它稱之爲:PageRank的“黑洞效應”。至於說Google是如何防止這種情況的發生,畢竟一個網站沒有外鏈是完全有可能的,我也尚未找到確切的答案。不過網上道是有人給出了一種解決辦法:即如果一個網站沒有外鏈,那麼就假定該連通圖內其餘所有的網點都是它的外鏈,這樣我們就避免了整體PageRank值被吸收的現象)

 

PageRank冪法計算(線性代數應用)

完整公式:

wKiom1Q9C6nyS_erAAAIJ_MyuSE512.gif

wKioL1Q9C_nwaOfWAAABj-lgvXM759.gif是被研究的頁面,wKiom1Q9C9yC5DA9AAABe99uvuM853.gifwKiom1Q9C_ij0sbcAAAArLcBakQ376.gif鏈入頁面的數量,wKioL1Q9DE6whpQVAAABTvfBiro329.gifwKiom1Q9C_ij0sbcAAAArLcBakQ376.gif鏈出頁面的數量,而N是所有頁面的數量。

PageRank值是一個特殊矩陣中的特徵向量。這個特徵向量爲:

wKiom1Q9DDChvYk4AAAJH-cDYek516.gif

 

R是如下等式的一個解:

wKioL1Q9DIqys17UAAARag0V4OQ997.gif

如果網頁i有指向網頁j的一個鏈接,則

wKiom1Q9DG2yUOZXAAADHfCwPZs901.gif否則wKioL1Q9DLzjbY_pAAABrBSXeMw066.gif0

4.2 使用冪法求PageRank

      PageRank 公式可以轉換爲求解wKiom1Q9DKWj3ed_AAAHkdDAOac861.gif的值,

      其中矩陣爲 A = q*P + (1-q) * ewKiom1Q9DRSi5GtsAAAFfYK4Ymg052.jpg /N P 爲概率轉移矩陣,ewKiom1Q9DRSi5GtsAAAFfYK4Ymg052.jpg 維的全 1  ewKiom1Q9DRSi5GtsAAAFfYK4Ymg052.jpg=wKiom1Q9DNmQaaJEAAANDGGoNYs949.gif

      

     冪法計算過程如下:
      X  設任意一個初始向量即設置初始每個網頁的 PageRank值均。一般爲1.

     R = AX;

     while  (1 )(

           if ( l X - R I  <ε ) { //如果最後兩次的結果近似或者相同,返回R

                 returnR;

          }    else   {

               X =R;

              R = AX;

        }

    }

求解步驟:

一、 P概率轉移矩陣的計算過程:

        先建立一個網頁間的鏈接關係的模型,即我們需要合適的數據結構表示頁面間的連接關係。

      1) 首先我們使用圖的形式來表述網頁之間關係:

       現在假設只有四張網頁集合:ABC,其抽象結構如下圖1

wKiom1Q9DUrzNBJoAAAqG5Wlc9g067.gif

網頁間的鏈接關係

      顯然這個圖是強連通的(從任一節點出發都可以到達另外任何一個節點)。

      2)我們用矩陣表示連通圖:

       用鄰接矩陣 P表示這個圖中頂點關係 ,如果頂(頁面)i向頂點(頁面)j有鏈接情況,則Pij =  1,否則Pij =  0。如圖2所示。如果網頁文件總數爲,那麼這個網頁鏈接矩陣就是一個N*N  的矩陣  

      3)網頁鏈接概率矩陣

       然後將每一行除以該行非零數字之和,即(每行非0數之和就是鏈接網個數)則得到新矩陣P’,如圖3所示。 這個矩陣記錄了 每個網頁跳轉到其他網頁的概率,即其中ij列的值表示用戶從頁面i 轉到頁面j的概率。圖1 A頁面鏈向BC,所以一個用戶從A跳轉到BC的概率各爲1/2

      4)概率轉移矩陣P

       採用P’ 的轉置矩 陣進行計算, 也就是上面提到的概率轉移矩陣P   如圖4所示:

 wKiom1Q9DizD4StXAADqawf3v7Q092.jpg

二、 A矩陣計算過程。


      1P概率轉移矩陣  :

wKioL1Q9DrCiw1puAAAKTogLO6w998.gif

      2ewKiom1Q9DRSi5GtsAAAFfYK4Ymg052.jpg/N 爲:

wKiom1Q9DpOgMWWDAAARLCk2fWY788.gif

      3A矩陣爲:q  × P + ( 1 q) * ewKiom1Q9DRSi5GtsAAAFfYK4Ymg052.jpg /N= 0.85  × P + 0.15  *ewKiom1Q9DRSi5GtsAAAFfYK4Ymg052.jpg /N

wKioL1Q9DvSyzpJKAAAQGOaLSIQ760.gif

      初始每個網頁的 PageRank值均爲1 X~t = ( 1 1 1 )  

三、 循環迭代計算PageRank的過程

       第一步:

wKioL1Q9DxCi2omrAAAsOzIhCig457.gif

         因爲X R的差別較大。 繼續迭代。

          第二步:

wKiom1Q9DviRDM9tAAAdXWvcN8Q200.gif

       繼續迭代這個過程...

       直到最後兩次的結果近似或者相同,即R最終收斂R 約等於X,此時計算停止。最終的R 就是各個頁面的 PageRank 值。

用冪法計算PageRank 值總是收斂的,即計算的次數是有限的。

    不論初始值如何選取,這種算法都保證了網頁排名的估計值能收斂到他們的真實值。

      由於互聯網上網頁的數量是巨大的,上面提到的二維矩陣從理論上講有網頁數目平方之多個元素。如果我們假定有十億個網頁,那麼這個矩陣就有一百億億個元素。這樣大的矩陣相乘,計算量是非常大的Larry PageSergey Brin兩人利用稀疏矩陣計算的技巧,大大的簡化了計算量


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章