《统计学习方法》(第二十一章)——PageRank算法

PageRank的定义

基本想法

  PageRank算法作为计算互联网网页重要程度的算法被提出,它定义网页集合上的一个函数,它对每个网页给出一个正实数,表示网页的重要程度,值越大重要程度就越大。
  假设互联网是一个有向图,在其基础上定义随机游走模型,即一阶马尔可夫链,表示网页浏览者在互联网上随机浏览网页的过程,假设浏览者在每个网页依照连接出去的超链接以等概率跳转到下一个网页,并在网页上持续不断进行这样的随机跳转,这个过程形成一阶马尔可分夫链,最后会收敛到一个固定值

有向图和随机游走模型

  • 随机游走模型
    给定一个含有n个结点的有向图,在有向图上定义随机游走模型,即一阶马尔可夫链,其中结点表述状态,有向边表示状态之间的转移,假设从一个节点到通过有向边相连的所有结点的转移概率相等,具体地,转移矩阵是一个n阶矩阵MMM
    M=[mij]n×nM=[m_{ij}]_{n×n}M=[mij]n×n
    iii行第jjj列的元素mijm_{ij}mij取值规则如下:如果节点jjjkkk个有向边连出,并且节点iii是其连出的一个结点,则mij=1km_{ij}=\frac{1}{k}mij=k1.否则mij=0m_{ij}=0mij=0
    ∑i=1nmij=1\sum\limits_{i=1}^nm_{ij}=1i=1nmij=1
    随机游走在某时刻ttt访问各个结点的概率分布就是马尔可夫链在时刻ttt的状态分布,可以用一个nnn维向量RtR_tRt表示,则
    Rt+1=MRtR_{t+1}=MR_tRt+1=MRt

PageRank的基本定义

  给定一个包含nnn个结点v1,v2,..,vnv_1,v_2,..,v_nv1,v2,..,vn的强联通且非周期的有向图,在有向图定义随机游走模型,即一阶马尔可分链,随机游走的特点是从一个节点到有有向边连出的所有结点的转移概率相等,转移矩阵为MMM,这个马尔可夫链具有平稳分布RRR
R=MRR=MRR=MR
平稳分布RRR称为这个有向图的PageRank,R的各个分量称为各个结点的PageRank值
R=[PR(v1)PR(v1)...PR(vn)](3) R= \left[ \begin{matrix} PR(v_1) \\ PR(v_1) \\ ... \\ PR(v_n) \end{matrix} \right] \tag{3} R=PR(v1)PR(v1)...PR(vn)(3)
其中
PR(vi)≥0PR(v_i)\ge0PR(vi)0
∑i=1nPR(vi)=1\sum\limits_{i=1}^nPR(v_i)=1i=1nPR(vi)=1
RP(vi)=∑vj∈M(vi)PR(vj)L(vj)RP(v_i)=\sum\limits_{v_j \in M(v_i)}\frac{PR(v_j)}{L(v_j)}RP(vi)=vjM(vi)L(vj)PR(vj)
M(vi)M(v_i)M(vi)表示指向结点viv_ivi的结点集合,L(vj)L(v_j)L(vj)表示结点vjv_jvj连出的有向边的个数

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

PageRank的一般定义

  给定一个含有nnn个结点的任意有向图,在有向图定义一个一般的随机游走模型,即一阶马尔可夫链。一般的随机游走模型的转移矩阵由两部分的线性组合组成,一部分是有向图的基本转移矩阵MMM,表示从从一个结点到其连出的所有结点的转移概率相等,另一部分是完全随机的转移矩阵,表示从任意一个结点到任意一个结点的转移概率为1n\frac{1}{n}n1,线性组合系数为阻尼因子d(1≤d≤1)d(1\le d \le 1)d(1d1)这个一般随机游走的马尔可夫链存在平稳分布,记作RRR定义平稳分布向量RRR为这个有向图的一般PageRank
R=dMR+1−dn1R=dMR+\frac{1-d}{n}\pmb1R=dMR+n1d111决定,其中1\pmb 1111是所有分量为1的n维向量.

PageRank的计算

迭代算法

输入:含有nnn个结点的有向图,转移矩阵MMM,阻尼因子ddd,初始向量R0R_0R0
输出:有向图PageRank的向量RRR
(1)(1)(1)t=0t=0t=0
(2)(2)(2)计算
Rt+1=dMRt+1−dn1R_{t+1}=dMR_t+\frac{1-d}{n}\pmb1Rt+1=dMRt+n1d111
(3)(3)(3)如果Rt+1R_{t+1}Rt+1RtR_tRt充分接近,令R=Rt+1R=R_{t+1}R=Rt+1,停止
(4)(4)(4)否则t=t+1t=t+1t=t+1转向(2)(2)(2)

