igraph에서 커뮤니티 감지 알고리즘의 차이점은 무엇입니까?


84

약 700 개의 정점과 3500 개의 가장자리가있는 일반적인 개체가있는 약 100 개의 igraph 개체 목록이 있습니다.

동점 가능성이 더 높은 정점 그룹을 식별하고 싶습니다. 내 계획은 혼합 모델을 사용하여 정점 및 그룹 속성을 사용하여 그룹 내 관계 정점이 얼마나 많은지를 예측하는 것입니다.

어떤 사람들은 내 프로젝트의 다른 측면에 반응하고 싶어 할 수 있습니다. 이것은 훌륭 할 것입니다.하지만 제가 가장 관심을 갖는 것은 버텍스 그룹화를위한 igraph의 함수에 대한 정보입니다. 이러한 커뮤니티 감지 알고리즘을 접 했지만 장점과 단점 또는 다른 기능이 내 경우에 더 나은지 확실하지 않습니다. 여기 에서도 링크를 보았지만 igraph에만 국한된 것은 아닙니다. 조언 해 주셔서 감사합니다.

답변:


192

다음은 현재 igraph에서 구현 된 커뮤니티 감지 알고리즘에 대한 간략한 요약입니다.

  • edge.betweenness.community계층 적 분해 프로세스로, 에지 사이의 점수 (즉, 주어진 에지를 통과하는 최단 경로 수)의 내림차순으로 에지가 제거됩니다. 이는 여러 그룹을 연결하는 에지가 여러 최단 경로에 포함될 가능성이 더 높기 때문에 많은 경우 한 그룹에서 다른 그룹으로 이동할 수있는 유일한 옵션이기 때문입니다. 이 방법은 좋은 결과를 산출하지만 가장자리 사이 계산의 계산 복잡성과 가장자리 제거 후 간격 점수를 다시 계산해야하기 때문에 매우 느립니다. ~ 700 개의 꼭지점과 ~ 3500 개의 에지가있는 그래프는이 접근 방식으로 분석 할 수있는 그래프의 크기 상한선에 가깝습니다. 또 다른 단점은edge.betweenness.community는 전체 덴드로 그램을 작성하고 최종 그룹을 얻기 위해 덴드로 그램을자를 위치에 대한 지침을 제공하지 않으므로이를 결정하기 위해 다른 측정 값을 사용해야합니다 (예 : 덴드로 그램).

  • fastgreedy.community또 다른 계층 적 접근 방식이지만 하향식이 아닌 상향식입니다. 탐욕스러운 방식으로 모듈화라는 품질 기능을 최적화하려고합니다. 처음에 모든 정점은 별도의 커뮤니티에 속하고 커뮤니티는 반복적으로 병합되어 각 병합이 로컬에서 최적이되도록합니다 (즉, 현재 모듈성의 값이 가장 크게 증가 함). 모듈화를 더 이상 늘릴 수없는 경우 알고리즘이 중지되므로 덴드로 그램뿐만 아니라 그룹화도 제공됩니다. 이 방법은 빠르며 튜닝 할 매개 변수가 없기 때문에 일반적으로 첫 번째 근사치로 시도되는 방법입니다. 그러나 해상도 제한이있는 것으로 알려져 있습니다. 즉, 주어진 크기 임계 값 미만의 커뮤니티 (올바르게 기억하는 경우 노드 및 에지 수에 따라 다름)는 항상 이웃 커뮤니티와 병합됩니다.

  • walktrap.community무작위 걷기를 기반으로 한 접근 방식입니다. 일반적인 아이디어는 그래프에서 임의의 걷기를 수행하면 주어진 커뮤니티 외부로 이어지는 가장자리가 몇 개만 있기 때문에 걷기가 동일한 커뮤니티 내에있을 가능성이 더 높다는 것입니다. Walktrap은 3-4-5 단계 (매개 변수 중 하나에 따라 다름)의 짧은 무작위 걷기를 실행하고 이러한 무작위 걷기의 결과를 사용하여와 같은 상향식 방식으로 별도의 커뮤니티를 병합합니다 fastgreedy.community. 다시 말하지만, 모듈성 점수를 사용하여 덴드로 그램을자를 위치를 선택할 수 있습니다. 빠르고 탐욕스러운 접근 방식보다 약간 느리지 만 (원본 출판물에 따르면) 약간 더 정확합니다.

  • spinglass.community소위 Potts 모델을 기반으로 한 통계 물리학의 접근 방식입니다. 이 모델에서 각 입자 (예 : 정점)는 c 스핀 상태 중 하나 일 수 있으며 입자 (예 : 그래프의 가장자리) 간의 상호 작용은 어떤 정점 쌍이 동일한 스핀 상태를 유지하고 어떤 정점을 선호할지 지정합니다. 다른 스핀 상태를 선호합니다. 그런 다음 주어진 단계 수에 대해 모델이 시뮬레이션되고 최종 입자의 스핀 상태가 커뮤니티를 정의합니다. 결과는 다음과 같습니다. 1) c 를 200까지 설정할 수 있지만 결국에는 c 개 이상의 커뮤니티 가 생성되지 않습니다 . 이는 사용자의 목적에 충분할 것입니다. 2) c 미만일 수 있습니다.일부 스핀 상태가 비워 질 수 있으므로 결국 커뮤니티. 3) 네트워크의 완전히 원격 (또는 불일치) 부분에있는 노드의 스핀 상태가 다르다는 보장은 없습니다. 이것은 연결이 끊어진 그래프에만 문제가 될 가능성이 더 높으므로 걱정하지 않겠습니다. 이 방법은 특히 빠르지 않고 결정적이지는 않지만 (시뮬레이션 자체 때문에) 클러스터 크기를 결정하는 조정 가능한 해상도 매개 변수가 있습니다. 스핀 글래스 방법의 변형은 부정적인 링크 (즉, 엔드 포인트가 다른 커뮤니티에있는 것을 선호하는 링크)를 고려할 수도 있습니다.

  • leading.eigenvector.community모듈화 기능을 다시 최적화하는 하향식 계층 적 접근 방식입니다. 각 단계에서 그래프는 분리 자체가 모듈성을 크게 증가시키는 방식으로 두 부분으로 나뉩니다. 분할은 소위 모듈성 행렬의 선행 고유 벡터를 평가하여 결정되며 밀접하게 연결된 그룹이 더 이상 분할되는 것을 방지하는 중지 조건도 있습니다. 관련된 고유 벡터 계산으로 인해 ARPACK 고유 벡터 솔버가 불안정한 축퇴 그래프에서는 작동하지 않을 수 있습니다. 비 퇴화 그래프에서는 약간 느리지 만 빠른 탐욕 방법보다 모듈성 점수가 더 높을 수 있습니다.

  • label.propagation.community모든 노드에 k 레이블 중 하나가 할당되는 간단한 접근 방식입니다 . 그런 다음 메서드는 반복적으로 진행되고 각 노드가 동기식으로 인접 항목의 가장 빈번한 레이블을 사용하는 방식으로 레이블을 노드에 다시 할당합니다. 이 방법은 각 노드의 레이블이 이웃에서 가장 빈번한 레이블 중 하나 일 때 중지됩니다. 매우 빠르지 만 초기 구성 (무작위로 결정됨)에 따라 다른 결과를 산출하므로 메서드를 여러 번 (예 : 그래프의 경우 1000 번) 실행 한 다음 합의 레이블을 작성해야합니다. 지루한.

