目录

  • PageRank 的定义
    • 前置知识
    • 基本想法
    • PageRank 的基本定义
    • PageRank 的一般定义
  • PageRank 的计算
    • 代数算法
    • 迭代算法
    • 幂法 (power method)
  • Why PageRank Still Matters in 2021
  • 参考文献
  • PageRank 算法是图的链接分析 (link analysis) 的代表性算法,属于图数据上的无监督学习方法。PageRank 算法最初作为互联网网页重要度的计算方法,被用于谷歌搜索引擎的网页排序。事实上,PageRank 可以定义在任意有向图上,后来被应用到社会影响力分析文本摘要等多个问题

PageRank 的定义

前置知识

  • 马尔可夫链 (Markov Chains):与 PageRank 算法最相关的小节为 “平稳分布 (steady-state vector / equilibrium vector)”、“Random Walks on Graphs”、“平稳分布

基本想法

  • PageRank 算法的基本想法是在有向图上定义一个随机游走模型,即一阶马尔可夫链,描述随机游走者沿着有向图随机访问各个结点的行为。在一定条件下,极限情况访问每个结点的概率收敛到平稳分布,这时各个结点的平稳概率值就是其 PageRank 值,表示结点的重要度。PageRank 是递归定义的, PageRank 的计算可以通过迭代算法进行。先假设一个初始分布,通过迭代,不断计算所有网页的 PageRank 值,直到收敛为止。PageRank 值依赖于网络的拓扑结构,一旦网络的拓扑确定, PageRank 值就确定

    • e.g. 假设互联网是一个有向图,在其基础上定义随机游走模型,即一阶马尔可夫链,表示网页浏览者在互联网上随机浏览网页的过程。假设浏览者在每个网页依照连接出去的超链接以等概率跳转到下一个网页,并在网上持续不断进行这样的随机跳转,这个过程形成一阶马尔可夫链。PageRank 表示这个马尔可夫链的平稳分布。每个网页的 PageRank 值就是平稳概率

PageRank 的基本定义

基础知识补充

(1) 周期图:假设 k k k 是一个大于 1 的自然数,如果从有向图的一个结点出发返回到这个结点的路径的长度都是 k k k 的倍数,那么称这个结点为周期性结点。如果一个有向图不含有周期性结点,则称这个有向图为非周期性图 (aperiodic graph),否则为周期性图

(2) 随机游走模型


马尔可夫链平稳分布定理

  • 根据马尔可夫链平稳分布定理,强连通且非周期的有向图上定义的随机游走模型 (马尔可夫链),在图上的随机游走当时间趋于无穷时状态分布收敛于唯一的平稳分布

注意:有向图是强连通非周期性的,这保证了马尔可夫链对应的随机矩阵是正则的,因此马尔可夫链存在唯一平稳分布且状态序列收敛于该平稳分布


  • 显然有
    这里 M ( v i ) M(v_i) M(vi​) 表示指向结点 v i v_i vi​ 的结点集合, L ( v j ) L(v_j) L(vj​) 表示结点 v j v_j vj​ 连出的有向边的个数 (第三个公式由稳态分布的定义 R = M R R=MR R=MR 可得)
  • PageRank 的基本定义是理想化的情况,在这种情况下, PageRank 存在,而且可以通过不断迭代求得 PageRank 值。但一般的有向图未必满足强连通且非周期性的条件,此时马尔可夫链的状态序列未必会收敛到平稳分布,所以 PageRank 的基本定义不适用
    • 比如,在下图中,网页 7 和网页 4 并没有连接出去的超链接,也就是说从这些网页无法跳转到其他网页,因此随着时间步数的增加,最终一定会停留在状态 4 或状态 7

