Time Is of the Essence: Analyzing the Effect of Vertex-Joining Time on Complex Network Evolution

Time Is of the Essence: Analyzing the Effect of Vertex-Joining Time on Complex Network Evolution

Michael Fire Carlos Guestrin Department of Computer Science & Engineering, University of Washington
July 4, 2019

1 Introduction

Complex networks are loosely defined as networks with non-trivial structure and dynamics, appearing in social, molecular, biological, ecological, and economical real-world complex systems [8]. Many studies have provided models and algorithms to explain how complex networks evolve [4, 22, 10, 19]. However, scores of questions remain unanswered [1].

With the recent rapid advances in the field of data science, new algorithms, infrastructures, and techniques for data mining, data storage, data prediction, and data visualization have emerged [3, 7, 14, 24]. These tools make it feasible to gain new insights from large quantities of data.

In this study, we utilize data science tools to thoroughly examine the evolution process of online social networks. Our study focuses on Reddit,111http://www.reddit.com a huge collection of online communities that discuss what is new and popular on the Internet. Namely, we utilize the recently published Reddit dataset, which contains over a terabyte of uncompressed data and consists of over 13.2 million users222The dataset contains 13,213,173 unique usernames. However, many Reddit users have several usernames. who posted over 1.65 billion comments published over a 7-year time period. This vast dataset contains information on the evolution process of more than 239,000 online communities and the connections among the community members (see Section 3). We used the Reddit dataset to construct a large corpus of 11,965 directed social networks, which contain over 97% of all the posted comments in the dataset (see Section 3). We assembled an unprecedented corpus of social networks with diverse topologies, ranging from social networks with 11 vertices up to social networks with over 4 million vertices (see Table 1).

By closely examining the social networks’ evolution process, we observed that users tend to connect to those users having similar joining times. For example, we discovered that the median join-time difference between two connected users was 350.79 days. Moreover, we observed that the likelihood of a link being established between two users decreases sharply as the join-time difference increases (see Section 5.2). For instance, only 3.2% of the examined edges were between two users with a join-time difference over 4 years (see Figure 3). Furthermore, we identified six common patterns in which users joined the network (see Section 5.1.3 and Figure 1). Moreover, we observed that different user-join patterns influence the structures of the social networks. For example, networks with sigmoidal-like growth usually have denser and higher average clustering coefficients than networks with polynomial growth (see Section 5). The majority of random network generation models do not take into account either the time or the rate that new vertices join the network (see Section 2 and Sallaberry et al. [19]).

Inspired by the above observations, we developed the Temporal Preferential Attachment random network generation model (denoted TPA model). This model generalizes the well-known Barabási-Albert network generation model (denoted BA model) [4] by adding to the model the rate in which vertices join the network, as well as storing each vertex’s arrival time. Moreover, the model takes as input the probability that each vertex will connect to other vertices with the same or with a different join-time (see Section 6).

We demonstrate that the presented TPA model is able to produce arbitrary-sized random scale-free networks with relative high clustering coefficients, which are sensitive to vertex arrival times and rates (see Section 6.2). This model mimics realistic social networks and should help to better understand the evolution process of complex networks.

The remainder of the paper is organized as follows: In Section 2, we provide an overview of various related studies. In Section 3, we give details on the Reddit dataset and present our methodology to clean the dataset. Section 4 describes how we constructed the subreddit social networks and outlines the social network topological features we utilized in this study. Next, in Section 5, we analyze the networks’ temporal dynamics. Subsequently, in Section 6, we introduce the TPA model. Then, in Section 7, we discuss the obtained results. Lastly, in Section 8, we present our conclusions and also offer future research directions.

Figure 1: Common User-Join Curves of the following subreddits: Blogging, 90s, AskComputerScience, Learnmusic, Eagle-Scouts, and BlackFriday.

2 Related Work

The study of complex networks began over half a century ago, in 1965. While studying a network of citations among scientific papers, Price observed a network in which the degree distribution followed a power law [17]. Later, in 1976, Price provided an explanation of the creation of these types of networks: “Success seems to breed success. A paper which has been cited many times is more likely to be cited again than one which has been little cited” [18]. Price subsequently offered a method for the creation of networks in which the degree distribution follows a power law.

Several decades later, in 1998, Watts and Strogatz [22] presented a model for generating small-world networks. Typically, small-world networks have a relatively high clustering coefficient, and the distance between any two vertices scales as the logarithm of the number of vertices [19]. In the following year, Barabási and Albert observed that degree distributions that follow power laws exist in a variety of networks, including the World Wide Web [4]. Barabási and Albert coined the term “scale-free networks” for describing such networks. Similar to Price’s method  [18],333A detailed explanation of the differences between Price’s method and the Barabási-Albert model for constructing complex networks can be found in [15]. Barabási and Albert [4] suggested a simple and elegant model for creating random complex networks based on the rule that the rich are getting richer. In the BA model, a network starts with connected vertices. Each new vertex that is added (one at a time) has a greater probability of connecting to pre-existing vertices with higher degree, where the probability of connecting to an existing is proportional to ’s degree [4]. Consequently, “rich” vertices with high degrees tend to become even “richer” due to their connections with new vertices that join the graph.

