基于异步和预过滤流的频繁项集挖掘并行算法
1. 引言
随着数据挖掘和知识发现的重要性日益凸显,众多领域如天文学、金融、生物信息学和网络安全等,都面临着数据爆炸式增长的问题。在不进行数据缩减或挖掘的情况下分析这些大规模数据集变得越来越不可行,因此高效挖掘数据的需求也日益增长。
然而,挖掘大规模且可能动态变化的数据集是一项计算密集型任务,即使是最有效的顺序算法也可能变得无效。因此,在高性能并行计算环境中实现非平凡的数据挖掘算法对于提高响应时间至关重要。
频繁模式/项集挖掘是多个数据挖掘任务的核心。虽然已经有很多关于该任务的并行算法被提出,但仍存在一些尚未解决的挑战:
- 并行化复杂且通信密集 :几乎所有现有算法都需要多个同步点。
- 工作负载平衡困难 :每个计算单元的计算量不仅取决于分配给它的数据量,相同大小的数据块不一定能保证相等的工作负载,因为每个数据块生成的频繁项集数量可能存在严重偏差。
- 系统利用率问题 :在这些方法中,系统资源的充分利用往往被忽视,而在挖掘大型数据集时,充分利用系统资源对于实现可扩展性至关重要。
为了解决这些问题,我们提出了一种基于过滤流编程模型的新型并行频繁项集挖掘算法。该算法具有以下特点:
- 异步候选生成 :能够高效地确定频繁项集,并且只传输必要的项集聚合信息,减少了过滤器之间的通信。
- 预过滤机制 :可以提前判断候选项集是否频繁,而无需先在所有分区上进行检查。在数据集的项集支持分布存在偏差时