PageRank算法概述
PageRank是由LarryPage命名的一个算法,它的作用是粗略的计算网页的排名。它的一个潜在假设:越重要的网
站,那么从其他网站得到的链接也越多。它在加上阻尼系数的基础上有两个公式:
(1)
(2)
文献1说明了,Page和 Brin的公式(2)错误的把全部的网页看成是一个概率分布。所以一般用公式(1)
现在把它写成迭代的形式,如下:
(3)
我们让:
(4)
那么公式就变成如下:
(5)
其中d是阻尼系数(默认设置为0.85),是如果i和j没有链接,那么为0,
而且(也就是说,先把之间的链接数填上,之后对列进行归一化。)
现在用过一个列子来进行说明。
假设网页A,B,C和D关系如下:
步骤1:找出链接关系
步骤2:对列归一化
步骤3:那么
下面通过matlab来进行迭代:
%迭代公式:
% R = A+d*B*R
R=[1/4;1/4;1/4;1/4];
A=[0.15;0.15;0.15;0.15]/4;
B=[0 1 1 1
0 0 0 0
0 0 0 0
0 0 0 0];
for i = 1:100
R = A +0.85*B*R;
disp(i)
disp(R)
end
结果:
...
98
0.1331
0.0375
0.0375
0.0375
99
0.1331
0.0375
0.0375
0.0375
100
0.1331
0.0375
0.0375
0.0375
最终的结果Pr(A)=0.1331,
Pr(B)=0.0375,Pr(C)=0.0375,Pr(D)=0.0375
参考文献
1、http://infolab.stanford.edu/pub/papers/google.pdf
2、https://en.wikipedia.org/wiki/PageRank