PageRank算法詳解


https://zhuanlan.zhihu.com/p/137561088

在實際應用中許多數據都以圖(graph)的形式存在,比如,互聯網、社交網絡都可以看作是一個圖。圖數據上的機器學習具有理論與應用上的重要意義。 PageRank 算 法是圖的鏈接分析(link analysis)的代表性算法,屬於圖數據上的無監督學習方法。

PageRank算法最初作為互聯網網頁重要度的計算方法,1996 年由Page和Brin提出,並用於谷歌搜索引擎的網頁排序。事實上,PageRank 可以定義在任意有向圖上,后來被應用到社會影響力分析、文本摘要等多個問題。

PageRank算法的基本想法是在有向圖上定義一個隨機游走模型,即一階馬爾可夫鏈,描述隨機游走者沿着有向圖隨機訪問各個結點的行為。在一定條件下,極限情況訪問每個結點的概率收斂到平穩分布,這時各個結點的平穩概率值就是其PageRank值,表示結點的重要度。PageRank 是遞歸定義的,PageRank 的計算可以通過迭代算法進行。

本文第1節給出PageRank 的定義,第2節敘述PageRank的計算方法,包括常用的幕法 (power method)。

1.PageRank的定義

1.1 基本想法

歷史上,PageRank算法作為計算互聯網網頁重要度的算法被提出。PageRank是定義在網頁集合上的一個函數,它對每個網頁給出一個正實數,表示網頁的重要程度,整體構成一個向量,PageRank值越高,網頁就越重要,在互聯網搜索的排序中可能就被排在前面。

假設互聯網是一個有向圖,在其基礎上定義隨機游走模型,即一階馬爾可夫鏈,表示網頁瀏覽者在互聯網上隨機瀏覽網頁的過程。假設瀏覽者在每個網頁依照連接出去的超鏈接以等概率跳轉到下一個網頁,並在網上持續不斷進行這樣的隨機跳轉,這個過程形成一階馬爾可夫鏈。PageRank表示這個馬爾可夫鏈的平穩分布。每個網頁的PageRank值就是平穩概率。

圖1表示一個有向圖,假設是簡化的互聯網例,結點 [公式] , [公式] , [公式] 和 [公式] 表示網頁,結點之間的有向邊表示網頁之間的超鏈接,邊上的權值表示網頁之間隨機跳轉的概率。假設有一個瀏覽者,在網上隨機游走。如果瀏覽者在網頁 [公式] ,則下一步以 [公式] 的概率轉移到網頁 [公式] , [公式] 和 [公式] 。如果瀏覽者在網頁 [公式] ,則下一步以 [公式] 的概率轉移到網頁 [公式] 和 [公式] 。如果瀏覽者在網頁 [公式] ,則下一步以概率 [公式] 轉移到網頁 [公式] 。如果瀏覽者在網頁 [公式] ,則下一步以 [公式] 的概率轉移到網頁 [公式] 和 [公式] 。

圖1 有向圖

直觀上,一個網頁,如果指向該網頁的超鏈接越多,隨機跳轉到該網頁的概率也就越高,該網頁的PageRank值就越高,這個網頁也就越重要。一個網頁,如果指向該網頁的PageRank值越高,隨機跳轉到該網頁的概率也就越高,該網頁的PageRank值就越高,這個網頁也就越重要。PageRank值依賴於網絡的拓撲結構,一旦網絡的拓撲(連接關系)確定,PageRank值就確定。

PageRank 的計算可以在互聯網的有向圖上進行,通常是一個迭代過程。先假設一 個初始分布,通過迭代,不斷計算所有網頁的PageRank值,直到收斂為止。

下面首先給出有向圖及有向圖上隨機游走模型的定義,然后給出PageRank的基本定義,以及PageRank的一般定義。基本定義對應於理想情況,一般定義對應於現實情況。

1.2 有向圖和隨機游走模型

1.有向圖

定義1 (有向圖) 有向圖(directed graph)記作 [公式] ,其中 [公式] 和[公式]分別表示結點和有向邊的集合。

比如,互聯網就可以看作是一個有向圖,每個網頁是有向圖的一個結點,網頁之間的每一條超鏈接是有向圖的一條邊。

從一個結點出發到達另一個結點,所經過的邊的一個序列稱為一條路徑 (path) , 路徑上邊的個數稱為路徑的長度。如果一個有向圖從其中任何一個結點出發可以到達其他任何一個結點,就稱這個有向圖是強連通圖 (strongly connected graph) 。 圖1中的有向圖就是一個強連通圖。

假設[公式]是一個大於[公式]的自然數,如果從有向圖的一個結點出發返回到這個結點的路徑的長度都是[公式]的倍數,那么稱這個結點為周期性結點。 如果一個有向圖不含有周期性結點,則稱這個有向圖為非周期性圖 (aperiodic graph),否則為周期性圖。

