Google对PageRank算法的详细解释

来源:未知 浏览 150次 时间 2021-05-26 06:08


> SEO优化技术> 谷歌的详细PageRank算法

Google对PageRank算法的详细解释

SEO优化技术天津 2年前(2016-12-21) 364°C

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.

PageRank算法之Google详解


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

问题背景
参考文献3

PageRank算法之Google详解

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

PageRank算法之Google详解


PageRank算法之Google详解


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

PageRank算法之Google详解


PageRank算法之Google详解


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

PageRank算法之Google详解


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

PageRank算法之Google详解


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

PageRank算法之Google详解


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

PageRank算法之Google详解


PageRank算法之Google详解


PageRank算法之Google详解


32次迭代后得到的结果如下与之前的结果一致:

(2)使用马尔可夫矩阵的特殊结构
参考文献4其中$ delta=frac {1-p} {n} $

PageRank算法之Google详解


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

PageRank算法之Google详解


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

PageRank算法之Google详解


PageRank算法之Google详解


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

标签: Google算法PageRank详解