PageRank 算法
文章目錄
- 1. PageRank 的定義
- 1.1 基本想法
- 1.2 PageRank 的基本定義
- 1.3 PageRank 的一般定義
- 2. PageRank 的計算
- 2.1 迭代算法
- 2.2 冪法
- 2.3 代數算法
PageRank算法是圖的鏈接分析(link analysis)的代表性算法,屬于圖數據上的無監督學習方法。
PageRank算法最初作為互聯網網頁重要度的計算方法,1996年由Page和Brin提出,并用于谷歌搜索引擎的網頁排序。
事實上,PageRank可以定義在任意有向圖上,后來被應用到社會影響力分析、文本摘要等多個問題。
PageRank算法基本想法:
- 在有向圖上定義一個隨機游走模型,即一階馬爾可夫鏈,描述隨機游走者沿著有向圖隨機訪問各個結點的行為
- 在一定條件下,極限情況訪問每個結點的概率收斂到平穩分布,這時各個結點的平穩概率值就是其PageRank值,表示結點的重要度
- PageRank是遞歸定義的,PageRank的計算可以通過迭代算法進行
1. PageRank 的定義
1.1 基本想法
PageRank是定義在網頁集合上的一個函數,對網頁給出一個正實數,表示網頁的重要程度,整體構成一個向量,PageRank值越高,網頁就越重要,在互聯網搜索的排序中可能就被排在前面
- 假設互聯網是一個有向圖
- 在其基礎上定義隨機游走模型,即一階馬爾可夫鏈,表示網頁瀏覽者在互聯網上隨機瀏覽網頁的過程
- 假設瀏覽者在每個網頁依照連接出去的超鏈接以等概率跳轉到下一個網頁,并在網上持續不斷進行這樣的隨機跳轉,這個過程形成一階馬爾可夫鏈
- PageRank表示這個馬爾可夫鏈的平穩分布。每個網頁的PageRank 值就是平穩概率
1.2 PageRank 的基本定義
給定一個包含 nnn 個結點 v1,v2…,vnv_1,v_2…,v_nv1?,v2?…,vn? 的強連通且非周期性的有向圖,在有向圖上定義隨機游走模型,即一階馬爾可夫鏈。
隨機游走的特點是從一個結點 到有 有向邊連出的所有結點的轉移概率相等,轉移矩陣為M。這個馬爾可夫鏈具有平穩分布 R, MR=RMR=RMR=R
平穩分布 R 稱為這個有向圖的 PageRank。R的各個分量稱為各個結點的PageRank值
其中PR(vi),i=1,2,?,n,P R\left(v_{i}\right), i=1,2, \cdots, n,PR(vi?),i=1,2,?,n, 表示結點 viv_{i}vi? 的 PageRank 值
R=[PR(v1)PR(v2)?PR(vn)]PR(vi)?0,i=1,2,?,n∑i=1nPR(vi)=1PR(vi)=∑vj∈M(vi)PR(vj)L(vj),i=1,2,?,n\begin{array}{c}R=\left[\begin{array}{c}P R\left(v_{1}\right) \\ P R\left(v_{2}\right) \\ \vdots \\ P R\left(v_{n}\right)\end{array}\right] \\ \begin{array}{c} \\P R\left(v_{i}\right) \geqslant 0, \quad i=1,2, \cdots, n \\ \\ \sum\limits_{i=1}^{n} P R\left(v_{i}\right)=1\end{array} \\ \begin{array}{l}\\ P R\left(v_{i}\right)=\sum\limits_{v_{j} \in M\left(v_{i}\right)} \frac{P R\left(v_{j}\right)}{L\left(v_{j}\right)}, \quad i=1,2, \cdots, n\end{array}\end{array}R=??????PR(v1?)PR(v2?)?PR(vn?)???????PR(vi?)?0,i=1,2,?,ni=1∑n?PR(vi?)=1?PR(vi?)=vj?∈M(vi?)∑?L(vj?)PR(vj?)?,i=1,2,?,n??
M(vi)M(v_i)M(vi?) 表示指向節點 viv_ivi? 的節點集合,L(vj)L(v_j)L(vj?) 表示節點 vjv_jvj? 連出的有向邊個數
定理 :不可約且非周期的有限狀態馬爾可夫鏈,有唯一平穩分布存在,并且當時間趨于無窮時狀態分布收斂于唯一的平穩分布。
- 一般的有向圖未必滿足強連通且非周期性的條件
- 比如,在互聯網,大部分網頁沒有連接出去的超鏈接,也就是說從這些網頁無法跳轉到其他網頁。所以PageRank的基本定義不適用
1.3 PageRank 的一般定義
有 n 個結點的任意有向圖,定義一個一般的隨機游走模型,即一階馬爾可夫鏈。
一般的隨機游走模型的轉移矩陣由兩部分的線性組合組成:
- 一部分是有向圖的基本轉移矩陣M,表示從一個結點到其連出的所有結點的轉移概率相等
- 另一部分是完全隨機的轉移矩陣,表示從任意一個結點到任意一個結點的轉移概率都是1/n,線性組合系數為阻尼因子 d(0≤d≤1)d(0≤d≤1)d(0≤d≤1)
這個一般隨機游走的馬爾可夫鏈存在平穩分布,記作 R。
定義平穩分布向量R為這個有向圖的一般PageRank。R由公式 R=dMR+1?dn1R= dMR+\frac{1-d}{n} \bf1R=dMR+n1?d?1 決定,1\bf 11 是所有分量為 1 的 n 維向量
PR(vi)=d(∑vj∈M(vi)PR(vj)L(vj))+1?dn,i=1,2,?,nP R\left(v_{i}\right)=d\left(\sum_{v_{j} \in M\left(v_{i}\right)} \frac{P R\left(v_{j}\right)}{L\left(v_{j}\right)}\right)+\frac{1-d}{n}, \quad i=1,2, \cdots, nPR(vi?)=d???vj?∈M(vi?)∑?L(vj?)PR(vj?)????+n1?d?,i=1,2,?,n
一般PageRank的定義意味著互聯網瀏覽者:
- 在任意一個網頁上,瀏覽者或者以概率 d 決定按照超鏈接隨機跳轉,這時以等概率從連接出去的超鏈接跳轉到下一個網頁
- 或者以概率(1-d)決定完全隨機跳轉,這時以等概率1/n跳轉到任意一個網頁
- 第二個機制保證從沒有連接出去的超鏈接的網頁也可以跳轉出。這樣可以保證平穩分布,即一般PageRank的存在
2. PageRank 的計算
包括迭代算法、冪法、代數算法。常用的方法是 冪法
2.1 迭代算法
輸入:含有 n 個結點的有向圖,轉移矩陣 M,阻尼因子 d,初始向量 R0
輸出:有向圖的 PageRank 向量 R
2.2 冪法
輸入:含有 n 個結點的有向圖,轉移矩陣 M,系數 d,初始向量 x0,計算精度 ε\varepsilonε
輸出:有向圖的 PageRankR
yt+1=Axty_{t+1} = Ax_tyt+1?=Axt?
xt+1=yt+1∣∣yt+1∣∣\quad \quad x_{t+1} = \frac{y_{t+1}}{||y_{t+1}||}xt+1?=∣∣yt+1?∣∣yt+1??
2.3 代數算法
代數算法 通過一般轉移矩陣的逆矩陣計算求有向圖的一般 PageRank
按照PR的一般定義:R=dMR+1?dn1R=d M R+\frac{1-d}{n} \mathbf{1}R=dMR+n1?d?1
于是有:
(I?dM)R=1?dn1(I-d M) R=\frac{1-d}{n} \mathbf{1} (I?dM)R=n1?d?1
R=(I?dM)?11?dn1R=(I-d M)^{-1} \frac{1-d}{n} \mathbf{1}R=(I?dM)?1n1?d?1
這里 I\bf II 是單位矩陣。
當 0<d<10<d<10<d<1 時,上面方程的解存在且唯一
可以通過求逆矩陣 (I?dM)?1(I-d M)^{-1}(I?dM)?1 得到有向圖的一般 PageRank
總結
以上是生活随笔為你收集整理的PageRank 算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1255. 得分最高的
- 下一篇: LeetCode 1027. 最长等差数