论文部分内容阅读
张量分解是一种经典而基础的数据分析方法,被应用于各个热门的研究领域,业界积累了丰富的研究理论和经验。随着信息时代的不断发展,由于数据规模的急剧增加,传统的单机环境下的张量分解算法已经无法适应大数据时代的要求。因此,对张量分解的并行化研究有其非常重要的现实意义。张量分解的两种主要的分解方式是CP分解和Tucker分解,两者应用都很广泛,各有侧重,并且CP分解从某种角度可以视为Tucker分解的一种特殊形式。针对Tucker分解算法的并行化研究很多,但各有优势,不一而足。目前,许多现实的数据集表现出网状式图结构特征,业内对于图结构数据的研究愈演愈烈。由于图结构数据和张量数据可以相互转换,两者之间存在密切的联系,所以许多研究人员考虑将张量和张量分解引入到图结构数据的研究领域中,旨在挖掘图结构数据的潜在知识。通过分析多种并行计算框架,本文采用并行图处理框架PowerGraph作为实验的物理环境,同时基于PowerGraph框架对Tucker分解及其应用做了些许尝试,主要工作分为以下几个部分:1.设计并实现了截断SVD(TRSVD)的并行算法。矩阵的奇异值分解(SVD)在机器学习、数据挖掘等领域有着很重要的研究价值和实际意义,并且经常作为交替最小二乘法(ALS)的更新方法。而TRSVD是SVD的一种改进策略。本文通过分析TRSVD的基本原理,采用行向量的拆分方式将TRSVD算法的核心步骤进行拆分,并设计与之相适应的图数据结构,从而在PowerGraph框架上实现TRSVD算法的并行化。经实验结果验证,并行后的TRSVD算法可以处理更大规模的矩阵,且计算时间较小。同时将其应用到后续的Tucker分解算法的并行化中,提高了整体算法的计算效率。2.设计并实现了Tucker分解的并行算法。通过仔细分析Tucker分解算法的基本原理以及算法的可行性,采用TRSVD的并行算法的拆分方式,重新设计了与之相适应的图数据结构,在PowerGraph框架上实现Tucker分解算法的并行化,并从不同角度对该算法进行了多次的对比实验和分析。经实验结果验证,并行后的Tucker分解算法可以处理更大规模的张量,且计算效率较高。3.设计并实现了基于Tucker分解的两个应用算法。第一,引用RESCAL分解模型和隐因子矩阵等概念,并将Tucker分解并行算法应用到多关系网络数据,在PowerGraph框架上实现了多关系网络的社团发现算法;第二,将彩色图片表示成张量形式,并将Tucker分解并行算法应用到彩色图片数据,在PowerGraph框架上实现了彩色图片的数据压缩算法。通过上述两个应用实验验证了Tucker分解并行算法的正确性和实际意义。