目录
- PageRank 算法是图的链接分析 (link analysis) 的代表性算法,属于图数据上的无监督学习方法。PageRank 算法最初作为互联网网页重要度的计算方法,被用于谷歌搜索引擎的网页排序。事实上,PageRank 可以定义在任意有向图上,后来被应用到社会影响力分析、文本摘要等多个问题
PageRank 的定义
前置知识
- 马尔可夫链 (Markov Chains):与 PageRank 算法最相关的小节为 “平稳分布 (steady-state vector / equilibrium vector)”、“Random Walks on Graphs”、“平稳分布”
基本想法
- PageRank 算法的基本想法是在有向图上定义一个随机游走模型,即一阶马尔可夫链,描述随机游走者沿着有向图随机访问各个结点的行为。在一定条件下,极限情况访问每个结点的概率收敛到平稳分布,这时各个结点的平稳概率值就是其 PageRank 值,表示结点的重要度。PageRank 是递归定义的, PageRank 的计算可以通过迭代算法进行。先假设一个初始分布,通过迭代,不断计算所有网页的 PageRank 值,直到收敛为止。PageRank 值依赖于网络的拓扑结构,一旦网络的拓扑确定, PageRank 值就确定
- e.g. 假设互联网是一个有向图,在其基础上定义随机游走模型,即一阶马尔可夫链,表示网页浏览者在互联网上随机浏览网页的过程。假设浏览者在每个网页依照连接出去的超链接以等概率跳转到下一个网页,并在网上持续不断进行这样的随机跳转,这个过程形成一阶马尔可夫链。PageRank 表示这个马尔可夫链的平稳分布。每个网页的 PageRank 值就是平稳概率
- e.g. 假设互联网是一个有向图,在其基础上定义随机游走模型,即一阶马尔可夫链,表示网页浏览者在互联网上随机浏览网页的过程。假设浏览者在每个网页依照连接出去的超链接以等概率跳转到下一个网页,并在网上持续不断进行这样的随机跳转,这个过程形成一阶马尔可夫链。PageRank 表示这个马尔可夫链的平稳分布。每个网页的 PageRank 值就是平稳概率
PageRank 的基本定义
基础知识补充
(1) 周期图:假设 k k k 是一个大于 1 的自然数,如果从有向图的一个结点出发返回到这个结点的路径的长度都是 k k k 的倍数,那么称这个结点为周期性结点。如果一个有向图不含有周期性结点,则称这个有向图为非周期性图 (aperiodic graph),否则为周期性图
(2) 随机游走模型:
马尔可夫链平稳分布定理
- 根据马尔可夫链平稳分布定理,强连通且非周期的有向图上定义的随机游走模型 (马尔可夫链),在图上的随机游走当时间趋于无穷时状态分布收敛于唯一的平稳分布
注意:有向图是强连通且非周期性的,这保证了马尔可夫链对应的随机矩阵是正则的,因此马尔可夫链存在唯一平稳分布且状态序列收敛于该平稳分布
- 显然有
这里 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 连出的有向边的个数 (第三个公式由稳态分布的定义 R = M R R=MR R=MR 可得)
- PageRank 的基本定义是理想化的情况,在这种情况下, PageRank 存在,而且可以通过不断迭代求得 PageRank 值。但一般的有向图未必满足强连通且非周期性的条件,此时马尔可夫链的状态序列未必会收敛到平稳分布,所以 PageRank 的基本定义不适用
- 比如,在下图中,网页 7 和网页 4 并没有连接出去的超链接,也就是说从这些网页无法跳转到其他网页,因此随着时间步数的增加,最终一定会停留在状态 4 或状态 7
- 比如,在下图中,网页 7 和网页 4 并没有连接出去的超链接,也就是说从这些网页无法跳转到其他网页,因此随着时间步数的增加,最终一定会停留在状态 4 或状态 7
PageRank 的一般定义
- 为了保证马尔可夫链一定存在唯一的平稳分布,且当
k
→
∞
k\rightarrow\infty
k→∞ 时,状态序列
{
x
k
}
\{ x_k \}
{xk} 收敛于该平稳分布,只需保证转移矩阵是正则的 (regular),因此可以在基本定义的基础上导入平滑项:
- 假设考虑另一个完全随机游走的模型,其转移矩阵
K
K
K 的元素全部为
1
/
n
1/n
1/n,也就是说从任意一个结点到任意一个结点的转移概率都是
1
/
n
1/n
1/n。设由基本定义导出的转移矩阵为
M
M
M,则两个转移矩阵的线性组合又构成一个新的正则转移矩阵
G
G
G,它被称为 Google Matrix
G = d M + ( 1 − d ) K G=dM+(1-d)K G=dM+(1−d)K其中 0 ≤ d ≤ 1 0\leq d\leq 1 0≤d≤1 为阻尼因子 (damping factor), ( 1 − d ) K (1-d)K (1−d)K 即为平滑项 (阻尼因子 d d d 取值由经验决定; Google is said to use a value of d = 0.85 d=0.85 d=0.85 for their PageRank calculations)。 根据转移矩阵 G G G 可以定义一个新的马尔可夫链。由于 G G G 是正则矩阵,这个马尔可夫链一定存在唯一的平稳分布,且当 k → ∞ k\rightarrow\infty k→∞ 时,状态序列 { x k } \{ x_k \} {xk} 收敛于该平稳分布 - 加入平滑项后,马尔可夫链可以看作是对以下过程进行建模:互联网浏览者按照以下方法在网上随机游走: 在任意一个网页上,浏览者或者以概率 d d d 决定按照超链接随机跳转,这时以等概率从连接出去的超链接跳转到下一个网页; 或者以概率 ( 1 − d ) (1 - d) (1−d) 决定完全随机跳转,这时以等概率 1 / n 1 /n 1/n 跳转到任意一个网页
- 假设考虑另一个完全随机游走的模型,其转移矩阵
K
K
K 的元素全部为
1
/
n
1/n
1/n,也就是说从任意一个结点到任意一个结点的转移概率都是
1
/
n
1/n
1/n。设由基本定义导出的转移矩阵为
M
M
M,则两个转移矩阵的线性组合又构成一个新的正则转移矩阵
G
G
G,它被称为 Google Matrix
- 设加入平滑项后的平稳分布为
R
R
R,
R
R
R 即可看作有向图的一般 PageRank,它满足
R
=
P
R
R=PR
R=PR,即
R = d M R + 1 − d n 1 R=dMR+\frac{1-d}{n}\boldsymbol 1 R=dMR+n1−d1其中 1 \boldsymbol 1 1 是所有分量为 1 的 n n n 维向量。进而可以由上式写出每个结点的 PageRank 值:
这里 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 的计算
下面三种方法中,常用幂法
代数算法
迭代算法
幂法 (power method)
- 在 马尔可夫链 (Markov Chains) 这篇文章中提到,正则随机矩阵除 1 以外的所有特征值的绝对值都小于 1,也就是说, 1 1 1 为主特征值,稳态向量即为主特征向量 (dominant eigenvector)。这就使得我们可以使用幂法来求得稳态向量
It turns out that only between 50 and 100 iterations of the method are needed to get the steady-state vector q q q to the accuracy that Google needs for its rankings. It still takes days for Google to compute a new q q q, which it does every month.
Why PageRank Still Matters in 2021
- Just because there is no longer a toolbar that gives us a web page’s PageRank score doesn’t mean it is not still used.
- In fact, in 2017, Google’s Gary Illyes confirmed on Twitter that they were still using PageRank.
参考文献
- 《统计学习方法》
- L i n e a r Linear Linear a l g e b r a algebra algebra a n d and and i t s its its a p p l i c a t i o n s applications applications
- Everything You Need to Know about Google PageRank