一种面向大规模时序图影响力最大化问题的解决方法与流程

文档序号:17642673发布日期:2019-05-11 00:46阅读:562来源:国知局
一种面向大规模时序图影响力最大化问题的解决方法与流程

本发明涉及一种面向大规模时序图影响力最大化问题的解决方法,属于数据库处理技术领域。



背景技术:

如今,在线社交网络比如微博、微信及博客等在人们的生活中扮演重要的角色。人们通过社交网络表达他们的想法、分享新闻和信息。人们在社交网络中通过传播他们的想法和信息来影响网络中的其他用户,通过这种“口碑(word-of-mouth)效应”设计出一种新的营销技术,被称为“病毒营销”(viralmarketing)。这种营销方式通过公众将信息廉价复制,告诉给其他受众,从而迅速扩大自己的影响,和传统的营销方式相比,受众自愿接受的特点使得成本更少、收益更多。

另一方面,互联网的发展也使得网络谣言、网络低俗文化流行起到推波助澜的作用。而对于影响力最大化问题的研究不仅可以使得一个好的信息尽快的通过网络传播出去,同时,也可以借助于影响力最大化问题的研究来抑制谣言在网络上的传播。

一般的影响力最大化的研究都是基于静态图的,即将社交网络抽象为静态图,基于静态图的影响力最大化问题是指通过在网络中寻找k个节点作为种子节点,使得信息在特定的传播模型(如ic传播模型)下通过k个用户在网络中尽可能多的影响到其他用户,即将影响力最大化问题作为一个离散最优化问题研究。

但是现实生活中的很多网络图,并不可以被简单的抽象为静态图,比如人与人之间的电话网络、相互邮件传送、交通网络以及脑神经网络等,在这些网络中,节点之间并不会至始至终都会存在联系,而是只在某个时间段存在联系,即节点之间的联系是具有时序性的。由于节点间联系的时序性,也导致了基于静态图的ic模型,无法适用于时序图,因此解决时序图影响力最大化问题的第一步,首先需要对ic模型进行改进,使得其可以适用于时序图,然后才可以进一步研究,并解决时序图影响力最大化问题。



技术实现要素:

(一)要解决的技术问题

为了解决现有技术的上述问题,本发明提供一种面向大规模时序图的影响力最大化问题的解决方法。

(二)技术方案

为了达到上述目的,本发明采用的主要技术方案包括:

一种面向大规模时序图的影响力最大化问题的解决方法,包括如下步骤:

s1、将社交网络各个节点的数据抽象为时序图,所述时序图表示为gt(v,e,te),其中,所述v表示社交网络中的节点集合,所述e表示的是网络中时序边的集合,所述te表示的各个节点联系时刻的集合;

s2、对节点间的传播概率进行初始化,之后,对传统的独立级联传播模型进行重新设计出基于所述时序图的ict传播模型;

s3、在所述ict传播模型的基础上,对各个节点进行影响力的计算,

s4、依据在步骤s3中计算的各个节点的影响力集合,解决时序图影响力最大化问题,即寻找大小为k的种子节点集合。

如上所述的方法,优选地,所述步骤s2具体包括如下:

s201、对各个节点间的传播概率pu,v进行初始化,对节点间的传播概率进行随机赋值;

s202、所述ict传播模型包括:将所有节点v赋值为actv=-1,表示所有节点都处于非活跃状态,选取一个种子节点u之后其信息传播过程如下:

s221.种子节点u的活跃时间actu=0,此时种子节点u以概率pu,v激活其邻居节点v,且节点u有且仅有一次机会可以激活节点v;

s222.节点u在尝试激活节点v时,首先判断actu是否小于等于max(t(u,v)),如果大于则直接跳过开始尝试激活下一个邻居节点,如果小于等于,则节点u便以概率pu,v激活节点v;

s223.无论节点u是否能够激活节点v,在以后的回合中u都不会再激活节点v;

s224.一旦节点v被成功激活,记录其活跃起始时间actv=t(u,v),其中t(u,v)∈t(u,v),且actu≤t(u,v)≤max(t(u,v));

