中心性算法用于理解特定节点的作用及其对网络的影响。这些算法可以识别最重要的节点,帮助我们了解群组动态,例如可信度、可访问性、事物的传播速度以及群组之间的桥梁等。
degree(度中心性算法)
度量节点拥有的关系数量,例如,通过研究入度来评估某人的受欢迎程度,使用出度评估其社交情况。
eigenvector(特征向量中心性算法)
特征向量中心性算法是用来度量节点之间的传递影响和连通性的算法。它的基本思想是:一个节点的重要性既取决于其相邻节点的重要性。换言之,在一个网络中,如果一个人拥有很多重要的朋友,那么他也很重要。
记xix_ixi为节点iii的重要性度量值,则
xi=c∑j=1Naijxjx_i=c\displaystyle\sum_{j=1}^{N}a_{ij}x_jxi=cj=1∑Naijxj
记x=[x1,x2,...,xN]Tx=[x_1,x_2,...,x_N]^Tx=[x1,x2,...,xN]T,其中ccc是一比例常数,A=(aij)A=(a_{ij})A=(aij)是网络的邻接矩阵。
例如:
假设有一个图
则有其对应的邻接矩阵为:
A=[0111010100110101010100010]A=\left[\begin{matrix}
0&1&1&1&0\\
1&0&1&0&0\\
1&1&0&1&0\\
1&0&1&0&1\\
0&0&0&1&0
\end{matrix}\right]A=⎣⎡0111010100110101010100010⎦⎤
假设每个点的度中心性为
x=[32331]x=\left[\begin{matrix}
3\\
2\\
3\\
3\\
1
\end{matrix}\right]x=⎣⎡32331⎦⎤
则
A∗x=[86873]A*x=\left[\begin{matrix}
8\\
6\\
8\\
7\\
3
\end{matrix}\right]A∗x=⎣⎡86873⎦⎤
这个过程可以理解为每一个节点viv_ivi根据矩阵AAA获取了与该节点相连的节点集Vi,neighbourV_{i,neighbour}Vi,neighbour,然后根据Vi,neighbourV_{i,neighbour}Vi,neighbour的点值(连接数、点度中心性)加起来,作为viv_ivi的特征向量中心性。
katz centrality
katz centrality计算的方法与eigenvector centrality类似,并且实际上是eigenvector centrality方法的一般化。计算公式如下:
xi=α∑jAijxj+βx_i=\alpha\displaystyle\sum_jA_{ij}x_j+\betaxi=αj∑Aijxj+β
其中AAA是图GGG的邻接矩阵,假设λ\lambdaλ是其特征值,β\betaβ控制节点的初始中心性,并且α<1λmax\alpha<\frac{1}{\lambda_{max}}α<λmax1
closeness centrality(紧密中心性)
度中心性利用网络的局部特征,即节点的连接数有多少来判断节点的中心性。但一个人连接数多,并不代表处于核心位置,紧密中心性利用整个网络的特征,即一个节点在整个结构中所处的位置。
如果节点到其他节点的最短距离都很小,那么它的接近中心性就越高。紧密中心性的值定义为这个平均距离的倒数:
C(u)=n−1∑v=1n−1d(v,u)C(u)=\frac{n-1}{\sum_{v=1}^{n-1}d(v,u)}C(u)=∑v=1n−1d(v,u)n−1
其中,d(v,u)d(v,u)d(v,u)是vvv和uuu的最短距离,而nnn是能到达uuu的所有节点的数量。
(electrical)current flow closeness (基于电流的中心性度量算法)
基于最短路径的中心性算法可以转换成基于电流(electrical current)的中心性算法,将两个节点的“电势差”来代替它们之间的距离d(v,u)d(v,u)d(v,u)
Ccc=n−1∑s≠tpst(s)−pst(t)C_{cc}=\frac{n-1}{\sum_{s\neq t}p_{st}(s)-p_{st}(t)}Ccc=∑s=tpst(s)−pst(t)n−1
其中(n−1)(n-1)(n−1)是归一化因子,pst(s)p_{st}(s)pst(s) 表示节点sss的绝对电势(基于从节点sss到节点ttt之间的电流供应),而pst(s)−pst(t)p_{st}(s)-p_{st}(t)pst(s)−pst(t)表示有效电阻,而这个电阻经常用于测量电压。
betweeness centrality(介数中心性算法)
从每块中的任一节点到其他某块中的任一节点的最短路径必然要经过节点viv_ivi。这种以经过某个节点的最短路径的数目来刻画节点重要性的指标称为介数中心性,简称介数(BC)。最基本的介数中心性是通过最短路径(shortest path)来计算的,如果这些最短路径中有很多条都经过viv_ivi,则认为节点的介数高。
一个节点viv_ivi的介数定义为:
BCi=∑vs≠vi≠vt,s<tσst(vi)σstBC_i=\displaystyle\sum_{v_s\neq v_i\neq v_t,s<t}\frac{\sigma_{st}(v_i)}{\sigma_{st}}BCi=vs=vi=vt,s<t∑σstσst(vi)
其中,σst\sigma_{st}σst表示从节点sss到节点ttt的最短路径的总数量,σst(vi)\sigma_{st}(v_i)σst(vi)表示这些最短路径中经过节点viv_ivi的路径的数量。
current-flow betweeness centrality(电流介数中心性)
电流介数中心性的计算公式如下:
CCB(v)=∑s≠t∈VIv(st)12n(n−1)C_{CB}(v)=\frac{\displaystyle\sum_{s\neq t \in V}I_v^{(st)}}{\frac{1}{2}n(n-1)}CCB(v)=21n(n−1)s=t∈V∑Iv(st)
其中n(n−1)/2n(n-1)/2n(n−1)/2是归一化因数,Iv(st)I_v^{(st)}Iv(st)是经过节点vvv的,从源节点sss到目标节点vvv的电流。
communicability betweenness centrality
假设有一个简单无向图G=(V,E)G=(V,E)G=(V,E),其中有nnn个节点和mmm条边。AAA是图GGG的邻接矩阵。G(r)=(V,E(r))G(r)=(V,E(r))G(r)=(V,E(r))表示,去除所有连接节点rrr的边后得到的图。
G(r)G(r)G(r)的邻接矩阵是A+E(r)A+E(r)A+E(r),其中E(r)E(r)E(r)除了第rrr行和第rrr列的元素之外,其他的元素都是0。
节点rrr的Communicability betweenness centrality是
wr=1C∑p∑qGprqGpqw_r=\frac{1}{C}\displaystyle\sum_p\displaystyle\sum_q\frac{G_{prq}}{G_{pq}}wr=C1p∑q∑GpqGprq
其中,p≠q,p≠r,q≠rp\neq q,p\neq r,q\neq rp=q,p=r,q=r(未完待续)
group betweenese centrality
集团介数中心性计算的是一个节点集CCC的介数中心性。
CB(v)=∑s,t∈Vσ(s,t∣v)σ(s,t)C_B(v)=\displaystyle\sum_{s,t\in V}\frac{\sigma(s,t|v)}{\sigma(s,t)}CB(v)=s,t∈V∑σ(s,t)σ(s,t∣v)
其中,VVV是节点集,σ(s,t)\sigma(s,t)σ(s,t)是最短路径的数量,σ(s,t∣C)\sigma(s,t|C)σ(s,t∣C)是经过CCC中任意一个节点的最短路径数量。注意(s,t)(s,t)(s,t)不在CCC中。
subgraph centrality
这个指标说明了一个节点在一个网络的所有子图中的参与程度。
SC(v)=∑k=0∞μk(v)k!SC(v)=\displaystyle\sum_{k=0}^\infty \frac{\mu_k(v)}{k!}SC(v)=k=0∑∞k!μk(v)
其中μk(v)\mu_k(v)μk(v)表示以vvv作为起点和终点,并且长度为kkk的封闭通路的数量。
harmonic centrality(谐波中心性)
节点uuu的谐波中心性是所有其他节点与uuu的最短路径的倒数的和。
CH(x)=∑y≠x1d(y,x)C_H(x)=\displaystyle\sum_{y\neq x}\frac{1}{d(y,x)}CH(x)=y=x∑d(y,x)1