PageRank 的一般定义

  • 为了保证马尔可夫链一定存在唯一的平稳分布,且当 k → ∞ k\rightarrow\infty k→∞ 时,状态序列 { x k } \{ x_k \} {xk​} 收敛于该平稳分布,只需保证转移矩阵是正则的 (regular),因此可以在基本定义的基础上导入平滑项

    • 假设考虑另一个完全随机游走的模型,其转移矩阵 K K K 的元素全部为 1 / n 1/n 1/n,也就是说从任意一个结点到任意一个结点的转移概率都是 1 / n 1/n 1/n。设由基本定义导出的转移矩阵为 M M M,则两个转移矩阵的线性组合又构成一个新的正则转移矩阵 G G G,它被称为 Google Matrix
      G = d M + ( 1 − d ) K G=dM+(1-d)K G=dM+(1−d)K其中 0 ≤ d ≤ 1 0\leq d\leq 1 0≤d≤1 为阻尼因子 (damping factor), ( 1 − d ) K (1-d)K (1−d)K 即为平滑项 (阻尼因子 d d d 取值由经验决定; Google is said to use a value of d = 0.85 d=0.85 d=0.85 for their PageRank calculations)。 根据转移矩阵 G G G 可以定义一个新的马尔可夫链。由于 G G G 是正则矩阵,这个马尔可夫链一定存在唯一的平稳分布,且当 k → ∞ k\rightarrow\infty k→∞ 时,状态序列 { x k } \{ x_k \} {xk​} 收敛于该平稳分布
    • 加入平滑项后,马尔可夫链可以看作是对以下过程进行建模:互联网浏览者按照以下方法在网上随机游走: 在任意一个网页上,浏览者或者以概率 d d d 决定按照超链接随机跳转,这时以等概率从连接出去的超链接跳转到下一个网页; 或者以概率 ( 1 − d ) (1 - d) (1−d) 决定完全随机跳转,这时以等概率 1 / n 1 /n 1/n 跳转到任意一个网页
  • 设加入平滑项后的平稳分布为 R R R, R R R 即可看作有向图的一般 PageRank,它满足 R = P R R=PR R=PR,即
    R = d M R + 1 − d n 1 R=dMR+\frac{1-d}{n}\boldsymbol 1 R=dMR+n1−d​1其中 1 \boldsymbol 1 1 是所有分量为 1 的 n n n 维向量。进而可以由上式写出每个结点的 PageRank 值
    这里 M ( v i ) M(v_i) M(vi​) 是指向结点 v i v_i vi​ 的结点集合, L ( v j ) L(v_j) L(vj​) 是结点 v j v_j vj​ 连出的边的个数

PageRank 的计算

下面三种方法中,常用幂法

代数算法

迭代算法

幂法 (power method)

  • 在 马尔可夫链 (Markov Chains) 这篇文章中提到,正则随机矩阵除 1 以外的所有特征值的绝对值都小于 1,也就是说, 1 1 1 为主特征值,稳态向量即为主特征向量 (dominant eigenvector)。这就使得我们可以使用幂法来求得稳态向量

It turns out that only between 50 and 100 iterations of the method are needed to get the steady-state vector q q q to the accuracy that Google needs for its rankings. It still takes days for Google to compute a new q q q, which it does every month.

Why PageRank Still Matters in 2021

  • Just because there is no longer a toolbar that gives us a web page’s PageRank score doesn’t mean it is not still used.
  • In fact, in 2017, Google’s Gary Illyes confirmed on Twitter that they were still using PageRank.

参考文献

  • 《统计学习方法》
  • L i n e a r Linear Linear a l g e b r a algebra algebra a n d and and i t s its its a p p l i c a t i o n s applications applications
  • Everything You Need to Know about Google PageRank

