一种基于兴趣空间的社区划分方法与流程

文档序号:15560613发布日期:2018-09-29 02:09阅读:186来源:国知局
本发明涉及一种网络兴趣社区划分方法,特别是一种基于兴趣空间的社区划分方法。
背景技术
:机会网络的概念最早来源于延迟容忍网络(delaytolerantnetwork,dtn),机会网络是指在源节点和目的节点不存在一条通信链路的情况下,利用节点移动带来的相遇机会实现网络中节点间的通信。由于节点的移动性,机会网络大部分时间处于不连通状态,节点依靠移动带来的相遇机会来实现数据的转发,由于源节点和目的节点之间通常不存在一条完整的路径,因此需要经过多跳转发的方式才能使数据从源节点传递给目的节点,因此机会网络存在较大的延迟。随着智能通信设备的不断发展,智能手机已经是人们生活中的必备物品,人们携带智能手机能够组成以人为中心的机会网络中,人的行为特征和社会属性对研究机会网络起着十分重要的作用,人体动力学研究表明人类移动行为是一种纷繁复杂的现象,人类的个体或者群体的移动行为具有规律性、集聚性、小世界性、社会性等特点。对人类网络关系结构的研究发现网络中的节点不仅具有个性,同时还具有共性,因此社区结构的概念被提出来,在一个网络中,由于节点的行为轨迹具有周期性和相似性,或者节点具有相同的兴趣爱好等因素,会导致网络结构中出现结构相似或者联系紧密的一组节点,这样的节点组称为社区。在社区内,节点比较密集,节点具有更多的接触机会,在社区间,节点比较稀疏,节点可能很长一段时间都不会有接触的机会。2002年由girvan和newman提出的gn算法被得到广泛的认可,他们的研究成果证实了社区结构存在于众多的真实网络中,社区发现算法在计算机科学领域的研究逐渐展开,现有的社区发现算法主要有以下几类:以id为标准选取社区中心节点:为网络中的每一个节点赋予一个唯一的标识号id,节点一定的时间周期向网络中广播自身的id号,节点根据收到的id号与自身的id号作对比,选取最大(或者最小)的id号的节点作为中心节点。这种划分算法将标识号id作为选取中心节点的标准,选取方式比较单一,没有考虑到节点的其他特性,如节点的邻居节点的数量,节点的能量等;以节点的连接度为标准选取社区中心节点:节点的连接度是划分社区比较有效的算法之一,节点的连接度是指节点与其他节点连接的数目,及节点的邻居节点个数,某个节点的连接度越大,表明节点的邻居节点个数越多,可以将该节点作为社区的中心节点。这种方法的缺点是中心节点的连接度过大会造成节点能量很快被耗尽,从而会导致社区不稳定;全球定位系统的社区划分:节点配备带有gps功能的便携设备,通过gps可以获取节点之间的物理距离,将物理距离范围内的节点划为一个社区,该方法最大的好处是不需要了解全网的拓扑结构,然而由于节点需要gps功能,该方法的应用场景收到了诸多的限制。以上的社区划分方法虽然能够在一定程度内划分社区的结构,然而这些方法选取的标准是节点的中心度、速度、gps定位技术等,这些方法虽然在一定程度上可以将节点划分到指定的社区中,然而并没有考虑节点的社会性特性,尤其是在以人为中心的机会网络中,节点被视为携带智能设备的人,其移动必然受到人的社会性运动的影响,人的社会性运动必然受到人的个体意识、需求、兴趣爱好等因素的影响。在实际生活中,原本分散的人群可能会受到某种特定的需求而聚集到一起,这些聚集到一起的人关系也会更加亲密,同时交流的时间会更长。针对不同的兴趣爱好,有些地方去的次数会更加平凡,停留的时间也会更长。因此人的社会性特征对社区的划分具有重要的作用。因此,从节点的社会性特征这一角度出发需要提出一种专门针对以人为节点的社区划分方法。技术实现要素:发明目的:本发明提供了一种基于兴趣空间的社区划分方法,能够考虑节点的社会性进行节点社区划分使得社区划分相对稳定。技术方案:一种基于兴趣空间的社区划分方法,该方法为网络中的每一个用户分配一个独立的标签,根据标签来划分社区,标签相同的用户视为同一个社区。初始时,每一个用户各自形成一个社区。为每一个用户设置兴趣空间向量,该兴趣空间向量表示网络中每一位用户对每一种消息的感兴趣程度。我们用无向图g(v,e)来表示网络的拓扑结构,其中v代表节点集,e代表节点与邻居节点之间的边,为每一条边赋予一个权值因子w(i,k),该权值表示节点i与其邻居节点兴趣的相似程度,每一次从邻居节点中选取权值最大的节点的社区标签作为该节点的社区标签,经过以一段时间的迭代后,节点的社区标签收敛,此时,具有相同兴趣的节点就属于一个社区。该方法具体步骤如下:步骤一:节点i根据自身的兴趣爱好以及对网络中n种类型消息的感兴趣程度,设置自身的兴趣空间向量ii并为每一个节点分配一个社区标签ci,并将它保存在节点的缓存中。用户兴趣空间向量表示用户节点对网络中每种消息的感兴趣程度;用户节点i的兴趣空间向量定义为:ii={mi1,mi2…mij…min}其中,mij表示节点i对第j种消息的感兴趣程度,j=(1,2…n),并且满足0≤mij≤1且节点根据自身的兴趣情况,输入mij。社区标签:网络中的用户节点在初始化时会给该用户节点赋予一个唯一的社区标签,并用ci表示ci指用户节点i的社区标签;权值因子w(i,k):权值因子w(i,k)表示用户节点i与其邻居节点k的兴趣相似程度;用户节点i与其邻居节点k的兴趣相似度通过余弦相似公式计算,即其中ii为节点i的兴趣空间向量,ik为节点k的兴趣空间向量,||ii||为节点i兴趣空间向量的模,||ik||为节点k的兴趣空间向量的模。步骤二:待节点全部进入网络中,网络的结构趋于稳定,每个节点向网络中广播握手报文。节点在广播握手报文的同时也在接收其他节点的握手报文。握手报文里的内容有节点的社区标签以及节点的兴趣空间,节点i的握手报文的格式为:表1节点i的握手报文节点的社区标签节点的兴趣空间ciii步骤三:经过一段时间广播和接收握手报文后,节点知道自己的邻居节点,生成一个邻居节点表,邻居节点表保存了节点的邻居节点、邻居节点的社区标签以及权值因子w(i,k),节点i的邻居节点表的定义如下:表2节点i的邻居节点表步骤四:节点i获取每一个邻居节点k的兴趣空间向量,并通过余弦相似定理的计算公式计算出节点i与每一个邻居节点k的权值因子w(i,k),将它写入邻居节点表中权值因子的一列。步骤五:根据节点先来后到的顺序,给节点排序,排序表用s(a,b…n)表示,s[0]=a表示节点a第一个进入网络的节点,s[n-1]=n表示节点n是最后一个进入网络的节点。步骤六:从排序表s(a,b…n)中第一个节点开始,初始时刻节点i表示集合s里的第一个节点,进入步骤七;步骤七:节点i查看它的邻居节点表,如果邻居节点表中节点的社区标签没有统一,则转步骤八,如果邻居节点的社区标签统一,也就是说邻居节点表里的社区标签全部一样,则转步骤九。步骤八:节点i依次比较邻居节点表里的权值因子,选出权值因子最大的节点的社区标签作为节点i的社区标签,如果有多个最大值相等的邻居节点,则随机从这些邻居节点中挑选一个,并将该节点i的社区标签改为该邻居节点的社区标签。节点i的获得新的社区标签后需要向其邻居节点发送一个通知报文,该通知报文的作用是通知邻居节点更新节点i的社区标签。通知报文的定义如下:表3通知报文节点i新的社区标签ci步骤九:邻居节点表里的标签统一,也就表示节点i的邻居节点所属一个社区,如果节点i的标签已经是邻居节点的标签,则节点i不更新社区标签,如果节点i的社区标签不是邻居节点的社区标签,则更新节点i的社区标签为邻居节点i的社区标签,并发送通知报文给节点i的邻居节点。步骤十:节点i是否是集合s中最后一个节点,如果是,则转步骤十一,如果不是,则从集合s中选取在节点i后面的节点作为新的节点i,转步骤七。步骤十一:集合s中的节点的社区标签有没有更新过,若果有,则转步骤六,如果没有,则转步骤十二。步骤十二:基于兴趣空间的社区划分完毕,输出所有社区,并且输出所属社区的所有节点。有益效果:本发明与现有技术比较,具有的优点是:1、考虑了节点的兴趣属性,能够将具有相同兴趣的节点划分在一个社区内;2、该方法具有较好的收敛性,兴趣爱好相同的节点能够很快收敛的统一个社区;3、节点的兴趣在很长一段时间内不会随机变化,该兴趣特征具有一定的稳定性,因此根据兴趣空间划分出来的社区在一定时间内相对稳定。附图说明图1是本发明节点的网络结构图。图2是本发明节点经过步骤一至步骤五后的网络结构图。图3是本发明节点的第一次标签变化图。图4是本发明节点的第二次标签变化图。图5是本发明节点社区划分成功图。图6是本发明本发明方法步骤流程图。具体实施方式一种基于兴趣空间的社区划分方法,假设网络中有四种类型的消息,分别是m1,m2,m3,m3;网络中有18个节点,他们分别用a,b,c,d,e,f,g,h,i,j,k,l,n,m,o,p,q,x来表示,网络结构如图1所示。步骤一:节点根据自身的兴趣爱好以及对网络中4种类型消息的感兴趣程度,设置自身的兴趣空间向量ii并为每一个节点分配一个社区标签ci,并将它保存在节点的缓存中。如下表所示:步骤二:每个节点向网络中广播握手报文,节点在广播握手报文的同时也在接收其他节点的握手报文。步骤三:经过一段时间广播和接收握手报文后,节点知道自己的邻居节点,生成一个邻居节点表。步骤四:节点i获取每一个邻居节点的兴趣空间向量,并计算出权值因子,将它写入邻居节点表中权值因子的一列。步骤五:根据节点先来后到的顺序,给节点排序,其中:s=(a,b,c,d,e,f,g,h,i,j,k,l,n,m,o,p,q,x)步骤二至步骤五完成后,得到其邻居节点表如下表所示:更新后的网络结构图为图2:上述邻居节点表选取的邻居节点采用随机分配的形式,也可以采取固定数量的形式选取邻居节点。步骤六:从排序表s中第一个节点a开始。步骤七:节点a查看它的邻居节点表,如果邻居节点表中节点的社区标签没有统一,则转步骤八,如果邻居节点的社区标签统一,也就是说邻居节点表里的社区标签全部一样,则转步骤九。步骤八:节点a依次比较邻居节点表里的权值因子,选出权值因子最大的节点的社区标签作为节点a的社区标签,如果有多个最大值相等的邻居节点,则随机从这些邻居节点中挑选一个,并将该节点a的社区标签改为该邻居节点的社区标签。节点a的获得新的社区标签后需要向其邻居节点发送一个通知报文,该通知报文的作用是通知邻居节点更新节点a的社区标签。步骤九:邻居节点表里的标签统一,也就表示节点a的邻居节点所属一个社区,如果节点a的标签已经是邻居节点的标签,则节点a不更新社区标签,如果节点a的社区标签不是邻居节点的社区标签,则更新节点a的社区标签为邻居节点i的社区标签,并发送通知报文给节点a的邻居节点。步骤十:检查节点a是否是集合s中最后一个节点,由于a不是集合s中最后一个节点,则从集合s中选取在节点a后面的节点b作为新的节点,转步骤七。经过步骤七至步骤十,排序表s中的节点从第一个节点到最后一个节点的社区标签第一次更新完毕。社区标签发生变化的节点如下表所示:网络中节点的标签变化如图3所示:步骤十一:由于集合s中有标签更新过,则继续转步骤六。经过步骤七至步骤十,排序表s中的节点从第一个节点到最后一个节点的社区标签第二次更新完毕。只有一个节点的社区标签发生变化,如下表所示:节点节点旧的社区标答节点新的社区标答icmcn网络节点的标签变化如图4所示:步骤十二:基于兴趣空间的社区划分完毕,输出所有社区,并且输出所属社区的所有节点。网络中节点的社区划分图为图5:其中属于cb社区的节点有:a,b,c,d,h,f,g,该社区内的节点对消息m1感兴趣。其中属于ck社区的节点有:e,k,p,o,该社区内的节点对消息m4感兴趣。其中属于cx社区的节点有:j,q,x,该社区内的节点对消息m3感兴趣。其中属于cn社区的节点有:i,l,m,n,该社区内的节点对消息m2感兴趣。以上所述仅是本发明的优选实施方式,应当指出:对于本
技术领域
的技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1