s225.信息在整个社交网络由新的活跃节点向处于非活跃状态邻居节点尝试传播出去,直到没有新的节点被激活为止。

如上所述的方法,优选地,所述步骤s3中对各个节点进行影响力的计算,具体步骤如下:

s301、在时序图数据结构中,对各个节点的邻居节点按照max(t(u,v))进行由大到小的排序;

s302、设置一个队列q,且初始q为空,然后选取所要计算影响力的目标节点u,将目标节点u放入队列q中去;

s303、从队列中取出队首节点u;

s304、随机生成一个数p,且p∈[0,1],依次遍历其邻居节点v,如果p≥pu,v并且actu≤max(t(u,v)),则说明节点u可以激活其邻居节点v,则令节点v的活跃时间actv←min(t|t∈t(u,v)∩t≥actu);

s305、将在步骤3.3中的被激活的节点放入到集合中以及队列q中去;

s306、在队列q不为空的情况下,重复执行步骤s303-s305;

s307、得到节点u的影响力集合

如上所述的方法,优选地,所述步骤s4包括如下步骤:

s401、设置s为种子节点集合,初始化s为空,确定最终需要得到的集合s的大小为k,计算所有节点的边际效应,并表示为infs(u);

s402、对所有的非种子节点按照边际效应的大小δinfs(u)进行排序,得到排序结果u1,u2,…,un,选取u1为种子节点,即将u1到集合s中去;

s403、计算在步骤s402中的u2的新的边际效应大小δinfs(u2),如果节点u2的新的边际效应的大小大于等于u3的边际效应大小,则直接选取节点u2为种子节点放入到集合s中去,否则的话执行步骤s402;

s404、计算集合种子节点的集合s的大小,如果集合s的大小小于k,则执行步骤s402-s403;

s405、得到结果种子节点集合s,在集合s中的节点即为找到的种子节点。

优选地,所述传播概率p_(u,v)为活跃节点u通过边(u,v)成功激活其邻居节点v的概率,所述p_(u,v)∈[0,1]。

(三)有益效果

本发明的有益效果是:

本发明提供的面向大规模时序图的影响力最大化问题的解决方法,可以快速且高效的解决时序图影响力最大化问题。而传统的影响力最大化算法都无法解决时序图影响力最大化问题。本发明在可以用来时序社交网络中进行产品宣传,通过选取重要节点用户可以节约宣传成本,同时,本发明还可以用来进行对网络上的一些恶意谣言进行辟谣以及通过分析以往流行性疾病在各个地区的传播的历史数据进行疾病预防等。

附图说明

图1为本发明具体实施的方法流程图;

图2为本发明具体实施2的时序图的结构示意图;

图3为本发明实施例2中种子节点选取示意图;

图4为本发明实施例2与现有技术的运行效果对比图。

具体实施方式

为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。

本发明中所用的符号和意义见表1。

表1本发明的符号和意义

本发明中“时序图”的定义:给定网络gt(v,e,te)表示为节点联系带有时序关系的社交网络有向时序图,v表示节点的集合,e表示边的集合,且|v|=n,|e|=m。te表示图中所有节点之间存在联系时刻的集合,t(u,v)表示在节点u和v之间存在联系的时刻的集合,t(u,v)∈te。

本发明中“传播概率”的定义:活跃节点u通过边(u,v)成功激活其邻居节点v的概率,传播概率表示为pu,v∈[0,1]。

本发明中“节点活跃起始时间”的定义:节点v被其活跃父节点u成功激活的时刻为其跃起始时间,表示为actv,且actv=min{t|(t∈t(u,v)∩t≥actu)}。

本发明中“节点影响力”的定义:节点影响力是在网络中可以被节点u成功激活的节点的集合,表示为

本发明中“边际效应”的定义:将种子节点集合设置为s,非种子节点v的边际效应为

其中δinfs(v)表示边际效应的大小。