Many real-world complex networks have a community structure in which “the division of network nodes into groups within which the network connections are dense, but between which they are sparser” [16]. In 2004, Newman and Girvan proposed a community detection algorithm and offered a simple method to create networks with community structure [16].

Even though the models described above can explain some of the characteristics of real-world complex networks, the random networks created by these models were lacking in other properties that were observed in real-world complex networks. Therefore, in recent years, other models have been suggested which have additional characteristics [4, 10, 19, 22].

A similar study to ours was conducted by Leskovec et al. [13]. They performed edge-by-edge analysis of four large-scale networks - Flickr, Delicious, LinkedIn, and Yahoo Answers - with time spans ranging from four months to almost four years. By studying a wide variety of network formation strategies, they observed that edge locality plays a critical role in the evolution of networks, and they offered a model which focused on microscopic vertex behavior. In their proposed model, vertices arrive at a pre-specified rate and choose their lifetimes. Afterwards, each vertex “independently initiates edges according to a ‘gap’ process, selecting a destination for each edge according to a simple triangle-closing model free of any parameters” [13]. They showed that their model could closely mimic the macroscopic characteristics of real social networks. Additionally, Leskovec et al., similar to our study, observed the arrival patterns of various vertices. Namely, they observed that (a) Flickr’s network data has grown exponentially; (b) Delicious has grown slightly superlinearly; (c) LinkedIn has grown quadratically; and (d) Yahoo Answers has grown sublinearly. Due to these observations, they concluded that vertex arrival functions needed to be part of their proposed model. However, their study did not analyze the implications of using different arrival functions.

In this study, we extend the BA model. Our presented TPA model is able to generate small-world, scale-free networks, with relatively high clustering-coefficient values. Moreover, our model takes into consideration the time and rate in which vertices join the network.

3 The Reddit Dataset

Reddit is a news aggregation website and online social platform, which was launched in 2005 by Steve Huffman and Alexis Ohanian [6]. Reddit users (also known as “redditors”) can submit content on the website, which is then commented upon, and upvoted or downvoted by other users in order to increase or decrease the submission visibility. Redditors can also create their own subreddit on a topic of their choosing, make it public or private, and let other redditors join it. This makes Reddit a collection of online communities, centered around a variety of topics such as books, gaming, science, and asking questions.444Each subreddit web page can be accessed at the following URL: https://www.reddit.com/r/<SubredditName>/, by replacing <Subreddit Name> with the subreddit’s name.

In this study, we utilized the Reddit dataset which was recently made public by Jason Michael Baumgartner (see Section 9). The Reddit dataset contains over 1.65 billion comments that were posted from October 2007 through May 2015. These posts were created by 13,213,173 users, with unique usernames, in 239,772 different subreddits. The dataset contains information on the exact time and date each comment was posted. Moreover, the dataset contains each comment’s ID, as well as information on the user who posted it and the ID of the parent comment, i.e., the ID to which the current comment replied.

For this study, we cleaned the dataset by removing nonessential comments, specifically those that were marked as deleted and those that did not include the information of the user who posted them. Additionally, we removed posts by users who with high probability were bots. Namely, we removed all the users who posted more than 100,000 comments each, and we removed 897 redditors whose comments appeared in the bots list published in the BotWatchman subreddit.555We downloaded the bots list from the BotWatchman subreddit https://www.reddit.com/r/BotWatchman/ during December 2015. After the removal of these posts, we were left with over 1.42 billion comments.

4 Subreddit Social Networks

In the following subsections, we give a detailed description of the methods that we used to construct and analyze the subreddit social networks. In Section 4.1, we introduce the methods we used to construct each subreddit’s social network. Then, in Section 4.2, we present the topological features we extracted from each network. Additionally, we provide a statistical overview of each topological feature across all social networks.

4.1 Social Network Construction

To perform the analysis of the subreddits’ underlying social networks, we first needed to construct these social networks. However, many of the subreddits did not contain enough users or were not active for a long enough time to extract meaningful insights on the user-join patterns. For example, the median number of redditors in a subreddit was 3, while only 5% of the subreddits consisted of 371 redditors or more. Therefore, for all subreddits in the clean dataset of over 1.42 billion comments, we selected only those subreddits that had at least 10 users, consisted of at least 1,000 comments, and were active666Throughout this study, we considered the time in which a subreddit was active as the time difference between the first and last comments published in the subreddit. for at least 1 year. Out of all the subreddits, 11,965 subreddits with over 1.38 billion posts (referred to as selected subreddits) fulfilled this criteria.

Next, for each selected subreddit, similar to the construction method used by Kairam et al. [12], we created the subreddit’s social network directed graph by connecting users who posted comments as replies to other posted comments. Namely, for a subreddit, we define the subreddit’s directed graph to be: where is the set of vertices, representing all the subreddit’s users who posted at least a single comment in the subreddit, and is the list of all edges between the subreddit’s users and . We define an edge between and to exist if there exists a comment on the subreddit posted by to which posted a reply on the same subreddit. Lastly, we used the Powerlaw Python package [2] and observed that most of the social networks’ vertex connection distributions matched power law distributions with various exponent values. It important to notice that the constructed directed graph also includes single vertices of redditors who posted comments and did not receive any reply, as well as self-loop edges of redditors who posted a comment and then posted a comment as a reply to their own comment.