圖2是一個周期性有向圖的例子。從結點[公式]出發返回到[公式],必須經過路徑[公式] ,所有可能的路徑的長度都是[公式]的倍數,所以結點 [公式] 是周期性結點。 這個有向圖是周期性圖。

圖2 周期性有向圖

2. 隨機游走模型

定義2(隨機游走模型)給定一個含有 [公式] 個結點的有向圖,在有向圖上定義隨機游走( random walk)模型,即一階馬爾可夫鏈,其中結點表示狀態,有向邊表示狀態之間的轉移,假設從一個結點到通過有向邊相連的所有結點的轉移概率相等。具體地,轉移矩陣是一個 [公式] 階矩陣 [公式]

[公式]

第 [公式] 行第 [公式] 列的元素 [公式] 取值規則如下:如果結點 [公式] 有 [公式] 個有向邊連出,並且結點 [公式] 是其連出的一個結點,則 [公式] ;否則 [公式] , [公式] 。

注意轉移矩陣具有性質: [公式]

[公式]

即每個元素非負,每列元素之和為 [公式] 即矩陣 [公式] 為隨機矩陣(stochastic matrix)。

在有向圖上的隨機游走形成馬爾可夫鏈。也就是說,隨機游走者每經一個單位時間轉移一個狀態,如果當前時刻在第 [公式] 個結點(狀態),那么下一個時刻在第 [公式] 個結點(狀態)的概率是 [公式] 這一概率只依賴於當前的狀態,與過去無關,具有馬爾可夫性。

在圖1的有向圖上可以定義隨機游走模型。結點 [公式] 到結點 [公式] , [公式] 和 [公式] 存在有向邊,可以以概率 [公式] 從 [公式] 分別轉移到 [公式] , [公式] 和 [公式] ,並以概率 [公式] 轉移到 [公式] , 於是可以寫出轉移矩陣的第 [公式] 列。結點 [公式] 到結點 [公式] 和 [公式] 存在有向邊,可以以概率 [公式] 從 [公式] 分別轉移到 [公式] 和 [公式] ,並以概率 [公式] 分別轉移到 [公式] 和 [公式] ,於是可以寫出矩陣的第 [公式] 列,等等。於是得到轉移矩陣

[公式]

隨機游走在某個時刻 [公式] 訪問各個結點的概率分布就是馬爾可夫鏈在時刻 [公式] 的狀態分布,可以用一個 [公式] 維列向量 [公式] 表示,那么在時刻 [公式] 訪問各個結點的概率分布[公式]滿足

[公式]

1.3 PageRank 的基本定義

給定一個包含 [公式] 個結點的強連通且非周期性的有向圖,在其基礎上定義隨機游走模型。假設轉移矩陣為 [公式] , 在時刻 [公式] 訪問各個結點的概率分布為

[公式]

則極限

[公式]

存在,極限向量 [公式] 表示馬爾可夫鏈的平穩分布,滿足

[公式]

定義3 (PageRank 的基本定義) 給定一個包含 [公式] 個結點 [公式]的強連通且非周期性的有向圖,在有向圖上定義隨機游走模型,即一階馬爾可夫鏈。隨機游走的特點是從一個結點到有有向邊連出的所有結點的轉移概率相等,轉移矩陣為 [公式] 。這個馬爾可夫鏈具有平穩分布 [公式]

[公式]

平穩分布 [公式] 稱為這個有向圖的 PageRank。 [公式] 的各個分量稱為各個結點的 [公式] 值。

[公式]

其中 [公式] , [公式] ,表示結點的的 PageRank 值。

顯然有

[公式]

[公式]

[公式]

這里 [公式] 表示指向結點 [公式] 的結點集合, [公式] 表示結點 [公式] 連出的有向邊的個數。

PageRank的基本定義是理想化的情況,在這種情況下,PageRank存在,而且可以通過不斷迭代求得PageRank值。

定理1 不可約且非周期的有限狀態馬爾可夫鏈,有唯一平穩分布存在,並且 當時間趨於無窮時狀態分布收斂於唯一的平穩分布。

根據馬爾可夫鏈平穩分布定理,強連通且非周期的有向圖上定義的隨機游走模 型(馬爾可夫鏈) ,在圖上的隨機游走當時間趨於無窮時狀態分布收斂於唯一的平穩分布。

1.4 PageRank 的一般定義

PageRank 一般定義的想法是在基本定義的基礎上導入平滑項。

給定一個含有 [公式] 個結點 [公式] , [公式] ,的任意有向圖,假設考慮一個在圖上隨機游走模型,即一階馬爾可夫鏈,其轉移矩陣是 [公式] ,從一個結點到其連出的所有結點的轉移概率相等。 這個馬爾可夫鏈未必具有平穩分布。 假設考慮另一個完全隨機游走的模型,其轉移矩陣的元素全部為 [公式] , 也就是說從任意一個結點到任意一個結點的轉移概率都是 [公式] 。 兩個轉移矩陣的線性組合又構成一個新的轉移矩陣,在其上可以定義一個新的馬爾可夫鏈。 容易證明這個馬爾可夫鏈一定具有平穩分布,且平穩分布滿足