本发明中“时序图影响力最大化”的定义:给定时序图gt(v,e,te)以及特定的传播模型,在时序图中找到一个节点集合s,其中集合s含有节点个数|s|=k,使得集合s的影响力最大化。集合s也就是gt的种子节点集合。

实施例1

一种面向大规模时序图的影响力最大化问题的解决方法,如图1所示,包括如下步骤:

步骤1:采用时序图gt(v,e,te)来表示将社交网络各个节点的数据抽象为时序图,其中v表示社交网络中的节点集合,e表示的是网络中时序边的集合,te表示的各个节点联系时刻的集合。时序图的数据结构采用和邻接表一样的数据结构,只是在边的权重上需要保存节点间的所有相连时刻和节点间的传播概率。

步骤2:首先对节点间的传播概率进行初始化,然后对传统的独立级联传播模型进行重新设计出新的ict传播模型使得其可以适用于时序图,具体如下;

步骤2.1:初始化传播概率;

首先需要对各个节点间的传播概率pu,v进行初始化,节点的传播概率对时序图影响力最大化问题的算法实现不会起决定性的作用,通常情况下都是对节点间的传播概率进行随机赋值。如对各个节点间的传播概率pu,v随机赋值为0.01,0.1,0.2,0.3,0.5。

步骤2.2:重新设计独立级联传播模型;

静态图的影响力最大化算法无需考虑节点被激活的起始时间,而在时序图中节点被成功激活的起始时间是需要考虑的。通过对ic传播模型进行改进从而得到了一种新的基于时序图的传播模型,ict(icmodelontemporalgraph)传播模型。

现在对信息在时序图中通过ict传播模型的传播过程做出详细介绍。

在最初始的网络里面,可以将所有节点v的actv=-1,表示所有节点都处于非活跃状态。当选取一个种子节点u之后其信息传播过程如下:

1.种子节点u的活跃时间actu=0,此时种子节点u以概率pu,v激活其邻居节点v,且节点u有且仅有一次机会可以激活其邻居节点v。

2.节点u在尝试激活邻居节点v的时候首先判断actu是否小于等于max(t(u,v)),如果大于则直接跳过开始尝试激活下一个邻居节点,如果小于等于,则节点u便以概率pu,v激活节点v。

3.无论节点u是否能够激活节点v,在以后的回合中u都不会再去尝试着激活节点v。

4.一旦节点v被成功激活,记录其活跃起始时间actv=t(u,v),其中t(u,v)∈t(u,v),且actu≤t(u,v)≤max(t(u,v))。

5.信息在整个社交网络由新的活跃节点向处于非活跃状态邻居节点尝试传播出去,直到没有新的节点被激活为止。

步骤3:在ict传播模型的基础上对各个节点进行影响力的计算,具体步骤如下;

步骤3.1:在时序图数据结构中,对各个节点的邻居节点按照max(t(u,v))进行由大到小的排序;

步骤3.2:设置一个队列q,且初始q为空,然后选取所要计算影响力的目标节点u,将节点u放入队列q中去;

步骤3.3:从队列中取出队首节点u;

步骤3.4:随机生成一个数p,且p∈[0,1],依次遍历其邻居节点v,如果p≥pu,v并且actu≤max(t(u,v)),则说明节点u可以激活其邻居节点v,则令节点v的活跃时间actv←min(t|t∈t(u,v)∩t≥actu);

步骤3.5:将在步骤3.3中的被激活的节点放入到集合中以及队列q中去;

步骤3.6:在队列q不为空的情况下,重复执行步骤3.3-3.5;

步骤3.7:得到节点u的影响力集合

步骤4:依据在步骤3中计算的各个节点的影响力集合解决时序图影响力最大化问题,即寻找大小为k的种子节点集合;

步骤4.1:设置s为种子节点集合,初始化s为空,确定最终需要得到的集合s的大小为k,计算所有节点的边际效应infs(u);

步骤4.2:对所有的非种子节点按照边际效应的大小δinfs(u)进行排序,得到排序结果u1,u2,…,un,选取u1为种子节点,即将u1到集合s中去;

