Bayesian Overlapping Community Detection in Dynamic Networks
Abstract
Detecting community structures in social networks has gained considerable attention in recent years. However, lack of prior knowledge about the number of communities, and their overlapping nature have made community detection a challenging problem. Moreover, many of the existing methods only consider static networks, while most of real world networks are dynamic and evolve over time. Hence, finding consistent overlapping communities in dynamic networks without any prior knowledge about the number of communities is still an interesting open research problem. In this paper, we present an overlapping community detection method for dynamic networks called Dynamic Bayesian Overlapping Community Detector (DBOCD). DBOCD assumes that in every snapshot of network, overlapping parts of communities are dense areas and utilizes link communities instead of common node communities. Using Recurrent Chinese Restaurant Process and community structure of the network in the last snapshot, DBOCD simultaneously extracts the number of communities and soft community memberships of nodes while maintaining the consistency of communities over time. We evaluated DBOCD on both synthetic and real dynamic datasets to assess its ability to find overlapping communities in different types of network evolution. The results show that DBOCD outperforms the recent state of the art dynamic community detection methods.
1 Introduction
One of the most important research problems in network science is the identification of the community structure of networks. In a network, a community is a group of nodes with many intragroup connections and a few ones toward outside [1]. Identifying communities has many real world applications. Suggesting items in recommender systems, detecting spy and terrorist groups, and predicting future links between members of a social network are some examples where community detection algorithms have been utilized [2, 3].
The community detection problem has been investigated comprehensively in the last decade using different approaches and assumptions. Traditional methods assume the number of communities is known a priori, and every node belongs to exactly one community. However, in real world a node can belong to many groups, simultaneously [4], and often, we do not have any information about the true number of communities. Furthermore, in many community detection studies, the network is considered to be static, which means the network is fixed and does not change over time. However, in real world the networks and communities change constantly over time, because members and connections are added and removed from the network [5]. Recently, community detection in dynamic networks has gained some attention [6, 7, 8]. Preserving the consistency of communities over time is the main challenge of these methods and due to scalability issues and large number of parameters, many of them concentrate on disjoint communities. Hence, introducing a method to find overlapping communities in dynamic networks without any knowledge about the number of communities with appropriate complexity is an open research problem.
In this paper, we study the overlapping community detection in dynamic networks without any prior knowledge about the true number of communities. To make the model simple to understand, we divide the proposed generative model into two steps. In the first step, we describe a generative model for a static network based on link communities and in the second step, we extend the generative model for dynamic networks. Afterwards, to infer the model parameters and extract the community memberships of nodes, we apply statistical inference methods on observed snapshots of an evolving network. The proposed method is called Dynamic Bayesian Overlapping Community Detector (DBOCD). DBOCD is able to discover consistent overlapping communities and their numbers simultaneously, in polynomial time by using the Recurrent Chinese Restaurant Process (RCRP) as a prior knowledge, and the adjacency matrix as observations in every time snapshots of network. The main contributions of the proposed work are:

Estimating the number of communities automatically in each time snapshot while preserving robustness and attention to richgetricher phenomena in networks.

Decreasing time complexity by using link partitioning instead of the common node partitioning.

Handling different types of community and network evolution.

Estimating the soft memberships of nodes in communities (detecting overlapping communities).

