一种基于社区结构的社交网络影响力最大化方法与流程

文档序号:15350152发布日期:2018-09-04 23:14阅读:744来源:国知局

本发明涉及社交网络领域,尤其是一种基于社区结构的社交网络影响力最大化方法。



背景技术:

近年来,随着社交网络的兴起,越来越多的社交平台如facebook,twitter和google+等引起了人们的广泛关注。这些平台作为社交网络的载体使得各种信息在社交网络上进行传播。如何使得这些信息能够通过这些社交平台最大化地向外传播,让更多的用户去接受这些信息,被称为“影响力最大化问题”。社交网络的影响力最大化问题是社交网络研究的一个热点问题,并在市场营销,疾病传播和谣言控制等领域具有重大的应用价值。

社交网络影响力最大化问题是如何选取top-k个种子节点进行传播,从而使最终的传播范围最大。该问题被证明是一个np难问题,因此,目前主要有两大类解决方法,一类是影响范围较优的贪心算法,另一类是效率较高的启发式算法。由于贪心算法需要花费较长的运行时间,而启发式算法的结果又不稳定,因此结合启发式和贪心算法产生的混合算法是当下解决影响力最大化问题的一种比较好的方法,该类算法主要是在第一阶段应用启发式算法,第二阶段应用贪心算法。所有的这些影响力最大化算法一般都是基于两种影响力传播模型,即线性阈值模型(lt)和独立级联模型(ic),其中独立级联模型又是一种不太稳定的模型,需要大量的模拟,线性阈值模型有着独立级联模型不可比拟的优势,其“累计特性”使得节点在后续的激活过程中可以激活大量的节点,具体规则是:每个节点开始被假设为活跃或者非活跃节点,并且每一个非活跃节点被分配了一个阈值来表示该节点能够被影响的难易程度,只有该节点所有的活跃邻居影响力之和大于等于该节点阈值时,该节点就会被激活。这里的每一个活跃节点都可以多次参与激活过程的,因此,当开始一个非活跃节点未被激活时,随着其邻居节点的影响力在不断累积,就增加了其被激活的可能性。

一般来说,验证影响力最大化问题主要有两个指标,一个是影响范围,一个是执行效率。然而,当前大多数工作并没有考虑到网络实际的结构问题,每个网络是具有社区结构特性的,即社区内部联系紧密,社区之间联系稀疏。通过对结构的分析,可以进一步提高影响范围和执行效率,即社区内部的核心节点可以使信息尽快在社区内部进行传播,而社区之间的边界节点又可以扩大信息传播的范围,通过划分社区,来识别这两类节点可以提高执行效率和准确率。因此,针对影响力最大化方面网络规模较大的问题,使用louvain算法来划分社区,该算法是一种快速而且准确率较高的算法,可应用到大规模网络。



技术实现要素:

本发明要解决的技术问题是:针对现有影响力最大化算法中技术的不足,提出一种基于社区结构社交网络影响力最大化方法,通过分析社区结构在实际信息传播中的作用,在保证算法效率的前提下进一步提高种子节点的影响范围。

本发明的技术方案为:

一种基于社区结构的社交网络影响力最大化方法,所述方法包括下列步骤:

(1)构建社交网络图:g=(v,e),其中g代表社交网络,v代表节点集合,e代表网络的边集合;

(2)划分社区,生成候选节点集:首先采用blondel等人提出的louvain算法对输入的网络g进行社区划分,产生m个社区,即c=(c1,c2,...cm),其次找出每个社区的边界节点集sboundary以及核心节点集score取并集,形成候选节点集cs,其中score是根据度中心性选择每个社区数目的10%的度较大的节点作为核心节点集;

(3)启发式地选择节点:启发式地从步骤(2)形成的候选节点集中选择个潜在影响力最大的节点加入种子节点集s,同时利用线性阈值模型执行种子节点集s的激活过程,产生初始的活跃节点集a,其中k代表目标节点集合s的数目,c代表启发因子;

(4)执行贪心算法:利用贪心算法继续从步骤(2)形成的候选节点集中选择个边际收益最大的节点加入种子集s,同时利用线性阈值模型进行激活,产生新的活跃节点加入集合a。

进一步的,步骤(2)中louvain算法的具体操作步骤如下:

