文章目录

  • 前言
  • 引入
  • 形式化
  • PageRank


前言

这个是一个经典算法,还是有必要了解的,这里由于讲得不会很详细,所以要求你有一点数学知识,如果有,看完这篇就大概明白PageRank是个啥了。本篇不涉及证明之类的,而是主要搞清楚背景以及怎么做。
参考视频:PageRank算法

引入

resp可视化链接集群 pagerank可视化_数学知识


我们可以看到,搜索华东师范大学之后,其官网网站排在第一,百度百科排在后面,这个排序结果是背后人为设置的还是自动生成的呢?当然是自动生成的,并且这个算法叫做PageRank算法。

形式化

resp可视化链接集群 pagerank可视化_数学知识_02


即一个网页重要不重要,一个是可以观察是否有很多其他网页指向它,另外就是指向它的网页是不是重要的网页。也就是说,如果有10个垃圾网页指向你,还不如一个重量级“专家”网页指向你。一个例子,假设页面A是100权重,由于两个出度,给了页面C和D各自50的权重,而页面B是9个权重,由于三个出度,给了页面C 3个权重。从而页面C获得53权重,页面D或者50权重,从而页面C比页面D重要。

resp可视化链接集群 pagerank可视化_自动生成_03

但是上面存在一个问题,我们需要先有页面A和页面B的权重,万一页面C也指向页面A,那么就是先鸡后蛋的问题了。

resp可视化链接集群 pagerank可视化_数学知识_04


上面和我们通常的邻接矩阵定义有点不一样,通常是存在i到j的弧,那么gij=1,上面相反。不过没事,习惯就好。这里相当于变成了第一列在描述第一个节点,依此类推。

resp可视化链接集群 pagerank可视化_权重_05

注意,前面说了,列是描述一个节点,所以除以出度,是列除以。

PageRank

resp可视化链接集群 pagerank可视化_算法_06


其中I0应该是可以随意初始化,最终会趋于稳定。你可以理解为,通过很多次迭代之后,稳定了下来,先鸡后蛋解决了,稳定下来的那个I就是各个网页的PageRank值,例如上述是第8个节点值最大,那么就意味着第8个网页最重要。

resp可视化链接集群 pagerank可视化_权重_07