步骤4.3:计算在步骤4.2中的u2的新的边际效应大小δinfs(u2),如果节点u2的新的边际效应的大小大于等于u3的边际效应大小,则直接选取节点u2为种子节点放入到集合s中去,否则,执行步骤4.2;

步骤4.4:计算集合种子节点的集合s的大小,如果集合s的大小小于k,则执行步骤4.2-4.3;

步骤4.5:得到结果种子节点集合s,在集合s中的节点即为找到的种子节点。

实施例2

本实施例结合图2和图3对时序图和相关概念进行说明。如图2所示的为时序图,节点个数为7,v={cor,an,cor,nan,li,wu,lyd},静态边为13条,时序边为28条,以边(cor,an)为例,这是一条静态边,表示节点cor和节点an存在联系,但是两个节点并不是时时刻刻都存在联系的,边上的权重1,3和5表示只有在时刻1,3和5时刻的时候两个节点才存在相连关系,即t(cor,an)={1,3,5}。而节点间的传播概率pu,v随机赋值为0.01,0.1,0.2,0.3,0.5。如果节点cor对节点an的传播概率pcor,an=0.2,表示不管是在时刻1,3或5,其传播概率都是一致的。

实验数据采用堆交换网站superuser上的时序网络上的数据,包括100k个节点290k条静态边和530k条时序边。在ict传播模型中,需要对节点间传播概率进行赋值,实验中设置概率集合p1=(0.01,0.1,0.2,0.3,0.5),实验中分别随机选取集合中的概率对节点间的传播概率进行赋值。在种子节点选取bimt,imit和amit三种算法中,选取种子节点集合大小分别为1,10,20,30,40和50。

对于大规模时序图的运行本实施方式的方法,流程如图1所示,包括如下步骤:

步骤1:将网站的上的时序网络数据抽象为时序图,其中时序图中的节点表示网络中的用户,在时序图上的边有两类权值,一类为节点间存在联系的时刻的集合,另一类表示进行随机赋值的传播概率;

步骤2:重新设计独立级联传播模型为新的传播模型ict传播模型;

在最初始的网络里面,可以将所有节点v的actv=-1,表示所有节点都处于非活跃状态。当选取一个种子节点u之后其信息传播过程如下:

1.种子节点u的活跃时间actu=0,此时种子节点u以概率pu,v激活其邻居节点v,且节点u有且仅有一次机会可以激活节点v。

2.节点u在尝试激活节点v的时候首先判断actu是否小于等于max(t(u,v)),如果大于则直接跳过开始尝试激活下一个邻居节点,如果小于等于,则节点u便以概率pu,v激活节点v。

3.无论节点u是否能够激活节点v,在以后的回合中u都不会再去尝试着激活节点v。

4.一旦节点v被成功激活,记录其活跃起始时间actv=t(u,v),其中t(u,v)∈t(u,v),且actu≤t(u,v)≤max(t(u,v))。

5.信息在整个社交网络由新的活跃节点向处于非活跃状态邻居节点尝试传播出去,直到没有新的节点被激活为止。

步骤3:在ict传播模型的基础上对各个节点进行影响力的计算,以图1为例,具体步骤如下;

步骤3.1:在图1中,对各个节点的邻居节点按照max(t(u,v))进行由大到小的排序;

步骤3.2:设置一个队列q,且初始q为空,然后选取所要计算影响力的目标节点u,将节点u放入队列q中去,以节点cor为例,即将节点cor放入到队列q中去;

步骤3.3:从队列中取出队首节点cor;

步骤3.4:随机生成一个数p,且p∈[0,1],依次遍历其邻居节点v(节点nan,han以及an),如果p≥pu,v并且actu≤max(t(u,v)),则说明节点u可以激活其邻居节点v,则令节点v的活跃时间actv←min(t|t∈t(u,v)∩t≥actu),假设节点cor只成功激活节点han,则acthan=9;