图的链接分析 (link analysis): PageRank 算法相关推荐

  1. cs224w(图机器学习)2021冬季课程学习笔记4 Link Analysis: PageRank (Graph as Matrix)

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 1. Graph as Matrix 2. PageRank / the Google Algor ...

  2. GNN-CS224W: 4 Link Analysis: PageRank

    abstract 本节讲到的东西不涉及DeepLearning treat the web as a graph page rank的目的是给作为node的网页排序 We will cover the ...

  3. 复现经典:《统计学习方法》第21章 PageRank算法

    第21章 PageRank算法 本文是李航老师的<统计学习方法>一书的代码复现.作者:黄海广 备注:代码都可以在github中下载.我将陆续将代码发布在公众号"机器学习初学者&q ...

  4. 链接分析–PageRank 算法分析实现及优化

    资源下载地址:https://download.csdn.net/download/sheziqiong/85601120 一.摘要 互联网时代带给人们生活最大的改变是,通过搜索引擎进行高效准确的 W ...

  5. PageRank 算法

    文章目录 1. PageRank 的定义 1.1 基本想法 1.2 PageRank 的基本定义 1.3 PageRank 的一般定义 2. PageRank 的计算 2.1 迭代算法 2.2 幂法 ...

  6. 《统计学习方法》学习笔记 第二十一章 PageRank算法

    目录 1 PageRank的定义 1.1 基本想法 1.2 有向图和随机游走模型 1 有向图(directed graph) 2 随机游走模型 3 PageRank的基本定义 4 PageRank的一 ...

  7. 图算法(一):Pagerank算法(网页排名算法)【适用场景:网页排序、社交网络重点人物发掘等】【一种由搜索引擎根据网页(节点)之间相互的超链接进行计算的技术,用来体现网页(节点)的相关性和重要性】

    一.概述 PageRank算法又称网页排名算法,是一种由搜索引擎根据网页(节点)之间相互的超链接进行计算的技术,用来体现网页(节点)的相关性和重要性. 如果一个网页被很多其他网页链接到,说明这个网页比 ...

  8. 搜索引擎技术 ——链接分析

    文章目录 Web图 链接模型 随机游走模型 子集传播模型 链接分析算法 PageRank算法 链接陷阱 HITS算法 Hub页面和Authority页面 相互增强关系 HITS算法 SALSA算法 确 ...

  9. PageRank算法实现

    PageRank算法实现 迭代法实现大规模PageRank,网页数量不低于10000.解答在1.1 迭代法计算PageRank 代数法求小规模PageRank的稳态解,网页数量为5.解答在1.2 代数 ...

最新文章

  1. 有奖活动:写书评赢O'Reilly Velocity大会门票
  2. hihoCoder太阁最新面经算法竞赛18
  3. Android开发之Mac配置环境变量
  4. 并发(concurrency)和并行(parallellism)
  5. php7 setcookie无效_php COOKIE介绍和setcookie有时会在ie下失效问题
  6. Java关于周跨年的周数计算
  7. 全能王PDF转换器 V2.0.0.2
  8. HDFS-HA-federation的机制和功能组件
  9. 【Spring】spring depend-on 到底是干什么的?
  10. cdr你的产品已禁用_Coreldraw提示已安装另一版本导致安装失败的解决办法
  11. div和div之间画横线,如何在两个div之间画一条线?
  12. 【Git/Github学习笔记】Git分支管理(一)
  13. Qt QT_BEGIN_NAMESPACE
  14. 单片机c语言中的精确延时程序,单片机精确毫秒延时函数
  15. npm jdf压缩并上传静态文件到服务器
  16. 元境云游戏技术让游戏全平台畅玩成为现实
  17. rainmeter频谱动效和动态挂件
  18. 计算机信息处理技术的发展历程,中文信息处理技术发展简史.docx
  19. SWUST OJ#1052 输出利用先序遍历创建的二叉树中的指定结点的双亲结点
  20. python 使用qq登陆搜狗微信搜索

热门文章

  1. 个人网站如何防御攻击?
  2. 通都不通也好意思叫大数据征信
  3. 操作系统的作用是什么?目前主流的操作系统有哪些?主要特点是什么?
  4. jupyter notebook设置标题折叠
  5. JS中对象用点(.)和方括号([])的区别
  6. 计算机误删了文件回收站找不到,电脑的文件误删除,回收站也没有,可以在哪找到...
  7. 心脏病最新研究进展2021年4月
  8. Oracle收集统计信息
  9. Contrastive Learning(对比学习,MoCo,SimCLR,BYOL,SimSiam,SimCSE)
  10. Docker物理机重启后,docker报错 error creating overlay mount to /var/lib/docker/overlay2