(a)合并社区:将网络中的每一个节点当作一个社区,然后基于模块度增益最大化标准决定哪些邻居社区进行合并,重复进行此过程,直到模块度增益不再增长,模块度增益的定义如下:

其中,∑in表示在社团c中的所有边权值之和,∑tot表示所有连接到社团c的边的权值之和,ki,in表示节点i到社团c的所有边的权值之和,m表示网络的总边数;

(b)构建新的网络:将步骤(a)得到的新的社区当作一个新节点,构建新的网络重复执行步骤(a);

(c)这两个阶段重复进行,直到模块度增益不再变化;

进一步的,所述步骤(3)中选择潜在影响力最大的节点加入种子节点集,则每个节点的潜在影响力的计算过程如下:

(a)对于图g中的任意一个节点v,首先判断每个节点的社区属性,即核心节点或边界节点,并基于社区结构分别计算每个节点的社区影响力;

(b)对于核心节点,综合节点的度以及节点所在的社区数来评估其社区影响力,计算公式如下:

ci(v)=cd(v)+cs(v)/2

其中,cd(v)代表社区的度,cs(v)代表节点所在的社区规模;

(c)对于边界节点,综合节点的度,节点直接相连的社区数以及该节点的邻居社区的社区规模均值来评估其社区影响力,计算公式如下:

ci(v)=cd(v)+cn(v)+avgns(v)/3

其中,cd(v)代表社区的度,cn(v)代表节点直接相连的社区数,avgns(v)代表节点的邻居社区的社区规模均值,计算公式为:

其中,|ci(w)|代表节点v的邻居w所在社区的规模;

(d)为了使每个指标对社区影响力的贡献一致,使用归一化标准来优化,综合步骤(b)和(c),网络中每一个节点v的社区影响力定义如下:

其中,每一个指标都是归一化以后的结果;

(e)除了步骤(d)得到的社区影响力,每一个节点v对邻居节点w都有一个直接影响力权重bvw,综合两者,网络中每一个节点v的潜在影响力计算如下:

其中,w∈neighbor(v),表示节点w是节点v的非活跃邻居。

进一步的,所述步骤(4)中贪心算法的具体操作步骤如下:

(a)初始化:对种子节点集s进行初始化;

(b)计算每个节点v的边际收益:其表示为通过加入一个节点v到种子集s中所能带来的最终影响力增量,则计算公式如下:

σ(s+v)-σ(s)

其中,σ(g)表示影响力函数;

(c)选择种子节点:选择影响力增益最大的节点加入种子集s,并对每个节点的影响力进行更新;

(d)重复进行步骤(c),直到选择满足目标的k个节点。

本发明的有益效果是:所述的一种基于社区结构的社交网络影响力最大化方法,通过网络的社区结构特性,来识别社区的核心节点和边界节点,并形成候选节点集,其次利用线性阈值的累积特性综合每个节点的社区影响力和自身的影响力权重来启发式地选择具有潜在影响力最大的种子节点,最后应用贪心算法来选择种子节点。通过此种方法,进一步提高了挖掘初始种子节点的准确率和运行效率,有效地解决了社交网络影响力最大化问题。

附图说明

下面结合附图和实施例对本发明进一步说明。

图1是本发明所述的一种基于社区结构的社交网络影响力最大化方法的流程图;

图2是本发明启发因子c在种子节点规模为50时不同启发因子影响范围效果图;

图3是本发明启发因子c在种子节点规模为50时不同启发因子运行时间效果图;

图4是本发明与现有算法在hepth社交网络的影响范围效果对比图;

图5是本发明与现有算法在brightkite社交网络的影响范围效果对比图;

图6是本发明与现有算法在epinions社交网络的影响范围效果对比图;

图7是本发明与现有算法在amazon社交网络的影响范围效果对比图;

图8是本发明与现有算法在四个社交网络上运行时间对比图;

具体实施方式

现在结合附图对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。

如图1所示是本发明一种基于社区结构的社交网络影响力最大化方法,其具体步骤如下:

步骤1,构建社交网络图:g=(v,e),

其中g代表社交网络,v代表节点集合,e代表网络的边集合。

步骤2,划分社区,生成候选节点集。

