[转贴]Google的PageRank算法学习

[复制链接]
查看: 1857   回复: 4
发表于 2004-12-21 11:00:17 | 显示全部楼层 |阅读模式
1、Google PageRank(网页级别)介绍
    Google的核心软件称为 PageRank(网页级别),这是由Google创始人 Larry Page 和 Sergey Brin 在斯坦福大学开发出的一套用于网页评级的系统,网页级别(PageRank)是所有Google网络搜索工具的基础。
作为组织管理工具,网页级别(PageRank)利用了互联网独特的民主特性及其巨大的链接结构。实质上,当从网页 A 链接到网页 B 时,Google 就认为"网页 A 投了网页 B 一票"。Google 根据网页的得票数评定其重要性。然而,除了考虑网页得票数(即链接)的纯数量之外,Google 还要分析投票的网页。"重要"的网页所投出的票就会有更高的权重,并且有助于提高其它网页的"重要性"。重要的、高质量的网页会获得较高的网页级别。Google 在排列其搜索结果时,都会考虑每个网页的级别(PageRank)。当然,如果不能满足您的查询要求,网页级别(PageRank)再高对您来说也毫无意义。因此,Google 将网页级别(PageRank)与完善的文本匹配技术结合在一起,为您找到最重要、最有用的网页。Google 所关注的远不只是关键词在网页上出现的次数,它还对该网页的内容(以及该网页所链接的内容)进行全面检查,从而确定该网页是否满足您的查询要求。Google 以其复杂而全自动的搜索方法排除了任何人为因素对搜索结果的影响。虽然Google也在搜索结果旁刊登相关广告,但没人能花钱买到更高的网页级别(PageRank),从而保证了网页排名的客观公正。

google自己对于pagerank的解释如下:
PageRank Explained
PageRank relies on the uniquely democratic nature of the web by using its vast link structure as an indicator of an individual page's value.In essence, Google interprets a link from page A to page B as a vote, by page A, for page B. But, Google looks at more than the sheer volume of votes, or links a page receives; it also analyzes the page that casts the vote. Votes cast by pages that are themselves "important" weigh more heavily and help to make other pages "important."
Important, high-quality sites receive a higher PageRank, which Google remembers each time it conducts a search. Of course, important pages mean nothing to you if they don't match your query. So, Google combines PageRank with sophisticated text-matching techniques to find pages that are both important and relevant to your search. Google goes far beyond the number of times a term appears on a page and examines all aspects of the page's content (and the content of the pages linking to it) to determine if it's a good match for your query.

返回顶端

2、PageRank算法1 
PR(A) = (1-d) + d (PR(T1)/C(T1) + ... + PR(Tn)/C(Tn))
其中:PR(A):页面A的网页级别,
PR(Ti):页面Ti的网页级别,页面Ti链向页面A,
C(Ti):页面Ti链出的链接数量,
d:阻尼系数,取值在0-1之间.

由此可见,1)这个算法不以站点排序,页面网页级别由一个个独立的页面决定;2)页面的网页级别由链向它的页面的网页级别决定,但每个链入页面的贡献的值是不同的。如果Ti页面中链出越多,它对当前页面A的贡献就越小。A的链入页面越多,其网页级别也越高;3)阻尼系数的使用,减少了其它页面对当前页面A的排序贡献。

返回顶端

3、随机冲浪模型
    Lawrence Page 和 Sergey Brin 提出了用户行为的随机冲浪模型,来解释上述算法。他们把用户点击链接的行为,视为一种不关心内容的随机行为。而用户点击页面内的链接的概率,完全由页面上链接数量的多少决定的,这也是上面PR(Ti)/C(Ti)的原因。一个页面通过随机冲浪到达的概率就是链入它的别的页面上的链接的被点击概率的和。阻尼系数d的引入,是因为用户不可能无限的点击链接,常常因劳累而随机跳入另一个页面。d可以视为用户无限点击下去的概率,(1-d)则就是页面本身所具有的网页级别。

返回顶端

4、PageRank算法2(对算法1的修订)
PR(A) = (1-d) / N + d (PR(T1)/C(T1) + ... + PR(Tn)/C(Tn))
其中N是互联网上所有网页的数量

