您的位置:首页 > 其它

12、pageRank

2016-02-12 09:51 239 查看

pageRank

1、PageRank算法原理

PageRank,即网页排名,又称网页级别、Google左侧排名或佩奇排名。
PageRank是Google用于用来标识网页的等级/重要性的一种方法,是Google用来衡量一个网站的好坏的唯一标准。其级别从0到10级,10级为满分。PR值越高说明该网页越受欢迎(越重要)。
1)、对于某个互联网网页A来说,该网页PageRank的计算基于以下两个基本假设:
①数量假设:在Web图模型中,如果一个页面节点接收到的其他网页指向的入链数量越多,那么这个页面越重要。
②质量假设:指向页面A的入链质量不同,质量高的页面会通过链接向其他页面传递更多的权重。所以越是质量高的页面指向页面A,则页面A越重要。
利用以上两个假设,PageRank算法刚开始赋予每个网页相同的重要性得分,通过迭代递归计算来更新每个页面节点的PageRank得分,直到得分稳定为止。
PageRank计算得出的结果是网页的重要性评价,这和用户输入的查询是没有任何关系的,即算法是主题无关的。这个搜索引擎对于任意不同的查询请求,返回的结果都是相同的,即返回PageRank值最高的页面。
2)、PageRank算法原理
PageRank的计算充分利用了两个假设:数量假设和质量假设。步骤如下:
①在初始阶段:网页通过链接关系构建起Web图,每个页面设置相同的PageRank值,通过若干轮的计算,会得到每个页面所获得的最终PageRank值。随着每一轮的计算进行,网页当前的PageRank值会不断得到更新。
②更新页面PageRank得分的计算方法:在一轮更新页面PageRank得分的计算中,每个页面将其当前的PageRank值平均分配到本页面包含的出链上,这样每个链接即获得了相应的权值。而每个页面将所有指向本页面的入链所传入的权值求和,即可得到新的PageRank得分。当每个页面都获得了更新后的PageRank值,就完成了一轮PageRank计算。
3)、基本思想:
如果网页T存在一个指向网页A的连接,则表明T的所有者认为A比较重要,从而把T的一部分重要性得分赋予A。这个重要性得分值为:PR(T)/L(T) 其中,PR(T)为T的PageRank值,L(T)为T的出链数
则A的PageRank值为一系列类似于T的页面重要性得分值的累加:即一个页面的得票数由所有链向它的页面的重要性来决定,到一个页面的超链接相当于对该页投一票。一个页面的PageRank是由所有链向它的页面(链入页面)的重要性经过递归算法得到的。一个有较多链入的页面会有较高的等级,相反如果一个页面没有任何链入页面,那么它没有等级。
4)、PageRank简单计算:
假设一个由只有4个页面组成的集合:A,B,C和D。如果所有页面都链向A,那么A的PR(PageRank)值将是B,C及D的和:
继续假设B也有链接到C,并且D也有链接到包括A的3个页面。一个页面不能投票2次。所以B给每个页面半票。以同样的逻辑,D投出的票只有三分之一算到了A的PageRank上:

根据链出总数平分一个页面的PR值:
1 所示的例子来说明PageRank的具体计算过程。

5)、修正PageRank计算公式:
由于存在一些出链为0,也就是那些不链接任何其他网页的网,也称为孤立网页,使得很多网页能被访问到。因此需要对PageRank公式进行修正,即在简单公式的基础上增加了阻尼系数(damping factor)q,q一般取值q=0.85。其意义是,在任意时刻,用户到达某页面后并继续向后浏览的概率。1- q= 0.15就是用户停止点击,随机跳到新URL的概率。
最后,即所有这些被换算为一个百分比再乘上一个系数q。由于下面的算法,没有页面的PageRank会是0。所以,Google通过数学系统给了每个页面一个最小值。