Providing a theoretical analysis of time complexity of the proposed method.
Experimental results on synthetic and real datasets indicate the ability of the proposed method in capturing different types of evolution compared to the recent methods.
The rest of this paper is organized as follows. The related works are reviewed in Section 2. Section 3 provides the preliminary concepts that are being used in the proposed method. The proposed static method and its dynamic extension are explained in Section 4. The experimental results on synthetic and real datasets are provided in Section 6. Finally, conclusions and future works are discussed in Section 7.
2 Related Works
Communities and their identification in static networks have been studied extensively in recent years. According to [9], the previous studies can be divided into 4 categories. (1) Optimization methods, which are based on maximizing the definition of a good community structure in graphs [10, 11], (2) Seed expansion methods, that select some nodes as core of communities and expand them to cover the graph [12, 13]. (3) Clique based methods, that define communities as complete or near complete subgraphs [14, 15]. (4) Probabilistic approaches, which propose a generative model for network generation and fit parameters to find the best structure of communities [16, 17].
In another view, community detection methods can be divided into node based and edge based methods. In node based methods, the community membership is assigned explicitly to nodes. However, in edge based methods, the links between nodes belong to communities and the membership of nodes are implicitly extracted from information about the link communities[18, 19, 20].
Traditional studies concentrate on static networks, while recent methods try to find and track the evolution of communities in dynamic networks. These studies usually consider the dynamic network as a set of network snapshots in discrete times and try to find and track the communities using these snapshots of network. The main concern of these works is to find consistent communities over time using some constraints on changing the community membership of nodes in adjacent snapshots. The authors in [8] proposed FacetNet, which models community memberships as a latent dimension in networks. FacetNet uses KullbackLeibler divergence to limit the changes of communities in two adjacent snapshots. FacetNet needs the number of communities as input at each time step. The authors in [7] proposed Dynamic Stochastic Block Model (DSBM), which is a dynamic extension of SBM [21]. DSBM detects nonoverlapping communities in networks with constant number of nodes and communities over time and also needs the number of communities. The authors in [6] proposed the AFFECT algorithm to discover a noisefree network utilizing observed network and its history. After discovering a noisefree network, static nonoverlapping community detection methods are used at each snapshot. The authors in [22] proposed the SDP method which considers penalties for node membership alteration to control difference between discovered communities at two snapshots. SDP is incapable of discovering the number of communities and has too many parameters. DPLA+[23] is a labelpropagation based method for detecting overlapping and nonoverlapping communities in dynamic networks, which the community membership of each node is based on the membership of its neighbors and their relative importance. A weighted mean between the importance of a node in the previous snapshot and the current snapshot is calculated to find consistent communities over time. Labelpropagation based methods are usually sensitive to density of the network and the number of iterations.
Most of the community detection methods in static or dynamic networks need the number of communities to be known a priori. Using nonparametric methods is a new approach for estimating the number of communities in static [24, 25] or dynamic networks [26]. Due to scalability issues and large number of parameters, there is no prior work that is able to find the number of communities and the soft memberships (overlapping communities), simultaneously in dynamic networks. In this paper, we have concentrated on the overlapping community detection in dynamic networks without any prior knowledge about the number of communities with polynomial complexity. The proposed method is able to find the soft community memberships, the number of communities, and also preserve the consistency of communities over time.
3 Background
In this paper, we use nonparametric models to find the number of communities. In this section, we describe two nonparametric models which have been used in our model.
Chinese Restaurant Process (CRP):
Chinese restaurant process is a nonparametric process for partitioning data into an unknown number of nonoverlapping groups. Consider a Chinese restaurant with infinite number of tables. The first customer enters and selects a table at random. The th customer selects a table that has been chosen previously with probability and a new table with probability , where is the number of customers around table and is the hyperparameter of model controlling the rate at which a new table is added. In CRP, every table is a group and every customer is an observation of data [27]. We can see that a table with plenty of customers has more chance to be chosen by later customers which is compatible with richgetricher phenomena in social networks.
Recurrent Chinese Restaurant Process (RCRP):
There are many nonparametric approaches to model a system over time [28, 29], one of the most popular methods is RCRP [29]. RCRP is the timed extension of the CRP model. In RCRP, each snapshot is a day. At the end of the day, restaurant becomes empty and the popularity of tables are analyzed. The main idea is that a popular table on a day remains popular for the next day. At day (), the th customer can select table which is used in the previous day () with a probability proportional to , where is the number of customers using table at day , is the total number of customers at day , and is the number of customers using table at day at the time of the arrival of customer . If table has not been chosen before, will be set to zero. Customer , can choose a new table that is not used in the previous day. The
probability of selecting a new table is [29].
For a thorough study of CRP and RCRP, we refer the readers to [27, 29].
In the next section, we utilize CRP to propose a static model based on link communities for overlapping community detection. Then RCRP will be used to extend the static model to dynamic networks.
4 Generative Model
As we mentioned before, our goal is to introduce a method for detecting overlapping communities in a network that evolves over time, considering the consistency of communities in the network snapshots. We first describe the static version of our generative model, then we extend it to dynamic networks. It is worth noting that these steps are taken for making the model simple to understand, and our aim is to determine the overlapping communities in dynamic networks.
4.1 Generative Model for Static Networks
In overlapping community detection problems with unknown number of communities, while the number of communities may vary, nodes can belong to multiple communities with various degrees of memberships. These assumptions make the space of possible solutions very large. Previous methods, like IBP [30], have used Bayesian nonparametric methods to simultaneously find the number of communities, and soft memberships of nodes in communities [25]. However, because of complexity of the solution space, such methods usually have exponential time complexity. To solve this problem, we use link communities and assume that in addition to the nodes of a network, links can belong to communities, and link communities are nonoverlapping. By this assumption, we can find the number of link communities and their members by simple nonoverlapping Bayesian nonparametric methods. Then, by using the connected links to a node, the degree of membership for every node can be determined. Therefore, by utilizing this approach, while the space of possible solutions is more confined than before, we can find the number of communities and the soft memberships of nodes, simultaneously.
Our basic idea for static networks is to use nonoverlapping communities of links, and CRP as a prior on link communities to find the number of communities and the soft membership of nodes in communities simultaneously.
The link based communities have been used previously in literature [20], and we use the same notation to describe the model. Assume a network with nodes and an unknown number of communities. We define for each community, which is a vector of size and must satisfy the constraint that . denotes the importance of node in community . denotes the set of all s. We assume that each edge belongs to one community and as much as two nodes are more important in community , the edge between them has higher probability to belong to the community . is a binary variable indicating the edge between nodes and , and the variable denotes the community membership of edge . We show the adjacency matrix of graph with , and the set of all s with .
Prior distributions on variables of model are assigned as:
(1) 
(2) 
Knowing the group membership of edge and , the probability of link generation is:
(3) 
The graphical model for static network generation is depicted in Fig.1.
Based on the proposed generative model, the joint distribution over variables factorizes as Eq. 4,
(4) 
where, K is the number of communities. Substituting 1, 2 and 3 in Eq. 4, enables us to compute the joint probability. The edges of network are generated based on the value of variables and and form the network.
As described in [31], in general real world networks have dense overlapping areas, because nodes in overlapping areas are members of more than one community. Therefore, the possibility of edge creation in overlapping areas is more than nonoverlapping areas. In our model, according to Eq. 5, the two nodes with similar community memberships have more chance to be
connected. Therefore, the generated networks will have dense overlapping areas.
The proof is as follow:
(5) 
From Eq. 5, it can be seen that as much as two nodes (,) share more common communities, they have more chance to be connected, which means that overlapping nodes (members of more than one community), have more chance to be connected and overlapping areas will be dense parts of network.
For the inference section, for simplicity, only existing edges are considered. Because our goal is to find important nodes to determine communities, only nodes with high importance (high ) should be found. According to our model, an edge doesn’t form when two nodes and are unimportant in a community, so discarding unformed edges has no remarkable effect on the result [20]. The probability of network given other parameters is changed as follow:
(6) 
where is the set of neighbors of node .
4.2 Extension to Dynamic Networks
In this part, we extend the generative model to dynamic networks. Consider a network at different timesteps called snapshot. Nodes and edges can be added or removed during time periods. The variables at time will be shown having as superscript, e.g. and . Dynamic methods are offline or online. In offline approach, at every snapshot, all past and future snapshots of the network are available, but in online methods only access to previous time snapshots is available. We chose online approach for our method, because in real world, we don’t have knowledge about the future and online approach is more appropriate for real data.
To extend the static model, we use Recurrent Chinese Restaurant Process (RCRP) instead of CRP with some modifications. In the typical RCRP model, the value of parameters of an existing table at time depends on their value at time , but in our model, we discard this limitation to have a flexible model. We consider that memberships are consistent over time and the degree of memberships can vary in time snapshots, so we discard the dependency between s in snapshots and assume that only the community memberships in each time snapshot depend on the community memberships in the previous time snapshot. Moreover, we consider that all the history of communities is summarized in the last snapshot. The proposed graphical model for dynamic network is depicted in Fig. 2.
According to the graphical model, the joint probability of variables is as follows:
(7) 
5 Inference and algorithm
In this section, we use inference methods to find the parameters of the generative model, described in Section. 4. We divide this section into two subsection. In the first part, we use Gibbs sampling method to find parameters of the model in static network and then extend the solution for dynamic networks and propose final algorithm which is our goal. This division makes the method steps easier to understand.
5.1 Static Model Inference
Our model utilizes a posterior inference on and to find the community memberships. Because the exact inference in CRPbased models is intractable [32], we use approximate inference methods. One category of methods for approximating inference is the Markov Chain Monte Carlo (MCMC) methods. Gibbs sampling is one of the most popular MCMC methods, which we will use to solve this problem. In this approximation method, samples are drawn from the conditional distribution of each variable given current value of the other variables. In this section, we will provide the sampling equations for variables and .
Sampling : The conditional distribution of given other variables has a closed form and will be a Dirichlet distribution. We first calculate the conditional distribution of as follows:
(8) 
where is the indicator function and means all variables in except . We define new variable , that shows the number of connected edges to node which belong to community . Thus Eq. 8 can be rewritten as:
(9) 
And we can conclude that:
(10) 
Dirichlet distribution is a known distribution and it is easy to generate samples from it.
Sampling : For sampling from variable , we estimate conditional distribution of every for existing edges:
(11) 
where, is the size of community and is the base distribution in CRP. In this case, is a Dirichlet distribution with hyperparameter . For sampling from distribution of Eq. 11, we need to compute the second term of it:
(12) 
(13) 
(14) 
So Eq. 11 can be rewritten as below:
(15) 
(16) 
where, is the normalization constant of Dirichlet distribution.
Sampling from Eq. 15 can be easily achieved by using a random number generators.
Determining communities from samples: After repetition of sample generation from Eq. 10 and Eq. 15, we have samples of variables and . To infer the community memberships of nodes, in each round of sampling process, we define the variable ( is the number of edges) and then for each node , we divide the membership degree of node in community () to the maximum value of membership degree of node in all communities. If the result is more than a threshold , node will be assigned to community . This helps us to avoid insignificant communities, and be able to detect overlapping and nonoverlapping communities. Now for each round of sampling, the network is divided into a set of communities. To choose the best community structure among samples, we use overlapping modularity and select the sample with maximum modularity [33, 9].
5.2 Dynamic Model Inference
Because of independence assumption between and in the model, inference on variable in the dynamic model remains unchanged and is the same as static model (Eq. 10), but the rest is changed as follows.
Inference on : Inference on variable at time is as Eq. 15, and for time () is as follows:
(17) 
where, is the indicator function and is the normalization constant of Dirichlet distribution.
Initialization and Algorithm: We initialize variables in randomly for the first time snapshot (). At a time (), for initialization, existing edges are assigned to the same group as the previous time snapshot and new ones are assigned randomly. This helps us to find consistent groups in a few number of sampling rounds. Moreover, to have faster convergence,
we initialize parameters to maximize the likelihood of the network. The likelihood of network is as follow:
(18)  
where is the set of neighbors of node . To maximize Eq. 18, we can write lagrange form of log(LL) with the constraint :
(19) 
where is lagrange multiplier and . If we differentiate with respect to and set it to zero, we will have .
The pseudo code of DBOCD is presented in Alg. 3.
Time Complexity: The complexity of generating a Dirichlet vector of dimension is . Hence, sampling s and s in each round of sampling, has a time complexity , where is the number of edges, is the number of nodes and is the number of communities. The total number of sampling rounds is a constant and can be ignored. Therefore, the time complexity of our model for each snapshot of the network is , where is the maximum number of communities over sampling rounds.
6 Experiments
In this section, we first describe the way we select the best value for hyperparameters, then we describe our synthetic and real datasets, and finally, the results of DBOCD on synthetic and real datasets are provided. Since the main goal of this paper is introducing a dynamic method for community detection for dynamic networks, we don’t provide the results of comparing BOCD (the static proposed method) with other static works.
6.1 Hyperparameter Selection
In the proposed method, and are hyperparameters. is a vector of size which is the hyperparameter of prior Dirichlet distribution on the importance of nodes in communities. Since there is no prior information about the network communities, we set all the entries in vector to an identical value. In Dirichlet distribution, if we set all the entries of the hyperparameter to a value greater than one, a sample vector with equal values will have more chance to be generated. If we set all entries to one, the probability of all possible outcomes will be equal, and finally if the entries are set to a value less than one, the generated sample vector more probably will have a few large elements. This is shown in Fig. 4 that illustrates dirichlet distribution over 3event probability simplex.
We assume that there are a few important persons in each community in real world (e.g. admin, manager), and set all elements of to 0.1. Therefore, it is more probable that the generated be a vector with a few important nodes in community .
The probability of selecting a new community in our method is proportional to hyperparameter . To select the best value for hyperparameter , we ran DBOCD with different values of on a synthetic dataset generated by a dynamic benchmark proposed in [34] .Greene’s benchmark is a dynamic extension of the static LFR benchmark [35] and models different types of evolutions of communities over time. In this benchmark, at each snapshot, community memberships are assigned to nodes and then the network is constructed based on the setting of dataset, so the consistency of networks is preserved over time. We have generated 3 dynamic networks. Concurrent birthdeath, expansioncontraction and mergingsplitting of communities over time snapshots are modeled in 3 different datasets. Common setting of datasets is reported in Table I.
N  Avg Deg  Max Deg  On  Om  T  

