在实际应用中许多数据都以图(graph)的形式存在,比如,互联网、社交网络都可以看作是一个图。图数据上的机器学习具有理论与应用上的重要意义。 PageRank 算 法是图的链接分析(link analysis)的代表性算法,属于图数据上的无监督学习方法。
PageRank算法最初作为互联网网页重要度的计算方法,1996 年由Page和Brin提出,并用于谷歌搜索引擎的网页排序。事实上,PageRank 可以定义在任意有向图上,后来被应用到社会影响力分析、文本摘要等多个问题。
PageRank算法的基本想法是在有向图上定义一个随机游走模型,即一阶马尔可夫链,描述随机游走者沿着有向图随机访问各个结点的行为。在一定条件下,极限情况访问每个结点的概率收敛到平稳分布,这时各个结点的平稳概率值就是其PageRank值,表示结点的重要度。PageRank 是递归定义的,PageRank 的计算可以通过迭代算法进行。
本文第1节给出PageRank 的定义,第2节叙述PageRank的计算方法,包括常用的幕法 (power method)。
历史上,PageRank算法作为计算互联网网页重要度的算法被提出。PageRank是定义在网页集合上的一个函数,它对每个网页给出一个正实数,表示网页的重要程度,整体构成一个向量,PageRank值越高,网页就越重要,在互联网搜索的排序中可能就被排在前面。
假设互联网是一个有向图,在其基础上定义随机游走模型,即一阶马尔可夫链,表示网页浏览者在互联网上随机浏览网页的过程。假设浏览者在每个网页依照连接出去的超链接以等概率跳转到下一个网页,并在网上持续不断进行这样的随机跳转,这个过程形成一阶马尔可夫链。PageRank表示这个马尔可夫链的平稳分布。每个网页的PageRank值就是平稳概率。
图1表示一个有向图,假设是简化的互联网例,结点
直观上,一个网页,如果指向该网页的超链接越多,随机跳转到该网页的概率也就越高,该网页的PageRank值就越高,这个网页也就越重要。一个网页,如果指向该网页的PageRank值越高,随机跳转到该网页的概率也就越高,该网页的PageRank值就越高,这个网页也就越重要。PageRank值依赖于网络的拓扑结构,一旦网络的拓扑(连接关系)确定,PageRank值就确定。
PageRank 的计算可以在互联网的有向图上进行,通常是一个迭代过程。先假设一 个初始分布,通过迭代,不断计算所有网页的PageRank值,直到收敛为止。
下面首先给出有向图及有向图上随机游走模型的定义,然后给出PageRank的基本定义,以及PageRank的一般定义。基本定义对应于理想情况,一般定义对应于现实情况。
1.有向图
定义1 (有向图) 有向图(directed graph)记作
比如,互联网就可以看作是一个有向图,每个网页是有向图的一个结点,网页之间的每一条超链接是有向图的一条边。
从一个结点出发到达另一个结点,所经过的边的一个序列称为一条路径 (path) , 路径上边的个数称为路径的长度。如果一个有向图从其中任何一个结点出发可以到达其他任何一个结点,就称这个有向图是强连通图 (strongly connected graph) 。 图1中的有向图就是一个强连通图。
假设
图2是一个周期性有向图的例子。从结点
2. 随机游走模型
定义2(随机游走模型)给定一个含有
第
注意转移矩阵具有性质:
即每个元素非负,每列元素之和为
在有向图上的随机游走形成马尔可夫链。也就是说,随机游走者每经一个单位时间转移一个状态,如果当前时刻在第
在图1的有向图上可以定义随机游走模型。结点
随机游走在某个时刻
给定一个包含
则极限
存在,极限向量
定义3 (PageRank 的基本定义) 给定一个包含
平稳分布
其中
显然有
这里
PageRank的基本定义是理想化的情况,在这种情况下,PageRank存在,而且可以通过不断迭代求得PageRank值。
定理1 不可约且非周期的有限状态马尔可夫链,有唯一平稳分布存在,并且 当时间趋于无穷时状态分布收敛于唯一的平稳分布。
根据马尔可夫链平稳分布定理,强连通且非周期的有向图上定义的随机游走模 型(马尔可夫链) ,在图上的随机游走当时间趋于无穷时状态分布收敛于唯一的平稳分布。
PageRank 一般定义的想法是在基本定义的基础上导入平滑项。
给定一个含有
式中
式(10)中第一项表示(状态分布是平稳分布时)依照转移矩阵
可以由式 (10) 写出每个结点的 PageRank,这是一般 PageRank 的定义。
第二项称为平滑I页,由于采用平滑项,所有结点的 PageRank 值都不会为 0,具有以下性质:
下面给出 PageRank 的一般定义。
定义 4(PageRank 的一般定义)给定一个含有
决定,其中
一般 PageRank 的定义意味着互联网浏览者,按照以下方法在网上随机游走:任意一个网页上,浏览者或者以概率
PageRank 的定义是构造性的,即定义本身就给出了算法。本节列出 PageRank 的 计算方法包括法代算法、幕法、代数算法。常用的方法是事法。
给定一个含有
算法 1 (PageRank 的迭代算法)
输入:含有
输出:有向图的 PageRank 向量 R。
(1)令
(2)计算
(3)如果
(4)否则
算法2 (计算一般 PageRank 的幂法)
输入:含有
输出:有向图的 PageRank
(1)令
(2)计算有向图的一般转移矩阵
(3)迭代并规范化结果向量
(4) 当
(5)否则,令
(6)对
算法3 (代数算法)
代数算法通过一般转移矩阵的逆矩阵计算求有向图的一般 PageRank。
按照一般 PageRank 的定义式(14),于是,
这里
统计学习方法第二版 李航