首先转载一篇非常棒的学习资料深入探讨pagerank(二)
PageRank的核心思想有2点:
1.如果一个网页被很多其他网页链接到的话说明这个网页比较重要,也就是pagerank值会相对较高;
2.如果一个pagerank值很高的网页链接到一个其他的网页,那么被链接到的网页的pagerank值会相应地因此而提高。
网页之间的跳转可视为是马尔科夫链,关键是找到转移矩阵,这样迭代一定次数后状态矩阵收敛即可得到最终结果。模拟简单的网页跳转过程如下:
即最终BCD比较重要,直观上也是如此。
pagerank算法描述
简单的PageRank算法存在两个重要的数据结构,ranks(每一个url的权重),links(url之间的指向关系)
S1:将每一个url的权重初始化为1;
S2:每一次迭代,将每一个url的权重贡献(权重/指向URL的个数)发送给邻居;
S3:对于每一个url,计算contribs=sum(收到的权重贡献),重新计算rank=0.15+0.85*contribs
S4:若干次迭代权重趋于稳定即为每个url的最终权重