图数据处理方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:27935902 阅读:17 留言:0更新日期:2021-04-02 14:16
本申请涉及一种图数据处理方法、装置、计算机设备和存储介质。所述方法涉及数据挖掘技术,包括:获取有向图,有向图中的有向边以从起始节点指向目的节点表示;根据起始节点的节点标识与目的节点的节点标识之间的指定顺序,将有向边以统一形式表示;生成用于记录有向边的原始边方向的边标记,得到标记后的有向图;基于标记后的有向图中的节点、节点的邻居节点、与节点和邻居节点共同相邻的共同节点两两之间的边标记,识别节点、邻居节点与共同节点构成的三角形的类别。采用本方法能够从有向图中识别出三角形的类别,同时避免三角形的冗余计算,节省计算资源。

【技术实现步骤摘要】
图数据处理方法、装置、计算机设备和存储介质
本申请涉及大数据处理
,特别是涉及一种图数据处理方法、装置、计算机设备和存储介质。
技术介绍
图(Graph)是一种表示一系列对象之间的关系的数据结构,当图中相邻的两个节点之间存在共同节点时,该两个节点与共同节点就可以构成三角形,三角形的数量可以在一定程度上反映该图所表示网络的稠密程度和质量。例如,近年来,随着互联网技术的快速发展,越来越多的用户加入各式各样的社区网络,一个社区网络可以看做是一张图,社区网络中的人对应于图中的节点(Vertex),社区网络中的人际关系对应于图中的边(Edge),社区网络图中三角形的数量可以在一定程度上反映社区网络的稠密程度。目前,一些针对图结构数据的三角形计数方法主要分为两大类,分别是基于节点匹配的三角形计数方法和基于边匹配的三角形计数方法。然而,这两类方法主要应用于无向图(UndirectedGraph),不适于有向图(DirectedGraph)中由边的方向性引起的三角形类别的识别,此外,这两类方法对图中的每个节点都会重复统计三角形,导致每个三角形都会被统计三次,存在严重的冗余计算,占用较多的计算资源。
技术实现思路
基于此,有必要针对上述技术问题,提供一种能够高效地识别有向图中三角形类别的图数据处理方法、装置、计算机设备和存储介质。一种图数据处理方法,所述方法包括:获取有向图,所述有向图中的有向边以从起始节点指向目的节点表示;根据所述起始节点的节点标识与所述目的节点的节点标识之间的指定顺序,将所述有向边以统一形式表示;生成用于记录所述有向边的原始边方向的边标记,得到标记后的有向图;基于所述标记后的有向图中的节点、所述节点的邻居节点、与所述节点和所述邻居节点共同相邻的共同节点两两之间的边标记,识别所述节点、所述邻居节点与所述共同节点构成的三角形的类别;其中,识别的所述三角形的类别,用于生成所述节点的特征向量。一种图数据处理装置,所述装置包括:获取模块,用于获取有向图,所述有向图中的有向边以从起始节点指向目的节点表示;边表示模块,用于根据所述起始节点的节点标识与所述目的节点的节点标识之间的指定顺序,将所述有向边以统一形式表示;边标记模块,用于生成用于记录所述有向边的原始边方向的边标记,得到标记后的有向图;识别模块,用于基于所述标记后的有向图中的节点、所述节点的邻居节点、与所述节点和所述邻居节点共同相邻的共同节点两两之间的边标记,识别所述节点、所述邻居节点与所述共同节点构成的三角形的类别;其中,识别的所述三角形的类别,用于生成所述节点的特征向量。一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:获取有向图,所述有向图中的有向边以从起始节点指向目的节点表示;根据所述起始节点的节点标识与所述目的节点的节点标识之间的指定顺序,将所述有向边以统一形式表示;生成用于记录所述有向边的原始边方向的边标记,得到标记后的有向图;基于标记后的有向图中的节点、所述节点的邻居节点、与所述节点和所述邻居节点共同相邻的共同节点两两之间的边标记,识别所述节点、所述邻居节点与所述共同节点构成的三角形的类别;其中,识别的所述三角形的类别,用于生成所述节点的特征向量。一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:获取有向图,所述有向图中的有向边以从起始节点指向目的节点表示;根据所述起始节点的节点标识与所述目的节点的节点标识之间的指定顺序,将所述有向边以统一形式表示;生成用于记录所述有向边的原始边方向的边标记,得到标记后的有向图;基于标记后的有向图中的节点、所述节点的邻居节点、与所述节点和所述邻居节点共同相邻的共同节点两两之间的边标记,识别所述节点、所述邻居节点与所述共同节点构成的三角形的类别;其中,识别的所述三角形的类别,用于生成所述节点的特征向量。一种计算机程序,所述计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中,计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,所述处理器执行所述计算机指令,使得所述计算机设备执行上述图数据处理方法的步骤。上述图数据处理方法、装置、计算机设备和存储介质,通过将有向图中的有向边,以从起始节点指向目的节点的原始表示形式,按照起始节点与目的节点的节点标识之间的指定顺序,将有向边以统一形式表示,这样后续在统计三角形的数量时,就不会存在同一个三角形被查找到多次的情况,从而避免了三角形的冗余计算,节省了计算资源,运行速度更快,计算资源消耗更低,尤其是能够极大地缓解邻居很多的超级节点带来的计算压力,同时又保证了计算的正确性。同时,对于重新表示的有向边,还通过边标记记录有向边原始的边方向,能够在标记后的有向图中确定三角形的同时识别出三角形的类别,实现了有向图中由边的方向性引起的三角形类别的识别。附图说明图1为一个实施例中图数据处理方法的应用环境图;图2为一个实施例中图数据处理方法的流程示意图;图3为一个实施例中有向图中出边与入边的示意图;图4为一个实施例中有向图的邻接表的示意图;图5为一个实施例中有向图的邻接矩阵的示意图;图6为一个实施例中将有向图中的有向边统一表示的示意图;图7为一个实施例中有向图中三角形的类别的示意图;图8为一个实施例中生成的三角形的类别索引的示意图;图9为另一个实施例中生成的三角形的类别索引的示意图;图10为另一个实施例中图数据处理方法的流程示意图;图11为一个具体的实施例中处理图数据的过程示意图;图12为一个实施例中分布式处理图数据的过程示意图;图13为一个具体的实施例中图数据处理方法的流程示意图;图14为一个实施例中图数据处理装置的结构框图;图15为一个实施例中计算机设备的内部结构图。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。本申请提供的图数据处理方法,涉及到图结构数据的一些概念。图(Graph)是一种表示一系列对象之间的关系的数据结构,图所表示的任一网络中的关系数据,可以采用邻接矩阵或邻接表进行表示。图中的节点(Vertex),是指网络中要分析的对象,每一个网络中的对象对应了图中的一个节点,比如在社区网络中每个用户就是一个节点。图中的边(Edge)是图中两个节点间的连线,用于表示两个节点的关系,比如在社区网络中两个人的关注关系、好友关系,等等。有向图(DirectedGraph)是边具有方向的图,比如用户与用户之间的关注关系,就是有方向的。有向图中边是有方向的,对于一个节本文档来自技高网...