首先采用业界提出的louvain算法对输入的网络g进行社区划分,产生m个社区,即c=(c1,c2,...cm),其次找出每个社区的边界节点集sboundary以及核心节点集score取并集,形成候选节点集cs,其中score是根据度中心性选择每个社区数目的10%的度较大的节点作为核心节点集。该步骤中所述的louvain算法的具体步骤如下:

(2a)合并社区:将网络中的每一个节点当作一个社区,然后基于模块度增益最大化标准决定哪些邻居社区进行合并,重复进行此过程,直到模块度增益不再增长,模块度增益的定义如下:

其中,∑in表示在社团c中的所有边权值之和,∑tot表示所有连接到社团c的边的权值之和,ki,in表示节点i到社团c的所有边的权值之和,m表示网络的总边数。

(2b)构建新的网络:将步骤(2a)得到的新的社区当作一个新节点,构建新的网络重复执行步骤(2a)。

(2c)这两个阶段重复进行,直到模块度增益不再变化。

步骤3,启发式地选择节点。

启发式地从步骤2形成的候选节点集中选择个潜在影响力最大的节点加入种子节点集s,同时利用线性阈值模型执行种子节点集s的激活过程,产生初始的活跃节点集a,其中k代表目标节点集合s的数目,c代表启发因子。该步骤中所述的潜在影响力的计算过程如下:

(3a)对于图g中的任意一个节点v,首先判断每个节点的社区属性,即核心节点或边界节点,并基于社区结构分别计算每个节点的社区影响力。

(3b)对于核心节点,综合节点的度以及节点所在的社区数来评估其社区影响力,计算公式如下:

ci(v)=cd(v)+cs(v)/2

其中,cd(v)代表社区的度,cs(v)代表节点所在的社区规模。

(3c)对于边界节点,综合节点的度,节点直接相连的社区数以及该节点的邻居社区的社区规模均值来评估其社区影响力,计算公式如下:

ci(v)=cd(v)+cn(v)+avgns(v)/3

其中,cd(v)代表社区的度,cn(v)代表节点直接相连的社区数,avgns(v)代表节点的邻居社区的社区规模均值,计算公式为:

其中,|ci(w)|代表节点v的邻居w所在社区的规模。

(3d)为了使每个指标对社区影响力的贡献一致,使用归一化标准来优化,综合步骤(3b)和(3c),网络中每一个节点v的社区影响力定义如下:

其中,每一个指标是归一化以后的结果。

(3e)除了步骤(3d)得到的社区影响力,每一个节点v对邻居节点w都有一个直接影响力权重bvw,综合两者,网络中每一个节点v的潜在影响力计算如下:

其中,w∈neighbor(v),表示节点w是节点v的非活跃邻居。

步骤4,执行贪心算法。

利用贪心算法继续从步骤2形成的候选节点集中选择个边际收益最大的节点加入种子集s,同时利用线性阈值模型进行激活,产生新的活跃节点加入集合a。该步骤中所述的贪心算法的具体步骤如下:

(4a)初始化:对种子节点集s进行初始化。

(4b)计算每个节点v的边际收益:其表示为通过加入一个节点v到种子集s中所能带来的最终影响力增量,则计算公式如下:

σ(s+v)-σ(s)

其中,σ(g)表示影响力函数。

(c)选择种子节点:选择影响力增益最大的节点加入种子集s,并对每个节点的影响力进行更新。

(4d)重复进行步骤(4c),直到选择满足目标的k个节点。

实施例:

一、数据集及实验设置

在该实施例中,使用来自snap的四个不同规模的公开的数据集hepth数据集,brightkite数据集,epinions数据集和amazon数据集。hepth数据集来自于高能物理理论合作者网络,是一个无向图。brightkite数据集是一个基于位置的社交网络,是一个无向图。epinions数据集来自于信任网络,是通过在epinions网站的成员选择部分信任来评论形成的链接关系,因此是一个有向图。amazon数据集来自于亚马逊购买网站,如果网站中的两个产品经常被共同购买,就会有一个链接关系,因此也是有一个有向图。这四个数据集的静态结构特征统计如表1所示。

表1:实验数据静态结构特征统计