由此,所有页面的网页级别形成的一个概率分布,所有页面的网页级别之和是1。在算法1中,随机冲浪访问某个页面的概率由互联网的总页数决定,在算法2中,网页级别是一个页面被随机访问的期望值。
  以下讲解,皆基于算法1,主要是计算简单,因为不用考虑N的值。

返回顶端

5、PageRank的特性
    有页面的网页级别之和等于互联网的总页数。在网页数比较少的情况下,网页级别方程可以解出,而面对互联网上成亿的网页,再解方程是不可能的。


此处设阻尼系数为0.5,虽然Lawrence Page 和 Sergey Brin在实际将其设为0.85.
PR(A) = 0.5 + 0.5 PR(C)
PR(B) = 0.5 + 0.5 (PR(A) / 2)
PR(C) = 0.5 + 0.5 (PR(A) / 2 + PR(B))
解得:
PR(A) = 14/13 = 1.07692308
PR(B) = 10/13 = 0.76923077
PR(C) = 15/13 = 1.15384615
有:
PR(A)+PR(B)+PR(C)=3

返回顶端

6、迭代计算pagerank
    Google采用一种近似的迭代的方法计算网页的网页级别的,也就是先给每个网页一个初始值,然后利用上面的公式,循环进行有限次运算得到近似的网页级别。根据Lawrence Page 和 Sergey Brin公开发表的文章,他们实际需要进行100次迭代才能得到整个互联网的满意的网页级别值,这儿的例子只用了10多次就可以了。在迭代的过程中,每个网页的网页级别的和是收敛于整个网络的页面数的。所以,每个页面的平均网页级别是1,实际上的值在(1-d)和(dN+(1-d))之间。


迭代次数
PR(A)
PR(B)
PR(C)

0
1
1
1

1
1
0.75
1.125

2
1.0625
0.765625
1.1484375

3
1.07421875
0.76855469
1.15283203

4
1.07641602
0.76910400
1.15365601

5
1.07682800
0.76920700
1.15381050

6
1.07690525
0.76922631
1.15383947

7
1.07691973
0.76922993
1.15384490

8
1.07692245
0.76923061
1.15384592

9
1.07692296
0.76923074
1.15384611

10
1.07692305
0.76923076
1.15384615

11
1.07692307
0.76923077
1.15384615

12
1.07692308
0.76923077
1.15384615


返回顶端

7、Google搜索引擎的网页级别的实现
  有三个因素决定的网页的等级:网页特定性因素、入链锚的文本、网页级别。
  网页特定性因素包括网页的内容、标题及URL等。
  为提供检索结果,Google根据网页特定性因素和入链锚的文本计算出网页的IR值,这个值被检索项在页面中的位置和重要性加权,以决定网页和检索请求相关性。IR值和网页级别联合标志网页的基本重要程度,这两个值的联合方式有多种,但明显的是不能相加的。
  由于网页级别只对非特定的单个词的检索请求影响比较明显,对于由多个检索词构成的检索请求,内容相关性的分级标准的影响更大。

返回顶端

8、用Google工具条显示当前页面的网页级别(PAGERANK)
  Google工具条是Google公司开发的IE插件,需要从Google下载并安装。注意,显示网页级别的功能是其高级功能,这时会自动收集用户的信息,并会自动升级工具条。
  这个工具条显示的网页级别分为0-10共11级,如果根据理论用(Nd+(1-d))测算,假定d=0.85,则推测实际网级别的对数即为显示的级别,且对数的基数在6-7之间。
  参考文献1中给出了一个方法,可以不经过toolbar就可以取得网站主页的网页级别,可惜因为版本或别的原因,已经不可行。下面我根据提示在IE缓冲目录里找到http://xagoogle.com的获取URL.

http://216.239.33.104/search?cli ... ong%2E3322%2Eorg%2F


  我的主页的网页级别是0。 isaac和chedong的分别是5和4。

返回顶端

9、Google的目录服务可以显示网站的pagerank
此处级别分为7级。有人对两种级别进行了比较。 



PageRank算法学习<二>
返回顶端

1、入链对计算页面级别的影响
入链总是能增加当前页面的级别,尤其当前页与其下级页面构成回路时,这种贡献更大。如右图例,设ABCD各页初始级别为1,阻尼系数为0.5,PR(X)/C(X)=10。则易算出


PR(A) = 19/3 = 6.33
PR(B) = 11/3 = 3.67
PR(C) = 7/3 = 2.33
PR(D) = 5/3 = 1.67

