Pagerank算法
一. Pagerank介绍
PageRank算法以前就是Google的网页排序算法。PageRank算法,对每个目标网页进行附上权值,权值大的就靠前显示,权值小的就靠后显示。PageRank算法就是给每个网页附加权值的。PageRank算法借鉴学术界论文重要性的评估方法:谁被引用的次数多,谁就越重要。
注:PageRank算法不单单是按照“被索引数”来给网页付权值的,用PR值表示每个网页被PageRank算法附加的权值。
二. PageRank算法的核心细想
(1)如果一个网页被很多其他网页链接到的话,说明这个网页比较重要,也就是PageRank值会相对较高
(2)如果一个PageRank值很高的网页链接到一个其他的网页,那么被链接到的网页的PageRank值会相应地因此而提高
三. 基本概念
(1)出链
如果在网页A中附加了网页B的超链接B-Link,用户浏览网页A时可以点击B-Link然后进入网页B。上面这种A附有B-Link这种情况表示A出链B。可知,网页A也可以出链C,如果A中也附件了网页C的超链接C-Link。
(2)入链
上面通过点击网页A中B-Link进入B,表示由A入链B。如果用户自己在浏览器输入栏输入网页B的URL,然后进入B,表示用户通过输入URL入链B
(3)无出链
如果网页A中没有附加其他网页的超链接,则表示A无出链
(4)只对自己出链
如果网页A中没有附件其他网页的超链接,而只有他自己的超链接A-Link,则表示A只对自己出链
(5)PR值
一个网页的PR值,概率上理解就是此网页被访问的概率,PR值越高其排名越高。
四. 几种网页出入链关系
case1:网页都有出入链
此种情况下的网页A的PR值计算公式为:
case2:存在没有出链的网页
case2
网页C是没有出链。因为C没有出链,所以对A,B,D网页没有PR值的贡献。PageRank算法的策略:从数学上考虑,为了满足Markov链,设定C对A,B,C,D都有出链(也对他自己也出链~)。你也可以理解为:没有出链的网页,我们强制让他对所有的网页都有出链,即让他对所有网页都有PR值贡献。
此种情况PR(A)的计算公式:
case3:存在只对自己出链的网页
case3
C是只对自己出链的网页。
此时访问C时,不会傻乎乎的停留在C页面,一直点击C-Link循环进入C,即C网页只对自己的网页PR值有贡献。正常的做法是,进入C后,存在这种情况:在地址输入栏输入A/B/C/D的URL地址,然后跳转到A/B/C/D进行浏览,这就是PageRank算法解决这种情况的策略:设定存在一定概率为α,用户在地址栏输入A/B/C/D地址,然后从C跳转到A/B/C/D进行浏览。
此时PR(A)的计算公式为:
五. 算法公式
一般情况下,一个网页的PR值计算公式为:
注:Mpi是有出链到pi的所有网页集合,L(pj)是有网页pj的出链总数,N是网页总数,α一般取值为0.85
所有网页PR值一直迭代计算,停止直到下面两种情况之一发生:每个网页的PR值前后误差小于自定义误差阈值,或者迭代次数超过了自定义的迭代次数阈值
六. PageRank算法的缺点
这是一个天才的算法,原理简单但效果惊人。然而,PageRank算法还是有一些弊端。
第一,没有区分站内导航链接。很多网站的首页都有很多对站内其他页面的链接,称为站内导航链接。这些链接与不同网站之间的链接相比,肯定是后者更能体现PageRank值的传递关系。
第二,没有过滤广告链接和功能链接(例如常见的“分享到微博”)。这些链接通常没有什么实际价值,前者链接到广告页面,后者常常链接到某个社交网站首页。
第三,对新网页不友好。一个新网页的一般入链相对较少,即使它的内容的质量很高,要成为一个高PR值的页面仍需要很长时间的推广。
针对PageRank算法的缺点,有人提出了TrustRank算法。其最初来自于2004年斯坦福大学和雅虎的一项联合研究,用来检测垃圾网站。TrustRank算法的工作原理:先人工去识别高质量的页面(即“种子”页面),那么由“种子”页面指向的页面也可能是高质量页面,即其TR值也高,与“种子”页面的链接越远,页面的TR值越低。“种子”页面可选出链数较多的网页,也可选PR值较高的网站。
TrustRank算法给出每个网页的TR值。将PR值与TR值结合起来,可以更准确地判断网页的重要性。
补充:
谷歌用PR值来划分网页的等级,有0~10级,一般4级以上的都是比较好的网页了。谷歌自己PR值为9,百度也是9,博客园的PR值则为6。
如今PR值虽不如以前重要了(没有区分页面内的导航链接、广告链接和功能链接导致PR值本身能够反映出的网页价值不精确,并且对新网页不友好),但是流量交易里PR值还是个很重要的参考因素。