一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于节点热度采样的图流三角形计数方法及装置与流程

2022-04-24 23:03:19 来源:中国专利 TAG:


1.本发明涉及数据处理技术领域,具体而言,涉及一种基于节点热度采样的图流三角形计数方法及装置。


背景技术:

2.三角形计数是图数据分析的基础之一,具有广泛的应用场景。例如,垃圾邮件检测、推荐系统、社团发现、社交网络等。但由于图流的规模巨大及计算机内存空间的有限性,将图流的边全部存储在内存中,再进行准确地计算三角形数目是不可取的;而将图流数据存储在外部存储器(硬盘、光盘等)中,其与内存进行数据传输时,会极大的影响处理效率,无法满足实时反馈的需求。因此,目前大多技术采取采样的方式,近似的计算图流中的三角形数目,经过观察可以知道热度节点(节点度数大于一定阈值),从而更易形成三角形。
3.申请号为201910233454.6的中国专利提出了一种“关系网络中实体间连接关系特征的获取方法及系统”,同时引入了基础蓄水池和渐增蓄水池,在利用蓄水池抽样得到孤立边时,能够捕获与这些孤立边具有连接关系的边,并得到实际网络实体之间的连接关系特征。这种方法以是否与基础蓄水池形成三角形作为能够进去渐增蓄水池的一个重要因素,因此,在其蓄水池/基础蓄水池空间一定的情况下,当图流规模过大时孤立边采样率较低,影响三角形数目评估的准确性。
4.而申请号为201810499136.x的中国专利提供了“一种基于随机抽样的数据图流中的三角形计数方法及装置”,其对数据流图中的三角形计数评估采用了三个模块单元,即为抽样单元、子图统计单元和原图估算单元。具体来讲,首先,是对接收的原始数据流图中的边进行抽样得到子图,并计算存留比;然后,对抽样获得的子图中的三角形的数量进行统计;最后,再根据统计得到的子图中三角形的数量及所述的存留比,估算接收到的原始数据流图中的三角形数量。但是,这种方法仅支持全局三角形计数评估,不能对局部三角形数量进行评估,且其抽样方法在抽样空间一定的情况下,采样率也有可能受到图流规模的影响而降低,从而影响三角形评估的准确性。


技术实现要素:

5.为了解决上述问题,本发明提供一种基于节点热度采样的图流三角形计数方法及装置,通过增加热度节点特征的分析,将图流中边的节点划分为热度节点与非热度节点,充分利用热度节点更易形成三角形的特征,在抽样空间一定的情况下为热度节点设置更高的采样率,用以发现更多的三角形数目,从而提高三角形评估结果的准确性。同时,本发明不但支持全局三角形计数评估,还能够对局部三角形数量进行评估。
6.为达到上述目的,本发明提供了一种基于节点热度采样的图流三角形计数方法,其包括以下步骤:
7.步骤s0:初始化计数单元,将计数单元中全局三角形数目与局部三角形数目均设为0,并清空采样集;
8.步骤s1:将边流输入计数单元,采样单元从计数单元获取边流并进行采样,所述边流中的边均为无向边,其中,采样单元进行采样的过程具体为:
9.步骤s101:当一无向边e1到达采样单元时,采样单元判断无向边e1的两个顶点u和v是否为热度节点,当判断u和v的任一顶点为热度节点时,进入步骤s102;当判断u和v的任一顶点为非热度节点时,进入步骤s104;
10.步骤s102:为热度节点赋以采样概率q,并将热度节点存储至热度节点型蓄水池中;
11.步骤s103:根据热度节点型蓄水池中所有热度节点的节点度数的最小值更新热度节点阈值,以用于下一条无向边的判断;
12.步骤s104:为非热度节点赋以采样概率p,并将非热度节点存储至非热度节点型蓄水池中,其中,q大于p;
13.步骤s105:重复步骤s101~s104用以对下一条达到的无向边的顶点进行判断;
14.步骤s2:将所述热度节点型蓄水池与所述非热度节点型蓄水池设置于采样集中;
15.步骤s3:计数单元根据步骤s101~步骤s105得到的当前无向边的两个顶点的采样结果,评估当前时刻的全局三角形数目和局部三角形数目。
16.在本发明一实施例中,其中,步骤s101中采样单元判断u和v的任一顶点是否为热度节点具体为:采样单元中预设热度节点阈值,在获取顶点u和v时获取对应的节点度数,并将节点度数与热度节点阈值比较,当节点度数大于热度节点阈值时,判断对应顶点为热度节点,否则为非热度节点。
17.在本发明一实施例中,其中,步骤s3的具体过程包括:
18.步骤s301:从采样集中获取无向边e1的两个顶点u和v的共同邻居顶点的集合;
19.步骤s302:从共同邻居顶点的集合中获取任一共同邻居顶点c,并将顶点u、v和共同邻居顶点c作为三角形的三个顶点;
20.步骤s303:评估无向边e1与共同邻居顶点c组成局部三角形的数目,具体为:
21.如果顶点u、v与共同邻居顶点c均为热度节点,则无向边e1与共同邻居顶点c组成局部三角形的数目τ=1/q2;
22.如果顶点u和共同邻居顶点c的组合与顶点v和共同邻居顶点c的组合只有一个组合的顶点全部为热度节点,则无向边e1与共同邻居顶点c组成局部三角形的数目τ=1/(p*q);
23.如果以上两种情况均不存在,则无向边e1与共同邻居顶点c组成局部三角形的数目τ=1/p2;
24.步骤s304:将得到的局部三角形的数目τ与上一时刻局部三角形数目相加得到当前时刻的局部三角形数目;
25.步骤s305:遍历步骤s301中共同邻居顶点的集合中所有共同邻居顶点,并重复步骤s302~s304,得到无向边e1的局部三角形数目为v