本发明所使用的线性阈值模型其阈值经常被分配一个在[0,1]之间的随机数,这里为了使结果更明确,本发明使用kempe等提出的经典阈值θ=0.5,而线性阈值模型的影响力权重经常被设置了为bvw=1/cd(v),这表示节点v对每个邻居的贡献是一样的,但这并不符合现实世界的情况,因此我们设置影响力权重为其中cd(v)代表节点v的度数,n(v)代表节点v的邻居集合。

以下实施例中所有的仿真实验都是使用混合式算法hpg、贪婪方法greedy、网页排序方法pagerank、最大度方法degree以及随机化方法random与本发明phg(partition-heuristic-greedy)做比较。

二、划分社区表现

为了较准确的识别关键节点,划分社区的准确率尤为重要,并且对于大规模的社交网络,运行时间也是一个必要的考虑因素,综合种种考虑,本发明选择了louvain算法来划分社区,该算法是一个可应用到大规模社交网络并且准确率较高的一个算法,其划分结果如表2所示。

表2:社区发现结果

通过对表2分析,有两个参数是表征社区划分优劣的,模块度q和参数u。模块度q是比较现有网络与基准网络在相同社区划分下的连接密度差来衡量网络划分的优劣,模块度的值越高,代表网络划分的越好。表2中四个网络的模块度值的范围在0.76-0.91之间,说明louvain算法对于划分社区还是有较高的准确率的。而参数u=(smin/smax)代表网络中的每一个节点与其邻居不在同一社区的平均概率,该参数直接决定了社区结构的强弱,该参数越小代表社区结构越强,表2中四个数据集的该参数都低于0.01,说明这四个网络划分的社区都是强社区结构,更有利于识别出社区中的关键节点。综合表2以及相关分析,可知louvain算法是应用到大规模社交网络一个比较合适的算法。

三、启发因子c的选择

通过考虑影响力传播与运行时间的综合效果,来为每一个数据集选择一个合适的启发因子c,以使本发明可以达到最佳效果。图2和图3分别表示不同启发因子在种子节点规模为50时影响范围和运行时间变化图,由图2可知,随着启发因子的增大,影响范围在大多数数据集上是逐渐下降的,而epinions数据集上的影响范围变化不大。同样的,由图3可知,随着启发因子的增大,运行时间的效率是在逐步提高的。这主要是由于启发式算法的低效果和高效率以及贪心算法的高效果和低效率引起的。因此,为了获得比较合适的运行时间以及比较高的影响范围,分别设置amazon数据集和brightkite数据集的启发因子为0.4和0.4。而epinions数据集由于在影响范围上差距不大,依据其运行时间,将其启发因子设置为1。hepth数据集由于规模比较小,运行时间差距不大,因此依据影响范围将其启发因子设置为0.2。

四、影响范围

图4至图7分别展示了种子节点规模在1-50时本发明phg与其他五种算法hpg,greedy,pagerank,degree和random在hepth,brightkite,epinions和amazon四个数据集上影响范围对比图。通过这四个图可以看出,random算法是表现最差的,这主要是由于该算法没有考虑任何的因素,而其他算法都不同程度的考虑了部分因素。启发式算法pagerank和degree虽然表现的比random算法好,但是却比剩余的算法greedy,hpg和phg差很多。当种子规模较小的时候,能够发现greedy和phg算法作为高影响力的算法与本发明phg具有相似的影响范围,但是随着节点规模的增加,本发明phg的表现越来越好。例如,在种子节点规模为50时,phg算法分别比greedy算法和hpg算法在amazon数据集上高出10.7%和35.5%。这些结果都说明社区结构信息在信息传播中具有重要的作用,使得本发明能够有效的识别出有影响力的节点。

五、运行时间

图8展示了本发明与其他其他五种算法hpg,greedy,pagerank,degree和random在种子节点规模为50时的运行时间对比图。从图中可以看出random,degree和pagerank算法的运行时间比较短,这主要是由于这几个算法并不稳定,不能较好地进行影响力的传播。而在剩余的算法中,本发明phg的效率比其他两个算法greedy和hpg的效率高,这主要是因为本发明是通过划分社区搜索关键节点和核心节点来形成候选节点集,从而缩小了种子搜索的空间,提高了运行效率。

综上所述,通过分析社区结构在影响力传播中的作用,本发明利用社区结构信息来识别社交网络中的关键节点,使得本发明不仅在影响范围上有了提升,而且在运行效率上有了进一步的优化,效果优良。

以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1