回答:
ではネットワークにおける検出群集構造計算機科学のコンテキストで定義された特定の問題として、M.Newman定義グラフクラスタリング。
いくつかの単純な操作に分割できる計算について考えてみましょう。これらは、ネットワーク内のノードとして表されます。リンクは操作間の依存関係に対応します。つまり、ある操作の結果は別の操作で必要になります。問題は、並列処理のために、複数のプロセッサに操作を分散することです。つまり、各ノード(操作)を特定のクラス(プロセッサ)に割り当てる、つまりグラフを分割する必要があります。
ただし、3つの制約があります。1つ目は、プロセッサの数は明らかに事前にわかっているため、事前定義された数のコミュニティを取得することです。2つ目は、負荷のバランスをとることです。各プロセッサでほぼ同じ数の操作を実行する必要があります。グラフに関しては、コミュニティにほぼ同じ数のノードを含める必要があります。3つ目は、プロセスの速度が低下するため、プロセッサ間の通信をできるだけ低くすることです。したがって、グラフに関しては、コミュニティ間のリンクの数を最小限に抑えたいと考えています。
したがって、この観点から見ると、コミュニティの検出はグラフのクラスタリングよりも一般的な問題と見なすことができます。3番目の制約は両方の問題に適用されますが、コミュニティーの数とサイズは、コミュニティー検出では事前にはわかっていません。
これら2つの異なる名前は、ソーシャルネットワークの動機を強調するかどうかに応じて、科学者の異なるコミュニティによって同じものに付けられます。おそらく誰かがクラスタリングとコミュニティ検出を異なるものとして定義しているかもしれませんが、それらの1つを研究するほとんどの人は、なぜ他の用語を使用していないのかを説明できません。
大きなネットワークが2つの部分にクラスター化されている場合、この2つの部分が2つのコミュニティであることをどのように保証しますか?2つのクラスターの接続が低いということは、各クラスターが同様の種類のノードを持っている、またはノードが同様の種類の接続を持っている(したがってコミュニティーがある)ことを意味しません。ソーシャルネットワークのグラフについて考えてみましょう。確かにコミュニティはたくさんあります。また、クラスタリングアルゴリズムによって、2つの部分にそれをクラスター化できます。この場合、各ピースをコミュニティと呼びますか。?私の答えはノーです。なぜなら、2つのクラスターは2つの地理的地域の人々である可能性があるからです。そして、それらは確かにコミュニティではありません。
クラスタリングアルゴリズムは、ノードの類似性、接続の類似性、高密度の接続ではなく、最小カットのみを考慮します。さらに、クラスタリングアルゴリズムでは、クラスターの数を事前に定義する必要があります。
コミュニティ検出アルゴリズムは、密度を重視し、ネットワークのより密度の高い部分を検出します。これらの種類のアルゴリズム(これまで見てきた)は、コミュニティの数を事前に定義する必要がありません。
ただし、クラスタリングアルゴリズムを使用してコミュニティを見つけることができます。その場合、各クラスタが適切なコミュニティ構造を保持していることは保証されないため、各クラスタを慎重に調べる必要があります。
「コミュニティ発見をクラスタリングを解決するために自明に適用することはできません。その逆も同様です。類似性にもかかわらず、アプローチには重要な相違点があります。コミュニティ発見は疎な接続を想定していますが、クラスタリングは密なデータセットで機能します。クラスタリングでは通常、複数のタイプの属性を扱いますコミュニティディスカバリは通常、単一の属性タイプ(エッジ-重み付けされていないネットワークの場合はバイナリであることが多い)を扱いますが、詳細については、次のペーパーを参照してください:Riccardo GuidottiとMichele Cosciaによる「コミュニティディスカバリとクラスタリングの同等性について」