use*_*496 1 algorithm pagerank web-crawler
当我计算一组已爬网域的页面排名时,使用0.85的阻尼因子.正如许多页面排名论文中所提到的,页面冲突的总和应该收敛到1.但无论我做了多少迭代,它似乎都收敛于0.90xxx.如果我将阻尼系数降低到0.5,我显然会更接近1.
页面排名总和收敛于0.90是不是很糟糕,这通常意味着什么?
是的,这很糟糕,因为它表明您的实施中存在错误.Pagerank给出了一个概率空间,它必须总和为一个基本的健全性检查.
我对问题的猜测是你没有处理'sinks' - 没有外向链接的节点.
处理接收器的常用方法是:
考虑以下玩具示例:2页,A,B.B,B的链接指向任何内容.得到的矩阵是:
W=
0 1
0 0
Run Code Online (Sandbox Code Playgroud)
现在,使用d = 0.85,您可以得到以下等式:
v = 0.85* W'v + 0.15*[1/2,1/2]
v1 = 0.85* (0*v1+0*v2) + 0.15*1/2 = 0.15*1/2 = 0.075
v2 = 0.85*(1*v1 + 0*v2) + 0.15/2 = 0.85v1 + 0.075 = 0.006375 + 0.075 = 0.13875
Run Code Online (Sandbox Code Playgroud)
总和不是1.
但是,如果您处理接收器,在建议的方法之一(让我们检查方法(1)),您将得到:
W =
0 1
1 0
Run Code Online (Sandbox Code Playgroud)
您现在将获得一组方程式:
v = 0.85* W'v + 0.15*[1/2,1/2]
v1 = 0.85* (0*v1+1*v2) + 0.15*1/2 = 0.85v2 + 0.075
v2 = 0.85*(1*v1 + 0*v2) + 0.15/2 = 0.85v1 + 0.075 (/0.85)-> 1/0.85 * v2 = v1 + 0.075/0.85
-> (add 2 equations)
1/0.85*v2 + v1 = 0.85v2 + 0.075 + v1 + 0.075/0.85
-> (approximately)
0.326*v2 = 0.163
v2 = 0.5
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,通过使用此方法,我们得到了一个概率空间,现在,正如预期的那样,所有节点的页面排名总和为1.