Facebook network

To evaluate effectiveness of our algorithms on large networks, we solve the problem of growing a network of friendships. In such social networks, nodes denote people and edges denote friendships. There is an edge between two nodes if the two people are friends cite{mcales12}. The ego-Facebook network is undirected and unweighted with 4039 nodes and 88234 edges; the data is available at http://snap.stanford.edu/data/.

Our objective is to improve performance of this network by adding a small number of extra edges. We consider a setup in which people can only form friendships with friends of their friends. This restricts the number of potential edges in the controller graph to 1358067. To avoid memory issues, we have implemented our algorithms in C. For gamma = c , gamma_{max} with c = {0.1, 0.2, 0.5, 0.8 } and gamma_{max} = 19.525, the proximal gradient algorithm computes the solution in about 10, 2.6, 0.87, and 0.43 hours, respectively. After identifying the topology of the controller graph, we compute the optimal edge weights via polishing.

 

displaystyle{{rm Sparsity~level!:} ;; {bf card} , (x)  times 100%  ;; {rm vs} ;; gamma}

The number of nonzero elements in the vector x decreases as gamma increases.

 

displaystyle{{rm Performance~loss!:} ;; frac{J , - , J_c}{J_c}  times 100% ;; {rm vs} ;; {bf card} , (x)}

The {cal H}_2 performance deteriorates as the number of nonzero elements in x decreases. In particular, for gamma = 0.8, gamma_{max}, the identified sparse controller has only 3 nonzero elements (it uses only 0.0002% of the potential edges). Relative to the optimal centralized controller, this controller degrades performance by 16.842%.

The Facebook network consists of 10 ego nodes, {1, 108, 349, 415, 687,  699, 1685, 1913, 3438, 3981}. All other nodes are friends to at least one of these ego nodes cite{mcales12}. In all of our experiments, the added links with the largest edge weights connect either the ego nodes to each other or three non-ego nodes, {429, 564, 568}, to the ego nodes. Thus, our method identifies non-ego nodes that play an important role in improving the network performance.

We compare performance of the identified controller to a heuristic strategy that is described next. Controller graph contains 16 potential edges between ego nodes. If the number of edges identified by our method is smaller than 16, we randomly select the desired number of edges between ego nodes. Otherwise, we connect all ego nodes and select the remaining edges in the controller graph randomly. We then use polishing to find the optimal edge weights. The performance of resulting random controller graphs are averaged over 10 trials and the performance loss relative to the optimal centralized controller is displayed in the second figure. We see that our algorithm always performs better than the heuristic strategy. On the other hand, the heuristic strategy outperforms the strategy that adds edges randomly (without paying attention to ego nodes). Unlike our method, the heuristic strategy does not necessarily improve the performance by increasing the number of added edges. In fact, the performance deteriorates as the number of edges in the controller graph increases from 4 to 27.