紧密中心度估计方法、装置、设备及存储介质与流程

文档序号:30580371发布日期:2022-06-29 11:50阅读:112来源:国知局
紧密中心度估计方法、装置、设备及存储介质与流程

1.本技术涉及计算机技术领域,尤其涉及一种紧密中心度估计方法、装置、设备及存储介质。


背景技术:

2.目前,图计算技术已应用于各种应用场景(如社交推荐等),且图计算技术的处理对象为图数据,所谓的图数据可包括多个节点和至少一条边,图数据中的一个节点用于指示一个实体对象,且一条边用于连接两个节点;通常,可计算任一图数据中的任一节点的紧密中心度,且该任一节点的紧密中心度可用于指示该任一节点所表示的实体对象的重要程度,那么可基于各节点所表示的实体对象的重要程度进行相应的业务处理。基于此,如何确定任一图数据中的各个节点的紧密中心度成为一个研究热点。


技术实现要素:

3.本技术实施例提供了一种紧密中心度估计方法、装置、设备及存储介质,可提高距离累加信息的更新效率,进而高效地计算出目标节点的紧密中心度;以及,可通过交互的运行方式计算出目标节点的紧密中心度,减小单侧运行的计算压力,并有效提高计算性能。
4.一方面,本技术实施例提供了一种紧密中心度估计方法,所述方法由参数服务设备执行,所述方法包括:
5.确定目标图数据中的目标节点的各源节点的当前读取计数信息,源节点是指通过一条指向所述目标节点的有向边,与所述目标节点相连接的节点;任一当前读取计数信息用于指示相应节点的当前邻域节点集;
6.将所述各源节点的当前读取计数信息下发至数据处理设备,使所述数据处理设备对所述各源节点的当前读取计数信息进行融合处理,得到融合后的读取计数信息;
7.根据所述数据处理设备返回的所述融合后的读取计数信息,以及所述目标节点的当前读取计数信息,确定出所述目标节点的新邻域节点的节点信息;所述新邻域节点是指:被所述融合后的读取计数信息指示,且未被所述目标节点的当前读取计数信息指示的邻域节点;
8.根据所述新邻域节点的节点信息,对所述目标节点的距离累加信息进行更新,并根据更新后的距离累加信息计算所述目标节点的紧密中心度;其中,所述目标节点的距离累加信息是指所述目标节点的当前邻域节点集中的各个邻域节点到所述目标节点的距离之和。
9.另一方面,本技术实施例提供了一种紧密中心度估计装置,所述装置应用于参数服务设备,所述装置包括:
10.处理单元,用于确定目标图数据中的目标节点的各源节点的当前读取计数信息,源节点是指通过一条指向所述目标节点的有向边,与所述目标节点相连接的节点;任一当前读取计数信息用于指示相应节点的当前邻域节点集;
11.输出单元,用于将所述各源节点的当前读取计数信息下发至数据处理设备,使所述数据处理设备对所述各源节点的当前读取计数信息进行融合处理,得到融合后的读取计数信息;
12.所述处理单元,用于根据所述数据处理设备返回的所述融合后的读取计数信息,以及所述目标节点的当前读取计数信息,确定出所述目标节点的新邻域节点的节点信息;所述新邻域节点是指:被所述融合后的读取计数信息指示,且未被所述目标节点的当前读取计数信息指示的邻域节点;
13.所述处理单元,用于根据所述新邻域节点的节点信息,对所述目标节点的距离累加信息进行更新,并根据更新后的距离累加信息计算所述目标节点的紧密中心度;其中,所述目标节点的距离累加信息是指所述目标节点的当前邻域节点集中的各个邻域节点到所述目标节点的距离之和。
14.再一方面,本技术实施例提供了一种参数服务设备,所述参数服务设备包括处理器、存储器,其中,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时实现如下步骤:
15.确定目标图数据中的目标节点的各源节点的当前读取计数信息,源节点是指通过一条指向所述目标节点的有向边,与所述目标节点相连接的节点;任一当前读取计数信息用于指示相应节点的当前邻域节点集;
16.将所述各源节点的当前读取计数信息下发至数据处理设备,使所述数据处理设备对所述各源节点的当前读取计数信息进行融合处理,得到融合后的读取计数信息;
17.根据所述数据处理设备返回的所述融合后的读取计数信息,以及所述目标节点的当前读取计数信息,确定出所述目标节点的新邻域节点的节点信息;所述新邻域节点是指:被所述融合后的读取计数信息指示,且未被所述目标节点的当前读取计数信息指示的邻域节点;
18.根据所述新邻域节点的节点信息,对所述目标节点的距离累加信息进行更新,并根据更新后的距离累加信息计算所述目标节点的紧密中心度;其中,所述目标节点的距离累加信息是指所述目标节点的当前邻域节点集中的各个邻域节点到所述目标节点的距离之和。
19.再一方面,本技术实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序适于由处理器加载并执行如下步骤:
20.确定目标图数据中的目标节点的各源节点的当前读取计数信息,源节点是指通过一条指向所述目标节点的有向边,与所述目标节点相连接的节点;任一当前读取计数信息用于指示相应节点的当前邻域节点集;
21.将所述各源节点的当前读取计数信息下发至数据处理设备,使所述数据处理设备对所述各源节点的当前读取计数信息进行融合处理,得到融合后的读取计数信息;
22.根据所述数据处理设备返回的所述融合后的读取计数信息,以及所述目标节点的当前读取计数信息,确定出所述目标节点的新邻域节点的节点信息;所述新邻域节点是指:被所述融合后的读取计数信息指示,且未被所述目标节点的当前读取计数信息指示的邻域节点;
23.根据所述新邻域节点的节点信息,对所述目标节点的距离累加信息进行更新,并
根据更新后的距离累加信息计算所述目标节点的紧密中心度;其中,所述目标节点的距离累加信息是指所述目标节点的当前邻域节点集中的各个邻域节点到所述目标节点的距离之和。
24.再一方面,本技术实施例提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述所提及的紧密中心度估计方法。
25.本技术实施例在确定目标图数据中的目标节点的各源节点的当前读取计数信息后,可将各源节点的当前读取计数信息下发至数据处理设备,使数据处理设备对各源节点的当前读取计数信息进行融合处理,得到融合后的读取计数信息;其中,任一当前读取计数信息用于指示相应节点的当前邻域节点集,那么相应的,可使融合后的读取计数信息用于指示各源节点的当前邻域节点集。然后,可根据数据处理设备返回的融合后的读取计数信息,以及目标节点的当前读取计数信息,确定出目标节点的新邻域节点的节点信息,进而通过交互运行方式来减小单侧运行的计算压力,可有效提高计算性能;其中,新邻域节点是指:被融合后的读取计数信息指示,且未被目标节点的当前读取计数信息指示的邻域节点。进一步的,可根据新邻域节点的节点信息,快速地对目标节点的距离累加信息进行更新,并根据更新后的距离累加信息计算目标节点的紧密中心度;其中,目标节点的距离累加信息是指目标节点的当前邻域节点集中的各个邻域节点到目标节点的距离之和。另外,本技术实施例可由参数服务设备所执行,以通过参数服务设备进行数据更新,从而有效节省数据处理设备的计算资源并增强性能,尤其使得在超大规模的目标图数据上的性能更加优越。
附图说明
26.为了更清楚地说明本技术实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
27.图1a是本技术实施例提供的一种紧密中心度估计方案的流程示意图;
28.图1b是本技术实施例提供的一种终端和服务器交互的示意图;
29.图1c是本技术实施例提供的一种目标图数据的示意图;
30.图2是本技术实施例提供的一种紧密中心度估计方法的流程示意图;
31.图3是本技术实施例提供的另一种目标图数据的示意图;
32.图4是本技术实施例提供的另一种紧密中心度估计方法的流程示意图;
33.图5是本技术实施例提供的一种基于参数服务设备估计紧密中心度的流程示意图;
34.图6是本技术实施例提供的又一种紧密中心度估计方法的流程示意图;
35.图7是本技术实施例提供的一种紧密中心度估计装置的结构示意图;
36.图8是本技术实施例提供的一种参数服务设备的结构示意图。
具体实施方式
37.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。
38.随着互联网技术的不断发展,人工智能(artificial intelligence,ai)技术也随
之得到更好的发展。所谓的人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
39.人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习、图计算技术等几大方向。
40.机器学习(machine learning,ml)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。而深度学习则是一种利用深层神经网络系统,进行机器学习的技术;机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
41.图计算(graph processing)是基于图数据的分析技术与关系技术应运而生的,是将数据按照图的方式进行建模,以获得以往用扁平化的视角难以得到的结果的技术。
42.基于ai技术中的图计算技术和机器学习/深度学习技术,本技术实施例提出了一种紧密中心度估计方案,以高效地计算出目标节点的紧密中心度;以及,可通过交互的运行方式计算出目标节点的紧密中心度,减小单侧运行的计算压力,并有效提高计算性能。需要说明的是,本技术实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。
43.参见图1a所示,本技术实施例所提出的紧密中心度估计方案的大致原理如下:首先,可将目标图数据中的目标节点的各源节点的当前读取计数信息(read-counter,也可称为读取计数器)下发至数据处理设备,使数据处理设备对各源节点的当前读取计数信息进行融合(merge)处理,得到融合后的读取计数信息,进而可根据数据处理设备返回的融合后的读取计数信息,以及目标节点的当前读取计数信息,确定出目标节点的新邻域节点的节点信息;其中,任一当前读取计数信息用于指示相应节点的当前邻域节点集,而新邻域节点是指:被融合后的读取计数信息指示,且未被目标节点的当前读取计数信息指示的邻域节点。那么相应的,可根据新邻域节点的节点信息,确定目标节点的更新后的距离累加信息(distance accumulator,也可称为距离累加器),以计算目标节点的紧密中心度。
44.需要说明的是,上述数据处理设备可以指的是终端或者服务器,也可以指的是终端或者服务器中的计算引擎,如spark(一个专为大规模数据处理而设计的快速通用的计算引擎)等,本技术对此不做限制;为了便于阐述,后续均以spark作为数据处理设备为例进行说明。应当理解的是,当数据处理设备为spark平台时,由于数据处理设备容易遇到driver(驱动器)单点网络瓶颈,使得性能受限;其次,spark中的rdd(resilient distributed datasets,弹性分布式数据集)具有不可变性,那么相应的,当数据处理设备执行更新操作时,需额外新建和存储rdd,导致资源开销较大。
45.经实践表明,本技术实施例提出的紧密中心度估计方案可至少具有如下几点有益效果:

上述紧密中心度估计方案是由参数服务设备执行,即可通过参数服务设备更新目标节点的距离累加信息等,从而有效减少数据处理设备的资源开销;

可有效提升计算性能,尤其是针对超大规模的目标图数据;

可基于目标节点的新邻域节点的节点信息,提高距离累加信息的更新效率;

可通过交互的运行方式,有效减小单侧运行的计算压力。
46.在具体实现中,上述所提及的紧密中心度估计方案可由一个参数服务设备执行,该参数服务设备可以是终端或者服务器,需要说明的是,当参数服务设备为服务器时,也可称为参数服务器(parameter server,ps);可以理解的是,参数服务设备也可指的是机器学习平台(如angel,一个基于参数服务器理念设计和开发的高性能分布式机器学习平台),等等;其中,此处所提及的终端可以包括但不限于:智能手机、平板电脑、笔记本电脑、台式计算机、智能手表、智能语音交互设备、智能家电、车载终端、飞行器等;终端内可运行各式各样的客户端(application,app),如视频播放客户端、社交客户端、浏览器客户端、信息流客户端、教育客户端,等等。此处所提及的参数服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,也可以是提供云服务、云数据库、云计算(cloud computing)、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(content delivery network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器,等等;所谓的云计算是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。并且,本技术实施例所提及的参数服务设备可以位于区块链网络外,也可以位于区块链网络内,对此不做限定;所谓的区块链网络是一种由点对点网络(p2p网络)和区块链所构成的网络,而区块链则是指一种分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,其本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块(或称为区块)。
47.或者,在其他实施例中,上述所提及的紧密中心度估计方案也可由服务器和终端共同执行,也就是说,上述所提及的紧密中心度估计方案可由至少两个参数服务设备共同执行,且至少两个参数服务设备中包括至少一个终端和至少一个服务器;终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本技术在此不做限制。例如:服务器可确定目标图数据中的各源节点的当前读取计数信息,并将各源节点的当前读取计数信息下发至数据处理设备,使数据处理设备对各源节点的当前读取计数信息进行融合处理,得到融合后的读取计数信息,那么服务器可根据数据处理设备返回的融合后的读取计数信息,以及目标节点的当前读取计数信息,确定出目标节点的新邻域节点的节点信息,并将新邻域节点的节点信息发送至终端,再由终端根据新邻域节点的节点信息,更新目标节点的距离累加信息,以计算目标节点的紧密中心度,如图1b所示。又如,服务器可根据数据处理设备返回的融合后的读取计数信息,以及目标节点的当前读取计数信息,确定出目标节点的新邻域节点的节点信息,并根据该节点信息更新目标节点的距离累加信息,得到更新后的距离累加信息,并将更新后的距离累加信息发送至终端,再由终端根据更新后的距离累加信息,计算目标节点的紧密中心度,等等。应当理解的是,此处只是示例性地阐述了终端和服务器共同执行上述紧密中心度估计方案的两种情况,并非穷举。
48.进一步的,上述紧密中心度估计方案可适用于多种应用场景,如社交推荐场景、广
告营销场景以及文献分析场景,等等。
49.例如,当上述紧密中心度估计方案应用于社交推荐场景时,假设目标图数据中的一个节点用于表示一个社交账号,且目标图数据中的一条有向边用于指示:该条有向边所连接的两个节点所表示的社交账号之间的关注关系,如目标节点所表示的社交账号关注了目标节点的各源节点所表示的社交账号,如图1c所示。在此应用场景中,可计算出目标图数据中的各个节点的紧密中心度,任一节点的紧密中心度用于指示该任一节点所表示的社交账号的重要程度;相应的,重要程度较大的社交账号在社交过程中的影响力较大;那么,可将重要程度较大的社交账号推荐给未关注这些社交账号的其他社交账号。
50.又如,当上述紧密中心度估计方案应用于广告营销场景时,假设目标图数据中的一个节点也用于表示一个社交账号,则一个节点的紧密中心度可用于指示该任一节点所指示的社交账号的重要程度;那么相应的,可将重要程度作为分析kol(key opinion leader,关键意见领导)重要性的一个关键指标,辅助流量投放策略的设计和营销规则的制定;在相同条件下,一个社交账号的重要程度越大,该社交账号的kol重要性越大。在此种应用场景中,可将较多的广告投放资源投放于kol重要性较大的社交账号上,从而通过这些社交账号对所需营销的广告进行推广,以达到更好的推广效果;应当理解的是,若将重要程度作为相应的kol重要性,则可将较多的广告投放资源投放于重要程度较大的社交账号上,以达到更好的推广效果。
51.再如,当上述紧密中心度估计方案应用于文献分析场景时,假设目标图数据中的一个节点用于表示一篇文献,且目标图数据中的一条有向边用于指示:该条有向边所连接的两个节点所表示的文献之间的引用关系,如目标节点所表示的文献引用了目标节点的各源节点所表示的文献。在此应用场景中,任一节点的紧密中心度用于指示该任一节点所表示的文献的重要程度;那么相应的,可对重要程度较大的文献进行推荐。
52.基于上述紧密中心度估计方案的相关描述,本技术实施例提出一种紧密中心度估计方法,该紧密中心度估计方法可以由上述所提及的参数服务设备(终端或服务器)执行;或者,该紧密中心度估计方法可由终端和服务器共同执行,即该紧密中心度估计方法可由至少两个参数服务设备共同执行。为便于阐述,后续均以一个参数服务设备执行该紧密中心度估计方法为例进行说明;请参见图2,该紧密中心度估计方法可包括以下步骤s201-s204:
53.s201,确定目标图数据中的目标节点的各源节点的当前读取计数信息,源节点是指通过一条指向所述目标节点的有向边,与目标节点相连接的节点;任一当前读取计数信息用于指示相应节点的当前邻域节点集。
54.可以理解的是,目标图数据可以指的是一种揭示实体对象之间关系的语义网络,且目标图数据包括但不限于:社交网络和引文关系网络,等等;本技术对目标图数据的具体形式不做限制。应当理解的是,目标图数据包括多个节点和至少一条有向边,一个节点用于表示一个实体对象,且实体对象包括但不限于:用户、社交账号以及文献,等等。
55.需要说明的是,可将目标图数据中的一条有向边所连接的两个节点分别称为源节点和尾节点,且任一尾节点的源节点是指:通过一条指向该任一尾节点的有向边,与该任一尾节点相连接的节点,即任一尾节点的源节点通过一条有向边指向该任一尾节点,也就是说,上述目标节点为目标节点的各源节点的尾节点。可以理解的是,同一节点在不同有向边
中,可均作为源节点,也可均作为尾节点,还可既作为源节点又作为尾节点,等等。
56.例如,如图3所示,假设目标图数据中包括节点a、节点b、节点c和节点d,且节点a通过一条有向边指向节点b,节点a通过一条有向边指向节点c,节点c通过一条有向边指向节点d,则节点a为节点b和节点c的源节点,且节点c为节点d的源节点;也就是说,节点b为节点a的尾节点,节点c为节点a的尾节点,且节点d为节点c的尾节点。
57.应当理解的是,目标图数据中的有向边可用于指示相应节点所指示的实体对象之间的信息流向。举例来说,假设目标图数据中的节点用于表示社交账号,且用于表示社交账号a的节点为用于表示社交账号b的节点的源节点,即用于表示社交账号a的节点通过一条有向边指向用于表示社交账号b的节点,那么社交账号a与社交账号b之间的信息流向是指:社交账号b可接收社交账号a发布的信息。
58.值得注意的是,目标节点可以是目标图数据中的任一节点,且任一节点的邻域节点集是指该任一节点在目标图数据中的各个邻域节点所组成的集合;相应的,可采用图g(v,e)对目标图数据进行表示,其中,v为节点(即顶点)集合,e为边集合,对于任意两个节点x,y∈v,从x到y的最短路径长度表示为d(x,y),即x到y的距离可表示为d(x,y),那么节点x的r阶邻域节点集可定义为nr(x)={y|y∈v,d(y,x)≤r},即目标图数据中到达节点x的最短路径不大于r的节点所组成的集合,包括节点x本身;在此种情况下,到达节点x的最短路径不大于r的节点均为节点x的邻域节点,且到达节点x的最短路径等于r的节点为节点x的第r阶邻域节点;其中,r大于或等于1。
59.s202,将各源节点的当前读取计数信息下发至数据处理设备,使数据处理设备对各源节点的当前读取计数信息进行融合处理,得到融合后的读取计数信息。
60.可以理解的是,对各源节点的当前读取计数信息进行融合处理可以指的是:对各源节点的当前邻域节点集进行并集运算;那么相应的,上述融合后的读取计数信息可用于指示各源节点的当前邻域节点集中的各个邻域节点所组成的集合。
61.举例来说,假设目标节点的源节点包括节点a和节点b,且节点a的当前邻域节点集包括节点a、节点c以及节点d,节点b的当前邻域节点集包括节点b和节点e,那么融合后的读取计数信息可用于指示节点a、节点b、节点c、节点d以及节点e所组成的集合。
62.s203,根据数据处理设备返回的融合后的读取计数信息,以及目标节点的当前读取计数信息,确定出目标节点的新邻域节点的节点信息。
63.其中,新邻域节点是指:被融合后的读取计数信息指示,且未被目标节点的当前读取计数信息指示的邻域节点,即新邻域节点是指:存在于融合后的读取计数信息所指示的集合,且不存在于目标节点的当前邻域节点集中的邻域节点;例如,假设融合后的读取计数信息所指示的集合包括:节点a、节点b、节点c、节点d以及节点e,且目标节点的当前邻域节点集包括:目标节点、节点a和节点b,则新邻域节点包括节点c、节点d以及节点e。
64.在一种实施方式中,新邻域节点的节点信息可以指的是新邻域节点的数量;在此种情况下,当新邻域节点包括节点c、节点d以及节点e时,新邻域节点的节点信息为3。
65.另一种实施方式中,新邻域节点的节点信息可以指的是新邻域节点的节点标识,如id(identity document,身份标识账号);相应的,可基于任一节点标识确定该任一节点标识所标识的节点。例如,假设新邻域节点包括节点c、节点d以及节点e,且假设节点c的节点标识为vc,节点d的节点标识为vd,节点e的节点标识为ve,那么新邻域节点的节点信息包
括vc、vd以及ve。
66.s204,根据新邻域节点的节点信息,对目标节点的距离累加信息进行更新,并根据更新后的距离累加信息计算目标节点的紧密中心度。
67.需要说明的是,紧密中心度能够衡量节点在目标图数据中是否处于中心位置,一般可用于评估节点在网络中的重要性程度,进而评估节点所表示的实体对象的重要程度。可以理解的是,目标节点的距离累加信息是指目标节点的当前邻域节点集中的各个邻域节点到目标节点的距离之和;举例来说,假设目标节点的当前邻域节点集包括目标节点、节点a以及节点b,则目标节点的距离累加信息是指:对目标节点与目标节点之间的距离(即为0)、节点a与目标节点之间的距离以及节点b与目标节点之间的距离进行求和运算所得的结果。
68.本技术实施例在确定目标图数据中的目标节点的各源节点的当前读取计数信息后,可将各源节点的当前读取计数信息下发至数据处理设备,使数据处理设备对各源节点的当前读取计数信息进行融合处理,得到融合后的读取计数信息;其中,任一当前读取计数信息用于指示相应节点的当前邻域节点集,那么相应的,可使融合后的读取计数信息用于指示各源节点的当前邻域节点集。然后,可根据数据处理设备返回的融合后的读取计数信息,以及目标节点的当前读取计数信息,确定出目标节点的新邻域节点的节点信息,进而通过交互运行方式来减小单侧运行的计算压力,可有效提高计算性能;其中,新邻域节点是指:被融合后的读取计数信息指示,且未被目标节点的当前读取计数信息指示的邻域节点。进一步的,可根据新邻域节点的节点信息,快速地对目标节点的距离累加信息进行更新,并根据更新后的距离累加信息计算目标节点的紧密中心度;其中,目标节点的距离累加信息是指目标节点的当前邻域节点集中的各个邻域节点到目标节点的距离之和。另外,本技术实施例可由参数服务设备所执行,以通过参数服务设备进行数据更新,从而有效节省数据处理设备的计算资源并增强性能,尤其使得在超大规模的目标图数据上的性能更加优越。
69.请参见图4,是本技术实施例提供的另一种紧密中心度估计方法的流程示意图,该紧密中心度估计方法可以由上述所提及的参数服务设备执行。在本技术实施例中,任一当前读取计数信息以及目标节点的距离累加信息,可以是从参数矩阵中获取到的,且目标图数据中的各个节点均可具有标签信息。请参见图4,该紧密中心度估计方法可包括以下步骤s401-s407:
70.s401,创建参数矩阵,参数矩阵用于存储读取计数信息和距离累加信息。
71.需要说明的是,参数矩阵可以用于存储目标图数据中的各个节点的读取计数信息,也可用于存储目标图数据中的各个节点的距离累加信息,还可用于存储目标图数据中的各个节点的写入计数信息(write-counter,也可称为写入计数器)等,本技术对参数矩阵的具体存储内容不做限制;例如,当参数服务设备仅需计算目标节点的紧密中心度时,参数矩阵中存储的距离累加信息可仅包括目标节点的距离累加信息。其中,任一节点的两组计数信息(即读取计数信息和写入计数信息)均可用于存储该任一节点的邻域节点集中的各个邻域节点的节点标识(即id信息);并且,任一节点的两组计数信息还可用于存储该任一节点的邻域节点集的基数估计值,即还可用于存储该任一节点的邻域节点集的节点数量,那么两组计数信息还可称为两组hyperloglog(一种目前最优的概率性集合基数估计算法之一,且基数是指一个集合中不重复的个数)计数信息,也就是说,本技术可采用
hyperloglog算法,统计出任一计数信息所指示的邻域节点集中的节点数量,从而提高节点数量的统计效率,以提高距离累加信息的更新效率。值得注意的是,当参数矩阵中存储有一个节点的读取计数信息和写入计数信息时,读取计数信息在每次迭代结束前保持不变,而写入计数信息在每次迭代过程中可能被多次更新。
72.可选的,在创建参数矩阵的过程中(即当算法迭代序数r=0时),数据处理设备中的driver可向参数服务设备申请创建参数矩阵,那么参数服务设备可在接收到数据处理设备发送的创建申请后,创建参数矩阵。
73.需要说明的是,目标图数据的获取方式包括但不限于以下几种:
74.第一种获取方式:先获取用于描述初始图数据的初始邻接表,初始图数据为一个无向图,且初始邻接表中的一条邻接数据包括:初始图数据中的一条无向边所连接的两个节点的节点标识;然后,对初始邻接表中的每条邻接数据中的两个节点标识进行位置交换处理,得到新的邻接数据;进而将新的邻接数据添加至初始邻接表中,以得到新的邻接表;以及,根据新的邻接表描述出目标图数据。其中,新的邻接数据的数量与初始邻接表中的邻接数据的数量相同,也就是说,根据初始邻接表中的一条数据可确定一条新的邻接数据。
75.具体的,可利用无向图-有向图转化模块,将用于描述初始图数据的初始邻接表(即无向图邻接表)转化为等价的新的邻接表(即有向图邻接表);可选的,若初始图数据为有向图,则转化后保持不变。应当理解的是,通常初始邻接表中只用一条有向边代替双向边,则该模块对初始邻接表中的每条边均额外生成一条反向边;例如,假设初始邻接表中只有边(a,b),则转化模块可额外生成边(b,a)。那么在完成转化后,即在完成位置交换处理以得到新的邻接表后,新的邻接表中的每一条数据为一组源节点与尾节点的节点标识(即id);如:(v
src
,v
dst
),其表示一条由v
src
指向v
dst
的有向边。
76.第二种获取方式:获取用于描述初始图数据的初始邻接表,该初始图数据为一个有向图,且初始邻接表中的一条邻接数据包括:初始图数据中的一条有向边所连接的两个节点的节点标识,则将初始图数据作为目标图数据,并采用初始邻接表描述出目标图数据。
77.第三种获取方式:可基于新的邻接表(即转化后的邻接表)或者初始图数据为有向图时的初始邻接表中源节点的节点标识,得到(源节点,尾节点集)表,也就是说,可对每个源节点的尾节点进行统计,得到每个源节点的尾节点集;以及,根据(源节点,尾节点集)表描述出目标图数据。
78.需要说明的是,目标图数据的获取的执行主体可以是参数服务设备,也可以是数据处理设备,本技术对此不做限制。其中,当数据处理设备执行目标图数据的获取时,初始邻接表可分布式存储于数据处理设备的各个executor(执行器)上。
79.值得注意的是,当本技术实施例运用到具体产品或技术中时,涉及到与目标图数据相关的一系列数据(如初始邻接表以及各节点之间目标图数据中的各个节点所表示的实体对象的标签信息,以及各个节点之间的连接关系等)的获取,均需要获得实体对象或者实体对象的所有者的许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,若目标图数据中的各节点用于表示社交账号,则在获取任一社交账号所关注的社交账号之前,可以先显示提示界面或提示弹窗,该提示界面或提示弹窗用于提示该任一社交账号的使用者:是否允许获取该任一社交账号所关注的社交账号,且该提示界面或提示弹窗中包括确认选项;若该任一社交账号的使用者对上述提示界
面或提示弹窗中的确认选项进行了选择操作,则可执行获取该任一社交账号所关注的社交账号的相关步骤,即可掌握相应的节点所表示的社交账号之间的关注关系,否则结束。
80.s402,根据目标图数据中的各个节点的标签信息,确定目标图数据中的各个节点的初始的读取计数信息;以及,将各个节点的距离累加信息的初始值设置为默认值。
81.其中,各个节点的距离累加信息的初始值可以是参数服务设备按照实际需求设置的,也可以是按照经验值设置的,本技术对此不做限制;也就是说,本技术对上述默认值不做限制,如参数服务设备可将各个节点的距离累加信息的初始值均设置为0,即默认值的取值可为0;示例性的,假设采用dv(0)表示节点v的距离累加信息的初始值,则dv(0)=0。
82.需要说明的是,节点的标签信息包括但不限于:兴趣爱好、年龄以及文献作者,等等;本技术对标签信息的具体内容不做限制。值得注意的是,当目标图数据为异构图时,也可采用不同的标签信息对目标图数据中用于指示不同类型的实体对象的节点进行标记;举例来说,假设目标图数据中的节点所指示的实体对象包括文献作者的社交账号和文献,在此种情况下,文献作者的社交账号之间具有关注关系,文献之间具有引用关系,且文献作者的社交账号与文献之间具有发布关系,那么可采用不同的标签信息分别对用于指示文献作者的社交账的节点和用于指示文献的节点进行标记,以便于根据目标图数据中的各个节点的标签信息,确定目标图数据中的各个节点的初始的读取计数信息。
83.可以理解的是,在参数服务设备根据目标图数据中的各个节点的标签信息,确定各个节点的初始的读取计数信息,以及各个节点的距离累加信息的初始值之前,可先获取各个节点的标签信息;其中,各个节点的标签信息的获取方式包括但不限于以下几种:
84.第一种获取方式:数据处理设备可获取用于描述各个节点的标签信息的(节点,标签)表,并分布式存储于各个执行器上;在参数服务设备完成参数矩阵的创建后,数据处理设备中的各个执行器可基于各自部分的数据,分布式并行地向参数服务设备申请初始化对应分区中的节点的读取计数信息和相应的距离累加信息,并将各个执行器中的(节点,标签)表上传至参数服务设备,使参数服务设备基于接收到的(节点,标签)表,获取各个节点的标签信息。其中,(节点,标签)表中的每一条数据为相应节点的节点标识与相应的标签信息,如:(v,lv),此处的v为节点v的节点标识,且lv为节点v的标签信息。
85.第二种获取方式:数据处理设备可在向参数服务设备发送参数矩阵创建申请时,将用于描述各个节点的标签信息的数据表发送至参数服务设备,那么参数服务设备可在创建参数矩阵完成后,直接获取各个节点的标签信息。
86.第三种获取方式:参数服务设备可获取用于描述各个节点的标签信息的数据表的下载链接,并根据下载的数据获取各个节点的标签信息;或者,参数服务设备自身的存储空间中存储有多个节点中的每个节点的标签信息,且该多个节点包括目标图数据中的各个节点,那么参数服务设备可以从自身的存储空间中获取目标图数据中的各个节点的标签信息,等等。
87.具体的,参数服务设备根据目标图数据中的各个节点的标签信息,确定目标图数据中的各个节点的初始的读取计数信息时,可先确定目标标签集,该目标标签集包括:目标图数据中被允许作为邻域节点的各个节点的标签信息;并针对目标图数据中的任一节点,将该任一节点的标签信息与目标标签集进行匹配处理。可以理解的是,若该任一节点的标签信息属于目标标签集,则该任一节点的标签信息与目标标签集相匹配;若该任一节点的
标签信息不属于目标标签集,则该任一节点的标签信息与目标标签集不匹配;例如,假设预先给定的目标标签集为l,若节点v的标签信息是目标标签,即lv∈l,则节点v的标签信息与目标标签集相匹配,否则节点v的标签信息与目标标签集不匹配。
88.在此种情况下,由于读取计数信息包括相应的邻域节点集中的各个邻域节点的节点标识,那么相应的,若任一节点的标签信息与目标标签集相匹配,则允许将该任一节点作为该任一节点的邻域节点,并将该任一节点的节点标识添加至该任一节点的初始的读取计数信息;若任一节点的标签信息与目标标签集不匹配,则禁止将该任一节点作为该任一节点的邻域节点,并禁止将该任一节点的节点标识添加至该任一节点的初始的读取计数信息。
89.可以理解的是,若参数矩阵还用于存储各个节点的写入计数信息,则参数服务设备还可确定各个节点的初始的写入计数信息;也就是说,参数服务设备还可根据目标图数据中的各个节点的标签信息,确定目标图数据中的各个节点的初始的写入计数信息。示例性的,假设节点v的初始的读取计数信息可表示为节点v的初始的写入计数信息可表示为且节点v的节点标识为v,那么当节点v的标签信息与目标标签集相匹配时,可将节点标识v存入和中。
90.进一步的,若各个读取计数信息和各个写入计数信息还包括相应节点的邻域节点集的节点数量(即基数),则参数服务设备在确定各个节点的初始的读取计数信息和相应的初始的写入计数信息时,若任一节点的标签信息与目标标签集相匹配,则该任一节点的初始的读取计数信息中的节点数量被初始化为1;若任一节点的标签信息与目标标签集不匹配,则该任一节点的初始的读取计数信息中的节点数量被初始化为0。
91.值得注意的是,在完成各个节点的读取计数信息、写入计数信息以及距离累加信息的初始化后,后续步骤无需再对节点的标签信息是否与目标标签集相匹配进行判断,这是因为初始化过程已反映了标签信息。
92.s403,将各个节点的初始的读取计数信息和相应的距离累加信息,添加至参数矩阵中以初始化参数矩阵;其中,针对所述目标节点的距离累加信息的更新,是在初始化所述参数矩阵后执行的。
93.应当理解的是,当参数矩阵还用于存储各个节点的写入计数信息时,参数服务设备还可将各个节点的初始的写入计数信息添加至参数矩阵中,以初始化参数矩阵。
94.s404,确定目标图数据中的目标节点的各源节点的当前读取计数信息,源节点是指通过一条指向目标节点的有向边,与目标节点相连接的节点;任一当前读取计数信息用于指示相应节点的当前邻域节点集。
95.值得注意的是,若想要计算目标节点的r阶邻域内的紧密中心度,则目标节点的距离累加信息需被迭代地进行r次更新,r为正整数;也就是说,可从目标节点的距离累加信息的初始值开始,迭代地对目标节点的距离累加信息进行r次更新。那么相应的,当前邻域节点集是指:在第r次更新目标节点的距离累加信息时,所使用的r-1阶邻域节点集,r∈[1,r];也就是说,在第r次迭代过程中,任一当前读取计数信息用于指示相应节点的r-1阶邻域节点集。其中,r指的是算法迭代序数。
[0096]
可以理解的是,当r的取值为1时,即在第1次迭代过程中,任一当前读取计数信息
是指相应节点的初始的读取计数信息,在此种情况下,任一当前读取计数信息用于指示相应节点的初始的读取计数信息所指示的邻域节点集,即本技术可将任一初始的读取计数信息所指示的邻域节点集称为0阶邻域节点集。
[0097]
需要说明的是,目标图数据中的目标节点的各源节点的当前读取计数信息的确定方式包括但不限于如下几种:
[0098]
第一种确定方式:用于描述目标图数据的邻接表(如上述新的邻接表)或上述(源节点,尾节点集)表位于数据处理设备中,那么数据处理设备可根据用于描述目标图数据的邻接表(如上述新的邻接表),确定目标节点的各源节点,即可将目标节点为尾节点的每条邻接数据中的源节点均确定为目标节点的源节点;或者,可根据上述(源节点,尾节点集)表,确定目标节点的各源节点,即可将包含目标节点的尾节点集所对应的源节点均确定为目标节点的源节点。进一步的,数据处理设备可基于目标节点的各源节点的节点标识,向参数服务设备发送目标节点的各源节点的当前读取计数信息的拉取指令,那么参数服务设备可基于该拉取指令确定各源节点的当前读取计数信息。
[0099]
第二种确定方式:用于描述目标图数据的邻接表(如上述新的邻接表)或上述(源节点,尾节点集)表位于参数服务设备中,那么参数服务设备可根据用于描述目标图数据的邻接表(如上述新的邻接表),确定目标节点的各源节点;或者,可根据上述(源节点,尾节点集)表,确定目标节点的各源节点;进而确定目标图数据中的目标节点的各源节点的当前读取计数信息。
[0100]
第三种确定方式,用于描述目标图数据的邻接表(如上述新的邻接表)或上述(源节点,尾节点集)表位于数据处理设备中,那么数据处理设备可将用于描述目标图数据的邻接表或(源节点,尾节点集)表发送至参数服务设备,则参数服务设备可基于用于描述目标图数据的邻接表或(源节点,尾节点集)表,确定目标节点的各源节点,进而确定各源节点的当前读取计数信息,等等。
[0101]
可以理解的是,若目标节点的数量为多个,也就是说,若目标图数据包括的至少两个节点中的每个节点均为目标节点,则参数服务设备可分别确定至少两个节点中的每个节点的各源节点的当前读取计数信息,即参数服务设备可分别确定每个目标节点的各源节点的当前读取计数信息。
[0102]
s405,将各源节点的当前读取计数信息下发至数据处理设备,使数据处理设备对各源节点的当前读取计数信息进行融合处理,得到融合后的读取计数信息。
[0103]
需要说明的是,若目标节点的数量为多个,则参数服务设备可将每个目标节点的各源节点的当前读取计数信息下发至数据处理设备,使数据处理设备可分别对每个目标节点的各源节点的当前读取计数信息进行融合处理,得到每个目标节点的融合后的读取计数信息。
[0104]
进一步的,若目标图数据中的每个尾节点均可作为目标节点,则参数服务设备可将目标图数据中的每个目标节点的源节点的当前读取计数信息下发至数据处理设备;在此种情况下,数据处理设备可分别对目标图数据中的每个目标节点的各源节点进行融合处理,得到每个目标节点的融合后的读取计数信息。
[0105]
具体的,在第r次迭代过程中,数据处理设备中的各个执行器还可对存储的数据进行分批处理。在每一个处理批次中,各个执行器可首先根据源节点的节点标识,从参数服务
设备上拉取对应的当前读取计数信息;进一步的,将拉取到的每个源节点v的当前读取计数信息(节点v在第r-1次迭代的读取计数信息,即对节点v的初始的读取计数信息进行r-1次更新后的读取计数信息)发送给相应的尾节点,相应的,若数据处理设备基于上述所提及的(源节点,尾节点集)表确定每个源节点的尾节点,则可将每个源节点v的当前读取计数信息发送至相应的尾节点集中的每个节点。在此种情况下,数据处理设备可对每个尾节点收到的所有的当前读取计数信息进行融合处理,得到每个尾节点的融合后的读取计数信息,即得到每个目标节点的融合后的读取计数信息,融合后的读取计数信息也可称为更新信息(message-counter),且以节点w为目标节点为例进行说明,节点w收到的所有的当前读取计数信息可表示为节点w的融合后的读取计数信息可表示为mw(r)。
[0106]
可以理解的是,数据处理设备中的各个执行器在分批次地进行融合处理的过程中,可得到目标节点的一个或多个融合后的读取计数信息。例如,如图4所示,假设数据处理设备包括两个执行器,用于描述目标图数据的邻接表分布式地存储于两个执行器上,且假设目标节点均为两个执行器中的尾节点,则在一个批次处理过程中,两个执行器可分别从参数服务设备中拉取到目标节点的一个或多个源节点中的每个源节点的当前读取计数信息,并分别对目标节点的每个源节点的当前读取计数信息进行融合处理,得到目标节点的两个融合后的读取计数信息;相应的,数据处理设备可向参数服务设备返回目标节点的两个融合后的读取计数信息。
[0107]
需要说明的是,图5仅示例性地阐述了数据服务设备和参数服务设备的执行过程,本技术对此不做限制。例如,数据处理设备中的执行器的数量可为1或3等;又如,数据处理设备可不执行步骤1(b),而直接采用邻接表描述出目标图数据,等等。
[0108]
s406,根据数据处理设备返回的所述融合后的读取计数信息,以及目标节点的当前读取计数信息,确定出目标节点的新邻域节点的节点信息。
[0109]
其中,新邻域节点是指:被融合后的读取计数信息指示,且未被目标节点的当前读取计数信息指示的邻域节点。值得注意的是,在每次更新距离累加信息的过程中,确定出新邻域节点后,目标节点的读取计数信息和各源节点的读取计数信息均被更新;并且,在第r次更新目标节点的距离累加信息时,目标节点的新邻域节点为目标节点的第r阶邻域节点。
[0110]
需要说明的是,若目标节点的融合后的读取计数信息的数量为多个,则参数服务设备可根据数据处理设备返回的多个融合后的读取计数信息,以及目标节点的当前读取计数信息,确定出目标节点的新邻域节点的节点信息。相应的,参数服务设备可分别根据数据处理设备返回的每个融合后的读取计数信息,以及目标节点的当前读取计数信息,确定出每个融合后的读取计数信息对应的新邻域节点;在此种情况下,需确定出每个融合后的读取计数信息对应的新邻域节点后,目标节点的读取计数信息才被更新;同理,需分别确定出各源节点的所有新邻域节点后,即在第r次迭代过程中,分别确定出各源节点在目标图数据中的每个第r阶邻域节点后,各源节点的读取计数信息才被更新。
[0111]
在一种实施方式中,参数服务设备包括目标节点的当前写入计数信息,且当前写入计数信息用于指示目标节点的r-1阶邻域节点集(在第r次迭代过程中),则参数服务设备可对当前写入计数信息与数据处理设备返回的融合后的读取计数信息进行融合处理,得到
融合后的写入计数信息,融合后的写入计数信息用于指示目标节点的r阶邻域节点集;进一步的,参数服务设备可根据融合后的写入计数信息与目标节点的当前读取计数信息之间的差异,确定出目标节点的新邻域节点的节点信息。
[0112]
进一步的,当目标节点的当前读取计数信息包括目标节点的r-1阶邻域节点集的节点数量,且融合后的写入计数信息包括目标节点的r阶邻域节点集的节点数量时,参数服务设备在根据融合后的写入计数信息与目标节点的当前读取计数信息之间的差异,确定出目标节点的新邻域节点的节点信息的具体实施过程可以包括:计算融合后的写入计数信息中的节点数量,与目标节点的当前读取计数信息中的节点数量之间的差值,得到目标节点的新邻域节点的数量,并将新邻域节点的数量作为新邻域节点的节点信息。
[0113]
需要说明的是,若融合后的读取计数信息的数量为多个,则数据处理设备在每完成一个批次的融合后的读取计数信息的计算后,参数服务设备可依次对当前写入计数信息,与数据处理设备返回的目标节点的每个融合后的读取计数信息进行融合处理,得到融合后的写入计数信息。例如,假设当前写入计数信息用于指示包含目标节点的集合,目标节点的一个融合后的读取计数信息用于指示包含节点a和节点b的集合,一个融合后的读取计数信息用于指示包含节点c的集合,那么可将当前写入计数信息与用于指示包含节点a和节点b的集合的融合后的读取计数信息进行融合处理,得到用于指示包含目标节点、节点a以及节点b的写入计数信息,进而将该写入计数信息与用于指示包含节点c的集合的融合后的读取计数信息进行融合处理,得到最终的融合后的写入计数信息,且最终的融合后的写入计数信息用于指示包含目标节点、节点a、节点b以及节点c的集合。
[0114]
具体的,在第r次迭代中,完成一个批次中的每个源节点的尾节点(即该批次中的每个源节点的尾节点均为目标节点)的融合后的读取计数信息的计算后,数据处理设备中的各个执行器可将该批次的尾节点对应的融合后的读取计数信息上推到参数服务设备对应的分区;以目标节点为节点w为例进行说明,参数服务设备可对节点w的融合后的读取计数信息mw(r)和相应的写入计数信息(节点w在第r次迭代中的读取计数信息)进行融合处理,完成对相应的写入计数信息的更新;基于此,参数服务设备可根据公式1.1,计算节点w的融合后的读取计数信息:
[0115][0116]
其中,函数merge用于指示融合处理;值得注意的是,在第r次迭代过程中,若首次对节点w的写入计数信息进行融合处理,则位于公式1.1中的等式右侧的是指第r-1次迭代后的节点w的写入计数信息,也就是说,是指用于指示节点w的r-1阶邻域节点集的写入计数信息;若不是首次对节点w的写入计数信息进行融合处理,则位于公式1.1中的等式右侧的是指节点w的上一次融合后的写入计数信息。
[0117]
另一种实施方式中,参数服务设备可以根据融合后的读取计数信息与目标节点的当前读取计数信息之间的差异,确定出目标节点的新邻域节点的节点信息。在此种情况下,参数服务设备可以直接确定出被融合后的读取计数信息指示,且未被目标节点的当前读取计数信息指示的邻域节点的节点信息,并将该节点信息作为目标节点的新邻域节点的节点信息。
[0118]
s407,根据新邻域节点的节点信息,对目标节点的距离累加信息进行更新,并根据更新后的距离累加信息计算目标节点的紧密中心度。
[0119]
在一种实施方式中,新邻域节点的节点信息是指新邻域节点的数量,且新邻域节点的数量为多个,每个新邻域节点与目标节点之间的距离相同;那么参数服务设备根据新邻域节点的节点信息,对目标节点的距离累加信息进行更新时,可确定任一新邻域节点与目标节点之间的目标距离;并对目标距离与新邻域节点的数量进行乘法运算,并将乘法运算结果累加至目标节点的距离累加信息上,以更新目标节点的距离累加信息。
[0120]
具体的,若分批次地对写入计数信息进行融合(即更新),那么在所有批次的更新完成后,需要对距离累加信息进行更新,即在第r次迭代过程中,距离累加信息需要累加上目标节点的第r阶邻域节点到目标节点的距离,其中,每个第r阶邻域节点得到目标节点的距离为r;基于此,参数服务设备可根据公式1.2,对目标节点(以目标节点为节点w为例进行说明)的距离累加信息进行更新,得到更新后的距离累加信息:
[0121][0122]
其中,是指节点w的融合后的写入计数信息中的节点数量,是指节点w的当前读取计数信息中的节点数量,dw(r-1)是指对节点w的距离累加信息的初始值进行r-1次更新后的距离累加信息,即节点w在第r-1次迭代的距离累加信息。
[0123]
另一种实施方式中,新邻域节点的节点信息是指新邻域节点的节点标识,那么参数服务设备根据新邻域节点的节点信息,对目标节点的距离累加信息进行更新时,可确定新邻域节点的节点标识所标识的新邻域节点,并将确定出的新邻域节点到目标节点的距离累加至目标节点的距离累加信息上,以更新目标节点的距离累加信息。相应的,若新邻域节点的数量为多个,则参数服务设备可分别确定每个新邻域节点的节点标识所标识的新邻域节点,并分别将确定出的每个新邻域节点到目标节点的距离累加至目标节点的距离累加信息上,以更新目标节点的距离累加信息。
[0124]
进一步的,参数服务设备可对参数矩阵中的目标节点的读取计数信息进行更新,以将融合后的写入计数信息作为目标节点的更新后的读取计数信息,即使可以理解的是,若目标图数据中的每个节点均为目标节点,则可对每个节点的读取计数信息进行更新。
[0125]
需要说明的是,当目标节点的距离累加信息需被迭代地进行r次更新时,在第r次迭代结束后,若r等于r,则对更新后的距离累加信息进行倒数运算,得到所述目标节点的紧密中心度;若r小于r,则继续对目标节点的距离累加信息进行第r+1次更新,如图6所示。或者,可使r等于r+1,若r大于r,则对更新后的距离累加信息进行倒数运算,得到所述目标节点的紧密中心度;若e小于或等于r,则继续对目标节点的距离累加信息进行第r次更新。
[0126]
可以理解的是,以目标节点为节点w为例进行说明,当目标节点的距离累加信息需被迭代地进行r次更新时,目标节点的紧密中心度是指目标节点在其r阶邻域内的紧密中心度;基于此,节点w的紧密中心度的计算方式可采用公
[0127]
式1.3进行表示:
[0128][0129]
其中,closenessw(r)是指节点w在第r次迭代的紧密中心度,即节点w在其r阶邻域内的紧密中心度,nr(w)是指应节点w的r阶邻域节点集,也就是说,节点w的距离累加信息在经过r次更新后,得到的更新后的距离累加信息是指:节点w的r阶邻域节点集中的各个邻域节点到节点w的距离的总和。
[0130]
本技术实施例可根据目标图数据中的各个节点的标签信息,确定目标图数据中的各个节点的初始的读取计数信息,使本技术实施例能够支持节点具有标签信息的应用场景,并可适用于目标图数据为异构图的应用场景(在此场景中,可通过不同的标签信息来指示节点所表示的实体对象的类型),从而扩大应用范围,并可有针对性地对目标图数据中的节点的紧密中心度进行分析。并且,本技术实施例可将用于描述无向图的初始邻接表转化为等价的新的邻接表,从而采用新的邻接表描述出目标图数据,以便于直接兼容输入的图数据为无向图或有向图这两种情况下的应用场景。另外,本技术实施例可在参数服务设备上更新各个节点的读取计数信息和相应的距离累加信息等,以实现通过交互的运行方式来计算紧密中心度,有效避免了在数据处理设备(如spark)中进行数据更新所存在的spark driver的单点网络瓶颈和rdd不可变性问题,节省了计算资源并实现了更高效的计算性能。
[0131]
基于上述紧密中心度估计方法的相关实施例的描述,本技术实施例还提出了一种紧密中心度估计装置,该装置运行于参数服务设备,且该紧密中心度估计装置可以是运行于参数服务设备中的一个计算机程序(包括程序代码)。该紧密中心度估计装置可以执行图2或图4所示的紧密中心度估计方法;请参见图7,所述紧密中心度估计装置可以运行如下单元:
[0132]
处理单元701,用于确定目标图数据中的目标节点的各源节点的当前读取计数信息,源节点是指通过一条指向所述目标节点的有向边,与所述目标节点相连接的节点;任一当前读取计数信息用于指示相应节点的当前邻域节点集;
[0133]
输出单元702,用于将所述各源节点的当前读取计数信息下发至数据处理设备,使所述数据处理设备对所述各源节点的当前读取计数信息进行融合处理,得到融合后的读取计数信息;
[0134]
所述处理单元701,用于根据所述数据处理设备返回的所述融合后的读取计数信息,以及所述目标节点的当前读取计数信息,确定出所述目标节点的新邻域节点的节点信息;所述新邻域节点是指:被所述融合后的读取计数信息指示,且未被所述目标节点的当前读取计数信息指示的邻域节点;
[0135]
所述处理单元701,用于根据所述新邻域节点的节点信息,对所述目标节点的距离累加信息进行更新,并根据更新后的距离累加信息计算所述目标节点的紧密中心度;其中,所述目标节点的距离累加信息是指所述目标节点的当前邻域节点集中的各个邻域节点到所述目标节点的距离之和。
[0136]
在一种实施方式中,目标节点的距离累加信息需被迭代地进行r次更新,r为正整数;且在每次更新距离累加信息的过程中,确定出新邻域节点后,所述目标节点的读取计数信息和所述各源节点的读取计数信息均被更新;
[0137]
其中,当前邻域节点集是指:在第r次更新所述目标节点的距离累加信息时,所使用的r-1阶邻域节点集,r∈[1,r];所述目标节点的新邻域节点为所述目标节点的第r阶邻域节点。
[0138]
另一种实施方式中,处理单元701在根据更新后的距离累加信息计算所述目标节点的紧密中心度时,可具体用于:
[0139]
若r等于r,则对更新后的距离累加信息进行倒数运算,得到所述目标节点的紧密中心度;
[0140]
若r小于r,则继续对所述目标节点的距离累加信息进行第r+1次更新。
[0141]
另一种实施方式中,参数服务设备包括所述目标节点的当前写入计数信息,且所述当前写入计数信息用于指示所述目标节点的r-1阶邻域节点集;处理单元701在根据所述数据处理设备返回的所述融合后的读取计数信息,以及所述目标节点的当前读取计数信息,确定出所述目标节点的新邻域节点的节点信息时,可具体用于:
[0142]
对所述当前写入计数信息与所述数据处理设备返回的所述融合后的读取计数信息进行融合处理,得到融合后的写入计数信息,所述融合后的写入计数信息用于指示所述目标节点的r阶邻域节点集;
[0143]
根据所述融合后的写入计数信息与所述目标节点的当前读取计数信息之间的差异,确定出所述目标节点的新邻域节点的节点信息。
[0144]
另一种实施方式中,目标节点的当前读取计数信息包括所述目标节点的r-1阶邻域节点集的节点数量,所述融合后的写入计数信息包括所述目标节点的r阶邻域节点集的节点数量;处理单元701在根据所述融合后的写入计数信息与所述目标节点的当前读取计数信息之间的差异,确定出所述目标节点的新邻域节点的节点信息时,可具体用于:
[0145]
计算所述融合后的写入计数信息中的节点数量,与所述目标节点的当前读取计数信息中的节点数量之间的差值,得到所述目标节点的新邻域节点的数量,并将所述新邻域节点的数量作为所述新邻域节点的节点信息。
[0146]
另一种实施方式中,新邻域节点的数量为多个,每个新邻域节点与所述目标节点之间的距离相同;处理单元701在根据所述新邻域节点的节点信息,对所述目标节点的距离累加信息进行更新时,可具体用于:
[0147]
确定任一新邻域节点与所述目标节点之间的目标距离;
[0148]
对所述目标距离与所述新邻域节点的数量进行乘法运算,并将乘法运算结果累加至所述目标节点的距离累加信息上,以更新所述目标节点的距离累加信息。
[0149]
另一种实施方式中,任一当前读取计数信息以及所述目标节点的距离累加信息,是从参数矩阵中获取到的;所述目标图数据中的各个节点均具有标签信息,处理单元701还用于:
[0150]
创建参数矩阵,所述参数矩阵用于存储读取计数信息和距离累加信息;
[0151]
根据所述目标图数据中的各个节点的标签信息,确定所述目标图数据中的各个节点的初始的读取计数信息;以及,将所述各个节点的距离累加信息的初始值设置为默认值;
[0152]
将所述各个节点的初始的读取计数信息和相应的距离累加信息,添加至所述参数矩阵中以初始化所述参数矩阵;其中,针对所述目标节点的距离累加信息的更新,是在初始化所述参数矩阵后执行的。
[0153]
另一种实施方式中,读取计数信息包括相应的邻域节点集中的各个邻域节点的节点标识;处理单元701在根据所述目标图数据中的各个节点的标签信息,确定所述目标图数据中的各个节点的初始的读取计数信息时,可具体用于:
[0154]
确定目标标签集,所述目标标签集包括:所述目标图数据中被允许作为邻域节点的各个节点的标签信息;
[0155]
针对所述目标图数据中的任一节点,将所述任一节点的标签信息与所述目标标签集进行匹配处理;
[0156]
若所述任一节点的标签信息与所述目标标签集相匹配,则允许将所述任一节点作为所述任一节点的邻域节点,并将所述任一节点的节点标识添加至所述任一节点的初始的读取计数信息;
[0157]
若所述任一节点的标签信息与所述目标标签集不匹配,则禁止将所述任一节点作为所述任一节点的邻域节点,并禁止将所述任一节点的节点标识添加至所述任一节点的初始的读取计数信息。
[0158]
另一种实施方式中,目标图数据的获取方式如下所示:
[0159]
获取用于描述初始图数据的初始邻接表,所述初始图数据为一个无向图;所述初始邻接表中的一条邻接数据包括:所述初始图数据中的一条无向边所连接的两个节点的节点标识;
[0160]
对所述初始邻接表中的每条邻接数据中的两个节点标识进行位置交换处理,得到新的邻接数据;
[0161]
将所述新的邻接数据添加至所述初始邻接表中,以得到新的邻接表;以及,根据所述新的邻接表描述出所述目标图数据。
[0162]
根据本技术的一个实施例,图2或图4所示的方法所涉及的各个步骤均可由图7所示的紧密中心度估计装置中的各个单元来执行的。例如,图2中所示的步骤s201、s203以及s204均可由图7中所示的处理单元701执行,步骤s202可由图7中所示的输出单元702执行。又如,图4中所示的步骤s401-s404、s406以及s407均可由图7所示的处理单元701执行,步骤s405可由图7所示的输出单元702执行,等等。
[0163]
根据本技术的另一个实施例,图7所示的紧密中心度估计装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本技术的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本技术的其它实施例中,紧密中心度估计装置也可以包括其他单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
[0164]
根据本技术的另一个实施例,可以通过在包括中央处理单元(cpu)、随机存取存储介质(ram)、只读存储介质(rom)等处理元件和存储元件的例如计算机的通用参数服务设备上运行能够执行如图2或图4中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图7中所示的紧密中心度估计装置,以及来实现本技术实施例的紧密中心度估计方法。所述计算机程序可以记载于例如计算机存储介质上,并通过计算机存储介质装载于上述参数服务设备中,并在其中运行。
[0165]
本技术实施例在确定目标图数据中的目标节点的各源节点的当前读取计数信息后,可将各源节点的当前读取计数信息下发至数据处理设备,使数据处理设备对各源节点的当前读取计数信息进行融合处理,得到融合后的读取计数信息;其中,任一当前读取计数信息用于指示相应节点的当前邻域节点集,那么相应的,可使融合后的读取计数信息用于指示各源节点的当前邻域节点集。然后,可根据数据处理设备返回的融合后的读取计数信息,以及目标节点的当前读取计数信息,确定出目标节点的新邻域节点的节点信息,进而通过交互运行方式来减小单侧运行的计算压力,可有效提高计算性能;其中,新邻域节点是指:被融合后的读取计数信息指示,且未被目标节点的当前读取计数信息指示的邻域节点。进一步的,可根据新邻域节点的节点信息,快速地对目标节点的距离累加信息进行更新,并根据更新后的距离累加信息计算目标节点的紧密中心度;其中,目标节点的距离累加信息是指目标节点的当前邻域节点集中的各个邻域节点到目标节点的距离之和。另外,本技术实施例可由参数服务设备所执行,以通过参数服务设备进行数据更新,从而有效节省数据处理设备的计算资源并增强性能,尤其使得在超大规模的目标图数据上的性能更加优越。
[0166]
基于上述方法实施例以及装置实施例的描述,本技术实施例还提供一种参数服务设备。请参见图8,该参数服务设备至少包括处理器801、输入接口802、输出接口803以及计算机存储介质804。其中,参数服务设备内的处理器801、输入接口802、输出接口803以及计算机存储介质804可通过总线或其他方式连接。
[0167]
计算机存储介质804可以存储在参数服务设备的存储器中,所述计算机存储介质804用于存储计算机程序,所述计算机程序包括程序指令,所述处理器801用于执行所述计算机存储介质804存储的程序指令。处理器801(或称cpu(central processing unit,中央处理器))是参数服务设备的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现相应方法流程或相应功能;在一个实施例中,本技术实施例所述的处理器801可以用于进行一系列的紧密中心度估计,具体包括:确定目标图数据中的目标节点的各源节点的当前读取计数信息,源节点是指通过一条指向所述目标节点的有向边,与所述目标节点相连接的节点;任一当前读取计数信息用于指示相应节点的当前邻域节点集;将所述各源节点的当前读取计数信息下发至数据处理设备,使所述数据处理设备对所述各源节点的当前读取计数信息进行融合处理,得到融合后的读取计数信息;根据所述数据处理设备返回的所述融合后的读取计数信息,以及所述目标节点的当前读取计数信息,确定出所述目标节点的新邻域节点的节点信息;所述新邻域节点是指:被所述融合后的读取计数信息指示,且未被所述目标节点的当前读取计数信息指示的邻域节点;根据所述新邻域节点的节点信息,对所述目标节点的距离累加信息进行更新,并根据更新后的距离累加信息计算所述目标节点的紧密中心度;其中,所述目标节点的距离累加信息是指所述目标节点的当前邻域节点集中的各个邻域节点到所述目标节点的距离之和。
[0168]
本技术实施例还提供了一种计算机存储介质(memory),所述计算机存储介质是参数服务设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机存储介质既可以包括参数服务设备中的内置存储介质,当然也可以包括参数服务设备所支持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了参数服务设备的操作系统。并且,在该存储空间中还存放了适于被处理器加载并执行的一条或多条的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机存储介
质可以是高速ram存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的,还可以是至少一个位于远离前述处理器的计算机存储介质。在一个实施例中,可由处理器加载并执行计算机存储介质中存放的一条或多条指令,以实现上述有关图2或图4所示的紧密中心度估计方法的实施例中的各个方法步骤。
[0169]
本技术实施例在确定目标图数据中的目标节点的各源节点的当前读取计数信息后,可将各源节点的当前读取计数信息下发至数据处理设备,使数据处理设备对各源节点的当前读取计数信息进行融合处理,得到融合后的读取计数信息;其中,任一当前读取计数信息用于指示相应节点的当前邻域节点集,那么相应的,可使融合后的读取计数信息用于指示各源节点的当前邻域节点集。然后,可根据数据处理设备返回的融合后的读取计数信息,以及目标节点的当前读取计数信息,确定出目标节点的新邻域节点的节点信息,进而通过交互运行方式来减小单侧运行的计算压力,可有效提高计算性能;其中,新邻域节点是指:被融合后的读取计数信息指示,且未被目标节点的当前读取计数信息指示的邻域节点。进一步的,可根据新邻域节点的节点信息,快速地对目标节点的距离累加信息进行更新,并根据更新后的距离累加信息计算目标节点的紧密中心度;其中,目标节点的距离累加信息是指目标节点的当前邻域节点集中的各个邻域节点到目标节点的距离之和。另外,本技术实施例可由参数服务设备所执行,以通过参数服务设备进行数据更新,从而有效节省数据处理设备的计算资源并增强性能,尤其使得在超大规模的目标图数据上的性能更加优越。
[0170]
需要说明的是,根据本技术的一个方面,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机存储介质中。参数服务设备的处理器从计算机存储介质读取该计算机指令,处理器执行该计算机指令,使得该参数服务设备执行上述图2或图4所示的紧密中心度估计方法实施例方面的各种可选方式中提供的方法。
[0171]
并且,应理解的是,以上所揭露的仅为本技术较佳实施例而已,当然不能以此来限定本技术之权利范围,因此依本技术权利要求所作的等同变化,仍属本技术所涵盖的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1