Google对PageRank算法的详细解释

摘要:PageRank优化算法PageRank优化算法是Google的“永恒不变之剑”,由斯坦福高校的拉里佩奇和斯维特兰娜布林创造发明。该毕业论文从:免费下载PageRank引文排行:将定单送到在网上。 文中最先...

PageRank算法
PageRank算法是谷歌的“永恒之剑”,由斯坦福大学的拉里佩奇和谢尔盖布林发明。该论文从:下载PageRank引文排名:将订单带到网上。
本文首先通过一些参考文献介绍了一些问题,然后给出了PageRank的几种实现算法,最后将其扩展到如何在MapReduce框架下实现PageRank算法。
PageRank的核心理念有2点:
1.如果网页链接到许多其他网页,则意味着网页更重要,即页面值更高;
2.如果具有高Pagerank值的页面链接到不同页面,则与其链接的页面的pagerank值将相应地相应增加。
下面是来自WikiPedia的图片,每个球代表一个网页,其大小反映了页面的pagerank值的大小。网页B和网页E有很多链接,因此B和E的页面值更高。此外,虽然很少有网页指向C,但最重要的网页B指向C,因此C的pagerank值大于E.

参考:
1.Wiki关于PageRank
2.谷歌的秘密 - PageRank彻底解释了中文版
3.数值分析和算法Page 161应用实例:谷歌的PageRank算法
4.数值方法用Matlab或中文翻译版本Matlab数值计算
5.使用MapReduce Ideas计算PageRank和Markov链

问题背景
参考文献3

2.数学建模
从参考文献3中,了解网络连接矩阵$ G $,马尔可夫过程(“冲浪”),转移矩阵$ A $,概率$ p $是用户点击当前网页中链接地址的概率(通常是0.85)。

最后,我们得到一个方程$ Ax=x $,这实际上是矩阵$ A $的特征值为1的特征向量!
以下内容使用圆盘定理来解释1是矩阵$ A $的主要特征值,因此我们可以使用幂方法来解决。
有关幂方法的详细介绍,请参阅另一篇文章,数值方法使用Matlab:第3章求解矩阵特征值和奇异值

3.解决PageRank
假设有一个网页链接模型,如上图所示。
(1)幂律
在wiki上有一个简单的PageRank算法。它不考虑转换概率。相反,它使用迭代方法每次更新所有网页的pagerank值。更新方法是将每个网页的pagerank值共享给它。所有页面指向,每个页面累积指向它的所有页面的值作为该轮的pagerank值,直到所有页面的pagerank值收敛或满足某些阈值条件。
在随后的MapReduce框架中实现PageRank算法使用了这个想法。考虑到转移概率与此算法类似,将转移概率乘以随机跳转的概率。

根据以上思想,以下Matlab代码实现可以获得每个网页的PageRank值。

获得的向量$ x $保存每个网页的pagerank值。虽然链接数量相同,但网页1高于网页4和网页5,网页2的网页浏览量值第二高,因为网页1链接到它,我完全忽略了第1页的亮点。

本文给出了一个Python版本的算法实现,博主使用第三方模块python-graph,python-graph模块实现了很多图形算法,使用这个模块,需要在使用前安装,代码如下:Br /> Python版本的算法实现:

32次迭代后得到的结果如下,与之前的结果一致:
(2)使用马尔可夫矩阵的特殊结构
参考文献4,其中$ delta=frac {1-p} {n} $

也就是说,矩阵$ A $被分解,并且没有必要显示矩阵$ A $,然后有必要求解线性方程系统。

(3)巧妙的解决方案:逆迭代算法
使用Matlab中的精度误差使得原来是奇异矩阵的$ I-A $变为非奇异矩阵。运行时只有一些警告提示,但运行结果与其他算法相同。

最后,附上参考文献4中给出的优秀代码,以模拟随机冲浪生成矩阵$ G $

的代码


联系我们

全国服务热线:4000-399-000 公司邮箱:343111187@qq.com

  工作日 9:00-18:00

关注我们

官网公众号

官网公众号

Copyright?2020 广州凡科互联网科技股份有限公司 版权所有 粤ICP备10235580号 客服热线 18720358503

技术支持:自助建站