网络蜘蛛程序的设计与实现(四)PageRank揭密

来源:互联网 发布:怎么批量注册淘宝小号 编辑:程序博客网 时间:2024/06/05 07:14

PageRank 的原理类似于科技论文中的引用机制:谁的论文被引用次数多,谁就是权威。说的更白话一点:张三在谈话中提到了张曼玉,李四在谈话中也提到张曼玉,王五在谈话中还提到张曼玉,这就说明张曼玉一定是很有名的人。在互联网上,链接就相当于“引用”,在B网页中链接了A,相当于B在谈话时提到了A,如果在C、D、 E、F中都链接了A,那么说明A网页是最重要的,A网页的PageRank值也就最高。

      如何计算PageRank值有一个简单的公式:

      其中:系数为一个大于0,小于1的数。一般设置为0.85。网页1、网页2至网页N表示所有链接指向A的网页。
      由以上公式可以看出三点:

      1、链接指向A的网页越多,A的级别越高。即A的级别和指向A的网页个数成正比,在公式中表示,N越大, A的级别越高;

      2、链接指向A的网页,其网页级别越高, A的级别也越高。即A的级别和指向A的网页自己的网页级别成正比,在公式中表示,网页N级别越高, A的级别也越高;

      3、链接指向A的网页,其链出的个数越多,A的级别越低。即A的级别和指向A的网页自己的网页链出个数成反比,在公式中现实,网页N链出个数越多,A的级别越低。

       每个网页有一个PageRank值,这样形成一个巨大的方程组,对这个方程组求解,就能得到每个网页的PageRank值。互联网上有上百亿个网页,那么这个方程组就有上百亿个未知数,这个方程虽然是有解,但计算毕竟太复杂了,不可能把这所有的页面放在一起去求解的。对具体的计算方法有兴趣的朋友可以去参考一些数值计算方面的书。

      总之,PageRank有效地利用了互联网所拥有的庞大链接构造的特性。从网页A导向网页B的链接,用Google创始人的话讲,是页面A对页面B的支持投票,Google根据这个投票数来判断页面的重要性,但Google除了看投票数(链接数)以外,对投票者(链接的页面)也进行分析。「重要性」高的页面所投的票的评价会更高,因为接受这个投票页面会被理解为「重要的物品」。从新浪、雅虎、微软的首页都有我网页的三个链接的话,可能比我在其他网站找三十个链接还强。如果还有人不理解这个原理,就去想想有句成语叫:三人成虎。如果有三个人都说北京大街上有老虎,那么许多人会认为有老虎,如果这三个人都是国家领导人的话,那么所有人都会认为北京大街上有老虎。

计算PageRank

在学术文献中的引用理论已经被应用到网络中了,大部分是通过对指向某页的引用或链接计数。这的确对一个网页的重要性或质量给出了一些近似值。PageRank扩展了这种思想,对指向网页的链接并非平等地计数,并且将网页上的链接数标准化。PageRank的定义如下:

我们假设有网页T1…Tn指向(例如:引用)网页A。系数d是值在0 到1之间的抑制因子。我们通常将它设为0.85。关于系数d的更多细节在下一节。同时C(A)定义为从网页A指出的链接数。网页A的PageRank值如下:

PR(A) = (1 - d) + d (PR(T1) / C(T1) + … + PR(Tn) / C(Tn))

注意所有的PageRank在各网页中形成概率分布,所以所有网页的PageRank的和会是1。

PageRank或PR(A)可用简单的迭代算法来计算,对应于规格化后的网络链接矩阵的主特征向量。并且,在一个中等规模的工作站上计算2千6百万网络页面的PageRank只需要几个小时。

 

直观理由

PageRank可以被认为是用户行为的模型。我们假设假设有一个“随机冲浪者”,给他一个随机的网页,他不停地点击链接,从不点“后退”,但是最终会厌烦,然后从另外一个随机网页上再开始。这个随机冲浪者访问某一网页的概率就是它的PageRank。而抑制因子d就是随机冲浪者在每一个页面上因厌烦而请求另一随机页面的概率。一个重要的变体是只将抑制因子d加在一个单一的页面上,或者一组页面上。这样就带来了可定制性,并且使得故意误导系统而得到较高的排名的行为变得几乎不可能。我们还有许多其它扩展的PageRank算法。
另一个直观理由是如果一个网页有很多网页指向它,或者有一些PageRank值很高的页面指向它,这个网页的PageRank值就会很高。直觉上来讲,一个被网络上到处引用的页面应该是值得一看的。并且,有一些可能只有一个比如从Yahoo!主页上来的引用的网页同样也是只得一看的。如果一个网页质量不高,或者就是个死链,Yahoo!主页是不太可能会链接它的。PageRank通过在网络链接结构中递归地传播权重而同时处理了这两个因素和两者之间的所有情况。

原创粉丝点击