搞懂图论中的中心性

搞懂图论中的中心性度中心 特征向量中心性 katz 中心性和 PageRank 的整理 katz 中心性

大家好,欢迎来到IT知识分享网。

0. 前言

中心性(Centrality)表示的是图(Graph)中,每个节点的重要度。图在越来越多的领域中被应用,甚至在图像小样本分类中,也有了应用,比如2022年的一篇CVPR论文《Learning to Affiliate: Mutual Centralized Learning for Few-shot Classification》就用了中心性来解决小样本分类的问题。

本文就是对目前比较主流的几种求图中心性的方法进行的梳理。

在进行算法的说明之前,首先要搞清楚,什么是“节点的重要度”。不同的方法对其定义也不相同,比如重要度可以是有多少条边从这个节点出发的,可以是有多少边经过了这个节点,也可以是有多少条边到达了这个节点。对于无向图来说,这三者都是一样的。不同的定义,对应着不同的方法,下面会详细展开讲。

1. Degree Centrality

度中心性,这是容易理解的一种中心性。它对重要度的定义是节点的入度。这是非常直观的一种定义,比如一篇论文被引用的数量可以表示其重要度。

在这里插入图片描述


图1-1 示例图

这种方法的缺点在于无视了与其相邻的邻居的重要度,这样很容易被造假。比如就网站的重要度而言,如果想要提高自己网站的重要度,只需要设计许多无意义的网站指向需要提高重要度的网站即可。

2. Eigenvector Centrality

特征向量中心性,如果使用转移矩阵,它对重要度的定义就是节点被访问的概率,如果使用邻接矩阵,它对重要度的定义就是邻居的重要度。这里涉及到一个随机游走(Random Walk)的概念,就是随机在图上的每个节点安排几个粒子,将粒子所在的位置作为起始点,然后每次随机走过一条边,记录每个节点被访问的概率,将这个概率作为重要度。

举个例子(以转移矩阵为例),图1-1所示的图的转移矩阵可以表示为
邻接矩阵


图2-1 转移矩阵

同理,可得此时落在各个节点的概率变为了

[ 3 / 8 , 5 / 24 , 5 / 24 , 5 / 24 ] ] ≈ [ 0.38 , 0.21 , 0.21 , 0.21 ] [3/8, 5/24, 5/24, 5/24] ] \approx [0.38, 0.21, 0.21, 0.21] [3/8,5/24,5/24,5/24]][0.38,0.21,0.21,0.21]

可以发现,在这个例子之下,粒子落在每个节点的概率在逐渐收敛。

先说结论,这个最终收敛的概率向量就是邻接矩阵的特征向量,且这个特征向量对应的特征值是所有特征值中最大的

并不是所有的 n × n n \times n n×n转移矩阵 T T T都是可以收敛的,这里要求转移矩阵是不可约矩阵(irreducible matrix),也就是说该转移矩阵对应的图必须是强连通图,也就是说,图中的任意一个节点都可以到达图中另外一个节点

根据Perron-Frobenius定理,如果 T T T是不可约的,那么

  • T有一个最大特征值 r r r,且 r > 0 r>0 r>0
  • r r r对应的特征向量中的所有元素均为正

这里来证明一下为什么不断游走的过程最终会收敛到转移矩阵 T T T特征值最大的特征向量。

首先,上述游走的过程就是初始概率 x 0 x_0 x0不断左乘邻接矩阵 T T T的过程,第 t t t步的概率可以表示为
x t = T t x t = T x t − 1 (2-1) x_t = T^tx_t= Tx_{t-1} \tag{2-1} xt=Ttxt=Txt1(2-1)

假设 n × n n \times n n×n的转移矩阵 T T T的单位特征向量为 v 1 , v 2 , . . . , v n v_1, v_2, …, v_n v1,v2,,vn,对应的特征值为 λ 1 , λ 2 , . . . , λ n \lambda_1, \lambda_2,…,\lambda_n λ1,λ2,,λn。这里为了最终表示方便令特征值是降序排列的,即 λ 1 > λ 2 > ⋯ > λ n \lambda_1 > \lambda_2 > \dots > \lambda_n λ1>λ2>>λn。由于单位特征向量直接线性不相关,所以任意一个 x t x_t xt都可以表示为其线性组合

x t = β 1 v 1 + β 2 v 2 + ⋯ + β n v n (2-2) x_t = \beta_1 v_1 + \beta_2 v_2 + \dots + \beta_n v_n \tag{2-2} xt=β1v1+β2v2++βnvn(2-2)

那么就有

x 1 = T x 0 = β 1 T v 1 + β 2 T v 2 + ⋯ + β n T v n (2-3) x_1 = Tx_0 = \beta_1 Tv_1 + \beta_2 Tv_2 + \dots + \beta_n Tv_n \tag{2-3} x1=Tx0=β1Tv1+β2Tv2++βnTvn(2-3)

根据特征值的性质有 T v 1 = λ 1 v 1 Tv_1 = \lambda_1 v_1 Tv1=λ1v1,带入 ( 2 − 3 ) (2-3) (23)可得

x 1 = T x 0 = β 1 λ 1 v 1 + β 2 λ 2 v 2 + ⋯ + β n λ n v n (2-4) x_1 = Tx_0 = \beta_1 \lambda_1 v_1 + \beta_2 \lambda_2 v_2 + \dots + \beta_n \lambda_n v_n \tag{2-4} x1=Tx0=β1λ1v1+β2λ2v2++βnλnvn(2-4)