幂法

任取初始向量x0x_0x0,构造如下的一个nnn维向量序列
x0,x1=Ax0,x2=Ax1,...,xk=Axk−1x_0,x_1=Ax_0,x_2=Ax_1,...,x_k=Ax_{k-1}x0,x1=Ax0,x2=Ax1,...,xk=Axk1
假设
∣λ1∣≥∣λ2∣≥...≥∣λn∣|\lambda_1|\ge|\lambda_2|\ge...\ge|\lambda_n|λ1λ2...λn
对应额线性无关特征向量
u1,u2,...,unu_1,u_2,...,u_nu1,u2,...,un

x0=a1u1+a2u2+...,+anunx_0=a_1u_1+a_2u_2+...,+a_nu_nx0=a1u1+a2u2+...,+anun
x1=a1Au1+a2Au2+...,+anAunx_1=a_1Au_1+a_2Au_2+...,+a_nAu_nx1=a1Au1+a2Au2+...,+anAun
xk=a1Aku1+a2Aku2+...,+anAkunx_k=a_1A^ku_1+a_2A^ku_2+...,+a_nA^ku_nxk=a1Aku1+a2Aku2+...,+anAkun
=a1λ1ku1+a2λ2ku2+...,+anλnkun=a_1\lambda_1^ku_1+a_2\lambda_2^ku_2+...,+a_n\lambda_n^ku_n=a1λ1ku1+a2λ2ku2+...,+anλnkun
=a1λ1k[u1+a2a1(λ2λ1)ku2+...+ana1(λnλ1)kun]=a_1\lambda_1^k[u_1+\frac{a_2}{a_1}(\frac{\lambda_2}{\lambda_1})^ku_2+...+\frac{a_n}{a_1}(\frac{\lambda_n}{\lambda_1})^ku_n]=a1λ1k[u1+a1a2(λ1λ2)ku2+...+a1an(λ1λn)kun]
当k充分大时
xk=a1λ1k[u1+ϵk]x_k=a_1\lambda_1^k[u_1+\epsilon_k]xk=a1λ1k[u1+ϵk]
xk→a1λ1ku1x_k\to a_1\lambda_1^ku_1xka1λ1ku1
xk≈a1λ1ku1x_k\approx a_1\lambda_1^ku_1xka1λ1ku1
xk+1≈a1λ1k+1u1x_{k+1}\approx a_1\lambda_1^{k+1}u_1xk+1a1λ1k+1u1
λ1≈xk+1,jxk,j\lambda_1\approx\frac{x_{k+1,j}}{x_{k,j}}λ1xk,jxk+1,j
在实际计算的时候,我们需要规范化
yt+1=Axty_{t+1}=Ax_tyt+1=Axt
xt+1=yt+1∣∣yt+1∣∣x_{t+1}=\frac{y_{t+1}}{||y_{t+1}||}xt+1=yt+1yt+1
其中
∣∣x∣∣||x||x为无穷范数
输入:含有n个结点的有向图,有向图转移矩阵为MMM,系数为ddd,初始向量x0x_0x0计算精度ϵ\epsilonϵ
输出:有向图的PageRankR
(1)(1)(1)t=0t=0t=0,选择初始向量x0x_0x0
(2)(2)(2)计算有向图的一般转移矩阵AAA
A=dM+1−dnEA=dM+\frac{1-d}{n}EA=dM+n1dE
(3)(3)(3)迭代并规范化结果
yt+1=Axty_{t+1}=Ax_tyt+1=Axt
xt+1=yt+1∣∣yt+1∣∣x_{t+1}=\frac{y_{t+1}}{||y_{t+1}||}xt+1=yt+1yt+1
(4)(4)(4)∣∣xt+1−xt∣∣<ϵ||x_{t+1}-x_t|| \lt \epsilonxt+1xt<ϵ,令R=xtR=x_tR=xt,停止
(5)(5)(5)否则t=t+1t=t+1t=t+1执行(3)(3)(3)
(6)(6)(6)RRR进行规范化处理,使其表示概率分布

代数算法

按照定义
R=dMR+1−dn1R=dMR+\frac{1-d}{n}\pmb1R=dMR+n1d111

(I−dM)R=1−dn1(I-dM)R=\frac{1-d}{n}\pmb 1(IdM)R=n1d111
R=(I−dM)−11−dn1R=(I-dM)^{-1}\frac{1-d}{n}\pmb 1R=(IdM)1n1d111

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值