26.步骤s306:将从步骤s303中得到的局部三角形的数目τ与上一时刻全局三角形数目相加得到当前时刻的全局三角形数目;
27.步骤s307:遍历步骤s301中共同邻居顶点的集合中所有共同邻居顶点,并重复步骤s302~s303及s306,得到无向边e1到来时的全局三角形数目;
28.步骤s308:重复步骤s301~s307对边流陆续的多条无向边e2、e3、
……ei
进行评估,得到局部三角形数目的集合{v

,v

,v

……viδ
}与全局三角形数目δ,其中,v

为无向边e2的局部三角形数目,v

为无向边e3的局部三角形数目,v

为无向边ei的局部三角形数目。
29.为达到上述目的,本发明提供了一种基于节点热度采样的图流三角形计数装置,其包括:
30.一采样单元,用于对输入的边流进行采样以进行热度节点特征判断;
31.一计算单元,作为所述边流的输入端并与所述采样单元连接,用于根据所述边流输入的当前边及其采样结果评估三角形数目;
32.一采样集,分别与所述采样单元和所述计算单元连接,用于根据采样单元采样结果更新数据并提供给计算单元,其中,所述采样集中包括热度节点型蓄水池与非热度节点型蓄水池。
33.本发明的基于节点热度采样的图流三角形计数方法及装置,与现有技术相比,针对未知规模的图流可以同时评估全局三角形的数目与局部三角形的数目,并且利用了热度节点更易形成三角形的特征,进一步提高了对三角形数目评估结果的准确性。
附图说明
34.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
35.图1为本发明一实施例中的架构示意图;
36.图2为本发明一实施例中的热度节点采样流程图。
37.附图标记说明:100-边流;10-采样单元;20-计数单元;30-采样集;s101~s104-步骤。
具体实施方式
38.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
39.图1为本发明一实施例中的架构示意图,图2为本发明一实施例中的热度节点采样流程图,如图1和图2所示,本实施例提供了一种基于节点热度采样的图流三角形计数方法,其包括以下步骤:
40.步骤s0:初始化计数单元(20),将计数单元(20)中全局三角形数目(例如δ)与局部三角形数目(例如{v

,v

,v

……
})均设为0,并清空采样集(30);
41.步骤s1:将边流(100)输入计数单元(20),采样单元(10)从计数单元(20)获取边流(100)并进行采样,边流(100)中的边均为无向边;图流中顺序产生边即为边流(100),边流(100)中包含多条边(如图中的e1、e2、
……ei
)。其中,采样单元(10)进行采样的过程具体为:
42.步骤s101:当一无向边e1到达采样单元(10)时,采样单元(10)判断无向边e1的两个
顶点u和v是否为热度节点,当判断u和v的任一顶点为热度节点时,进入步骤s102;当判断u和v的任一顶点为非热度节点时,进入步骤s104;
43.在本实施例中,其中,步骤s101中采样单元(10)判断u和v的任一顶点是否为热度节点的具体过程为:在采样单元(10)中预设热度节点阈值,在获取顶点u和v时获取对应的节点度数,并将节点度数与热度节点阈值比较,当节点度数大于热度节点阈值时,判断对应顶点为热度节点,否则为非热度节点。
44.步骤s102:为热度节点赋以采样概率q,并将热度节点存储至热度节点型蓄水池中;
45.步骤s103:根据热度节点型蓄水池中所有热度节点的节点度数的最小值更新热度节点阈值,以用于下一条无向边的判断;
46.步骤s104:为非热度节点赋以采样概率p,并将非热度节点存储至非热度节点型蓄水池中,其中,q大于p;由于热度节点有着更容易产生三角形的特征,因此本发明设置q大于p,能够增大后续查找到的三角形数目,从而提高三角形数目的评估准确性。
47.步骤s105:重复步骤s101~s104用以对下一条达到的无向边的顶点进行判断;
48.步骤s2:将所述热度节点型蓄水池与所述非热度节点型蓄水池设置于采样集(30)中。
49.步骤s3:计数单元(20)根据步骤s101~步骤s105中得到的当前无向边的两个顶点的采样结果,评估当前时刻的全局三角形数目和局部三角形数目。
50.在本实施例中,其中,步骤s3的具体过程包括:
51.步骤s301:从采样集(30)中获取无向边e1的两个顶点u和v的共同邻居顶点的集合;
52.步骤s302:从共同邻居顶点的集合中获取任一共同邻居顶点c,并将顶点u、v和共同邻居顶点c作为三角形的三个顶点;
53.步骤s303:评估无向边e1与共同邻居顶点c组成局部三角形的数目,具体为:
54.如果顶点u、v与共同邻居顶点c均为热度节点,则无向边e1与共同邻居顶点c组成局部三角形的数目τ=1/q2;
55.如果顶点u和共同邻居顶点c的组合与顶点v和共同邻居顶点c的组合只有一个组合的顶点全部为热度节点,则无向边e1与共同邻居顶点c组成局部三角形的数目τ=1/(p*q);
56.如果以上两种情况均不存在,则无向边e1与共同邻居顶点c组成局部三角形的数目τ=1/p2;
57.其中,顶点u和共同邻居顶点c的组合代表顶点u与共同邻居顶点c所在三角形的一条边,同理,顶点v和共同邻居顶点c的组合代表顶点v与共同邻居顶点c所在三角形的另一条边,两条边与无向边e1可以组成局部三角形的概率与前述两个组合得到的边是否均落入热度节点型蓄水池有关,如果均落入则以较高的采样概率q计算,如果未落入则以较低的采样概率q来计算,以此可以得到无向边e1与每个共同邻居顶点组成局部三角形的概率。
58.步骤s304:将得到的局部三角形的数目τ与上一时刻局部三角形数目相加得到当前时刻的局部三角形数目;由于局部三角形数目的初始值为0,则对第一条边例如e1进行局部三角形评估时,当前时刻的局部三角形数目就等于前面得到的局部三角形的数目τ本身。
59.步骤s305:遍历步骤s301中共同邻居顶点的集合中的所有共同邻居顶点,并重复步骤s302~s304,得到无向边e1的局部三角形数目为v

