PageRank 算法

PageRank 算法文章目录 1 PageRank 的定义 1 1 基本想法 1 2PageRank 算法是图的链接分析 linkanalysis 的代表性算法 属于图数据上的无监督学习方法 PageRank 算法最初作为互联网网页重要度的计算方法 1996 年由 Page 和 Brin 提出 并用于谷歌搜索引擎的网页排序 事实上 PageRank 可以定义在任意有向图上 后来被应用到社会影响力分析 文本摘要等多个问题 Pag

PageRank算法是图的链接分析(link analysis)的代表性算法,属于图数据上的无监督学习方法。

PageRank算法最初作为互联网网页重要度的计算方法,1996年由Page和Brin提出,并用于谷歌搜索引擎的网页排序
事实上,PageRank可以定义在任意有向图上,后来被应用到社会影响力分析文本摘要等多个问题。
PageRank算法基本想法

  • 在有向图上定义一个随机游走模型,即一阶马尔可夫链,描述随机游走者沿着有向图随机访问各个结点的行为
  • 在一定条件下,极限情况访问每个结点的概率收敛到平稳分布,这时各个结点的平稳概率值就是其PageRank值,表示结点的重要度
  • PageRank是递归定义的,PageRank的计算可以通过迭代算法进行

1. PageRank 的定义

1.1 基本想法

PageRank是定义在网页集合上的一个函数,对网页给出一个正实数,表示网页的重要程度,整体构成一个向量,PageRank值越高,网页就越重要,在互联网搜索的排序中可能就被排在前面

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

1.2 PageRank 的基本定义

给定一个包含 n n n 个结点 v 1 , v 2 … , v n v_1,v_2…,v_n v1v2vn强连通非周期性的有向图,在有向图上定义随机游走模型,即一阶马尔可夫链。
随机游走的特点是从一个结点 到有 有向边连出的所有结点的转移概率相等,转移矩阵为M。这个马尔可夫链具有平稳分布 R, M R = R MR=R MR=R

平稳分布 R 称为这个有向图的 PageRank。R的各个分量称为各个结点的PageRank值

其中 P R ( v i ) , i = 1 , 2 , ⋯   , n , P R\left(v_{i}\right), i=1,2, \cdots, n, PR(vi),i=1,2,,n, 表示结点 v i v_{i} vi 的 PageRank 值
R = [ P R ( v 1 ) P R ( v 2 ) ⋮ P R ( v n ) ] P R ( v i ) ⩾ 0 , i = 1 , 2 , ⋯   , n ∑ i = 1 n P R ( v i ) = 1 P R ( v i ) = ∑ v j ∈ M ( v i ) P R ( v j ) L ( v j ) , i = 1 , 2 , ⋯   , n \begin{array}{c}R=\left[\begin{array}{c}P R\left(v_{1}\right) \\ P R\left(v_{2}\right) \\ \vdots \\ P R\left(v_{n}\right)\end{array}\right] \\ \begin{array}{c} \\P R\left(v_{i}\right) \geqslant 0, \quad i=1,2, \cdots, n \\ \\ \sum\limits_{i=1}^{n} P R\left(v_{i}\right)=1\end{array} \\ \begin{array}{l}\\ P R\left(v_{i}\right)=\sum\limits_{v_{j} \in M\left(v_{i}\right)} \frac{P R\left(v_{j}\right)}{L\left(v_{j}\right)}, \quad i=1,2, \cdots, n\end{array}\end{array} R=PR(v1)PR(v2)PR(vn)PR(vi)0,i=1,2,,ni=1nPR(vi)=1PR(vi)=vjM(vi)L(vj)PR(vj),i=1,2,,n
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的基本定义不适用

1.3 PageRank 的一般定义

  • 一部分是有向图的基本转移矩阵M,表示从一个结点到其连出的所有结点的转移概率相等
  • 另一部分是完全随机的转移矩阵,表示从任意一个结点到任意一个结点的转移概率都是1/n,线性组合系数为阻尼因子 d ( 0 ≤ d ≤ 1 ) d(0≤d≤1) d0d1

这个一般随机游走的马尔可夫链存在平稳分布,记作 R。
定义平稳分布向量R为这个有向图的一般PageRank。R由公式 R = d M R + 1 − d n 1 R= dMR+\frac{1-d}{n} \bf1 R=dMR+n1d1 决定, 1 \bf 1 1 是所有分量为 1 的 n 维向量

P R ( v i ) = d ( ∑ v j ∈ M ( v i ) P R ( v j ) L ( v j ) ) + 1 − d n , i = 1 , 2 , ⋯   , n P R\left(v_{i}\right)=d\left(\sum_{v_{j} \in M\left(v_{i}\right)} \frac{P R\left(v_{j}\right)}{L\left(v_{j}\right)}\right)+\frac{1-d}{n}, \quad i=1,2, \cdots, n PR(vi)=dvjM(vi)L(vj)PR(vj)+n1d,i=1,2,,n

一般PageRank的定义意味着互联网浏览者:

  • 在任意一个网页上,浏览者或者以概率 d 决定按照超链接随机跳转,这时以等概率从连接出去的超链接跳转到下一个网页
  • 或者以概率(1-d)决定完全随机跳转,这时以等概率1/n跳转到任意一个网页
  • 第二个机制保证从没有连接出去的超链接的网页也可以跳转出。这样可以保证平稳分布,即一般PageRank的存在

