论文部分内容阅读
近年来,随着互联网和Web2.0技术的飞速发展,社会网络作为沟通现实人类世界的桥梁,已经成为交互沟通、知识共享和信息传播的重要媒介和平台。其中,影响最大化问题旨在发现社会网络中最有影响力的节点集合,是社会网络分析领域的关键问题,在许多重要场景中有着广泛的应用,例如市场营销、广告发布、舆情预警、水质监测、疫情监控等,因此具有很高的研究价值和应用价值。许多影响最大化应用策略的制定和部署对于算法求解时间十分敏感,因此,高效的求解算法是当前学术界和工业界研究影响最大化算法的核心目标。已有的研究成果主要集中于一些贪心算法和启发式算法,存在求解速度慢、计算效率低的问题。另一方面,当今社会网络的数据规模海量、数据耦合度高、网络结构动态变化。当面对大规模社会网络时,已有算法暴露出许多难以克服的问题:第一,社会网络中节点影响值计算的可并行性问题。已有工作专注于降低算法的复杂度,没有充分利用已有的并行计算架构来加速问题求解。而实际社会网络中存在大量的节点影响值计算可由并行计算架构并发执行。因此,在挖掘算法的并行性方面,影响最大化算法的执行速度仍有很大的提升空间。第二,已有影响最大化算法未充分考虑社会网络节点分布特性。社会网络中节点的度分布服从典型的幂律分布。然而,现有贪心算法大多采用精确计算的方式来计算所有节点的影响值,导致大度数节点的计算复杂度十分高,成为算法执行的瓶颈。第三,社会网络拓扑结构的动态变化问题。现有影响最大化问题研究专注于静态网络;当网络动态变化时,大都需要针对全网进行重新计算节点的影响值,会造成大量冗余计算,导致性能无法满足大规模社会网络的需求。针对上述技术瓶颈,本文系统地研究了社会网络影响最大化问题的高效处理技术,从以下几个方面展开研究:针对现有方法并行度差、算法复杂度高,从而导致运行时间过长的问题,本文基于CPU+GPU的异构并行计算框架,设计和实现了一种具有高并行度的影响最大化算法BUTA,并针对GPU体系结构做了进一步算法优化。本文通过深入分析社会网络中节点之间的层次依赖关系,发现了节点影响值计算的可并行性。在此基础上,设计了一种自底向上的逐层扫描方法BUTA。BUTA算法一方面可以在保证算法精度的同时大幅度降低算法复杂度,另一方面BUTA充分利用了节点的层次分布,以高并行度计算节点的影响值。为了使BUTA算法更加适配CPU+GPU的异构并行计算框架,本文设计了三种优化方法:K层合并、数据重组和合并访存,分别用于降低运行时分支,减少访存次数和提高算法并行度。针对已有影响最大化算法未充分利用社会网络节点分布特性的问题,本文提出了一种基于蒙特卡洛理论的采样估计算法ESMCE,大幅度提升了计算效率。本文对社会网络中节点的分布特性进行了建模和挖掘;针对大度数节点计算时间长的问题,本文引入蒙特卡洛理论,设计了一种节点影响值估计方法ESMCE。在采样过程中,ESMCE算法设计了一种由幂律指数指导的采样节点个数计算方法。之后,根据估计误差同精度要求之间的差距,本文提出了一种基于灰度预测模型的后续采样节点个数预测方法,以通过多次迭代采样来提高算法精度直至采样误差满足设定的精度要求。针对社会网络拓扑动态变化造成的已有算法计算效率低的问题,本文设计了一种增量式的影响最大化算法IncInf。本文深入分析了社会网络拓扑结构的演化特征,发现社会网络的拓扑变化满足优先连接原则,同时最有影响力节点的度数要明显大于普通节点。基于上述发现,本文设计了一种基于局部化理论的影响变化量高效计算方法。基于节点的影响变化量和原有网络对应的最有影响力节点信息,设计了一种剪枝策略,将候选节点范围有效缩小到影响值增长迅速、度排序靠前的节点集合,从而大幅度降低了动态社会网络影响最大化求解的复杂度,减少了程序运行时间。针对当前内容分发方法忽略了社会网络中的用户关联关系、地理位置等社会信息,从而导致用户访问延迟高的问题,本文设计了一种基于影响最大化的内容分发方法SCORE。同已有的内容分发方法不同,SCORE方法充分利用了社会网络中的用户信息,提出了一种基于影响最大化算法的缓存内容选择策略以快速准确地定位未来访问频率较高的关键内容。为了最小化访问延迟,SCORE方法通过挖掘用户之间的关联关系和地理位置信息,设计了一种基于K-MEANS聚类算法和加权球面平均计算方法的边缘服务器选择策略,从而将关键内容预先分发到离潜在访问用户最近的边缘服务器,以便于就近响应用户请求。实验结果表明,SCORE方法可以大幅度降低用户访问延迟,提升用户体验质量。综上所述,本文针对社会网络影响最大化问题的高效处理技术提出了有效的解决方案,并通过在真实数据集上进行实验验证了所提算法的有效性,对于推进社会网络影响最大化问题的研究和实用化具有一定的理论意义和应用价值。