【技术保护点】
1.一种图数据处理方法,其特征在于,所述方法包括:/n获取有向图,所述有向图中的有向边以从起始节点指向目的节点表示;/n根据所述起始节点的节点标识与所述目的节点的节点标识之间的指定顺序,将所述有向边以统一形式表示;/n生成用于记录所述有向边的原始边方向的边标记,得到标记后的有向图;/n基于所述标记后的有向图中的节点、所述节点的邻居节点、与所述节点和所述邻居节点共同相邻的共同节点两两之间的边标记,识别所述节点、所述邻居节点与所述共同节点构成的三角形的类别;/n其中,识别的所述三角形的类别,用于生成所述节点的特征向量。/n

【技术特征摘要】
1.一种图数据处理方法,其特征在于,所述方法包括:
获取有向图,所述有向图中的有向边以从起始节点指向目的节点表示;
根据所述起始节点的节点标识与所述目的节点的节点标识之间的指定顺序,将所述有向边以统一形式表示;
生成用于记录所述有向边的原始边方向的边标记,得到标记后的有向图;
基于所述标记后的有向图中的节点、所述节点的邻居节点、与所述节点和所述邻居节点共同相邻的共同节点两两之间的边标记,识别所述节点、所述邻居节点与所述共同节点构成的三角形的类别;
其中,识别的所述三角形的类别,用于生成所述节点的特征向量。


