Jan Mortell   Yorck Degens   Eda Erusta
RWTH Aachen University   RWTH Aachen University   RWTH Aachen University
jan.mortell@rwth-aachen.de   yorck.degens@rwth-aachen.de   eda.erusta@rwth-aachen.de


Abstract

In dieser wissenschaftlichen Arbeit beschäftigen wir uns mit der Generierung von möglichst realistischen synthetischen Datensätzen für Algorithmen zur Entdeckung von Gemeinschaften in sozialen Netzwerken. Viele der heutzutage verwendeten synthetischen Datensätze, sind aus verschiedenen Gründen noch nicht mit Datensätzen aus der realen Welt, bspw. aus sozialen Medien, vergleichbar. Dieser Umstand führt dazu, dass die Performance von Algorithmen, die auf eben diesen synthetischen Datensätzen getestet werden, nicht ohne Weiteres mit der auf realen Datensätzen zu vergleichen ist. Um Methoden der Generierung synthetischer Datensätze für Algorithmen zur Entdeckung von Gemeinschaften in sozialen Netzwerken zu verbessern, sollen im Ramen dieser wissenschaftlichen Arbeit synthetische Datensätze, die mit dem LFR Benchmark erstellt wurden, mit Datensätzen aus der realen Welt verglichen werden. Anschließend soll dann die Performance und Genauigkeit von OCD Algorithmen auf den synthetischen Datensätzen mit der auf real world Datensätzen verglichen werden. Der Einfachheit halber werden dazu sehr kleine Datensätze verwendet. Ziel dieser Vergleiche ist es, Unterschiede für die weiterführende Forschung aufzuzeigen, welche dann durch Modifizierung des LFR Benchmarks reduziert werden können. Die Ergebnisse dieser Arbeit können dann in vielen Bereichen der Forschung eingesetzt werden, um mit verbesserten, realistischeren synthetischen Datensätzen das Erstellen von und die Arbeit mit Algorithmen zu verbessern.


Keywords

Community structure, LFR benchmark, Synthetic data


Inhaltsverzeichnis

  1. Einleitung
  2. Related Work
  3. Methodik
    1. Netzwerke
    2. CD Algorithmen
  4. Diskussion
  5. Zusammenfassung
  6. Referenzen


Einleitung

In dieser Arbeit betrachten wir OCD-Algorithmen auf synthetischen Datensätzen im Zusammenhang mit der Suche nach communities in sozialen Netzwerken. Ein soziales Netzwerk wird je nach Anwendungsfall durch einen gerichteten bzw. ungerichteten Graphen der Form \(G = (V,E)\) dargestellt, und kann mit Kantengewichten versehen sein. Hierbei beschreibt \(V\) eine endliche Menge von Knoten, welche Accounts in den sozialen Netzwerken repräsentieren und \(E\) eine Menge von Kanten zwischen zwei Knoten, welche für soziale Interaktion zwischen den jeweiligen Accounts stehen. Innerhalb der sozialen Netzwerke sind Personen mit ähnlich Interessen unterwegs. Nicht selten ist eine Person gleichzeitig in mehreren verschiedenen communities unterwegs. Diese werden dann als überlappende communities bezeichnet. Eine community beshreibt dabei eine Menge von Knoten und Kanten, in der eine deutlich höhere Interaktionsdichte innerhalb der Community vorliegt und eine deutliche geringere Interaktionsdichte zu anderen communities (Goldberg et al., 2010).

Was Algorithmen angeht, wollen wir uns in dieser Arbeit mit Overlapping Community Detection Algorithmen (OCD-Algorithmen) beschäftigen. Überlappende communities stellen eine besondere Herausforderung für Algorithmen dar, da Knoten in diesem Fall zu mehreren communities gehören können und es so nicht ausreicht zu überprüfen, in welcher community am meisten Beziehungen bestehen. Es wird ein Grenzwert benötigt, da sich die einzelnen communities überlappen können und so für eine community eine höhere externe, als interne Interaktionsdichte vorliegen kann (Goldberg et al., 2010).

