PageRank
这个学期选了数据挖掘的课程,期末要做一个关于链接分析算法的报告,这是PR算法的小结。
算法
PR算法基于等级权威的思想,及不仅考虑指向该网页的链接数,同时也考虑指向该网页网站的重要程度。
PR算法是一种静态的网页评级方法,因为它为每个网页离线计算PR值,与查询内容无关。计算出的PR值即可作为网页排序的依据。
从权威的时角来说,PR值应体现以下的两点:
- 从一个网页指向另一个网页的链接是一种对目标网站权威性的隐含认可,也就是说,指向一个网页的连接数越多,该网页的PR值也就越高;
- 指向某个网页w的网页本身也具有PR值。在现实生活中,我们知道被一个高权威的人认可的事比被一个低权威的人认可的更具有可信度。因此,如果一个网页被其他具有高PR值的网页认可,那么该网页的PR值也应该较高。
根据以上的思想,我们可以推导出计算PR值的公式。将网页之间的链接关系看作一个有向图G(V, E),其中V是所有节点(即网页)的集合,E是所有有向边(即超链接)的集合。假设 |V|=n,PR值的定义如下:
其中,(O_j)为网页的链出链接数目。根据线性代数的知识,以上的式子可以写成矩阵的形式。
不妨用P表示PR值的列向量,令A为图G的邻接矩阵,有:
于是可以写出如下的形式:
显然,P是特征值1对应的特征向量。然而在Web图中上诉的等式并不一定有效。为了改进这个等式,这里用马尔科夫链来重新推导这个等式。
在马尔科夫链模型中,每张网页都被认为是一个状态,每个状态有一定概率向另一个状态转移,也就是说将网页浏览看作一个随机过程。它将用户随机浏览网页的行为看作马尔科夫链中一个状态向另一个状态的转移
其中,(A_{ij})为正在浏览网页i的用户浏览网页j的概率。可见这里矩阵A的定义与前面的相同。
如果A每一行元素的和为1,那么就可以称A是一个马尔科夫链的随机转移矩阵。但是这个条件在很多情况下并不成立,因为很多网页并没有链出链接,那么在A对应行上的元素全为0。首先不妨假设A是一个随机转移矩阵,那么在经过k次状态转移后的概率分布为:
根据随机过程的知识,如果矩阵A是不可约的且是非周期的,那么该马尔科夫链会收敛到一个概率分布,且这个概率分布是唯一的。即
(pi)体现了一个用户浏览某个网页的长期概率,这个概率越高说明该网页的权威越高。于是在PageRank算法中,我们可以将此处的(pi)作为PR值的向量P,于是我们又得到了
但是在现实中,Web中的网页并不能满足以上的条件。
首先,由于很多网页没有链出链接,A常常不是一个随机转移矩阵。为了解决这个问题,我们可以将矩阵A中全0行的元素替换为(1/n),即将没有链出链接的网页链接到其他所有网页。记转换后的矩阵为(overline{A}),此时的矩阵(overline{A})就是一个随机转移矩阵。
第二,矩阵(overline{A})常常不是不可约的,这就意味这图G不是强连通图。实际上,并不能保证Web中的任意两个网页之间可以链接起来。
最后,(overline{A})不是非周期的。这是因为在网页中常有经过几次链接后回到原网页的情况。在马尔科夫链中,这就意味着从状态i开始经过若干次转移后总是回到状态i。显然这不是我们想要的效果。
为了解决以上的两个问题,可以给每个网页增加一个以转移概率(1-d)指向所有网页的链接。也就是说,在用户浏览一个网页时,他随机选择一个链出链接进行浏览的概率是d,而不点击页面中的链接跳到另一个网页继续浏览的概论是1-d。这样一来,Web图就变为强连通的。且从状态i出发回到状态i就有了各种不同的路径,也就是说该马尔科夫链成为了非周期的。
此时,PR值的计算公式为
其中E为元素全为1的n阶方阵,称d为衰减系数,取值在0到1之间。
现实世界中的网页有很多,将PR值计算至收敛需要很大的代价。实际上我们只关注网页的排序情况,只需要迭代到一个可以接受的程度即可。
优缺点
PageRank算法的一大优点是PR值都被离线计算并保存下来,而不是在用户进行搜索时再进行计算,可以提升查询的效率。
另一个优点是它有一定的反作弊能力。一个网页的拥有者很难将指向自己网页的链接添加到其他重要网页中。
但是魔高一尺道高一丈,还是有办法认为提升PR值。在一些重要网页的评论区中附上一些“僵尸”网页的地址,这些“僵尸”网页中有指向目标网页的链接,这样就能达到提升PR值的效果。
另一个缺点在于该算法没有考虑时间,往往一个网页存在的时间越久,指向它的链接就越多。也就是说PR值的计算对旧的网页更加有利,使得一些新的高质量网页在搜索中不能获得高的排名。
由于PageRank算法非查询相关的特性,查询结果有可能发生偏离。