igraph 0.6은 또한 정보 이론 원칙에 기반한 최첨단 Infomap 커뮤니티 탐지 알고리즘을 포함합니다. 그래프에서 임의 걷기에 대해 가장 짧은 설명 길이를 제공하는 그룹화를 구축하려고합니다. 여기서 설명 길이는 임의 걷기 경로를 인코딩하는 데 필요한 정점 당 예상 비트 수로 측정됩니다.

어쨌든, 난 아마로 갈 것 fastgreedy.community또는 walktrap.community첫 번째 근사치로하고이 두 어떤 이유로 특정 문제에 적합하지 않은 것으로 판명되면 그 다음 다른 방법을 평가합니다.


3
내가 아는 한 이것은 비 결정적 알고리즘과 관련하여 매우 일반적인 일입니다. 그러나 커뮤니티 ID가 의미 론적 의미가 없기 때문에 알고리즘의 한 실행에서 커뮤니티 i가 다른 실행의 커뮤니티 i와 반드시 일치하지는 않을 수 있으므로주의해야합니다.
Tamás 2015 년

2
새로운 것이 있습니다 : multilevel.community. 목록에 추가 하시겠습니까? (기존 답변은 훌륭합니다. 감사합니다!)
Zach

1
@ Tamás multilevel.communityfastgreedy.community알고리즘 의 차이점을 설명해 주 시겠습니까? 이 두 가지는 매우 유사한 것 같습니다. 많은 감사드립니다.
Antoine

4
그들은 동일하지 않습니다. fastgreedy.community커뮤니티 쌍을 반복적으로 병합하여 항상 전체 모듈성을 최대로 증가시키는 쌍을 선택합니다 . 에서는 multilevel.community커뮤니티가 병합되지 않습니다. 그 대신 노드가 커뮤니티간에 이동되어 각 노드가 모듈성 점수에 대한 자체 기여도를 극대화 하는 로컬 결정을 내 립니다. 이 절차가 중단되면 (즉, 어떤 노드도 멤버십을 변경하지 않음) 모든 커뮤니티가 단일 노드로 축소되고 프로세스가 계속됩니다 (이것이 다중 레벨 인 이유입니다).
Tamás

2
@Antoine : InfoMap 알고리즘은 방향성 가장자리를 처리하는 훌륭하고 과학적으로 건전한 접근 방식을 가지고 있습니다. igraph의 구현은 가장 효율적이지는 않지만 (라이선스 문제로 인해) 더 작은 그래프에서는 작동합니다. 너무 느린 것으로 판명 경우에서 알고리즘의 저자의 코드를 시도 할 수 있습니다 mapequation.org
타마스

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.