基于k桁架建立社交网络中关键关系的方法
技术领域
本发明涉及多媒体社交网络
技术领域
,尤其涉及一种基于k桁架建立社交网络中关键关系的方法。背景技术
近年来,研究者对用户在社交网络的参与度引起了极大的兴趣。在现实生活中,人们的生活离不开社交网络,例如微博、脸书、推特之类的社交网络在我们生活中起到了至关重要的作用。在社交网络研究中,用户关系强度通常被视为社交网络中最基本和最重要的网络特征。现有研究中已经提出了许多社交网络模型,如k核、k桁架和k团等。而k桁架不仅强调参与活动的用户(即朋友的数量),而且还要求用户之间(即共同的朋友)有很强的联系。因此,我们可以通过k桁架找到最有价值的未建立连接的关键边,通过鼓励政策使其建立联系,从而维持网络的稳定性,并且我们还可以评估社交网络的参与度。通过k桁架我们还可以发现许多其他复杂网络中紧密联系的元素,这些复杂网络包括因特网,万维网,蜂窝网络和大脑网络等。k桁架中的边数可以用来衡量网络结构的稳定性,而发现k桁架中有潜力的关键联系,这些联系的增加会极大地稳固基于k桁架的社交网络。然而在现有的研究中,发现基于k桁架的社交网络中有潜力的关键联系的效率并不高。
发明内容
在社交网络中,用户之间的关系强度会显著影响社交网络的稳定性。本发明通过使用k桁架来增强社交网络的稳定性,它满足两个条件:其中的任意一条边都被包含在至少(k-2)个三角形中;是极大的,即任何它的超图都不是k桁架。
考虑到k桁架的属性,本发明提出新的修剪策略,从而更有效地缩减候选集的大小。与此同时,本发明结合新的修剪策略开发了高效的KTA算法,从而能够在大型k桁架社交网络上快速找到最为关键的用户关系。
本发明的目的是通过以下技术方案实现的:一种基于k桁架建立社交网络中关键关系的方法,该方法包括:
通过三种修剪策略过滤图G中不必要的点和边,包括:
引理1:用H(k)定义为剥离边集合,即H(k)等于k桁架的边除去(k+1)桁架的边;给定图G,如果所建立的关键关系即候选边e至少有一个跟随者,则需满足条件:1)在图G中边e至少被包含在(k-2)个三角形中;2)至少可以找到一个包含边e的三角形,使得除去e的另外两条边都属于(k-1)桁架,并且这两条边中至少有一条边在H(k-1)中;所述跟随者为原本不满足k桁架,由于关键关系的建立而留在k桁架中的边;
引理2:根据删除H(k-1)中不满足k桁架的边的顺序,将H(k-1)中的边递归的划分为不同的层,每删除一层不满足要求的边时,将本次删除记为第i次删除,删除的边集合记为L(i),直到H(k-1)中的所有边都添加到相应的层中;若删除次数为s,则L(s+1)为k桁架的边;从第一次删除开始到最后一次删除结束,所有删除的边构成剥离层结构L,即L=H(k-1);同时,使用l(e)来表示边e的层索引,即l(e)=i;
用图Ge表示图G中包含从边e所在的层L(i)开始到最后的层L(s+1)所有的边以及这些边所连接的点,则S+(e)表示在Ge中包含边e的三角形的个数;
给定图G,如果存在一个包含边e的三角形,该三角形另外两条边分别为e1和e2,使得e1和e2的层索引满足l(e1)≤l(e2),并且S+(e1)=k-3,则边e为候选边;
引理3:给定两条候选边e'和e”,在k桁架中添加e'后所求得的第一层跟随者都属于在k桁架中添加e”后所求得的跟随者,则跳过e',只需计算候选边e”;
通过最大化k桁架贪心启发算法,进行b轮迭代贪心得到关键边集合B,从而在社交网络中迅速找到关键用户的联系,包括:
步骤一,根据引理1得到图G的候选边集合M;
步骤二,计算剥离层结构L;
步骤三,利用引理2过滤候选边集合M中的部分边,得到候选边集合M';
步骤四,利用引理3过滤候选边集合M'中的部分边,得到候选边集合M”;
步骤五,在候选边集合M”中选择跟随者数量最多的边记为u*,将u*放入关键边集合B中,并返回步骤一,直至完成b轮迭代找出预设的b个关键边为止,输出关键边集合B。
进一步地,所述步骤一包括:根据k值求得(k-1)桁架和k桁架,并根据引理1求得H(k-1);遍历图G中任意不相同且没有边的两点,假设这两点之间的边为e,根据引理1判断e是否为候选边,如果满足条件则加入候选边集合M中。
进一步地,所述步骤二包括:将迭代次数i记为1,如果H(k-1)中仍存在边e,则判断在(k-1)桁架中包含边e的三角形数目是否少于k-2,如果是,则将e加入L(i)中,并将e从(k-1)桁架移除,同时将迭代次数i加1;若H(k-1)中不存在边,则将所有的k桁架中的边放入L(i)中,并返回剥离层结构L。
进一步地,所述步骤四包括:对候选边集合M'和需要返回的候选边集合M”,对于M'中的边e'和M”中的边e”,若在k桁架中添加e'后所求得的第一层的跟随者都属于在k桁架中添加e”后所求得的跟随者,则继续寻找候选边集合M'中的边,否则计算e'的跟随者数量,并将e'放入M”中,直至M'中所有的边遍历完成,返回候选边集合M”。
本发明还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述基于k桁架建立社交网络中关键关系的方法中的步骤。
本发明还提供一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述基于k桁架建立社交网络中关键关系的方法中的步骤。
本发明的有益效果为:在社交网络中,用户之间的关系强度会显著影响社交网络的稳定性。本发明通过使用k桁架来增强社交网络的稳定性,它满足两个条件:其中的任意一条边都被包含在至少(k-2)个三角形中;是极大的,即任何它的超图都不是k桁架。考虑到k桁架的属性,本发明提出新的修剪策略,从而更有效地缩减候选集的大小。与此同时,本发明结合新的修剪策略开发了高效的KTA算法,从而能够在大型社交网络上快速找到最为关键的用户关系。本发明方法的应用对寻找社交网络最为关键的用户关系有着极大的效益,对现实生活中增强社交网络的稳定性有着极大的帮助。
附图说明
图1是本发明实施例提供的基于k桁架建立社交网络中关键关系的方法流程图;
图2是本发明实施例提供的原始社交网络的示意图;
图3是本发明实施例提供的原始社交网络中的k桁架的示意图;
图4是本发明实施例提供的增加关键关系后的社交网络的示意图;
图5是本发明实施例提供的增加关键关系后社交网络中的k桁架的示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
本申请提出的一种基于k桁架建立社交网络中关键关系的方法,该方法包括三种新颖的修剪策略和高效的建立k桁架社交网络中关键关系的算法(KTA算法)。下面详细说每部分的实现过程。
三种新颖的修剪策略是指过滤图G中不必要的点和边,从而显著缩减搜索空间,具体包括以下内容:
引理1:用H(k)定义为剥离边集合,即H(k)等于k桁架的边除去(k+1)桁架的边;给定图G,如果所建立的关键关系即候选边e至少有一个跟随者,则需满足条件:1)在图G中边e至少被包含在(k-2)个三角形中;2)至少可以找到一个包含边e的三角形,使得除去e的另外两条边都属于(k-1)桁架,并且这两条边中至少有一条边在H(k-1)中;所述跟随者为原本不满足k桁架,由于关键关系的建立而留在k桁架中的边;
证明:边e的桁架度表示e属于k桁架但不属于(k+1)桁架的最大整数k。我们通过证明如果不满足条件,边e将没有跟随者来证明引理。对于第一个条件,假设在图G中添加边e后,包含边e的三角形个数少于k-2时,根据k桁架的定义,它不会影响k桁架或有助于其他边的支持。因此,边e不会有任何跟随者。对于第二个条件,如果在包含边e的三角形中,除去e的另外两条边都在k桁架中但不在H(k-1)中,这意味着它们最初已经在k桁架中,则它们不是e的跟随者。如果在包含边e的三角形的另外两条边有一条边不在k-1桁架中,则该边不在k桁架中,因为插入一条边后,每条边的桁架度最多改变1。那么,边e也没有任何跟随者。因此,在包含e的三角形中,除去e的两条边中至少有一条边在H(k-1)中。引理得证。
引理2:根据删除H(k-1)中不满足k桁架的边的顺序,将H(k-1)中的边递归的划分为不同的层,每删除一层不满足要求的边时,将本次删除记为第i次删除,删除的边集合记为L(i),直到H(k-1)中的所有边都添加到相应的层中;若删除次数为s,则L(s+1)为k桁架的边;从第一次删除开始到最后一次删除结束,所有删除的边构成剥离层结构L,即L=H(k-1);同时,使用l(e)来表示边e的层索引,即l(e)=i;
用图Ge表示图G中包含从边e所在的层L(i)开始到最后的层L(s+1)所有的边以及这些边所连接的点,则S+(e)表示在Ge中包含边e的三角形的个数;
给定图G,如果存在一个包含边e的三角形,该三角形另外两条边分别为e1和e2,使得e1和e2的层索引满足l(e1)≤l(e2),并且S+(e1)=k-3,则边e为候选边;
证明:由于S+(e1)=k-3且l(e1)≤l(e2),这意味着在删除k-1桁架的边时,添加的边e可以对e1提供支持。然后,e1将成为e的跟随者。引理得证。
引理3:给定两条候选边e'和e”,在k桁架中添加e'后所求得的第一层跟随者都属于在k桁架中添加e”后所求得的跟随者,则跳过e',只需计算候选边e”;
证明:当添加边时,首先会给能与该边形成新三角形的边提供支持。然后,新三角形的边将进一步影响级联的其他边。因此,如果在k桁架中添加e'后所求得的第一层的边都属于在k桁架中添加e”后所求得的边,则意味着添加e”可以为添加e'后所求得的边提供相同的支持。也就是说,在k桁架中添加e'后所求得的边是在k桁架中添加e”后所求得的边的子集。引理得证。
高效的建立k桁架社交网络中关键关系的算法(KTA算法),基于以上三种新颖的修剪策略,如图1所示,具体包括以下步骤:
步骤一,根据引理1得到图G的候选边集合M;具体为:根据k值求得(k-1)桁架和k桁架,并根据引理1求得H(k-1);遍历图G中任意不相同且没有边的两点,假设这两点之间的边为e,根据引理1判断e是否为候选边,如果满足条件则加入候选边集合M中。
步骤二,计算剥离层结构L;具体为:将迭代次数i记为1,如果H(k-1)中仍存在边e,则判断在(k-1)桁架中包含边e的三角形数目是否少于k-2,如果是,则将e加入L(i)中,并将e从(k-1)桁架移除,同时将迭代次数i加1;若H(k-1)中不存在边,则将所有的k桁架中的边放入L(i)中,并返回剥离层结构L。
步骤三,利用引理2过滤候选边集合M中的部分边,得到候选边集合M'。
步骤四,利用引理3过滤候选边集合M'中的部分边,得到候选边集合M”;具体为:对候选边集合M'和需要返回的候选边集合M”,对于M'中的边e'和M”中的边e”,若在k桁架中添加e'后所求得的第一层的跟随者都属于在k桁架中添加e”后所求得的跟随者,则继续寻找候选边集合M'中的边,否则计算e'的跟随者数量,并将e'放入M”中,直至M'中所有的边遍历完成,返回候选边集合M”。
步骤五,在候选边集合M”中选择跟随者数量最多的边记为u*,将u*放入关键边集合B中,并返回步骤一,直至完成b轮迭代找出预设的b个关键边为止,输出关键边集合B。
图2是本发明实施例提供的原始社交网络的示意图,若输入的k值为4,b值为1,则得到的4桁架由{u4,u5,u6,u7,u9}组成,即如图3所示。而图4是本发明实施例提供的快速生成增加关键关系后的社交网络的示意图,其中关键边集合B为{(u3,u9)},图5是增加边(u3,u9)(即虚线)后新得到的4桁架,由{u1,u2,u3,u4,u5,u6,u7,u8,u9}组成。
此外,本发明在九个真实世界的社交网络上进行了广泛的实验,以评估所提出方法的有效性和高效性。为了评估所提出方法的性能,我们通过改变参数k和b进行实验。本发明用算法消耗时间来衡量所提出方法的高效性。对于每个设置,本发明运行10次并取平均值。所有程序均在标准的c++中实现,所有实验均在配备Intel i5-9600KF 3.7GHz CPU和64GB RAM主内存的PC上进行。实验表明,本发明方法比基础的贪心算法快2个数量级。
在一个实施例中,提出了一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中基于k桁架建立社交网络中关键关系的方法中的步骤。
在一个实施例中,提出了一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述各实施例中基于k桁架建立社交网络中关键关系的方法中的步骤。其中,存储介质可以为非易失性存储介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁盘或光盘等。
以上所述仅是本发明的优选实施方式,虽然本发明已以较佳实施例披露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何的简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种挖掘符号网络中最大有符号θ团的方法