Streaming Community Detection β Updating Communities as Edges Arrive and Disappear
How community structure can be updated incrementally when edges arrive and are removed one at a time: the research history and recent work, centered on TILES, delta-screening Louvain, LabelRankT, and other representative algorithms.
Introduction β Why "Streaming"?
The first article covered the fundamentals of community detectionβModularity, Louvain/Leiden, Infomap, SBM. The second article extended these ideas to higher-order structures, dynamic networks, and multiplex networks.
However, many "dynamic network" approaches in the second article still choose discrete snapshots and run community detection in batch mode on each one. For real-world large-scale networks such as Twitter/X follow graphs, financial transaction networks, and IoT sensor networks, this snapshot workflow breaks down in two ways:
- Scale: On a graph with billions of nodes and tens of billions of edges, re-running Louvain from scratch every time a single edge changes costs far too much.
- Real-time requirements: Use cases like fraud detection and trend prediction need to see changes in community structure right away and cannot wait for the next snapshot.
Streaming Community Detection (streaming CD) keeps the community structure up to date incrementally over an edge stream, where edges arrive (or are removed) one at a time. Most methods share one idea: update only the region around the changed edge and avoid recomputing the whole graph.
What This Article Covers
- A distinction by how much each update recomputes: batch recompute, incremental update, and true streaming
- Research history: from LPA and GraphScope, through iLCD, DiDiC, and LabelRankT, to methods that moved away from batch processing
- How representative algorithms work and what they cost: OSLOM, DEMON, DynaMo, TILES, delta-screening Louvain, ANGEL
- The design space: four dimensionsβupdate strategy, temporal model, community properties, and quality criterion
- Comparing and evaluating the methods, and choosing an algorithm for a given situation
- Recent approaches based on GNNs and sketches, and open research questions
History of Streaming CD
Key work on community detection (CD) in dynamic graphs and edge streams (years are publication years)
Chakrabarti et al. formalize the trade-off between temporal consistency and quality
Sun et al. propose combining MDL-based change-point detection with source/destination group modeling
Gehweiler and Meyerhenke propose distributed diffusive clustering
Lancichinetti et al. propose testing the statistical significance of communities locally
Coscia et al. propose local CD that runs label propagation on each node's ego-net
Xie et al. propose dynamic CD that updates LabelRank incrementally as edges change
Rossetti et al. propose triangle-based true streaming CD
Zhuang et al. propose updating Modularity incrementally as edges are added and removed
Pareja et al. propose updating GCN weights over time with an RNN
Rossetti proposes a merge-based overlapping CD method and ArchAngel, its snapshot-based dynamic version
Zarayeneh and Kalyanaraman propose re-running Louvain only on the nodes an edge change affects
You et al. propose applying temporal modeling to each GNN layer's output to keep node representations up to date
Part I: Foundations β From Batch to Streaming
Formal Definition of Edge Streams
In the streaming setting, the graph arrives as a sequence of events (an edge stream):
where:
- : an edge (pair of nodes)
- : timestamp ()
- : operation (edge addition or deletion )
At any time , the graph is the cumulative result of all stream events up to that point:
The goal of streaming CD is to maintain a community partition of at each time . Ideally, the update cost per edge arrival is or . A method that traverses the whole graph in is too heavy to run on every arriving edge.
Three Processing Paradigms
Streaming CD methods fall into three groups according to how much they recompute on each update:
Batch vs Incremental vs Streaming
Batch Recompute
Re-run CD from scratch on the whole graph (n nodes, m edges) after every change
Incremental Update
Recompute only the region the change affects (Ξ = changed edges, k = average degree)
True Streaming
Update the internal state in constant or logarithmic time per arriving edge
The community detection algorithm is rerun on the entire graph for every edge change. The result is accurate, but the cost is or more, so each update takes seconds to minutes on a large graph. Re-running Louvain from scratch each time falls into this category.
2. Incremental UpdateOnly the region affected by the change, such as the endpoints of the changed edge and their neighbors, is recomputed. The update cost drops to roughly ( = number of changed edges, = average degree). Delta-screening Louvain is a representative example.
3. True StreamingThe algorithm updates its internal state in constant or logarithmic time per edge arrival. The method does not traverse the graph; it decides using only the arriving edge and its immediate neighbors. TILES belongs here in principle, although in practice finding triangles costs time proportional to the endpoints' degrees.
The StabilityβResponsiveness Trade-off
Streaming CD has to balance stability against responsiveness, and the two pull in opposite directions:
- Stability: Community structure should not change because of noise, such as random edges appearing and disappearing. Assignments that flip back and forth with every small change are undesirable.
- Responsiveness: When the graph structure actually changes (a community splits, a new community emerges, and so on), the algorithm should reflect it quickly.
In the Evolutionary Clustering framework from the second article, the parameter sets the weight between the two:
A larger favors fit to the current graph; a smaller favors similarity to the previous partition. In the streaming setting, the choice between the two has to be made for each edge: is the newly arrived edge a sign of real structural change, or just noise? The algorithm must tell the difference using only the information around that edge.
Part II: Research History β From Batch Processing to Incremental Updates
Prehistory: The Arrival of LPA (2007)
The Label Propagation Algorithm (LPA), proposed by Raghavan, Albert, and Kumara (2007), is simple enough that it extends easily to streaming settings. LabelRankT, DEMON, and ANGEL, covered later, all build on LPA's ideas.
Label Propagation Algorithm (LPA):
1. Assign each node a unique label
2. Repeat:
For each node v:
Assign v the most frequent label among its neighbors
(break ties randomly)
3. Stop when labels converge
β Nodes with the same label form a communityLPA's complexity is ( = iterations until convergence, often small in experiments). Each node's update uses only its neighbors' labels, so when an edge is added, only the relevant nodes need updating. This locality is what makes LPA easy to extend to the streaming setting.
GraphScope (2007): Change-Point Detection in Graph Streams
Sun, Faloutsos, Papadimitriou, and Yu (KDD 2007) proposed GraphScope, an early method that analyzes streams of time-evolving graphs without parameter tuning. Using the Minimum Description Length principle (MDL), it automatically detects change points in an edge stream where the graph structure shifts. It is better described as MDL-based change-point detection combined with source/destination group modeling than as a general-purpose community detection algorithm, but it strongly influenced research on streaming graph clustering.
The procedure:
- Segment the edge stream into intervals
- Assume stable graph structure within each segment; estimate community structure
- Determine segment boundaries automatically with MDL: compare the cost of introducing a new segment against the cost of encoding new data with the existing segment's model
- : description length of the model (community structure)
- : description length of data given the model
When the existing community structure can no longer describe new data efficiently, GraphScope marks a change point, starts a new segment, and updates the community structure.
iLCD (2010): Incremental Detection with Local Criteria
Cazabet, Amblard, and Hanachi (IEEE SocialCom 2010) proposed iLCD (intrinsic Longitudinal Community Detection), an early method designed specifically for detecting communities in dynamically growing networks.
Each time a new edge arrives, iLCD uses a local quality function to decide whether its endpoints join existing communities or form a new one. When edge arrives:
- If neither nor belongs to any community, create a new community containing both
- If one endpoint belongs to an existing community , evaluate whether the other should join using local density criteria
- If both belong to different communities, evaluate whether to merge them
- Periodically check whether nodes at community borders should be reassigned
Because a node can meet the membership criteria of several communities at once, iLCD produces overlapping communities without extra machinery. It also examines only the neighborhood of the arriving edge, so it runs efficiently in a streaming setting.
iLCD showed that community detection can run truly online, processing each graph event as it occurs instead of waiting for snapshots. TILES, covered later, also processes each edge as it arrives.
DiDiC (2010): Distributed Diffusive Approach
Gehweiler and Meyerhenke (2010) introduced DiDiC (Distributed Diffusive Clustering), which forms clusters by diffusion rather than label propagation. Each node maintains a "diffusion vector" , and clusters form as nodes locally diffuse (average) this vector with their neighbors.
DiDiC:
Each node v holds a k-dimensional diffusion/load vector d_v
Initialization: seed or load vectors are assigned for the chosen number of clusters
For each node v (asynchronously, locally):
d_v β (1-Ξ±) Β· d_v + Ξ± Β· (1/|N(v)|) Ξ£_{u β N(v)} d_u
Node v's community = argmax_i d_v[i]The diffusion parameter controls how much neighborhood information is absorbed at each step. Larger means stronger neighbor influence and faster convergence, but reduced stability.
DiDiC has the following properties:
- Fully local: Each node's update references only its neighbors' diffusion vectors.
- Asynchronous: Nodes do not need to update at the same time. In a streaming setting, when edge arrives, only the diffusion vectors of and (and optionally their neighbors) need updating, with no full graph traversal.
- Suited to distributed systems: Each node manages its own state independently, with no central coordination.
LabelRankT (2013): Incrementalizing Label Propagation
Xie, Chen, and Szymanski (2013) extended LabelRank for dynamic networks with LabelRankT. Unlike plain LPA, LabelRank-style methods propagate label distributions and use operators such as inflation, cutoff, and conditional updates. The dynamic version restricts the expensive propagation work to nodes affected by edge changes.
LabelRankT:
Initialize communities with LabelRank label distributions
For each edge (u, v, op) arriving from the stream:
1. Build affected set Ξ:
Ξ = {u, v} βͺ N(u) βͺ N(v) (u, v and their neighbors)
2. Run LabelRank-style propagation only within Ξ:
For each w β Ξ:
update w's label distribution from neighbors
apply inflation, cutoff, and conditional-update rules
3. Iterate locally until Ξ stabilizes or the update budget is reached
4. Output the dominant label for each nodeLabelRankT's per-edge work is limited to the affected set and the edges incident to it, not the whole graph. The cost can be estimated as , where is the number of edges touched inside and around and is the number of local iterations; this does not depend on the total graph size when endpoint degrees stay bounded.
LabelRankT also has limitations:
- LabelRank updates label distributions deterministically, so there is no random tie-breaking as in LPA, but the resulting partition depends on the inflation, cutoff, and conditional-update thresholds.
- It outputs a single dominant label per node, so it cannot detect overlapping communities.
- It does not explicitly optimize Modularity or any other quality metric, so the quality of the partition is not guaranteed.
Part III: How the Representative Algorithms Work
OSLOM (2011): Statistically Significant Incremental Detection
Lancichinetti, Radicchi, Ramasco, and Fortunato (2011) developed OSLOM (Order Statistics Local Optimization Method), which tests the statistical significance of communities. The second article touched on it, so this section focuses on how it applies to streaming.
OSLOM decides whether a node set is a community with a null-hypothesis test based on order statistics, which is where the name comes from.
The procedure works as follows:
- For each node neighboring community , compute a score : the probability that has at least connections to under the Configuration Model (null model)
- Sort these scores in increasing order:
- For the -th smallest score, compute the order-statistic p-value: the probability that the -th order statistic of uniform random variables is
- The community's overall significance is determined by the rank that yields the smallest such p-value
If the resulting p-value is sufficiently small (e.g., ), is deemed a statistically significant community. Because OSLOM tests significance per node rather than on the community's total edge count, a few outlier nodes do not distort the decision much.
Used incrementally, OSLOM's local tests give a procedure like this:
OSLOM incremental update:
When edge (u, v) is added:
1. Identify communities C_u, C_v containing u, v
2. Recompute p-value for C_u (and C_v):
- Evaluate p-value if neighbors of u not in C_u are added
- If p-value improves, add that node to C_u
3. Also evaluate p-value if nodes are removed from C_u
4. Consider merging C_u and C_v
When edge (u, v) is deleted:
1. Recompute p-value for C_u (if C_u = C_v)
2. If p-value exceeds threshold, decompose C_u and re-testBecause OSLOM uses p-values, it can check against a null model whether a community could be explained as a chance grouping; Modularity has no such testing framework. The test is also not tied to Modularity's global resolution scale, so small communities are detected when they are statistically significant.
On the other hand, computing p-values is costly, and the original OSLOM is not a lightweight streaming method. Using its local tests incrementally on large streams takes careful engineering.
DEMON (2012): Democracy of Ego-Nets
Coscia, Rossetti, Giannotti, and Pedreschi (2012) proposed DEMON (Democratic Estimate of the Modular Organization of a Network), a "bottom-up" local community detection method that builds communities from each node's surroundings.
In DEMON, communities are decided by each node's vote. The procedure:
DEMON:
For each node v:
1. Extract ego-net ego(v)
ego(v) = subgraph induced by v and all neighbors N(v)
2. Remove node v from ego(v) (delete all edges to v)
3. Apply LPA to the remaining graph to detect local communities
4. Add v to each local community found
Integrate all nodes' results:
- Merge local communities with similarity above threshold
- Merge criterion: Jaccard(C_i, C_j) > Ξ΅Step 2 removes v because, by definition, v connects to every member of ego(v). If v stayed in, the whole ego-net would be detected as one community. Removing v exposes the natural groupings within v's neighborhood. For example, "v's college friends" and "v's coworkers" become separate groups once v is removed, but v's presence joins them into one.
In a streaming setting, only two things need to be re-run:
- When edge arrives, rebuild only 's and 's ego-nets and re-run LPA on them
- Re-evaluate merges only for the affected local communities
Local communities from different ego-nets can overlap, so in DEMON a node can belong to several communities, and overlapping communities need no extra machinery.
DynaMo (2019): Incremental Modularity Tracking
Zhuang, Chang, and Li (2019) proposed DynaMo, which incrementally updates Modularity in response to edge additions and deletions.
When edge changes, the modularity gain of moving nodes between communities can be recomputed from local information alone. DynaMo relies on this, so it does not have to rerun Louvain from scratch.
Recall the Modularity definition:
When edge is added, changes from 0 to 1, becomes , becomes , and becomes . These changes affect only , , and their communities' internal statistics (, ). DynaMo uses this locality and handles two cases:
- If and are in the same community: the community's internal edge count increases by 1 and its total degree by 2, so DynaMo updates the community's contribution to in .
- If and are in different communities: DynaMo recomputes the modularity gain for moving to 's community (and vice versa) and makes the move if the gain is positive.
DynaMo:
For each edge (u, v, op) arrival:
1. Update graph statistics (degrees, community Ξ£_in, Ξ£_tot)
2. If op = + (addition):
a. u, v in same community β internal edges increase, update Q
b. u, v in different communities β compute move gain:
gain(u β C_v) = (internal edge increase from u joining C_v)
- (internal edge loss from u leaving C_u)
If gain > 0, move u to C_v
3. If op = - (deletion):
a. u, v in same community β internal edges decrease
b. Check community connectivity. If disconnected, split
4. Cascade: if u moves, compute move gains for u's neighbors (limited propagation)With DynaMo, the widely used Modularity metric can be tracked on every edge update. Unlike batch Louvain, each update recomputes modularity gains from local community statistics only, so you can keep checking whether partition quality is slipping.
TILES (2017): Triangle-Based True Streaming
Rossetti, Pappalardo, Pedreschi, and Giannotti (2017) proposed TILES, one of the more influential methods for tracking communities online. TILES uses triangle formation as the basic unit of a community.
Triangles as the Unit of Community
TILES does not treat two connected people as a community; it holds that social cohesion appears only when they share a common friend. Formally, when edge arrives, TILES puts , , and in the same community only if and have a common neighbor (forming triangle ).
TILES Processing Flow
TILES processing pipeline executed for each arriving edge
Algorithm
TILES Algorithm:
Data structures:
- Adjacency list adj[v]: each node's current neighbors
- Community labels label[v]: each node's community set (overlapping allowed)
- Edge timestamps ts[(u,v)]: last arrival time of each edge
- TTL parameter Ο: edge time-to-live
For each arriving edge (u, v, t):
1. ts[(u,v)] β t // Update timestamp
2. adj[u] β adj[u] βͺ {v}, adj[v] β adj[v] βͺ {u}
3. Common neighbors W β adj[u] β© adj[v]
4. for each w β W:
// Triangle (u, v, w) formed
// Extend existing triangle-supported communities, or create a new one
candidate β (label[u] β© label[w]) βͺ (label[v] β© label[w]) βͺ (label[u] β© label[v])
if candidate = β
:
candidate β {new_label()} // New community for this triangle
for each β β candidate:
label[u] β label[u] βͺ {β}
label[v] β label[v] βͺ {β}
label[w] β label[w] βͺ {β}
5. TTL check:
for each edge (a, b) where t - ts[(a,b)] > Ο:
adj[a] β adj[a] \ {b}, adj[b] β adj[b] \ {a}
// Check if removal affects a, b's communities
re_evaluate(a, b)Complexity Analysis
TILES' per-edge complexity:
- Step 3 common neighbor computation: (intersection of sorted lists)
- Step 4 label updates:
Ignoring TTL expiration scans, the update is . The cost grows with the endpoints' degrees and the number of label updates. In real networks with power-law degree distributions, most nodes have small degree, so the average cost stays low.
TTL (Time-To-Live) Mechanism
A distinctive part of TILES is its TTL mechanism. Each edge carries a timestamp, and edges not seen again within a period are removed as "expired."
For example, if two people on a social network last interacted a year ago, the relationship can be treated as no longer active. TTL models how recent a relationship is and removes stale edges automatically.
TTL has three effects:
- Memory management: Keeps the memory usage of an ever-growing graph within bounds.
- Noise removal: Separates one-off chance contacts from ongoing relationships.
- Community dissolution: A community whose edges have all expired disappears.
is chosen from domain knowledge. Plausible values include 30 days for social media messages, 5 years for academic co-authorship, and 1 hour for financial transactions.
The demo below shows communities forming as edges arrive in a stream, then persisting as bridge edges are added and removed:
Streaming Community Detection Simulator
An illustrative scenario showing how communities change as edges arrive and are removed one at a time. Node color shows community membership (gray = unassigned).
Delta-Screening Louvain (2021): Scoping the Impact
Zarayeneh and Kalyanaraman (2021) proposed delta-screening, a general framework for incrementalizing Modularity-optimizing algorithms such as Louvain. It pre-screens the nodes whose Modularity gains could change because of an edge modification, then applies Louvain's local move phase only to those nodes.
Delta-screening Louvain Mechanism
Screen for nodes whose Modularity gain may change after an edge update, then apply Louvain's local moves only to those nodes
Screening Principle
When edge is added, the Modularity gain of a move is most likely to change for:
- and themselves
- Nodes in 's community whose gain from moving to 's community may increase
- Nodes in 's community whose gain from moving to 's community may increase
Formally, node is "affected" if:
where is the sum of internal edge weights in community , is the sum of edge weights from to community , and is the sum of degrees of all nodes in .
Adding edge changes only , , , and the and of 's and 's communities. Apart from , which enters every node's gain, only nodes neighboring 's or 's community depend on these values, so only those nodes are screened.
delta-screening Louvain:
Prerequisite: existing community assignment C
When edge (u, v) changes:
1. Screening:
affected β β
for each node w in C_u βͺ C_v βͺ N(u) βͺ N(v):
if ΞQ(w β best_community) differs before/after edge change:
affected β affected βͺ {w}
2. Local Louvain:
Run Louvain's local move phase only on affected nodes
3. Aggregation:
Aggregate only affected communitiesExperimental Results
In Zarayeneh and Kalyanaraman's experiments on synthetic and real-world networks, edge changes were processed in batches, one per time step. They reported speedups of up to 38Γ over rerunning Louvain from scratch at each time step, with Modularity nearly unchanged. The speedups are possible because most edge additions and deletions have only a local effect: a single edge change rarely alters the community structure of the whole graph.
ANGEL (2020): Merge-Based Overlapping Communities
Rossetti (2020) proposed ANGEL, a node-centric method that builds on DEMON's ideas, together with ArchAngel, its extension to evolving networks.
Like DEMON, ANGEL starts from each node's ego network; it then folds the local communities into a global collection through merge operations:
ANGEL (one graph):
For each node u:
1. Build the ego-net of u, excluding u itself
2. Run LPA within the ego-net β local communities L
3. Find the global community G_i that overlaps L the most
4. If the overlap exceeds the threshold ΞΈ: merge G_i β G_i βͺ L
Otherwise, add L as a new global community
ArchAngel (an evolving graph given as snapshots):
For each snapshot t:
1. Run ANGEL on snapshot t
2. Match the communities of t with those of tβ1 by overlap
to trace how each community evolvesANGEL works in two stages: it finds communities from a local perspective (ego-nets), then merges them into its global knowledge (the global community set). ArchAngel handles change snapshot by snapshot, not edge by edge, so unlike TILES it does not update communities as each edge arrives (ANGEL README).
Part IV: The Design Space of Streaming CD
The algorithms covered so far can be organized along four dimensions that can be chosen largely independently.
Design Space of Streaming CD
Streaming CD design organized along four dimensions that can be chosen largely independently
Update Strategy
Temporal Model
Community Properties
Quality Criterion
Dimension 1: Update Strategy
- Full recompute: Recompute everything per edge arrival. Highest quality, highest cost
- Local update: Recompute only the affected scope (OSLOM, delta-screening)
- Lazy update: Buffer changes and update in a batch once enough have accumulated (DynaMo batch variant)
Dimension 2: Temporal Model
- Snapshot: Discrete-time graphs (Multislice Modularity from the second article)
- Sliding window: Keep only the most recent seconds/edges. Discard older data
- Decay: Edge weights decrease exponentially over time: . TILES' TTL is a discrete version
Dimension 3: Community Properties
- Disjoint: Each node belongs to at most one community (LabelRankT, Louvain)
- Overlapping: Nodes can belong to multiple communities (DEMON, TILES, ANGEL, OSLOM)
- Fuzzy: Membership degree is a continuous value in . DiDiC's diffusion vectors approximate this
Dimension 4: Quality Criterion
- Modularity: Comparison with Configuration Model (DynaMo, delta-screening)
- Statistical test: Significance-based (OSLOM)
- Triangle density: Triangle sharing defines communities (TILES)
- Information-theoretic: Dynamic or flow-based Map Equation variants
Multiplying the options in the four dimensions gives combinations. Not every combination works equally well in practice, but existing algorithms occupy only part of this space, and many combinations have not been tried.
Part V: Comparing and Evaluating the Methods
Concrete Example: TILES vs. LabelRankT
Here, TILES and LabelRankT process the same edge stream on a small 5-node graph (AβE).
Edge stream: +(A,B), +(B,C), +(A,C), +(C,D), +(D,E), +(C,E)
TILES processing:
- +(A,B), +(B,C): No triangles β no communities formed
- +(A,C): Triangle ABC formed β Community 1 = {A, B, C}
- +(C,D), +(D,E): No triangles β D, E remain unassigned
- +(C,E): Triangle CDE formed β Community 2 = {C, D, E}. C now belongs to both (overlap)
Result: Two communities form, {A, B, C} and {C, D, E}, with C as an overlapping member. D and E belonged to no community until a triangle formed.
LabelRankT processing:
- First, initialize all connected nodes with LabelRank label distributions (e.g., A,B,C dominated by one label; D,E by another)
- Upon +(C,E) arrival: Ξ = {C, E} βͺ N(C) βͺ N(E) = {A, B, C, D, E} (all nodes)
- Run local label-distribution propagation within Ξ. Because C bridges both dense parts, propagation can make one label dominate the whole affected set
Result: If one label comes to dominate, all nodes {A, B, C, D, E} end up in a single community, with no overlap.
Difference: TILES waits for a triangle before forming a community, so it is cautious and produces overlapping communities directly. LabelRankT outputs one dominant label per node, so local propagation tends to merge densely connected regions into one large community.
Streaming CD Algorithm Comparison
| Algorithm | Year | Approach | Overlap | Edge deletion | Complexity (per edge) | Strength |
|---|---|---|---|---|---|---|
| LabelRankT | 2013 | Label-distribution propagation | β | β | O(kΒ·m_Ξ) | Fast, relatively simple |
| OSLOM | 2011 | Statistical test | β | β | O(cΒ²) | Based on statistical significance |
| DEMON | 2012 | Ego-net + LPA | β | β | O(dΒ²) | Local, overlapping communities |
| DynaMo | 2019 | Incremental Modularity | β | β | O(d) | Accurately tracks Modularity |
| TILES | 2017 | Triangle-based | β | β | O(d + |W|Β·|labels|) | True streaming, TTL mechanism |
| ANGEL | 2020 | Merge-based | β | β | β | Node-centric, overlapping communities |
| Delta-screening | 2021 | Incremental Louvain | β | β | O(d) | Up to 38Γ faster than rerunning Louvain, similar Modularity (reported) |
d = endpoint degree, c = community size, k = local iterations, m_Ξ = edges touched in and around the affected set Ξ, W = common neighbors of u and v, labels = a node's label set, β = no per-edge update (ArchAngel works per snapshot)
Benchmarking and Evaluation Challenges
Evaluating streaming CD raises three issues that do not arise for static methods.
1. Dynamic BenchmarksStatic LFR benchmarks do not change over time, so they are not enough to evaluate streaming methods. Dynamic benchmarks include:
- Dynamic LFR (Greene, Doyle, & Cunningham, 2010): Extends LFR over time. At each timestep, nodes move between communities, and communities are born, die, split, and merge
- RDyn (Rossetti, 2017): A benchmark built for streaming settings. Edge additions and deletions are generated as events, and the ground-truth community structure can be followed over time
Besides standard NMI (Normalized Mutual Information), streaming CD is evaluated with:
- Per-update computation time: Response time per edge arrival
- NMI time series: How agreement with the ground truth changes as the stream progresses
- Community stability: How much community assignments fluctuate over time (lower is more stable)
- Lag: The delay between a real change in community structure and its appearance in the algorithm's output
Whether a streaming method is usable in practice depends largely on scalability. Evaluations measure:
- Throughput: Edges processed per second
- Memory usage: Memory consumption growth rate relative to graph size
- Latency: Delay from edge arrival to result update
Practical Selection Guide
| Scenario | Recommended Method | Rationale |
|---|---|---|
| Real-time social network analysis | TILES | Triangle-based, so it captures social cohesion naturally; TTL prunes stale relationships |
| Large-scale + high quality | delta-screening | Keeps Modularity close to rerunning Louvain, with reported speedups of up to 38Γ |
| Overlapping communities + streaming | DEMON / ArchAngel | Ego-net based; natural overlap detection (ArchAngel works per snapshot) |
| Statistical rigor required | OSLOM | p-value-based significance; avoids Resolution Limit |
| Simplicity first | LabelRankT | Local label-distribution updates; relatively simple and fast, with tunable thresholds |
| Accurate Modularity tracking | DynaMo | Efficient incremental Modularity gain computation |
| Fraud/anomaly detection | GraphScope | Detects structural change points automatically |
Part VI: Recent Frontiers and Future Directions
GNN-Based Streaming CD
Since 2020, a growing body of research has applied Graph Neural Networks (GNNs) to streaming settings.
EvolveGCN (Pareja et al., 2020) updates the weight parameters of a graph convolutional network (GCN) over time with an RNN (LSTM/GRU):
where is the GCN weight at time and is the node representation matrix at time (EvolveGCN-H variant). A GCN is applied to each snapshot built from the edge stream, and the RNN moves the weights smoothly from one snapshot to the next.
ROLAND (You et al., 2022) applies temporal modeling to each GNN layer's output, continuously updating node representations.
GNN-based approaches to streaming CD share three characteristics:
- Node features: They use attribute information attached to nodes (profiles, content, etc.), not only graph structure
- Representation learning: They treat community detection as "node embeddings changing over time" and train with clustering-oriented loss functions
- Inductive inference: They can estimate communities for new nodes right away using learned parameters
GNN-based methods still have open problems:
- Computational cost: GNN forward passes usually run on GPUs, and running one per edge is expensive
- Training data requirements: Sufficient data needed for supervised/self-supervised learning
- Interpretability: It is hard to tell why a particular partition was chosen
Approximation and Sketch-Based Approaches
Another direction for large-scale streams uses the theoretical framework of streaming algorithms:
MinHash / SimHash for node similarity approximation: Each node's neighbor set is summarized as a fixed-length hash sketch that can be updated in per edge change. Jaccard similarity between nodes is approximated from these sketches, and high-similarity pairs are grouped into communities.
Count-Min Sketch for degree tracking: Node degrees in the edge stream are tracked with little memory and used to approximate Modularity.
These methods carry theoretical approximation guarantees (such as - approximation), but few streaming algorithms of this kind have been built specifically for community detection so far.
Open Research Questions
Open problems include the following:
- Theoretical detection limits: Streaming analogues of the Kesten-Stigum threshold for static SBM. How far can communities be detected when only one edge is visible at a time?
- Edge order dependence: Quantifying how edge arrival order affects results. Does the same edge set yield different communities under different orderings?
- Scalability barriers: Developing methods that can process billion-edge streams on a single machine
- Privacy preservation: Running streaming CD with differential privacy guarantees so that nodes' community memberships do not leak
- Multimodal streams: Handling node attribute changes and edge weight changes at the same time as edge additions and deletions
Conclusion β From Static to Streaming
The methods covered in this three-part series developed in this order: static (first article) β dynamic (second article) β streaming (this article).
| Generation | Period | Paradigm | Representative Methods |
|---|---|---|---|
| 1st | 1970βearly 2000s | Static, batch, pairwise | KL, Girvan-Newman, Modularity |
| 2nd | Late 2000sβearly 2010s | Scalable, statistical inference | Louvain/Leiden, SBM, Infomap |
| 3rd | Late 2010sβ | Higher-order, dynamic, multiplex | Motif-based, Multislice, Tensor |
| 4th | 2017β | Streaming, real-time | TILES, delta-screening, GNN |
Streaming CD is hard because it requires sequential decisions made with incomplete information. Batch processing sees the entire graph; streaming has to update community assignments from the edge that just arrived, without knowing which edge comes next.
Each method deals with this constraint in its own way, inferring global structure from local information. TILES forms a community only when a triangle appears, delta-screening narrows down the affected nodes in advance, and DEMON decides communities by voting within each ego-net.
References
- Raghavan, U. N., Albert, R., & Kumara, S. (2007). Near linear time algorithm to detect community structures in large-scale networks. Physical Review E, 76(3), 036106.
- Sun, J., Faloutsos, C., Papadimitriou, S., & Yu, P. S. (2007). GraphScope: parameter-free mining of large time-evolving graphs. KDD 2007, 687β696.
- Gehweiler, J., & Meyerhenke, H. (2010). A distributed diffusive heuristic for clustering a virtual P2P supercomputer. IEEE International Parallel & Distributed Processing Symposium (IPDPS), 1β8.
- Xie, J., Chen, M., & Szymanski, B. K. (2013). LabelRankT: Incremental community detection in dynamic networks via label propagation. Workshop on Dynamic Networks Management and Mining (DyNetMM), 25β32.
- Lancichinetti, A., Radicchi, F., Ramasco, J. J., & Fortunato, S. (2011). Finding statistically significant communities in networks. PLoS ONE, 6(4), e18961.
- Coscia, M., Rossetti, G., Giannotti, F., & Pedreschi, D. (2012). DEMON: a local-first discovery method for overlapping communities. KDD 2012, 615β623.
- Zhuang, D., Chang, J. M., & Li, M. (2019). DynaMo: Dynamic community detection by incrementally maximizing modularity. IEEE Transactions on Knowledge and Data Engineering, 33(5), 1934β1945.
- Rossetti, G., Pappalardo, L., Pedreschi, D., & Giannotti, F. (2017). Tiles: an online algorithm for community discovery in dynamic social networks. Machine Learning, 106(8), 1213β1241.
- Rossetti, G. (2020). ANGEL: efficient, and effective, node-centric community discovery in static and dynamic networks. Applied Network Science, 5, 26.
- Zarayeneh, N., & Kalyanaraman, A. (2021). Delta-screening: A fast and efficient technique to update communities in dynamic graphs. IEEE Transactions on Network Science and Engineering, 8(2), 1614β1629.
- Pareja, A., Domeniconi, G., Chen, J., Ma, T., Suzumura, T., Kanezashi, H., Kaler, T., Schardl, T., & Leiserson, C. (2020). EvolveGCN: Evolving graph convolutional networks for dynamic graphs. AAAI 2020, 5363β5370.
- You, J., Du, T., & Leskovec, J. (2022). ROLAND: graph learning framework for dynamic graphs. KDD 2022, 2358β2366.
- Greene, D., Doyle, D., & Cunningham, P. (2010). Tracking the evolution of communities in dynamic social networks. International Conference on Advances in Social Network Analysis and Mining (ASONAM), 176β183.
- Rossetti, G. (2017). RDyn: graph benchmark handling community dynamics. Journal of Complex Networks, 5(6), 893β912.
- Cazabet, R., Amblard, F., & Hanachi, C. (2010). Detection of overlapping communities in dynamical social networks. 2010 IEEE Second International Conference on Social Computing (SocialCom), 309β314.
Further Reading
- Fortunato, S., & Hric, D. (2016). Community detection in networks: A user guide. Physics Reports, 659, 1β44.
- Rossetti, G., & Cazabet, R. (2018). Community discovery in dynamic networks: a survey. ACM Computing Surveys, 51(2), 1β37.
- Chakrabarti, D., Kumar, R., & Tomkins, A. (2006). Evolutionary clustering. KDD 2006, 554β560.