1000  40  60  40  4  0.3  10 
In the table, N is the number of nodes, (on) shows the number of overlapping nodes, (om) shows the number of communities that every overlapping node belong to, shows the mixing parameter that control the community structure of network and T is the number of snapshots. In all datasets, of nodes change their community memberships randomly relative to the previous snapshot. Because we have groundtruth of memberships, Normalized Mutual Information (NMI) [36] is used as a measure for comparing true communities with the ones extracted by DBOCD. NMI is a number between 0 and 1 that evaluates similarity between two sets of communities, and has its maximum value when the similarity is maximum. In the first snapshot, 100 samples are produced and in the other snapshots 50 samples are generated by DBOCD. The results of experiments are shown in Fig. 5. As illustrated, the effect of the hyperparameter is small in every snapshot (the values differ by less than ). Since in the first snapshot, we initialize the number of communities with , the value of is not critical, and the number of communities decreases in the generation process. In the other snapshots, because of considering the previous snapshot and stability of communities over time, the effect of parameter is negligible. In the proposed method, we choose as the default value, because for this value the results are more stable than the other cases.
6.2 Experiments Settings
We chose FacetNet [8], DSBM [7] and AFFECT [6] as competitors to compare the proposed method with them. DSBM and AFFECT cannot detect overlapping communities, but FacetNet can detect overlapping ones. The threshold for extracting communities from soft memberships is set to . In FacetNet, parameter is set to 0.1 which produced the best results. To do inference in DBOCD, 100 samples are generated for the first snapshot and 50 samples for other snapshots. A ”DBOCDWith Modularity” label, shows the sample which has maximum modularity. A ”DBOCDBest Sample” label, shows the sample with maximum NMI. In DSBM, we set all the parameters to default values. For the AFFECT algorithm, we ran all 3 clustering methods that proposed in the original paper and selected the one with the maximum average NMI over time. FacetNet needs the number of communities, we initialize it with the true number. DSBM has the assumption that the number of communities remains unchanged over time. We initialize it with the true number of communities in the first snapshot. In the AFFECT method, the number of communities is extracted with silhouettes width [37]. Since all the methods are probabilistic ones, we ran each method 5 times and report the average results.
6.3 Synthetic Results
We generated the synthetic data by using a dynamic benchmark proposed in [34]. The benchmark is introduced in Section 6.1. We generated 3 dynamic networks with different types of community evolution over time. The generated datasets model concurrent birthdeath, expansioncontraction and mergingsplitting of communities over time snapshots. Common setting of all datasets is reported in Table II.
N  Avg Deg  Max Deg  On  Om  T  

