社交网络影响传播中初始用户选取方法技术领域
本发明属于社交网络影响传播技术领域,更为具体地讲,涉及一种社交网络影响
传播中初始用户选取方法。
背景技术
随着在线社交网络Facebook、Twitter和微信等的普及,越来越多的人研究社交网
络的影响传播现象,包括信息、病毒和新闻的传播或产品的采纳等。如何在社交网络中选取
初始用户进行产品的有效促销,越来越受到商家的关注。例如,一个公司研发了一种新产
品,这个公司需要通过社交网络选取一些初始用户,通过给这些初始用户提供免费的试用
产品,使他们在试用产品后,把产品的信息传播给他们的朋友、朋友的朋友,等等,最终使得
产品得到有效的促销(即社会网络影响最大化),在市场营销方面具有重要的实际应用前
景。
社交网络影响最大化,是指在某种传播模型下找到给定数量的最具有影响力的初
始用户,使得产品的信息通过这些初始用户在社交网络中得到最大化的传播。由此可知,建
立传播模型,快速地在社交网络中找到最具有影响力的初始用户,是社交网络影响最大化
的核心和关键。
目前公知的传播模型主要有线性阈值模型、独立级联模型和热扩散模型。初始用户
的选取方法包括贪心法及其他启发式算法。陈浩等(<计算机研究与发展>,2012)提出基于阈
值的社交网络影响力最大化算法,根据每个节点在激活过程中动态变化的阈值来计算它的潜
在影响值。邓晓衡(<发明专利201510072839.0>,2015)提出一种基于节点特性的初始节点
选取方法,根据用户活跃度、用户敏感度和用户亲密度三方面因素,对节点特性进行评价,
并通过贪心法选取影响力最大的初始用户节点集。吴俊等(发明专利CN201510186252.2,
2015)提出一种基于社团结构挖掘算法的在线社会网络信息传播最大化方法,利用社团挖
掘算法发现复杂网络的社团,并分别在这些社团对应的子图中寻找初始用户,最终形成初
始用户集合。曹玖新等(<计算机学报>,2015)提出一种基于k-核的社会网络影响最大化算
法,是一种基于核层次特征、节点度数和影响半径贪心的初始用户选取方法。胡庆成等(<物
理学报>,2015)提出一种新的影响力最大化计算方法,该方法从一个网络中随机地选出一
个节点,再从该节点及其邻居节中选出一个度最大的节点作为种子。张波等(<发明专利
CN201410234220.0>,2014)提出基于信任的社会网络影响节点的计算方法,基于节点的信
任度和影响值得到节点的综合影响,将节点的综合影响和该节点当前可以激活的节点数进
行综合,找出潜在影响最大的节点。
实际中,随着在线社交网络数据规模的增大,快速地选取初始用户并最大化产品
的传播影响变得困难。目前公知的初始用户选取方法,都只考虑小规模的和单机的社交网
络中的初始用户选取方法,并最大化产品的影响传播,未考虑大规模的社交网络中初始用
户选取方法。
发明内容
本发明的目的在于克服现有技术的不足,提供一种社交网络影响传播中初始用户
选取方法,在k-壳分解基础上对初始用户选取方式进行改进,从而有效提高大规模社交网
络中初始用户选择的效率和有效性。
为实现上述发明目的,本发明社交网络影响传播中初始用户选取方法包括以下步
骤:
S1:对社交网络进行k-壳分解;
S2:计算每个壳ks=i内应选取的初始用户数量q(ks=i),计算公式为:
其中,Q表示预设的总初始用户数量,n(ks=i)表示ks=i壳内的用户数量,N表示社
交网络总用户数量,[]表示取整;
删除初始用户数量q(ks=i)为0的壳,剩下的壳为候选壳;
S3:对于每个候选壳分别选取初始用户,由这些初始用户构成社交网络的初始用
户集合,每个候选壳的初始用户选择方法包括以下步骤:
S3.1:令初始用户序号d=1,在候选壳ks=i内所有用户中选取度数最大的用户作
为第1个初始用户
S3.2:如果d<q(ks=i),进入步骤S3.3,否则初始用户选取结束;
S3.3:建立影响传播模型,得到初始用户集合中每个初始用户的激活集合
其中g=1,2,…,d;
S3.4:分别计算初始用户集合中每个初始用户到其激活集合的最
短路径其计算公式为:
其中,u表示激活集合中的用户,表示初始用户到用户u
的最短路径长度,表示激活集合中的用户数量;
S3.5:计算当前初始用户集合中所有初始用户到其激活集合的最
短路径的平均值,作为初始用户集合的平均最短路径MSP,其计算公式为:
其中,表示当前初始用户集合中初始用户数量;
S3.6:根据各个初始用户的激活集合得到候选壳ks=i中未被激活用户集
合C(ks=i);
S3.7:如果未激活用户集合初始用户选取结束,否则进入步骤
S3.8;
S3.8:获取每个未被激活用户vr的MSP步邻居集合vr(MSP),vr∈C(ks=i);
S3.9:选取第d+1个初始用户
其中,
S3.10:令d=d+1,返回步骤S3.2。
本发明社交网络影响传播中初始用户选取方法,首先对社交网络进行k-壳分解,
然后分别计算每个壳应选取的初始用户数量,选择初始用户数量不为0的壳为候选壳,对于
每个候选壳分别选取初始用户,由这些初始用户构成社交网络的初始用户集合,选取初始
用户时,首先选取候选壳内度数最大的用户作为第1个初始用户,然后根据影响传播模型获
取初始用户到对应激活集合的平均最短路径MSP,根据未被激活用户的MSP步邻居集合和激
活用户集合来选取下一个初始用户。
本发明具有以下技术效果:
(1)基于k-壳分解方法,将社会网络分解成若干个较小的壳,筛选出候选壳,在每
个候选壳中分别进行初始用户选取,可以有效提高算法效率;而且本发明中存在大量可并
行处理的步骤,还可以通过并行处理来大幅度提高算法效率,从而可以更好地适应大规模
社交网络;
(2)本发明提出了新的初始用户选取方法,通过计算已选取初始用户的影响效果
来确定后续初始用户,更能体现社交网络的特点,从而使选择的初始用户更有效。
附图说明
图1是本发明社交网络影响传播中初始用户选取方法的具体实施方式流程图;
图2是本发明中生成候选壳的流程图;
图3是本发明中在候选壳内选取初始用户的流程图;
图4是本实施例中社交网络图。
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地
理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许
会淡化本发明的主要内容时,这些描述在这里将被忽略。
图1是本发明社交网络影响传播中初始用户选取方法的具体实施方式流程图。如
图1所示,本发明社交网络影响传播中初始用户选取方法的具体步骤包括:
S101:对社交网络进行k-壳分解:
一般来说,社交网络表示为一个无向无环图G=(V,E),其中:V={v1,v2,…,vN}为
用户的集合,N为G中用户的个数,E={e1,e2,…,eM}为无向边的集合,表示社交网络中用户
之间的联系,M为G中边的数量。对于较为复杂的社交网络,k-壳分解是寻找网络中心节点的
一种重要手段。在本发明中,由于针对的是大规模社交网络,因此首先对社交网络进行k-壳
分解,得到若干个ks=i壳,i表示壳参数。k-壳分解是社交网络分析的常用手段,其具体过
程在此不再赘述,可以参见文献“Kitsak,M.,Gallos,L.K.,Havlin,S.,Liljeros,F.,
Muchnik,L.,Stanley,H.E.,Makse,H.A.Identification of influential spreaders
incomplex networks.Nature physics,6(11),pp.888-893(2010)”。
S102:生成候选壳:
计算每个壳的用户数量,根据壳内的用户数量计算得到该壳的初始用户数量,并
生成候选壳。图2是本发明中生成候选壳的流程图。如图2所示,本发明中生成候选壳的具体
方法为:
S201:计算壳内用户数量:
计算构成每个壳的用户数量n(ks=i)。
S202:计算壳内初始用户数量:
计算每个壳内用户数量n(ks=i)在总用户数量N中所占比例,根据预设的总初始
用户数量Q来计算每个壳ks=i内应选取的初始用户数量q(ks=i),其计算公式为
其中,[]表示取整。
S203:选取候选壳:
根据步骤S202计算得到各个壳的初始用户数量,删除初始用户数量q(ks=i)为0
的壳,剩下的壳为候选壳。例如,有ks=1、ks=2和ks=3三个壳,它们应选取的初始用户数量
分别为q(ks=1)=0、q(ks=2)=1和q(ks=3)=2,则候选壳为ks=2和ks=3的两个壳。
S103:选取初始用户:
对于每个候选壳,根据步骤S202计算得到的初始用户数量分别进行初始用户选
取,由这些初始用户构成社交网络的初始用户集合。图3是本发明中在候选壳内选取初始用
户的流程图。如图3所示,在候选壳内选取初始用户的具体步骤包括:
S301:选取第d=1个初始用户:
令初始用户序号d=1,在候选壳ks=i内所有用户中,选取候选壳ks=i所对应网络
中度数最大的用户作为第1个初始用户加入候选壳ks=i的初始用户集合其表达
式可以表示为:
其中,d(vj)表示用户vj在社交网络中的度数,表示候选壳ks=i中用户的社交
网络。
S302:判断是否d<q(ks=i),如果是,进入步骤S303,否则说明该候选壳初始用户
的数量已经要求,初始用户选取结束。
S303:获取每个初始用户的激活集合:
建立影响传播模型,得到初始用户集合中每个初始用户的激活集合
其中g=1,2,…,d。
影响传播模型是社会网络分析的重要工具,目前常用的影响传播模型有独立级联
模型和线性阈值模型等,可以根据实际需要进行选择。本实施例中选用热扩散模型,这是因
为热扩散模型中具有时间参数,可以更好地反映病毒式营销中的影响传播。
热扩散模型所需设置的参数包括热扩散参数α、热扩散时间t、近似次数P和激活阈
值θ(用户购买产品的阈值),热扩散的方法可表示为:
其中,为一个向量,表示候选壳ks=i中各用户受到的影响(即接收到的热
量),中每个元素表示对应用户受到初始用户的影响程度。初始影响向量表示
未扩散时的影响向量,即初始用户仅影响自身时的影响向量。若用户受到的影响大于θ,则
用户被激活,若小于θ,则用户不被激活。I为单位矩阵,为n(ks=i)×n(ks=i)的方阵。
在H中,如果任意两个用户之间有边,则对应位置元素值为1;否则为0;方阵中对角线位
置的元素值为用户度数的负值,方阵中的元素可表示为:
其中,x,y=1,2,,n(ks=i),表示候选壳ks=i对应社交网络的边集合。
显然,在热扩散模型中,根据计算得到的影响向量中各个元素的值,即可得
到该元素对应的用户是否被初始用户激活,从而得到初始用户集合中每个初始用户
的激活集合即得到每个初始用户的影响效果。
S304:计算每个初始用户的平均最短路径:
分别计算初始用户集合中每个初始用户到其激活集合的最短路
径其计算公式为:
其中,u表示激活集合中的用户,表示初始用户到用户u
的最短路径长度,也就是中间用户最少的路径长度,路径长度即为中间用户数量。
表示激活集合中的用户数量。
S305:计算初始用户集合的平均最短路径:
计算当前初始用户集合中所有初始用户到其激活集合的最短路
径的平均值,作为初始用户集合的平均最短路径MSP,其计算公式为:
其中,表示当前初始用户集合中初始用户数量,即
S306:获取未激活用户集合:
根据各个初始用户的激活集合得到候选壳ks=i中未被激活的用户C(ks
=i),即各个初始用户激活集合的合集以外的用户。
S307:判断是否未激活用户集合如果是,则说明候选壳ks=i当前
已选取的初始用户已经可以激活该候选壳的所有用户,不需要再选取新的初始用户了,因
此初始用户选取结束,否则进入步骤S308。
S308:获取未激活用户的MSP步邻居集合:
获取每个未被激活用户vr的MSP步邻居集合vr(MSP),vr∈C(ks=i)。
S309:选取第d+1个初始用户:
选取MSP步邻居集合vr(MSP)中用户数量减去MSP步邻居集合V(MSP)与激活集合
的合集的交集用户数量所得差值最大的未被激活用户vr作为第d+1个初始
用户,其表达式为:
其中,
S310:令d=d+1,返回步骤S302。
根据以上流程说明可知,在本发明中,存在大量的并行计算或处理步骤,例如每个
壳的初始用户数量计算、候选壳中初始用户选取、初始用户选取中各个用户度数计算、初始
用户到激活用户的最短路径、未激活用户的MSP步邻居集合等,对于这些步骤可以采用并行
处理方式,在大规模社会网络中,由于用户数量众多,采用并行处理方式可以大大节约时
间,从而提高在大规模社会网络中进行初始用户选取的效率。
实施例
为了更好地说明本发明的技术方案和效果,采用一个具体的社交网络为例对本发
明进行说明。图4是本实施例中社交网络图。如图4所示,本实施例的社交网络包括13个用
户,即v1至v13。对社交网络进行k-壳分解,各个用户在社交网络中的度数分别为:d(v1)=d
(v3)=d(v4)=d(v5)=d(v6)=d(v12)=d(v13)=1,d(v2)=6、d(v7)=4、d(v8)=d(v9)=d
(v10)=2、d(v11)=3。移除度数为1的用户节点,即v1、v3~v6、v12、v13,并删除与它们相连的
边,重新并行地计算剩下用户的度数,得到d(v2)=d(v11)=1、d(v7)=4、d(v8)=d(v9)=d
(v10)=2,再删除用户v2和v11,以及与它们相连的边,剩下的用户度数为d(v7)=d(v8)=d
(v9)=d(v10)=2。因此可知用户v1~v6、v11~v13这9个用户构成k-壳为1的用户,把这些用户
原来的边连起来,构成ks=1的壳,其余的4个用户v7~v10构成ks=2的壳,其k-壳分解的结果
也在图4中标示了出来。
本实施例中,设置总初始用户数量n=3,那么根据公式(1)可以计算得到ks=1和ks
=2的初始用户数量q(ks=1)=2.076≈2,q(ks=2)=0.923≈1。可知本实施例中两个壳的
初始用户数量均不为0,因此两个壳均为候选壳。
那么下面需要在两个壳中分别选取第1个初始用户。对于ks=1壳,其中用户v2在ks
=1壳所对应的网络中度数最大(d(v2)=5),因此选择用户v2作为第1个初始用户,即
对于ks=2壳,其中每个用户在ks=2壳所对应的网络中度数均为2,因此任意选择
一个用户作为第1个初始用户,此处选择v8,即
然后建立分别建立每个候选壳的影响传播模模型。本实施例中采用热扩散模型。
给定热扩散系数α=0.5、扩散时间t=1、近似计算步骤P=30、用户激活阈值θ=0.15和初始
用户的热量为1。由于扩散时间为0时初始用户只会影响自身,因此和分别为
和然后采用公式(4)分别计算ks=1
壳中以用户v2为初始用户、ks=2壳中以用户v8作为初始用户,壳内用户受到的影响,得到的
矩阵和分别为:
分别计算ks=1壳和ks=2壳中初始用户v2和初始用户v8传播到各个用户的热量,
也就是计算初始用户v2和v8的影响传播效果,并通过用户激活阈值θ=0.15判断用户激活状
态。表1是ks=1壳中初始用户v2到各个用户的热量及激活状态。表2是ks=2壳初始用户v8到
各个用户的热量及激活状态。
表1
表2
由于在ks=2壳中只需要选择一个初始用户,因此接下来还要在ks=1壳中再选择
第2个初始用户。从表1中可得出,用户v1、v3v6都处于激活状态,也就是受到初始用户v2的影
响,用户v1、v3v6都会购买产品,即初始用户v2的激活集合B(v2)={v1,v3,v4,v5,v6}。分别计
算第1个初始用户v2到v1、v3v6最短路径,表示为SP(v2→)。表3是初始用户v2到被影响用户的
最短路径。
激活用户
v1
v3
v4
v5
v6
SP(v2→)
1
1
1
1
1
表3
那么初始用户v2到其激活集合的最短路径SP(v2)=1,由于此时初始用户集合中只
有初始用户v2,因此初始用户集合的平均最短路径MSP=1。
然后获取ks=1壳中未被激活的用户集合C(ks=1)={v11,v12,v13},分别获取每个
未激活用户的1步邻居集合,然后求取1步邻居集合与激活用户集合交集的用户数量。表4是
1步邻居集合、交集用户数量及差值统计表。
未被激活用户
1步邻居个数
交集个数
差值
v11
2
0
2
v12
1
0
1
v13
1
0
1
表4
根据表4可知,差值最大的未被激活用户为用户v11,因此选择用户v11作为ks=1壳
的第2个初始用户,完成初始用户选取。最终本实施例中社交网络所选取的初始用户为v2、v8
和v11。
为了说明本发明的技术效果,根据热扩散模型计算ks=1壳中初始用户为v2和v11
时的影响效果。表5是ks=1壳中初始用户v2和v11到各个用户的热量及激活状态。
表5
根据表2和表5可知,ks=2壳初始用户v8激活的用户数量为3,ks=1壳中初始用户
v2和v11激活的用户数量为9,因此初始用户v2、v8和v11激活的用户总量为12,也就是在初始
用户v2、v8和v11的影响下有12个用户购买产品,所激活用户占总用户数量的92%,可见所选
择的初始用户是有效的。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术
人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技
术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些
变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。