PageRank 解释

PageRank 解释

1 核心思想

R ( i ) = ∑ j ∈ B ( i ) R ( j ) (1) R(i)=\sum_{j \in B(i)} R(j) \tag{1} R(i)=jB(i)R(j)(1)

​ 其中, R ( i ) R(i) R(i) 表示 i i i 的PageRank, B ( i ) B(i) B(i) 表示所有指向 i i i 的网页。

​ 公式 ( 1 ) (1) (1) 的意思是一个网页的重要性等于指向它的所有网页的重要性相加之和。粗看之下,公式 ( 1 ) (1) (1) 将核心思想准确地表达出来了。但仔细观察就会发现,公式 ( 1 ) (1) (1) 有一个缺陷:无论J有多少个超链接,只要 j j j 指向 i i i i i i 都将得到与 j j j 一样的重要性。当 j j j 有多个超链接时,这个思想就会造成不合理的情况。例如:一个新开的网站 N N N 只有两个指向它的超链接,一个来自著名并且历史悠久的门户网站 F F F ,另一个来自不为人知的网站 U U U 。根据公式 ( 1 ) (1) (1) ,就会得到 N N N F F F 更优质的结论。这个结论显然不符合人们的常识。

弥补这个缺陷的一个简单方法是当 j j j 有多个超链接(假设个数为 N N N ),每个链接得到的重要性为 R ( j ) N \frac{R(j)}{N} NR(j)。于是公式 ( 1 ) (1) (1) 就变成公式 ( 2 ) (2) (2)
R ( i ) = ∑ j ∈ B ( i ) R ( j ) N ( j ) (2) R(i)=\sum_{j \in B(i)} \frac{R(j)}{N(j)} \tag{2} R(i)=jB(i)N(j)R(j)(2)
​ 其中 N ( i ) N(i) N(i) 表示 j j j 页面的超链接数。

在这里插入图片描述

图2.来自Lawrence Page的文章

​ 从图2可以看出,如果要得到N比F更优质的结论,就要求N得到很多重要网站的超链接或者海量不知名网站的超链接。而这是可接受的。因此可以认为公式 ( 2 ) (2) (2) 将核心思想准确地表达出来了。为了得到标准化的计算结果,在公式 ( 2 ) (2) (2) 的基础上增加一个常数 c c c ,得到公式 ( 3 ) (3) (3)
R ( i ) = c ∑ j ∈ B ( i ) R ( j ) N ( j ) (3) R(i)=c\sum_{j \in B(i)} \frac{R(j)}{N(j)}\tag{3} R(i)=cjB(i)N(j)R(j)(3)

2 实例

​ 由公式 ( 3 ) (3) (3) 可知, PageRank 是递归定义的。换句话就是要得到一个页面的 PageRank ,就要先知道另一些页面的 PageRank 。因此需要设置合理的 PageRank 初始值。不过,如果有办法得到合理的PageRank初始值,还需要这个算法吗?或者说,这个严重依赖于初始值的算法有什么意义吗?

​ 依赖于合理初始值的 PageRank 算法是没意义的,那么不依赖于初始值的 PageRank 算法就是有意义的了。也就是说,如果存在一种计算方法,使得无论怎样设置初始值,最后都会收敛到同一个值就行了。要做到这样,就要换一个角度看问题,从线性代数的角度看问题。

​ 将页面看作节点,超链接看作有向边,整个互联网就变成一个有向图了。此时,用邻接矩阵 M M M 表示整个互联网,若第 i i i 个页面有存在到第 j j j 个页面的超链接,那么矩阵元素 m [ i ] [ j ] = 1 m[i][j]=1 m[i][j]=1,否则 m [ i ] [ j ] = 0 m[i][j]=0 m[i][j]=0

在这里插入图片描述

图3. 一个例子

