版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qinlingheshang/article/details/79956802
如何度量一个网页本身的重要性?
- 某网页被指向的次数越多,重要性越高
- 越是重要的网页,所链接的网页的重要性也就越高
如图所示,链向网页E的链接远远大于链向网页C的链接,但是网页C的重要性却远高于网页E,这是因为网页C被网页B所链接,而网页B具有很高的重要性。
Pagerank算法的相关概念
- PR值:用来评价网页的重要性,PR值越大越重要,其级别从0到10级。一般PR值达到4,就是一个很不错的网站。
- 阻尼系数:阻尼系数d定义为用户不断随机点击链接的概率,所以,它取决于点击的次数,被设定为0-1之间。d的值越高,继续点击链接的概率就越大。因此,用户停止点击并随机冲浪至另一页面的概率在式子中用常数(1-d)表示。无论入站链接如何,随机冲浪至一个页面的概率总是(1-d)。(1-d)本身也就是页面本身所具有的Pagerank 值。
Pagerank核心思想
- PageRank通过网络浩瀚的超链接关系来确定一个页面的等级。Google把从A页面到B页面的链接解释为A页面给B页面投票,Google根据投票来源(甚至来源的来源,即链接到A页面的页面)和投票目标的等级来决定新的等级。这样,PageRank会根据网页B所收到的投票数量来评估该网页的重要性。此外,PageRank还会评估每个投票网页的重要性,因为某些重要网页的投票被认为具有较高的价值,这样,它所链接的网页就能获得较高的价值。
PR值计算
- N:网络中网页的总数
- d:阻尼系数,一般取值为0.85
- PR(Xi):网页Xi的PR值
- C(Xi): 网页Xi链出的网页数
- PR(Xi)/C(Xi): 根据链出总数,平分了一个页面的PR值
从计算公式中可以看出,PR值的计算取决于以下因素:
- 链入网页数
- 链入网页的质量
- 链入网页的链出网页数
根据上面的公式,可以计算出每个网页的PR值,在不断迭代,趋于平稳时,即得到最终的PR值。所以只要证明在不断的迭代过程中,PR值能够趋于平稳即可。
算法证明
用邻接矩阵表示图中关系:
然后将每一行除以该行非零数字之和(链出网页的数目)得到网页链接概率矩阵:
对其转置得到概率转移矩阵:
设概率转移矩阵为P,则P[i][j]表示从网页j跳转到网页i的概率。
定义矩阵A:
公式解释:
- P为概率转移矩阵
- e为n维的全一行
所以,在迭代时网页的PR值计算如下,其中Rn表示第n次迭代时各网页组成的列向量
于是PR值的计算就变为了一个马尔科夫过程,所以只要证明马尔科夫过程收敛即可。
若一个马尔可夫过程收敛,则概率转移矩阵需要满足以下条件:
- A为随机矩阵。
- A是不可约的。
- A是非周期的
- 随机矩阵又叫概率矩阵或Markov 矩阵,满足以下条件:
显然我们的A矩阵所有元素都大于等于0,并且每一列的元素和都为1
- 不可约矩阵:方针A是不可约的当且仅当与A对应的有向图是强联通的。有向图G=(V,E)是强联通的当且仅当对每一对节点对u,v∈V,存在从u到v的路径。因为我们在之前设定用户在浏览页面的时候有确定概率通过输入网址的方式访问一个随机网页,所以A矩阵同样满足不可约的要求
- A是非周期的:所谓周期性,体现在Markov链的周期性上。即若A是周期性的,那么这个Markov链的状态就是周期性变化的。因为A是素矩阵(素矩阵指自身的某个次幂为正矩阵的矩阵),所以A是非周期的。
所以,马尔科夫过程收敛,即PageRank算法经过迭代后是收敛的。
最终,求解PR值的公式如下:
其中,X是每个网页初始PR值组成的列向量。
使用幂法求PageRank值
幂法计算过程如下:
X 设任意一个初始向量, 即设置初始每个网页的 PageRank值均。一般为1.
R = AX;
while (1 )
{
if ( | X - R | < e )
{ //如果最后两次的结果近似或者相同,返回R
return R;
}
else
{
X =R;
R = AX;
}
}
小结
优点:
- 是一个与查询无关的静态算法,所有网页的PageRank值通过离线计算获得;有效减少在线查询时的计算量,极大降低了查询响应时间
缺点:
- 一些权威网页往往是相互不链接的,比如新浪、搜狐、网易以及腾讯这些大的门户之间,基本是不相互链接的,学术领域也是这样。
- 人们的查询具有主题特征,PageRank忽略了主题相关性,导致结果的相关性和主题性降低
- 旧的页面等级会比新页面高。因为即使是非常好的新页面也不会有很多上游链接,除非它是某个站点的子站点。