Modularity-based Dynamic Community Detection

Community detection is a fundamental problem in network science, which has attracted much attention in the past several decades, especially in the social network area. Lots of studies about detecting communities in the static networks have been proposed in the literature, which could be found in survey [1] and method [2]. Real-world networks, especially most of the social networks, however, are not always static. In fact, most popular social networks in reality (such as Facebook, LinkedIn and Twitter) are evolving heavily and expanding dramatically in terms of both size and complexity over time. For instance, worldwide, there are over 1.71 billion monthly active Facebook users (Facebook MAUs) which is a 15% increase year over year, and 4.5 billion likes generated daily as of May 2013 which is a 67% increase from August 2012 [3]. To fulfill the need of detecting communities in dynamic networks, a few algorithms have been proposed. [4] considers the addition of nodes and edges as network changes, and use prior community information together with the network changes to update the communities. However, in fact, the deletion of nodes and edges happens quite often in the real-world networks. For instance, in Facebook, people could not only make friends, but also break off relationships. [5] might be the closest work to this project, which considers both addition and deletion of nodes and edges, and presents an adaptive methods in dynamic networks that treat network changes as a collection of simple events, and updates or discovers the new community structures based on its history together with each network change events. However, [5] does not consider weighted networks, which is quite common in real-world networks, and the definition of each simple events could still be improved. We propose a modularity-optimization based dynamic community detection method, which could keep tracking the community structure of a dynamic network with very low computing complexity in updating the community structure when the network changing dynamically. In this work, we start from investigating the four categories of edge addition described in [4], and then generalize the edge addition/deletion to edge weight increasing/decreasing, respectively, and extend them into seven network change cases, to support more real-world networks. For instance, if the network adds an additional edge, we consider it as an edge weight increasing, and on the contrary, if the network deletes an existing edge, we consider it as an edge weight decreasing. In this project, we have implemented both the original cases [4] and the extended cases using Java. Furthermore, we have designed and implemented the experiment to generate the random dynamic networks that have community structures with different settings/parameters. Extensive experiments of the comparison among our method, Louvain [2] and the ground truth have been conducted to evaluate our method in terms of accuracy and efficiency. It turns out that, our method could highly increase the community detection efficiency without jeopardizing much of the accuracy. The rest of the paper is organized as follows: Section II gives some related works in modularity-based community detection and dynamic community detection. Section III presents our modularity-based dynamic community detection. Section IV gives the experimental evaluation to validate the effectiveness and the high computational efficiency of our algorithm. Section V draws the conclusion.