🕸️ Wykrywanie społeczności w sieci społecznościowej — algorytm Louvain na żywo
Obserwuj, jak prawdziwy algorytm optymalizacji modularności Louvain iteracyjnie łączy węzły symulowanego grafu społecznościowego w społeczności, maksymalizując rzeczywisty wynik modularności na żywo podczas eksploracji sieci.
O tej symulacji
Ten symulator generuje syntetyczną sieć społecznościową z prawdziwą strukturą klastrów odniesienia — kilka gęsto połączonych grup znajomych powiązanych rozproszeniem rzadszych krawędzi międzygrupowych — a następnie uruchamia na niej prawdziwy algorytm Louvain. Każdy ruch węzła jest oceniany rzeczywistym wzorem przyrostu modularności, społeczności są naprawdę zwijane w super-węzły między fazami, a wyświetlany na ekranie wynik modularności (Q) jest obliczany bezpośrednio z oryginalnego grafu i bieżącego podziału — nic tutaj nie jest zaskryptowaną animacją.
🔬 Co pokazuje
Węzły są rozmieszczone w 3D za pomocą żywej symulacji sił — wzajemne odpychanie, sprężyste przyciąganie wzdłuż krawędzi oraz delikatne przyciąganie w stronę centroidu społeczności każdego węzła. Gdy Louvain przypisuje węzły do społeczności o wyższej modularności, kolory węzłów natychmiast się aktualizują, a układ przesuwa się w widocznie rozdzielone klastry, czyniąc zachłanne lokalne przeszukiwanie algorytmu widocznym krok po kroku.
🎮 Jak korzystać
Użyj Nowy graf, aby uzyskać nową losową sieć, Wykonaj krok fazy 1, aby wykonać jedno przejście fazy przesuwania węzłów, Agreguj → następny poziom, aby zwinąć bieżące społeczności w super-węzły, lub Uruchom pełny algorytm, aby Louvain działał automatycznie do zbieżności na wszystkich poziomach. Suwak Rozdzielczość (γ) na żywo zmienia wagę wyrazu kary modularności, pozwalając skierować algorytm w stronę grubszych lub drobniejszych społeczności. Przeciągnij, by obracać kamerę, i przewiń, by przybliżyć.
💡 Czy wiesz, że...
Dwufazowa sztuczka Louvain — przesuń węzły, a następnie zwiń społeczności w pojedyncze super-węzły i powtórz — jest tym, co pozwala mu skalować się do sieci z milionami węzłów w czasie w przybliżeniu liniowym, podczas gdy naiwne wyczerpujące przeszukiwanie w poszukiwaniu podziału maksymalizującego modularność jest NP-trudne. Pozostaje jednym z najczęściej używanych algorytmów wykrywania społeczności w nauce o sieciach, od grafów mediów społecznościowych po sieci oddziaływań białek.
Najczęściej zadawane pytania
Czym jest metoda Louvain?
Metoda Louvain to zachłanny, wielopoziomowy algorytm wykrywania społeczności w dużych sieciach poprzez maksymalizację funkcji jakości zwanej modularnością. Naprzemiennie wykonuje lokalną fazę przesuwania węzłów i fazę agregacji grafu, i jest ceniona za skalowalność do sieci z milionami węzłów, zwykle znajdując podziały o wysokiej modularności w czasie niemal liniowym.
Czym dokładnie jest modularność i po co ją maksymalizować?
Modularność (Q) mierzy, o ile gęstsze są połączenia wewnątrz proponowanych społeczności niż byłoby to oczekiwane w losowym grafie o tej samej sekwencji stopni. Q mieści się w przybliżeniu w zakresie od −0,5 do 1; wartości powyżej około 0,3 zwykle wskazują na znaczącą strukturę społeczności. Louvain zachłannie przesuwa węzły i łączy społeczności, by maksymalnie podnieść Q, choć podobnie jak większość metod maksymalizujących modularność jest to heurystyka, a nie gwarantowane globalne optimum.
Jak parametr rozdzielczości zmienia wynik?
Parametr rozdzielczości (γ) skaluje wyraz kary we wzorze modularności. Wartości poniżej 1 łagodzą tę karę, faworyzując mniej, ale większych społeczności; wartości powyżej 1 ją zaostrzają, faworyzując więcej, mniejszych społeczności. Pozwala to badać strukturę sieci na różnych poziomach szczegółowości bez zmiany bazowego grafu.
Czemu algorytm działa w fazach?
Faza 1 wielokrotnie przesuwa poszczególne węzły do tej sąsiedniej społeczności, która najbardziej zwiększa modularność, aż żaden pojedynczy ruch nie pomaga. Faza 2 następnie zwija każdą odkrytą społeczność w jeden super-węzeł, zamieniając krawędzie wewnątrzspołecznościowe w pętle własne, a krawędzie międzyspołecznościowe w ważone połączenia między super-węzłami. Powtarzanie obu faz na kurczącym się skondensowanym grafie pozwala, by małe lokalne połączenia złożyły się w strukturę wielkoskalową w zaledwie kilku przebiegach.
Czy to prawdziwa implementacja, czy wizualne przybliżenie?
To prawdziwa implementacja. Każdy ruch węzła jest oceniany rzeczywistym wzorem przyrostu modularności z użyciem stopnia każdego węzła oraz wewnętrznego i całkowitego stopnia sąsiednich społeczności, graf jest naprawdę agregowany między fazami, a wyświetlany wynik modularności jest obliczany bezpośrednio z krawędzi oryginalnego grafu i bieżącego przypisania do społeczności — nie jest to zaskryptowana ani z góry ustalona liczba.
Obserwuj, jak prawdziwy algorytm optymalizacji modularności Louvain iteracyjnie łączy węzły symulowanego grafu społecznościowego w społeczności, maksymalizując rzeczywisty wynik modularności na żywo podczas eksploracji sieci.
3D · renderer Three.js / WebGL · cel 60 FPS · działa w całości w przeglądarce, bez instalacji