[论文解读] Kaleido: An Efficient Out-of-core Graph Mining System on A Single Machine
Kaleido 是一个单机、外存图挖掘系统,将磁盘视为内存的扩展,以高效处理图挖掘中的大规模中间数据。它采用基于张量的中间数据结构,并结合轻量级基于特征值的同构性检查算法,针对顶点数少于 9 个的子图,分别在 Arabesque 和 RStream 上实现了 12.3× 和 40.0× 的加速。
Graph mining is one of the most important categories of graph algorithms. However, exploring the subgraphs of an input graph produces a huge amount of intermediate data. The 'think like a vertex' programming paradigm, pioneered by Pregel, cannot readily formulate mining problems, which is designed to produce graph computation problems like PageRank. Existing mining systems like Arabesque and RStream need large amounts of computing and memory resources. In this paper, we present Kaleido, an efficient single machine, out-of-core graph mining system which treats disks as an extension of memory. Kaleido treats intermediate data in graph mining tasks as a tensor and adopts a succinct data structure for the intermediate data. Kaleido utilizes the eigenvalue of the adjacency matrix of a subgraph to efficiently solve the subgraph isomorphism problems with an acceptable constraint that the vertex number of a subgraph is less than 9. Kaleido implements half-memory-half-disk storage for storing large intermediate data, which treats the disk as an extension of the memory. Comparing with two state-of-the-art mining systems, Arabesque and RStream, Kaleido outperforms them by a GeoMean 12.3$ imes$ and 40.0$ imes$ respectively.
研究动机与目标
- 解决在单台机器上进行图挖掘时,生成的海量中间数据(嵌入)管理难题。
- 克服现有系统(如 Arabesque 和 RStream)在同构性检查和数据处理过程中因高 I/O 和内存开销导致的低效问题。
- 通过将磁盘视为内存扩展,并使用紧凑的张量基中间数据结构,实现可扩展、高性能的图挖掘。
- 为小规模子图(≤9 个顶点)开发一种快速、低内存消耗的同构性检查方法,避免昂贵的规范标签化计算。
- 提供简单、用户友好的 API,使非专家能够通过基于子图的模型表达图挖掘工作负载。
提出的方法
- 将图挖掘中的中间嵌入表示为张量,以实现紧凑、高效的存储与处理。
- 实现半内存、半磁盘的存储管理机制,在主内存耗尽时动态将数据卸载至磁盘。
- 对顶点数 ≤9 的子图采用基于特征值的同构性检查,避免昂贵的规范标签化计算,降低内存使用。
- 采用基于子图的编程模型(类似于 TLE),以声明式、用户友好的方式表达挖掘工作负载。
- 通过最小化 RStream 等系统中常见的冗余 I/O 和连接操作,优化基于边诱导和顶点诱导的探索过程。
- 集成一种轻量级、高性能的同构性检查器,利用谱图理论实现对小规模子图的快速比较。
实验结果
研究问题
- RQ1在主内存有限的单台机器上,如何高效地存储和处理图挖掘中的中间数据?
- RQ2在图挖掘工作负载中,基于特征值的同构性检查是否能优于对小规模子图的规范标签化方法?
- RQ3在外部内存图挖掘系统中,将磁盘作为内存扩展的性能影响如何?
- RQ4与传统的基于数组或前缀树的表示方式相比,基于张量的中间数据结构在 I/O 和内存效率方面表现如何?
- RQ5基于子图的编程模型在不牺牲性能的前提下,能在多大程度上简化复杂图挖掘算法的实现?
主要发现
- Kaleido 在图挖掘工作负载中,相较于 Arabesque 实现了 12.3× 的几何平均加速,相较于 RStream 实现了 40.0× 的加速。
- Kaleido 中的基于特征值的同构性检查器显著降低了内存占用,并避免了 Bliss 等规范标签化工具中典型的昂贵内存分配/释放循环。
- 通过将磁盘视为内存扩展,Kaleido 高效管理了高达 135 亿个嵌入(例如,在 Patent 图上进行 4-嵌入挖掘时)的中间数据量。
- 该系统的半内存、半磁盘存储策略实现了透明的可扩展性,相比依赖重复连接的系统,显著降低了 I/O 开销。
- Kaleido 的中间数据结构比 Arabesque 的前缀树式数组更紧凑,降低了存储和访问成本。
- Kaleido 的同构性检查算法在性能和内存效率上均优于当前最先进的库(如 Nauty 和 Bliss),尤其在顶点数 ≤9 的小图上表现更优。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。