《Graph Learning》| 图传播算法(上)

从本章开始,我们就会陆续讲一些图算法。本文首先给大家聊一聊图传播算法,对于图传播算法,并没有确切的定义,但是这类算法都有着十分明确和统一的范式,理解了这一范式之后,就能迅速掌握此类算法。


给定图G={V,E},V表示节点集合,E表示边集合,设N(Vi)表示节点Vi的邻居节点构成的集合,若G为有向图:

《Graph Learning》| 图传播算法(上)_第1张图片

其中Nin(Vi)表示Vi的入边节点集合,Nout(Vi)表示Vi的出边节点集合。


假设我们对Vi节点的衡量指标表示为Rvi(比如后面会具体谈到的指标PageRank值、hub值、Authority值等)衡量指标的更新规则为函数f,则图传播算法的一般步骤执行如下:

1、初始化Rvi

2、While(不满足停止条件)

3、

《Graph Learning》| 图传播算法(上)_第2张图片

上述步骤的核心在于第三行中的更新函数f,一般来说f具有以下两个特点:


a. f是无参的,就是说f是直接进行量化计算的,不需要参数学习过程。这样的特点就决定了f的设计需要十分精巧,符合一定的基本经验直觉,总结来说就是:

《Graph Learning》| 图传播算法(上)_第3张图片

b. f是作用在节点一阶邻域上的。这一点是很多以节点为中心的算法的共同特点,每一次节点在更新过程中,只有邻居节点参与运算,但是随着更新次数的增加,信息的流通也变得更Global。


另外,停止条件一般选取一个最大的迭代轮数或者Rvi不再变化。下面,我们结合4个经典的图传播算法来看看该范式是怎么发挥实际作用的。


第一个:PageRank

如果将每一个网页都抽象成一个节点,网页A有链接指向B,则存在一条有向边从节点A指向节点B,那么整个Web网页就抽象成为一张有向图。PageRank算法要做的就是对图中的每个节点进行重要性排名。


经验假设:

  • 数量假设——被更多网页链接到的网页更重要;

  • 权重假设——有更少外链的网页将会传递更高的权重。


数量假设表示重要性的计算是加和的,权重假设是说重要性的计算是加权的,因此,如果要量化重要性的计算,其在数学形式上一定是加权求和的。


下面我们直接给出更新函数的向量化形式:

《Graph Learning》| 图传播算法(上)_第4张图片


Rvi表示节点Vi的重要度排名

《Graph Learning》| 图传播算法(上)_第5张图片

Vj的权重

下面我们举个经典的例子来说明PageRank算法是怎么计算的。假设有A,B,C,D四个网页,其构成的有向图如下:

《Graph Learning》| 图传播算法(上)_第6张图片

《Graph Learning》| 图传播算法(上)_第7张图片

邻接矩阵


Adj(ij)=1,则表示有节点从j指向节点i的边,对Adj按列进行归一化得到:

《Graph Learning》| 图传播算法(上)_第8张图片

我们称M为转移矩阵(Transition,Matrix)Mij表示从节点j跳转到节点i的概率,可以看到:

《Graph Learning》| 图传播算法(上)_第9张图片

初始时设每个网页的排名都是1/N

《Graph Learning》| 图传播算法(上)_第10张图片

依据上面更新函数,将其写成矩阵形式则更新后:

《Graph Learning》| 图传播算法(上)_第11张图片

之后,不断重复这个过程会发现,R最终是收敛的。这里我们需要注意到一个重要的性质,如果R初始化后加和为1,则R在之后的迭代过程中,R的加和永远保持为1,我们可以证明下:

R=MR,两边求和,我们看右边

《Graph Learning》| 图传播算法(上)_第12张图片

Mcol为M矩阵列向量之和组成的向量,由M的定义可知,M矩阵每一列加和为1,所以这里Mcol是一个全1向量,因此:

《Graph Learning》| 图传播算法(上)_第13张图片

由于R初始化后加和为1,则上式恒等于1。更严格来说,如果有向图是强连通的(任意两个节点之间至少存在一条路径可达),R的初始化加和为1,则可证明R是收敛的。实际上,Web网页并不是强连通的图,存在以下两种情况导致PageRank计算失败:


1、DeadEnds,有节点不存在外链。这会导致什么问题呢?我们举个例子:

《Graph Learning》| 图传播算法(上)_第14张图片

《Graph Learning》| 图传播算法(上)_第15张图片

D节点不存在任何外链,如果我们进行迭代计算,由于上面的性质可得:

《Graph Learning》| 图传播算法(上)_第16张图片

可以看到,新得到的R的求和是不断减小的,这个过程如果一直不断迭代下去,R全部都会变成0,使得计算失效。


2、Spider traps:有些节点只存在指向自己的外链,这又会导致什么问题呢?同样举个例:

《Graph Learning》| 图传播算法(上)_第17张图片

《Graph Learning》| 图传播算法(上)_第18张图片

节点D只存在指向自己的外链,首先

《Graph Learning》| 图传播算法(上)_第19张图片

符合R永远是加和为1的,但是注意

《Graph Learning》| 图传播算法(上)_第20张图片

可以看到D的排名R4永远比上一轮大,因此计算下去会快速的发现最后D的R值为1,其他节点都为0。


在实际应用中,为了有效避免上述两个问题,会使用到一个小技巧,就是假设每个节点都有一个假想的外链指向其它任一节点,这样整个图就变成了一个强连通图了。当然,为了尽量不影响最终计算的PageRank值,节点通过假想外链传递的PageRank值会乘一个权重因子β,β一般取0.2或者更小。因此,实际中PageRank的更新公式变成了:

《Graph Learning》| 图传播算法(上)_第21张图片

如果按照这个更新公式下去,每个页面都会得到一个合理的排名值。


关于其他的算法,我们会在下篇中继续介绍。


相关阅读:

《Graph Learning》| 第一章:缤纷的图世界

《浅析图卷积神经网络》


关注微信公众号geetest_jy 获取更多关于图学习的资料

你可能感兴趣的:(GCN)