写这篇文章主要是为了后面的TextRank算法做铺垫,所以我会非常简短的描述,可能读者理解起来有一点费劲。
佩奇排名(PageRank),又称网页排名、谷歌左侧排名、PR等,是Google公司所使用的对其搜索引擎搜索结果中的网页进行排名的一种算法。是Google创始人拉里·佩奇和谢尔盖·布林于1997年构建早期的搜索系统原型时提出的链接分析算法,
当然这是早期算法,现在应该不用了。主要思想是:
基于这两个假设建立模型,这是一张图模型,每一个页面都是一个节点,节点之间有带方向的直线表明我指向你,来一张图吧:
模型是图模型,那么重要性分数怎么计算?根据上述中心思想如何实现呢?简单一点来算,你自己也能想出来:
似乎也是这么回事,这个计算方式还挺像样的,但是,好像跟我们的假设不太一样:
有的人就想着不能这么算,他提出:
所以改进一下:
这里要注意一点:不能拿已经算好的A的权重再参与到当前轮数的计算里面,很多博客都是把当前的计算结果参与到当前轮数的其他节点的计算,这是错误的,必须注意一下。
所以我们抽象出函数就是:
P R ( p i ) = ∑ p j ( P R ( p j ) L ( p j ) ) PR(p_i) = \sum_{pj}(\frac{PR(p_j)}{L(p_j)}) PR(pi)=pj∑(L(pj)PR(pj))
参数解释:
这个公式不太好理解,我重写一个。
P R ( p i ) = ∑ p j ∈ E ( p i ) ( P R ( p j ) L e n ( p j ) ) PR(p_i) = \sum_{pj \in E(pi)}(\frac{PR(p_j)}{Len(pj)}) PR(pi)=pj∈E(pi)∑(Len(pj)PR(pj))
用矩阵来表示更好的理解,我们就拿上述的图来做关系矩阵:
P 3 ∗ 3 = 0 0 1 1 2 0 0 1 2 1 0 \begin{aligned} \mathbb{P}^{3*3}=\begin{array} {|cccc|} 0&0&1\\ \frac{1}{2}&0&0\\ \frac{1}{2}&1&0\\ \end{array} \end{aligned} P3∗3=02121001100
行坐标、列坐标都是A、B、C,我们从两个角度来理解:
上述矩阵是节点之间的关系矩阵,怎么计算得到最终的分数呢?我们还是认为给一个默认值,乘以这个关系矩阵,会得到一个新的分数,这样
以上就是大致的流程,其实还可以思考为什么会收敛?这个也要证明,不然永远都不会收敛。
其实我觉得有一些问题,
基于以上的考虑,有人指出,添加一个阻尼系数 d d d:
具体公式是:
P R ( p i ) = ( 1 − d ) + d ∗ ∑ p j ∈ E ( p i ) ( P R ( p j ) L e n ( p j ) ) PR(p_i) = (1-d)+d*\sum_{pj \in E(pi)}(\frac{PR(p_j)}{Len(pj)}) PR(pi)=(1−d)+d∗pj∈E(pi)∑(Len(pj)PR(pj))
d d d一般取0.85, ( 1 − d ) (1-d) (1−d)代表着不考虑入站链接的情况下随机进入一个页面的概率,也就是没有入链的情况下的节点权重。在0.85的阻尼系数下,大约100多次迭代就能收敛到PR向量。当阻尼系数接近1时,需要的迭代次数会陡然增加很多,且排序不稳定。
实际上,在随机过程理论中,上述矩阵被称为“转移概率矩阵”。这种离散状态按照离散时间的随机转移过程称为马氏链(马尔可夫链,Markov Chain),也就是我们把PageRank收敛性问题转化为了求马尔可夫链的平稳分布的问题,那么我们就可以从马氏链的角度来分析问题。因此,对于PageRank的收敛性问题的证明也就迎刃而解了,只需要证明马氏链在什么情况下才会出现平稳分布即可。我们可以知道马氏链有三个推论:
推论1. 有限状态的不可约非周期马尔可夫链必存在平稳分布。
推论2. 若不可约马尔可夫链的所有状态是非常返或零常返的,则不存在平稳分布。
推论3. 若{Xi}是不可约的非周期马氏链的平稳分布,则lim(n→∞)Pj(n) = Xi。
这一块恰好pagerank符合这三个推论,所以它是收敛的。
点:评估网页排名其他因素考虑的更多一些,不仅仅是网页入链、出链。
优点:
因此,算法可以有效避免那些为了提高网站的搜索排名而故意使用链接的行为。
缺点:
(1 )主题漂移问题
PageRank 算法仅利用网络的链接结构,无法判断网页内容上的相似性;且算法根据向外链接平均分配权值使得主题不相关的网页获得与主题相关的网页同样的重视度,出现主题漂移。
(2 )偏重旧网页问题
决定网页 P R 值的主要因素是指向它的链接个数的多少。一个含有重要价值的新网页,可能因为链接数目的限制很难出现在搜索结果的前面,而不能获得与实际价值相符的排名。 算法并不一定能反映网页的重要性,存在偏重旧网页现象。
(3 )忽视用户个性化问题
PageRank算法在设计之初,没有考虑用户的个性化需要。个性化搜索引擎的兴起,对 PageRank排序算法提出新的挑战。
PageRank算法简介及Map-Reduce实现
PageRank算法的计算及其优缺点