2.根据权利要求1所述的方法,其特征在于,所述获取有向图,包括:
获取与用户标识对应的支付记录;
根据所述支付记录获得所述用户标识之间的支付交互数据;
根据所述支付交互数据生成有方向的支付网络图,作为所述有向图;
其中,所述支付网络图的节点表示所述用户标识,所述支付网络图中两个节点之间的有向边表示相应的两个用户标识之间存在单向或双向的支付交互事件。


3.根据权利要求1所述的方法,其特征在于,所述获取有向图,包括:
获取与社区网络中用户标识对应的联系人列表;
根据所述联系人列表获得所述用户标识之间的联系人关系数据;
根据所述联系人关系数据生成有方向的社区网络图,作为所述有向图;
其中,所述社区网络图中的节点表示所述用户标识,所述社区网络图中两个节点之间的有向边表示相应的两个用户标识之间存在单向或双向的联系人关系。


4.根据权利要求1所述的方法,其特征在于,所述根据所述起始节点的节点标识与所述目的节点的节点标识之间的指定顺序,将所述有向边以统一形式表示:
当所述有向边所在的起始节点大于目的节点时,将所述有向边以从所述目的节点指向所述起始节点表示;
所述生成用于记录所述有向边的原始边方向的边标记,包括:
将从所述目的节点指向所述起始节点的边方向,标记为第一值。


5.根据权利要求4所述的方法,其特征在于,所述根据所述起始节点与所述目的节点的大小关系,将所述有向边以从较小节点指向较大节点表示,还包括:
当所述有向边所在的起始节点小于目的节点时,将从所述起始节点指向所述目的节点的边方向,标记为第二值。


6.根据权利要求1所述的方法,其特征在于,所述根据所述起始节点的节点标识与所述目的节点的节点标识之间的指定顺序,将所述有向边以统一形式表示,包括:
当所述有向边所在的起始节点小于目的节点时,将所述有向边以从所述目的节点指向所述起始节点表示;
所述生成用于记录所述有向边的原始边方向的边标记,包括:
将从所述目的节点指向所述起始节点的边方向,标记为第一值。


7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当所述有向边所在的起始节点大于目的节点时,将从所述起始节点指向所述目的节点的边方向,标记为第二值。


8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对于所述标记后的有向图中的每个节点,聚集所述节点所指向的邻居节点,得到所述节点对应的邻居节点集合;
根据所述节点与对应的邻居节点集合中各邻居节点之间的边标记,生成所述节点对应的携带边标记的邻接表。


9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
当所述邻居节点集合中存在边标记既为第一值又为第二值的邻居节点时,将所述节点与所述邻居节点之间有向边的边标记替换为第三值,所述第三值用于表示所述节点与所述邻居节点之间的有向边为双向边。


10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取构成三角形的三条有向边的边方向及所述三角形的类别;
将所述三条边方向按序排列,获得所述三角形的边方向序列;
将所述边方向序...

【专利技术属性】
技术研发人员:许杰李晓森欧阳文肖品陶阳宇
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1