[公式]

式中 [公式] 是系數,稱為阻尼因子(damping factor), [公式] 是 [公式] 維向量,[公式]是所 有分量為 [公式] 的 [公式] 維向量。 [公式] 表示的就是有向圖的一般PageRank。

 

式(10)中第一項表示(狀態分布是平穩分布時)依照轉移矩陣 [公式] 訪問各個結點的概率,第二項表示完全隨機訪問各個結點的概率。阻尼因子 [公式] 取值由經驗決定,例如 [公式] 。當 [公式] 接近 [公式] 時,隨機游走主要依照轉移矩陣 [公式] 進行;當 [公式] 接近 [公式] 時,隨機游走主要以等概率隨機訪問各個結點。

可以由式 (10) 寫出每個結點的 PageRank,這是一般 PageRank 的定義。

[公式]

第二項稱為平滑I頁,由於采用平滑項,所有結點的 PageRank 值都不會為 0,具有以下性質:

[公式] [公式]

下面給出 PageRank 的一般定義。

定義 4(PageRank 的一般定義)給定一個含有 [公式] 個結點的任意有向圖,在有向圖上定義一個一般的隨機游走模型,即一階馬爾可夫鏈。一般的隨機游走模型的轉移矩陣由兩部分的線性組合組成,一部分是有向圖的基本轉移矩陣 [公式] ,表示從一個結點到其連出的所有結點的轉移概率相等,另一部分是完全隨機的轉移矩陣,表示從任意一個結點到任意一個結點的轉移概率都是 [公式] ,線性組合系數為阻尼因子 [公式] 。 這個一般隨機游走的馬爾可夫鏈存在平穩分布, 記作 [公式] 。定義平穩分布向量 [公式] 為這個有向圖的一般 PageRank。 [公式] 由公式

[公式]

決定,其中 [公式] 是所有分量為 [公式] 的 [公式] 維向量。

一般 PageRank 的定義意味着互聯網瀏覽者,按照以下方法在網上隨機游走:任意一個網頁上,瀏覽者或者以概率 [公式] 決定按照超鏈接隨機跳轉,這時以等概率從連 接出去的超鏈接跳轉到下一個網頁;或者以概率 [公式] 決定完全隨機跳轉,這時以等概率 [公式] 跳轉到任意一個網頁。 第二個機制保證從沒有連接出去的超鏈接的網頁也可以跳轉出。這樣可以保證平穩分布,即一般 PageRank 的存在,因而一般 PageRank 適用於任何結構的網絡。

2.PageRank 的計算

PageRank 的定義是構造性的,即定義本身就給出了算法。本節列出 PageRank 的 計算方法包括法代算法、幕法、代數算法。常用的方法是事法。

2.1 迭代算法

給定一個含有 [公式] 個結點的有向圖,轉移矩陣為 [公式] ,有向圖的一般 PageRank 由迭代公式(14)的極限向量 [公式] 確定。PageRank 的迭代算法,就是按照這個一般定義進行選代,直至收斂。

算法 1 (PageRank 的迭代算法)

輸入:含有 [公式] 個結點的有向圖,轉移矩陣 [公式] , 阻尼因子 [公式] , 初始向量 [公式] ;

輸出:有向圖的 PageRank 向量 R。

(1)令 [公式]

(2)計算

[公式]

(3)如果 [公式] 與 [公式] 充分接近,令 [公式] 停止迭代。

(4)否則 [公式] ,執行(2)

 

算法2 (計算一般 PageRank 的冪法)

輸入:含有[公式]個結點的有向圖,有向圖的轉移矩陣 [公式] ,系數 [公式] ,初始向量 [公式],計算精度 [公式] ;

輸出:有向圖的 PageRank [公式] 。

(1)令 [公式] ,選擇初始向量 [公式]

(2)計算有向圖的一般轉移矩陣 [公式]

[公式]

(3)迭代並規范化結果向量

[公式]

(4) 當 [公式] 時,令 [公式] ,停止迭代。

(5)否則,令 [公式] , 執行步 (3)。

(6)對 [公式] 進行規范化處理,使其表示概率分布。

 

算法3 (代數算法)

代數算法通過一般轉移矩陣的逆矩陣計算求有向圖的一般 PageRank。

按照一般 PageRank 的定義式(14),於是,

[公式]

[公式]

這里 [公式] 是單位矩陣。當 [公式] 時,線性方程組(15)的解存在且唯一。這樣,可以通過求逆矩陣 [公式] 得到有向圖的一般PageRank。

參考文獻:

統計學習方法第二版 李航


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM