Strona głównaAI i MLWykrywanie społeczności w sieci społecznościowej

🕸️ 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.

AI i ML3DZaawansowany60 FPS
ai-social-network-community-detection ↗ Otwórz osobno

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.

⚙ Co pod maską

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.

Graph TheoryCommunity DetectionLouvainModularityForce-Directed Layout

3D · renderer Three.js / WebGL · cel 60 FPS · działa w całości w przeglądarce, bez instalacji

Co znalazłeś?

Dodaj kroki odtworzenia (opcjonalnie)