500  30  50  20  3  0.2  9 
In all datasets, of nodes change their community memberships randomly. Generated datasets are different in types of evolution and the number of evolving communities. Since the generated data has ground truth communities, the NMI measure is used to compare the performance of different algorithms.
The NMI results are illustrated in Fig. 6. As we can see, DBOCD outperforms other methods and has stable results over time. We can also see that the modularity is a good measure to select the best sample and the results of the sample with maximum modularity is very close to the results for the sample with maximum NMI. Both AFFECT and DSBM have lower accuracy, because they cannot detect overlapping areas. FacetNet also has acceptable and stable performance, but, in mergingsplitting, FacetNet has descending NMI over time. The unstable results on mergingsplitting is because of more changes in communities in mergesplit dataset and FacetNet is not able to handle it.
We also compared the number of communities which is extracted by DBOCD and AFFECT algorithms on birth, death, concurrent birthdeath, split, merge and concurrent mergesplit datasets. In the birth process, members of new community are chosen randomly from all other communities, but in the split process a specific community is chosen randomly and split to two smaller communities. In the death process a community is destroyed and its members are distributed among other groups, but in the merge process two communities are chosen randomly and are joined together. In the birthdeath and the mergesplit, creation and ruin occur simultaneously, therefore the number of communities remains unchanged. Results are shown in Fig. 7. It can be seen that DBOCD can capture the exact changes in number of communities in birth, death and birthdeath. The process of alteration in the number of communities in merge, split and mergesplit. AFFECT cannot even find the gradient of changes in the number of communities in both cases. In split process, a small community is created, and in merge process a large community is formed. In both processes, the change in network is abruptive. This is the cause that DBOCD cannot find the exact number of communities.
6.4 Real Dataset Results
We also examined DBOCD on two real datasets, NEC blog and DBLP paper coauthorship datasets. Both datasets are considered unweighted and undirected. NEC blog dataset is composed of 404 blogs and 148,681 links among them during 15 months. Because of abrupt diminishing in the numbers of links after the 10th month, nodes and links in period 10’th to 15’th months are aggregated into the 9th time step. DBLP dataset includes information about coauthorships in 28 conferences over 10 years (19972006). Nodes and edges evolution of both real datasets has been shown in Fig. 8
The number of nodes and edges in NEC blog decrease over time, while in DBLP increase. Since there is no ground truth communities in real data, we use overlapping modularity [33, 9] for comparisons. The same as experiments on synthetic data, we compare DBOCD with FacetNet, AFFECT and DSBM. The parameters of methods have been set as before. Because we don’t know the true number of communities, we test all the numbers in the range [120] and select the value that has maximum value of average modularity over time for the methods which need the number of communities to be known.
Although NEC blog is decreasing in the number of nodes and edges and DBLP is increasing, DBOCD has stable results on both of them, but other methods have many changes over time. Only in some snapshots of NEC blog, FacetNet has better results than DBOCD. In both datasets DBOCD has lower slope through time which can be interpreted that DBOCD detects consistent communities over time. Remarkable point is that DSBM as a nonoverlapping detector has better results than FacetNet on DBLP dataset. It can be interpreted that DBLP is a nonoverlapping dataset, and since DBOCD has the maximum modularity, it means DBOCD can detect both overlapping and nonoverlapping communities with good performance.
7 Conclusion
In this paper, we presented a Dynamic Bayesian generative model to generate dynamic networks with overlapping community structure. The model was named Bayesian Overlapping Community Detector (DBOCD). Because of using Recurrent Chinese Restaurant Process and link communities in each snapshot, the communities are detected in polynomial time complexity without any prior knowledge about the number of communities and also the stability of determined communities over time is preserved. DBOCD can find the soft memberships of nodes in communities in discrete time snapshots of network and handle the addition and deletion of nodes, edges and communities. The experimental results on the synthetic and real data showed that DBOCD can outperform other recent popular methods in different types of community evolution.
In future work, we plan to apply the variational inference methods to infer the parameters of our model. This may also help to make the proposed method faster.
References
 [1] M. Girvan and M. E. Newman, “Community structure in social and biological networks,” Proceedings of the national academy of sciences, vol. 99, no. 12, pp. 7821–7826, 2002.
 [2] S. Sahebi and W. W. Cohen, “Communitybased recommendations: a solution to the cold start problem,” in Workshop on Recommender Systems and the Social Web, RSWEB, 2011.
 [3] F. Li, J. He, G. Huang, Y. Zhang, and Y. Shi, “A clusteringbased link prediction method in social networks,” Procedia Computer Science, vol. 29, pp. 432–442, 2014.
 [4] S. Fortunato, “Community detection in graphs,” Physics Reports, vol. 486, no. 3, pp. 75–174, 2010.
 [5] G. Palla, A.L. Barabási, and T. Vicsek, “Quantifying social group evolution,” Nature, vol. 446, no. 7136, pp. 664–667, 2007.
 [6] K. S. Xu, M. Kliger, and A. O. Hero Iii, “Adaptive evolutionary clustering,” Data Mining and Knowledge Discovery, vol. 28, no. 2, pp. 304–336, 2014.
 [7] T. Yang, Y. Chi, S. Zhu, Y. Gong, and R. Jin, “Detecting communities and their evolutions in dynamic social networksâa bayesian approach,” Machine learning, vol. 82, no. 2, pp. 157–189, 2011.
 [8] Y.R. Lin, Y. Chi, S. Zhu, H. Sundaram, and B. L. Tseng, “Facetnet: A framework for analyzing communities and their evolutions in dynamic networks,” in Proceedings of the 17th International Conference on World Wide Web, ser. WWW ’08. ACM, 2008, pp. 685–694. [Online]. Available: http://doi.acm.org/10.1145/1367497.1367590
 [9] J. Xie, S. Kelley, and B. K. Szymanski, “Overlapping community detection in networks: The stateoftheart and comparative study,” ACM Computing Surveys (csur), vol. 45, no. 4, p. 43, 2013.
 [10] J. Reichardt and S. Bornholdt, “Statistical mechanics of community detection,” Physical Review E, vol. 74, no. 1, p. 016110, 2006.
 [11] V. D. Blondel, J.L. Guillaume, R. Lambiotte, and E. Lefebvre, “Fast unfolding of communities in large networks,” Journal of Statistical Mechanics: Theory and Experiment, vol. 2008, no. 10, p. P10008, 2008.
 [12] J. Baumes, M. K. Goldberg, M. S. Krishnamoorthy, M. MagdonIsmail, and N. Preston, “Finding communities by clustering a graph into overlapping subgraphs.” IADIS AC, vol. 5, pp. 97–104, 2005.
 [13] A. Lancichinetti, F. Radicchi, J. J. Ramasco, S. Fortunato et al., “Finding statistically significant communities in networks,” PloS one, vol. 6, no. 4, p. e18961, 2011.
 [14] B. Adamcsek, G. Palla, I. J. Farkas, I. Derényi, and T. Vicsek, “Cfinder: locating cliques and overlapping modules in biological networks,” Bioinformatics, vol. 22, no. 8, pp. 1021–1023, 2006.
 [15] J. M. Kumpula, M. Kivelä, K. Kaski, and J. Saramäki, “Sequential algorithm for fast clique percolation,” Physical Review E, vol. 78, no. 2, p. 026109, 2008.
 [16] E. M. Airoldi, D. M. Blei, S. E. Fienberg, and E. P. Xing, “Mixed membership stochastic blockmodels,” in Advances in Neural Information Processing Systems, 2009, pp. 33–40.
 [17] I. Psorakis, S. Roberts, M. Ebden, and B. Sheldon, “Overlapping community detection using bayesian nonnegative matrix factorization,” Physical Review E, vol. 83, no. 6, p. 066114, 2011.
 [18] D. He, D. Jin, C. Baquero, and D. Liu, “Link community detection using generative model and nonnegative matrix factorization,” PloS one, vol. 9, no. 1, p. e86899, 2014.
 [19] Y.Y. Ahn, J. P. Bagrow, and S. Lehmann, “Link communities reveal multiscale complexity in networks,” Nature, vol. 466, no. 7307, pp. 761–764, 2010.
 [20] W. Ren, G. Yan, X. Liao, and L. Xiao, “Simple probabilistic algorithm for detecting community structure,” Physical Review E, vol. 79, no. 3, p. 036111, 2009.
 [21] S. Leinhardt, “Local structure in social networks,” Sociological methodology, vol. 7, pp. 1–45, 1976.
 [22] C. Tantipathananandh and T. Y. BergerWolf, “Finding communities in dynamic social networks,” in Data Mining (ICDM), 2011 IEEE 11th International Conference on. IEEE, 2011, pp. 1236–1241.
 [23] K. Liu, J. Huang, H. Sun, M. Wan, Y. Qi, and H. Li, “Label propagation based evolutionary clustering for detecting overlapping and nonoverlapping communities in dynamic networks,” KnowledgeBased Systems, vol. 89, pp. 487–496, 2015.
 [24] M. Mørup and M. N. Schmidt, “Bayesian community detection,” Neural computation, vol. 24, no. 9, pp. 2434–2456, 2012.
 [25] J. J. Whang, P. Rai, and I. S. Dhillon, “Stochastic blockmodel with cluster overlap, relevance selection, and similaritybased smoothing,” in Data Mining (ICDM), 2013 IEEE 13th International Conference on. IEEE, 2013, pp. 817–826.
 [26] X. Tang and C. C. Yang, “Dynamic community detection with temporal dirichlet process,” in Privacy, Security, Risk and Trust (PASSAT) and 2011 IEEE Third Inernational Conference on Social Computing (SocialCom), 2011 IEEE Third International Conference on. IEEE, 2011, pp. 603–608.
 [27] J. Pitman et al., “Combinatorial stochastic processes,” Technical Report 621, Dept. Statistics, UC Berkeley, 2002. Lecture notes for St. Flour course, Tech. Rep., 2002.
 [28] D. M. Blei and P. I. Frazier, “Distance dependent chinese restaurant processes,” The Journal of Machine Learning Research, vol. 12, pp. 2461–2488, 2011.
 [29] A. Ahmed and E. P. Xing, “Dynamic nonparametric mixture models and the recurrent chinese restaurant process: with applications to evolutionary clustering.” in SDM. SIAM, 2008, pp. 219–230.
 [30] T. L. Griffiths and Z. Ghahramani, “The indian buffet process: An introduction and review,” The Journal of Machine Learning Research, vol. 12, pp. 1185–1224, 2011.
 [31] J. Yang and J. Leskovec, “Structure and overlaps of communities in networks,” arXiv preprint arXiv:1205.6228, 2012.
 [32] R. M. Neal, “Markov chain sampling methods for dirichlet process mixture models,” Journal of computational and graphical statistics, vol. 9, no. 2, pp. 249–265, 2000.
 [33] H.W. Shen, X.Q. Cheng, and J.F. Guo, “Quantifying and identifying the overlapping community structure in networks,” Journal of Statistical Mechanics: Theory and Experiment, vol. 2009, no. 07, p. P07042, 2009.
 [34] D. Greene, D. Doyle, and P. Cunningham, “Tracking the evolution of communities in dynamic social networks,” in Advances in social networks analysis and mining (ASONAM), 2010 international conference on. IEEE, 2010, pp. 176–183.
 [35] A. Lancichinetti and S. Fortunato, “Benchmarks for testing community detection algorithms on directed and weighted graphs with overlapping communities,” Physical Review E, vol. 80, no. 1, p. 016118, 2009.
 [36] A. Lancichinetti, S. Fortunato, and J. Kertész, “Detecting the overlapping and hierarchical community structure in complex networks,” New Journal of Physics, vol. 11, no. 3, p. 033015, 2009.
 [37] P. J. Rousseeuw, “Silhouettes: a graphical aid to the interpretation and validation of cluster analysis,” Journal of computational and applied mathematics, vol. 20, pp. 53–65, 1987.
