发明内容
本发明旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种基于局部节点以及度折扣的社交网络节点影响力推荐系统。
为了实现本发明的上述目的,本发明提供了一种基于局部节点以及度折扣的社交网络节点影响力推荐系统,包括网络节点获取模块、计算筛选模块和扩散推荐模块;
网络节点获取模块的数据输出端与计算筛选模块的数据输出端相连,计算筛选模块的数据输出端与扩散推荐模块的数据输入端相连;
所述网络节点获取模块用于获取待推荐的节点集;
计算筛选模块用于计算其网络节点获取模块获取的节点集中的局部影响力值;筛选出各个局部影响力值最大的节点作为源节点;将筛选出来的源节点构成候选节点集;
扩散推荐模块用于对其候选节点集中的候选节点利用其全局影响力值进行节点扩散,其扩散节点即为推荐节点。
在本发明的一种优选实施方式中,在计算筛选模块中,节点集中的节点的局部影响力值的计算方法为:
其中,NAV(u→v)表示节点的局部影响力值;
u表示节点u;
v表示节点v;
Nv表示节点v在节点集之中;
Infuv表示节点u激活节点v的概率;
s表示节点s;
Nv\{u,v}表示在第二阶段影响力值区域的邻居节点v属于节点集N;
pvs表示节点v激活节点s的概率。
在本发明的一种优选实施方式中,在扩散推荐模块中,全局影响力值的计算方法为:
其中,Influence(SCu)表示节点u在种子集所受的全局影响力值;
u表示节点u;
SC表示候选种子集;
v表示节点v;
SN表示表示种子源节点集;
puv表示节点u激活节点v的概率;
NAV(v)表示上个部分节点的局部影响力;
n表示节点n;
S\{u}表示邻居节点u在第一阶段的种子集;
Inf maxu∈V表示节点u在第一阶段的最大影响力值;
Inf表示整个阶段中节点集所受的影响力的值。
在本发明的一种优选实施方式中,还包括候选节点相似删除模块,网络节点获取模块的数据输出端与计算筛选模块的数据输出端相连,计算筛选模块的数据输出端与候选节点相似删除模块的数据输入端相连,候选节点相似删除模块的数据输出端与扩散推荐模块的数据输入端相连;
候选节点相似删除模块用于对计算筛选模块中的候选节点集中的候选节点进行相似性删除筛选;得到其新的候选节点集;
其节点相似的计算方法为:
其中,SCuv表示节点u在候选种子集SC上的相似性;
Inf maxu∈V表示节点u在第一阶段的最大影响力值;
Inf表示整个阶段中节点集所受的影响力的值;
Nu表示节点的第一阶段部分区域的邻居节点u;
∩表示交集;
N(S)表示表示种子集的数量;
Nuv表示节点u对节点v,在第二阶段被指向的数量。
在本发明的一种优选实施方式中,还包括参数优化模块,网络节点获取模块的数据输出端与计算筛选模块的数据输出端相连,计算筛选模块的数据输出端与候选节点相似删除模块的数据输入端相连,候选节点相似删除模块的数据输出端与扩散推荐模块的数据输入端相连;扩散推荐模块的数据输出端与参数优化模块的数据输入端相连,参数优化模块反向求导进行优化;
其优化方法为:
Lc=Tc max(0,m+-||vj||)2+λ(1-Tc)max(0,||vj||-m-)2,
其中,Lc表示每一个类别胶囊的损失值;
Tc表示分类的指示函数;
max()表示取最大值操作;
m+表示上边界;
vj表示父层胶囊j;
||||表示1范数操作;
λ表示类缺失的权重因子;
m-表示下边界。
在本发明的一种优选实施方式中,还包括参数优化模块,网络节点获取模块的数据输出端与计算筛选模块的数据输出端相连,计算筛选模块的数据输出端与候选节点相似删除模块的数据输入端相连,候选节点相似删除模块的数据输出端与扩散推荐模块的数据输入端相连;扩散推荐模块的数据输出端与参数优化模块的数据输入端相连,参数优化模块反向求导进行优化;
其优化方法为:
FL(pt)=-αt(1-pt)γlog(pt),
其中,FL(pt)表示损失值函数;
αt表示控制正负样本的权重;
pt表示样本类别的概率值;
γ表示聚焦参数;
其中,pt为样本类别的概率值;
p表示模型对正向样本类预测值;
y表示样本标签值。
在本发明的一种优选实施方式中,还包括参数优化模块,网络节点获取模块的数据输出端与计算筛选模块的数据输出端相连,计算筛选模块的数据输出端与候选节点相似删除模块的数据输入端相连,候选节点相似删除模块的数据输出端与扩散推荐模块的数据输入端相连;扩散推荐模块的数据输出端与参数优化模块的数据输入端相连,参数优化模块反向求导进行优化;
其优化方法为:
Lc=Tc max(0,m+-||vj||)2+λ(1-Tc)max(0,||vj||-m-)2,
其中,Lc表示每一个类别胶囊的损失值;
Tc表示分类的指示函数;
max()表示取最大值操作;
m+表示上边界;
vj表示父层胶囊j;
||||表示1范数操作;
λ表示类缺失的权重因子;
m-表示下边界;
FL(pt)=-αt(1-pt)γlog(pt),
其中,FL(pt)表示损失值函数;
αt表示控制正负样本的权重;
pt表示样本类别的概率值;
γ表示聚焦参数;
其中,pt为样本类别的概率值;
p表示模型对正向样本类预测值;
y表示样本标签值;
其中,Total_Loss表示模型损失值;
M表示一共有M个类;
Lc表示每一个类别胶囊的损失值;
FL(pt)表示损失值函数;
pt表示样本类别的概率值。
综上所述,由于采用了上述技术方案,本发明能够对节点进行产品推荐。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
1引言
1.1背景
影响力最大化问题最开始由Domingos和Richardson等人提出,而后Kempe和Kleinberg等人进一步提出了给定一个社会网络图、一个特定的影响级联模型和一个小的k,在图中找到k个顶点,在影响级联模型下受k个种子影响的期望顶点数是最大可能的。Kempe等人证明了优化问题是NP难问题,并给出了适用于这三个模型的贪婪近似算法。
针对传统的影响力最大化问题在大规模网络上计算量过大,并且局部节点未进行优化,在多个网络上难以同时满足时间效率和传播范围的问题,提出了一种新型基于局部节点优化和度折扣相结合的混合算法,从两个方向互补来研究影响力最大化效率的问题。本发明专利首先介绍了传统的度折扣启发式算法的思想和一些缺点,设计了新的方案来改进度折扣启发式算法,同时将本发明专利的方案与度折扣算法相结合,以获得传播范围更广、效率更快的启发式算法。并且基于局部节点相似影响力值使用二阶过滤方法将优化节点分为两个部分。本发明专利首先选择基于影响扩散的度折扣启发式算法,将优化后的算法与传统的度折扣启发式算法进行比较,本发明专利比较的指标是传播范围和时间效率。
1.2主要贡献
(1)构造了NAV(Node Approximate Influence Value)函数和DMAP(DegreeDiscount and Maximum Activation Probability)混合函数。
(2)提出了一种新的社交网络节点激活方法。
(3)根据度折扣算法本身优势,再结合优化后的影响力值大的节点,提出了一种基于局部节点影响优化和度折扣相结合的社交网络节点影响力最大化算法。
(4)在Wiki-Vote,GrQc,NetHEPT,NetPHY四个真实数据集上将提出的影响力最大化算法和PMIA算法、Greedy算法、SingleDiscount算法和Random算法进行了对比分析实验。
2相关工作
近年来,度折扣启发式算法在影响力最大化问题领域被广泛使用来解决许多问题。每一次选择候选种子集中度最大的顶点作为种子,其影响扩散比其他启发式要大,近年来还提出了许多影响力最大化算法例如PMIA,IMM,改进的贪心算法等。当前研究影响力最大化领域内常用的算法有DegreeDiscount算法,该算法在扩散程度和时间复杂度方面具有良好的表现。度折扣算法的基本思想是:若某个节点的邻居节点是种子节点时,则此节点的度在计算时应该打折扣,接下来的每一次迭代过程,度的值会根据种子节点而发生变化。
Chen等人对原有的贪心算法进行了改进,并且提出了改进影响扩散的新的度折扣启发式算法,研究结果表明在保持影响扩散保证的前提下,减少了现有的最优贪婪算法的运行时间,并提出了新的启发式算法,在比所有贪婪算法运行速度快6个数量级以上的情况下,显著改善了影响扩散。
李国良等观察到已有的研究工作多数只是针对单一网络,这使得基于病毒式营销的应用不能满足推广的广度需求,于是提出了在多社交网络上研究影响力最大化问题,通过使用影响增益上界近似准确的增益来加速种子选取过程等,最后通过真实数据集上的实验表明文中的方法在性能和影响范围上都优于已有的算法。
李敏佳等结合结构洞和度折扣的优势,设计了SHDD算法;陈书波等提出影响最大化问题与位置也有密不可分的关系,扩散与节点位置有关系。Qiu等提出影响力最大化问题应该使节点应该使影响的节点预期数量最大化,提出了二阶段选择算法,还提出了一种折扣度下降的技术和延迟向前的技术在计算效率和结果准确性之间做出适当的折衷,于是提出了基于局部影响的全局选择算法,可以减少大量的运行时间。Chen等利用二阶度信息,度量复杂网络中最重要的节点;周漩等则提出重要度评价矩阵识别网络中的最重要节点;Kitsak等于2010年首次提出了节点重要性依赖于其在整个网络中的位置的思想,并且利用k-核分解获得了节点重要性排序指标,该指标时间复杂度可以适用于大型网络。曹玖新等提出一种基于k-核的启发式算法-CCA(Core Covering Algorithm);Wang等提出通过社交网络中有效的信息扩散来最大化活动,开发了亚模的上限和下限,并设计一种基于轮询的随机算法。Rico等考虑固定数量的初始种子来最大化社交网络中的影响力传播问题,利用社区结构来寻找高质量种子集。Pei等提出在社会网络中,一般系统的集体动力可以由一小部分有影响力的单位通过全局级联过程来塑造,表现为动力学中的突然有一阶跃迁。提出了具有一阶过渡的级联过程中的有效集体影响力最大化。
在线社交网络通常被表示成一个图,用G(V,E,P)来表示,其中V为节点集合,E通常表示边集,P用来表示所有边上影响的概率。网络G-networkx上的每个节点初始时刻有两种状态,即激活和未激活状态。传统社交网络旨在寻找最少的种子节点使得最多的节点被影响,只有处于激活状态的节点以及对它指向的节点才具有影响力,未激活的节点对它指向的节点没有影响力,则要通过邻居节点或者通过外力来激活。当一个节点被其它节点成功影响时,称此节点被激活;当一个节点被激活的邻居节点越来越多,该节点被激活的概率则越来越大,直到某一时刻该节点被激活,被激活的节点又可以影响它指向的节点,每个节点只能由未激活状态转化为激活状态,不能反向转化。正是由于这种邻居节点的局部影响对未激活的节点具有影响力,并且邻居节点越多,节点的激活概率越来越大,本发明专利选择对局部节点进行优化。
本发明专利采用的局部节点优化的方法名为“相似节点影响值”NAV,用于判断和处理邻居相似影响力值节点的影响,主要是针对计算相似节点影响力值;再通过相似性方法过滤删除影响力值重合的节点;还有一个方法名为“度折扣与最大激活概率”DMAP的函数,用于计算局部节点最大激活概率,再从第二阶段扩散到全局影响。通过利用这三个函数,提出的混合算法可以对节点候选节点集进行有效过滤,从而更好筛选候选节点集,使得最终种子节点选择最优化,同时获得准确的结果。
3传统影响力最大化问题的传播方法
在线社交网络现有的传播扩散模型主要为独立级联模型(Independent Cascade,IC模型),线性阈值模型(Linear Threshold,LT模型),传染病模型,权重级联模型等。本发明专利主要使用IC模型来实现影响力最大化。
3.1独立级联模型
本发明专利主要利用独立级联模型来描述节点之间的信息传播过程,它是一个概率模型,该模型的传播方式如下:在t=0时刻,选择已经被激活的节点u∈A对邻居节点v进行影响成功的概率为p(u,v),如果v被激活成功,则将两个节点连接起来,v转变为已激活状态,否则v将不发生变化。该激活传播过程会一直迭代,直到网络中不再出现有影响力的节点时,传播过程结束。如图1描述了IC模型下的信息传播,其中图1中(a)表示t=0时刻;图1中(b)表示t≥1时刻,p=p(u,v);图1中(c)表示继续传播一次;图1中(d)表示n次传播后,传播至tn时刻;
3.2线性阈值模型
在线性阈值模型下,每个节点v包含从间隔[0,1]中随机均匀选择的激活阈值θv。此外,线性阈值模型规定所有进入边缘权重的总和最多为1,其它外来进入的节点如果加入的话对它的影响是累加的,当节点影响值超过设定的阈值时,即该节点被激活。
在线社交网络中的节点一般都具有激活和待激活两种状态,每个节点由系统随机分配一个阈值θ,且θ∈[0,1]。用θv表示点v的激活阈值,用fuv表示节点u对其邻居节点v的影响力,用Cn(v)表示所有处于激活状态的节点v的邻居节点的集合。当且仅当处于待激活状态的节点v接收到的来自其所有处于激活状态的邻居节点所传递的影响力值的总和超过了节点v自身所对应的阈值θv时,即v被激活。因此,节点v从待激活状态变为激活状态的条件可以用式(1)表示为:
其中,fuv表示节点u对其邻居节点v的影响力;
θv表示节点v自身所对应的阈值;
u表示节点u;
v表示节点u的邻居节点;
Cn(v)表示所有处于激活状态的节点v的邻居节点的集合。
传统方法中对影响力fuv的计算如式(2)所示:
其中,Lin(v)表示节点v的入度;
fuv表示节点u对其邻居节点v的影响力;
线性阈值模型的传播过程如图2所示,其中图2中(a)表示θ=0,图2中(b)表示θ=1,图2中(c)表示θ≥θv。
3.3权重级联模型
权重级联模型是独立级联模型的一个特例,他和独立级联模型不同之处在于,权重级联模型中各个边上的节点激活概率puv=weightuv/din(v),
其中,weightuv表示节点u对节点v的边上的权重;
din(v)表示节点v的入度;
puv表示节点u到v的激活概率。
3.4贪心算法
贪心算法的基本思路是从问题的某一个初始解出发,分成局部问题一步一步地进行解决,根据某个优化度量标准,每一步都要确保能获得局部最优解,并且每一步只考虑一个数据,所选取的数据应该在满足局部优化的条件。应用到影响力最大化问题中时,首先假定种子集|S|=1,在所有的节点中选出一个在IC模型下影响力扩散节点数量最多的节点,加入种子集S,此时已经在IC模型上运行了n次;再在剩余的节点中选择一个加入种子集S后,影响力扩散能力最好的节点加入S;重复第二个步骤,直到在种子集S中能够扩散到所有节点。
3.5单次折扣算法
单次折扣算法仅仅是一种简单的度折扣算法,主要思想为新选择的种子节点的每个邻居将其度数折扣一个,每一个节点有且仅有一次机会去激活邻居节点,而每当一个节点被选做种子节点时,种子节点会自发地去激活邻居节点,无论邻居节点是否被激活,该单次机会都会被使用,相当于连接种子节点与其邻居节点的边已经被使用掉。应用到影响力最大化问题中,首先考虑节点u和节点v是否已经产生连接,若u和v已经产生连接的话,则必须对节点v的出度进行打折。
3.6PMIA算法
PMIA算法提出节点之间的影响力只在最大影响路径上传播,不会通过前缀s
i中的任何种子节点,定义路径的传播概率为
节点u通过路径P激活节点v的概率是pp(P)。为了逼近社交网络中的实际预期影响,该算法提出了使用最大影响路径来估计一个节点到另一个节点的影响。每当选择新种子时,将循环迭代更新增量影响。假设在迭代中选择u作为新种子。MIA模型中u的影响仅限于MIOA(u,θ)中的节点。因此,当且仅当w在MIIA(v,θ)中时,当且仅当w在某些v∈MIOA(u,θ)中时,需要更新某些w的增量影响扩散IncInf(w)。
4提出的社交网络节点影响力最大化算法
4.1NAV函数和DMAP优化函数
本节详细说明NAV函数功能和DMAP函数功能。具体地,NAV函数利用两个不同阶段区域的节点区域判断相似节点影响力值,用于计算源节点选择过程中每个节点的局部影响力的值。通过相似性函数过滤掉影响力值比较重合的节点,DMAP优化函数将度折扣思想与局部节点激活最大概率进行结合,从而用于计算最大激活概率以及节点集的影响,再将筛选后的节点用于全局扩散。
NAV函数功能
根据二阶段过滤算法,本发明专利提出了一种新的结合二阶段过滤算法来筛选局部相似节点影响值的方法,称为NAV。所提出的方法利用两个不同阶段的区域内判断两个或多个相似的节点影响力值来估计节点的局部影响,具体来说,根据节点不同影响力值的大小从而进行筛选,NAV函数利用两个区域内的影响来估计两个或多个相似节点的局部影响,所提出的算法利用此功能根据过滤筛选每一个区域中影响力值最大的节点作为源节点。
其中,Nu表示节点的第一阶段部分区域的邻居节点u;
v表示节点v;
V表示节点集;v属于节点集V;
E表示节点边集。
此外,Infuv表示节点u激活节点v的概率,pvs表示节点v激活节点s的概率。下面是函数的定义。
定义1(NAV):节点的局部影响可通过式(3)估算:
其中,NAV(u→v)表示节点的局部影响力值;
u表示节点u;
v表示节点v;
Nv表示节点v在节点集之中;
Infuv表示节点u激活节点v的概率;
s表示节点s;
Nv\{u,v}表示在第二阶段影响力值区域的邻居节点v属于节点集N;
pvs表示节点v激活节点s的概率;
二阶段选择区域内节点筛选过程图3所示,其中图3中(a)表示源节点中心,图3中(b)表示标记、筛选节点,图3中(c)表示删除影响力值相似的节点。
从图3中可以看出,当处在第一阶段的源节点通过NAV函数被找到且被激活时,它开始向不同的方向进行传播,受到传播概率的影响,通过NAV函数进行局部节点间影响力值的计算,判断影响力值;处在第二阶段的节点受到影响,进行筛选、删除节点,再进行第二次传播。
DMAP函数功能
本发明专利还提出了一个新的混合函数,称为DMAP(Degree Discount andMaximum Activation Probability),如果直接将度折扣算法应用于影响力最大化问题中,它的传播范围通常有限并且性能不稳定,受到度折扣算法思想的启发,将度折扣算法思想与局部节点激活最大概率进行结合,从而用于计算最大激活概率以及节点集的影响,再将筛选后的节点用于全局扩散。
定义2(DMAP):受种子集S影响的节点的最终全局影响力为式(4):
其中,Influence(SCu)表示节点u在种子集所受的全局影响力值;
u表示节点u;
SC表示候选种子集;
v表示节点v;
SN表示表示种子源节点集;
puv表示节点u激活节点v的概率;
NAV(v)表示上个部分节点的局部影响力;
n表示节点n;
S\{u}表示邻居节点u在第一阶段的种子集;
Inf maxu∈V表示节点u在第一阶段的最大影响力值;
Inf表示整个阶段中节点集所受的影响力的值。
节点过滤的相似性函数
由于二阶段节点使用NAV函数计算出局部节点影响力值,容易使得影响力值大小范围相同的重合,从而使得局部网络在传播范围上有限,本发明专利利用相似性方法来过滤影响力值重合的大部分节点,定义节点u在候选种子集SC上的相似性方法如下:
其中,SCuv表示节点u在候选种子集SC上的相似性;
Inf maxu∈V表示节点u在第一阶段的最大影响力值;
Inf表示整个阶段中节点集所受的影响力的值;
Nu表示节点的第一阶段部分区域的邻居节点u;
∩表示交集;
N(S)表示表示种子集的数量;
Nuv表示节点u对节点v,在第二阶段被指向的数量。
4.2基于候选种子集的优化策略
本小节详细介绍候选种子集的改进二阶段过滤策略。具体来说,该策略分为四个步骤:源节点的选择,相似性方法过滤候选节点,局部节点最大激活概率,候选节点的全局扩散。
4.2.1源节点选择的改进
本发明专利提出了一种基于选择源节点的改进的二阶段过滤策略,其中,源节点的选择是二阶段过滤策略的第一步。通过该过程,所提出的算法将在每个二维选择区域中选择一个最具影响力的节点(称为源节点)来表示此二阶段选择区域。该算法进行了源节点的选择过程,为候选节点的过滤做准备。而且,这些源节点也将被视为测量候选节点影响的目标节点。
二阶段过滤策略的步骤如下:
Step1:首先定义图的V,k,p,并进行原始节点集的初始化;
Step2:循环使得节点集与NAV函数进行计算每个具体节点影响力的值,从而计算出社交网络中每个节点的局部影响;
Step3:选择一个两个或多个影响力值相似的节点,并且每次选择都会选择出拥有最大影响力值的NAV;
Step4:循环选择直到节点集到达range(k);
Step5:输出源节点集。
4.2.2候选节点的过滤
候选节点的过滤过程是从源节点的原始节点集中选择节点。因此,该算法首先需要找出所有源节点的原始节点,由于第一步已经每次都选择出局部影响力值最大的节点了,接下来只需要对影响力值相似的节点进行过滤。本发明专利将候选节点的过滤过程分为两个步骤:局部相似节点影响力的计算和候选节点的筛选。节点过滤和激活过程如图4所示。
在图4中,处在第二阶段中心的红色节点即为从原始节点集中选出的具有扩散性的源节点,通过NAV算法首先计算出候选节点的影响力值,进行判断和比较,然后再对处在第一阶段的节点根据影响力值这个依据进行过滤、筛选;删除影响力值相似的节点即可避免大量的蒙特卡洛计算,为候选种子集做准备。同时在第二阶段找到最具有节点影响力的度中心节点,通过DMAP函数进行最大激活概率的计算,最后进行全局范围的传播。
4.2.3局部节点最大激活概率
在提出的DLIM算法中,对于局部影响力值相似的节点二阶段过滤策略起着至关重要的作用。因此,选择源节点,也就是第一阶段影响力值区域的节点,以及结合度折扣算法和最大影响力概率的计算对于该算法非常重要。在此过程中,该算法首先找出到达随机源节点的所有节点。同时,需要计算源节点和最具有影响力的几个节点之间的最大激活概率。节点激活算法1中对此过程进行了详细说明。
由算法1可知,同时添加一个激活节点值来添加新的节点,同时先判断节点的影响力值是否小于最大激活值,如果小于则进行节点v和候选种子集中的节点数k进行叠加,最后根据计算最大激活概率,获得局部相似节点影响力值,从而对节点进行激活,计算出节点的权重weight,累加它们的值赋予给scores。
4.3提出的节点影响力最大化DLIM算法
本节详细介绍了混合Degree Discount算法与局部节点优化算法的过程。分两个步骤来实现,首先在第一阶段区域候选种子集中挑选k个种子节点,与Degree Discount算法进行结合,判断影响力值是否大于最大激活值max Actuv。其具体算法过程如下:
在提出的DLIM算法中,S表示节点的集合,p表示传播概率,设置为0.01,k为候选节点集中所需的节点数,G-networkx表示图形对象。如算法2所示,提出的算法首先完成该算法的初始化。然后,该算法计算每个节点的影响力值并将节点放入d[u]中。接下来进行每个局部节点的影响力计算。在第二阶段的节点影响力计算中,依然判断每个节点的权重值。
5实验结果与分析
5.1实验数据集与主要参数设置
本实验使用4个真实的数据集,Wiki-Vote网络、NetHEPT网络、NetPHY网络和GrQc网络,如表1所示。
表1实验网络以及运行时间的详细信息
数据集 |
节点 |
边 |
运行时间 |
Wiki-Vote |
7115 |
103689 |
12254.62 |
NetHEPT |
5233 |
58891 |
24533.64 |
NetPHY |
7154 |
231584 |
35647.32 |
GrQc |
5242 |
28980 |
10017.74 |
Wiki-Vote是维基百科的投票网络,NetHEPT、NetPHY和GrQc都是文章合作网络,都来自高能物理论文引文网络,可以从Stanford大学的SNAP项目中下载。
5.2传播影响范围对比分析
5.2.1传统算法说明
本实验基于IC模型,实验选用四组真实的数据集,IC模型下节点间的影响概率为p=0.01。为了得到准确的结果,实验中共使用5种富有代表性的算法进行对比实验,算法的时间复杂度和空间复杂度如表2所示。
表2算法时间复杂度和空间复杂度对比
数据集 |
时间复杂度 |
空间复杂度 |
DLIM |
O(log n+r)*n |
O(n+m) |
PMIA |
O(n+kn log(n)) |
O(n+m) |
Greedy |
O(knRm) |
O(n+m) |
SingleDiscount |
O(k*log(n)+m) |
O(n+m) |
Random |
O(k) |
O(n+m) |
DegreeDiscount度折扣算法首先由Chen等人提出,其结果比贪婪算法更好,它的运行速度要快几个数量级,针对“独立级联”模型进行了微调。运行时间为O(k*log(n)+m),其中k初始目标数,n-顶点数,m-边数。
Greedy贪婪算法一种迭代方法,它选择节点的每一步都会与已经选择的节点一起带来最多的传播。由于传播是每个节点的随机过程,因此对RanCas进行R次迭代以计算到达的平均节点数,运行时间为O(knRm)。
SingleDiscount单次折扣方法是一种简单的度数折扣启发法,其中新选择的种子的每个邻居节点将其度数折扣一次,这可以应用于所有影响级联模型。该启发式算法与度数折扣启发式算法具有相同的运行时间。
Random随机方法从结点集合中随机选取k个种子结点,通常选用为对比方法。
5.2.2影响力分析
将从影响力范围和运行时间作为衡量算法好坏的标准,在4个真实的数据集上进行测试,种子数量范围从1~50,在4种方法选取的种子节点数越来越增大时,影响力传播范围也在逐渐增大。提出的DLIM算法在IC模型下的影响范围如图5(a)、图5(b)、图5(c)、图5(d)可知,在网络传播种子集合k较小时影响范围并不难看出太大的优势,随着种子节点集的增加,可以看出改进后的算法具有稳定性,所以优化后的局部节点发挥着巨大的作用。并且随着k值的增大,DLIM算法综合结合优化后的传播优势,其影响范围得到良好的表现。由图5可知,随机的方法和PMIA算法的效果并不是很理想,他们在可视化表现上弱于改进后的算法。主要是因为它选择种子结点只是随机地选择k个种子结点,并不依赖于网络的拓扑结构和结点间的影响力。当种子节点数较少时,改进的度折扣算法和贪心算法还有单次折扣算法表现相当,这些策略一定程度上能反应结点的影响力。
在传播范围对比图中,X轴代表种子节点数,Y轴代表对应的种子节点数下传播的范围,在独立级联模型上,可以看出本发明专利所提出的DLIM算法取得了很好的效果,总是取得最好的传播范围。在图5(a)中,影响力传播范围从0~70,种子节点数量从0~50,在图5(a)中SingleDiscount算法也取得比较好的传播效果,与本发明专利提出的算法影响力效果相当,从传播起点到种子节点数从0~5时,开始可以看出本发明专利提出的DLIM算法和其余4个算法效果相当;而当种子节点数量到10之后提出的DLIM算法优势明显突出,比Greedy算法传播范围高出3.2%,比Random算法传播范围高出6.7%;在图5(b)中可以看出Y轴传播范围从0~100,种子节点数从0~50,提出的DLIM算法比SingleDiscount算法传播范围高出2.6%,在种子节点数大于20时优势更加明显,比Greedy算法高出10.9%,比PMIA算法高出17.9%;在图5(c)中,Y轴影响力传播范围从0~140,可以看出提出的DLIM算法比SingleDiscount算法传播范围多1.2%,且在节点数从0~4的时候,传播范围相近,在种子节点数大于30之后提出的DLIM算法优势明显,比贪心算法传播范围多10.4%,比PMIA算法传播范围多22.8%;比Random算法传播范围多23%;在图5(d)中,可以看出从种子节点数0~10之间,提出的DLIM算法和SingleDiscount算法影响力传播范围相当,在种子节点数大于30之后优势明显;提出的DLIM算法在种子节点数从0~6的传播范围和Greedy算法相当;DLIM算法比Greedy算法传播范围高出5.6%,比PMIA算法传播范围高出17.7%,比Random算法传播范围高出22.3%。
总之,在传播范围对比实验分析表明,提出的DLIM算法在IC模型上能取得较好的传播范围,并且在数据集GrQc和NetHEPT上表现力最好,充分证明了综合传统影响力最大化算法和优化节点的优势是可行有效的。
5.3运行时间对比
提出的DLIM和其余四种对比分析算法在4个不同数据集上的运行时间时间如图6(a),图6(b),图6(c),图6(d)所示。X轴代表种子节点数,Y轴代表运行时间。可以看出图6(a)中改进后的DLIM运行时间和SingleDiscount算法运行时间较为均衡;图6(b)中提出的DLIM算法运行时间随着种子节点数的增加呈波折趋势;图6(c)中提出的DLIM算法运行时间大小随着种子节点的增加和SingleDiscount算法呈下降趋势;图6(d)中提出的DLIM算法运行时间较少。
图6显示了提出的DLIM算法和其余4种不同算法在4个数据集和IC传播模型下,不同的运行时间。可以看出本发明专利所提出的DLIM算法在图6(a)中和SingleDiscount算法的运行时间相当,从图6(a)中可以看出Greedy算法运行时间耗费最多,其次是PMIA算法;从图6(b)中可以看出在种子节点数从0~4时,提出的DLIM算法运行时间最少,当种子节点数大于10~25之间时,DLIM算法略高于SingleDiscount算法,这可能是因为种子节点内存空间的原因导致;从图6(b)中可以看出提出的DLIM算法和传统的SingleDiscount算法表现能力相当,在种子节点数从10~30时运行时间比SingleDiscount高6个数量级,Greedy算法运行时间耗费最多;图6(c)中可以看出种子节点数刚开始时SingleDiscount算法运行时间高于提出的DLIM算法,种子节点数从0~50的增长中可以看出运行时间在提出的DLIM算法运行时间呈波动状态,但在种子节点数邻近50时运行时间最快。从图6(d)中可以看出当种子节点在22~33之间运行时间比SingleDiscount少,在种子节点数为5~17时运行时间相当;但在最后运行时间趋于稳定且运行时间最少。通过综合对比分析得到以下结论,DLIM算法无论是在传播范围性能或者时间性能上都比传统度折扣方法表现能力更好,在图6(c)中提出的DLIM算法运行时间最长,结合前期局部节点的优化性能和度折扣算法起到了良好的效果,实验结果表现性能良好。
通过对比影响力传播范围和算法运行时间两个因素,在4个数据集上,以及IC模型上将本发明专利提出的DLIM算法与Greedy算法、PMIA算法、SingleDiscount算法和Random算法进行对比实验,结果表明所提出的DLIM算法在传播范围上能取得良好的效果,比传统的DegreeDiscount算法提高了2.7%;但是运行时间效率上与其他算法接近,总之,结合了传统DegreeDiscount算法能够很好地将两个算法的优势进行结合,并且能应用到大规模网络上。
6结论
本发明专利主要提出一种新的基于局部优化节点和度折扣相结合的DLIM算法,通过针对局部节点影响力值的计算、判断和筛选,使用多种函数选择种子集的优化性能,候选节点集进行筛选和过滤。针对该算法的基本特性,本发明专利通过在四个真实数据集上和IC模型上进行种子节点的选取和实验,使得影响扩散能力增强,并且避免了大量不必要的计算。实验证明该算法的性能比传统度折扣算法的性能更好,并且时间效率比原始算法好四个数量级。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。