Community Detection — グラフの中に潜む「仲間」を見つけ出す科学
グラフ研究における Community Detection の歴史・主要アルゴリズム・本質的な難しさを、インタラクティブな可視化とともに超詳細に解説します。
はじめに — なぜ「コミュニティ」を見つけたいのか
現実世界のネットワークには、ほぼ必ず「仲間のかたまり」が存在します。SNS では友人グループ、Web ではテーマの近いページ群、タンパク質相互作用ネットワークでは機能モジュール、論文引用ネットワークでは研究分野——こうした密に結合したノードの集団を コミュニティ (community) と呼びます。
Community Detection とは、グラフ が与えられたとき、頂点集合 を「内部の辺が密で、外部との辺が疎」なグループに分割する問題です。一見単純に聞こえますが、ここには深い数学的・計算論的困難が潜んでいます。この記事では、この問題の歴史的経緯を丁寧に辿りながら、主要なアルゴリズムの本質的なアイデアと、この問題がなぜ「本質的に難しい」のかを解説します。
研究の歴史 — ソシオグラムから Leiden まで
Community Detection の研究は、実は 100 年近い歴史を持ちます。以下のタイムラインで主要なマイルストーンを概観しましょう。
Community Detection 研究の歴史
1927 年のソシオグラムから 2019 年の Leiden アルゴリズムまでの主要なマイルストーン
社会ネットワーク分析の萌芽
Moreno がソシオグラムを考案。人間関係を「グラフ」として可視化する試みが始まる。
グラフ分割問題
Kernighan-Lin アルゴリズム (1970)。回路設計の最適化のためにグラフの 2 分割を反復改善する手法。均等分割が前提。
Girvan-Newman
辺媒介中心性(Edge Betweenness)に基づくトップダウン法。社会ネットワーク分析に革命をもたらした手法。
Modularity Q の定式化
Newman & Girvan がモジュラリティ Q を定義。「良いコミュニティ分割」の定量的基準が確立。
NP困難性の証明
Brandes らがモジュラリティ最大化の NP 困難性を証明(IEEE TKDE掲載)。厳密解は大規模グラフでは事実上不可能に。
Resolution Limit 発見
Fortunato & Barthélemy がモジュラリティの解像度限界を発見。グラフのサイズに依存して小さなコミュニティが検出不能になる根本的問題。
Louvain アルゴリズム
Blondel らが提案した貪欲法。局所移動と集約を繰り返し、数百万ノード規模のグラフに適用可能。事実上のスタンダードに。
LFR ベンチマーク
Lancichinetti-Fortunato-Radicchi ベンチマーク。コミュニティ構造を持つ合成グラフの生成器。アルゴリズム評価の標準ツールに。
Stochastic Block Model の復権
Karrer & Newman が Degree-Corrected SBM を提案。統計的推論に基づくコミュニティ検出が盛んに。
検出限界の導出
Decelle らが cavity 法により検出限界の閾値を導出。コミュニティが原理的に検出不可能になる相転移の存在を示す(厳密証明は 2013–2015 年)。
Leiden アルゴリズム
Traag らが Louvain の欠陥(disconnected communities)を修正。品質保証付きの改良版。
前史: グラフ分割問題 (Graph Partitioning)
Community Detection の直接の祖先は、VLSI 回路設計における グラフ分割問題 です。1970 年に Kernighan と Lin が提案した KL アルゴリズムは、グラフの頂点集合を 2 つの 均等な 部分に分割し、カットされる辺の数を最小化するものでした。
Kernighan-Lin アルゴリズム (1970):
入力: グラフ G = (V, E)、初期 2分割 (A, B) で |A| = |B|
繰り返し:
1. 全ノードを「未ロック」にする
2. n/2 回のパスを実行:
a. 未ロックのペア (a ∈ A, b ∈ B) で交換利得 g(a,b) が最大のものを選択
b. a と b を交換し、両方を「ロック」(以後このパスでは動かさない)
c. 累積利得を記録
3. 累積利得が最大となる接頭辞 k を見つけ、最初の k 個の交換のみ確定
→ このバックトラック機構により局所最適を脱出できる
4. 改善がなくなるまで繰り返すKL アルゴリズムの要点は、一見改悪に見える交換も「ロック」して先を探索し、全体として最も良い接頭辞まで巻き戻す 先読み (look-ahead) の仕組みにあります。これにより単純な貪欲法よりも良い解が得られます。
しかし、グラフ分割問題と Community Detection には根本的な違いがあります:
| グラフ分割 | Community Detection | |
|---|---|---|
| 分割数 | 事前に指定 (通常 2) | 未知 — アルゴリズムが決定 |
| 分割サイズ | 均等が前提 | 不均等でも良い |
| 目的 | カット辺の最小化 | 内部密度の最大化 |
| 応用 | 回路設計、並列計算 | 社会ネットワーク分析、生物学 |
この違いこそが、Community Detection を独自の研究分野として成立させた理由です。「コミュニティがいくつあるか分からない」「サイズもバラバラ」という状況で、意味のあるグループを自動的に見つけ出す——これが本質的な課題です。
転換点: Girvan-Newman (2002)
2002 年、Michelle Girvan と Mark Newman は社会ネットワーク分析にブレイクスルーをもたらしました。彼らのアイデアは逆転の発想です:「コミュニティ内の辺を見つける」のではなく、「コミュニティ間の橋(ブリッジ)を取り除く」。
鍵となる概念は 辺媒介中心性 (Edge Betweenness Centrality) です。グラフ上の全頂点ペア間の最短経路を考えたとき、ある辺を通過する最短経路の数がその辺の betweenness です。コミュニティ間のブリッジ辺は、多くの最短経路が集中するため、betweenness が高くなります。
Girvan-Newman アルゴリズム:
1. 全辺の betweenness を計算
2. betweenness 最大の辺を除去
3. betweenness を再計算
4. グラフが完全に分断されるまで繰り返す
→ デンドログラム(階層的な分割の木)が得られる計算量は で、大規模グラフには適用困難です。内訳として、全辺の betweenness 計算は (全頂点からの BFS が必要)で、それを辺の除去ごとに最大 回繰り返すため、全体で となります。しかし、「コミュニティ構造を定量的に評価する」という発想を切り拓きました。
Modularity Q — 「良い分割」とは何か
Girvan-Newman の研究から自然に生まれた問いがあります: 「デンドログラムのどの階層でカットするのが最適なのか?」 この問いに答えるため、Newman と Girvan は 2004 年に Modularity (モジュラリティ) Q という指標を定義しました。
定義
この式は一見複雑に見えますが、ひとつずつ分解すれば直感的に理解できます。
各記号の意味:
- : 隣接行列の要素。頂点 と の間に辺があれば 1、なければ 0。「実際に繋がっているか?」を表す
- : 頂点 の次数(= から出ている辺の本数)。人間関係で言えば「友人の数」
- : グラフ全体の辺の総数。 は全頂点の次数を合計したもの(各辺が両端で 1 ずつ数えられるため)
- : 頂点 が所属するコミュニティの番号
- : クロネッカーのデルタ。(同じコミュニティ)なら 1、違えば 0。この項があることで、同じコミュニティ内のペアだけ が合計に寄与する
式の読み方 — 3 ステップで理解する:
ステップ 1: は「頂点 と の間に 実際に辺があるか」を表します。
ステップ 2: は「もし辺をランダムに張り直したら、 と が繋がる 確率(期待値)」です。直感的には、次数が高い(友人が多い)ノード同士ほど、ランダムでも繋がりやすいという意味です。
ステップ 3: は「実際の接続 − ランダムに期待される接続」。この差が正なら「ランダムより強く繋がっている」、負なら「ランダムほどには繋がっていない」ことを意味します。
これを同一コミュニティ内の全ペアについて足し合わせ( で制限)、 で正規化したものが Modularity Q です。
Modularity Q の直感
実際のコミュニティ内辺数と、ランダムに辺を張り直した場合の期待値を比較
良い分割 (Q が高い)
悪い分割 (Q が低い)
の項は Configuration Model(配置モデル) と呼ばれる帰無モデル(null model)から導かれます。これは「各ノードの次数(友人数)は保ったまま、接続先だけをランダムに組み替えたらどうなるか?」という仮想的な比較基準です。次数列を保存するため、単なるランダムグラフ(Erdős-Rényi モデル)よりも現実的な比較対象になります。
まとめると、Modularity Q は:
「ランダムに比べてどれだけコミュニティ内の結合が密か」を測っています。値の意味は:
- : コミュニティ構造がランダムと変わらない(構造なし)
- : ランダムより密な内部結合がある(構造あり)
- : 実ネットワークで見られる典型的な値
- の理論的な範囲は だが、実際には負の値はほとんど見られない
Modularity の功績と限界
Modularity は Community Detection に定量的な評価基準を与え、この分野を爆発的に発展させました。しかし、2 つの根本的な問題も明らかになります:
- NP 困難性 (Brandes et al., 2008): Modularity の最大化は NP 困難。厳密解は現実的に不可能
- Resolution Limit (Fortunato & Barthélemy, 2007): 小さなコミュニティを見落とす構造的欠陥
これらについては後のセクションで詳しく解説します。
なお、Modularity の提唱後、最初に実用的な最適化アルゴリズムを示したのは Clauset-Newman-Moore (CNM) の凝集型貪欲法 (2004) です。CNM は計算量 ( はデンドログラムの深さ、 は辺数、 はノード数)で、Girvan-Newman (2002) と Louvain (2008) の間を埋める重要な手法でした。凝集型(agglomerative)とは、最初は各ノードが単独のコミュニティで、 が最大のペアを順次統合していくボトムアップのアプローチです。
主要アルゴリズムの詳解
主要アルゴリズム比較表
| 手法 | 年 | アプローチ | 計算量 | 大規模対応 | 強み |
|---|---|---|---|---|---|
| Girvan-Newman | 2002 | 辺媒介中心性(除去) | O(m²n) | ★☆☆☆☆ | 直感的、階層的デンドログラム |
| Louvain | 2008 | 貪欲モジュラリティ最適化 | O(n log n) | ★★★★★ | 高速、大規模グラフ対応 |
| Leiden | 2019 | 改良 Louvain + 精錬フェーズ | O(n log n) | ★★★★★ | 連結保証、高品質 |
| Label Propagation | 2007 | 近傍ラベルの多数決伝播 | O(m) | ★★★★★ | 最速の手法の一つ |
| Infomap | 2008 | ランダムウォーク圧縮 | O(m) | ★★★★☆ | 情報量基準、フロー構造を捉える |
| Spectral Clustering | ~2000 | ラプラシアン固有ベクトル | O(n³) | ★★☆☆☆ | 理論的基盤が強固 |
| SBM (統計的推論) | 2011 | 確率的ブロックモデル推論 | O(n log²n) | ★★★☆☆ | モデル選択、検出限界を尊重 |
1. Louvain アルゴリズム (2008)
Blondel, Guillaume, Lambiotte, Lefebvre が 2008 年に提案した Louvain アルゴリズムは、Community Detection の事実上の標準(de facto standard)となりました。その成功の秘訣は、貪欲法と階層的集約の組み合わせ による卓越したスケーラビリティです。
アルゴリズムの 2 フェーズ
Phase 1 — 局所移動 (Local Moving):
各ノード について、「このノードを隣接するコミュニティ に移動したら、Modularity Q はどれだけ変化するか?」を計算します。この変化量が です:
この式も分解して理解しましょう。
各記号の意味:
- : コミュニティ の 内部辺 の重みの合計。 内のノード同士を繋ぐ辺だけを数えたもの
- : コミュニティ に 接続する全ての辺 の重みの合計。 内のノードから出ている辺を全部足したもの(内部辺 + 外部辺)
- : ノード からコミュニティ 内のノードへの辺 の重みの合計。「 は のメンバーとどれだけ繋がっているか?」
- : ノード の次数( から出ている辺の総数)
式の構造 — 「移動後の Q」−「移動前の Q」:
- 角括弧の前半は「ノード がコミュニティ に加わった後の、 の Modularity への寄与」
- : 内部辺が 本分増える( ↔ 内ノードの辺が内部辺になるため、両端で数えて )
- : 期待値の項も の次数分だけ増える
- 角括弧の後半は「移動前」の寄与( と がそれぞれ独立に持っていた寄与の合計)
直感的には: ( と の実際の接続)が大きいほど は大きくなります。つまり「 のメンバーと沢山繋がっているノードほど、 に移動するメリットが大きい」——これは直感にも合致します。
が最大かつ正となるコミュニティに移動します。全ノードを順に処理し、移動がなくなるまで繰り返します。
注意: 実際の実装では、ノードを現在のコミュニティから「取り出す」コストと、新しいコミュニティに「挿入する」利得の 2 ステップで を計算します。上記の式は孤立ノード(自分だけのコミュニティ)をコミュニティ に挿入する場合の利得を示しています。
Phase 2 — 集約 (Aggregation):
Phase 1 で得られた各コミュニティを 1 つの「超ノード」に縮約します。コミュニティ内辺は自己ループ、コミュニティ間辺は超辺になります。この縮約グラフに対して再び Phase 1 を適用します。
以下のデモでこの 2 フェーズの動作を実際に確認してみましょう:
Louvain アルゴリズム ステップ実行
10 ノードのグラフで Louvain の 2 フェーズ(局所移動 → 集約)を追体験します
Louvain アルゴリズム開始。Phase 1(局所移動): 各ノードを独自のコミュニティに初期化します。10 ノード・14 辺のグラフで、3 つのクラスタ構造が潜んでいます。
なぜ速いのか
Louvain の計算量は実質 です。各ノードの 計算は隣接ノード数に比例し、集約によりグラフサイズが急速に縮小するため、実測で数百万ノードのグラフを数分で処理できます。
Louvain の欠陥
しかし Louvain には根本的な問題があります。Phase 1 の局所移動では、ノードを個別に移動するため、コミュニティが非連結(disconnected)になる 場合があります。つまり、同じコミュニティに属する頂点間にパスが存在しないという、直感に反する結果が生じ得ます。
2. Leiden アルゴリズム (2019)
Traag, Waltman, van Eck が 2019 年に Louvain の欠陥を修正して提案した Leiden アルゴリズム は、3 フェーズの構成を持ちます:
- 局所移動 — Louvain と同様だが、高速キューを使用
- 精錬 (Refinement) — コミュニティ内部で部分集合の再分割を試行。非連結コミュニティの分割を保証
- 集約 — 精錬後のコミュニティで縮約
Leiden は Louvain の「速さ」を維持しつつ、全てのコミュニティが連結であることを保証 します。現在では Louvain に代わるゴールドスタンダードとなりつつあります。
3. Label Propagation (2007)
Raghavan, Albert, Kumara が提案した Label Propagation Algorithm (LPA) は、極めてシンプルで高速なアルゴリズムです:
Label Propagation:
1. 各ノードにユニークなラベルを割り当て
2. ランダムな順序で各ノードを処理:
- 隣接ノードの中で最も多いラベルに更新
3. ラベルが変化しなくなるまで繰り返す
→ 同じラベルのノード群がコミュニティ計算量は で最速クラスですが、結果が非決定的 です。ノードの処理順序やタイブレーク(同票の場合の選択)によって結果が変わります。また、同期的更新(全ノードを一斉に更新する方式)の場合、収束が保証されず振動状態に陥ることがあります(非同期更新——ノードを 1 つずつ順に更新する方式——では収束が保証されます)。
4. Spectral Clustering(スペクトラルクラスタリング)
線形代数を活用するアプローチです。まず グラフラプラシアン を構成します:
- : 隣接行列(辺があれば 1、なければ 0)
- : 次数行列(対角行列で、)
- : ラプラシアン行列。 はグラフの「接続の滑らかさ」を測る行列で、 の固有値が 0 に近いほど「繋がりやすい」構造を持つ
この を固有値分解します:
この式は「行列 をベクトル に掛けると、 のスカラー 倍になる」という特殊なベクトル(固有ベクトル)と値(固有値)の組を見つける問題です。
の固有値 を小さい順に並べると、(常に存在)、、、... となります。ここで重要なのが 2 番目に小さい固有値 に対応する固有ベクトル、通称 Fiedler ベクトル です。
Fiedler ベクトルの各成分はグラフの各ノードに対応する実数値で、「同じコミュニティのノードには近い値、異なるコミュニティのノードには遠い値」が割り当てられる傾向があります。この性質を利用して、Fiedler ベクトルの値の正負でノードを 2 分割できます。 個のコミュニティを見つけたい場合は、最小の 個の固有ベクトルを用いてノードを 次元空間に埋め込み、k-means 等でクラスタリングします。
利点: 理論的基盤が強固(グラフカットの最小化と等価であることが証明されており、Cheeger 不等式により近似精度の保証がある)
欠点: 完全固有値分解の計算量は だが、実用上は疎グラフの場合、Lanczos 法等の反復法で必要な 個の固有ベクトルのみを で計算可能。コミュニティ数 を事前に指定する必要がある
なお、実用上は組合せ的ラプラシアン よりも、正規化ラプラシアン や がよく使われます(Shi & Malik, 2000)。正規化版は次数分布が不均一なグラフでも安定した結果を返します。
また、Newman (2006) は モジュラリティ行列 の主要固有ベクトルを用いて Modularity を最適化できることを示しました。 は Modularity Q の式で の中にある そのもので、この行列の主要固有ベクトルによる分割は、グラフラプラシアンの固有値分解と手法的に共通の構造を持っています。つまりスペクトラル法と Modularity 最適化は「共通のスペクトラル分解という手法的枠組みに基づいている」ことを示す重要な結果です。
5. Infomap — 情報理論的アプローチ (2008)
Rosvall と Bergstrom が提案した Infomap は、ランダムウォークの経路を最も効率よく記述(圧縮)するコミュニティ構造 を見つけます。
中心にあるのは Map Equation(マップ方程式) です:
この式の各項の意味を丁寧に見ていきましょう:
- : コミュニティの分割方法(これを最適化したい)
- : コミュニティ数
- : 分割 のもとでランダムウォークを記述するのに必要な 平均コード長(小さいほど良い)
- : ランダムウォーカーがコミュニティ間を移動する確率の合計
- : コミュニティ間の移動パターンのエントロピー(不確実さ)
- : ランダムウォーカーがコミュニティ 内に滞在する確率(+コミュニティから出る確率)
- : コミュニティ 内での移動パターンのエントロピー
第 1 項 は「コミュニティ間の移動を記述するコスト」です。コミュニティ間の移動が頻繁だと、「次はどのコミュニティに行くのか?」を記述するのに多くのビットが必要になります。
第 2 項 は「各コミュニティ内部での移動を記述するコスト」です。コミュニティが小さければ内部ノードが少なく、短いコードで記述できます。
トレードオフ: コミュニティを細かく分けすぎると第 1 項(コミュニティ間移動)が増え、大きすぎると第 2 項(コミュニティ内移動)が増える。このバランスが最適なコミュニティサイズを決定します。
直感的には、コミュニティ構造がうまく捉えられていれば、ランダムウォーカーはコミュニティ内に長く留まるため、コミュニティ内のノードに短いコードワードを割り当てることで全体の記述長を圧縮できます。これは電話の市外局番のアナロジーで理解できます: 同じ市内(コミュニティ)の電話番号は短い番号で呼べるが、市外(別コミュニティ)にかけるときは市外局番が必要になる。
Modularity が「ランダムモデルとの比較」という統計的な視点を取るのに対し、Infomap は「情報圧縮」という情報理論的な視点から問題を定式化しています。有向グラフやフロー構造を持つネットワークに特に適しています。
6. Stochastic Block Model (SBM) — 統計的推論アプローチ
Modularity ベースの手法と本質的に異なるパラダイムが 統計的推論 (Statistical Inference) に基づくアプローチです。
SBM は以下のような生成モデルです:
- 各ノードはコミュニティ に属する
- コミュニティ と の間の辺の確率は で決まる
- 観測されたグラフから、最もありそうなコミュニティ割り当てとパラメータを推論する
尤度:
この式の意味をステップごとに見ていきましょう:
- : コミュニティ と の間に辺ができる確率。「同じコミュニティ内」なら高く、「異なるコミュニティ間」なら低い、というのが典型的なコミュニティ構造
- : 実際のグラフで辺があるか(0 か 1)
- : 辺がある場合()は が寄与。「辺が存在する確率」
- : 辺がない場合()は が寄与。「辺が存在しない確率」
- : 全てのノードペアについての積(同時確率)
つまりこの式は「コミュニティ割り当て と辺確率行列 のもとで、観測されたグラフ が生成される確率」を計算しています。この尤度が最大になるような と を見つけるのが、SBM の推論の目標です。機械学習で言う最尤推定(MLE)と同じ発想です。
Degree-Corrected SBM (Karrer & Newman, 2011) は、ノードの次数の不均質性を考慮した拡張です。実ネットワークは次数分布がべき乗則に従うことが多く、vanilla SBM ではこれを適切にモデル化できません。
SBM の推論:
パラメータ: コミュニティ割り当て {c_i}, 辺確率行列 ω
目的: 事後確率 P({c_i}, ω | G) の最大化
手法: 期待値最大化法 (EM)、変分推論、MCMC、Belief PropagationSBM の最も重要な特徴は モデル選択 の概念です。コミュニティ数 をも推論の対象とし、過剰適合を避けるために記述長最小化(Minimum Description Length)などの基準を用います。これにより、「コミュニティ構造が本当に存在するのか?」という根本的な問いに答えることができます。
さらに、Peixoto (2014) の 階層的 SBM (Nested SBM) は、SBM 自体を再帰的にブロック構造化することで、ノンパラメトリックなモデル選択を実現し、Modularity の Resolution Limit も回避できます。
Community Detection の本質的な難しさ
ここまでアルゴリズムを見てきましたが、Community Detection がなぜ「本質的に難しい」のかを掘り下げましょう。
1. 問題の不良設定性 (Ill-Definedness)
Community Detection の最も根本的な困難は、「コミュニティ」の普遍的な定義が存在しない ことです。
「コミュニティ内が密で、コミュニティ間が疎」という直感は共有されていますが、これを数学的に定式化する方法は無数にあります:
- カット辺の最小化: グラフ分割の伝統
- 内部密度の最大化: Modularity 的な発想
- ランダムウォークの居住時間: Infomap の発想
- 確率モデルの適合度: SBM の発想
- クリーク的構造: 部分グラフの密度に注目
これらは同じグラフに対して異なる「正解」を返すことがあり、どれが「正しい」かは文脈依存です。つまり、Community Detection は客観的に定義される問題ではなく、暗黙の前提(何をコミュニティと呼ぶか)に依存する のです。
2. NP 困難性
Modularity の最大化が NP 困難であること(Brandes et al., 2008)は、最適解を効率的に見つけることが(P ≠ NP を仮定すれば)不可能であることを意味します。より具体的には、「全ての可能なコミュニティ分割を探索するには指数的な時間が必要」ということです。 個のノードの全ての可能な分割の総数はベル数 (ノード数に対して超指数的に増大)であり、全探索は小さなグラフでも現実的ではありません。実用的なアルゴリズムは全て近似法であり、局所最適に陥るリスクを常に抱えています。
しかし、NP 困難性はある意味で「見せかけの問題」でもあります。何を最適化するかの選択自体が恣意的 であるため、真に難しいのは「何を最適化すべきか」という問題設定そのものなのです。
3. Resolution Limit
Resolution Limit(解像度限界)
Fortunato & Barthélemy (2007): モジュラリティ最大化は小さなコミュニティを見落とす
Fortunato と Barthélemy (2007) の発見したこの限界は、Modularity ベースの手法に対する本質的な批判です。
グラフの総辺数を とします。Modularity の式を思い出すと、帰無モデルの期待値が ですが、小さなコミュニティではこの期待値の項が非常に小さくなります。そのため、小さなコミュニティを統合しても Q の減少が微小で、統合による他の利得で相殺されてしまうのです。
具体的には、コミュニティの次数合計(コミュニティ内ノードの次数の総和)が 未満の場合、たとえ内部が完全グラフ(クリーク)であっても、Modularity の最適解では隣接するコミュニティと統合されてしまいます。内部辺数に換算すると、おおよそ 未満のコミュニティが影響を受けます。
例えば、100万辺のグラフでは なので、次数合計が 1414 未満のコミュニティは Modularity 最適化では検出できない可能性があります。
これは マルチスケール構造 を持つ実ネットワークにとって深刻な問題です。社会ネットワークには数人の親密なグループから数千人のコミュニティまで幅広いスケールのグループが共存しています。
Resolution limit に対する対策として:
- Resolution parameter の導入: この は「拡大鏡の倍率」のようなものです。 ではランダムモデルのペナルティが強まり、より小さなコミュニティが検出されやすくなります。逆に では大きなコミュニティが検出されます
- マルチスケール解析: 異なる で繰り返し検出し、複数のスケールのコミュニティを同時に把握
- SBM ベースの手法への移行: 帰無モデルの制約を回避
4. 検出限界 — 原理的に検出できない領域
検出限界(Detectability Threshold)
コミュニティ構造が原理的に検出不可能になる情報理論的限界
2011 年に Decelle らが統計物理の cavity 法(非厳密的手法)により導出し、後に Mossel, Neeman & Sly (2018) および Massoulié (2014) によって厳密に証明された 検出限界 (Detectability Threshold) は、Community Detection の最も深遠な結果の一つです。
2 コミュニティの SBM で、コミュニティ内の辺確率パラメータを 、コミュニティ間の辺確率パラメータを とすると(各ノードのコミュニティ内期待次数は 、コミュニティ間期待次数は で、平均次数は ):
この不等式の意味を直感的に理解しましょう:
- 左辺 : 「コミュニティ内とコミュニティ間の辺確率の差」の 2 乗。これが シグナル(コミュニティ構造の強さ)に相当。 と の差が大きいほど、「内と外の差がはっきり」している
- 右辺 : グラフ全体の平均次数に比例。これが ノイズ(ランダムな変動)に相当。グラフがスパース(辺が少ない)なほどノイズが相対的に大きくなる
つまりこの不等式は「シグナルがノイズに埋もれてしまう」条件を表しています。コミュニティ内の接続がコミュニティ間の接続とあまり変わらないとき、またはグラフがスパースすぎるとき、コミュニティの「痕跡」がランダムな揺らぎに消されてしまうのです。
この不等式が成り立つとき、いかなるアルゴリズムでもコミュニティをランダムよりうまく検出できません(Decelle et al., 2011; 厳密証明は Mossel, Neeman & Sly, 2018)。
この結果は統計物理学のスピングラスの理論と深い関係があり、コミュニティ構造の検出に 相転移 (phase transition) が存在することを示しています。閾値を超えると突然検出が可能になり、それ以下では原理的に不可能——これは「計算困難性」とは異なる、情報理論的な限界 です。
5. Ground Truth の不在
機械学習の分類問題とは異なり、Community Detection には一般に 正解ラベル(ground truth)が存在しません。
- ベンチマーク(LFR 等)を使えば人工的な正解はあるが、実ネットワークの複雑さを反映しない。LFR (Lancichinetti-Fortunato-Radicchi, 2008) ベンチマークは次数分布とコミュニティサイズ分布の両方がべき乗則に従う合成グラフを生成でき、実ネットワークの統計的性質をある程度模倣できるため標準的なベンチマークとして広く使われている
- メタデータ(論文の分野、ユーザーの属性等)を「正解」として使うことがあるが、メタデータに基づくグループとネットワーク構造から導かれるコミュニティは必ずしも一致しない(Peel, Larremore & Clauset, 2017)
- 評価指標(NMI, ARI 等)は正解がある前提で設計されている
この問題に対して、SBM ベースのアプローチは「モデルの適合度」という形で自律的な評価を可能にしますが、モデルの仮定自体が正しい保証はありません。
6. 重複コミュニティ (Overlapping Communities)
現実のネットワークでは、ノードが複数のコミュニティに同時に属するのが自然です。大学の研究者は「機械学習」と「計算理論」の両方のコミュニティに属するかもしれません。
重複を許すアルゴリズム(COPRA, BigCLAM, Mixed-Membership SBM 等)は存在しますが、定式化と評価がさらに困難になります。重複の度合いをどう測るか、何をもって「正しい重複構造」とするかは未解決の問題です。
Modularity 以外の目的関数 — なぜ多様なアプローチが存在するのか
ここまで見てきたように、Modularity は Community Detection で最も広く使われる指標ですが、万能ではありません。各手法が異なる目的関数を使う背景には、「コミュニティ」の捉え方の違いがあります。
| 目的関数 | 視点 | 手法 |
|---|---|---|
| Modularity Q | ランダムモデルとの比較 | Louvain, Leiden |
| Map Equation | ランダムウォークの圧縮 | Infomap |
| 尤度 / ベイズ推論 | 確率的生成モデルの適合度 | SBM |
| 正規化カット | グラフのカット値 / 体積 | Spectral Clustering |
| Conductance | コミュニティ境界の「漏れやすさ」 | Local methods |
Conductance の式を補足すると:
- : コミュニティ とその外部 を横断する辺の数(「境界線を跨ぐ辺」がいくつあるか)
- : 内のノードの次数の合計(コミュニティの「ボリューム」)
- をとるのは、小さいコミュニティが不当に有利にならないよう正規化するため
Conductance が小さいほど「境界が明確で外に漏れにくい」、つまり良いコミュニティです。
どの目的関数が適切かは、ネットワークの性質と分析の目的によって決まります。これは弱点ではなく、ネットワーク解析では単一の「正解」が存在しないことの反映 です。
現代の展開と未解決問題
コンセンサスクラスタリング
Label Propagation や Louvain の非決定性に対処するため、コンセンサスクラスタリング (Lancichinetti & Fortunato, 2012) が提案されました。アルゴリズムを複数回実行し、「ノード と が同じコミュニティに属する頻度」からコンセンサス行列を構築、これに再度コミュニティ検出を適用して安定した結果を得ます。
高次構造 (Higher-Order) に基づく検出
従来のアプローチはペアワイズ(2 ノード間)の辺のみを考慮しますが、モチーフ(特定の部分グラフパターン) に基づく Community Detection も発展しています (Benson, Gleich & Leskovec, 2016)。例えば三角形の密度に基づくコミュニティは、単なる辺密度では捉えられない構造を明らかにします。
GNN ベースのアプローチ
Graph Neural Network (GNN) を用いた Community Detection が注目されています (Tsitsulin et al., 2023)。ノードの特徴量を学習し、エンドツーエンドでコミュニティ割り当てを最適化するアプローチです。教師なし目的関数(Modularity 等)を微分可能にして勾配降下で最適化する手法や、対照学習を用いる手法が研究されていますが、モデルの解釈性や汎化性に課題が残ります。
動的・多重ネットワーク
時間とともに変化するネットワークでのコミュニティ検出は、コミュニティの誕生・成長・分裂・消滅を追跡する必要があり、困難さがさらに増します。Mucha et al. (2010) は時間依存・マルチスケール・多重ネットワークにおけるコミュニティ検出を統一的に定式化しました。temporal modularity やスナップショット間の対応付けなどが活発に研究されています。
大規模分散処理
数十億ノード規模のネットワーク(SNS の友人関係、Web グラフ等)では、単一マシンでの処理が不可能です。MapReduce や Pregel に基づく分散 Louvain/Leiden の研究が進んでいます。
実践的なアルゴリズム選択ガイド
「目的に応じた適切なツール」を選ぶための実践的な指針をまとめます:
| 状況 | 推奨アプローチ |
|---|---|
| 大規模無向グラフ、 不明 | Leiden(品質・速度のバランスが最良) |
| 有向グラフ / フロー構造 | Infomap(フロー感度が高い) |
| 構造の有無自体を判定したい | Nested SBM(モデル選択が可能) |
| 最速が必要、品質は二の次 | Label Propagation() |
| が既知、理論保証が必要 | Spectral Clustering |
| マルチスケール構造の探索 | Resolution parameter のスキャン or Nested SBM |
| 結果の安定性が重要 | コンセンサスクラスタリング |
まとめ
Community Detection は「グラフの中に隠れた構造を見つける」という一見シンプルな問題でありながら、以下の本質的な困難を内包しています:
- 定義の曖昧さ: 「コミュニティ」の普遍的な定義が存在しない
- 計算困難性: Modularity 最大化は NP 困難
- Resolution Limit: スケールに依存した検出の限界
- 検出限界: 情報理論的に検出不可能な領域の存在
- Ground Truth の不在: 正解が分からない問題を「解く」難しさ
- 重複構造: 現実はハード分割では捉えきれない
100 年にわたる研究の結果、私たちは「完璧な Community Detection は原理的に不可能である」ことを理解し、代わりに「目的に応じた適切なツールを選択する」という pragmatic な姿勢に至りました。Louvain/Leiden の実用性、SBM の理論的堅牢性、Infomap のフロー感度——それぞれの強みを理解し、ネットワークの性質と分析目的に合わせて使い分けることが、現代のネットワーク科学者に求められています。
参考文献
- Kernighan, B. W., & Lin, S. (1970). An efficient heuristic procedure for partitioning graphs. Bell System Technical Journal, 49(2), 291–307.
- Shi, J., & Malik, J. (2000). Normalized cuts and image segmentation. IEEE TPAMI, 22(8), 888–905.
- Girvan, M., & Newman, M. E. J. (2002). Community structure in social and biological networks. PNAS, 99(12), 7821-7826.
- Newman, M. E. J., & Girvan, M. (2004). Finding and evaluating community structure in networks. Physical Review E, 69(2), 026113.
- Clauset, A., Newman, M. E. J., & Moore, C. (2004). Finding community structure in very large networks. Physical Review E, 70(6), 066111.
- Newman, M. E. J. (2006). Modularity and community structure in networks. PNAS, 103(23), 8577-8582.
- Brandes, U., et al. (2008). On modularity clustering. IEEE TKDE, 20(2), 172-188.
- Fortunato, S., & Barthélemy, M. (2007). Resolution limit in community detection. PNAS, 104(1), 36-41.
- Raghavan, U. N., Albert, R., & Kumara, S. (2007). Near linear time algorithm to detect community structures in large-scale networks. Physical Review E, 76(3), 036106.
- Blondel, V. D., et al. (2008). Fast unfolding of communities in large networks. JSTAT, P10008.
- Rosvall, M., & Bergstrom, C. T. (2008). Maps of random walks on complex networks reveal community structure. PNAS, 105(4), 1118-1123.
- Lancichinetti, A., Fortunato, S., & Radicchi, F. (2008). Benchmark graphs for testing community detection algorithms. Physical Review E, 78(4), 046110.
- Fortunato, S. (2010). Community detection in graphs. Physics Reports, 486(3-5), 75-174.
- Mucha, P. J., et al. (2010). Community structure in time-dependent, multiscale, multiplex networks. Science, 328(5980), 876–878.
- Karrer, B., & Newman, M. E. J. (2011). Stochastic blockmodels and community structure in networks. Physical Review E, 83(1), 016107.
- Decelle, A., et al. (2011). Asymptotic analysis of the stochastic block model for modular networks and its algorithmic applications. Physical Review E, 84(6), 066106.
- Lancichinetti, A., & Fortunato, S. (2012). Consensus clustering in complex networks. Scientific Reports, 2, 336.
- Massoulié, L. (2014). Community detection thresholds and the weak Ramanujan property. STOC 2014, 694–703.
- Peixoto, T. P. (2014). Hierarchical block structures and high-resolution model selection in large networks. Physical Review X, 4(1), 011047.
- Benson, A. R., Gleich, D. F., & Leskovec, J. (2016). Higher-order organization of complex networks. Science, 353(6295), 163–166.
- Fortunato, S., & Hric, D. (2016). Community detection in networks: A user guide. Physics Reports, 659, 1-44.
- Peel, L., Larremore, D. B., & Clauset, A. (2017). The ground truth about metadata and community detection in networks. Science Advances, 3(5), e1602548.
- Mossel, E., Neeman, J., & Sly, A. (2018). A proof of the block model threshold conjecture. Combinatorica, 38(3), 665–708.
- Traag, V. A., Waltman, L., & van Eck, N. J. (2019). From Louvain to Leiden: guaranteeing well-connected communities. Scientific Reports, 9, 5233.
- Tsitsulin, A., et al. (2023). Graph clustering with graph neural networks. JMLR, 24(127), 1–21.