Mahsa Ghorbani
received her B.Sc. degree in software engineering and M.Sc. degree in artificial intelligence from Sharif University of Technology, Tehran, Iran, in 2013 and 2015, respectively.

Hamid R. Rabiee received his B.S. and M.S. degrees (with great distinction) in electrical engineering from California State University, Long Beach (CSULB), CA, in 1987 and 1989, respectively; the EEE degree in electrical and computer engineering from University of Southern California (USC), Los Angeles, CA; and the Ph.D. degree in electrical and computer engineering from Purdue University, West Lafayette, IN, in 1996. From 1993 to 1996, he was a Member of the Technical Staff with ATT Bell Laboratories. From 1996 to 1999, he worked as a Senior Software Engineer at Intel Corporation. From 1996 to 2000, he was an Adjunct Professor of electrical and computer engineering at Portland State University, Portland, OR; with Oregon Graduate Institute, Beaverton, OR; and with Oregon State University, Corvallis, OR. Since September 2000, he has been with the Department of Computer Engineering, Sharif University of Technology, Tehran, Iran, where he is currently a Professor and the Director of Sharif University Advanced Information and Communication Technology Research Center (AICT), Digital Media Laboratory (DML), and Mobile Value Added Services Laboratory (VASL). He is also the founder of AICT, Advanced Technologies Incubator (SATI), DML, and VASL. He is a holder of three patents. He has been the Initiator and Director of national and internationallevel projects in the context of United Nation Open Source Network program and Iran National ICT Development Plan. He has received numerous awards and honors for his industrial, scientific, and academic contributions. 
Ali Khodadadi received his B.Sc. and the M.Sc. degrees in information technology engineering from Sharif University of Technology, Tehran, Iran, in 2010 and 2012, respectively. He is currently working toward his Ph.D. degree in the Department of Computer Engineering, Sharif University of Technology. His current research interests include using machine learning approaches to solve social and complex networks problems such as inferring networks of diffusion, Bayesian community detection, multilayer network analysis, and user activity modeling over social media sites. 