图 (Graph) 适用于在理论意义上表示多个实体组间的联系,并且已在数据科学领域中用于实现各种目的,包括按网络热度排名、社交网络设计以及协助导航。许多情况下,这类应用需要处理包含数千亿条边的图,这些图因太大而无法在单台消费级机器上进行处理。对图算法进行扩展的典型方法是在分布式设置下运行,即划分多台计算机间的数据(和算法),并行执行计算。虽然这种方法可以处理包含数万亿条边的图,但同时也带来了新的挑战。换言之,由于每台计算机一次只能看到输入图的一小部分,因此我们需要处理机器间通信,并设计可划分在多台计算机上的算法。
协助导航
https://ai.googleblog.com/2021/01/addressing-range-anxiety-with-smart.html数千亿条边
https://doi.org/10.1007/s00778-019-00548-x
2008 年,用于实现分布式算法的框架 MapReduce 面世。它在提供良好容错能力的同时以透明方式处理机器间的通信,并指引了许多分布式计算框架的开发,包括 Pregel、Apache Hadoop 以及许多其他框架。尽管如此,开发超大图分布式计算算法的挑战依然存在,并且在这种情况下,即使是设计解决基本问题(例如:连通分量、最大匹配或最短路径)的高效算法都已成热门研究领域。虽然近期的研究验证了解决许多问题的新算法,包括我们用于连通分量(在理论和实践中)以及层次聚类的算法,但是仍然需要能够更快速解决各种问题的方法。
MapReduce
https://research.google/pubs/pub62/Pregel
https://research.google/pubs/pub37252/层次聚类
https://ai.googleblog.com/2018/03/balanced-partitioning-and-hierarchical.html
今天,我们将展示两篇近期针对此问题发表的论文,整个过程包括:先为分布式图算法构建理论模型,然后演示如何应用该模型。所提出的模型“自适应大规模并行计算 (AMPC)”增强了 MapReduce 的理论功能,同时提供在更少的计算回合下解决许多图问题的途径。我们还展示了如何在实践中有效地实现 AMPC 模型。我们介绍的这套算法包含用于最大独立集、最大匹配、连通分量和最小生成树的算法,其运行速度是当前最先进方法的 7 倍。