Es gibt eine Menge Gründe, wieso es nicht unbedingt leicht ist, an Datensätze heranzukommen. Gerade in der heutigen Zeit sind Menschen mit ihren eigenen Daten, vor allem auf social media, immer vorsichtiger. Es ist mittlerweile zum Trend geworden, seine Daten nicht mit der Öffentlichkeit und schon gar nicht mit den Firmen zu teilen, die hinter social media stecken. Datenschutzgrundverordnungen bspw. schützen zudem die personenbezogenen Daten vieler Menschen. Werden diese Daten trotzdem erhoben, so ist dies of teuer und die Veränderung von sensiblen Informationen zur Anonymisierung der Daten mühselig und langwierig. Eine Lösung für dieses Problem bietet synthetic data. Künstliche Datensätze, die von Computern generiert werden sind datenschutztechnisch völlig unbedenklich und ermöglichen Wissenschaftlern und Mathematikern das Forschen und testen von Algorithmen. Allerdings existieren zwischen echten und synthetischen Datensätzen immer Unterschiede, sodass bspw. die Performance von Algorithmen auf den Datensätzen schwer zu vergleichen ist (Kar et al., o. J.). Ein Ziel bei der Entwicklung von Algorithmen zur Erstellung von Synthetischen Datensätzen ist also diese so realistisch wie möglich zu bekommen, um die Unterschiede gering zu halten. Dies führt zu einer besseren Vergleichbarkeit und damit zu besseren Algorithmen und darum geht es.



Wie bereits in der Einleitung beschrieben, sind synthetische Datensätze und das Generieren solcher mit Hilfe von Algorithmen ein wichtiges Thema für Mathematik, Forschung, etc. Demnach ist es nicht verwunderlich, dass es bereits ein breites Angebot an wissenschaftlichen Papern zu Themen wie dem LFR benchmark und synthetischen Datensätzen gibt. Dabei Handelt es sich häufig um verschiedene Modikfikationen bspw. des LFR benchmarks, welche dazu führen sollen, dass die generierten Netzwerke noch näher an der Realität liegen als zuvor. Immer wieder werden Schwachstellen von Algorithmen zur Generierung von synthetischen Datensätzen entdeckt, welche durchaus Anwendungsfallspezifisch sein können. Nachdem der Algorithmus für den jeweiligen Anwendungsfall modifiziert wurde, werden testweise verschiedene Algorithmen auf den neu generierten Netzwerken ausgefüht und die Ergebnisse anschließend mit älteren synthetischen Netzwerken verglichen. Ist die Performance der Algorithmen auf den neu generierten Netzwerken besser als auf den alten, wurde möglicher Weise eine Modifikation des Algorithmus gefunden, welche für den speziellen Anwendungsfall besser geeignet ist (Lancichinetti et al., 2008), (Orman et al., 2013), (Slota & Garbus, 2020). Um uns bewusst von wissenschaftlichen Papern dieser Art abzuheben, wählen wir einen anderen Ansatz für dieses Arbeit. Unser Ziel ist es, den Autoren eben beschriebener Paper etwas Arbeit abzunehmen, indem wir bereits im Voraus eine Beschreibung von Unterschieden zwischen den durch LFR genrierten Netzwerken und Netzwerken aus der realen Welt liefern. Diese Unterschiede sollen dabei helfen, effizient Modifikationen am LFR benchmark vorzunehmen, um die generierten Netzwerke noch realer werden zu lassen.



Methodik

Netzwerke

In dieser Arbeit werden wir drei verschiedene Datensätze verwenden.