4.2 Calculating Topological Features

For each selected subreddit constructed social network graph, , we calculated the following topological features:

  • Vertices number - the number of vertices in the graph, defined as .

  • Edges number - the number of edges in the graph, defined as .

  • Density - the graph density, defined as .

  • Number of self-loops - the number of self-loops in the graph, defined as .

  • Number of triangles - the number of triangles (denoted by ) in the graph [21].

  • Average clustering coefficient - the graph’s average clustering coefficient (denoted by CC[20].

  • Degree-based features - for a vertex , we defined the in-degree, out-degree, and total-degree of to be:

    Using the vertex degree definitions, we can define the following four degree features:

    • ;

    • ,

    where the Max function returns the maximum value in a set.

  • Connected components-based features - we separated the graph into a set of weakly connected components (denoted by WCC[23], in which and . Using the , we can also define the graph’s largest component (referred to as ) , where , and . Using the above definitions, we can define the following five features:

    • Number of connected components - the number of weakly connected components, defined as

    • Largest component vertices number - the number of vertices in , defined as

    • Largest component edges number - the number of edges in , defined as

    • Largest component ratio - the ratio between the number of users in the largest component and all users in the subreddit, defined as

    • The number of single components - the number of components in that consist of only a single vertex (denoted by |Single|), defined as .

Additionally, for , we defined as the time was first active in the network. We then used this feature to calculate a Days feature, defined as

The Days feature is the number of days that had passed between the post times of the first and last comments. Moreover, for each edge in the complete Reddit social network with links, we calculated each edge time difference by

Table 1 presents an overview of the various calculated topology features. Notice that the full set of topological features of all 11,965 selected subreddits is available online (see Section 9).

Feature Min Max Median Mean Std
Avg-deg 0.0 53.343 1.893 2.889 3.4
Avg-in-deg 0.0 26.672 0.947 1.444 1.7
CC 0.0 0.941 0.025 0.047 0.067
D 0.0 0.936 0.001 0.003 0.017
Days 365.69 2,785.48 1,271.79 1,312.68 570.68
LC-Ratio 0.002 1 0.416 0.389 0.189
Loops 0.0 73,791 7 88.058 931.786
Max-in-deg 0.0 24,469 39 151.107 466.91
Max-out-deg 0.0 24,113 40 162.092 484.83
|E| 0.0 42,973,517 768 30,118.416 484,602.04
|E| 0.0 42,980,043 860 30,287.708 484,771.67
|Single| 0.0 1,643,749 626 4,037.163 31,026.64
|T| 0.0 73,148,002 92 70,057.296 1,289,299.62
|V| 1.0 2,391,502 341 4,345.554 39,425.02
|V| 11.0 4,043,528 1,110 8,605.852 70,357.23
|WCC| 1.0 1,647,816 663 4,132.8 31,247.4
Table 1: Subreddits Social Network Features Overview

5 Analyzing Temporal Dynamics of Networks

5.1 Network User-Join Curves

In the following subsections, we describe in detail the methods which were used to construct and analyze user-join curves (denoted UJC). In Section 5.1.1, we define the UJC function and explain how we constructed the selected subreddit UJCs. Next, in Section 5.1.2, we describe the process we utilized to match each UJC and its corresponding function. Afterwards, in Section 5.1.3, we present the methods used to categorize the different UJCs. Lastly, Section 5.1.4 gives details on the methods used to predict the UJC categories based on the subreddits’ topologies.

5.1.1 User-Join Curve Construction

For all the selected subreddits, we constructed the UJCs using the following methodology: First, for each subreddit , using the cleaned Reddit dataset, we calculated the number of weeks (denoted as ) between the first comment and the last comment that were posted on the subreddit. Afterwards, we defined for to be the number of users who joined the subreddit in weeks since the first comments were posted on the subreddit. We also defined the overall number of users who joined the subreddit after weeks to be . Then, using the above definitions, we defined
as , where and are always equal to 0 and 1, respectively. Lastly, to create the UJCs for a network , we calculated the values in 4-week intervals.777In case did not divide evenly by 4, the time interval between the next-to-last and last UJC values was less than 4 weeks. By using this interval, the number of samples of the UJCs for each subreddit ranged from 15 to 101, with a median value of 47.

5.1.2 User-Join Curve Regression Analysis

To better understand the 11,965 UJCs that we created, we utilized CurveExpert software [11] to match several selected UJCs with their best-fit functions using regression analysis. In most cases, the best fit was a high-degree polynomial function. To avoid over-fitting, we used the python-fit package888https://pypi.python.org/pypi/python-fit/1.0.0 to find the polynomial function that was a best-fit for the majority of UJCs and still had a relatively low degree. We discovered that 11,273 (94.2%) and 9,199 (76.9%) of the UJCs matched a quartic function (q(x) := ) with and , respectively.

Additionally, we performed regression analyses of the 692 UJCs that did not match quartic functions. Out of these UJCs, we observed that 274 matched the MMF model [11], , with . The other 418 UJCs (referred to as anomalous UJCs) presented a wide range of patterns.

5.1.3 User-Join Curve Categorization

After matching the UJCs with their best-fit quartic functions, we could now categorize the different UJCs. For each matched quartic function of subreddit , we defined the normalized area function as:

In considering the 11,273 subreddit norm-areas, we observed that the norm-area distributions were skewed to the right, with a minimal value of 0.065, a maximal value of 0.935, and a median value of 0.4, with a standard deviation of 0.159 (see Figure 2).

Figure 2: Normalized matched quartic functions’ area distributions.

As a rule of thumb, we can foresee that fast growing subreddits, such as the Blogging subreddit (see Figure 1), will have a relatively small norm-area value of close to 0. On the other hand, subreddits that had their growth halted for a relatively long time, such as the Eagle-Scouts subreddit (see Figure 1), will have a norm-area of about 1, and subreddits with constant growth rates will have a norm-area of about 0.5. Keeping this in mind, we divided the matched polynomials into five sets, according to their norm-area values: Set 1, (with 905 UJCs); Set 2, (with 4,733 UJCs); Set 3, (with 3,435 UJCs); Set 4, (with 1,483 UJCs); and Set 5, (with 717 UJCs). For the five sets of matched polynomials, we calculated the various coefficient distributions and manually viewed the UJC graph visualizations for each set,999The UJC graphs are available for download; see Section 9. and we observed the following:

  1. The majority of the UJCs with (Set 1) have positive and coefficients. Therefore, these UJCs typically have a cubic or quartic growth rate (referred to as polynomial growth).

  2. The majority of the UJCs with (Set 2) have a negative coefficient. Additionally, by manually reviewing the UJCs, we observed that in most cases these UJCs have a sublinear growth rate. The growth typically starts relatively slowly and then changes into linear growth.

  3. The majority of the UJCs with (Set 3) have relatively large coefficients. However, in most cases the and coefficients have opposite signs; one is positive and the other is negative. This indicates that most of the UJCs do not grow at a fast rate. By manually reviewing the UJCs in this set, we observed that these UJCs have a nearly linear growth rate.

  4. The majority of the UJCs with (Set 4) have a relatively high positive coefficient. However, in most cases the and coefficients have opposite signs, indicating that most of the UJCs do not grow at a polynomial rate. Indeed, by manually examining the UJCs, we observed that most UJCs in this set have a superlinear growth rate. Many of the UJCs in this set started with a faster than linear growth rate and then dropped to a linear growth rate.

  5. The majority of the UJCs with (Set 5) have relatively high positive and coefficients, and low negative and coefficients. This indicates that the UJCs grew very fast and then slowed down until the growth stopped. Indeed, we observed a growth pattern in these UJCs which is similar to the sigmoidal growth rate.

Additionally, we inspected the growth patterns of the 692 UJCs that did not match quartic functions. As mentioned in Section 5.1.2, 274 of these UJCs matched the MMF model, which has a sigmoidal growth rate. A closer look at the remaining 418 anomalous UJCs revealed that external events often affected the growth, such as the launch of a new season of TV shows. We refer to this growth pattern as events-oriented growth.

5.1.4 User-Join Curve Prediction

One of this study’s goals was to understand how various UJC growth rates affect networks’ topologies. To achieve this goal, using the 11,965 selected subreddits, we first calculated the Pearson correlations between the subreddit topological features (see Section 4.2) and the subreddit normalized-area values (see Section 5.1.3). Then, we used regression algorithms to construct models which could predict a subreddit’s normalized-area values. Lastly, we used different classification algorithms to construct classifiers that could predict UJC categories based on their topologies. In the rest of this subsection, we provide an overview of each method we used and the obtained results.

Correlations. We calculated the Pearson correlations between the 11,965 subreddit social network topological features and their normalized areas. The obtained results indicate that there is a weak positive correlation between norm-area and the network’s average clustering coefficient (), and also between the norm-area and the network’s density (). Additionally, there is a negligible negative correlation between the norm-area and the network’s maximal in-degree (), as well as between the norm-area and the maximal out-degree (). Moreover, there is a moderate negative correlation between the norm-area and the Days feature ().

Regression Analysis. We constructed regression prediction models, which can predict a subreddit’s UJC normalized area using GraphLab Create [14]. We evaluated three regression models: linear regression, Boosted Trees regression, and Random Forest regression. We created these models twice, one time using all the topological features described in Section 4.2 and the second time with all the features plus the feature. We evaluated the models using 10-fold cross validation and measuring the models’ average value of (a) mean absolute error (MAE), (b) mean square error (MSE), and (c) root mean squared error (RMSE).

Out of these regression models, the Boosted Trees regression presented the best results, which were slightly better than the linear and Random Forest models, with , , and , using only the topological features; and , , and , using the topological features plus the feature. Additionally, the linear regression model created using the 11,965 subreddits’ topology features presented an value of 0.125, using only the topological features, and an value of 0.262, using all the topological features plus the feature. Moreover, in the linear regression model constructed with all the features, the , , ,, , , , and had positive coefficients. The , , , , , , and had negative coefficients.

Supervised Learning. We constructed supervised learning classifiers which can classify the category of the subreddit’s UJC, based on only the 11,965 selected subreddits’ topological features, in the following way: First, we created a labeled dataset with the six growth categories we defined in Section 5.1.3. Next, using the labeled dataset, we used WEKA [9] and constructed various classifiers using the following algorithms: OneR, J48 decision tree, Logistic, K-Nearest-Neighbors (KNN) with , Rotation Forest, and Random Forest. Then, we evaluated each classifier using the 10-fold cross validation method and calculated the classifier’s AUC (area under the ROC curve) values. Lastly, we repeated the construction and evaluation process, only this time with only two growth categories – polynomial growth and sigmoidal growth.

Out of all the trained classifiers, the Logistic classifier obtained the best results, in terms of AUC, on both datasets. On the first dataset, with six categories, the Logistic classifier obtained the highest weighted average AUC and the highest correct classification percentage of 0.64 and 41.2%, respectively. These results were considerably better than the simple OneR and KNN classifiers that obtained weighted average AUCs of 0.52 and 0.53, and correct classification percentages of 37.4% and 31.7%, respectively. On the second dataset, which consisted of subreddits with only polynomial growth and sigmoidal growth, the Logistic classifier obtained the highest AUC and highest true positive rate of 0.82 and 0.81, respectively. These results were considerably better than the simple OneR and KNN classifiers that obtained AUCs of 0.67 and 0.64, respectively.

5.2 Vertices’ Join-Time Difference

Similar to Price’s observation [17] that new papers tend to be cited more than older papers, we noticed that redditors tend to be more engaged with other redditors who joined the network at a similar time, and less engaged with redditors who became active either a long time before or after they did. To validate our observation, for each edge in 362,230,386 links in the full Reddit network, we calculated the join-time difference in days () between each edge’s vertices (see Section 4.2). Afterwards, we calculated the probability of each time difference value. Moreover, we utilized regression analysis to match a function that estimated the probability of two redditors connecting, based on the join-time difference.

The analysis results are presented in Figure 3. Additionally, using regression analysis, we discovered that the probability of two redditors with join-time difference to be linked can be estimated to be:

According to these results, we can observe that the probability of two redditors to be linked decreases sharply as the join-time difference between them increases. For example, while over 51% of edges are between users with a join-time difference of less than a year, only 1% of edges are between redditors with a join-time difference of over 5 years.

Figure 3: Edge time difference distribution. It can be observed that as the join-time difference between two redditors increases, the probability of a link between them decreases sharply.

6 The Temporal Preferential
Attachment Model

Inspired by the above results in which the vertex join-rate changes over time and edges tend to be formed among vertices with similar join times, we developed the TPA model for generating undirected random networks. The model is a generalization of the well-known BA model  [4], with two main extensions: (a) instead of adding one vertex in each iteration to the network, the TPA model inserts a set of vertices in each iteration, where the set’s size can be modified in each iteration; and (b) the probability of an edge forming between two vertices is negatively correlated with the time gap between the two vertices’ join times.

In the rest of this section, we first formally define the TPA model. Subsequently, we evaluate the model by using it to generate various random networks of different sizes, and we compare the constructed networks’ properties to the properties of real-world networks as well as to random networks created by other models.

6.1 The TPA Model Algorithm

1:procedure GenerateRandomGraph
2:m, l, f
3:       empty undirected graph
4:       empty list
5:      for  to  do
6:             list of new vertices
7:            AddNewVerticesTimeGroup(,)
8:            AddVerticesToGraph(g )
9:            AddToList(TimeGroupsList, )
10:            for  in  do
11:                 AddRandomEdges(g,v,m,f)                   
13:procedure AddRandomEdges
15:      for  to  do
16:            repeat
17:                  SelectFromList(TimeGroupsList,f)
18:                  GetVertexInGroupByDegree(g,r)
19:            until 
20:            AddEdge(g,v,u)       
Algorithm 1 The Temporal Preferential Attachment Model Algorithm Overview

An overview of the TPA model algorithm is presented in Algorithm 1. The TPA model receives as input three parameters: first, the number of edges (denoted ) to attach a new vertex to existing vertices; second, an integers list (denoted ) with the number of vertices to add to the graph in each iteration; and third, a function (denoted ) that given a time difference value, returns the relative probability of an edge existing across two time groups. The algorithm starts by creating an empty undirected graph (line 1) and an empty time group list (line 2). Then, for each positive integer in , the algorithm does the following: (1) creates new vertices with the time group set to (lines 5-6); (2) adds the new vertices to the graph (line 7); (3) adds to the (line 8); and (4) connects each new added vertex to the other vertices using the AddRandomEdges procedure (line 10).

The AddRandomEdges procedure (lines 12-18) is the core of the model. The procedure receives as input five parameters: a graph (), a vertex (), the number of edges (), a probability time difference function (), and a list of existing time groups (). The AddRandomEdges procedure connects to other vertices in the graph using the following routine. First, it randomly selects from a time group (denoted ) where the probability of selecting each time group is given by (line 1).101010Given time groups, the actual probability of an edge being created between two time groups with a time difference of is equal to . Then, similar to the BA model, the procedure selects one vertex () among all the vertices that are in the selected time group , where vertices with higher degree have higher likelihood of being selected (line 16). In case the edge already exists in the graph, then the selection process of is repeated until a new in the graph is created.111111In the Python implementation of the TPA model, to prevent cases where it is impossible to add new edges to , we limited the number of repeats and moved on to connect the next vertex. A detailed implemented TPA model in Python can be found in the paper’s website (see Section 9).

To illustrate our TPA model algorithm, we can create a random graph using the following input parameters: , and . We start running the model with an empty graph. In the first iteration, we add 100 () new vertices to the graph, and each new vertex has a time group value of 0. In this iteration there are not any other time groups. Therefore, the 100 new vertices will only create 300 () edges among themselves in the following manner: each vertex will select 3 other vertices in the group, and similar to the BA model, vertices with higher degree will have higher probability of being selected, and the “richer” vertices will have a higher probability of becoming “richer.”

In the second iteration, the model will insert 200 () new vertices which will form 600 () new edges. However, this time we have two time groups: (a) a time group of 1 (with time difference 0), which contains all the 200 new vertices, and according to the time difference probability function, the probability of each new vertex establishing a connection to this group is ; and (b) a time group of 0 (with time difference of 1), which contains the previous 100 vertices, with a probability of of connecting to vertices in this time group. According to these parameters, we can observe that the probability ratio of the two time groups is 2 to 1. Therefore, we can use this ratio to estimate that out of the 600 edges of the second iteration, about 400 edges will be formed among the vertices of time group 1, and about 200 edges will be formed among the vertices of time group 1 and time group 0, where each edge has a higher probability of connecting vertices with higher degree.

Lastly, in the third iteration, our model will insert an additional 400 () new vertices to the graph with a time group value of 2. These vertices will formulate 1200 () edges, of which about 686 will be among the vertices of time group 2; about 343 edges will be among the vertices of time groups 2 and 1 (time difference of 1), and about 171 edges will be among the vertices of time groups 2 and 0 (time difference of 2). Overall, the TPA model will have constructed a graph with 700 vertices and 2,100 edges.

6.2 TPA Model Evaluation

To empirically evaluate the TPA model, we created various random networks by using various input parameters:

  1. The vertices number was set to three different sizes: 700, 6,200, and 12,350.

  2. The edge number, parameter , was set to 3, creating networks with about 2,100, 18,600, and 37,050 edges.

  3. We used linear, polynomial, and sigmoidal vertices growth rates. For the linear growth rate, we added 10 new vertices in each iteration. For the polynomial growth rate, we used the sequence of 5, 20, 45, …, , with a maximal value of 8, 16, and 20 for creating networks with 2,100, 18,600, 37,050 edges, respectively. For the sigmoidal growth rate, we used the same growth sequence as used in polynomial growth only in reverse order.

  4. We used and functions as time difference functions (), where the will create considerably more edges among all the vertices in the same time group than .

Overall, we assembled 18 different parameter settings for generating random networks. For each parameter setting, we utilized the TPA model to create 18 random networks. Subsequently, for each network, we calculated the network’s average clustering coefficient (denoted CC), the maximal degree of vertex in the network (denoted ), the network’s average shortest paths value (denoted Avg. SP), and the power law function () that matched the degree distribution of the network. To reduce variance of the calculated features, we repeated the network construction process and feature calculations 10 times for each parameter setting and calculated the average value of each feature. The results of these calculations are presented in Table 2. Furthermore, for comparing the TPA model to other models, we used both the BA model and the Watts-Strogatz model to generate random networks of similar sizes (see Table 2).121212The parameter in the Watts-Strogatz model was set to 0.1.

Model |V| |E| Rate CC Avg. SP
TPA 700 2100 Linear 0.063 28.4 4.23
TPA 700 2095 Poly. 0.03 37.2 3.7
TPA 700 2100 Sig. 0.053 58.1 3.73
TPA 700 2100 Linear 0.15 28.0 5.78
TPA 700 2095 Poly. 0.07 43.8 3.96
TPA 700 2100 Sig. 0.094 54.0 4.19
TPA 6200 18600 Linear 0.045 32.8 13.62
TPA 6200 18595 Poly. 0.007 61.1 4.89
TPA 6200 18600 Sig. 0.012 119.5 4.92
TPA 6200 18600 Linear 0.141 31.6 31.03
TPA 6200 18595 Poly. 0.025 97.4 5.59
TPA 6200 18600 Sig. 0.029 113.2 5.79
TPA 12350 37050 Linear 0.044 33.1 24.23
TPA 12350 37045 Poly. 0.004 81.7 5.3
TPA 12350 37050 Sig. 0.007 155.4 5.36
TPA 12350 37050 Linear 0.139 33.0 60.69
TPA 12350 37045 Poly. 0.017 116.0 6.27
TPA 12350 37050 Sig. 0.02 163.6 6.51
BA 700 2091 - - 0.04 82.9 3.36
BA 6200 18591 - - 0.008 234.4 4.12
BA 12350 37041 - - 0.005 362.2 4.36
WS 700 2100 - - 0.444 8.9 5.76 -
WS 6200 18600 - - 0.442 9.8 8.11 -
WS 12350 37050 - - 0.443 10.1 8.85 -
Table 2: Random Networks’ Topological Properties

7 Discussion

By analyzing the results presented in Sections 45, and 6, the following can be noted:

First, from the construction process results presented in Section 4.1, we can observe that most of Reddit’s online communities have an activity period of less than a year. Moreover, we can observe that the 11,965 selected subreddits, which are about 5% of all the subreddits in the dataset, contain 1.38 billion posts; these are 97.7% of all the posts in the constructed clean Reddit dataset. This indicates that most communities are short-lived and contain significantly less content than what can be found in other more active communities. Therefore, studies aiming to analyze online communities need to carefully select the communities they choose to study.

Second, from Table 1 we can observe that the Reddit dataset contains many types of communities with a wide range of size scales and with various topologies. However, from the results presented in Section 5.1.2, we can surprisingly observe that even though there are many different social networks and the reasons people join these communities are varied and complex, in most online communities the UJCs match quartic functions.

Third, according the correlation results presented in Section 5.1.4, we can observe that, in general, UJCs with higher normalized areas typically have higher CC values. This observation aligns with the networks generated by the TPA model, in which networks created by sigmoidal growth usually presented higher CC values than same-size networks created by polynomial growth (see Table 2).

Fourth, by observing the regression results in Section 5.1.4, which presented models with relatively low RMSE values, and the classification results presented in Section 5.1.4, which presented promising results with AUC of 0.82, we can infer that analyzing a social network topology can, in many cases, predict the normalized area size of the UJC that created the network. Therefore, in many cases, we can predict the general pattern in which users joined the social network. Moreover, according to the classification results, the difference is noticeable between networks created by polynomial growth and networks created by sigmoidal growth.

Lastly, according to the results presented in Table 2, it can be noted that the TPA model generates scale-free networks with similar degree distribution to networks created by the BA model, and with small average shortest path values. Additionally, the TPA model can generate networks with much higher CC values than the BA model. However, in most cases networks created by the TPA model presented much lower values than networks of the same size created by the BA model. Nevertheless, in the BA model most vertices with high degree are likely vertices that join the network in the first iterations. By setting the TPA model’s vertices join rate and time difference functions, it is possible to create vertices with relatively high degree that join the network in later iterations. This can more accurately mimic a network’s evolution process and provide additional insight on how a newly added vertex suddenly becomes popular, such as when a post becomes viral in social networks.

8 Conclusions

Over a half century ago, Price estimated that half of papers’ citations contained new papers while the other half were to “immortal” papers [17]. In the last decades, much of the focus of network generation models was on connecting new vertices in the graph to the “immortal” vertices. In this study, we demonstrate the importance of time as part of the network evolution process. We achieved this by analyzing a large-scale dataset containing over 1.65 billion comments. We analyzed 11,965 social networks created from the dataset and showed that the network UJCs have a high impact on the networks’ structure (see Section 5). Moreover, we showed that most edges are created between users who joined the network in a time difference of less than a year (see Section 5.2).

Taking into account these observations, we developed the TPA model, which incorporates both the rate and time that vertices join the network (see Section 6). Moreover, we demonstrated that the TPA model can generate scale-free networks with relatively high CC values and relatively small average shortest path values (see Table 2). Even though the TPA model is fairly simple, we believe it presents a more accurate model of the evolution process of complex networks than other preferential attachment-based models. Moreover, the TPA model will help in better understanding the role of time in the network evolution process.

In the future, we hope to analytically analyze the TPA model and create a similar model for creating directed and weighted networks. Additionally, we plan to explore how different input parameters influence the created network topology. Another research direction we hope to pursue is to analyze the effect of different UJCs on the topologies of various complex networks, such as biological networks. Moreover, the large corpus of social networks created and released as a result of this study can greatly contribute to better understanding online communities and complex networks. According Albert-László Barabási, “If data of similar detail capturing the dynamics of processes taking place on networks were to emerge in the coming years, our imagination will be the only limitation to progress” [5].

9 Data and Code Availability

Instructions on how to download the raw Reddit dataset are available in the following Reddit post. Additionally, the dataset can be downloaded from this link. This study is reproducible research. Therefore, the social network datasets and a considerable part of the study’s code, including implementation of the TPA model, are available at the project’s website, which also gives researchers the ability to interactively explore and better understand the social networks in this study’s dataset.

10 Acknowledgments

First and foremost, we would like to thank Jason Michael Baumgartner for making the Reddit dataset available online. We would like to thank Carol Teegarden for editing and proofreading this article to completion. We also want to thank Stephen Spencer for his IT expertise, which greatly assisted us during this research. Additionally, we thank the AWS Cloud Credits for Research. We also thank the Washington Research Foundation Fund for Innovation in Data-Intensive Discovery, and the Moore/Sloan Data Science Environments Project at the University of Washington for supporting this study.


  • [1] R. Albert and A.-L. Barabási. Statistical mechanics of complex networks. Reviews of modern physics, 74(1):47, 2002.
  • [2] J. Alstott, E. Bullmore, and D. Plenz. powerlaw: a python package for analysis of heavy-tailed distributions. PloS one, 9(1):e85777, 2014.
  • [3] M. Armbrust, A. Fox, R. Griffith, A. D. Joseph, R. Katz, A. Konwinski, G. Lee, D. Patterson, A. Rabkin, I. Stoica, et al. A view of cloud computing. Communications of the ACM, 53(4):50–58, 2010.
  • [4] A.-L. Barabási and R. Albert. Emergence of scaling in random networks. science, 286(5439):509–512, 1999.
  • [5] A.-L. Barabási et al. Scale-free networks: a decade and beyond. science, 325(5939):412, 2009.
  • [6] K. Bergstrom. “don’t feed the troll”: Shutting down debate about community expectations on reddit. com. First Monday, 16(8), 2011.
  • [7] M. Bostock, V. Ogievetsky, and J. Heer. D data-driven documents. Visualization and Computer Graphics, IEEE Transactions on, 17(12):2301–2309, 2011.
  • [8] E. Estrada. Journal of complex networks: Quo vadis? Journal of Complex Networks, 1(1):1–2, 2013.
  • [9] M. Hall, E. Frank, G. Holmes, B. Pfahringer, P. Reutemann, and I. H. Witten. The weka data mining software: an update. ACM SIGKDD explorations newsletter, 11(1):10–18, 2009.
  • [10] P. Holme and B. J. Kim. Growing scale-free networks with tunable clustering. Physical review E, 65(2):026107, 2002.
  • [11] D. Hyams. Curveexpert software. http://www.curveexpert.net, 2010.
  • [12] S. R. Kairam, D. J. Wang, and J. Leskovec. The life and death of online groups: Predicting group growth and longevity. In Proceedings of the fifth ACM international conference on Web search and data mining, pages 673–682. ACM, 2012.
  • [13] J. Leskovec, L. Backstrom, R. Kumar, and A. Tomkins. Microscopic evolution of social networks. In Proceedings of the 14th ACM SIGKDD international conference on Knowledge discovery and data mining, pages 462–470. ACM, 2008.
  • [14] Y. Low, J. E. Gonzalez, A. Kyrola, D. Bickson, C. E. Guestrin, and J. Hellerstein. Graphlab: A new framework for parallel machine learning. arXiv preprint arXiv:1408.2041, 2014.
  • [15] M. E. Newman. The structure and function of complex networks. SIAM review, 45(2):167–256, 2003.
  • [16] M. E. Newman and M. Girvan. Finding and evaluating community structure in networks. Physical review E, 69(2):026113, 2004.
  • [17] D. Price. Statistical studies of networks of scientific papers. In Statistical Association Methods for Mechanized Documentation: Symposium Proceedings, volume 269, page 187. US Government Printing Office, 1965.
  • [18] D. Price de Solla. A general theory of bibliometric and other cumulative advantage process. Journal of the American Society of Information Science, 27:292–306, 1976.
  • [19] A. Sallaberry, F. Zaidi, and G. Melançon. Model for generating artificial social networks having community structures with small-world and scale-free properties. Social Network Analysis and Mining, 3(3):597–609, 2013.
  • [20] J. Saramäki, M. Kivelä, J.-P. Onnela, K. Kaski, and J. Kertesz. Generalizations of the clustering coefficient to weighted complex networks. Physical Review E, 75(2):027105, 2007.
  • [21] T. Schank. Algorithmic aspects of triangle-based network analysis. Phd in computer science, University Karlsruhe, 3, 2007.
  • [22] D. J. Watts and S. H. Strogatz. Collective dynamics of ‘small-world’networks. nature, 393(6684):440–442, 1998.
  • [23] E. W. Weisstein. Weakly connected component.
  • [24] M. Zaharia, M. Chowdhury, M. J. Franklin, S. Shenker, and I. Stoica. Spark: cluster computing with working sets. In Proceedings of the 2nd USENIX conference on Hot topics in cloud computing, volume 10, page 10, 2010.
Comments 0
Request Comment
You are adding the first comment!
How to quickly get a good reply:
  • Give credit where it’s due by listing out the positive aspects of a paper before getting into which changes should be made.
  • Be specific in your critique, and provide supporting evidence with appropriate references to substantiate general statements.
  • Your comment should inspire ideas to flow and help the author improves the paper.

The better we are at sharing our knowledge with each other, the faster we move forward.
The feedback must be of minimum 40 characters and the title a minimum of 5 characters
Add comment
Loading ...
This is a comment super asjknd jkasnjk adsnkj
The feedback must be of minumum 40 characters
The feedback must be of minumum 40 characters

You are asking your first question!
How to quickly get a good answer:
  • Keep your question short and to the point
  • Check for grammar or spelling errors.
  • Phrase it like a question
Test description