2. PageRank 的计算

包括迭代算法幂法代数算法。常用的方法是 幂法

2.1 迭代算法

输入:含有 n 个结点的有向图,转移矩阵 M,阻尼因子 d,初始向量 R0
输出:有向图的 PageRank 向量 R

  1. t = 0 t=0 t=0
  2. 计算 R t + 1 = d M R t + 1 − d n 1 R_{t+1} = dMR_t+\frac{1-d}{n}\bf1 Rt+1=dMRt+n1d1
  3. 如果 R t + 1 R_{t+1} Rt+1 R t R_t Rt 充分接近,令 R = R t + 1 R=R_{t+1} R=Rt+1,停止迭代
  4. 否则,令 t = t + 1 t=t+1 t=t+1,执行步 2

2.2 幂法

输入:含有 n 个结点的有向图,转移矩阵 M,系数 d,初始向量 x0,计算精度 ε \varepsilon ε
输出:有向图的 PageRankR

  1. t = 0 t=0 t=0,选择初始向量 x 0 x_0 x0
  2. 计算有向图的一般转移矩阵 A , A = d M + 1 − d n E A=dM+\frac{1-d}{n}\bf E A=dM+n1dE E \bf E E 是所有元素为1的n阶方阵
  3. 迭代并规范化结果向量
    y t + 1 = A x t y_{t+1} = Ax_t yt+1=Axt
    x t + 1 = y t + 1 ∣ ∣ y t + 1 ∣ ∣ \quad \quad x_{t+1} = \frac{y_{t+1}}{||y_{t+1}||} xt+1=yt+1yt+1

  4. ∣ ∣ x t + 1 − x t ∣ ∣ < ε ||x_{t+1}-x_t|| < \varepsilon xt+1xt<ε 时,令 R = x t R=x_t R=xt,停止迭代
  5. 否则,令 t = t + 1 t=t+1 t=t+1,执行步 3
  6. 对 R 进行规范化处理,使其表示概率分布

2.3 代数算法

代数算法 通过一般转移矩阵逆矩阵计算求有向图的一般 PageRank
按照PR的一般定义: R = d M R + 1 − d n 1 R=d M R+\frac{1-d}{n} \mathbf{1} R=dMR+n1d1
于是有:
( I − d M ) R = 1 − d n 1 (I-d M) R=\frac{1-d}{n} \mathbf{1} (IdM)R=n1d1
R = ( I − d M ) − 1 1 − d n 1 R=(I-d M)^{-1} \frac{1-d}{n} \mathbf{1} R=(IdM)1n1d1
这里 I \bf I I 是单位矩阵。
0 < d < 1 0
0<d<1
时,上面方程的解存在且唯一
可以通过求逆矩阵 ( I − d M ) − 1 (I-d M)^{-1} (IdM)1 得到有向图的一般 PageRank






版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/204517.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午8:08
下一篇 2026年3月19日 下午8:08


相关推荐

  • 中标麒麟系统u盘安装_U盘启动中标麒麟V6双系统安装教程

    中标麒麟系统u盘安装_U盘启动中标麒麟V6双系统安装教程U 盘启动中标麒麟 V6 双系统安装教程本教程是双系统教程 一般是安装 XP win7 的机器需要安装中标麒麟的朋友使用 教程内容都是在网上找到相关资料结合自己经验编写 以供需要的朋友参考 一 准备工作 1 U 盘一个 2G 以上 2 下载中标麒麟 V6ISO3 下载 UltraISO 二 制作启动 U 盘 1 打开中标麒麟 V6ISO rar 和 UltraISO 都可以打开 推荐用 UltraISO 打开 image0012 提

    2026年3月26日
    2
  • RUP简介

    RUP简介RUP RationalUnif 统一软件开发过程 统一软件过程 是一个面向对象且基于网络的程序开发方法论 根据 Rational RationalRose 和统一建模语言的开发者 的说法 好像一个在线的指导者 它可以为所有方面和层次的程序开发提供指导方针 模版以及事例支持 RUP 和类似的产品例如面向对象的软件过程 OOSP

    2026年3月18日
    2
  • windows驱动程序开发(普及)

    windows驱动程序开发(普及)1 用户态驱动驱动程序和核心态驱动程序 下图描绘出了操作系统驱动程序的相关组成部分的概貌 500 this width 500 border 0 src http blogger org cn blog uploadfile 46322 GIF Windows 驱动程序既可以运行在用户态也可以运行在核心模态 l nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 用户态的

    2026年3月26日
    1
  • 微软Office2007专业增强版 集成最新SP3[通俗易懂]

    微软Office2007专业增强版 集成最新SP3[通俗易懂]微软Office2007专业增强版,集成最新SP3补丁包,集成序列号,安装完后自动激活,不仅在功能上进行了优化,而且安全性稳定性更得到了巩固。  MicrosoftOfficeProfessionalPlus2007包括:  MicrosoftOfficeExcel2007  MicrosoftOfficeOutlook2007  MicrosoftOfficePower…

    2022年7月19日
    31
  • Java拉姆达表达式

    Java拉姆达表达式语法 lambda 表达式的重要特征变量作用域

    2026年3月16日
    2
  • 视频编解码基本流程

    视频编解码基本流程视频编解码基本框架

    2022年7月13日
    17

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号