如果A不在回路上,则只能得0.5*10=5的收益。
  阻尼系数越大,页面级别的收益越大,且整个回路上都能收到更大的收益(即入链收益更能平均地分布到各个回路页面上。针对上例,将阻尼系数改为0.75,则有

PR(A) = 419/35 = 11.97
PR(B) = 323/35 = 9.23
PR(C) = 251/35 = 7.17
PR(D) = 197/35 = 5.63

除回路上各个页面的级别值明显增大外,PR(A)/PR(D)的值敢明显减少了。
  入链对整个回路上所有页面的级别值的增加之和,可以由下面这个公式得出.

(d / (1-d)) × (PR(X) / C(X))

这个公式,可以由简单推导出。

返回顶端
2、出链对计算页面级别(pagerank)的影响
  增加出链不会影响整个web的总级别,但一个站点失去的级别值等于链到的站点的增加值之和。对于两个封闭的站点,从一个站点链上另一个站点时,增加的和减少的都是(d(/(1-d) × (PR(X) / C(X)).如果这两个站点互相链接,则此值减少。用随机冲浪模型可以解释这种现象,就是出链的增加,减少了用户访问站内页面的概率。举例如图,设阻尼系数为0.75,则


PR(A) = 0.25 + 0.75 PR(B)
PR(B) = 0.25 + 0.375 PR(A)
PR(C) = 0.25 + 0.75 PR(D) + 0.375 PR(A)
PR(D) = 0.25 + 0.75 PR(C)
得:
PR(A) = 14/23
PR(B) = 11/23
PR(C) = 35/23
PR(D) = 32/23
PR(A)+PR(B)=25/23
PR(C)+PR(D)=67/23
PR(A)+PR(B)+PR(C)+PR(D)=92/23=4



Page和Brin将这样的链接称为悬摆链,它链到页面没有出链。悬摆链对页面的级别计算产生负面影响。如例,阻尼系数为0.75.

 

 

 

PR(A) = 0.25 + 0.75 PR(B)
PR(B) = 0.25 + 0.375 PR(A)
PR(C) = 0.25 + 0.375 PR(A)
得:
PR(A) = 14/23
PR(B) = 11/23
PR(C) = 11/23
PR(A)+PR(B)+PR(C)=36/23<3


  据Page和Brin,Google在索引页面时,悬摆链的量很大,主要是由于限制robot.txt的限制及索引了一些没有链出的文件类型如PDF等。为消除这种负面影响,google在计算级别时,将此类链接从数据库里去掉,在计算完毕后,再单独计算悬摆链所链到页面。由此可见,PDF类的文件还是可以放心地在网上发布的。



、页面数量对pagerank的影响

  先看例子。阻尼系数为0.75,PR(X)/C(X)=10,则



PR(A) = 0.25 + 0.75 (10 + PR(B) + PR(C))
PR(B) = PR(C) = 0.25 + 0.75 (PR(A) / 2)
得:
PR(A) = 260/14
PR(B) = 101/14
PR(C) = 101/14
PR(A)+PR(B)+PR(C)=33;
增加页面D;
PR(A) = 0.25 + 0.75 (10 + PR(B) + PR(C) + PR(D))
PR(B) = PR(C) = PR(D) = 0.25 + 0.75 (PR(A) / 3)

PR(A) = 266/14
PR(B) = 70/14
PR(C) = 70/14
PR(D) = 70/14
PR(A)+PR(B)+PR(C)+PR(D)=34

增加页面后,所有页面的级别值之和增加了1,A页略有增加,而B、C则用大幅下降。
  再看右边的例子,假定同上。




PR(A) = 0.25 + 0.75 (10 + PR(C))
PR(B) = 0.25 + 0.75 × PR(A)
PR(C) = 0.25 + 0.75 × PR(B)
得:
PR(A) = 517/37 = 13.97
PR(B) = 397/37 = 10.73
PR(C) = 307/37 = 8.30


增加页面D:
PR(A) = 0.25 + 0.75 (10 + PR(D))
PR(B) = 0.25 + 0.75 × PR(A)
PR(C) = 0.25 + 0.75 × PR(B)
PR(D) = 0.25 + 0.75 × PR(C)
得:
PR(A) = 419/35 = 11.97
PR(B) = 323/35 = 9.23
PR(C) = 251/35 = 7.17
PR(D) = 197/35 = 5.63

增加页面后,所有页面级别增加了1,但每个页面的级别值减少了,这是由于新加页面分享了入链代来的值。从这个结果看,增加页面减少了已有页面的级别值,露了google算法青睐小站点的特点。当然,大站点也会因内容丰富而吸引其它站点的出链而得以级别值增加。

返回顶端

4、针对搜索引擎优化的级别分布
先看两个列子,阻尼系数为0.5,PR(X)/C(X)=10;



BC之间无链接时:
PR(A) = 0.5 + 0.5 (10 + PR(B) + PR (C))
PR(B) = 0.5 + 0.5 (PR(A) / 2)
PR(C) = 0.5 + 0.5 (PR(A) / 2)

PR(A) = 8
PR(B) = 2.5
PR(C) = 2.5
BC之间互相链接时:
PR(A) = 0.5 + 0.5 (10 + PR(B) / 2 + PR(C) / 2)
PR(B) = 0.5 + 0.5 (PR(A) / 2 + PR(C) / 2)
PR(C) = 0.5 + 0.5 (PR(A) / 2 + PR(B) / 2)
得:
PR(A) = 7
PR(B) = 3
PR(C) = 3

当BC间互链时,虽然减少了A的级别,但BC都增加了。这符合优化站点所有页面而非只主页的优化思路,因为只有每个页面的级别都提高了,当有检索词命中这些页面时,它们才能排在前面。这种优化的方法也很明显了,就是尽可能地在所有页面间平均分布入链的贡献,各低级页面要增加互链。  

返回顶端

5、出链连接技巧
    只要不影响易用性,尽可能地将所有出链集中在一个或几个低级页面中,可以有效地降低出链对页面级别计算的负面影响。看列子:阻尼系数为0.5,PR(X)/C(X)=10;



BCD都有出链时:
PR(A) = 0.5 + 0.5 (PR(B) / 2 + PR(C) / 2 + PR(D) / 2)
PR(B) = PR(C) = PR(D) = 0.5 + 0.5 (PR(A) / 3)
得:
PR(A) = 1
PR(B) = 2/3
PR(C) = 2/3
PR(D) = 2/3
出链集中于D时:
PR(A) = 0.5 + 0.5 (PR(B) + PR(C) + PR(D) / 4)
PR(B) = PR(C) = PR(D) = 0.5 + 0.5 (PR(A) / 3)
得:
PR(A) = 17/13
PR(B) = 28/39
PR(C) = 28/39
PR(D) = 28/39

从结果看,出链集中后,ABCD各页面的级别都上升了。

返回顶端

6、交换连接的特性
    链接交换增加了实施交换的页面的级别,却减少了其它页面的级别。如图,阻尼系数为0.5,PR(X)/C(X)=10;

交换前,
PR(A) = 4/3
PR(B) = 5/6
PR(C) = 5/6


PR(D) = 4/3
PR(E) = 5/6
PR(F) = 5/6
交换后;
PR(A) = 0.5 + 0.5 (PR(B) + PR(C) + PR(D) / 3)
PR(B) = PR(C) = 0.5 + 0.5 (PR(A) / 3)
PR(D) = 0.5 + 0.5 (PR(E) + PR(F) + PR(A) / 3)
PR(E) = PR(F) = 0.5 + 0.5 (PR(D) / 3)

PR(A) = 3/2
PR(B) = 3/4
PR(C) = 3/4
PR(D) = 3/2
PR(E) = 3/4
PR(F) = 3/4

这情况恰好与增加站内互链的效果相反。由此,当需要对主页进行针对某一关键词的优化时,才取交换链接是可取的。
  例中级别值的重新分布,更基本的前提是两个站点中参考交换的页面互相为对方提供的级别值是相等的。如果一个站的某个页面级别高或少出链,则这个站所有页面的级别会降低。这儿一个重要的影响因素是站点页面的数量。当一个站点的页面更多时,有更多的入链级别值被分布到站点的其它页面中,因而参考交换的页面不能提供更多贡献给对方。
发表于 2004-12-23 20:49:41 | 显示全部楼层
up
回复 支持 反对

使用道具 举报

fufei2 该用户已被删除
发表于 2005-1-6 09:13:43 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

homeweek 该用户已被删除
发表于 2005-1-23 19:23:03 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

aking 该用户已被删除
发表于 2005-5-29 21:16:50 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则