PageRank算法初探

来源:互联网 发布:uo网络创世纪 编辑:程序博客网 时间:2024/05/11 00:30

PageRank算法初探

1、算法产生

PageRank算法由Segey Brin和Larry Page在1998年发表在WWW7。该算法的高性能和易使用等特点,和其他的搜索系统相比质量更高。因此,谷
歌成为世界上最常用的搜索引擎有很大一部分是基于此。

他们借鉴了当时学术界评判论文重要性的通用方法,根据论文的引用次数。将这种思路映射到网页的排名,如果一个网页有很多的网页指向他,那么这个网页就更重要(具有更大的PageRank值)。一张简单的概念图

2、算法原理

把网页看做是一个有向图G =(E, V),其中V是顶点或节点的集合,即所有页面的集合,E是有向图的边,即网页中的超链接。web中所有的页面数是n(即n=|V|),某个页面page(i)的pagerank值定义为

如果某个网络的连通情况如下

可以想象一个人在节点A时,打开B和C节点的概率是一样的都是1/2,因此下面方程组

PR(A) = PR(C)/2PR(B) = PR(A)/3 + PR(D)/2PR(C) = PR(A)/3 + PR(D)/2PR(D) = PR(A)/3 + PR(B) + PR(C)/2

则该方程组的过渡矩阵(transition matrix)为M

然后初始时,由于每个网页被访问的概率是一样的,都是1/n,其中n为网页中的页面数。另外,一般情况下,所有网页的PR值之和是1,这样可以很好的反应每个页面最终被访问的概率。因此页面的rank向量为v

第一次PR = M * V,之后迭代计算 PR = M * PR,直至收敛,这个例子中收敛的结果是

然而,我们再考虑另一种情况,互联网中一个页面对自己有出链,或者是几个页面形成一个循环圈,在不断的迭代过程中,这一个或几个页面的PR值只增不减,显然是不合理的。为了解决这个问题,我们可以想象一个随机浏览网页的人是不可能一直被循环的网页困住。假设他以一定的概率 d 跳转到每一个网页,于是上面的例子中

PR(A) = d*( PR(C)/2 ) +(1-d)/4

因此,一般情况下,一个网页的PR值计算如下:

其中 d 称为阻尼系数(damping factor),被设置在(0 - 1)之间,d = 0.85是常用的。L(u)是网页u的出链数目,N表示节点的总数。按照上面公式,就可以计算每个页面的PR值,当不断迭代趋于平稳的时候就是最终结果。

3、算法背后的数学原理

  • Perron-Frobenius定理
  • markov过程

参考资料

  • 浅析PageRank算法
  • PageRank算法从原理到实现
  • PageRank算法复杂度如何
  • A Survey of Google’s PageRank
  • Top 10 algorithm in data mining
原创粉丝点击