PageRank 算法
发布日期:2021-07-01 03:25:12 浏览次数:3 分类:技术文章

本文共 4063 字,大约阅读时间需要 13 分钟。

文章目录

PageRank算法是图的链接分析(link analysis)的代表性算法,属于图数据上的无监督学习方法。

PageRank算法最初作为互联网网页重要度的计算方法,1996年由Page和Brin提出,并用于谷歌搜索引擎的网页排序

事实上,PageRank可以定义在任意有向图上,后来被应用到社会影响力分析文本摘要等多个问题。
PageRank算法基本想法

  • 在有向图上定义一个随机游走模型,即一阶马尔可夫链,描述随机游走者沿着有向图随机访问各个结点的行为
  • 在一定条件下,极限情况访问每个结点的概率收敛到平稳分布,这时各个结点的平稳概率值就是其PageRank值,表示结点的重要度
  • PageRank是递归定义的,PageRank的计算可以通过迭代算法进行

1. PageRank 的定义

1.1 基本想法

PageRank是定义在网页集合上的一个函数,对网页给出一个正实数,表示网页的重要程度,整体构成一个向量,PageRank值越高,网页就越重要,在互联网搜索的排序中可能就被排在前面

  • 假设互联网是一个有向图
  • 在其基础上定义随机游走模型,即一阶马尔可夫链,表示网页浏览者在互联网上随机浏览网页的过程
  • 假设浏览者在每个网页依照连接出去的超链接以等概率跳转到下一个网页,并在网上持续不断进行这样的随机跳转,这个过程形成一阶马尔可夫链
  • PageRank表示这个马尔可夫链的平稳分布。每个网页的PageRank 值就是平稳概率

1.2 PageRank 的基本定义

给定一个包含 n n n 个结点 v 1 , v 2 … , v n v_1,v_2…,v_n v1v2vn强连通非周期性的有向图,在有向图上定义随机游走模型,即一阶马尔可夫链。

随机游走的特点是从一个结点 到有 有向边连出的所有结点的转移概率相等,转移矩阵为M。这个马尔可夫链具有平稳分布 R, M R = R MR=R MR=R

平稳分布 R 称为这个有向图的 PageRank。R的各个分量称为各个结点的PageRank值

其中 P R ( v i ) , i = 1 , 2 , ⋯   , n , P R\left(v_{i}\right), i=1,2, \cdots, n, PR(vi),i=1,2,,n, 表示结点 v i v_{i} vi 的 PageRank 值

R = [ P R ( v 1 ) P R ( v 2 ) ⋮ P R ( v n ) ] P R ( v i ) ⩾ 0 , i = 1 , 2 , ⋯   , n ∑ i = 1 n P R ( v i ) = 1 P R ( v i ) = ∑ v j ∈ M ( v i ) P R ( v j ) L ( v j ) , 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=1nPR(vi)=1PR(vi)=vjM(vi)L(vj)PR(vj),i=1,2,,n
M ( v i ) M(v_i) M(vi) 表示指向节点 v i v_i vi 的节点集合, L ( v j ) L(v_j) L(vj) 表示节点 v j v_j vj 连出的有向边个数

定理 :不可约且非周期的有限状态马尔可夫链,有唯一平稳分布存在,并且当时间趋于无穷时状态分布收敛于唯一的平稳分布。

  • 一般的有向图未必满足强连通且非周期性的条件
  • 比如,在互联网,大部分网页没有连接出去的超链接,也就是说从这些网页无法跳转到其他网页。所以PageRank的基本定义不适用

1.3 PageRank 的一般定义

有 n 个结点的任意有向图,定义一个一般的随机游走模型,即一阶马尔可夫链。

一般的随机游走模型的转移矩阵两部分的线性组合组成:

  • 一部分是有向图的基本转移矩阵M,表示从一个结点到其连出的所有结点的转移概率相等
  • 另一部分是完全随机的转移矩阵,表示从任意一个结点到任意一个结点的转移概率都是1/n,线性组合系数为阻尼因子 d ( 0 ≤ d ≤ 1 ) d(0≤d≤1) d0d1

这个一般随机游走的马尔可夫链存在平稳分布,记作 R。

