文章目录
- 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∑nPR(vi)=1PR(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−d1 决定,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
- 令 t=0t=0t=0
- 计算 Rt+1=dMRt+1−dn1R_{t+1} = dMR_t+\frac{1-d}{n}\bf1Rt+1=dMRt+n1−d1
- 如果 Rt+1R_{t+1}Rt+1 与 RtR_tRt 充分接近,令 R=Rt+1R=R_{t+1}R=Rt+1,停止迭代
- 否则,令 t=t+1t=t+1t=t+1,执行步
2
2.2 幂法
输入:含有 n 个结点的有向图,转移矩阵 M,系数 d,初始向量 x0,计算精度 ε\varepsilonε
输出:有向图的 PageRankR
- 令 t=0t=0t=0,选择初始向量 x0x_0x0
- 计算有向图的一般转移矩阵 A ,A=dM+1−dnEA=dM+\frac{1-d}{n}\bf EA=dM+n1−dE,E\bf EE 是所有元素为1的n阶方阵
- 迭代并规范化结果向量
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 - 当 ∣∣xt+1−xt∣∣<ε||x_{t+1}-x_t|| < \varepsilon∣∣xt+1−xt∣∣<ε 时,令 R=xtR=x_tR=xt,停止迭代
- 否则,令 t=t+1t=t+1t=t+1,执行步
3
- 对 R 进行规范化处理,使其表示概率分布
2.3 代数算法
代数算法 通过一般转移矩阵
的逆矩阵
计算求有向图的一般 PageRank
按照PR的一般定义:R=dMR+1−dn1R=d M R+\frac{1-d}{n} \mathbf{1}R=dMR+n1−d1
于是有:
(I−dM)R=1−dn1(I-d M) R=\frac{1-d}{n} \mathbf{1} (I−dM)R=n1−d1
R=(I−dM)−11−dn1R=(I-d M)^{-1} \frac{1-d}{n} \mathbf{1}R=(I−dM)−1n1−d1
这里 I\bf II 是单位矩阵。
当 0<d<10<d<10<d<1 时,上面方程的解存在且唯一
可以通过求逆矩阵 (I−dM)−1(I-d M)^{-1}(I−dM)−1 得到有向图的一般 PageRank