我们之前已经假设了 λ 1 > λ 2 > ⋯ > λ n \lambda_1 > \lambda_2 > \dots > \lambda_n λ1>λ2>>λn,故有
l i m t → + ∞ ( λ n λ 1 ) t = 0 (2-7) lim_{t \rightarrow +\infty} (\frac{\lambda_n}{\lambda_1})^t = 0 \tag{2-7} limt+(λ1λn)t=0(2-7)

则经过无穷多次迭代之后,就有

x t = T x t − 1 = λ 1 t β 1 v 1 (2-8) x_t = Tx_{t-1} = \lambda_1^{t} \beta_1v_1 \tag{2-8} xt=Txt1=λ1tβ1v1(2-8)

λ 1 t β 1 \lambda_1^{t} \beta_1 λ1tβ1是个常数,也就是说,最后收敛得到的就是转移矩阵 T T T特征值最大的对应的特征向量。

当然最终要能收敛还有一些约束条件,因为最大的特征值可能是负的之类的情况:

  • 图中没有dead ends,也就是没有只进不出的向量,这会导致最终收敛到0;
  • 图中没有spider traps,也就是没有cyclic structure

其实,这就是说矩阵要是不可约矩阵。

3. Katz Centrality

Katz中心性对重要度的定义和特征向量中心性的定义是一致的,一般使用邻接矩阵,那也就表示了邻居的重要度

这个矩阵表示了图的结构,如果两个节点相连,那么对应的矩阵位置 i j ij ij就是1。特征向量中心性也是可以用邻接矩阵来算的。

我们令两个邻接矩阵相乘可以得到

M 2 = [ 2 0 0 2 1 2 1 0 1 2 1 0 1 1 1 1 ] (3-2) M^2 = \left[ \begin{matrix} 2 & 0 & 0 & 2 \\ 1 & 2 & 1 & 0 \\ 1 & 2 & 1 & 0 \\ 1 & 1 & 1 & 1 \end{matrix} \right] \tag{3-2} M2=
2111022101112001
(3-2)

令三个邻接矩阵相乘可以得到

M 3 = [ 2 4 2 0 3 1 1 3 3 1 1 3 3 2 1 2 ] (3-3) M^3 = \left[ \begin{matrix} 2 & 4 & 2 & 0 \\ 3 & 1 & 1 & 3 \\ 3 & 1 & 1 & 3 \\ 3 & 2 & 1 & 2 \end{matrix} \right] \tag{3-3} M3=
2333411221110332
(3-3)

仔细观察可以发现, M t M^t Mt中的位置 i j ij ij表示从 i i i走到 j j j,长度为t的不同路径的数量。比如 M 2 [ 1 , 0 ] = 1 M^2[1, 0] = 1 M2[1,0]=1表示从A到B,长度为2的路径只有1条,观察图1-1可以发现,确实只有1条,为【A->D->B】。这就是邻接矩阵累乘的实际意义。

为了解决这个问题Leo Katz提出了用一个系数 α ∈ ( 0 , 1 ) \alpha \in (0, 1) α(0,1)来惩罚长的路径,其具体定义如下式 ( 3 − 5 ) (3-5) (35)所示。
x t = α M x t − 1 + β (3-5) x_t =\alpha Mx_{t-1} + \beta \tag{3-5} xt=αMxt1+β(3-5)

α \alpha α β \beta β都是常数。 β \beta β是初始化的中心性,这个其实无所谓,取度中心性就可以,取1取0也是有的。惩罚因子 α \alpha α就比较重要了, α \alpha α不能太大,大了,比如取1,就相当于是特征向量中心性了,一般 α < 1 / ∣ r ∣ \alpha < 1 / |r| α<1/∣r r r r M M M的最大特征值; α \alpha α也不能太小,小了,比如取0,就变成度中心性了。

假设最终可以收敛,令 x t = x t − 1 x_t = x_{t-1} xt=xt1,那么根据式(3-5)就有
x t = β ( I − α M ) − 1 (3-6) x_t = \beta (I – \alpha M)^{-1} \tag{3-6} xt=β(IαM)1(3-6)

这就是计算katz中心性的式子。

4. PageRank

PageRank对重要度的定义和特征向量中心性的定义是一致的,也就是邻居的重要度。Katz中心性的问题是,一个高中心性的节点,会把其影响传播给其他的节点,比如google链接了无数的网站,google的中心性很高,这就会使得google指向的网站中心性都很高,这是我们不希望的。PageRank通过出度(out-degree)将中心性进行了稀释。

PageRank的定义为

x t = α M D − 1 x t − 1 + β (4-1) x_t = \alpha MD^{-1}x_{t-1} + \beta\tag{4-1} xt=αMD1xt1+β(4-1)

其中 D D D是一个对角矩阵, d i i = m a x ( r i o u t , 1 ) d_{ii} = max(r_{i}^{out}, 1) dii=max(riout,1),对于没有出度的,令 d i i = 1 d_{ii} = 1 dii=1,相当于中心性除以了出度。

同样的,上式可以表示为

x t = β ( I − α M D − 1 ) − 1 = β D ( D − α A ) − 1 (4-2) x_t = \beta (I – \alpha MD^{-1})^{-1} = \beta D(D – \alpha A)^{-1} \tag{4-2} xt=β(IαMD1)1=βD(DαA)1(4-2)

同样地, α \alpha α的取值是有范围的,不能大于 A D − 1 AD^{-1} AD1的最大特征值的倒数。特别地,对于无向图来说,这个值就是1。

参考资料

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/119130.html

(0)
上一篇 2025-11-07 19:26
下一篇 2025-11-07 19:45

相关推荐

发表回复

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

关注微信