igraphのコミュニティ検出アルゴリズムの違いは何ですか?


83

約700の頂点と3500のエッジを持つ典型的なオブジェクトを含む約100のigraphオブジェクトのリストがあります。

結びつきの可能性が高い頂点のグループを特定したいと思います。次に、混合モデルを使用して、頂点属性とグループ属性を使用して、グループ内のタイの頂点の数を予測する予定です。

私のプロジェクトの他の側面に対応したいと思う人もいるかもしれませんが、私が最も興味を持っているのは、頂点をグループ化するためのigraphの関数に関する情報です。私はこれらのコミュニティ検出アルゴリズムに出くわしましたが、それらの長所と短所、または他の機能が私の場合に適しているかどうかはわかりません。ここにもリンクがありますが、igraphに固有のものではありません。アドバイスをしてくれてありがとう。

回答:


190

これは、現在igraphに実装されているコミュニティ検出アルゴリズムに関する簡単な要約です。

  • edge.betweenness.communityは、エッジ間スコア(つまり、特定のエッジを通過する最短パスの数)の降順でエッジが削除される階層分解プロセスです。これは、多くの場合、あるグループから別のグループに移動する唯一のオプションであるという理由だけで、異なるグループを接続するエッジが複数の最短パスに含まれる可能性が高いという事実によって動機付けられています。この方法では良好な結果が得られますが、エッジ間の計算が複雑であり、エッジを削除するたびに中間スコアを再計算する必要があるため、非常に時間がかかります。頂点が約700、エッジが約3500のグラフは、このアプローチで分析できるグラフのサイズの上限に近づいています。もう1つの欠点はedge.betweenness.community完全な樹状図を作成し、最終的なグループを取得するために樹状図をどこでカットするかについてのガイダンスを提供しないため、他の測定値を使用して決定する必要があります(たとえば、各レベルのパーティションのモジュール性スコア樹状図)。

  • fastgreedy.community別の階層的アプローチですが、トップダウンではなくボトムアップです。モジュール性と呼ばれる品質関数を貪欲に最適化しようとします。最初は、すべての頂点が個別のコミュニティに属し、各マージがローカルで最適になるようにコミュニティが繰り返しマージされます(つまり、モジュール性の現在の値が最大に増加します)。モジュール性を高めることができなくなるとアルゴリズムが停止するため、樹状図だけでなくグループ化も可能になります。この方法は高速であり、調整するパラメーターがないため、通常は最初の近似として試行される方法です。ただし、解像度の制限に悩まされることが知られています。つまり、指定されたサイズのしきい値を下回るコミュニティ(正しく覚えている場合はノードとエッジの数によって異なります)は、常に隣接するコミュニティとマージされます。

  • walktrap.communityランダムウォークに基づくアプローチです。一般的な考え方は、グラフ上でランダムウォークを実行すると、特定のコミュニティの外側につながるエッジがわずかしかないため、ウォークが同じコミュニティ内にとどまる可能性が高くなるということです。Walktrapは、3-4-5ステップの短いランダムウォークを実行し(パラメーターの1つに応じて)、これらのランダムウォークの結果を使用して、のようにボトムアップ方式で個別のコミュニティをマージしますfastgreedy.community。ここでも、モジュール性スコアを使用して、樹状図を切り取る場所を選択できます。これは、高速の欲張りアプローチよりも少し遅いですが、(元の出版物によると)少し正確でもあります。

  • spinglass.communityは、いわゆるポッツモデルに基づく統計物理学からのアプローチです。このモデルでは、各粒子(つまり頂点)はc個のスピン状態の1つになり、粒子間の相互作用(つまりグラフのエッジ)は、どの頂点のペアが同じスピン状態に留まりたいかを指定します。異なるスピン状態を持つことを好む。次に、モデルは指定されたステップ数でシミュレーションされ、最終的に粒子のスピン状態がコミュニティを定義します。結果は次のとおりです。1)cを200まで設定できますが、最終的にはcを超えるコミュニティは存在しません。これは、目的には十分である可能性があります。2)c未満の場合がありますいくつかのスピン状態が空になる可能性があるため、最終的にはコミュニティ。3)ネットワークの完全に離れた(または接続されていない)部分のノードが異なるスピン状態を持つことは保証されません。これは、切断されたグラフでのみ問題になる可能性が高いので、心配する必要はありません。この方法は、(シミュレーション自体のために)特に高速で決定論的ではありませんが、クラスターサイズを決定する調整可能な解像度パラメーターを備えています。スピングラス法の変形では、ネガティブリンク(つまり、エンドポイントが異なるコミュニティにあることを好むリンク)も考慮に入れることができます。

  • leading.eigenvector.communityモジュール性機能を再び最適化するトップダウンの階層的アプローチです。各ステップで、グラフは2つの部分に分割され、分離自体によってモジュール性が大幅に向上します。分割は、いわゆるモジュラリティ行列の主要な固有ベクトルを評価することによって決定されます。また、密に接続されたグループがさらに分割されるのを防ぐ停止条件もあります。固有ベクトルの計算が含まれるため、ARPACK固有ベクトルソルバーが不安定な縮退グラフでは機能しない場合があります。非縮退グラフでは、少し遅くなりますが、高速欲張り法よりも高いモジュール性スコアが得られる可能性があります。

  • label.propagation.communityは、すべてのノードにk個のラベルの1つが割り当てられる単純なアプローチです。次に、このメソッドは繰り返し進行し、各ノードが隣接ノードの最も頻繁なラベルを同期的に取得するように、ラベルをノードに再割り当てします。各ノードのラベルがその近隣で最も頻繁なラベルの1つになると、メソッドは停止します。これは非常に高速ですが、初期構成(ランダムに決定される)に基づいて異なる結果が得られるため、メソッドを何度も実行してから(たとえば、グラフの場合は1000回)、コンセンサスラベルを作成する必要があります。退屈です。

