PageRank

来源:互联网 发布:ohem算法 编辑:程序博客网 时间:2024/06/07 14:07

PageRank除了考虑到入链数量的影响,还考虑了网页质量因素,两者结合获得了更好的网页重要性评价标准。
对于某个互联网网页A来说,该网页PageRank的计算基于以下两个基本假设:
数量假设:如果一个页面节点接收到的其他网页指向的入链数量越多,那么这个页面越重要。
质量假设:指向页面A的入链质量不同,质量高的页面会通过链向其他页面传递更多的权重。

PageRank算法原理
1)在初始阶段:网页通过链接关系构建起Web图,每个页面设置相同的PageRank值,通过若干轮的计算,会得到每个页面所获得的最终PageRank值。随着每一轮计算的进行,网页当前的PageRank值会不断得到更新。
2)在一轮中更新页面PageRank得分的计算方法:每个页面将当前的PageRank值平均分配到本页面包含的出链上,这样每个链接即获得相应的权值。而每个页面将所有指向本页面的入链所传入的权值求和,即可得到新的PageRank得分。当每个页面都获得了更新后的PageRank值,就完成了一轮PageRank计算。

PageRank简单计算
假设一个只由4个页面组成的集合:A,B,C和D。如果所有页面都链向A,那么A的PR(PageRank)值将是B,C及D的和。
PR(A)=PR(B)+PR(C)+PR(D)
继续假设B也有链接到C,并且D也有链接到ABC三个页面。一个页面不能投票2次,所以B给每个页面投半票,D投出的票只有三分之一算到A的PageRank上。
PR(A)=PR(B)/2+PR(C)/1+PR(D)/3
换句话说,链出总数平分一个页面的PR值。
PR(A)=PR(B)/L(B)+PR(C)/L(C)+PR(D)/L(D)
图示讲解
这里写图片描述

修正PageRank计算公式
由于存在一些出链为0,也就是那些不链向任何网页的网页。因此需要对PageRank公式进行修正,即在简单公示的基础上增加阻尼系数q,q一般取值q=0.85。它表示在任意时刻,用户到达某页面后并继续向后浏览的概率。1-q=0.15,就是用户停止点击的概率。
最后,即所有这些被换算为一个百分比再乘上一个系数q。由于下面的算法,没有链入页面的PageRank会是0。
PR(A)=(PR(B)/L(B)+PR(C)/L(C)+PR(D)/L(D)+…)q+1-q

PageRank幂法计算
这里写图片描述

案例
这里写图片描述
1)网页链接的概率转移矩阵(链入):
这里写图片描述

迭代计算PageRank的过程:
1)
这里写图片描述
因X与R的差别较大,继续迭代。
2)
这里写图片描述
继续迭代这个过程,直到最后两次结果近似或相同,即R约等于X,此时计算停止。最终R就是各个页面的PageRank值。
注:用幂法计算PageRank值总是收敛的,即计算的次数是有限的。

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

参考链接:真实的归宿