zoukankan      html  css  js  c++  java
  • PageRank算法详解

    https://zhuanlan.zhihu.com/p/137561088

    在实际应用中许多数据都以图(graph)的形式存在,比如,互联网、社交网络都可以看作是一个图。图数据上的机器学习具有理论与应用上的重要意义。 PageRank 算 法是图的链接分析(link analysis)的代表性算法,属于图数据上的无监督学习方法。

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

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

    本文第1节给出PageRank 的定义,第2节叙述PageRank的计算方法,包括常用的幕法 (power method)。

    1.PageRank的定义

    1.1 基本想法

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

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

    图1表示一个有向图,假设是简化的互联网例,结点 [公式] , [公式] , [公式] 和 [公式] 表示网页,结点之间的有向边表示网页之间的超链接,边上的权值表示网页之间随机跳转的概率。假设有一个浏览者,在网上随机游走。如果浏览者在网页 [公式] ,则下一步以 [公式] 的概率转移到网页 [公式] , [公式] 和 [公式] 。如果浏览者在网页 [公式] ,则下一步以 [公式] 的概率转移到网页 [公式] 和 [公式] 。如果浏览者在网页 [公式] ,则下一步以概率 [公式] 转移到网页 [公式] 。如果浏览者在网页 [公式] ,则下一步以 [公式] 的概率转移到网页 [公式] 和 [公式] 。

    图1 有向图

    直观上,一个网页,如果指向该网页的超链接越多,随机跳转到该网页的概率也就越高,该网页的PageRank值就越高,这个网页也就越重要。一个网页,如果指向该网页的PageRank值越高,随机跳转到该网页的概率也就越高,该网页的PageRank值就越高,这个网页也就越重要。PageRank值依赖于网络的拓扑结构,一旦网络的拓扑(连接关系)确定,PageRank值就确定。

    PageRank 的计算可以在互联网的有向图上进行,通常是一个迭代过程。先假设一 个初始分布,通过迭代,不断计算所有网页的PageRank值,直到收敛为止。

    下面首先给出有向图及有向图上随机游走模型的定义,然后给出PageRank的基本定义,以及PageRank的一般定义。基本定义对应于理想情况,一般定义对应于现实情况。

    1.2 有向图和随机游走模型

    1.有向图

    定义1 (有向图) 有向图(directed graph)记作 [公式] ,其中 [公式] 和[公式]分别表示结点和有向边的集合。

    比如,互联网就可以看作是一个有向图,每个网页是有向图的一个结点,网页之间的每一条超链接是有向图的一条边。

    从一个结点出发到达另一个结点,所经过的边的一个序列称为一条路径 (path) , 路径上边的个数称为路径的长度。如果一个有向图从其中任何一个结点出发可以到达其他任何一个结点,就称这个有向图是强连通图 (strongly connected graph) 。 图1中的有向图就是一个强连通图。

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

    图2是一个周期性有向图的例子。从结点[公式]出发返回到[公式],必须经过路径[公式] ,所有可能的路径的长度都是[公式]的倍数,所以结点 [公式] 是周期性结点。 这个有向图是周期性图。

    图2 周期性有向图

    2. 随机游走模型

    定义2(随机游走模型)给定一个含有 [公式] 个结点的有向图,在有向图上定义随机游走( random walk)模型,即一阶马尔可夫链,其中结点表示状态,有向边表示状态之间的转移,假设从一个结点到通过有向边相连的所有结点的转移概率相等。具体地,转移矩阵是一个 [公式] 阶矩阵 [公式]

    [公式]

    第 [公式] 行第 [公式] 列的元素 [公式] 取值规则如下:如果结点 [公式] 有 [公式] 个有向边连出,并且结点 [公式] 是其连出的一个结点,则 [公式] ;否则 [公式] , [公式] 。

    注意转移矩阵具有性质: [公式]

    [公式]

    即每个元素非负,每列元素之和为 [公式] 即矩阵 [公式] 为随机矩阵(stochastic matrix)。

    在有向图上的随机游走形成马尔可夫链。也就是说,随机游走者每经一个单位时间转移一个状态,如果当前时刻在第 [公式] 个结点(状态),那么下一个时刻在第 [公式] 个结点(状态)的概率是 [公式] 这一概率只依赖于当前的状态,与过去无关,具有马尔可夫性。

    在图1的有向图上可以定义随机游走模型。结点 [公式] 到结点 [公式] , [公式] 和 [公式] 存在有向边,可以以概率 [公式] 从 [公式] 分别转移到 [公式] , [公式] 和 [公式] ,并以概率 [公式] 转移到 [公式] , 于是可以写出转移矩阵的第 [公式] 列。结点 [公式] 到结点 [公式] 和 [公式] 存在有向边,可以以概率 [公式] 从 [公式] 分别转移到 [公式] 和 [公式] ,并以概率 [公式] 分别转移到 [公式] 和 [公式] ,于是可以写出矩阵的第 [公式] 列,等等。于是得到转移矩阵

    [公式]

    随机游走在某个时刻 [公式] 访问各个结点的概率分布就是马尔可夫链在时刻 [公式] 的状态分布,可以用一个 [公式] 维列向量 [公式] 表示,那么在时刻 [公式] 访问各个结点的概率分布[公式]满足

    [公式]

    1.3 PageRank 的基本定义

    给定一个包含 [公式] 个结点的强连通且非周期性的有向图,在其基础上定义随机游走模型。假设转移矩阵为 [公式] , 在时刻 [公式] 访问各个结点的概率分布为

    [公式]

    则极限

    [公式]

    存在,极限向量 [公式] 表示马尔可夫链的平稳分布,满足

    [公式]

    定义3 (PageRank 的基本定义) 给定一个包含 [公式] 个结点 [公式]的强连通且非周期性的有向图,在有向图上定义随机游走模型,即一阶马尔可夫链。随机游走的特点是从一个结点到有有向边连出的所有结点的转移概率相等,转移矩阵为 [公式] 。这个马尔可夫链具有平稳分布 [公式]

    [公式]

    平稳分布 [公式] 称为这个有向图的 PageRank。 [公式] 的各个分量称为各个结点的 [公式] 值。

    [公式]

    其中 [公式] , [公式] ,表示结点的的 PageRank 值。

    显然有

    [公式]

    [公式]

    [公式]

    这里 [公式] 表示指向结点 [公式] 的结点集合, [公式] 表示结点 [公式] 连出的有向边的个数。

    PageRank的基本定义是理想化的情况,在这种情况下,PageRank存在,而且可以通过不断迭代求得PageRank值。

    定理1 不可约且非周期的有限状态马尔可夫链,有唯一平稳分布存在,并且 当时间趋于无穷时状态分布收敛于唯一的平稳分布。

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

    1.4 PageRank 的一般定义

    PageRank 一般定义的想法是在基本定义的基础上导入平滑项。

    给定一个含有 [公式] 个结点 [公式] , [公式] ,的任意有向图,假设考虑一个在图上随机游走模型,即一阶马尔可夫链,其转移矩阵是 [公式] ,从一个结点到其连出的所有结点的转移概率相等。 这个马尔可夫链未必具有平稳分布。 假设考虑另一个完全随机游走的模型,其转移矩阵的元素全部为 [公式] , 也就是说从任意一个结点到任意一个结点的转移概率都是 [公式] 。 两个转移矩阵的线性组合又构成一个新的转移矩阵,在其上可以定义一个新的马尔可夫链。 容易证明这个马尔可夫链一定具有平稳分布,且平稳分布满足

    [公式]

    式中 [公式] 是系数,称为阻尼因子(damping factor), [公式] 是 [公式] 维向量,[公式]是所 有分量为 [公式] 的 [公式] 维向量。 [公式] 表示的就是有向图的一般PageRank。

     

    式(10)中第一项表示(状态分布是平稳分布时)依照转移矩阵 [公式] 访问各个结点的概率,第二项表示完全随机访问各个结点的概率。阻尼因子 [公式] 取值由经验决定,例如 [公式] 。当 [公式] 接近 [公式] 时,随机游走主要依照转移矩阵 [公式] 进行;当 [公式] 接近 [公式] 时,随机游走主要以等概率随机访问各个结点。

    可以由式 (10) 写出每个结点的 PageRank,这是一般 PageRank 的定义。

    [公式]

    第二项称为平滑I页,由于采用平滑项,所有结点的 PageRank 值都不会为 0,具有以下性质:

    [公式] [公式]

    下面给出 PageRank 的一般定义。

    定义 4(PageRank 的一般定义)给定一个含有 [公式] 个结点的任意有向图,在有向图上定义一个一般的随机游走模型,即一阶马尔可夫链。一般的随机游走模型的转移矩阵由两部分的线性组合组成,一部分是有向图的基本转移矩阵 [公式] ,表示从一个结点到其连出的所有结点的转移概率相等,另一部分是完全随机的转移矩阵,表示从任意一个结点到任意一个结点的转移概率都是 [公式] ,线性组合系数为阻尼因子 [公式] 。 这个一般随机游走的马尔可夫链存在平稳分布, 记作 [公式] 。定义平稳分布向量 [公式] 为这个有向图的一般 PageRank。 [公式] 由公式

    [公式]

    决定,其中 [公式] 是所有分量为 [公式] 的 [公式] 维向量。

    一般 PageRank 的定义意味着互联网浏览者,按照以下方法在网上随机游走:任意一个网页上,浏览者或者以概率 [公式] 决定按照超链接随机跳转,这时以等概率从连 接出去的超链接跳转到下一个网页;或者以概率 [公式] 决定完全随机跳转,这时以等概率 [公式] 跳转到任意一个网页。 第二个机制保证从没有连接出去的超链接的网页也可以跳转出。这样可以保证平稳分布,即一般 PageRank 的存在,因而一般 PageRank 适用于任何结构的网络。

    2.PageRank 的计算

    PageRank 的定义是构造性的,即定义本身就给出了算法。本节列出 PageRank 的 计算方法包括法代算法、幕法、代数算法。常用的方法是事法。

    2.1 迭代算法

    给定一个含有 [公式] 个结点的有向图,转移矩阵为 [公式] ,有向图的一般 PageRank 由迭代公式(14)的极限向量 [公式] 确定。PageRank 的迭代算法,就是按照这个一般定义进行选代,直至收敛。

    算法 1 (PageRank 的迭代算法)

    输入:含有 [公式] 个结点的有向图,转移矩阵 [公式] , 阻尼因子 [公式] , 初始向量 [公式] ;

    输出:有向图的 PageRank 向量 R。

    (1)令 [公式]

    (2)计算

    [公式]

    (3)如果 [公式] 与 [公式] 充分接近,令 [公式] 停止迭代。

    (4)否则 [公式] ,执行(2)

     

    算法2 (计算一般 PageRank 的幂法)

    输入:含有[公式]个结点的有向图,有向图的转移矩阵 [公式] ,系数 [公式] ,初始向量 [公式],计算精度 [公式] ;

    输出:有向图的 PageRank [公式] 。

    (1)令 [公式] ,选择初始向量 [公式]

    (2)计算有向图的一般转移矩阵 [公式]

    [公式]

    (3)迭代并规范化结果向量

    [公式]

    (4) 当 [公式] 时,令 [公式] ,停止迭代。

    (5)否则,令 [公式] , 执行步 (3)。

    (6)对 [公式] 进行规范化处理,使其表示概率分布。

     

    算法3 (代数算法)

    代数算法通过一般转移矩阵的逆矩阵计算求有向图的一般 PageRank。

    按照一般 PageRank 的定义式(14),于是,

    [公式]

    [公式]

    这里 [公式] 是单位矩阵。当 [公式] 时,线性方程组(15)的解存在且唯一。这样,可以通过求逆矩阵 [公式] 得到有向图的一般PageRank。

    参考文献:

    统计学习方法第二版 李航

  • 相关阅读:
    Linux内核分析— —操作系统是如何工作的(20135213林涵锦)
    【BARTS计划】【Share_Week1】社交产品思考
    【BARTS计划】【Tips_Week1】20190331更新
    【BARTS计划】【Review_Week1】Google Docs 成为青少年们喜爱的聊天 app
    【学习博客】Python学习初体验
    《构建之法》读书笔记5
    《构建之法》8&16
    《构建之法》读书笔记4
    《构建之法》读书笔记3
    《构建之法》读书笔记2
  • 原文地址:https://www.cnblogs.com/dhcn/p/13667416.html
Copyright © 2011-2022 走看看