对于图3有:
M = [ 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 ] M = \begin{bmatrix} 0 & 1 & 1 & 0\\0 & 0 & 0 & 1\\1 & 0 & 0 & 0\\1 & 1 & 1 & 0\\ \end{bmatrix} M=0011100110010100
观察矩阵M可发现, M M M 的第 i i i 行表示第 i i i 个网页指向的网页, M M M 的第 j j j 列表示指向 j j j 的网页。如果将 M M M 的每个元素都除于所在行的全部元素之和,然后再将 M M M 转置(交换行和列),得到 M T M^\mathrm{ T } MT M T M^\mathrm{ T } MT 的每一行的全部元素之和不就正好是公式 ( 3 ) (3) (3) 中的 吗?例如图3可以得到这样的矩阵:
M T = [ 0 0 1 1 3 1 2 0 0 1 3 1 2 0 0 1 3 0 1 0 0 ] M^\mathrm{T} = \begin{bmatrix}0 & 0 & 1 & \frac{1}{3} \\\frac{1}{2} & 0 & 0 & \frac{1}{3}\\\frac{1}{2} & 0 & 0 & \frac{1}{3}\\0 & 1 & 0 & 0\\\end{bmatrix} MT=021210000110003131310
R R R 看作是一个 N N N 1 1 1 列的矩阵,公式 ( 3 ) (3) (3) 变为公式 ( 4 ) (4) (4)
R = c M T R (4) R=cM^\mathrm{T}R \tag{4} R=cMTR(4)
在公式 ( 4 ) (4) (4) 中,R可以看作 C M T CM^\mathrm{T} CMT 的特征向量,其对应的特征值为 1 c \frac{1}{c} c1 (看不明白这句话,可以回忆下线性代数中对特征向量的定义——对于矩阵 A A A ,若存在着列向量 X X X 和一个数 c c c ,使得 A X = c X AX=cX AX=cX ,则 X X X 称为 A A A 的特征向量, c c c 称为 A A A 的特征值)。幂法 (power method) 计算主特征向量与初始值无关,因此只要把 R R R 看作主特征向量计算,就可以解决初始值的合理设置问题。

幂法得到的结果与初始值无关,是因为最终都会收敛到某个值。因此使用幂法之前,要确保能够收敛。但是,在互联网的超链接结构中,一旦出现封闭的情况,就会使得幂法不能收敛。所谓的封闭是指若干个网页互相指向对方,但不指向别的网页,具体的例子如图4所示:

在这里插入图片描述

图4. 来自Soumya Sanyal的PPT

上图4个绿色网页就是封闭情况。这种情况会使得这些网页的 PageRank 在计算的时候不断地累加,从而使得结果不能收敛。仔细研究就会发现红色网页的 PageRank 给了绿色网页后,绿色网页就将这些 PageRank 吞掉了。 Larry Page 将这种情况称为 Rank Sink 。

如果沿着网页的链接一直点下去,发现老是在同样的几个网页中徘徊,怎么办?没错,把当前页面关掉,再开一个新的网页。上述情况正好与 Rank Sink 类似,也就意味着可以借鉴这个思想解决 Rank Sink 。因此,在公式 ( 3 ) (3) (3) 中的基础上加一个逃脱因子 E E E ,得到:
R ( i ) = c ∑ j ∈ B ( i ) R ( j ) N ( j ) + c E ( i ) (5) R(i)=c \sum_{j \in B(i)} \frac{R(j)}{N(j)}+c E(i) \tag{5} R(i)=cjB(i)N(j)R(j)+cE(i)(5)
​ 其中, E ( i ) E(i) E(i) 表示第 i i i 个网页的逃脱因子

​ 将公式 ( 5 ) (5) (5) 变成矩阵形式,可得:
R = c M T R + c E = c ( M T R + E ) R = c M^\mathrm{T} R + cE = c( M^\mathrm{T} R + E ) R=cMTR+cE=c(MTR+E)
​ 其中,列向量 R R R 的 1 范数(即R的全部矩阵元素相加)为 1 ,将上式重写为:
R = C ( M T + E × 1 ) R (6) R = C( M^\mathrm{T} + E \times 1 ) R\tag{6} R=C(MT+E×1)R(6)

​ 其中,1 是指 1 行 N N N 列的行向量,且每个元素都是 1 , 1 1 1 是指 1 行 N N N 列的行向量,且每个元素都是1, 在公式 ( 6 ) (6) (6) 中,只要将 R R R 看作 ( M T + E × 1 ) (M^\mathrm{T} + E \times 1) (MT+E×1) 的特征向量,就可以同时解决初始值设置问题和封闭的情况。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值