Core-periphery identification in massive networks
Abstract
Modern networks can be huge with millions or even billions of nodes and edges. Thus, algorithms must be capable of scaling to such large networks in order to be practically useful. In this work, we are interested in developing an algorithm to identify core-periphery structure in massive networks. Core-periphery structure is a meso-scale feature where nodes are grouped into a densely connected core or sparsely connected periphery. To identify such structures in large networks, we propose a divide-and-conquer algorithm. The key feature of our algorithm is leveraging the edge list representation of the network, instead of the adjacency matrix, as it tends to be faster and makes a more efficient use of memory. We apply the proposed algorithm to synthetic and real-world data, notably demonstrating its performance on a real-world network with almost 14 million edges without loading the entire network into memory.
1 Introduction
With the modern proliferation of data, networks today can be massive. Across numerous domains, researchers now have access to huge networks which require scalable algorithms and tools. In particular, practitioners are often interested in identifying meso-scale structures in networks such as community structure (Newman and Girvan, 2004; Fortunato, 2010) or core-periphery (CP) structure (Borgatti and Everett, 2000; Yanchenko and Sengupta, 2023). We focus on CP structure where networks have two groups a nodes: a densely connected core and a more sparsely connected periphery that forms edges with core nodes more frequently than with other periphery nodes. Analyzing this structure allows for, e.g., identification of the most influential nodes, and has been studied in a range of applications including economic (Krugman, 1996; Magone et al., 2016), social (Cattani and Ferriani, 2008; Yang et al., 2018), research citations (Sedita et al., 2020; Wedell et al., 2022), and more. In this work, we are particularly interested in identifying CP structure in large networks.
One standard approach to handle large data sets (not only networks) is sub-sampling which allows data to be analyzed in smaller pieces before combining the results for the entire data set. Sub-sampling has some unique challenges in networks due to the inherent dependence in the data as well as their complicated topologies, but previous approaches exist for community and core-periphery detection (Mukherjee et al., 2021; Yanchenko, 2022). In particular, Yanchenko (2022) develops a divide-and-conquer algorithm to identify CP structure with subsequent work focusing on the effect of the sub-sampling algorithm (Yanchenko, 2025). In general, it was shown that sub-sampling routines that are biased towards sampling central or high degree nodes tended to perform the best.
This approach demonstrated good empirical performance but has limited scalability to truly massive networks. The crux of the problem is that these methods use an adjacency matrix representation of the network in order to carry out the analysis. An adjacency matrix is an matrix where is the number of nodes and if nodes and have an edge, and 0 otherwise. Alternatively, many large networks are represented via an edge list where each row records the incident and source nodes connected by an edge. While an adjacency matrix approach may be sufficient for some networks, it cannot scale to extremely large networks; adjacency matrices require storage space which can be inefficient if the network is sparse as most entries will be zero. Moreover, the algorithms mentioned above require the entire adjacency matrix to be loaded into memory in order to identify the labels, meaning that this algorithm is also limited by the memory of the computing environment.
To overcome these challenges, we propose a sub-sampling algorithm to identify CP structure in massive networks using an edge list representation. We first describe optimizing the CP metric from Borgatti and Everett (2000) using the edge list and a greedy algorithm. We show that if the network is sparse then this algorithm is faster than the analog using the adjacency matrix. To apply this algorithm to massive networks, however, we propose a divide-and-conquer algorithm by randomly sampling edges from the edge list and then finding the optimal CP labels on these sub-graphs. This process is repeated many times and the results are combined via averaging to yield a continuous measure of “coreness” for each node, which can be converted to binary CP labels. Our approach outperforms a similar adjacency matrix-based algorithm on synthetic networks. Moreover, we apply our algorithm to a real-world network with almost 14 million edges without loading the entire network into the memory. Thus, our proposed approach is scalable to truly massive networks.
The rest of the paper is organized as follows. In Section 2 we describe the CP objective function and greedy algorithm to optimize this metric which is then leveraged in a divide-and-conquer algorithm. The proposed algorithm is applied to simulated and real-world networks in Section 3, and concluding thoughts are shared in Section 4.
2 Methodology
2.1 Notation
Let be a graph with nodes and edges. We define as the adjacency matrix corresponding to graph such that if nodes and are connected by and edge, and 0 otherwise.111In this work, we only consider undirected, unweighted networks without self-loops, but the ideas can easily be generalized. Additionally, define as the edge list representation of the network where each row records the nodes involved in the edge, and corresponds to the th node involved in the th edge for and . Let be a CP assignment vector where if node is assigned to the core, and 0 otherwise. Let be the number of nodes in the core, and be the proportion of nodes in the core.
2.2 Core-periphery metric
We quantify the strength of the CP structure in the observed network using the objective function from Borgatti and Everett (2000). For a given , we define
| (1) |
where is the average edge probability and where corresponds to the “ideal” CP structure defined as . Thus, (1) quantifies how closely the observed network matches one with a perfect CP structure. While we have defined this metric in terms of the adjacency matrix, , we describe below how to calculate it using the edge list, , as well. The CP vector is often unknown in practice so we treat (1) as an objective function to find the optimal CP labels, i.e.,
| (2) |
The majority of this work is focused on finding the solution in (2). In particular, this is a combinatorial optimization problem over a space of possible solutions. For even modest , e.g., , the entire search space is enormous so a brute-force algorithm to find the global maximum is impossible. Instead, we seek to employ heuristics to approximate the solution.
2.3 Objective function evaluation
Any algorithm which seeks to find the optimal solution in (2) must first evaluate the objective function in (1). We begin by reviewing how to do this using the graph’s adjacency matrix (Yanchenko and Sengupta, 2026) before turning to the edge list. Given an adjacency matrix and CP labels , the key step needed to evaluate (1) involves computing the sum in the numerator, which can be re-written as
| (3) |
Clearly, the time consuming step is which requires looping over both rows and columns of the adjacency matrix, i.e., flops. Please see the Appendix for full details.
Given a current value of the objective function, Yanchenko and Sengupta (2026) describe an efficient update to the value for new labels in operations, instead of a naive implementation requiring . Specifically, let be the current labels and be known where we emphasize the dependence of on . Furthermore, let be labels defined as for and for all . In words, differs from at only a single node . The key observation from Yanchenko and Sengupta (2026) is that can be efficiently updated using the value of . Specifically,
| (4) |
Since we know , we simply need to evaluate the final sum in (2.3) which only requires flops. Thus, given (and ), we can find in operations. These steps are again laid out in the Appendix.
Evaluating the Borgatti and Everett metric is similar when using an edge list representation of . We can re-write (1) as
| (5) |
where if (least one node assigned to the core), and 0 otherwise. The sum in the numerator can be found by looping through the edge list and checking if either incident node is assigned to the core in flops. These steps are detailed in Algorithm 1.
2.4 Greedy algorithm
Now that we can evaluate the objective function using either the adjacency matrix or edge list, we turn our attention to finding the optimal solution in (2). To do so, we employ the greedy, label switching algorithm from Yanchenko and Sengupta (2026). Given a graph , we randomly initialize the CP labels and evaluate . Then for each node , we swap its assignment, i.e., from core to periphery or periphery to core, and define this new, proposed label as . Clearly, for all and . The objective function is then evaluated on these new labels , and the proposed swap is kept if . The steps are similar for the edge list representation, with full details in Algorithm 2. The adjacency matrix-based algorithm is left to the Appendix.
For the adjacency matrix representation, initially evaluating the objective function requires flops, but updating its value in the loop only takes flops. This is performed for each node so a single pass of the algorithm requires operations. For the edge list algorithm, initially evaluating the objective function takes operations. Since the objective function is calculated from scratch each time a node is swapped, this also takes flops such that a single pass takes operations. Ideally, we could also derive a clever update of the objective function for the edge list representation as in (2.3), but we are unaware how to do this at this point.
The advantages of the edge list algorithm compared to that of the adjacency matrix begin to become apparent from this discussion. First, the relationship between and governs the relative speed of the algorithms. If the number of nodes is significantly larger than the number of edges, i.e., , then the edge list approach will be faster. In many theoretical proofs for networks (e.g., Bickel and Chen, 2009), the degree of the nodes is assumed to be such that number of edges in the network grows linearly with , i.e., . In this case, the algorithms should be approximately equivalent in terms of speed, but the edge list approach still maintains some advantages, e.g., in terms of storage, the adjacency matrix is while the edge list is only and, in virtually all real-world networks, such that the edge list makes a much more efficient use of space.
2.5 Divide-and-conquer algorithm
While the greedy algorithm is fast for medium and large networks, it is still too slow for extremely large networks since the edge list algorithm scales linearly with the number of nodes times the number of edges. Moreover, this algorithm ostensibly requires the entire network to be loaded into memory, so it cannot be implemented when the network is so large that this is not possible. These two hurdles motivate the need for a divide-and-conquer approach for large networks, which we adapt from Yanchenko (2022, 2025). Specifically, the user chooses , the number of sub-samples and , the proportion of the total edges to be sampled. Then a sub-graph with edges is randomly sampled and the optimal CP labels are calculated. This is repeated times and the proportion of times that each node was assigned to the core out of all sub-samples is reported. Full details can be found in Algorithm 3.
Result: Core-periphery proportions
Input: Edge list , proportion of edges to sub-sample , number of sub-samples
for times do
2.6 Discussion
The divide-and-conquer Algorithm 3 leveraging the edge list provides various advantages over the base algorithm (Algorithm 2) as well as the adjacency matrix-based divide-and-conquer algorithms of Yanchenko (2022, 2025). First, it is more computationally efficient than the base algorithm. Given a graph with nodes and edges, Algorithm 2 requires operations for a single pass. In the divide-and-conquer algorithm, we sample edges to construct a sub-graph which means that the function objFunEdge (Algorithm 1) requires operations to be evaluated. For a random sub-graph, we do not know how many nodes, , will be sub-sampled, but it is upper-bounded by . Thus, for a single sub-graph, such that a single pass of Algorithm 2 requires operations. Sub-sampling is carried out times, resulting in operations. The divide-and-conquer algorithm, however, is embarrassingly parallel so given cores, the total complexity is
Thus, , the relative speed of Algorithm 3 to Algorithm 2, is
which depends on the choices of and , and where means the divide-and-conquer algorithm is faster than the base algorithm. Below, we suggest setting and such that . Additionally, large graphs are often such that so simplifies to
If, e.g., and , then such that the divide-and-conquer algorithm is expected to be times faster than the base algorithm.
While superficially similar to the adjacency matrix-based divide-and-conquer algorithms of Yanchenko (2022, 2025), the edge list approach of Algorithm 3 possesses some unique advantages. The first comes from an efficient use of data storage. To see this, consider the following example. Recall that many large networks are sparse, where the number of edges is of the same order as the number of nodes. This means that to ensure (on the order of) 100 edges in a sub-graph, one would need to sample (on the order of) 100 nodes (assuming random node sampling), leading to a adjacency matrix. Clearly, this requires bytes of storage (assuming 8 bit numbers), while the edge list approach only requires bytes. Thus, in general, the adjacency matrix divide-and-conquer algorithm will require much larger sub-graphs to obtain comparable performance, meaning it will be slower than the edge list approach. While this can be somewhat mitigated with alternative sampling approaches, we show in the simulation study that this problem still persists. Moreover, the edge list approach of Algorithm 3 can be applied to truly massive networks which cannot even be loaded into the memory at a single time. Indeed, edges can be sampled directly from the edge list data structure without loading the entire list into memory, which we demonstrate in Section 3.2. Conversely, the adjacency matrix approach as applied in Yanchenko (2022, 2025) requires the entire adjacency matrix to be loaded, greatly limiting its scalability.
In Yanchenko (2025), various sub-sampling algorithms are considered to construct the sub-graphs. Algorithm 3 clearly uses random edge sampling which is known to have a bias of sampling nodes with larger degrees (Ribeiro and Towsley, 2010), but this is actually an advantage for our method since higher degree nodes are more likely be core nodes. Indeed, Ribeiro and Towsley (2010) show that random edge samplers better estimate the tails of the degree distribution which likely corresponds to core nodes in CP structure. While the random edge sampler was shown to perform well in Yanchenko (2025), we stress that these two approaches have an important distinction. In the adjacency matrix approach, we randomly sample an edge, keep the two incident nodes and then include all other edges for those nodes. This is sometimes called the graph induction step (Ahmed et al., 2011). In Algorithm 3, however, we randomly sample edges but do not include all other edges incident to those nodes. In other words, we do random edge sampling without induction. While induction may be preferable, it is not obvious how to do this with an edge list representation without scanning over the entire edge list, something that is not feasible if, e.g., the edge list cannot be loaded into memory.
One concern about not using the induction step is that it is highly possible that there will only be a single edge for each sampled node in the sub-graph such that every node has degree one. If this is the case, however, then there is clearly no meaningful CP structure in the sub-graph. To mitigate this problem, we must ensure that is large enough such that core nodes sampled in the sub-graph have a sufficient number of edges to be identified as such. With this in mind, we propose the following heuristic to set . Let vary in some pre-specified range, e.g., . Then for each value of , randomly sample edges from the graph and record if at least one node has multiple edges in the sub-graph. Repeat this process times and, for each value of , compute the proportion of sub-samples for which the sub-graphs contained one or more nodes with multiple edges. Then select as the smallest value such that this proportion is at least 90%. This ensures that a minimum of 90% of the sub-samples will contain at least one node with multiple edges. We employ this procedure in the real-data section with . Finally, to set , note that is the expected number of times that an edge is sampled, so after finding , we suggest setting such that each edge is expected to be sampled once. Given greater computational resources, can be larger but we suggest it is no smaller than .
3 Experiments
3.1 Synthetic data
In this section, we study the performance of the proposed algorithm on synthetic and real-world networks. All experiments were carried out on 2024 Mac Mini computers with Apple M4 chip and 16 GB of memory. For the divide-and-conquer algorithms, we parallelized the code across 9 cores. Code was written in R and is available at the author’s GitHub: https://github.com/eyanchenko/CPDACedge. All results were averaged over 100 Monte Carlo replications.
First, we compare Algorithm 2, which uses the edge list of the network, with the corresponding algorithm based on the adjacency matrix from, e.g., Yanchenko and Sengupta (2026). We generate networks from a stochastic block model (SBM) (Holland et al., 1983) with known CP structure where the probability of a core-core, core-periphery and periphery-periphery edge is , respectively, where . We set , , , and , and vary to vary the density of the network. In Figure 1, we plot the runtime against the average network density ( for each value of . The computation time increases for both algorithms as the density increases with Algorithm 2 increasing at a faster rate. For sparser networks (), the edge list-based approach is faster. This is to be expected as Algorithm 2 scales with the number of edges in the network which increases as increases.
Next, we study the divide-and-conquer method of Algorithm 3. We compare its performance with the divide-and-conquer algorithm of Yanchenko (2022, 2025) (using the adjacency matrix), as well as the base greedy algorithm (Algorithm 2). For this experiment, we are primarily interested in studying the effects of the sub-sampling algorithm. As previously discussed, the random edge sampler of Yanchenko (2025) performs an induction step after sampling the edges to “fill-in” the rest of the sub-graph, a step that is not performed in Algorithm 3. For the edge list divide-and-conquer algorithm, we set , and to make a fair comparison with the algorithm from Yanchenko (2025), we select (the proportion of nodes sampled) for the adjacency matrix-base algorithm such that the number of edges in the sub-graphs is approximately equal to that of the edge list approach.
We generate networks from an SBM with , , , and . We set (number of sub-samples) and record the area under the receiver-operator curve (AUC) and run-time for increasing . The results are in Figure 2. Both divide-and-conquer algorithms outperform the base algorithm in terms of speed and accuracy. While the speed improvement is expected, the accuracy gains are somewhat surprising and are likely due to the sub-sampling step “averaging out” some of the noise in the network. Similar findings were reported in Yanchenko (2025). While both divide-and-conquer algorithms have a comparable performance in terms of AUC (monotonic increase with ), Algorithm 3 is faster than the adjacency matrix-based algorithm. The results are similar when varying the size of the network. We keep the same settings as above but now we fix , , and vary . The results are in Figure 3. The divide-and-conquer methods again have a similar AUC that is larger than that of the greedy algorithm, and the edge list-based algorithm is the fastest for .
3.2 Real-world networks
Finally, we demonstrate the performance of the proposed algorithm on four real-world networks. Specifically, we consider Amazon (Leskovec et al., 2007), YouTube (Yang and Leskovec, 2012), Twitch (Rozemberczki and Sarkar, 2021) and Google (Leskovec and Mcauley, 2012) networks. Summary statistics for each are available in Table 1 where the largest (Google) has almost 14 million edges. All networks are available on the SNAP network repository (Leskovec and Krevl, 2014) and were pre-processed to remove self-loops, edge directions, etc.
For each network, we apply Algorithm 3 to obtain the CP proportions for each node. We follow the procedure described in Section 2.6 to choose . Since ground-truth CP labels are unknown, we convert these continuous proportions to binary labels and compute the objective function value in (1). To do so, we order nodes based on their proportions in descending order. Then one at a time, we add the node with the largest proportion to the core and evaluate the objective function. We then add the node with next largest proportion to the core and again calculate the objective function. We repeat this process and the labels which correspond to the largest objective function value are kept as the optimal labels. As a baseline comparison, we also consider a degree ranking approach where we rank nodes by their degree and then carry out the same procedure as described above. In this sense, both methods yield a ranking of a nodes based on “coreness” and we compare to see which method yields a larger value of the objective function.
The results are in Table 1. We report the objective function value, number of nodes assigned to the core and computing time for each method. For each graph, the proposed algorithm yields significantly larger objective function values, typically at least one order of magnitude larger. For example, on the Twitch network, Algorithm 3 yields an objective function value more than 20 times greater than that of the degree-ranking heuristic. We note that some of the raw values of the objective function are small but this is not necessarily a flaw in the algorithm as it likely means that this network does not possess a strong CP structure. Regardless, Algorithm 3 is able to find labels which leader to much larger objective function values than simple degree ranking.
Finally, we highlight that for the Google network, the edge list took up about 0.15 GB of memory. While this can easily be loaded into R, we sought to demonstrate that the proposed method does not require that the entire edge list be loaded at once. Thus, we used the LaF (van der Laan, 2024) package in R to sample edges directly from the edge list .txt file without loading it into memory. Thus, we consider this as a proof-of-concept showing that even using a personal desktop machine, our proposed algorithm is able to handle massive graphs.
| Network | Method | Obj | Time | ||||
|---|---|---|---|---|---|---|---|
| Amazon | 0.4M | 2.3M | |||||
| DAC | 0.006 | 1132 | 3.4 | ||||
| Deg | 0.001 | 42 | |||||
| YouTube | 1.1M | 3.0M | |||||
| DAC | 0.018 | 7 | 2.2 | ||||
| Deg | 0.002 | 1356 | |||||
| Twitch | 1.7M | 6.8M | |||||
| DAC | 0.083 | 177 | 1.5 | ||||
| Deg | 0.004 | 338 | |||||
| 1.1M | 14M | ||||||
| DAC | 0.116 | 1712 | 2.2 | ||||
| Deg | 0.046 | 3405 |
4 Conclusion
In this work, we proposed a divide-and-conquer algorithm to identify CP structure in massive networks using the edge list representation of the network. This approach allows for computational speed ups as well as more efficient use of memory compared to an adjacency matrix representation. Indeed, on synthetic and real-world networks, the proposed algorithm performed well and was applied to a network with almost 14 million edges without needing to load the entire network into memory. At this point, the only limitations on applying the algorithm to even bigger networks are the number of computing cores available as well as the speed with which the edge list can be queried. Indeed, for even larger networks with edge lists on the order of gigabytes, fast sub-sampling of the edge list is necessary to scale the algorithm. Other future work could look into a more theoretically guaranteed approach to choose the hyper-parameters in the algorithm, specifically the size of the sub-graph.
References
- Network sampling via edge-based node selection with graph induction. Cited by: §2.6.
- A nonparametric view of network models and Newman–Girvan and other modularities. Proceedings of the National Academy of Sciences 106 (50), pp. 21068–21073. Cited by: §2.4.
- Models of core/periphery structures. Social Networks 21 (4), pp. 375–395. External Links: ISSN 0378-8733, Document, Link Cited by: §1, §1, §2.2.
- A core/periphery perspective on individual creative performance: social networks and cinematic achievements in the hollywood film industry. Organization Science 19 (6), pp. 824–844. Cited by: §1.
- Community detection in graphs. Physics Reports 486, pp. 75–174. Cited by: §1.
- Stochastic block models: first steps. Social Networks 5, pp. 109–137. Cited by: §3.1.
- The self organizing economy. John Wiley & Sons. Cited by: §1.
- The dynamics of viral marketing. ACM Transactions on the Web (TWEB) 1 (1), pp. 5–es. Cited by: §3.2.
- SNAP Datasets: Stanford large network dataset collection. Note: http://snap.stanford.edu/data Cited by: §3.2.
- Learning to discover social circles in ego networks. Advances in Neural Information Processing Systems 25. Cited by: §3.2.
- Core-periphery relations in the european union: power and conflict in a dualist political economy. Routledge. Cited by: §1.
- Two provably consistent divide-and-conquer clustering algorithms for large networks. Proceedings of the National Academy of Sciences 118 (44). Cited by: §1.
- Finding and evaluating community structure in networks. Physical Review E 69 (2), pp. 026113. Cited by: §1.
- Estimating and sampling graphs with multidimensional random walks. In Proceedings of the 10th ACM SIGCOMM Conference on Internet Measurement, pp. 390–403. Cited by: §2.6.
- Twitch gamers: a dataset for evaluating proximity preserving and structural role-based node embeddings. External Links: 2101.03091 Cited by: §3.2.
- The invisible college of cluster research: a bibliometric core–periphery analysis of the literature. Industry and Innovation 27 (5), pp. 562–584. Cited by: §1.
- LaF: fast access to large ascii files. Note: R package version 0.8.6 External Links: Link Cited by: §3.2.
- Center–periphery structure in research communities. Quantitative Science Studies 3 (1), pp. 289–314. Cited by: §1.
- Core-periphery structure in networks: a statistical exposition. Statistic Surveys 17, pp. 42–74. Cited by: §1.
- A label-switching algorithm for fast core-periphery identification. Network Science 14, pp. e6. Cited by: §2.3, §2.3, §2.4, Figure 1, Figure 1, §3.1.
- A divide-and-conquer algorithm for core-periphery identification in large networks. Stat 11 (1), pp. e475. Cited by: §1, §2.5, §2.6, §2.6, §3.1.
- Graph sub-sampling for divide-and-conquer algorithms in large networks. Statistics and Computing 35 (4), pp. 87. Cited by: §1, §2.5, §2.6, §2.6, §2.6, §3.1, §3.1.
- Defining and evaluating network communities based on ground-truth. In Proceedings of the ACM SIGKDD Workshop on Mining Data Semantics, pp. 1–8. Cited by: §3.2.
- Structural correlation between communities and core-periphery structures in social networks: evidence from twitter data. Expert Systems with Applications 111, pp. 91–99. Cited by: §1.