平均クラスタ係数

平均<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%AF%A5%E9%A5%B9%A5%BF">クラスタ</a>係数G=(V,E)G=(V,E)について考える。

N=VN=|V|

M=EM=|E|


隣接行列

隣接行列AAの要素ai,ja_{i,j}は、ii番目のノードとjj番目のノードが隣接している場合、ai,j=1a_{i,j}=1、そうでない場合にはai,j=0a_{i,j}=0を取る行列である。

無向グラフの場合、枝(i,j),(j,i)E(i,j), (j,i)\in Eを区別しないので、隣接行列は対称行列となる。


  • ネットワークの性質を解析的に議論する際には、隣接行列が有用である。
  • 一方、数値的に解析する場合には、隣接していないノード対を表すゼロの数の割合が非常に高いため、現実のグラフを表現した際に、行列の成分全体の1%ほどしか非ゼロ成分が存在しない場合がある。このような非ゼロ成分の少ない行列を扱うために計算機のメモリを無駄にに消費してしまう。この場合は、行列のデータ構造を工夫するなどして効率よく計算していく必要がある。


ノードの次数

ii番目のノードに繋がっているエッジの本数をノードii次数といい、kik_iで表す。次数kik_iは隣接行列AAの要素ai,ja_{i,j}を用いて

ki=j=1Naijk_i = \sum_{j=1}^Na_{ij}

と表すことができる。例えば、単純グラフの場合はノード iiに隣接するノード数と次数が一致する。

  • 次数は、ネットワークが持つ情報を全て含む隣接行列をトレースアウトして得られる特徴量のなかで最も単純な量である。
  • ネットワーク構造を議論する際には、極めて重要となる基本的な量である。


代表的なグラフの次数に関する性質

  • 全ノードの次数がN1N-1であるネットワークは完全グラフである。
  • 全ての次数がkkであるネットワークがkk-正則グラフである。



握手の定理とは、グラフのノード全体の次数と枝の本数に関する関係式である。

i=1Nki=2M\sum_{i=1}^Nk_i=2M
2M=i,j=1Nai,j=TrA22M=\sum_{i,j=1}^Na_{i,j}={\rm Tr}A^2

この等式は、多重エッジや自己ループを含むようなグラフに対しても成立する。握手の定理から次の補題が従う。


[補題] 任意のネットワークにおいて奇数次数のノードは偶数個ある。

証明:

Sodd,SevenS_{odd}, S_{even}をそれぞれ次数が奇数, 偶数であるノードの集合とする。 SoddSeven=VS_{odd}\cup S_{even}=Vであるから、握手の定理より

2M=iSoddki+iSevenki2M=\sum_{i\in S_{odd}} k_i + \sum_{i \in S_{even}} k_i

左辺に注目すると、Mが整数であることから2Mは偶数である。一方、右辺に着目すると第二項は次数が偶数のノードの次数の和であるから、偶数である。よって上記の等式が成り立つためには、第一項が偶数である必要がある。今、第一項は次数が奇数のノードの和であるから、上記の等式が成り立つためには、総和の項数が偶数である必要がある。逆に、総和の項数が偶数であれば、上記の等式が成り立つ。

よって任意のネットワークにおいて、奇数次数のノードは偶数個あることがわかる。


グラフの平均次数

次数を全ノードで平均した平均次数k\langle k\rangleは、ネットワーク全体の大域的性質を表す量の1つである。全ノードの次数の平均値が平均次数なので

k=1Ni=1Nki=2MN\begin{align*} \langle k \rangle&=\frac{1}{N} \sum_{i=1}^Nk_i \\ &=\frac{2M}{N} \end{align*}

と表される。後半の式変更には握手の定理を用いた。


  • 全ての無向グラフにおいてkN1\langle k\rangle \leq N-1であり、等号成立条件は完全グラフの場合に限る。
  • k\langle k \rangleがNと同程度の大きさであるようなグラフは、エッジの密度が高い。
  • 逆に平均次数がNから小さいグラフはエッジの密度の低い疎なグラフであると言える。
  • 平均次数はグラフのエッジの「密度」を反映した量であると言える。


エッジ密度とクラスター係数

グラフ内のノードがどれほど密に繋がっているかは、グラフを特徴づける重要な要素である。

同じNN個のノードからなるネットワークでも、完全グラフと木とでは、エッジの密度に大きな違いがある。当然、完全グラフが最もエッジの密度が高く、逆に孤立したノード集合からなるグラフが最もエッジの密度が低い。このように今考えているグラフGGの枝の本数と、GGのノードから生成される完全グラフの枝数12N(N1)\frac{1}{2}N(N-1)に対する割合でグラフのエッジ密度ρ\rhoを定義する。ρ\rho

ρ=2MN(N1)=kN1\rho=\frac{2M}{N(N-1)}=\frac{\langle k \rangle}{N-1}

と表される。上記のエッジ密度の定義は、グラフ全体に対して定義されているが、同様にグラフの部分グラフに対しても同様に定義し、それを局所的エッジ密度と呼ぶこととする。

あるノードiill近傍部分グラフGi(l)G_i(l)を考える。ここで、ll近傍部分グラフとはノードiiからllホップで辿れるノードとエッジに関する部分グラフである。近傍部分グラフGi(l)G_i(l)のノード数と枝数をそれぞれni(l),mi(l)n_i(l), m_i(l)とすると、近接部分グラフの局所的エッジ密度ρi(l)\rho_i(l)

ρi(l)=2mi(l)ni(l)(ni(l)1)\rho_i(l)=\frac{2 m_i(l)}{n_i(l)(n_i(l)-1)}

と表される。この指標により、近接部分グラフがクリークであればそのエッジ密度が1であるので、近接部分グラフのクリーク性の程度を表しているものと考えられる。


局所的エッジ密度として、特に重要なのは、最も局所性の高いl=1l=1におけるρi(l=1)\rho_i(l=1)である。近接部分グラフGi(1)G_i(1)について、ノード数とエッジ数はそれぞれni(1)=ki,mi(1)=mi+kin_i(1)=k_i, m_i(1)=m_i+k_iとなる。ただし、mim_iは、ノードiiの隣接ノード間を結ぶエッジの数である。mim_iについて、ノードiiの近接部分グラフGi(1)G_i(1)がクリークであるとき、Gi(1)G_i(1)からノードiiが接続しているkik_i本のエッジを取り除いた部分グラフgig_iもクリークとなる。よって、ノードiiの周りのエッジの密度CiC_igig_iの枝数mim_iと点数kik_iを用いて次のように定義する。

Ci=2miki(ki1)C_i=\frac{2m_i}{k_i(k_i-1)}

CiC_iをノードiiクラスター係数と呼ぶ。クラスター係数はネットワーク科学において重要な役割を果たす。定義より、mim_iはノードiiを頂点とする三角形の個数と一致するので、クラスタ係数はノードiiを頂点とする三角形の割合とも捉えることができる。


各ノードのクラスタ係数の平均値を平均クラスタ係数といい、CCと表す。

C=1Ni=1NCiC=\frac{1}{N}\sum_{i=1}^NC_i

C=1C=1となる場合は、完全グラフの場合のみに限る。


  • クラスター係数は三角形(3次のサイクル)の数の割合である。
  • エッジ密度が00に近い場合でも平均クラスタ係数が11に近い値を取ることがある。
  • クラスター係数は無向グラフに対する特徴量であり、有向グラフには定義されない。
  • 上記のクラスタ係数は3次のサイクルの割合と定義されていたが、4次のバージョンも存在し、サイクル係数と呼ばれる。


※近接部分グラフの密度だけでは不十分なのか?