;也就是说,经过遍历,可以得到无向边e1与所有共同邻居顶点组成局部三角形的总数目。
60.步骤s306:将从步骤s303中得到的局部三角形的数目τ与上一时刻全局三角形数目相加得到当前时刻的全局三角形数目;由于全局三角形数目的初始值为0,则对第一条边例如e1进行全局三角形评估时,当前时刻的全局三角形数目就等于前面得到的局部三角形的数目τ本身。
61.步骤s307:遍历步骤s301中共同邻居顶点的集合中的所有共同邻居顶点,并重复步骤s302~s303及步骤s306,得到无向边e1到来时的全局三角形数目;
62.步骤s308:重复步骤s301~s307对边流(100)陆续的多条无向边e2、e3、
……ei
进行评估,得到局部三角形数目的集合{v

,v

,v

……viδ
}与全局三角形数目δ,其中,v

为无向边e2的局部三角形数目,v

为无向边e3的局部三角形数目,v

为无向边ei的局部三角形数目。
63.下面将结合部分代码将本实施的方法流程进行说明,首先定义:
64.输入:边流的集合(由多条无向边e组成)为{e1,e2,e3……
},预设采样概率p与采样概率q,其中q大于p,预设热度节点阈值为t;
65.输出:全局三角形数目δ,局部三角形数目{v

,v

,v

……
};
66.初始化:δ=0,{v

,v

,v

……
}均为0;
67.当任一无向边e到达时,对应无向边e的两个顶点分别为u和v,示意代码如下:
68.for each edge e in graph streams do
69.u=e.firstvertex
70.v=e.secondvertex
71.由于初始时的所有值均为0,也就是说采样集(30)也为空,因此需要先根据预设热度节点阈值t判断两个顶点u和v是否为热度节点,示意代码如下:
[0072][0073][0074]
获取对应无向边e的两个顶点u和v的共同邻居顶点集合common,由于u和v均可能分别存在多个邻居顶点,而只有u和v的共同邻居顶点才有可能组成三角形,因此,此处需要获取到u和v的所有邻居顶点的集合,示意代码如下:
[0075]
common=u.neighbour∩v.neighbor
[0076]
然后,设u和v的其中一个共同邻居顶点为c,遍历共同邻居顶点集合中的所有共同
邻居顶点,以不同节点类型的采样概率,例如热度节点的采样概率为q,非热度节点的采样概率为p,且q大于p,对局部三角形数目和全局三角形数目进行估算,示意代码如下:
[0077][0078]
其中,(c,u)代表c和u组成的边,(v,c)代表c和v组成的边,每次计算得到的新增三角形的数目为τ。
[0079]
遍历过程是对共同邻居顶点集合中的每个共同邻居顶点分别进行计算,并累加得到当前时刻的局部三角形数目v
δ
和全局三角形数目δ,示意代码如下:
[0080]vδ
=v
δ
τ
[0081]
δ=δ τ
[0082]
循环以上过程对每条输入的无向边{e1,e2,e3……
}到达时的局部三角形数目和全局三角形数目进行估算,得到全局三角形数目δ及局部三角形数目的集合{v

,v

,v

……
}。
[0083]
再请参考图1,本发明的另一实施例还提供了一种基于节点热度采样的图流三角形计数装置,用于执行基于节点热度采样的图流三角形计数方法,其包括:
[0084]
一采样单元(10),用于对输入的边流(100)进行采样以进行热度节点特征判断;
[0085]
一计算单元(20),作为边流(100)的输入端并与采样单元(10)连接,用于根据边流(100)输入的当前边及其采样结果评估三角形数目;
[0086]
一采样集(30),分别与采样单元(10)和计算单元(20)连接,用于根据采样单元采样结果更新数据并提供给计算单元,其中,采样集(30)中包括热度节点型蓄水池与非热度节点型蓄水池,用于分别存放由采样单元(10)判断出的热度节点与非热度节点。
[0087]
本发明的基于节点热度采样的图流三角形计数方法及装置,针对未知规模的图流可以同时评估全局三角形的数目与局部三角形的数目,并且利用了热度节点更易形成三角形的特征,进一步提高了对三角形数目评估结果的准确性。得到的这些三角形数目可以用来挖掘万维网中潜在的语义结构、实时监测网络中的垃圾邮件及评估社交网络的内容质量等现场场景,具有重要的现实意义。
[0088]
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
[0089]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可
以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献