Der erste Datensatz polbooks [V. Krebs, unpublished, http://www.orgnet.com] behandelt Bücher über amerikanische Politiker. Hierbei stellen Knoten Bücher über amerikanische Politiker dar, welche durch Amazon.de verkauft wurden. Kanten wiederum stellen häufige gemeinsame Käufe von zwei Büchern dar, wie es bei Amazon durch den Bereich “Kunden, die dieses Buch gelesen haben, lesen auch” dargestellt wird. Zusätzlich hat jeder Knoten händisch einen zusätzlichen Wert “l”, “n”, oder “c” erhalten, welche für “liberal”, “neutral” oder “konservativ” stehen. Diese Zuweisung wurde durch Mark Newman mit Hilfe der Rezensionen und Beschreibungen der Bücher auf Amazon vorgenommen. Die folgende, interaktive Graphik zeigt den verwendeten Graphen polbooks.



Die zwei anderen hier verwendeten Datensätze wurden von uns im Rahmen dieser Arbeit mit Hilfe von WebOCD und dem LFR Benchmark erstellt. Das Lancishinetti-Fortunato-Radicchi benchmark (LFR benchmark) ist ein Algorithmus zur Generierung von benchmark Netzwerken. Darunter versteht man künstlich erzeugte Netzwerke, die reale Netzwerke imitieren sollen. Diese Netzwerke werden dann bespw. dazu verwendet um CD-Algorithmen darauf laufen zu lassen.

Etwas vereinfacht lässt sich die Arbeitsweise des Algorithmus wie folgt beschrieben:

  • Step 1: Generierung eines Netzwerkes, bestehend aus Knoten und Kanten, wobei sich die Kantenanzahl an einem Paramter \(k\) orientiert, welcher den durchschnittlichen Grad der Knoten angibt
  • Step 2: Generierung der Communitygrößen, dabei muss die Summe der Größen der Knotenanzahl \(N\) entsprechen, zusätzlich werden obere und untere Schranken für die Communitygrößen definiert, sodass jeder nicht-isolierte Knoten in einer Community ist
  • Step 3: Anfangs ist kein Knoten einer Community zugeordnet, jeder Knoten wird nun zufällig einer COmmunity zugeordnet, solange die Anzahl der benachbarten Knoten innerhalb einer Kommunity den Grenzwert nicht überschreitet, ist dies der Fall, wird der Knoten nicht zugeordnet, übrig gebliebene Knoten werden im Anschluss zufällig einer Community zugeteilt
  • Step 4: Zuletzt findet noch eine umverteilung einiger Kanten statt, sodass die Knoten ihren Grad behalten, die Anzahl der Kanten außerhalb der Communities aber einem Mixing-Parameter entspricht

Der erste synthetische Datensatz k20 wurde mit Hilfe des WebOCD-Dienstes und den vorgegebenen Standardparametern, genau 105 Knoten erzeugt, um ihn möglichst vergleichbar mit dem polbooks Netzwerk zu machen. Der Datensatz ist nach dem Parameter \(k\) benannt, welcher im WebOCD Service den durchschnittlichen Grad der Knoten angibt. Der generierte Graph mit \(k = 20\) wird im folgenden interaktiv dargetsellt.



Der letzte Datensatz ist ebenfalls synthetisch und wurde mit Hilfe des WebOCD-Dienstes und dem LFR benchmark erstellt. Er trägt den Namen k4 und ist ebenfalls nach dem Parameter \(k\) benannt. Als Wert für \(k\) wurde hier 4 gewählt, um das generierte Netzwerk an den real world Graphen polbooks und dessen Kantenanzahl anzupassen. Durch die Anpassung des Parameters gleichen sich die Datensätze sehr stark, was die Anzahl der Knoten und Kanten angeht. Dieser Umstand soll den Vergleich der Graphen vereinfachen. In der interaktiven Graphik unter diesem Absatz ist der generierte Graph mit Paramter \(k = 4\) dargestellt.



CD Algorithmen

In diesem Paper werden wir vier verschiedene OCD-Algorithmen DMID, SLLP, SSK und CLiZZ benutzen um die Qualität der Communities innerhalb der synthetisch generierten Datensätze zu testen. Zum Vergleich lassen wir die Algorithmen auch über unseren Real-World Datensatz „polbooks“ laufen.

Um die Ergebnisse der Algorithmen zu vergleichen, ermitteln wir die Modularitätswerte. Die Modularität ist ein Messwert der die Partitionierung eines Netzwerkes in Communities bestimmt. Ein Wert nahe 1 weist auf ein Netzwerk mit deutlich erkennbaren Communities hin, während ein negativer Wert bedeutet, dass keine Struktur die einer Community ähnelt gefunden wurden.
Bei einem zufällig generierten Netzwerk ist die erwartete Modularität \(Q = 0,15\).

Disassortative Degree Mixing and Information Diffusion (DMID)

DMID sucht die sogenannten Leader- bzw. Anführer-Knoten, welche die Mittelpunkte der einzelnen Communities markieren. Ein Leader zeichnet sich durch einen hohen Grad aus und dadurch, dass benachbarte Knoten einen deutlich geringeren Grad haben. Die Leader werden mit einen „Disassortive Random Walk“ ausfündig gemacht.
Im nächsten Schritt geht es darum für die restlichen Knoten, die keine Leader sind, die Verwandtheitsgrade zu den Leadern zu berechnen um alle Knoten in Communities zu sortieren. Da Knoten nicht immer eindeutig zu einer Community gehören kommt es dabei zu Überlappungen, was zu einem niedrigerem Modularitätswert führt.

Stanoev, Smilkov und Kocarev (SSK)

Ähnlich wie DMID basiert auch SSK auf das Finden der Leader, die Algorithmen unterscheiden sich aber darin wie die Leader gefunden werden. Bei SSK wird zunächst eine Einflussmatrix berechnet, wobei besonders Dreiecksverbindungen zwischen Knoten beachtet werden. Zunächst werden dafür die relativen Einflüsse zwischen allen Koten bestimmt und anschließend der Einfluss eines Knotens auf das gesamte Netzwerk.
Anhand der Einflussmatrix werden nun die Anführer bestimmt. Die Anführer sind die knoten mit dem größten Einfluss auf das gesamte Netzwerk. Zuletzt wird für jeden nicht-Anführer-Knoten der Verwandtheitsgrad zu jedem Anführer berechnet und in einem Mitgliedschaftsvektor zusammengefasst. Wie in DMID kann es zu Überlappungen kommen, weshalb Knoten nicht immer eindeutig zu einer Community gehören.

Speaker Listener Label Propagation Algorithm (SLLP/ SLPA)

Der letzte OCD-Algorithmus ist SLLP. Dieser unterscheidet sich von den anderen dadurch, dass er keine Leader sucht, sondern die Knoten in „Zuhörer“ und „Sprecher“ aufteilt und iterativ ist.
Zu Beginn wird jeder Knoten mit einem eindeutigen Label initialisiert, welches aus der ID des Knotens besteht.
Im nächsten Schritt werden alle Knoten in zufälliger Reihenfolge ausgewählt. Der aktuell ausgewählte knoten wird zum Zuhörer und alle seine Nachbarn werden zu Sprechern. Alle Sprecher wählen aus ihren Speichern nach einer Sprecher-Regel ein Label aus und übergeben es an den Zuhörer. Der Zuhörer wählt anschließend nach einer Zuhörer-Regel eins der empfangenen Labels aus und speichert dieses ab. Dieser Schritt wird wiederholt, bis das Haltekriterium erfüllt ist.
In der Nachbearbeitung werden die Knoten erst den Communities zu sortiert. Dafür wird eine Wahrscheinlichkeitsverteilung der Label in dem Speicher des Knotens berechnet, die dann benutzt wird um die Knoten zu Communities zuzuordnen.



Polbooks: SLLP, DMID und SSK



K=20: SLLP, DMID und SSK



K=4: SLLP, DMID und SSK



Nachdem wir kurz die in dieser Arbeit verwendeten Netzwerke vorgestellt, das LFR benchmark knapp erläutert und einen Überblick über die verwendeten Algorithmen gegeben haben, soll als nächstes die Vorgehensweise beim Vergleich der synthetischen Datensätze mit dem real-world Datensatz erläutert werden. Nachdem die zwei bereits beschriebenen synthetischen Datensätze mit Hilfe von WebOCD erzeugt wurden, sind die vier beschriebenen Algorithmen zur Erkennung von Gemeinschaften in sozialen Netzwerken sowohl auf den synthetischen, als auch auf dem real-world Datensatz laufen gelassen worden. Dazu wurde ebenfalls WebOCD verwendet. Diese Algorithmen sollten Communities in den verschiedenen Netzwerken erkennen, welche in der folgenden, interaktiven Graphik zu sehen sind.

Im Anschluss wurde die Modularität und die Anzahl der gefundenen Communities innerhalb der obigen Graphen bestimmt, um anhand dieser Werte Schlüsse auf die Qualität der generierten Netzwerke ziehen zu können. Die Unterschiede innerhalb der Modularität sollen Aufschluss darüber geben, wie gut die verwendeten Algorithmen auf den synthetischen Datensätzen gelaufen sind und wo mögliche Schwachstellen liegen können. Dies wird im Folgenden diskutiert.



Diskussion

Im Folgenden Abschnitt werden wir nun kurz die dargestellten Daten erläutern und anschließend nach unserem Kenntnisstand analysieren.

Beginnen wir mit den obigen Graphen, die wir aus WebOCD exportiert haben. Diese werden im Buch interaktiv dargestellt, was unter Umständen zu einem besseren Verständnis beitragen kann.
Als erstes und am deutlichsten fallen die Unterschiede zwischen dem echten Datensatz polbooks und den synthetsichen Datensätzen auf, was die Ausbreitung der Knoten angeht. Die Knoten der synthetischen Datensätze werden deutlich geballter dargestellt. Die einzelnen Knoten in polbooks sind teilweise sehr weit voneinander distanziert und weisen eine, im Vergleich zu unserem unmodifizierten LFR Graphen, sehr geringe Kantenanzahl auf. Um diesen Unterschied auszugleichen haben wir den Parameter \(k\) in WebOCD angepasst und so einen ähnlicheren synthetischen Graphen zu unserem real-world-Graphen erzeugt.
Als nächstes lohnt es sich, einen Blick auf die Farben der einzelnen Knoten zu werfen. Während im Abschnitt Netzwerke nur die einzelnen Graphen dargestellt wurden, kann man anhand der Farben nun auch erkennen, wie die einzelnen Knoten von den beschriebenen Algorithmen in Communities eingeteilt wurden. So ist mit einem Blick bereits ersichtlich, wie unterschiedlicher jeder Algorithmus mit dem jeweiligen Graphen umgegangen ist. Es lässt sich beispielsweise sofort erkennen, dass der SLLP Algorithmus auf dem Graphen k4 mehr Communities entdeckt hat, als auf dem polbooks Graphen. Beim Graphen k20 ist die Anwendung des SLLP Algorithmus nicht erfolgreich gewesen, wie sowohl die Grafik als auch die Modularität zeigen. Dies liegt vermutlich an deutlich erhöhten Kantenanzahl, die das erkennen von Communities gerade bei einer vergleichsweise geringen Knotenzahl deutlich erschwert.
Es ist allerdings festzustellen, dass die Algorithmen DMID und SSK bei k20 erfolgreicher waren, was das Entdecken von verschiedenen Communities angeht. Insgesamt lässt sich aus eben genannten Gründen ganz deutlich festhalten, dass der synthetisch generierte Graph k20 die größte Herausforderung für die von uns angewendeten Algorithmen zum finden von Gemeinschaften in sozialen Netzwerken war.
Der DMID Algorithmus hat sich ebenfalls auf dem Graphen polbooks am besten geschlagen, konnte aber, wie bereits erwähnt, auch einige Communities in unserem synthetischen k20 Graphen finden. Die Ergebnisse auf dem synthetischen Graphen k4 sind jedoch schlechter als die von SLLP, was im Folgenden bezüglich der Modularität nochmal genauer erläutert wird.
Insgesamt am schlechtesten abgeschnitten hat jedoch der SSK Algorithmus. Auch wenn dieser ebenfalls einige Communities in unserem k20 Graphen finden konnte, ist die Leistung auf dem polbooks Graphen eher bescheiden. Am schlechtesten hat SSK auf dem Graphen k4 abgeschnitten, hier wurden trotz einer hohen Ähnlichkeit zu polbooks nur sehr wenige Communities entdeckt. Erklärungen dafür werden wir im Folgenden noch auf den Grund gehen.
Zuletzt wollen wir uns noch mit der Modularität der einzelnen Graphen beschäftigen. Der Begriff Modularität wurde bereits erläutert. Außerdem sind die Modularitäten am Ende des Methodik-Teils dargestellt.

Betrachten wir zunächst unseren Real-World-Datensatz polbooks. Dieser erzielt die höchsten Modularitätswerte, mit ca. 0,82 bei SLLP und 0,65 bei DMID. Beim letzten Algorithmus sind die Werte jedoch geringer, mit ca. 0,4 bei SSK.
Die mit dem LFR-Benchmark generierten Datensätze schneiden in den meisten Fällen deutlich schlechter ab, als der Real-World-Datensatz. Während k4 bei SLLP einen noch recht guten Modularitätswert erzielt, sind die Werte mit SSK und DMID sehr niedrig, was darauf schließen lässt, dass die Algorithmen nur sehr schwach ausgeprägte Communities gefunden haben.
k20 schneidet bei SSK und DMID besser ab als k4 mit Modularitäten bei ca. 0,36 und 0,38, hat bei SLLP aber einen Wert von 0, was vermutlich daran liegt, dass nur eine Community gefunden wurde.

Auffallend ist, dass die synthetisch generierten Datensätze bei den Algorithmen die zuerst die Leader herausfiltern schlechter abschneiden als bei SLLP. Daraus lässt sich ableiten, dass der LFR-Benchmark Schwächen in der Generierung von Leadern hat.



Zusammenfassung

Es ist heutzutage nicht leicht, an eine große Anzahl effektiv verwendbarer Datensätze heranzukommen. Dies liegt nicht nur an mangelnder Verfügbarkeit sondern ebenfalls an vielen rechtlichen Hürden. Des weiteren werden viele Menschen immer sensibler, was das Herausgeben ihrer persönlichen Daten angeht. Dies gilt vor allem für social media. Gerade die Forschung rund um Neuronale Netze und künstliche Intelligenz benötigt mehr Daten als jemals zuvor. Aber nicht nur die Wissenschaft ist interessiert an Daten. Mathematiker und Informatiker, die täglich versuchen effizientere Algorithmen zur Lösung unserer Probleme zu entwickeln benötigen diese Daten ebenso.
Wie praktisch wäre es also, wenn man große, realistische Datensätze mit Hilfe von Algorithmen erzeugen könnte, welche wiederum zur Verbesserung andere Algorithmen beitragen würden. Dies ist eines der vielen Ziele der Forschung rund um synthetische Datensätze.
Doch zum heutigen Zeitpunkt sind manche Algorithmen zur Generierung von synthetischen Datensätzen noch nicht auf bestimmte Forschungsbereiche angepasst. Dies gilt es durch Modifikationen an diesen Algorithmen zu verändern. Da aber beispielsweise jeder Forschungsbereich seine eigenen Modifikationen vornehmen muss, ist in diesem Feld noch viel Arbeit zu tun.

Zusammenfassend lässt sich sagen, dass die mit dem LFR-Benchmark generierten Datensätze in den meisten Fällen schlechtere Modularitätswerte erzielt haben, als unser real-world Datenmsatz. Das bedeutet, dass keine deutlich erkennbaren Communities generiert werden konnten. Netzwerke die mit dem LFR-Benchmark generiert wurden können daher noch nicht mit Real-World-Datensätzen mithalten, was sich aber mit dem ausbessern von einigen Schwachstellen sicherlich ändern lassen kann. Eine besonders auffällige Schwachstelle ist das Generieren von Leader-Knoten. Wenn synthetisch generierte Datensätze Leader-Knoten als “Ankerpunkte” für Communities verwenden würden und dann die restlichen Knoten ausgehend von diesen Leader-Koten erzeugen, würde dies sicherlich in einem realitätsnäherem Netzwerk resultieren.
Die weitere Forschung soll diese Erkenntnisse als Anstoß nehmen und zusammen mit eigenen Ideen und Lösungsansätzen nutzen, um Algorithmen wie das LFR benchmark anzupassen und zu verbessern. Verbesserte Algortihmen zur Generierung von synthetischen Datensätzen resultieren in besserer Forschung und somit wiederum in besseren Algorithmen, beispielsweise zur Ekennung von Gemeinschaften in sozialen Netzwerken.



Referenzen

  1. Goldberg, M., Kelley, S., Magdon-Ismail, M., Mertsalov, K., & Wallace, A. (2010). Finding Overlapping Communities in Social Networks (2010 IEEE Second International Conference on Social Computing, Ed.).
  2. Kar, A., Prakash, A., Liu, M.-Y., Cameracci, E., Yuan, J., Rusiniak, M., Acuna, D., Torralba, A., & Fidler, S. (o. J.). Meta-Sim: Learning to Generate Synthetic Datasets.
  3. Lancichinetti, A., Fortunato, S., & Radicchi, F. (2008). Benchmark graphs for testing community detection algorithms. Physical Review. E, Statistical, Nonlinear, and Soft Matter Physics, 78(4 Pt 2), 046110. https://doi.org/10.1103/PhysRevE.78.046110
  4. Orman, G. K., Labatut, V., & Cherifi, H. (2013). Towards realistic artificial benchmark for community detection algorithms evaluation. International Journal of Web Based Communities, 9(3), 349. https://doi.org/10.1504/IJWBC.2013.054908
  5. Slota, G. M., & Garbus, J. (2020). A Parallel LFR-like Benchmark for Evaluating Community Detection Algorithms. 2020 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW), 1112–1115. https://doi.org/10.1109/IPDPSW50202.2020.00183