pagerank算法学习
pagerank算法学习
1.背景介绍
Google出现之前的资源搜索都是资源集中式的大海捞针。google出现之后大家都用google进行资源搜索,而google的网页排序则是基于pagerank的得分值进行排序的,值高的就排在前面。
PageRank算法由Google创始人Larry Page在斯坦福读大学时提出,又称PR,佩奇排名。主要针对网页进行排名,计算网站的重要性,优化搜索引擎的搜索结果。PR值是表示其重要性的因子。
2.算法中心思想
数量假设:在网页模型图中,一个网页接受到其他网页指向的入链(in-links)越多,说明该网页越重要。(即大家都愿意引用你的网页,类似论文的影响因子?)

质量假设:当一个质量高的网页指向(out-links)另一个网页,说明这个被指向的网页很重要。

入链出链的概念:类似于有向图弧的出度入度

3.算法基础讲解
pagerank公式:

PR值是需要循环迭代的,即pr值与i相关(最终PR值会趋近于某个值,此时稳定的PR值就是最终的结果),每个点的初始PR值为1/N,N代表图中顶点的个数。下面看下A顶点第一轮循环的PR值:

最终计算结果: 
另一种计算方法——使用转移概率矩阵/马尔科夫矩阵(列为出发点,行为到达点,值为到达概率,每列概率之和为1)(NxN)乘上PR值矩阵(Nx1)=> 新一轮迭代的PR值矩阵(仍为Nx1)


两种方法之间的联系:

4.PageRank的Dead Ends问题
Dead Ends的概念:图中出度为0的顶点,即作为终点只被指向。(类似调用链里面的DB?只能被调用)

Dead Ends的问题:会导致pagerank算法多次计算之后,PR值均变为0。

Dead Ends的解决:通过修正转移概率矩阵:M => M+修正矩阵
具体计算过程:

修正后的PR求值公式:

5.PageRank的Spider Traps问题
Spider Traps的概念与问题:图中顶点只指向自身,不指向其他顶点。经过多次循环后,A的PR值会变为1,其他

Spider Traps的解决:修正转移概率矩阵M(如下),β表示打开某网页后仍停留在此网页的概率,一般设置为0.8到0.9,(1-β)则表示访问其他网页的概率。——这个修正方法叫做teleport

具体计算过程:



6.PageRank最终修正公式及优缺点

pagerank优点:
1.通过网页之间的链接图来决定网页重要性,不夹杂人为因素
2.离线计算PR值,而非查找的时候计算,提升了查询效率


pagerank缺点:
1.存在时间久的网站,PR值会越来越大,而新生成的网站,PR值增长缓慢。
2.查询结果会偏离搜索内容
3.通过设置僵尸网站/链接,可以人为的为目标网站刷PR值



7.代码实现
通过networkx库去生成有向图,并绘制,并计算每个点的PR值。

浙公网安备 33010602011771号