Facebook networkTo 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 nodes and 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 . To avoid memory issues, we have implemented our algorithms in C. For with and , the proximal gradient algorithm computes the solution in about , , , and hours, respectively. After identifying the topology of the controller graph, we compute the optimal edge weights via polishing.
The Facebook network consists of ego nodes, . 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, , 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 potential edges between ego nodes. If the number of edges identified by our method is smaller than , 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 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 to . |