定义平稳分布向量R为这个有向图的一般PageRank。R由公式 R = d M R + 1 − d n 1 R= dMR+\frac{1-d}{n} \bf1 R=dMR+n1d1 决定, 1 \bf 1 1 是所有分量为 1 的 n 维向量

P R ( v i ) = d ( ∑ v j ∈ M ( v i ) P R ( v j ) L ( v j ) ) + 1 − d n , i = 1 , 2 , ⋯   , n P 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, n PR(vi)=dvjM(vi)L(vj)PR(vj)+n1d,i=1,2,,n

一般PageRank的定义意味着互联网浏览者:

  • 在任意一个网页上,浏览者或者以概率 d 决定按照超链接随机跳转,这时以等概率从连接出去的超链接跳转到下一个网页
  • 或者以概率(1-d)决定完全随机跳转,这时以等概率1/n跳转到任意一个网页
  • 第二个机制保证从没有连接出去的超链接的网页也可以跳转出。这样可以保证平稳分布,即一般PageRank的存在

2. PageRank 的计算

包括迭代算法幂法代数算法。常用的方法是 幂法

2.1 迭代算法

输入:含有 n 个结点的有向图,转移矩阵 M,阻尼因子 d,初始向量 R0

输出:有向图的 PageRank 向量 R

  1. t = 0 t=0 t=0
  2. 计算 R t + 1 = d M R t + 1 − d n 1 R_{t+1} = dMR_t+\frac{1-d}{n}\bf1 Rt+1=dMRt+n1d1
  3. 如果 R t + 1 R_{t+1} Rt+1 R t R_t Rt 充分接近,令 R = R t + 1 R=R_{t+1} R=Rt+1,停止迭代
  4. 否则,令 t = t + 1 t=t+1 t=t+1,执行步 2

2.2 幂法

输入:含有 n 个结点的有向图,转移矩阵 M,系数 d,初始向量 x0,计算精度 ε \varepsilon ε

输出:有向图的 PageRankR

  1. t = 0 t=0 t=0,选择初始向量 x 0 x_0 x0
  2. 计算有向图的一般转移矩阵 A , A = d M + 1 − d n E A=dM+\frac{1-d}{n}\bf E A=dM+n1dE E \bf E E 是所有元素为1的n阶方阵
  3. 迭代并规范化结果向量
    y t + 1 = A x t y_{t+1} = Ax_t yt+1=Axt
    x t + 1 = y t + 1 ∣ ∣ y t + 1 ∣ ∣ \quad \quad x_{t+1} = \frac{y_{t+1}}{||y_{t+1}||} xt+1=yt+1yt+1
  4. ∣ ∣ x t + 1 − x t ∣ ∣ < ε ||x_{t+1}-x_t|| < \varepsilon xt+1xt<ε 时,令 R = x t R=x_t R=xt,停止迭代
  5. 否则,令 t = t + 1 t=t+1 t=t+1,执行步 3
  6. 对 R 进行规范化处理,使其表示概率分布

2.3 代数算法

代数算法 通过一般转移矩阵逆矩阵计算求有向图的一般 PageRank

按照PR的一般定义: R = d M R + 1 − d n 1 R=d M R+\frac{1-d}{n} \mathbf{1} R=dMR+n1d1
于是有:
( I − d M ) R = 1 − d n 1 (I-d M) R=\frac{1-d}{n} \mathbf{1} (IdM)R=n1d1
R = ( I − d M ) − 1 1 − d n 1 R=(I-d M)^{-1} \frac{1-d}{n} \mathbf{1} R=(IdM)1n1d1
这里 I \bf I I 是单位矩阵。
0 < d < 1 0<d<1 0<d<1 时,上面方程的解存在且唯一
可以通过求逆矩阵 ( I − d M ) − 1 (I-d M)^{-1} (IdM)1 得到有向图的一般 PageRank

转载地址:https://michael.blog.csdn.net/article/details/105961557 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:LeetCode 1110. 删点成林(二叉树递归)
下一篇:LeetCode 529. 扫雷游戏(广度优先搜索BFS/深度优先搜索DFS)

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月14日 14时01分11秒