Abstract
随着社交网络应用的快速发展,社交网络成为了人们互动的重要媒介。针对社交网络全节点最短距离计算任务,Alon N提出利用矩阵乘法的最短路径距离积算法,结合距离积交换律和块矩阵乘法,最短路径算法的渐进时间复杂度为;在实际应用中,考虑到社交网络的无标度特点和计算设备浮点运算精度限制,最短路径算法具有更优渐进时间复杂度为。基于上述理论,本文提出融合稀疏性判断和收敛判断的网络全节点最短路径算法,利用了矩阵乘法的距离积算法、距离积交换律、块矩阵乘法、社交网络无标度性质以及计算机数据表示的精度限制。在演员社交网络数据集上,利用CPU、GPU上的矩阵计算库,该算法相比Alon N算法在计算时间性能上有0.39~36.2倍的提升。
1 引言
近年来,在中国、印度等亚洲电影产业的带动下,全球电影票房保持了稳定增长态势;并且随着社交网络应用的快速发展,越来越多的电影演员使用社交网络进行工作沟通,社交网络上的宣传推广日渐成为发行、营销、推广的重要工具,社交网络也成为演员与粉丝间互动的重要媒介。
以往的研究缺乏对电影演员社交网络的研究;在社交网络影响力计算方面,已有的节点影响力算法PageRank在影响力评价上精度不高。社交网络特征测量与挖掘是社交网络研究的重要工作,一些特征如介数、紧密度等需要计算节点间距离,因此,高效计算全节点最短路径是网络测量与挖掘的关键技术之一。
计算节点距离的方法有传统的Floyd-Warshall[1-2]算法;Aho A V[3]证明了距离积算法与矩阵乘法同构;Alon N[4]给出一个利用矩阵乘积计算距离积的算法;Zwick U[5]提出利用快速矩阵乘法优化矩阵乘积,从而计算距离积;Garbow H N[6]提出一种在限定域下的利用矩阵乘法计算距离积的算法。
从矩阵乘法的时间复杂度来看,Strassen V[7]、Coppersmith-Winograd[8]、Andrew Stothers[9]分别提出基于块矩阵的矩阵乘法,其渐进时间复杂度为 )、 )、 )。Monica D. Lam[10]提出缓存块大小为B×B的矩阵乘法的渐进时间复杂度为 );Goto K[11]在X86平台下, 对比了基于缓存块的矩阵计算库如Intel MKL v8.1.1、ESSL v4.2.0和ATLAS v3.7.11,提出了缓存命中率更高的OpenBLAS[1]矩阵计算库。
从矩阵稀疏性乘法优化来看,对于稀疏矩阵乘法,SciPy[2]和CuPy[3]在CPU、GPU上利用SciPy-sparse、CuPy-cuSparse实现了高效稀疏矩阵乘法;对于稠密矩阵乘法,NumPy[4]、SciPy、CuPy、ND4J[5]在CPU、GPU上利用OpenBLAS、cuBLAS等方法实现了基于块缓存的高效稠密矩阵乘法。
因此,一种可行的全节点对最短距离计算方法为:首先将网络表示成邻接矩阵,通过矩阵元素的指数运算、矩阵乘法和矩阵元素的对数运算得到距离积,将这些步骤称为一次距离积计算迭代;继续迭代数次便得到全节点最短路径矩阵,即全节点最短路径。
进一步地,从距离积计算和迭代两方面对计算任务耗时分析,在距离积计算方面,从时间复杂度来看,矩阵乘法是复杂度最大的步骤;从迭代方面,迭代次数同样影响着任务时间效率。(1)对于距离积优化,有两种优化方法,一种是利用Alon N提出的基于快速矩阵乘法的距离积计算方法,另一种是利用Monica D. Lam提出的基于缓存块矩阵计算的距离积方法。(2)对于迭代优化,利用Aho A V提出的距离积与矩阵乘法同构,因此距离积计算具有结合律,通过利用上次计算结果优化迭代计算过程。
2 数据集与实验设备
收集了2011年1月1日至2015年3月31日间,电影演员在新浪微博上的关注关系、微博个人信息和发布的文本信息,共有8508名演员、关注关系577775条以及12526114条微博文本。
计算设备为一台有两颗Intel Xeon E5-2620 v4 CPU和一颗NVIDIA GeForce GTX 1080 Ti GPU服务器,有32颗2.1Ghz频