51 research outputs found

    The Power of Pivoting for Exact Clique Counting

    Full text link
    Clique counting is a fundamental task in network analysis, and even the simplest setting of 33-cliques (triangles) has been the center of much recent research. Getting the count of kk-cliques for larger kk is algorithmically challenging, due to the exponential blowup in the search space of large cliques. But a number of recent applications (especially for community detection or clustering) use larger clique counts. Moreover, one often desires \textit{local} counts, the number of kk-cliques per vertex/edge. Our main result is Pivoter, an algorithm that exactly counts the number of kk-cliques, \textit{for all values of kk}. It is surprisingly effective in practice, and is able to get clique counts of graphs that were beyond the reach of previous work. For example, Pivoter gets all clique counts in a social network with a 100M edges within two hours on a commodity machine. Previous parallel algorithms do not terminate in days. Pivoter can also feasibly get local per-vertex and per-edge kk-clique counts (for all kk) for many public data sets with tens of millions of edges. To the best of our knowledge, this is the first algorithm that achieves such results. The main insight is the construction of a Succinct Clique Tree (SCT) that stores a compressed unique representation of all cliques in an input graph. It is built using a technique called \textit{pivoting}, a classic approach by Bron-Kerbosch to reduce the recursion tree of backtracking algorithms for maximal cliques. Remarkably, the SCT can be built without actually enumerating all cliques, and provides a succinct data structure from which exact clique statistics (kk-clique counts, local counts) can be read off efficiently.Comment: 10 pages, WSDM 202

    Modeling and interpreting mesoscale network dynamics.

    No full text
    corecore