所以一个页面的PageRank是由其他页面的PageRank计算得到。Google不断的重复计算每个页面的PageRank。如果给每个页面一个随机PageRank值(非0),那么经过不断的重复计算,这些页面的PR值会趋向于正常和稳定。这就是搜索引擎使用它的原因。

2、PageRank幂法计算(线性代数应用)

将页面看作节点,超链接看作有向边,整个互联网就变成一个有向图了。此时,用邻接矩阵M表示整个互联网,若第I个页面有存在到第J个页面的超链接,那么矩阵元素m[i][j]=1,否则m[i][j]=0。对于图3有矩形
M={ 0, 1, 1, 0,
0, 0, 0, 1,
1, 0, 0, 0,
1, 1, 1,0}

观察矩阵M可发现,M的第I行表示第I个网页指向的网页,M的第J列表示指向J的网页。如果将M的每个元素都除于所在行的全部元素之和,然后再将M转置(交换行和列),得到MT。
MT={ 0, 0, 1, 1/3,
1/2, 0, 0, 1/3,
1/2, 0, 0, 1/3,
0, 1, 0, 0 }

将R看作是一个N行1列的矩阵,上面公式变为:R = C MT R (4)
在公式(4)中,R可以看作MT的特征向量,其对应的特征值为1 / C(特征向量的定义——对于矩阵A,若存在着列向量X和一个数c,使得AX=cX,则X称为A的特征向量,c称为A的特征值)。幂法(power method)计算主特征向量与初始值无关,因此只要把R看作主特征向量计算,就可以解决初始值的合理设置问题。
幂法得到的结果与初始值无关,是因为最终都会收敛到某个值。因此使用幂法之前,要确保能够收敛。但是,在互联网的超链接结构中,一旦出现封闭的情况,就会使得幂法不能收敛。所谓的封闭是指若干个网页互相指向对方,但不指向别的网页,具体的例子如下图所示:

上图4个绿色网页就是封闭情况。这种情况会使得这些网页的PageRank在计算的时候不断地累加,从而使得结果不能收敛。仔细研究就会发现红色网页的PageRank给了绿色网页后,绿色网页就将这些PageRank吞掉了。Larry Page将这种情况称为Rank Sink。
如果沿着网页的链接一直点下去,发现老是在同样的几个网页中徘徊,怎么办?把当前页面关掉,再开一个新的网页。上述情况正好与Rank Sink类似,也就意味着可以借鉴这个思想解决Rank Sink。因此,在上面公式中的基础上增加一个逃脱因子E,得到:

E(i)表示第i个网页的逃脱因子,将上式重写为:R = C( MT + E * 1 ) R (6)
1是指一行N列的行向量,且每个元素都是1。在公式(6)中,只要将R看作(MT + E * 1)的特征向量,就可以同时解决初始值设置问题和封闭的情况。

3、PageRank算法优缺点

优点:是一个与查询无关的静态算法,所有网页的PageRank值通过离线计算获得;有效减少在线查询时的计算量,极大降低了查询响应时间。
缺点:
1)人们的查询具有主题特征,PageRank忽略了主题相关性,导致结果的相关性和主题性降低
2)旧的页面等级会比新页面高。因为即使是非常好的新页面也不会有很多上游链接,除非它是某个站点的子站点。

4、Google PageRank

GooglePageRank的特点:

(1)Google的排名算法并不是完全基于外部链接的。
(2)高PageRank并不能保证Google的高排名。
(3)PageRank值更新的比较慢,今天看到的PageRank的值可能是三个月前的值。
导入链接,又称逆向链接,是指链至你网站的站点,也就是我们一般所说的外部链接。而当你链至另外一个站点,那么这个站点就是你的导出链接,即你向其他网站提供本站的链接。
要提高PageRank有3个要点:反向链接数;反向链接是否来自PageRank较高的页面;反向链接源页面的链接数。
今天Google的工程师把这个算法移植移植到并行的计算机中,进一步缩短了计算的时间,使得网页的周期比以前短了许多。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: