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

用于图神经网络处理的系统、计算设备及存储介质的制作方法

2022-11-30 08:15:20 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其涉及一种用于图神经网络处理的系统、一种图神经网络的训练方法、计算设备及存储介质。


背景技术:

2.随着深度学习技术的飞速发展,各种类型的图神经网络算法被提出并应用到真实的场景中。其中,图神经网络算法是将传统的神经网络算法技术应用于图数据上的一种算法技术。在图神经网络算法中,图中的每个节点不断地搜集其邻居的信息并聚合,最后图中的每个节点都得到一个低维度的向量表示。其中,图神经网络算法可以应用到知识图谱,推荐系统以及生命科学等场景。然而,为了使算法设计人员灵活方便地表达图神经网络算法,多种图神经网络系统已经被开发出来,且将多种类型的图神经网络算法应用到场景中。但目前图神经网络系统仅仅能支持一种类型的图神经网络算法并应用到场景中,不能够灵活地支持多种类型的图神经网络算法。


技术实现要素:

3.本技术的多个方面提供一种用于图神经网络处理的系统、计算设备及存储介质,用以能够灵活地支持多种图神经网络模型的训练。
4.本技术实施例提供一种用于图神经网络处理的系统,用于对样本图数据进行处理,所述样本图数据包括多个样本节点以及多个样本节点之间的关联关系,所述多个样本节点包括第一节点以及第二节点,所述系统包括:执行组件,所述执行组件包括:图处理组件,用于获取样本图数据以及样本节点选择方式,并根据样本节点选择方式从所述样本图数据中确定第一节点与第二节点之间的关联关系,所述第一节点是指所述样本节点中的待处理节点,所述第二节点是指所述样本节点中用于处理所述第一节点的其它节点;神经网络处理组件,用于获取所述关联关系,基于确定的关联关系,对所述第二节点的信息进行聚合,并更新所述第一节点的信息,以用于图神经网络模型的训练过程。
5.本技术实施例还提供一种图神经网络的训练方法,用于对样本图数据进行处理,所述样本图数据包括多个样本节点以及多个样本节点之间的关联关系,所述多个样本节点包括第一节点以及第二节点,所述方法包括:获取作为训练样本的样本图数据以及对应的第一节点,所述第一节点是指所述样本节点中的待处理节点;确定针对所述第一节点的样本节点选择方式;根据所述样本节点选择方式,从样本图数据中确定所述第一节点与第二节点之间的关联关系,所述第二节点是指所述样本节点中用于处理所述第一节点的其它节点;基于确定的关联关系,对第二节点的信息进行聚合,并更新第一节点的信息,以用于图神经网络模型的训练过程。
6.本技术实施例还提供一种电子设备,包括:存储器、处理器;所述存储器,用于存储计算机程序;所述处理器,执行所述计算机程序,以用于:获取作为训练样本的样本图数据以及对应的第一节点;确定针对所述第一节点的样本节点选择方式,其中,所述样本图数据
包括多个样本节点以及多个样本节点之间的关联关系,所述多个样本节点包括第一节点以及第二节点;根据所述样本节点选择方式,从样本图数据中确定所述第一节点与第二节点之间的关联关系,所述第二节点是指所述样本节点中用于处理所述第一节点的其它节点;基于确定的关联关系,对第二节点的信息进行聚合,并更新第一节点的信息,以用于图神经网络模型的训练过程。
7.本技术实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被一个或多个处理器执行时,致使所述一个或多个处理器实现上述方法中的步骤。
8.在本技术实施例中,图处理组件,用于获取样本图数据以及样本节点选择方式,并根据样本节点选择方式从样本图数据中确定第一节点与第二节点之间的关联关系,第一节点是指样本节点中的待处理节点,第二节点是指样本节点中用于处理第一节点的其它节点;神经网络处理组件,用于获取关联关系,基于确定的关联关系,对第二节点的信息进行聚合,并更新第一节点的信息,以用于图神经网络模型的训练过程。
9.由于图处理组件可以通过样本节点选择方式,从样本图数据中确定第一节点与第二节点之间的关联关系,则可以通过不同的样本节点选择方式,建立出不同的关联关系,于是可以通过不同的关联关系满足不同种类图神经网络模型中对节点之间关联关系的需求,同时,神经网络处理组件,用于获取关联关系,基于确定的关联关系,对第二节点的信息进行聚合,并更新第一节点的信息,以用于图神经网络模型进行训练,由此可以支持不同类型的图网络神经模型的训练。从而使得能够灵活地兼容多种不同类型的图神经网络模型。
附图说明
10.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
11.图1为本技术一示例性实施例的用于图神经网络处理的系统示意图;
12.图2为本技术一示例性实施例的样本图数据的示意图;
13.图3为本技术一示例性实施例的关联关系图的示意图;
14.图4为本技术一示例性实施例的图神经网络的训练方法的流程示意图;
15.图5为本技术一示例性实施例提供的计算设备的结构示意图。
具体实施方式
16.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
17.根据前文可知,图神经网络算法是将传统的神经网络算法技术应用于图数据上的一种算法技术。在图神经网络算法中,图中的每个节点不断地搜集其邻居的信息并聚合,最后图中的每个节点都得到一个低维度的向量表示。为了更清楚地阐明可以先参考图2示出了样本图数据200,既可以视为图数据200。其中,节点(也可以称为样本顶点)201以及节点201之间的关联关系通过边202来连接,即边202为该关联关系。如节点a与其邻居节点e之间通过边202来连接。节点a可以搜集其邻居节点的信息并进行聚合。其中,邻居节点e为节点a
的直接邻居节点,邻居节点g为节点a的间接邻居节点。
18.基于此,图神经网络可以主要分为但不限于以下几种类型的图神经网络:直接邻居单步聚合类型的图神经网络、间接邻居单步聚合类型的图神经网络以及间接邻居层次聚合类型的图神经网络等。然而,在现有技术中,用于图神经网络处理和训练的系统主要支持当前主流的直接邻居单步聚合类型的图神经网络。如,该系统可以对图中节点是通过搜集其直接邻居(也可以称为直接邻居节点)的信息并实现聚合的,以得到节点对应的向量,从而对该类型图神经网络进行训练。而对于较难的其它类型的图神经网络,如间接邻居单步聚合类型的图神经网络以及间接邻居层次聚合类型的图神经网络等,其中,间接邻居单步聚合类型的图神经网络需要对众多间接节点进行选择,然后进行搜集其选择的间接邻居的信息并实现聚合的。间接邻居层次聚合类型的图神经网络不仅需要对众多间接邻居进行选择,还需要进行搜集其选择的间接邻居的信息并实现多步聚合的。由于较为复杂的处理过程,如针对间接邻居的单步聚合类型,其超出了现有技术中用于图神经网络处理和训练的系统支持直接邻居信息搜集和聚合的范围(即直接邻居单步聚合),因为其无法支持间接邻居的选择,以及信息的聚合。而针对间接邻居层次聚合类型,也显然超出了现有技术中用于图神经网络处理和训练的系统支持直接邻居搜集和聚合的范围,因为其也无法支持间接邻居的选择,以及多步聚合的复杂过程。致使现有技术中的系统不能很好地支持这些类型的图神经网络的处理和训练。
19.基于此,本技术提出的实施例可解决上述问题,能够灵活地支持多种不同图神经网络模型的处理和训练。
20.下面结合实施例,针对用于图神经网络处理的系统进行详细说明。
21.图1为本技术一示例性实施例的一种用于图神经网络处理的系统示意图。本技术实施例提供的该系统100可部署在计算设备执行,如,服务器等。该系统100可以包括执行组件102,执行组件102包括神经网络处理组件108以及图处理组件106。
22.图处理组件106,用于获取样本图数据以及样本节点选择方式,并根据样本节点选择方式从样本图数据中确定第一节点与第二节点之间的关联关系。
23.神经网络处理组件108,用于获取关联关系,基于确定的关联关系,对第二节点的信息进行聚合,并更新第一节点的信息,以用于图神经网络模型进行训练。
24.其中,样本图数据包括多个样本节点以及多个样本节点之间的关联关系,与样本节点选择方式对应的第二节点包括第一节点对应的直接关联样本节点和/或间接关联样本节点。第一节点是指样本节点中的待处理节点,第二节点是指样本节点中用于处理第一节点的其它节点。
25.需要说明的是,该系统可以部署在一台独立的服务器上,执行主体中的服务器则可以是一台独立的物理服务器,或者说是硬件服务器。该服务器可以通过部署在其上的系统100中的神经网络处理组件108来实现样本图数据中信息的聚合和更新。也可以直接进行接收对应的文件或者用户自定义函数,然后通过系统100中的执行组件102来进行执行步骤或执行内容的生成,以使进行各个阶段的执行。
26.该系统100也可以部署在集群上,如服务器集群,该服务器集群可以包括多个硬件服务器(也可以称为物理服务器,则该执行设备的服务器也可以是这个集群中服务器)。可以每个硬件服务器都可以部署这个执行组件102。也可以这个集群共享这一个系统100。集
群中的服务器可以通过预置的通信方式来通信。如,其中一个服务器可以为该集群中的主服务器,即master服务器,其负责进行均衡负载,然后通过部署在该集群中的系统100的负载处理组件进行负载均衡,然后将划分后的样本图数据分发至对应的服务器。同时,也可以将完整的关联关系(或者划分后的样本图数据对应的关联关系)分发下去。
27.也可以该集群中每个服务器均可以作为主服务器,其中一个服务器通过部署在该集群中的系统100的负载处理组件进行负载均衡,然后将划分后的样本图数据分发至对应的服务器。同时,也可以将完整的关联关系(或者划分后的样本图数据对应的关联关系)分发下去。
28.此外,如果该集群中的每个服务器都部署有该系统100,则可以各个服务器均可以通过部署其自身的系统100的负载处理组件进行负载均衡,然后将划分后的样本图数据分发至对应的服务器。同时,也可以将完整的关联关系(或者划分后的样本图数据对应的关联关系)分发下去。对应的服务器接收到划分的负载后,可以进行样本图数据中信息的聚合和更新,并将更新后的信息,再返回至主服务器,或者返回至分发上述负载的服务器。而对应的服务器可以通过部署在该服务器集群的系统100中的神经网络处理组件108来实现样本图数据中信息的聚合和更新。也可以通过部署在其自身上的系统100中的神经网络处理组件108来实现样本图数据中信息的聚合和更新。同时,对于集群共享系统100而言,则可以直接进行接收对应的文件或者用户自定义函数,然后通过系统100中的执行组件102来进行执行步骤或执行内容的生成,以使进行上述各个阶段的执行。由此,服务器可以直接通过神经网络处理组件108来执行对应的聚合和更新。而对于每个服务器都部署有系统100而言,也可以由该服务器集群中的一个服务器来接收对应的文件或者用户自定义函数,然后分发至各个服务器的系统100,从而通过各个系统100中的执行组件102来进行执行步骤或执行内容的生成,以使进行上述各个阶段的执行。
29.而对于虚拟设备而言,如容器或虚拟机等。多个虚拟设备可以组成一个虚拟设备集群,如多个容器可以组成一个容器集群,或者这个虚拟设备集群也可以视为设备集群,该虚拟设备是可以部署在云服务器上。则执行主体的服务器可以是云服务器。这多个容器较好的方式是运行在同一个物理设备(如,硬件服务器)上的。也可以是在不同的物理设备上。而系统100也可以部署在该容器集群上,或者每个容器都可以部署有该系统100。与前文所述的由多个服务器组成的集群处理信息过程是相似的,就不再赘述了。仅说明:以容器集群为例,对于容器集群而言,容器是通过实例进行运行的,基于系统100中的神经网络处理组件108来运行处理划分到的负载,如聚合以及更新,并将更新后的信息返回至主容器,或者是返回至分发负载的容器即可。容器之间也是通过预置的通信方式进行通信的。而容器则可以是依赖与对应的物理设备的资源而实现的。
30.以下针对上述系统进行详细的阐述:
31.图处理组件106,用于获取样本图数据以及样本节点选择方式,并根据样本节点选择方式从样本图数据中确定第一节点与第二节点之间的关联关系。
32.其中,样本图数据包括多个样本节点以及多个样本节点之间的关联关系。第一节点是指样本节点中的待处理节点,第二节点是指样本节点中用于处理第一节点的其它节点,可以是其中的待选择节点。该第二节点也是指与样本节点选择方式对应的第二节点,包括第一节点对应的直接关联样本节点和/或间接关联样本节点。
33.其中,图2示出了样本图数据200,其中,样本节点201(也可以称为样本顶点)以及样本节点201之间的关联关系通过边202来连接,即边202为该关联关系。如第一节点a(是指待处理节点)与样本节点e(即第二节点)之间通过边202来连接。如当该样本图数据200为知识图谱的时候,第一节点a(床)与样本节点e(衣柜)之间的该边202可以表示为“配套”的关系。
34.如图2所示,第一节点a的直接关联节点为样本节点e、样本节点h、样本节点f以及样本节点d。间接关联样本节点可以为样本节点b等。
35.其中,图数据是指由节点(也可以称为顶点)以及节点之间的关联关系(也可以称为边)组成的关系图,如知识图谱。应理解的是,该图数据也可以参考上述图2所示的样本图数据200,即可以将样本图数据200视为一种图数据。其中,节点可以视为图2中所示的样本节点a(也是第一节点)、e、h等。节点之间的关联关系可以视为图2中所示的边202。
36.那么上述样本图数据则是指作为训练样本的图数据。其中,样本图数据包括多个样本节点以及多个样本节点之间的关联关系,以及可以指定一个样本节点为第一节点。
37.其中,样本节点选择方式是指,对于第一节点而言,如何基于该第一节点或者说,以该第一节点为基准,从样本图数据中选择对应的第二节点。
38.样本节点选择方式包括:直接关联节点的选择方式、在不同访问方向上随机访问的选择方式、和中间节点的信息类型的选择方式。
39.其中,直接关联节点的选择方式是指选择与第一节点直接关联的邻居节点。如图2所示,第一节点a的直接关联节点(即直接关联的邻居节点)为样本节点e、样本节点h、样本节点f以及样本节点d。
40.在不同访问方向上随机访问的选择方式,是指可以以第一节点为基准,可以通过随机游走的方式选择对应的样本节点。如图2所示,第一节点a为基准,向不同的边202,即不同的访问方向上,随机游走,游走到样本节点c和样本节点g。则选择的节点为样本节点c和样本节点g。需要说明的是,也可以随机游走到第一节点a的直接邻居节点上,就不再赘述。
41.中间样本节点的信息类型的选择方式是指设置不同类型的中间样本节点,中间样本节点与第一节点相连接,然后根据不同类型的中间样本节点,从样本图数据中与第一节点具有关联关系的节点中查找对应的节点。如图2所示,可以设置该第一节点a直接关联的中间样本节点m和中间样本节点n,中间样本节点m的类型可以为电器类型、中间样本节点n的类型可以为家具类型,然后从样本图数据200中与第一节点a关联的其它节点中查找属于这两个类型的样本节点,如属于电器类型的样本节点c和样本节点d,以及属于家具类型的样本节点e和样本节点b。
42.需要说明的是,上述选择方式可以分别对应不同图神经网络类型的节点选择方式。
43.与样本节点选择方式对应的第二节点包括第一节点对应的直接关联样本节点和/或间接关联样本节点。其中,直接关联样本节点可以包括第一节点本身,还可以包括与第一节点有直接关系的节点,如图2所示,第一节点a的直接关联样本节点可以包括第一节点a本身、与第一节点a仅通过一条边202连接的样本节点e、样本节点d、样本节点f和样本节点h。其它的节点可以作为第一节点a的间接关联样本节点。
44.值得说明的是,对于直接关联样本节点和间接关联样本节点是如何确定的,是可
以由外部输入自主确定的,如上述所示,可以是一种确定方式。也可以有其它的确定方式,如直接关联样本节点除了上述所示外,还可以有与第一节点a具有两个边关联关系的样本节点,如样本节点b。由于图2的限制,并未画出与第一节点a具有多个边关联关系的节点,但应理解,是可以有如三个边关联关系样本节点的,且可以确定将三个边以上关联关系样本节点,作为间接关联样本节点。此处就不再赘述。
45.此外,如图1所示,该系统100还包括:接口组件101;接口组件101,用于获取用户自定义函数,用户自定义函数用于进行关联关系的确定、对第二节点的信息进行聚合以及更新,以用于图神经网络模型的训练过程;执行组件102,基于接口组件101,获取用户自定义函数,并将用户自定义函数转换为与神经网络处理组件108对应的执行内容以及与图处理组件106对应的执行内容,以使得神经网络处理组件108以及图处理组件106根据对应的执行内容,来实现图神经网络模型的训练。
46.其中,用户自定义函数是可以记录在文件中,用户自定义函数是指用户自己编写的函数或者程序。根据不同需求由用户进行编写,在本处通过编写上述函数来实现上述关联关系的确定、对第二节点的信息进行聚合以及更新的功能。
47.接口组件101的具体呈现可以但不限于是用户界面、api(application programming interface,应用程序接口)等方式。
48.例如,根据前文所述,通过电脑提供的展示界面,或者说用户界面,进行外部输入操作,可以通过3个用户自定义函数进行确定(该函数可以是用户根据编写规则自主编写的,也可以是从服务器提供的多个函数中,选择的对应函数,如不同的选择方式对应不同的函数,则自主选择的函数,对于自主选择的函数而言,也可以根据自主需求对其中的参数进行修改,或者进行其它适应修改)上述关联关系的确定、对第二节点的信息进行聚合以及更新。每个阶段,如关联关系的确定、对第二节点的信息进行聚合,以及更新,分别对应一个用户自定义函数。从而由电脑基于确定的用户自定义函数获取到关联关系的确定、对第二节点的信息进行聚合以及更新的方式。然后可以由对应的自定义函数至服务器,以进行关联关系的确定、对第二节点的信息进行聚合以及更新。
49.除此以外,服务器也可以通过api的方式进行用户自定义函数的调用,获取到对应的用户自定义函数,并根据上述方式进行关联关系的确定、对第二节点的信息进行聚合以及更新。就不再赘述。
50.如图1所示,根据前文所述,执行组件102可以通过接口组件101,接收到上述3个用户自定义函数,或者对应的文件,然后将文件中记录的用户自定义函数转换为各个阶段,如节点选择103、聚合104以及更新105对应的执行内容或者执行步骤,从而完成关联关系的确定、对第二节点的信息进行聚合,以及更新。而转换后的执行内容或者执行步骤可以被执行组件102中对应的神经网络处理组件108和图处理组件106所使用。
51.更具体的,执行组件102,用于获取作为训练样本的样本图数据以及对应的第一节点。
52.其中,执行组件102,用于通过接口组件101,以使输入对应的文件,进行样本图数据的获取,以及确定第一节点。
53.其中,可以根据前文所述的方式,通过获取到的用户自定义函数,或者该函数对应的文件来进行样本图数据的获取,以及确定第一节点。
54.例如,根据前文所述,可以通过接口组件101,如电脑提供的展示界面,或者说用户界面,进行外部输入操作,输入用户自定义函数,使得获取到样本图数据,如样本知识图谱以及其中的第一节点a。从而由电脑获取到样本图数据以及其中的第一节点。然后可以由电脑发送获取到样本图数据以及其中的第一节点至服务器,以进行模型训练的系统100的调用,进行模型训练。
55.然后,根据前文所述的方式,执行组件102可以进行样本图数据的获取,以及确定第一节点。就不再赘述,仅说明的是,转换后的执行内容或者执行步骤可以被图处理组件106来使用。
56.需要说明的是,本处所涉及的文件可以与前文所述文件是一个文件,也可以是另外一个文件。用户自定义函数也可以与前文所述的是同一个函数,也可以不是同一个函数。
57.相应的,执行组件102,用于确定针对第一节点的样本节点选择方式。
58.于是,具体的,执行组件102,还用于,基于接口组件101以及外部输入操作,输入对应的文件或用户自定义函数,确定第一节点的直接关联样本节点以及间接关联样本节点。
59.由于前文已经阐述过了,此处就不再赘述,仅说明,根据前文所述的方式,可以通过接口组件101,如电脑提供的用户界面或者展示界面进行去外部输入操作,输入如何确定第一节点的直接关联样本节点以及间接关联样本节点的文件或用户自定义函数。或者说定义第一节点的直接关联样本节点以及间接关联样本节点的文件或用户自定义函数。从而由电脑获取到如何确定第一节点的直接关联样本节点以及间接关联样本节点的文件或用户自定义函数,并可以由电脑发送将该信息发送至服务器。以使服务器的执行组件102根据该的文件或用户自定义函数确定可以第一节点的直接关联样本节点以及间接关联样本节点,以便基于样本节点选择方式进行样本节点的选择。将该转换后的执行内容或者执行步骤可以被图处理组件106来使用。
60.需要说明的是,本处所涉及的文件可以与前文所述文件是一个文件,也可以是另外一个文件。用户自定义函数也可以与前文所述的是同一个函数,也可以不是同一个函数。
61.具体的,执行组件102,还用于,基于接口组件101以及外部输入操作,确定样本节点选择方式(也可以称为邻居类型的确定方式)。
62.例如,根据前文所述,可以通过接口组件101,如电脑提供的展示界面,或者说用户界面,进行外部输入操作,使得获取到样本节点选择方式,如直接关联节点的选择方式,可以通过用户自定义函数或者对应的文件进行确定(该函数可以是用户根据编写规则自主编写的,也可以是从服务器提供的多个函数中,选择的对应函数,如不同的选择方式对应不同的函数,则自主选择的函数,对于自主选择的函数而言,也可以根据自主需求对其中的参数进行修改,或者进行其它适应修改)。从而由电脑基于确定的用户自定义函数或对应的文件获取到样本节点选择方式。然后可以由电脑发送样本节点选择方式的用户自定义函数或对应的文件至服务器,以基于模型训练的系统100的调用的情况下,进行样本节点的选择。
63.其中,如图1所示,服务器提供了系统100。通过其中的执行组件102,即gnn(图神经网络)执行组件,基于接收到的选择方式对应的用户自定义函数,生成执行计划,执行本技术实施例提供的模型训练的步骤,可以包括节点选择、聚合以及更新三个过程。可以通过gnn执行组件102来生成节点选择103、聚合104以及更新105对应的执行计划,并进行组合,得到最终的执行计划。将该转换后的执行内容(即执行计划)或者执行步骤可以被图处理组
件106来使用。
64.需要说明的是,可以在上述用户自定义函数中确定好上述第一节点的直接关联样本节点以及间接关联样本节点。就不再赘述。
65.此外,图处理组件106,具体用于,根据直接关联样本节点的选择方式,从样本图数据中确定与第一节点对应的选择路径以及直接关联样本节点;根据确定的选择路径以及直接关联样本节点,确定直接关联样本节点与第一节点的关联关系。
66.例如,根据前文所述,如图2所示,服务器部署的系统100中的图处理组件106,可以根据确定的选择方式,选择出了直接关联节点:样本节点e、样本节点h、样本节点f以及样本节点d。且对应的选择路径也可以为第一节点a到样本节点e,即两个节点之间的边202。以此类推,确定出其它样本节点与第一节点a之间的路径。由此可以确定出最终的关联关系,即第一节点a与样本节点e直接通过边202连接,第一节点a与节点h直接通过边202连接,第一节点a与样本节点f直接通过边202连接,第一节点a与样本节点d直接通过边202连接。为了更加直观地确定关联关系,可以按照图2的方式形成这个关联关系的图数据。
67.除此以外,还可以对选择出的直接关联样本节点的数量进行限制,如预置数量的节点,根据前文所述,根据选择2个点,如随机选择样本节点e和样本节点h。
68.这些都可以是通过用户自定义函数或对应的文件来实现的。
69.具体的,图处理组件106,具体用于,根据样本图数据中样本节点在不同访问方向上随机访问的选择方式,以第一节点为基准,从样本图数据中随机选择对应的样本节点;根据选择出的样本节点,创建选择出的样本节点与第一节点的关联关系。
70.例如,根据前文所述,如图2所示,服务器部署的系统100中的图处理组件106,可以根据确定的选择方式,以第一节点a为基准,向不同的边202,即不同的访问方向上,随机游走,游走到样本节点c和样本节点g,这里是经过两个边202游走过来的。则选择的节点为样本节点c和样本节点g。然后直接将样本节点c和样本节点g与第一节点a直接进行关联。第一节点a直接通过边202连接样本节点c,和第一节点a直接通过边202连接样本节点g。为了更加直观地确定关联关系,可以按照图2的方式形成这个关联关系的图数据。
71.此外,还可以对随机游走选择出来的样本节点进行预置数量的随机选择,如前文所述,就不再赘述了。还可以对随机游走选择出来的样本节点进行重要度的确定,从而根据重要度选择大于重要度阈值的样本节点。
72.这些都可以是通过用户自定义函数或对应的文件来实现的。
73.具体的,图处理组件106,具体用于,确定中间样本节点、中间样本节点与第一节点的关联关系以及中间样本节点的信息类型;根据信息类型的选择方式,以第一节点为基准,从样本图数据中选择同一信息类型的样本节点,并创建对应中间样本节点与所选样本节点的关联关系;基于中间样本节点与第一节点的关联关系以及中间样本节点与所选样本节点的关联关系,确定第一节点、中间样本节点以及所选样本节点的关联关系。
74.例如,根据前文所述,如图2所示,服务器部署的系统100中的图处理组件106,可以根据确定的选择方式,可以设置于该第一节点a直接关联的中间样本节点m和中间样本节点n,中间样本节点m的类型可以为电器类型、中间样本节点n的类型可以为家具类型。然后还可以继续对中间样本节点m和中间样本节点n的类型进行细化。
75.如图3所示,中间样本节点m可以包括p1中间样本节点,其对应的类型为电视类型
的中间样本节点。中间样本节点n可以包括p2-p4中间样本节点,可以对应的类型分别为沙发、衣柜、床以及书架。然后可以从图2所示中的样本图数据200中与第一节点a关联的其它样本节点中查找属于上述五个类型的节点,如属于电视类型的中间样本节点p1的样本节点c和样本节点d,以及属于沙发类型的中间样本节点p2的节点e和样本节点b,属于衣柜类型的中间样本节点p3的样本节点f和样本节点g,属于床类型的中间样本节点p4的样本节点g和样本节点h,属于书架类型的中间样本节点p5的样本节点h和样本节点i。选择完样本节点后,如图2所示可知,对于p1中间样本节点而言,其路径是,第一节点a-样本节点d-样本节点c。对于p2中间样本节点而言,其路径是,第一节点a-样本节点e-样本节点b。对于p3中间样本节点而言,其路径是,第一节点a-样本节点f-样本节点g。对于p4中间样本节点而言,其路径是,第一节点a-样本节点h-样本节点g。对于p5中间样本节点而言,其路径是,第一节点a-样本节点h-样本节点i。
76.由此,根据上述路径,创建了如图3所示的关联关系。
77.应理解,即使对于单个或者说单层中间样本节点而言,如图3中的中间样本节点m和n属于同一层中间样本节点。其也可以根据上述方式直接选择对应的样本节点,然后生成对应的关联关系,就不再赘述了。相应的,对于中间样本节点p1-p5而言,还可以根据需求继续划分类型,然后根据上述方式进行关联关系的确定,就不再赘述。
78.需要说明的是,无论是上述哪种选择方式,都可以将建立最终的关联关系称为建立层次关系图,例如可以是图3所示的一种关系图,该图可以包括两部分,如图3所示,schema tree(提要树)301,以及邻居节点实例302。schema tree(提要树)301可以包括作为根节点的第一节点以及作为叶子节点的中间样本节点,即中间样本节点,每个叶子节点表示对应的邻居类型。以及邻居节点实例302,可以包括多个样本节点。
79.这些都可以是通过用户自定义函数或对应的文件来实现的。
80.当中间样本节点为多层中间样本节点,图处理组件106,还用于,确定多层样本中间节点之间的关联关系;基于多层样本中间节点中第一层样本中间节点与第一节点的关联关系、多层样本中间节点之间的关联关系、以及多层样本中间节点中最后一层样本中间节点与所选样本节点的关联关系,确定第一节点、中间样本节点以及所选样本节点的关联关系。
81.由于前文已经阐述过了,此处就不再赘述。这些都可以是通过用户自定义函数或对应的文件来实现的。
82.在建立关联关系后,可以通过不同的样本节点选择方式,建立出不同的关联关系,于是可以通过不同的关联关系满足前文所述的不同种类图神经网络模型中对节点之间关联关系的需求。在此基础上可以完成后续的聚合以及更新,由此支持不同类型的图网络神经模型的训练。
83.对于神经网络处理组件108而言:
84.神经网络处理组件108,用于获取关联关系,基于确定的关联关系,对第二节点的信息进行聚合,并更新第一节点的信息,以用于图神经网络模型的训练过程。
85.其中,样本节点的信息是指样本节点的特征(如,家具样本节点的价格信息、材质信息等),也可以是对应的特征向量。
86.其中,神经网络处理组件108,还用于:调用关联关系的访问接口;根据调用的访问
接口,获取第一节点与第二节点之间的关联关系。
87.例如,根据前文所述,如图1所示,神经网络处理组件108可以通过调用api接口111中的层次关系图结构的访问接口,来从图处理组件106中获取层次关系图。
88.具体的,神经网络处理组件108,具体用于:基于预置训练参数,确定第二节点的特征;获取聚合方式,根据聚合方式以及关联关系,对第二节点的样本特征进行聚合,得到最终的聚合样本特征,以更新第一节点的信息。
89.其中,第二节点的特征,以及最终的聚合样本特征是指特征向量。
90.其中,聚合方式可以为聚合函数。可以通过聚合函数来进行聚合。聚合函数是具有用于将对应节点的信息进行聚合的功能。
91.具体的,神经网络处理组件108,具体用于:确定关联关系对应的关联路径,以沿着第一节点的方向为基准方向,根据关联路径中每个第二节点对应的聚合函数,对第二节点的样本特征进行聚合,得到最终的聚合样本特征。
92.其中,对于每层样本节点(可以为单层中间样本节点,也可以为单层样本节点),共享同一个聚合函数。如图3所示,第一层样本节点所在层304共享一个聚合函数。第二层样本节点所在层305共享一个聚合函数。应理解,对于第一节点a所在的层303而言,可以是0层,此处就需要聚合。或者可以将这里的更新视作为聚合。第三层样本节点所在层306这里无需要具有聚合函数。
93.例如,根据前文所述,服务器部署的系统100中的神经网络处理组件108,可以根据如图3所示,的关联关系,从下往上,即按照图3中的箭头方向(即,以目标样本节点a为基准方向),沿着箭头方向所示的关联路径,进行聚合。如,中间样本节点p1的样本特征向量由第一节点a的样本特征向量、样本节点c的样本特征向量和样本节点d的样本特征向量根据本层305的聚合函数进行聚合。依次类推直至聚合到第一节点a,即第一节点a的聚合样本特征向量由中间样本节点m的样本特征向量和中间样本节点n的样本特征向量根据本层304的聚合函数进行聚合。而样本节点的样本特征向量,可以对样本节点对应的特征,根据预置算法,如embedding(嵌入式)或者卷积算法,得到,其中,算法中具有训练参数,从而得到样本特征向量。
94.具体的,神经网络处理组件108,具体用于:获取更新方式,根据最终的聚合样本特征以及更新方式,更新第一节点的样本特征。
95.其中,更新方式可以是通过更新算法,或者更新规则进行更新。更新算法或者更新规则用于将聚合到的信息,如聚合样本特征,与对应节点自身的信息,如特征进行融合。如可以直接将聚合样本特征与第一节点的样本特征进行合并。或者还可以在合并的基础上 1等,可以根据不同的需求,来选择不同的更新算法。
96.例如,根据前文所述,如图3所示,服务器部署的系统100中的神经网络处理组件108,在得到第一节点a的最终的聚合样本特征,与第一节点a自身的样本特征进行合并,得到最终的样本特征。
97.需要说明的是,样本图数据中的样本节点可以具有未更新前的信息,从而得到对应的样本特征向量。该未更新前的信息可以是0。
98.此外,对于上述聚合方式以及更新方式,也可以由外部输入确定。
99.具体的,执行组件102,还用于:基于接口组件101以及外部输入操作,输入用户自
定义函数或对应的文件,确定聚合方式以及更新方式;基于聚合方式,根据确定的关联关系对第二节点的信息进行聚合,并根据更新方式,更新第一节点的信息。
100.神经网络处理组件108,用于通过文件(或用户自定义函数)对应的执行内容,确定对应的聚合函数,并根据聚合函数确定聚合方式,以使基于确定的关联关系,对第二节点的信息进行聚合。
101.神经网络处理组件108,用于通过文件(或用户自定义函数)对应的执行内容,确定对应的更新方式,以使根据更新方式更新第一节点的信息,以用于图神经网络模型的训练过程。
102.例如,根据前文所述,可以通过接口组件101,如电脑提供的用户界面或者展示界面进行输入操作,外部输入用户自定义函数或对应的文件,由此提供至少一个聚合函数中和/或至少一个更新算法(每个用户自定义函数可以对应一个聚合函数,或者更新算法,为上述样本节点确定对应的聚合函数和/或更新算法。从而由电脑获取到用于确定对应的聚合函数和/或更新算法的用户自定义函数或对应的文件,并可以由电脑发送将用户自定义函数或对应的文件发送至服务器。以使执行组件102根据前文所述的方式,将其转换,使得神经网络处理组件108根据该聚合函数和/或更新算法进行聚合和更新。
103.应理解,执行组件102也可以直接为样本节点预设好对应的聚合函数以及更新算法。
104.在聚合的过程中,为了能够提高聚合性能以及聚合效率,可以通过以下方式进行聚合。
105.具体的,神经网络处理组件108,还用于:根据多层中间样本节点中最后一层中间样本节点与样本节点的关联关系,针对最后一层中间样本节点,直接获取对应关联所选样本节点的样本特征,以使根据直接获取到的样本特征进行聚合;根据多层中间样本节点之间的关联关系、以及稀疏神经网络,针对相邻两层中间样本节点中的上层中间样本节点,获取对应关联下层中间样本节点的样本特征,以使根据获取到的样本特征进行聚合;根据中间样本节点与第一节点的关联关系、以及稠密神经网络,针对第一节点,获取对应关联中间样本节点的样本特征,以使根据获取到的样本特征进行聚合。
106.例如,根据前文所述,如图3所示,对于多层中间样本节点中最后一层中间样本节点,即所在层305的中间样本节点p1-p5,与样本节点a-i的关联关系,在进行聚合前,中间样本节点需要获取到对应样本节点的样本特征,即样本特征向量。则神经网络处理组件108可以通过对应的中间样本节点,如中间样本节点p1可以直接获取对应关联所选样本节点a、c、d的样本特征向量,以使根据直接获取到的样本特征进行聚合。无需要使得对应样本节点先将样本特征向量发送至边上,使得中间样本节点p1从边上进行获取该样本特征向量,以减少资源利用,提高聚合性能。
107.对于相邻两层中间样本节点中的上层中间样本节点,即所在层304的中间样本节点m和n,与下层中间样本节点p1-p5的关联关系,在进行聚合前,中间样本节点m和n,需要获取到对应下层中间样本节点p1-p5的样本特征,即样本特征向量。则神经网络处理组件108可以样本特征向量为系数张量格式,并通过稀疏神经网络操作,来实现聚合。
108.由于中间样本节点p1-p5各自对应着schema tree中的一个中间样本节点,叶子节点,不会消耗太多内存空间,所以可以利用通过稀疏神经网络操作,来实现聚合。
109.对于第一层中间样本节点,即所在层304的中间样本节点m和n,与第一节点,即第一节点a,的关联关系,在进行聚合前,第一节点a,需要获取到对应中间样本节点m和n的样本特征,即样本特征向量。则神经网络处理组件108可以通过稠密神经网络操作,来实现聚合。
110.其中,如图3所示,第一节点a,即schema tree的根节点,对应了两种类型的路径,即中间样本节点m和n分别与第一节点a连接的边。如果具有n个根节点,用于聚合的原始输入可以由形状张量表示2n
×
dim,其中,dim是指1层(即层304)一个节点的样本特征维度。如果每个根节点需要求和所有相关的上述两种类型的路径的特征,可以通过将原始张量重塑为n
×2×
dim。这里重塑操作仅更改张量的逻辑布局,并且不涉及内存复制。接下来对新的张量中的每一行在第一维度中求和,得到结果,从而完成稠密神经网络操作在聚合中的过程。
111.在当前的系统100中,稠密神经网络比稀疏神经网络更加有效,所以这里使用稠密神经网络来实现聚合,可以提高聚合性能。
112.在更新后,就可以进行训练,具体的,服务器可以进行训练过程,也可以由执行组件102(如其中的神经网络处理组件108)继续进行训练过程:根据更新后的第一节点的信息与第一节点的真实信息,对关联关系对应的初始的图神经网络进行训练。
113.其中,真实信息是指真实样本特征,也可以是真实样本特征向量。
114.具体的,服务器或执行组件102(如其中的神经网络处理组件108),还用于:根据更新后的第一节点的特征与第一节点的真实特征之间的特征差异,确定初始的图神经网络中训练参数,以完成图神经网络模型的训练。
115.其中,初始的图神经网络模型可以是神经网络模型,可以包括上述嵌入、节点的选择、聚合以及更新等过程的模型。该模型设置有初始训练参数,即预置训练参数。该参数可以包括用于前文所述的预置算法,如embedding的参数或卷积算法的参数等。还可以包括聚合函数中的参数。还可以包括更新算法中的参数等。应理解,可以通过不同的关联关系满足不同种类图神经网络模型中对节点之间关联关系的需求,由此支持不同类型的图网络神经模型的训练。
116.例如,根据前文所述,在确定了更新后的第一节点的样本特征向量,根据第一节点的真实样本特征向量与更新后的第一节点的样本特征向量的特征差异,通过损失函数对模型中的训练参数进行训练,得到对应的参数,并完成模型训练。
117.需要说明的是,由此该上述执行组件102是可以应用到一个独立硬件设备上的。如服务器,可以通过这一个服务器来直接运行执行组件102,从而实现前文所述的节点的选择、聚合以及更新等操作。
118.为了保证有效地训练,还可以通过负载均衡的方式进行训练。
119.此外,如图1所示,该系统100还包括:负载处理组件109;负载处理组件109,用于基于图处理组件106,获取样本图数据中的第一节点以及第一节点基于样本节点选择方式确定的对应关联关系,并根据样本图数据中的第一节点,以及第一节点基于样本节点选择方式确定的对应关联关系,确定基于第一节点对应的训练负载;负载处理组件109,用于基于第一节点对应的训练负载,对样本图数据进行负载均衡划分,并将划分后的样本图数据分发至用于训练图神经网络模型的设备(这里也可以是用于图神经网络处理的设备)。
120.其中,用于训练图神经网络模型的设备也可以是指完成训练计算的设备资源的统称,设备资源可以是物理资源,如处理器以及内存等,也可以是虚拟资源(如,分布式的虚拟网络、虚拟计算资源、虚拟存储资源)等。
121.例如,根据前文所述,负载处理组件109,可以通过api接口111中对应的访问接口来访问图处理组件106中的关联关系,如图3所示,第一节点a具有两个类型的中间样本节点m和n,而中间样本节点m和n分别对应中间样本节点p1,以及p2-p5。而中间样本节点p1-p5,各自分别对应三个样本节点,每个样本节点可以设置为20维度的特征,则中间样本节点p1-p5各自对应的训练量的成本为20*3=60。对于中间样本节点m和n的训练量的成本则分别为60*1=60和60*4=240。即可以视为训练负载,或者可以确定训练负载,与训练负载成正比。然后根据该训练负载对样本图数据进行划分,如具有4个设备,可以划分4份,并将划分后的样本图数据分发至对应的服务器。在分发划分后的样本图数据的同时,也可以将完整的关联关系(或者划分后的样本图数据对应的关联关系)分发下去。
122.需要说明的是,服务器可以进行上述划分,然后将其中一份留给自身,然后将其它三份分发给其它服务器。就不再过多赘述了。
123.其中,通信方式可以为,如图1所示,该系统100还包括:消息传递接口组件107;消息传递接口组件107,用于使得用于训练图神经网络模型的设备进行设备之间的通信。
124.如图1所示,然后进行分发的时候,可以通过消息传递接口组件107来实现分发,如,负载处理组件109可以通过api接口111中的对应接口调用消息传递接口组件107来进行分发。
125.此外,在划分后,或者未划分的时候,负载处理组件109(或者服务器)都可以根据当前训练负载是否超出阈值,如果超出则可以根据上述方式进行划分,来达到负载均衡,具体的,负载处理组件109(或者服务器),还用于:检测当前的训练负载,确定当前的训练负载是否超出阈值;当超出阈值,则向用于训练图神经网络模型的其它设备,发送消息,以进行负载均衡。
126.根据前文所述,服务器可以定时检测当前的训练负载(或者负载处理组件109可以通过服务器检测到当前的训练负载),或者实时检测当前的训练负载,如当前cpu的使用量等。确定当前的训练负载是否大于阈值,如果大于,则进行上述的负载均衡,然后向服务器所在集群中的其它服务器发送消息,询问是否有负载余量进行训练,如果有可以将划分后的样本图数据发送至对应的服务器。
127.根据前文所述,如图1所示,依旧可以通过负载处理组件109来实现。然后进行分发的时候,可以通过消息传递接口组件107来实现消息发送以及分发样本图数据,就不再赘述。
128.在实现负载均衡的同时,还需要降低设备之间的通信开销。
129.具体的,负载处理组件109,用于基于第一节点对应的训练负载,以及在划分样本图数据的情况下所划分掉的关联关系数量,对样本图数据进行负载均衡划分,并将划分后的样本图数据分发至用于训练图神经网络模型的设备。
130.例如,根据前文所述,为了限制通信成本,分发的过程,即迁移过程不应该在削减太多的边。如果,样本图数据可以有多个划分结果,且每个划分结果是相同的负载均衡,那么可以通过划分结果中被划分掉的边的数量,来确定选择最终的划分结果,选择被划分掉
的边的数量最小的划分结果进行划分,并发送。就不再过多赘述了。
131.此外,该系统100部署在云服务器上,云服务器包括多个虚拟设备;负载处理组件109,用于将划分后的样本图数据分发至用于训练图神经网络模型的虚拟设备;在虚拟设备上的神经网络处理组件108,用于接收划分后的样本图数据,并根据划分后的样本图数据,以及关联关系,对划分后的样本图数据中的第二节点的信息进行聚合,并更新第一节点的信息,以对图神经网络模型进行训练。由于前文已经阐述过了,此处就不再赘述。
132.还需要说明的是,根据前文所述,如图1所示,该系统100还包括存储组件110(也可以称为存储系统)、容错模块112。其中,存储组件110是用于实现训练过程中的存储功能,可以存储样本图数据以及各个样本节点的信息,如特征等。容错模块112是用于实现该系统100的容错机制的模块,允许或包容犯错情况的发生。
133.在上述模型训练好后,可以将训练结果发送至接口组件,如用户界面以使用户知晓。
134.基于上述相似的发明构思,图4示出了本技术另一示例性实施例提供的一种图神经网络的训练方法的流程示意图。本技术实施例提供的该方法400由服务器执行,该方法400用于对样本图数据进行处理,样本图数据包括多个样本节点以及多个样本节点之间的关联关系,多个样本节点包括第一节点以及第二节点,该方法400包括以下步骤:
135.401:获取作为训练样本的样本图数据以及对应的第一节点。
136.其中,第一节点是指样本节点中的待处理节点。
137.402:确定针对第一节点的样本节点选择方式。
138.403:根据样本节点选择方式,从样本图数据中确定第一节点与第二节点之间的关联关系。
139.404:基于确定的关联关系,对第二节点的信息进行聚合,并更新第一节点的信息,以用于图神经网络模型的训练过程。
140.由于前文已经详细阐述过步骤401-404的具体实施方式,此处就不再赘述。仅说明:第一预置函数是指前文所述的用户自定义函数。
141.具体的,获取作为训练样本的样本图数据以及对应的第一节点,包括:提供接口组件,以使基于接口组件输入样本图数据,进行样本图数据的获取;基于接口组件以及输入操作,确定第一节点。
142.具体的,确定针对第一节点的样本节点选择方式,包括:基于接口组件以及输入操作,确定样本节点选择方式。
143.具体的,根据样本节点选择方式从样本图数据中确定第一节点与第二节点之间的关联关系,包括:根据直接关联样本节点的选择方式,从样本图数据中确定与第一节点对应的选择路径以及直接关联样本节点;根据确定的选择路径以及直接关联样本节点,确定直接关联样本节点与第一节点的关联关系。
144.具体的,根据样本节点选择方式,从样本图数据中确定第一节点与第二节点之间的关联关系,包括:根据样本图数据中样本节点在不同访问方向上随机访问的选择方式,以第一节点为基准,从样本图数据中随机选择对应的样本节点;根据选择出的样本节点,创建选择出的样本节点与第一节点的关联关系。
145.具体的,根据样本节点选择方式,从样本图数据中确定第一节点与第二节点之间
的关联关系,包括:确定中间样本节点、中间样本节点与第一节点的关联关系以及中间样本节点的信息类型;根据信息类型的选择方式,以第一节点为基准,从样本图数据中选择同一信息类型的样本节点,并创建对应中间样本节点与所选样本节点的关联关系;基于中间样本节点与第一节点的关联关系以及中间样本节点与所选样本节点的关联关系,确定第一节点、中间样本节点以及所选样本节点的关联关系。
146.此外,该方法400还包括:基于接口组件以及输入操作,确定第一节点的直接关联样本节点以及间接关联样本节点。
147.此外,当中间样本节点为多层中间样本节点,该方法400还包括:确定多层样本中间节点之间的关联关系;基于多层样本中间节点中第一层样本中间节点与第一节点的关联关系、多层样本中间节点之间的关联关系、以及多层样本中间节点中最后一层样本中间节点与所选样本节点的关联关系,确定第一节点、中间样本节点以及所选样本节点的关联关系。
148.具体的,基于确定的关联关系,对第二节点的信息进行聚合,包括:基于预置训练参数,确定第二节点的特征;获取聚合方式,根据聚合方式以及关联关系,对第二节点的样本特征进行聚合,得到最终的聚合样本特征,以更新第一节点的信息。
149.具体的,根据聚合方式以及关联关系,对第二节点的样本特征进行聚合,包括:确定关联关系对应的关联路径,以沿着第一节点的方向为基准方向,根据关联路径中每个第二节点对应的聚合函数,对第二节点的样本特征进行聚合,得到最终的聚合样本特征。
150.具体的,更新第一的信息,包括:获取更新方式,根据最终的聚合样本特征以及更新方式,更新第一节点的样本特征。
151.此外,该方法400还包括:调用关联关系的访问接口;根据调用的访问接口,获取第一节点与第二节点之间的关联关系。
152.此外,该方法400还包括:基于用户界面以及输入操作,确定聚合方式以及更新方式;基于聚合方式,根据确定的关联关系对第二节点的信息进行聚合,并根据更新方式,更新第一节点的信息。
153.此外,该方法400还包括:根据多层中间样本节点中最后一层中间样本节点与所选样本节点的关联关系,针对最后一层中间样本节点,直接获取对应关联所选样本节点的样本特征,以使根据直接获取到的样本特征进行聚合;根据多层中间样本节点之间的关联关系、以及稀疏神经网络,针对相邻两层中间样本节点中的上层中间样本节点,获取对应关联下层中间样本节点的样本特征,以使根据获取到的样本特征进行聚合;根据中间样本节点与第一节点的关联关系、以及稠密神经网络,针对第一节点,获取对应关联中间样本节点的样本特征,以使根据获取到的样本特征进行聚合。
154.此外,该方法400还包括:根据更新后的第一节点的信息与第一节点的真实信息,对关联关系对应的图神经网络进行训练。
155.具体的,根据更新后的第一节点的信息与第一节点的真实信息,对关联关系对应的图神经网络进行训练,包括:根据更新后的第一节点的特征与第一节点的真实特征之间的特征差异,确定初始的图神经网络中训练参数,以完成初始的图神经网络模型的训练。
156.此外,该方法400还包括:根据样本图数据中的第一节点,以及第一节点基于样本节点选择方式确定的对应关联关系,确定基于第一节点对应的训练负载;基于第一节点对
应的训练负载,对样本图数据进行负载均衡划分,并将划分后的样本图数据分发至用于训练图神经网络模型的设备。
157.此外,该方法400还包括:检测当前的训练负载,确定当前的训练负载是否超出阈值;当超出阈值,则向用于训练图神经网络模型的其它设备,发送消息,以进行负载均衡。
158.此外,该方法400还包括:基于第一节点对应的训练负载,以及在划分样本图数据的情况下所划分掉的关联关系数量,对样本图数据进行负载均衡划分,并将划分后的样本图数据分发至用于训练初始的图神经网络模型的设备。
159.另,本方法400未能详细描述的内容,还可以参照上述系统100中的各个实施方式。
160.在本技术实施例的图神经网络训练的场景中,通过第一设备,如电脑提供的用户界面,外部输入样本图数据,如一个知识图谱作为样本图数据。在该知识图谱中,可以具有多个样本节点,每个样本节点可以表示的对象为对应的实体,如床。实体之间,即样本节点之间具有对应的关联关系,如样本节点a(即实体a“床”)与样本节点b(即实体“衣柜”)具有直接的关联关系,可以表示a-b(
“‑”
为两个节点之间的边),该关联关系为配套关系。外部输入还可以确定该样本图数据中的多个第一节点,如,样本节点a,即表示的实体a。样本节点n,即表示的实体n(衣柜)。样本节点m,即表示的实体m(书柜)等。可以以样本节点a为例说明,其它第一节点参考节点a,即实体a。
161.此外,可以通过用户界面进行外部输入针对样本节点a的样本节点选择方式,从而确定该样本节点选择方式。可以通过电脑将确定的样本节点选择方式、样本图数据以及第一节点,发送至第二设备,如服务器。以使服务器接收到这些信息后,进行对应的模型训练,可以通过调用对应的用接口组件来进行对应模型的训练,接口组件可以封装用于模型训练的方法。
162.需要说明的是,样本图数据以及第一节点也可以是第二设备预置好的,无需用户进行选择,可以由第二设备直接根据预置好的样本图数据以及第一节点进行对应模型的训练。
163.服务器接收到上述信息后,根据确定的样本节点选择方式,从样本图数据中确定第一节点与第二节点之间的关联关系。其中,节点选择方式包括:直接关联节点的选择方式、节点在不同访问方向上访问数量以及节点重要度的选择方式、和中间节点的信息类型的选择方式。可以依次对应着dnfa(direct neighbors with flat aggregation,直接邻居单步聚合),如gcn(图卷积网络,graphconvolutionalnetwork)模型,infa(indirect neighbors with flat aggregation,间接邻居单步聚合),如pinsage(是基于随机游走和gcn的模型框架),和inha(indirect neighbors with hierarchical aggregation,间接邻居层次聚合),如ma-gnn(memory ugmented graph neural networks,记忆增强图神经网络),这些gnn类型。由此,服务器可以根据上述选择方式,从样本图数据中,以样本节点a,实体a为基准,选择对应的邻居节点,即第二节点,从而生成对应的实体a与第二节点之间的关联关系,也可以称为层次关系图,如实体a分别与多个直接邻居用户直接连接,实体a与一个直接邻居实体之间存在连接关系,如配套关系等。
164.服务器在确定了该层次关系图后(以gcn的层次关系图为例,即训练的模型为gcn),可以根据该关系图对多个邻居节点的特征进行聚合,从而更新实体a的特征。邻居节点的特征可以是邻居节点多表示对象实体的实体信息,如材质信息、尺寸信息等。由此可以
根据该实体信息与预置算法,如embedding,确定对应的特征向量。从而确定出各个邻居节点的特征向量,再根据聚合函数对邻居节点的特征向量进行聚合,得到聚合后的特征向量,然后根据更新方式将聚合后的特征向量与实体a特征向量进行结合,进行更新,得到更新后的实体a的特征向量。此外,服务器也可以将样本图数据进行负载均衡的划分,然后将划分后的样本图数据,发送至第三设备以及第四设备等。然后各个设备进行聚合和更新,第三设备和第四设备将更新后的样本特征发送至第二设备。
165.需要说明的是,对于上述聚合函数以及更新方式均可以由外部输入来确定,确定方式与前文所述的样本节点选择方式相似,就不再赘述。也可以直接由第二设备来确定。
166.服务器在得到更新后的实体a的特征向量,与实体a的真实特征向量进行比较,并通过损失函数来训练初始的gcn模型,确定gcn模型中的训练参数,可以为gcn中用于确定各个节点特征向量的参数,如embedding中的参数。也可以确定聚合函数中的参数,如有需求也可以确定更新方式中的参数。从而完成gcn模型的训练。然后可以对该gcn模型进行应用。
167.在应用的过程中,可以通过电脑上传给服务器一个图数据,如知识图谱。服务器可以通过训练好的gcn模型,来确定未知或待完善实体的特征向量,从而完善实体的信息。由此,服务器可以根据完善后的实体信息,自动确定实体之间对应的关系,扩充知识图谱。
168.需要说明的是,除了可以应用在上述举例中外,还可以应用到其它图中,如线上购物推荐系统等。
169.在一个可能的设计中,本技术实施例提供了一种计算设备,如,服务器。如图5所示,该设备500可以包括:存储器501、处理器502;
170.存储器501,用于存储计算机程序。
171.处理器502,用于执行计算机程序,以用于:获取作为训练样本的样本图数据以及对应的第一节点;确定针对第一节点的样本节点选择方式,其中,样本图数据包括多个样本节点以及多个样本节点之间的关联关系,多个样本节点包括第一节点以及第二节点;根据样本节点选择方式,从样本图数据中确定第一节点与第二节点之间的关联关系,第二节点是指样本节点中用于处理第一节点的其它节点;基于确定的关联关系,对第二节点的信息进行聚合,并更新第一节点的信息,以用于图神经网络模型的训练过程。
172.具体的,处理器502,具体用于:提供接口组件,以使基于接口组件输入样本图数据,进行样本图数据的获取;基于接口组件以及输入操作,确定第一节点。
173.具体的,处理器502,具体用于:基于接口组件以及输入操作,确定样本节点选择方式。
174.具体的,处理器502,具体用于:根据直接关联样本节点的选择方式,从样本图数据中确定与第一节点对应的选择路径以及直接关联样本节点;根据确定的选择路径以及直接关联样本节点,确定直接关联样本节点与第一节点的关联关系。
175.具体的,处理器502,具体用于:根据样本图数据中样本节点在不同访问方向上随机访问的选择方式,以第一节点为基准,从样本图数据中随机选择对应的样本节点;根据选择出的样本节点,创建选择出的样本节点与第一节点的关联关系。
176.具体的,处理器502,具体用于:确定中间样本节点、中间样本节点与第一节点的关联关系以及中间样本节点的信息类型;根据信息类型的选择方式,以第一节点为基准,从样本图数据中选择同一信息类型的样本节点,并创建对应中间样本节点与所选样本节点的关
联关系;基于中间样本节点与第一节点的关联关系以及中间样本节点与所选样本节点的关联关系,确定第一节点、中间样本节点以及所选样本节点的关联关系。
177.此外,处理器502,还用于:基于接口组件以及输入操作,确定第一节点的直接关联样本节点以及间接关联样本节点。
178.此外,当中间样本节点为多层中间样本节点,处理器502,还用于:确定多层样本中间节点之间的关联关系;基于多层样本中间节点中第一层样本中间节点与第一节点的关联关系、多层样本中间节点之间的关联关系、以及多层样本中间节点中最后一层样本中间节点与所选样本节点的关联关系,确定第一节点、中间样本节点以及所选样本节点的关联关系。
179.具体的,处理器502,具体用于:基于预置训练参数,确定第二节点的特征;获取聚合方式,根据聚合方式以及关联关系,对第二节点的样本特征进行聚合,得到最终的聚合样本特征,以更新第一节点的信息。
180.具体的,处理器502,具体用于:确定关联关系对应的关联路径,以沿着第一节点的方向为基准方向,根据关联路径中每个第二节点对应的聚合函数,对第二节点的样本特征进行聚合,得到最终的聚合样本特征。
181.具体的,处理器502,具体用于:获取更新方式,根据最终的聚合样本特征以及更新方式,更新第一节点的样本特征。
182.此外,处理器502,还用于:调用关联关系的访问接口;根据调用的访问接口,获取第一节点与第二节点之间的关联关系。
183.此外,处理器502,还用于:基于用户界面以及输入操作,确定聚合方式以及更新方式;基于聚合方式,根据确定的关联关系对第二节点的信息进行聚合,并根据更新方式,更新第一节点的信息。
184.此外,处理器502,还用于:根据多层中间样本节点中最后一层中间样本节点与所选样本节点的关联关系,针对最后一层中间样本节点,直接获取对应关联所选样本节点的样本特征,以使根据直接获取到的样本特征进行聚合;根据多层中间样本节点之间的关联关系、以及稀疏神经网络,针对相邻两层中间样本节点中的上层中间样本节点,获取对应关联下层中间样本节点的样本特征,以使根据获取到的样本特征进行聚合;根据中间样本节点与第一节点的关联关系、以及稠密神经网络,针对第一节点,获取对应关联中间样本节点的样本特征,以使根据获取到的样本特征进行聚合。
185.此外,处理器502,还用于:根据更新后的第一节点的信息与第一节点的真实信息,对关联关系对应的初始的图神经网络进行训练。
186.具体的,根据更新后的第一节点的信息与第一节点的真实信息,对关联关系对应的初始的图神经网络进行训练,包括:根据更新后的第一节点的特征与第一节点的真实特征之间的特征差异,确定初始的图神经网络中训练参数,以完成初始的图神经网络模型的训练。
187.此外,处理器502,还用于:根据样本图数据中的第一节点,以及第一节点基于样本节点选择方式确定的对应关联关系,确定基于第一节点对应的训练负载;基于第一节点对应的训练负载,对样本图数据进行负载均衡划分,并将划分后的样本图数据分发至用于训练图神经网络模型的设备。
188.此外,处理器502,还用于:检测当前的训练负载,确定当前的训练负载是否超出阈值;当超出阈值,则向用于训练图神经网络模型的其它设备,发送消息,以进行负载均衡。
189.此外,处理器502,还用于:基于第一节点对应的训练负载,以及在划分样本图数据的情况下所划分掉的关联关系数量,对样本图数据进行负载均衡划分,并将划分后的样本图数据分发至用于训练图神经网络模型的设备。
190.另外,本发明实施例提供了一种计算机存储介质,计算机程序被一个或多个处理器执行时,致使一个或多个处理器实现图4方法实施例中一种图神经网络的训练方法的步骤。
191.另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如201、202、203等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
192.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
193.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
194.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程多媒体数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程多媒体数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
195.这些计算机程序指令也可存储在能引导计算机或其他可编程多媒体数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
196.这些计算机程序指令也可装载到计算机或其他可编程多媒体数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方
框图一个方框或多个方框中指定的功能的步骤。
197.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
198.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
199.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
200.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献