igraph 0.6には、情報理論の原則に基づく最先端のInfomapコミュニティ検出アルゴリズムも含まれます。グラフ上のランダムウォークの最短の記述長を提供するグループを構築しようとします。記述長は、ランダムウォークのパスをエンコードするために必要な頂点あたりの予想ビット数によって測定されます。

とにかく、私はおそらく最初の近似として、fastgreedy.communityまたはwalktrap.community最初の近似として、これら2つが何らかの理由で特定の問題に適していないことが判明したときに、他の方法を評価します。


3
私の知る限り、これは非決定論的アルゴリズムに関係する非常に一般的なことです。ただし、コミュニティIDには意味的な意味がないため、アルゴリズムの1つの実行のコミュニティiが別の実行のコミュニティiと必ずしも一致しない場合があるため注意が必要です。
タマス2015年

2
新しいものがあります:multilevel.community。リストに追加してもよろしいですか?(既存の答えは素晴らしいです。ありがとう!)
ザック

1
@Tamásmultilevel.communityfastgreedy.communityアルゴの違いを説明していただけますか?これら2つは非常に似ているようです。よろしくお願いします。
アントワーヌ

3
それらは同じではありません。fastgreedy.communityコミュニティのペアを繰り返しマージし、常に全体的なモジュール性が最大になるペアを選択します。ではmultilevel.community、コミュニティはマージされません。その代わりに、ノードはコミュニティ間で移動され、各ノードがモジュール性スコアへの独自の貢献を最大化するローカル決定を行います。この手順がスタックすると(つまり、どのノードもメンバーシップを変更しない)、すべてのコミュニティが単一のノードに折りたたまれ、プロセスが続行されます(これがマルチレベルである理由です)。
タマス2015

2
@Antoine:InfoMapアルゴリズムには、有向エッジを処理するための優れた科学的に適切なアプローチがあります。igraphでの実装は(ライセンスの問題のために)最も効率的ではありませんが、より小さなグラフでは機能するはずです。それはあまりにも遅くなることが判明した場合、あなたはからアルゴリズムの作者のコードを試すことができますmapequation.org
タマシュ

13

さまざまなコミュニティ検出アルゴリズムの概要は、次の場所にあります:http//www.r-bloggers.com/summary-of-community-detection-algorithms-in-igraph-0-6/

特に、InfoMAPアルゴリズムは、役立つ可能性のある最近の新参者です(有向グラフもサポートしています)。


以下からのドキュメントには、エッジ方向が考慮されているように見えるしません。正しい?
アントワーヌ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.