步骤3.5:将在步骤3.3中的被激活的节点han放入到集合中以及队列q中去;

步骤3.6:在队列q不为空的情况下,重复执行步骤3.3-3.5;

步骤3.7:得到节点u的影响力集合

步骤4:依据在步骤3中计算的各个节点的影响力集合解决时序图影响力最大化问题,即寻找大小为k的种子节点集合,同样以图1为例,具体步骤如下;

步骤4.1:对所有节点和数字0-n做出一一映射关系,顶点cor、han、…、lyd分别对应数字1、2、…、8。将起始的表示为其中0的个数等于8。、

步骤4.2:对所有的非种子节点按照边际效应的大小δinfs(u)进行排序,得到排序结果cor,nan,han,…,lyd,选取cor为种子节点,即将节点cor放入到集合s中去,因为节点cor可以影响的节点分别对应与数字1,3,5,7,8,所以只需将中的第1,3,5,7和8个元素由0变为相对应的数字,即;

步骤4.3:此时,为了寻找下一个种子节点,首先不需要对所有节点进行新的边际效应的计算。而是首先计算节点nan的新的边际效应,节点nan的影响节点为2、3、4和6,现在无需通过到中依次查询来计算顶点nan的新的边际效应,只需要依次判断在中的第2、3、4和6个元素是否为0即可。如此,只需要4次计算即可得到顶点nan新的边际效应。

步骤4.4:计算在步骤4.3中的nan的新的边际效应大小δinfs(nan),如果节点nan的新的边际效应的大小大于等于han的边际效应大小,则直接选取节点nan为种子节点放入到集合s中去,否则的话执行步骤4.2;

步骤4.5:计算集合种子节点的集合s的大小,如果集合s的大小小于k,则执行步骤4.2-4.4;

步骤4.6:得到结果种子节点集合s,在集合s中的节点即为找到的种子节点。

本发明具体实施方式通过实验测试提出的面向大规模时序图影响力最大化问题的解决方法。该实验中,amit代表本发明的基本解决方法,imit表示优化节点边际效应计算的一种方法,即对网络中的各个节点和数字之间建立一一对应关系,以此达到快速访问节点未知的目的,bimt表示一种在imit方法基础上可以解决大规模时序图影响力最大化问题的方法,即通过减少一些非必要节点的边际效应的重复计算来达到快速寻找种子节点的目的。

将本发明方法(amit、imit、bimt)和现有的方法(random,degree,degreesingle,degreediscount)的进行运行效果对比,过将实验结果数据在excle上自动生成获得如图4所示结果。图4中的每个小图代表一个数据实验测试结果,其中数据为在斯坦福大学提供的已有时序社交网络数据集,图4(1)中的数据集1为欧洲一机构的邮件网络数据集,图4(2)中的数据集2为斯坦福大学的在校学生在线社交网络数据集,图4(3)中的数据集3是堆栈交换网站mathoverflow上的时间交互网络所生成的数据集,图4(4)中的数据集4是由网站堆栈交换网站superuser所生成的时序网络图。

每个小图中的7条曲线代表7种解决方法在四中数据集上的实验效果,其中三种是本发明提出的方法(bimt,imit和amit),另外四种(random,degree,degreesingle,degreediscount)中的rnadom方法是通过随机选取的方式选取种子节点,另外三种(degree,degreesingle,degreediscount)是基于节点的度数的启发式算法,通过忽略节点的时序性来进行选取种子节点。但是这四种方法的缺点是无法保证节点选取的正确性,而本发明的有点在于可以保证选取结果的准确率。图中的横坐标表示选取种子节点的个数,纵坐标表示可以激活的节点个数和用户节点总数相比所占的比例。通过实验对比可以发现,本发明所提出的三种解决方法明显优于另外四种已存的方法,即在选取相同种子节点的情况下,本发明提出的方法在四种数据集上可以激活更多的用户节点。

以上所述,仅是本发明的较佳实施例而已,并非是对本发明做其它形式的限制,任何本领域技术人员可以利用上述公开的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。

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