CN114239858A - 一种用于分布式图模型的图学习方法及设备 - Google Patents

一种用于分布式图模型的图学习方法及设备 Download PDF

Info

Publication number
CN114239858A
CN114239858A CN202210174078.XA CN202210174078A CN114239858A CN 114239858 A CN114239858 A CN 114239858A CN 202210174078 A CN202210174078 A CN 202210174078A CN 114239858 A CN114239858 A CN 114239858A
Authority
CN
China
Prior art keywords
node
current
edge
characteristic value
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202210174078.XA
Other languages
English (en)
Other versions
CN114239858B (zh
Inventor
郭志强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202210174078.XA priority Critical patent/CN114239858B/zh
Publication of CN114239858A publication Critical patent/CN114239858A/zh
Application granted granted Critical
Publication of CN114239858B publication Critical patent/CN114239858B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开涉及用于分布式图模型的图学习方法,包括:针对所述一条或更多条邻边中的每条邻边,响应于其连接的镜像节点和邻居节点的当前层的节点特征值均被更新,根据当前邻边的上一层的边特征值、镜像节点的当前层的节点特征值、以及当前邻居节点的当前层的节点特征值,计算当前邻边的当前层的边特征值,并根据当前邻边的当前层的边特征值和当前邻居节点的当前层的节点特征值,计算当前邻边在镜像节点处的聚合值;以及响应于所述一条或更多条邻边在镜像节点处的聚合值均被计算,计算镜像节点的本地聚合值,并将镜像节点的本地聚合值传输给用于分布式图学习的第二设备,所述第二设备与所述图模型的第二部分相关联,所述第二部分包括镜像节点的主节点。

Description

一种用于分布式图模型的图学习方法及设备
技术领域
本公开实施例属于计算机技术领域,尤其涉及一种用于分布式图模型的图学习方法及设备。
背景技术
随着信息科学的飞速发展,大量的数据每天都在许多领域被收集和存储。传统的简单统计方法在处理这些数据时显得无能为力,它们很难发现这种数据间的深层关联,也无法对不同领域的数据进行有针对性地处理。机器学习作为一个以数据为研究对象、以发现规律和关联为目标的工具由此而生。图论(graph theory)作为一个数学分支,其在机器学习中的研究与应用近年来得到了快速的发展。基于图论的机器学习算法就是把机器学习的问题归结为图论的问题,然后利用图论理论进行分析和求解的一类学习算法。
基于图论进行分析和求解的数据可以被称为图数据。可以基于图数据来建立图模型。图模型是描述事物间两两关系的数学模型,其包含若干个节点(vertex)及连接两个节点的边(edge)。因此,可以用G(V, E)代表一个图模型,其中V为节点的集合,E为边的集合。
实践中,图模型中的各个节点可以分别对应于与具体业务场景相关联的各个实体。例如,在具体业务场景是社区发现、用户分群之类与用户相关的情况下,图模型中的各个节点对应的各个业务实体例如可以是用户等。再例如,在论文分类、社交平台文章分类等的具体场景下,图模型中的各个节点对应的各个业务实体例如可以是文章等。在其他具体业务场景下,图模型对应的业务实体还可以是任意其他合理的实体,本文不作限定。一个图模型中的节点可以对应一种或多种实体。
图模型中,单个节点对应的实体可以具有与业务相关的各种属性。例如:在用于用户消费信息推送的图模型中,对应于用户的业务实体,可以对应有年龄、收入、停留位置、消费习惯之类的属性;对应于文章的业务实体,可以对应有关键词、所属领域、文章篇幅之类的属性。可选地,具有关联关系的节点之间还可以具有关联属性,该关联属性也可以作为相应连接边的边属性。例如,通过社交行为关联的用户之间可以具有社交属性(如聊天频率、转账行为、发红包行为等),该社交属性即相应两个节点之间的关联属性,其可以作为相应两个节点之间的连接边的边属性。通过属性,可以提取出相应的特征数据,来表征相应的节点。
发明内容
本公开的目的在于提供一种用于分布式图模型的图学习方法及设备。
根据本公开的第一方面,提供了一种用于分布式图模型的图学习方法,所述方法由第一设备执行,所述第一设备与所述图模型的第一部分相关联,所述第一部分包括镜像节点、镜像节点的一个或更多个邻居节点、以及连接镜像节点和所述一个或更多个邻居节点的一条或更多条邻边,其中,所述方法包括:针对所述一条或更多条邻边中的每条邻边,响应于其连接的镜像节点和邻居节点的当前层的节点特征值均被更新,根据当前邻边的上一层的边特征值、镜像节点的当前层的节点特征值、以及当前邻居节点的当前层的节点特征值,计算当前邻边的当前层的边特征值,并根据当前邻边的当前层的边特征值和当前邻居节点的当前层的节点特征值,计算当前邻边在镜像节点处的聚合值;以及响应于所述一条或更多条邻边在镜像节点处的聚合值均被计算,计算镜像节点的本地聚合值,并将镜像节点的本地聚合值传输给用于分布式图学习的第二设备,所述第二设备与所述图模型的第二部分相关联,所述第二部分包括镜像节点的主节点。
根据本公开的第二方面,提供了一种用于分布式图模型的图学习方法,所述方法由第二设备执行,所述第二设备与所述图模型的第二部分相关联,所述第二部分包括主节点、主节点的一个或更多个邻居节点、以及连接主节点和所述一个或更多个邻居节点的一条或更多条邻边,其中,所述方法包括:针对所述一条或更多条邻边中的每条邻边,响应于其连接的主节点和邻居节点的当前层的节点特征值均被更新,根据当前邻边的上一层的边特征值、主节点的当前层的节点特征值、以及当前邻居节点的当前层的节点特征值,计算当前邻边的当前层的边特征值,并根据当前邻边的当前层的边特征值和当前邻居节点的当前层的节点特征值,计算当前邻边在主节点处的聚合值;以及响应于所述一条或更多条邻边在主节点处的聚合值均被计算,计算主节点的本地聚合值。
根据本公开的第三方面,提供了一种用于分布式图模型的图学习设备,所述设备与所述图模型的第一部分相关联,所述第一部分包括镜像节点、镜像节点的一个或更多个邻居节点、以及连接镜像节点和所述一个或更多个邻居节点的一条或更多条邻边,其中,所述设备包括:边计算模块,被配置为:针对所述一条或更多条邻边中的每条邻边,响应于其连接的镜像节点和邻居节点的当前层的节点特征值均被更新,根据当前邻边的上一层的边特征值、镜像节点的当前层的节点特征值、以及当前邻居节点的当前层的节点特征值,计算当前邻边的当前层的边特征值,并根据当前邻边的当前层的边特征值和当前邻居节点的当前层的节点特征值,计算当前邻边在镜像节点处的聚合值;节点计算模块,被配置为:响应于所述一条或更多条邻边在镜像节点处的聚合值均被计算,计算镜像节点的本地聚合值;以及通信模块,被配置为:将镜像节点的本地聚合值传输给用于分布式图学习的其他设备,所述其他设备与所述图模型的第二部分相关联,所述第二部分包括镜像节点的主节点。
根据本公开的第四方面,提供了一种用于分布式图模型的图学习设备,所述设备与所述图模型的第二部分相关联,所述第二部分包括主节点、主节点的一个或更多个邻居节点、以及连接主节点和所述一个或更多个邻居节点的一条或更多条邻边,其中,所述设备包括:边计算模块,被配置为:针对所述一条或更多条邻边中的每条邻边,响应于其连接的主节点和邻居节点的当前层的节点特征值均被更新,根据当前邻边的上一层的边特征值、主节点的当前层的节点特征值、以及当前邻居节点的当前层的节点特征值,计算当前邻边的当前层的边特征值,并根据当前邻边的当前层的边特征值和当前邻居节点的当前层的节点特征值,计算当前邻边在主节点处的聚合值;以及节点计算模块,被配置为:响应于所述一条或更多条邻边在主节点处的聚合值均被计算,计算主节点的本地聚合值。
根据本公开的第五方面,提供了一种用于分布式图模型的图学习设备,包括:一个或多个处理器;和一个或多个存储器,被配置为存储一系列计算机可执行指令,其中,所述一系列计算机可执行指令在由所述一个或多个处理器执行时,使所述一个或多个处理器执行上述的方法。
根据本公开的第六方面,提供了一种非暂时性计算机可读介质,其上存储有指令,当所述指令由一个或多个处理器执行时,使所述一个或多个处理器执行上述的方法。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是一个分布式图模型的示例的示意图;
图2至图5是根据实施例的用于分布式图模型的图学习方法的示意图;
图6和图7是根据本公开实施例的用于分布式图模型的图学习方法的流程示意图;
图8是本公开实施例中分布式图模型中的边的状态机的示意图;
图9是本公开实施例中在边上执行的过程的示意图;
图10是本公开实施例中在节点上执行的过程的示意图;
图11和图12分别是本公开实施例中在镜像节点和主节点上执行的过程的示意图;
图13是根据本公开实施例的用于分布式图模型的图学习方法的信息交互示意图;
图14至图16是本公开实施例中各设备处的计算时序示意图;
图17是根据本公开实施例的用于分布式图模型的图学习设备的结构示意图;
图18是根据本公开实施例的用于分布式图模型的系统的至少部分的结构示意图;
图19是根据本公开实施例的用于分布式图模型的图学习设备的至少部分的结构示意图;
图20是可应用于本公开实施例的通用硬件系统的示例性框图。
具体实施方式
为了使本技术领域的人员更好地理解本公开中的技术方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
研究发现,来自真实世界的图数据通常满足幂律度分布,即大多数节点只有相对较少的邻居,而少数节点可能有相对较多的邻居。这少数的节点可能需要绝大多数的计算。可以采用节点分割的方法,将幂律较高的节点分割为一个主节点(本文也称Master节点)和一个或更多个镜像节点(本文也称Mirror节点),并使主节点和镜像节点的处理分布到不同的设备上,从而提高对图模型的处理性能。这样的图模型在本文中被称为“分布式”图模型。
图1是一个分布式图模型的示例的示意图。图1左上角带填充的图展示了节点分割前的图数据。在图1的示例中,示出了3个图学习设备P1、P2、P3,每个设备与图模型的一部分相关联。在该示例中,设备P1与该图模型的第一部分相关联,第一部分包括节点A、节点D的主节点(在图中用“D”表示)、节点B的主节点(在图中用“B”表示)、边AD和边AB;设备P2与该图模型的第二部分相关联,第二部分包括节点D的第一镜像节点D’、节点B的第一镜像节点B’、节点E、节点G、边ED’、边GD’和边GB’;设备P3与该图模型的第三部分相关联,第三部分包括节点D的第二镜像节点D”、节点F、节点C、边FD”和边CD”。在本说明书中,图学习设备可以是能够处理图模型的相应部分的计算的任何处理设备,例如GPU设备、CPU设备等。虽然在图1给出的示例中,用方框划分了图模型的各个部分,并在各方框内标注了用于区分图学习设备的附图标记P1、P2、P3,但本领域技术人员应理解,该图示方法并未限定图模型的各部分的图数据存储在相应的图学习设备上。换言之,图1中所示的各图学习设备P1、P2、P3可以是仅用于处理图模型的相应部分的计算的设备,而不用于存储图模型的相应部分的图数据,例如其可以通过访问其他具有存储功能的设备以获取计算所需的数据或将计算结果存储到其他具有存储功能的设备上。应当理解,图学习设备P1、P2、P3也可以是同时用于存储和处理图模型的相应部分的设备,即存储图模型的相应部分并对相应部分进行计算。
应当理解,图1中对左上角图数据的分割以得到的分布式图模型仅是示例。在其他实施例中,各个节点还可以做其他形式的分割,例如对其他的节点进行分割、分割出不同个数的主节点和镜像节点、或分割到其他个数的图学习设备上等,以得到不同的分布式图模型。
图卷积神经网络(Graph Convolutional Network,GCN)是图模型的一种应用,其将图数据作为输入,通过图卷积运算,找到适用于该图数据的可学习的卷积核。图卷积运算包含多层卷积处理,在每层卷积处理中,对每个节点的邻居节点都进行一次卷积运算,并用各邻居节点的卷积的结果更新当前节点,并经过激活函数(例如ReLU)后,进入下一层的卷积处理与下一层的激活函数。重复上述过程,直到卷积的层数达到预期深度。
为便于说明,下面给出图卷积运算中的点卷积算子的一个示例性公式(公式1),其为在每层卷积处理中对当前节点(节点i)进行卷积运算的一种较为简化的实现方式。本领域技术人员应理解,图卷积神经网络中实现图卷积运算的方式不限于此,本说明书所附权利要求书所要求保护的技术方案中特征值的计算也不限于依照如下的公式1来实现。
Figure 491390DEST_PATH_IMAGE001
公式1
其中,h(k+1)i为节点i在第k+1层的特征数据,h(k)j为节点j在第k层的特征数据,W(k)j为节点j在第k层的变换权重系数,Ni为节点i的邻居节点的集合(包括节点i自身)。为简便起见,本文中将节点或边的“特征数据”称为“特征值”。但应当理解,这样的名称并不是用来限定节点或边的特征表达仅包含一个数值。事实上,特征值可以包括由一组数据构成的向量。
下面结合图2至图5,以图1中的分布式图模型为例,来说明一种进行卷积处理的过程。在该过程中,各节点的卷积处理过程可以包括聚合(gather)和应用(apply)两个阶段的操作。首先,各图学习设备中的Mirror节点向其Master节点同步第k层的特征值h(k)。等设备中各个节点的第k层的特征值均已更新完毕,针对每个节点对其所有邻边进行聚合操作,即计算每个节点处的第k层的聚合值,其中Mirror节点生成的聚合值称为本地聚合值(本地指在节点所在的图学习设备中)。等待本地所有节点均完成gather操作,Mirror节点将其计算的第k层的本地聚合值发送到其Master节点。Master节点汇聚其所有Mirror节点的第k层的本地聚合值,以生成本节点的第k层的聚合值。等待本地所有Master节点均生成第k层的聚合值,所有Master节点进行apply操作,以生成节点的第k+1层的特征值h(k+1)。
图2示出了上述卷积处理过程中针对节点D的Master节点、节点D的第一和第二Mirror节点D’、D”以及节点E(节点D的第二Mirror节点D”的邻居节点)的处理时序、以及其间的数据流向。需要说明的是,本公开附图中的带箭头的线段仅用来示意性地示出数据/消息的流向,并不用来限定线段两端所对应的对象之间通过特定的通信链路进行数据/消息的传递。例如,线段两端所对应的对象之间除了可以通过特定的通信链路(例如基于有线/无线网络、总线、线缆等建立的通信链路)进行数据/消息的传递之外,还可以通过函数的传入/传出参数、全局变量、存储单元等进行数据/消息的传递。此外,带箭头的线段也并不用来限定线段的始端对应的是主动发送数据/消息的对象、末端是被动接收数据/消息的对象。应当理解,除了这种情况之外,还可以是线段的末端所对应的对象主动向线段的始端所对应的对象进行查询,从而从线段的始端获取相应的数据/消息。
如图2所示,首先进行各节点的第k层的卷积运算,即第k层的特征值h(k)的计算。节点D的Master节点D计算节点D的第k层特征值h(k)D,节点E计算其第k层特征值h(k)E。在一个实施例中,可以使用上述的公式1来计算第k层特征值h(k)。节点D的第一和第二Mirror节点D’、D”向Master节点D发送数据同步请求以同步Master节点D计算的节点特征值。Master节点D将节点D的第k层特征值h(k)D发送给Mirror节点D’、D”,Mirror节点D’、D”将本地的节点D的特征值更新为第k层特征值h(k)D。至此,可以认为这些节点均完成了第k层的特征值的计算,各节点可以开始对其各邻边进行gather操作以生成第k层的聚合值g(k)。如图所示,节点E根据其邻居节点D’的第k层特征值h(k)D生成节点E的第k层的聚合值g(k)D,Mirror节点D’根据其邻居节点E、G的第k层特征值h(k)E、h(k)G生成节点D’的第k层的本地聚合值g(k)D’,Mirror节点D”根据其邻居节点F、C的第k层特征值h(k)F、h(k)C生成节点D”的第k层的本地聚合值g(k)D”,节点D根据其邻居节点A的第k层特征值h(k)A生成节点D的第k层的本地聚合值g(k)DM。在一个实施例中,可以使用如下的公式2来计算第k层的聚合值(包括本地聚合值)。
Figure 595482DEST_PATH_IMAGE002
公式2
其中,g(k)i为节点i处的第k层的聚合值,h(k)j为节点j在第k层的特征值,
Figure 312902DEST_PATH_IMAGE003
为进行gather操作时节点j在第k层的变换权重系数,
Figure 396527DEST_PATH_IMAGE004
为节点i的邻居节点的集合(不包括节点i自身)。
为了提高效率,通常会使用多个线程进行gather操作。需要对本地的多个线程进行同步,在本地所有节点均进行完gather操作之后,将Mirror节点的本地聚合值会聚到其Master节点。具体地,Mirror节点D’、D”分别将其第k层的本地聚合值g(k)D’、g(k)D”发送给Master节点D。在Master节点D收到其所有的Mirror节点发来的第k层的本地聚合值之后,其根据自身第k层的本地聚合值g(k)DM、以及其所有Mirror节点的第k层的本地聚合值g(k)D’、g(k)D”,计算节点D的第k层的聚合值g(k)D。在一个实施例中,可以使用如下的公式3来在Master节点处计算第k层的聚合值。
Figure 210899DEST_PATH_IMAGE005
公式3
其中,g(k)i为被分割的节点i的第k层的聚合值,
Figure 971044DEST_PATH_IMAGE006
为节点i的Master节点和各Mirror节点的第k层的本地聚合值,
Figure 425028DEST_PATH_IMAGE007
为变换权重系数,Vi为节点i的Master节点和各Mirror节点的集合。
进行本地线程同步,确保本地(与Master节点D相关联的设备P1)所有Master节点都计算完毕各自的第k层的聚合值g(k)。之后,Master节点D执行apply操作,根据自身的第k层特征值h(k)D和自身的第k层聚合值g(k)D计算节点D的第k+1层的特征值h(k+1)D。节点E在其本地的所有节点均计算完毕各自的第k层的聚合值g(k)之后,可以根据自身的第k层特征值h(k)E和自身的第k层聚合值g(k)E计算节点E的第k+1层的特征值h(k+1)E。
图3至图5分别示出了上述卷积计算在图学习设备P1至P3上的处理过程。其中,图3中节点D的Master节点和节点B的Master节点的相关操作与上文参照图2描述的Master节点D的操作类似,图4中的节点D的第一Mirror节点D’、节点B的第一Mirror节点B’、图5中的节点D的第二Mirror节点D”的相关操作与上文参照图2描述的Mirror节点D’和/或D”的操作类似,图3中的节点A、图4中的节点E、G、图5中的节点C、F与上文参照图2描述的节点E的操作类似,此处不再赘述。从图3至图5的描绘可以看出,在上述卷积计算的方法中,每层的运算(包括gather阶段的计算和apply阶段的计算)都必须是串行的,例如,各节点的第k层的apply阶段的操作均完成之后才能进行第k层的gather阶段的操作,各节点的第k层的gather阶段的操作均完成之后才能进行第k+1层的apply阶段的操作,这使得设备的计算效率较低。
图6和图7是根据本公开实施例的用于分布式图模型的图学习方法的流程示意图。图6所示的方法100由用于图学习的第一设备执行,第一设备与分布式图模型的第一部分相关联。分布式图模型的第一部分包括镜像节点、镜像节点的一个或更多个邻居节点、以及连接镜像节点和一个或更多个邻居节点的一条或更多条邻边。方法100包括:针对一条或更多条邻边中的每条邻边,响应于其连接的镜像节点和邻居节点的当前层的节点特征值均被更新,根据当前邻边的上一层的边特征值、镜像节点的当前层的节点特征值、以及当前邻居节点的当前层的节点特征值,计算当前邻边的当前层的边特征值,并根据当前邻边的当前层的边特征值和当前邻居节点的当前层的节点特征值,计算当前邻边在镜像节点处的聚合值(操作110);以及响应于一条或更多条邻边在镜像节点处的聚合值均被计算,计算镜像节点的本地聚合值,并将镜像节点的本地聚合值传输给用于分布式图学习的第二设备,第二设备与图模型的第二部分相关联,第二部分包括镜像节点的主节点(操作120)。
图7所示的方法200由用于图学习的第二设备执行,第二设备与分布式图模型的第二部分相关联。分布式图模型的第二部分包括主节点、主节点的一个或更多个邻居节点、以及连接主节点和一个或更多个邻居节点的一条或更多条邻边。方法200包括:针对一条或更多条邻边中的每条邻边,响应于其连接的主节点和邻居节点的当前层的节点特征值均被更新,根据当前邻边的上一层的边特征值、主节点的当前层的节点特征值、以及当前邻居节点的当前层的节点特征值,计算当前邻边的当前层的边特征值,并根据当前邻边的当前层的边特征值和当前邻居节点的当前层的节点特征值,计算当前邻边在主节点处的聚合值(操作210);以及响应于一条或更多条邻边在主节点处的聚合值均被计算,计算主节点的本地聚合值(操作220)。在一些实施例中,方法200还包括:响应于主节点的所有镜像节点的本地聚合值均被接收,根据主节点的当前层的节点特征值、主节点的本地聚合值、以及所有镜像节点的本地聚合值,计算并更新主节点的下一层的节点特征值(操作230);以及将主节点的下一层的节点特征值传输给各镜像节点所在的用于分布式图学习的设备(操作240)。
根据本公开实施例的用于分布式图模型的图学习方法,对图模型中的节点和边都建立了相应的状态机,从而可以针对节点和边分别设计处理流程,将数据同步和控制的网络流与数据处理的执行流分开,消除了网络瞬间延迟对系统性能的影响,使整个系统的性能只取决于各设备的处理器的计算性能以及网络的吞吐性能。
图8是本公开实施例中分布式图模型中的边的状态机的示意图,图9是本公开实施例中在边上执行的过程的示意图。针对边的计算在未激活状态睡眠等待,直到其所有的端节点均执行完k层算子,即计算/更新了第k层的节点特征值,则针对边的计算被激活。针对该边执行k层算子以计算第k层的边特征值,并在边上执行gather操作以计算该边对其所有端节点的聚合值。完成之后,针对该边的计算进入未激活状态继续睡眠等待,直到其所有端节点的第k+1层算子执行完毕,针对该边的计算再次进入激活状态,即重复上述过程。可见,边特征值和聚合值的计算,在其两个端节点的特征值均更新完之后即被激活,可以在边的计算与节点的计算之间建立高效细粒度的原子同步机制,提高处理性能。
图10是本公开实施例中在节点上执行的过程的示意图,图11和图12分别示出了其中镜像节点和主节点上的操作。首先进行Master节点和Mirror节点之间的数据同步。对于Master节点,发送本节点的第k层节点特征值到其所有Mirror节点,然后进行后续操作。对于Mirror节点,睡眠等待直到其接收到其Master节点发送的第k层节点特征值。针对每个节点,待其所有邻边都执行完gather操作后,开始计算当前节点的本地聚合值。然后进行Master节点和Mirror节点之间的本地聚合值的汇总。对于Mirror节点,其将计算的本地聚合值发送给Master节点。而对于Master节点,睡眠等待其所有Mirror节点计算的本地聚合值。当接收到所有mirror节点的本地聚合值后,激活该Master节点,根据Master节点和其所有Mirror节点的本地聚合值,生成当前节点最终的聚合值。之后Master节点进行apply操作,计算本节点第k+1层的节点特征值,并把计算结果发送给其所有的Mirror节点,并重复上述过程。应当理解,如果该节点不是Master节点或Mirror节点,则该节点在其所有邻边都执行完gather操作后,可以直接计算其第k+1层的节点特征值。
下面结合图13至图16,以图1中的分布式图模型为例,来说明根据本公开实施例的方法进行卷积处理的过程。图13示出了上述根据本公开实施例的卷积处理过程中针对节点D的Master节点、节点D的第一Mirror节点D’、节点D’的邻居节点E、以及连接节点E和D’的邻边ED’的处理时序、以及其间的数据流向。如图所示,首先进行各节点的第k层的卷积运算,即第k层的特征值h(k)的计算。节点D的Master节点D计算节点D的第k层特征值h(k)D(例如可以根据下述的公式9),节点E计算其第k层特征值h(k)E(例如可以根据下述的公式7)。Master节点计算完之后,将节点D的第k层特征值h(k)D发送给Mirror节点D’,Mirror节点D’更新节点D的第k层特征值h(k)D。此时,邻边ED’的两个端节点的第k层的节点特征值均计算/更新完毕,则邻边ED’的计算被激活,开始根据其第k-1层的边特征值h(k-1)ED’、两个端节点的第k层的节点特征值h(k)E和h(k)D,根据如下公式4来计算邻边ED’的第k层的边特征值h(k)ED’。
Figure 561612DEST_PATH_IMAGE008
公式4
其中,h(k-1)mn为边mn的第k-1层的边特征值,h(k)m为边mn的一个端节点的第k层的节点特征值,h(k)n为其另一个端节点的第k层的节点特征值,f( )为由图学习确定的函数。
之后,针对邻边ED’,根据其第k层的边特征值h(k)ED’和其连接的两个端节点的第k层的节点特征值h(k)E和h(k)D,分别根据如下的公式5和6计算边ED’对节点D’的聚合值g(k)ED’(本文也称为边ED’在节点D’处的聚合值,下同)、以及边ED’对节点E的聚合值g(k)D’E。
Figure 921836DEST_PATH_IMAGE009
公式5
Figure 852883DEST_PATH_IMAGE010
公式6
其中,h(k)m和h(k)n分别为节点m和n在第k层的节点特征值,W(k)m和W(k)n分别为在第k层对节点m和n的权重系数,h(k)mn为边mn在第k层的边特征值,S(k)mn为在第k层对边mn的权重系数。可以看出,在本实施例的描述中,将边作为无向边进行描述,因此在公式5和6的运算中使用的边特征值均为h(k)mn、权重系数均为S(k)mn。应当理解,图模型中的边还可以是有向边。在有向边的情况下,公式5中基于的边的方向应为m->n,其边特征值可以表示为h(k)mn、权重系数可以表示为S(k)mn,而公式6中基于的边的方向应为n->m,其边特征值可以表示为h(k)nm、权重系数可以表示为S(k)nm。
对于除Master节点和Mirror节点之外的节点,响应于其连接的所有邻边在其处的聚合值均被计算,根据当前节点的当前层的节点特征值和其连接的所有邻边在其处的聚合值,根据如下公式7计算并更新当前节点的下一层的节点特征值。
Figure 607212DEST_PATH_IMAGE011
公式7
其中,h(k+1)i为节点i在第k+1层的特征值,h(k)i为节点i在第k层的特征值,W(k)i为节点i在第k层的权重系数,g(k)ji为边ji对节点i的聚合值,S(k)ji为g(k)ji在第k层的权重系数,Ni为节点i的邻居节点的集合(不包括当前节点i)。
如图1所示,节点E只有一条邻边ED’。边ED’对节点E的聚合值g(k)D’E计算完毕之后,可以根据g(k)D’E和节点E的第k层的特征值h(k)E,按照公式7来计算节点E的第k+1层的特征值h(k+1)E。
对于Master节点和Mirror节点,由其一条或更多条邻边在该节点处的聚合值的加权和,按照如下公式8来计算该节点的本地聚合值。
Figure 531174DEST_PATH_IMAGE012
公式8
其中,g’(k)i为节点i的第k层的本地聚合值,g(k)ji为边ji在第k层对节点i的聚合值,
Figure 992243DEST_PATH_IMAGE013
为聚合操作中第k层边ji对节点i的权重系数,Ni为节点i的邻居节点的集合(不包括当前节点i)。
如图1所示,Mirror节点D’有两条邻边,分别是边ED’和GD’。在其邻边GD’对其的聚合值g(k)GD’计算完毕之后,Mirror节点D’可以开始计算其本地聚合值g’(k)D’。Master节点D有一条邻边AD,其在聚合值g(k)AD计算完毕之后就可以开始计算其本地聚合值g’(k)D了。例如,根据g(k)ED’和g(k)GD’来按照公式8计算Mirror节点D’的本地聚合值g’(k)D’,根据g(k)AD来按照公式8计算Master节点D的本地聚合值g’(k)D。
之后,Mirror节点D’将其第k层的本地聚合值g’(k)D’发送给其Master节点D。响应于主节点的所有镜像节点的本地聚合值均被接收,根据主节点的当前层的节点特征值、主节点的本地聚合值、以及所有镜像节点的本地聚合值,按照如下公式9来计算并更新主节点的下一层的节点特征值。例如,Master节点D具有Mirror节点D’和D”,其可以根据Master节点第k层的节点特征值h(k)D以及各本地聚合值g’(k)D、g’(k)D’、g’(k)D”来计算节点D第k+1层的节点特征值h(k+1)D。
Figure 110503DEST_PATH_IMAGE014
公式9
其中,h(k+1)i为节点i在第k+1层的特征值,h(k)i为节点i在第k层的特征值,g’(k)j为节点j的本地聚合值,W(k)i和W(k)j均为第k层的相应的权重系数,Vi为节点i的Master节点和各Mirror节点的集合。
Master节点计算完之后,将节点D的第k+1层特征值h(k+1)D发送给其各Mirror节点,并重复上述过程。
图14至图16分别示出了上述卷积计算在图学习设备P1至P3上的处理过程。其中,图14中节点D的Master节点和节点B的Master节点的相关操作与上文参照图13描述的Master节点D的操作类似,图15中的节点D的第一Mirror节点D’、节点B的第一Mirror节点B’、图16中的节点D的第二Mirror节点D”的相关操作与上文参照图13描述的Mirror节点D’的操作类似,图14中的节点A、图15中的节点E、G、图16中的节点C、F的相关操作与上文参照图13描述的节点E的操作类似,图14中的边AD、AB、图15中的边GB’、GD’、ED’、图16中的边CD”、FD”的相关操作与上文参照图13描述的边ED’的操作类似,此处不再赘述。从图14至图16的描绘可以看出,在上述卷积计算的方法中,每层的运算(包括gather阶段的计算和apply阶段的计算)不必是串行的,提高了计算效率。例如,如图14所示,可以在节点B的Master节点和/或节点D的Master节点的第k层的本地聚合值计算之前,进行节点A的第k+1层的节点特征值的计算;如图15所示,可以在节点D’的第k层的本地聚合值计算之前,进行节点E的第k+1层的节点特征值的计算;如图16所示,可以在节点D”的第k层的本地聚合值和/或边FD”的第k层的聚合值计算之前,进行节点C的第k+1层的节点特征值的计算。
需要说明的是,在图14至图16所描绘的示例中,假设了各图学习设备P1、P2、P3各自仅包括一个用于图学习的处理器,因此各计算之间是串行执行的,即图中表示各计算的各方框之间在纵向不重叠。应当理解,各图学习设备P1、P2、P3可以包括多于一个的用于图学习的处理器,则各计算之间可以并行,即方框之间在纵向可以出现重叠。
图17是根据本公开实施例的用于分布式图模型的图学习设备300的结构示意图。图学习设备300包括节点计算模块310、边计算模块320和通信模块330。
在一些实施例中,设备300与分布式图模型的第一部分相关联,第一部分包括镜像节点、镜像节点的一个或更多个邻居节点、以及连接镜像节点和一个或更多个邻居节点的一条或更多条邻边。边计算模块320被配置为:针对一条或更多条邻边中的每条邻边,响应于其连接的镜像节点和邻居节点的当前层的节点特征值均被更新,根据当前邻边的上一层的边特征值、镜像节点的当前层的节点特征值、以及当前邻居节点的当前层的节点特征值,计算当前邻边的当前层的边特征值,并根据当前邻边的当前层的边特征值和当前邻居节点的当前层的节点特征值,计算当前邻边在镜像节点处的聚合值。节点计算模块310被配置为:响应于一条或更多条邻边在镜像节点处的聚合值均被计算,计算镜像节点的本地聚合值。通信模块330被配置为:将镜像节点的本地聚合值传输给用于分布式图学习的其他设备,其他设备与图模型的第二部分相关联,第二部分包括镜像节点的主节点。
在一些实施例中,设备300与分布式图模型的第二部分相关联,第二部分包括主节点、主节点的一个或更多个邻居节点、以及连接主节点和一个或更多个邻居节点的一条或更多条邻边。边计算模块320被配置为:针对一条或更多条邻边中的每条邻边,响应于其连接的主节点和邻居节点的当前层的节点特征值均被更新,根据当前邻边的上一层的边特征值、主节点的当前层的节点特征值、以及当前邻居节点的当前层的节点特征值,计算当前邻边的当前层的边特征值,并根据当前邻边的当前层的边特征值和当前邻居节点的当前层的节点特征值,计算当前邻边在主节点处的聚合值。节点计算模块320被配置为:响应于一条或更多条邻边在主节点处的聚合值均被计算,计算主节点的本地聚合值。通信模块330被配置为:从用于分布式图学习的其他设备接收主节点的一个或更多个镜像节点的本地聚合值。节点计算模块310还被配置为:响应于主节点的所有镜像节点的本地聚合值均被接收,根据主节点的当前层的节点特征值、主节点的本地聚合值、以及所有镜像节点的本地聚合值,计算并更新主节点的下一层的节点特征值。通信模块330还被配置为:将主节点的下一层的节点特征值传输给各镜像节点所在的设备。
图18是根据本公开实施例的用于分布式图模型的系统400的至少部分的结构示意图。本领域技术人员可以理解,系统400只是一个示例,不应将其视为限制本公开的范围或本公开所描述的特征。在该示例中,系统400可以包括一个或多个存储装置410、一个或多个电子设备420、以及一个或多个计算装置430,其可以通过网络或总线440互相通信连接。一个或多个存储装置410为一个或多个电子设备420、以及一个或多个计算装置430提供存储服务。虽然一个或多个存储装置410在系统400中以独立于一个或多个电子设备420、以及一个或多个计算装置430之外的单独的框示出,应当理解,一个或多个存储装置410可以实际存储在系统400所包括的其他实体420、430中的任何一个上。一个或多个电子设备420以及一个或多个计算装置430中的每一个可以位于网络或总线440的不同节点处,并且能够直接地或间接地与网络或总线440的其他节点通信。本领域技术人员可以理解,系统400还可以包括图18未示出的其他装置,其中每个不同的装置均位于网络或总线440的不同节点处。
一个或多个存储装置410可以被配置为存储上文所述的任何数据,包括但不限于:图数据、图模型的参数、各步骤/操作的中间计算结果和输出结果等。一个或多个计算装置430可以被配置为执行上述方法100、200中的一个或多个,和/或一个或多个方法100、200中的一个或多个步骤/操作。一个或多个电子设备420可以被配置为为用户提供接口,例如用于图模型的参数调整的接口等。一个或多个电子设备420还可以被配置为执行方法100、200中的一个或多个步骤。
网络或总线440可以是任何有线或无线的网络,也可以包括线缆。网络或总线440可以是互联网、万维网、特定内联网、广域网或局域网的一部分。网络或总线440可以利用诸如以太网、WiFi和HTTP等标准通信协议、对于一个或多个公司来说是专有的协议、以及前述协议的各种组合。网络或总线440还可以包括但不限于工业标准体系结构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线、和外围部件互连(PCI)总线。
一个或多个电子设备420和一个或多个计算装置430中的每一个可以被配置为与图19所示的系统500类似,即具有一个或多个处理器510、一个或多个存储器520、以及指令和数据。一个或多个电子设备420和一个或多个计算装置430中的每一个可以是意在由用户使用的个人计算装置或者由企业使用的商业计算机装置,并且具有通常与个人计算装置或商业计算机装置结合使用的所有组件,诸如中央处理单元(CPU)、存储数据和指令的存储器(例如,RAM和内部硬盘驱动器)、诸如显示器(例如,具有屏幕的监视器、触摸屏、投影仪、电视或可操作来显示信息的其他装置)、鼠标、键盘、触摸屏、麦克风、扬声器、和/或网络接口装置等的一个或多个I/O设备。
一个或多个电子设备420还可以包括用于捕获静态图像或记录视频流的一个或多个相机、以及用于将这些元件彼此连接的所有组件。虽然一个或多个电子设备420可以各自包括全尺寸的个人计算装置,但是它们可能可选地包括能够通过诸如互联网等网络与服务器无线地交换数据的移动计算装置。举例来说,一个或多个电子设备420可以是移动电话,或者是诸如带无线支持的PDA、平板PC或能够经由互联网获得信息的上网本等装置。在另一个示例中,一个或多个电子设备420可以是可穿戴式计算系统。
图19是根据本公开实施例的用于分布式图模型的图学习设备500的至少部分的结构示意图。系统500包括一个或多个处理器510、一个或多个存储器520、以及通常存在于计算机等装置中的其他组件(未示出)。一个或多个存储器520中的每一个可以存储可由一个或多个处理器510访问的内容,包括可以由一个或多个处理器510执行的指令521、以及可以由一个或多个处理器510来检索、操纵或存储的数据522。
指令521可以是将由一个或多个处理器510直接地执行的任何指令集,诸如机器代码,或者间接地执行的任何指令集,诸如脚本。本公开中的术语“指令”、“应用”、“过程”、“步骤”和“程序”在本公开中可以互换使用。指令521可以存储为目标代码格式以便由一个或多个处理器510直接处理,或者存储为任何其他计算机语言,包括按需解释或提前编译的独立源代码模块的脚本或集合。指令521可以包括引起诸如一个或多个处理器510来充当本公开中的各神经网络的指令。本公开其他部分更加详细地解释了指令521的功能、方法和例程。
一个或多个存储器520可以是能够存储可由一个或多个处理器510访问的内容的任何临时性或非临时性计算机可读存储介质,诸如硬盘驱动器、存储卡、ROM、RAM、DVD、CD、USB存储器、能写存储器和只读存储器等。一个或多个存储器520中的一个或多个可以包括分布式存储系统,其中指令521和/或数据522可以存储在可以物理地位于相同或不同的地理位置处的多个不同的存储装置上。一个或多个存储器520中的一个或多个可以经由网络连接至一个或多个第一装置510,和/或可以直接地连接至或并入一个或多个处理器510中的任何一个中。
一个或多个处理器510可以根据指令521来检索、存储或修改数据522。存储在一个或多个存储器520中的数据522可以包括上文所述的一个或多个存储装置410中存储的各项中一项或多项的至少部分。举例来说,虽然本公开所描述的主题不受任何特定数据结构限制,但是数据522还可能存储在计算机寄存器(未示出)中,作为具有许多不同的字段和记录的表格或XML文档存储在关系型数据库中。数据522可以被格式化为任何计算装置可读格式,诸如但不限于二进制值、ASCII或统一代码。此外,数据522可以包括足以识别相关信息的任何信息,诸如编号、描述性文本、专有代码、指针、对存储在诸如其他网络位置处等其他存储器中的数据的引用或者被函数用于计算相关数据的信息。
一个或多个处理器510可以是任何常规处理器,诸如市场上可购得的中央处理单元(CPU)、图形处理单元(GPU)等。可替换地,一个或多个处理器510还可以是专用组件,诸如专用集成电路(ASIC)或其他基于硬件的处理器。虽然不是必需的,但是一个或多个处理器510可以包括专门的硬件组件来更快或更有效地执行特定的计算过程,诸如对影像进行图像处理等。
虽然图19中示意性地将一个或多个处理器510以及一个或多个存储器520示出在同一个框内,但是系统500可以实际上包括可能存在于同一个物理壳体内或不同的多个物理壳体内的多个处理器或存储器。例如,一个或多个存储器520中的一个可以是位于与与上文所述的一个或多个计算装置(未示出)中的每一个的壳体不同的壳体中的硬盘驱动器或其他存储介质。因此,引用处理器、计算机、计算装置或存储器应被理解成包括引用可能并行操作或可能非并行操作的处理器、计算机、计算装置或存储器的集合。
图20是可应用于根据本公开一个或多个示例性实施例的通用硬件系统600的示例性框图。现在将参考图20描述系统600,其是可以应用于本公开的各方面的硬件设备的示例。上述各实施例中的系统或设备300、400、500中的任一个可以包括系统600的全部或部分。系统600可以是被配置为执行处理和/或计算的任何机器,可以是但不限于工作站、服务器、台式计算机、膝上型计算机、平板计算机、个人数据助理、智能电话、车载电脑、或其任何组合。
系统600可以包括可能经由一个或多个接口与总线602连接或与总线602通信的元件。例如,系统600可以包括总线602,以及一个或多个处理器604,一个或多个输入设备606和一个或多个输出设备608。一个或多个处理器604可以是任何类型的处理器,可以包括但不限于一个或多个通用处理器和/或一个或多个专用处理器(例如特殊处理芯片)。上文所述的方法中的各个操作和/或步骤均可以通过一个或多个处理器604执行指令来实现。
输入设备606可以是可以向计算设备输入信息的任何类型的设备,可以包括但不限于鼠标、键盘、触摸屏、麦克风和/或遥控器。输出设备608可以是可以呈现信息的任何类型的设备,可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。
系统600还可以包括非暂时性存储设备610或者与非暂时性存储设备610连接。非暂时性存储设备610可以是非暂时性的并且可以实现数据存储的任何存储设备,可以包括但不限于磁盘驱动器、光学存储设备、固态存储器、软盘、硬盘、磁带或任何其他磁介质、光盘或任何其他光学介质、ROM(只读存储器)、RAM(随机存取存储器)、高速缓冲存储器、和/或任何其他存储器芯片/芯片组、和/或计算机可从其读取数据、指令和/或代码的任何其他介质。非暂时性存储设备610可以从接口拆卸。非暂时性存储设备610可以具有用于实现上述方法、操作、步骤和过程的数据/指令/代码。
系统600还可以包括通信设备612。通信设备612可以是能够与外部设备和/或与网络通信的任何类型的设备或系统,可以包括但不限于调制解调器、网卡、红外通信设备、无线通信设备、和/或芯片组,例如蓝牙设备、802.11设备、WiFi设备、WiMax设备、蜂窝通信设备、卫星通信设备、和/或类似物。
总线602可以包括但不限于工业标准体系结构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线、和外围部件互连(PCI)总线。特别地,对于车载设备,总线602还可以包括控制器区域网络(CAN)总线或设计用于在车辆上应用的其他架构。
系统600还可以包括工作存储器614,其可以是可以存储对处理器604的工作有用的指令和/或数据的任何类型的工作存储器,可以包括但不限于随机存取存储器和/或只读存储设备。
软件元素可以位于工作存储器614中,包括但不限于操作系统616、一个或多个应用程序618、驱动程序、和/或其他数据和代码。用于执行上述方法、操作和步骤的指令可以包括在一个或多个应用程序618中。软件元素的指令的可执行代码或源代码可以存储在非暂时性计算机可读存储介质中,例如上述存储设备610,并且可以通过编译和/或安装被读入工作存储器614中。还可以从远程位置下载软件元素的指令的可执行代码或源代码。
还应该理解,可以根据具体要求进行变化。例如,也可以使用定制硬件,和/或可以用硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合来实现特定元件。此外,可以采用与诸如网络输入/输出设备之类的其他计算设备的连接。例如,根据本公开实施例的方法或装置中的一些或全部可以通过使用根据本公开的逻辑和算法的、用汇编语言或硬件编程语言(诸如VERILOG,VHDL,C++)的编程硬件(例如,包括现场可编程门阵列(FPGA)和/或可编程逻辑阵列(PLA)的可编程逻辑电路)来实现。
还应该理解,系统600的组件可以分布在网络上。例如,可以使用一个处理器执行一些处理,而可以由远离该一个处理器的另一个处理器执行其他处理。系统600的其他组件也可以类似地分布。这样,系统600可以被解释为在多个位置执行处理的分布式计算系统。
尽管到目前为止已经参考附图描述了本公开的各方面,但是上述方法,系统和设备仅仅是示例性示例,并且本公开的范围不受这些方面的限制,而是仅由以下方面限定:所附权利要求及其等同物。可以省略各种元件,或者可以用等效元件代替。另外,可以以与本公开中描述的顺序不同的顺序执行这些步骤。此外,可以以各种方式组合各种元件。同样重要的是,随着技术的发展,所描述的许多元素可以由在本公开之后出现的等同元素代替。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device, PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为服务器系统。当然,本申请不排除随着未来计算机技术的发展,实现上述实施例功能的计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本公开一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本公开一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本公开是参照根据本公开实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储、石墨烯存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本公开一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本公开一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本公开一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本公开一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本公开中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本公开的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本公开的至少一个实施例或示例中。在本公开中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本公开中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本公开一个或多个实施例的实施例而已,并不用于限制本本公开一个或多个实施例。对于本领域技术人员来说,本公开一个或多个实施例可以有各种更改和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。

Claims (38)

1.一种用于分布式图模型的图学习方法,所述方法由第一设备执行,所述第一设备与所述图模型的第一部分相关联,所述第一部分包括镜像节点、镜像节点的一个或更多个邻居节点、以及连接镜像节点和所述一个或更多个邻居节点的一条或更多条邻边,其中,所述方法包括:
针对所述一条或更多条邻边中的每条邻边,响应于其连接的镜像节点和邻居节点的当前层的节点特征值均被更新,根据当前邻边的上一层的边特征值、镜像节点的当前层的节点特征值、以及当前邻居节点的当前层的节点特征值,计算当前邻边的当前层的边特征值,并根据当前邻边的当前层的边特征值和当前邻居节点的当前层的节点特征值,计算当前邻边在镜像节点处的聚合值;以及
响应于所述一条或更多条邻边在镜像节点处的聚合值均被计算,计算镜像节点的本地聚合值,并将镜像节点的本地聚合值传输给用于分布式图学习的第二设备,所述第二设备与所述图模型的第二部分相关联,所述第二部分包括镜像节点的主节点。
2.根据权利要求1所述的方法,还包括:
针对所述一条或更多条邻边中的每条邻边,还根据当前邻边的当前层的边特征值和镜像节点的当前层的节点特征值,计算当前邻边在当前邻居节点处的聚合值;以及
针对所述一个或更多个邻居节点中的每个邻居节点,响应于其连接的所有邻边在其处的聚合值均被计算,根据当前邻居节点的当前层的节点特征值和其连接的所有邻边在其处的聚合值,计算并更新当前邻居节点的下一层的节点特征值。
3.根据权利要求1或2所述的方法,还包括:
响应于从所述第二设备接收所述主节点的下一层的节点特征值,更新镜像节点的下一层的节点特征值。
4.根据权利要求2所述的方法,其中,针对所述一个或更多个邻居节点中的至少一个邻居节点,在从所述第二设备接收来自所述主节点的下一层的节点特征值之前,计算并更新所述至少一个邻居节点的下一层的节点特征值。
5.根据权利要求2所述的方法,其中,针对所述一个或更多个邻居节点中的至少一个邻居节点,在计算镜像节点的本地聚合值之前,计算并更新所述至少一个邻居节点的下一层的节点特征值。
6.根据权利要求2所述的方法,其中,针对所述一个或更多个邻居节点中的至少一个邻居节点,在计算所述一条或更多条邻边中的至少一条邻边在镜像节点处的聚合值之前,计算并更新所述至少一个邻居节点的下一层的节点特征值。
7.根据权利要求1所述的方法,其中,基于由图学习确定的函数,来根据当前邻边的上一层的边特征值、镜像节点的当前层的节点特征值、以及当前邻居节点的当前层的节点特征值,计算当前邻边的当前层的边特征值。
8.根据权利要求1所述的方法,其中,由当前邻边的当前层的边特征值和当前邻居节点的当前层的节点特征值的加权和,来计算当前邻边在镜像节点处的聚合值。
9.根据权利要求1所述的方法,其中,由所述一条或更多条邻边在镜像节点处的聚合值的加权和,来计算镜像节点的本地聚合值。
10.一种用于分布式图模型的图学习方法,所述方法由第二设备执行,所述第二设备与所述图模型的第二部分相关联,所述第二部分包括主节点、主节点的一个或更多个邻居节点、以及连接主节点和所述一个或更多个邻居节点的一条或更多条邻边,其中,所述方法包括:
针对所述一条或更多条邻边中的每条邻边,响应于其连接的主节点和邻居节点的当前层的节点特征值均被更新,根据当前邻边的上一层的边特征值、主节点的当前层的节点特征值、以及当前邻居节点的当前层的节点特征值,计算当前邻边的当前层的边特征值,并根据当前邻边的当前层的边特征值和当前邻居节点的当前层的节点特征值,计算当前邻边在主节点处的聚合值;以及
响应于所述一条或更多条邻边在主节点处的聚合值均被计算,计算主节点的本地聚合值。
11.根据权利要求10所述的方法,还包括:
针对所述一条或更多条邻边中的每条邻边,还根据当前邻边的当前层的边特征值和主节点的当前层的节点特征值,计算当前邻边在当前邻居节点处的聚合值;以及
针对所述一个或更多个邻居节点中的每个邻居节点,响应于其连接的所有邻边在其处的聚合值均被计算,根据当前邻居节点的当前层的节点特征值和其连接的所有邻边在其处的聚合值,计算并更新当前邻居节点的下一层的节点特征值。
12.根据权利要求10或11所述的方法,还包括:
响应于主节点的所有镜像节点的本地聚合值均被接收,根据主节点的当前层的节点特征值、主节点的本地聚合值、以及所有镜像节点的本地聚合值,计算并更新主节点的下一层的节点特征值;以及
将主节点的下一层的节点特征值传输给各镜像节点所在的用于分布式图学习的设备。
13.根据权利要求11所述的方法,其中,针对所述一个或更多个邻居节点中的至少一个邻居节点,在计算并更新主节点的下一层的节点特征值之前,计算并更新所述至少一个邻居节点的下一层的节点特征值。
14.根据权利要求11所述的方法,其中,针对所述一个或更多个邻居节点中的至少一个邻居节点,在计算主节点的本地聚合值之前,计算并更新所述至少一个邻居节点的下一层的节点特征值。
15.根据权利要求11所述的方法,其中,针对所述一个或更多个邻居节点中的至少一个邻居节点,在计算所述一条或更多条邻边中的至少一条邻边在主节点处的聚合值之前,计算并更新所述至少一个邻居节点的下一层的节点特征值。
16.根据权利要求10所述的方法,其中,基于由图学习确定的函数,来根据当前邻边的上一层的边特征值、主节点的当前层的节点特征值、以及当前邻居节点的当前层的节点特征值,计算当前邻边的当前层的边特征值。
17.根据权利要求10所述的方法,其中,由当前邻边的当前层的边特征值和当前邻居节点的当前层的节点特征值的加权和,来计算当前邻边在主节点处的聚合值。
18.根据权利要求10所述的方法,其中,由所述一条或更多条邻边在主节点处的聚合值的加权和,来计算主节点的本地聚合值。
19.一种用于分布式图模型的图学习设备,所述设备与所述图模型的第一部分相关联,所述第一部分包括镜像节点、镜像节点的一个或更多个邻居节点、以及连接镜像节点和所述一个或更多个邻居节点的一条或更多条邻边,其中,所述设备包括:
边计算模块,被配置为:针对所述一条或更多条邻边中的每条邻边,响应于其连接的镜像节点和邻居节点的当前层的节点特征值均被更新,根据当前邻边的上一层的边特征值、镜像节点的当前层的节点特征值、以及当前邻居节点的当前层的节点特征值,计算当前邻边的当前层的边特征值,并根据当前邻边的当前层的边特征值和当前邻居节点的当前层的节点特征值,计算当前邻边在镜像节点处的聚合值;
节点计算模块,被配置为:响应于所述一条或更多条邻边在镜像节点处的聚合值均被计算,计算镜像节点的本地聚合值;以及
通信模块,被配置为:将镜像节点的本地聚合值传输给用于分布式图学习的其他设备,所述其他设备与所述图模型的第二部分相关联,所述第二部分包括镜像节点的主节点。
20.根据权利要求19所述的设备,其中,
所述边计算模块还被配置为:针对所述一条或更多条邻边中的每条邻边,还根据当前邻边的当前层的边特征值和镜像节点的当前层的节点特征值,计算当前邻边在当前邻居节点处的聚合值;以及
所述节点计算模块还被配置为:针对所述一个或更多个邻居节点中的每个邻居节点,响应于其连接的所有邻边在其处的聚合值均被计算,根据当前邻居节点的当前层的节点特征值和其连接的所有邻边在其处的聚合值,计算并更新当前邻居节点的下一层的节点特征值。
21.根据权利要求19或20所述的设备,其中,
所述通信模块还被配置为:从所述其他设备接收所述主节点的下一层的节点特征值;以及
所述节点计算模块还被配置为:根据所述通信模块接收的所述主节点的下一层的节点特征值,更新镜像节点的下一层的节点特征值。
22.根据权利要求20所述的设备,其中,
所述节点计算模块还被配置为:针对所述一个或更多个邻居节点中的至少一个邻居节点,在从所述其他设备接收来自所述主节点的下一层的节点特征值之前,计算并更新所述至少一个邻居节点的下一层的节点特征值。
23.根据权利要求20所述的设备,其中,
所述节点计算模块还被配置为:针对所述一个或更多个邻居节点中的至少一个邻居节点,在计算镜像节点的本地聚合值之前,计算并更新所述至少一个邻居节点的下一层的节点特征值。
24.根据权利要求20所述的设备,其中,
所述节点计算模块还被配置为:针对所述一个或更多个邻居节点中的至少一个邻居节点,在计算所述一条或更多条邻边中的至少一条邻边在镜像节点处的聚合值之前,计算并更新所述至少一个邻居节点的下一层的节点特征值。
25.根据权利要求19所述的设备,其中,
所述边计算模块还被配置为:基于由图学习确定的函数,来根据当前邻边的上一层的边特征值、镜像节点的当前层的节点特征值、以及当前邻居节点的当前层的节点特征值,计算当前邻边的当前层的边特征值。
26.根据权利要求19所述的设备,其中,
所述节点计算模块还被配置为:由当前邻边的当前层的边特征值和当前邻居节点的当前层的节点特征值的加权和,来计算当前邻边在镜像节点处的聚合值。
27.根据权利要求19所述的设备,其中,
所述节点计算模块还被配置为:由所述一条或更多条邻边在镜像节点处的聚合值的加权和,来计算镜像节点的本地聚合值。
28.一种用于分布式图模型的图学习设备,所述设备与所述图模型的第二部分相关联,所述第二部分包括主节点、主节点的一个或更多个邻居节点、以及连接主节点和所述一个或更多个邻居节点的一条或更多条邻边,其中,所述设备包括:
边计算模块,被配置为:针对所述一条或更多条邻边中的每条邻边,响应于其连接的主节点和邻居节点的当前层的节点特征值均被更新,根据当前邻边的上一层的边特征值、主节点的当前层的节点特征值、以及当前邻居节点的当前层的节点特征值,计算当前邻边的当前层的边特征值,并根据当前邻边的当前层的边特征值和当前邻居节点的当前层的节点特征值,计算当前邻边在主节点处的聚合值;以及
节点计算模块,被配置为:响应于所述一条或更多条邻边在主节点处的聚合值均被计算,计算主节点的本地聚合值。
29.根据权利要求28所述的设备,其中,
所述边计算模块还被配置为:针对所述一条或更多条邻边中的每条邻边,还根据当前邻边的当前层的边特征值和主节点的当前层的节点特征值,计算当前邻边在当前邻居节点处的聚合值;以及
所述节点计算模块还被配置为:针对所述一个或更多个邻居节点中的每个邻居节点,响应于其连接的所有邻边在其处的聚合值均被计算,根据当前邻居节点的当前层的节点特征值和其连接的所有邻边在其处的聚合值,计算并更新当前邻居节点的下一层的节点特征值。
30.根据权利要求28或29所述的设备,还包括:
通信模块,被配置为:从用于分布式图学习的其他设备接收主节点的一个或更多个镜像节点的本地聚合值,其中,
所述节点计算模块还被配置为:响应于主节点的所有镜像节点的本地聚合值均被接收,根据主节点的当前层的节点特征值、主节点的本地聚合值、以及所有镜像节点的本地聚合值,计算并更新主节点的下一层的节点特征值;以及
所述通信模块还被配置为:将主节点的下一层的节点特征值传输给各镜像节点所在的设备。
31.根据权利要求29所述的设备,其中,
所述节点计算模块还被配置为:针对所述一个或更多个邻居节点中的至少一个邻居节点,在计算并更新主节点的下一层的节点特征值之前,计算并更新所述至少一个邻居节点的下一层的节点特征值。
32.根据权利要求29所述的设备,其中,
所述节点计算模块还被配置为:针对所述一个或更多个邻居节点中的至少一个邻居节点,在计算主节点的本地聚合值之前,计算并更新所述至少一个邻居节点的下一层的节点特征值。
33.根据权利要求29所述的设备,其中,
所述节点计算模块还被配置为:针对所述一个或更多个邻居节点中的至少一个邻居节点,在计算所述一条或更多条邻边中的至少一条邻边在主节点处的聚合值之前,计算并更新所述至少一个邻居节点的下一层的节点特征值。
34.根据权利要求28所述的设备,其中,
所述边计算模块还被配置为:基于由图学习确定的函数,来根据当前邻边的上一层的边特征值、主节点的当前层的节点特征值、以及当前邻居节点的当前层的节点特征值,计算当前邻边的当前层的边特征值。
35.根据权利要求28所述的设备,其中,
所述节点计算模块还被配置为:由当前邻边的当前层的边特征值和当前邻居节点的当前层的节点特征值的加权和,来计算当前邻边在主节点处的聚合值。
36.根据权利要求28所述的设备,其中,
所述节点计算模块还被配置为:由所述一条或更多条邻边在主节点处的聚合值的加权和,来计算主节点的本地聚合值。
37.一种用于分布式图模型的图学习设备,包括:
一个或多个处理器;和
一个或多个存储器,被配置为存储一系列计算机可执行指令,
其中,所述一系列计算机可执行指令在由所述一个或多个处理器执行时,使所述一个或多个处理器执行权利要求1至18中任一项所述的方法。
38.一种非暂时性计算机可读介质,其上存储有指令,当所述指令由一个或多个处理器执行时,使所述一个或多个处理器执行权利要求1至18中任一项所述的方法。
CN202210174078.XA 2022-02-25 2022-02-25 一种用于分布式图模型的图学习方法及设备 Active CN114239858B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210174078.XA CN114239858B (zh) 2022-02-25 2022-02-25 一种用于分布式图模型的图学习方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210174078.XA CN114239858B (zh) 2022-02-25 2022-02-25 一种用于分布式图模型的图学习方法及设备

Publications (2)

Publication Number Publication Date
CN114239858A true CN114239858A (zh) 2022-03-25
CN114239858B CN114239858B (zh) 2022-06-10

Family

ID=80748129

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210174078.XA Active CN114239858B (zh) 2022-02-25 2022-02-25 一种用于分布式图模型的图学习方法及设备

Country Status (1)

Country Link
CN (1) CN114239858B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114817411A (zh) * 2022-06-23 2022-07-29 支付宝(杭州)信息技术有限公司 分布式图学习方法和装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120317149A1 (en) * 2011-06-09 2012-12-13 Salesforce.Com, Inc. Methods and systems for processing graphs using distributed memory and set operations
US20160092595A1 (en) * 2014-09-30 2016-03-31 Alcatel-Lucent Usa Inc. Systems And Methods For Processing Graphs
US20160292303A1 (en) * 2015-04-03 2016-10-06 Oracle International Corporation Distributed graph processing system that support remote data read with proactive bulk data transfer
US20170364534A1 (en) * 2016-06-15 2017-12-21 Chen Zhang Platform, system, process for distributed graph databases and computing
US20180181538A1 (en) * 2015-10-28 2018-06-28 Fractal Industries, Inc. Distributable model with distributed data
US20200133663A1 (en) * 2018-10-31 2020-04-30 Oracle International Corporation Automatic generation of multi-source breadth-first search from high-level graph language for distributed graph processing systems
CN111191080A (zh) * 2019-08-22 2020-05-22 腾讯科技(深圳)有限公司 一种数据处理的方法及装置
US20200210481A1 (en) * 2019-01-02 2020-07-02 International Business Machines Corporation Parallel graph events processing
US20200356858A1 (en) * 2019-05-10 2020-11-12 Royal Bank Of Canada System and method for machine learning architecture with privacy-preserving node embeddings
US20210012196A1 (en) * 2019-07-11 2021-01-14 The Regents Of The University Of California Peer-to-peer training of a machine learning model
CN113835899A (zh) * 2021-11-25 2021-12-24 支付宝(杭州)信息技术有限公司 针对分布式图学习的数据融合方法及装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120317149A1 (en) * 2011-06-09 2012-12-13 Salesforce.Com, Inc. Methods and systems for processing graphs using distributed memory and set operations
US20160092595A1 (en) * 2014-09-30 2016-03-31 Alcatel-Lucent Usa Inc. Systems And Methods For Processing Graphs
US20160292303A1 (en) * 2015-04-03 2016-10-06 Oracle International Corporation Distributed graph processing system that support remote data read with proactive bulk data transfer
US20180181538A1 (en) * 2015-10-28 2018-06-28 Fractal Industries, Inc. Distributable model with distributed data
US20170364534A1 (en) * 2016-06-15 2017-12-21 Chen Zhang Platform, system, process for distributed graph databases and computing
US20200133663A1 (en) * 2018-10-31 2020-04-30 Oracle International Corporation Automatic generation of multi-source breadth-first search from high-level graph language for distributed graph processing systems
US20200210481A1 (en) * 2019-01-02 2020-07-02 International Business Machines Corporation Parallel graph events processing
US20200356858A1 (en) * 2019-05-10 2020-11-12 Royal Bank Of Canada System and method for machine learning architecture with privacy-preserving node embeddings
US20210012196A1 (en) * 2019-07-11 2021-01-14 The Regents Of The University Of California Peer-to-peer training of a machine learning model
CN111191080A (zh) * 2019-08-22 2020-05-22 腾讯科技(深圳)有限公司 一种数据处理的方法及装置
CN113835899A (zh) * 2021-11-25 2021-12-24 支付宝(杭州)信息技术有限公司 针对分布式图学习的数据融合方法及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
WENCONG XIAO等: ""TUX2: distributed graph computation for machine learning"", 《NSDI"17: PROCEEDINGS OF THE 14TH USENIX CONFERENCE ON NETWORKED SYSTEMS DESIGN AND IMPLEMENTATION》 *
ZHIQI LIN等: ""PaGraph: Scaling GNN training on large graphs via computation-aware caching"", 《SOCC "20: PROCEEDINGS OF THE 11TH ACM SYMPOSIUM ON CLOUD COMPUTING》 *
秦智勇: ""基于分布式的神经网络训练研究"", 《数码设计》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114817411A (zh) * 2022-06-23 2022-07-29 支付宝(杭州)信息技术有限公司 分布式图学习方法和装置
CN114817411B (zh) * 2022-06-23 2022-11-01 支付宝(杭州)信息技术有限公司 分布式图学习方法和装置

Also Published As

Publication number Publication date
CN114239858B (zh) 2022-06-10

Similar Documents

Publication Publication Date Title
Gao et al. Highly efficient salient object detection with 100k parameters
WO2020114022A1 (zh) 一种知识库对齐方法、装置、计算机设备及存储介质
CN105320957B (zh) 分类器训练方法和装置
US9754188B2 (en) Tagging personal photos with deep networks
WO2017181866A1 (en) Making graph pattern queries bounded in big graphs
US20220164666A1 (en) Efficient mixed-precision search for quantizers in artificial neural networks
CN111898698B (zh) 对象的处理方法及装置、存储介质和电子设备
Pascucci et al. The ViSUS Visualization Framework.
CN112463159B (zh) 编译方法、装置、电子设备和存储介质
CN114239858B (zh) 一种用于分布式图模型的图学习方法及设备
CN111680799B (zh) 用于处理模型参数的方法和装置
US20170199912A1 (en) Behavior topic grids
CN113807926A (zh) 推荐信息生成方法、装置、电子设备和计算机可读介质
WO2017112087A1 (en) Reconstruction of signals using a gramian matrix
CN110457325B (zh) 用于输出信息的方法和装置
Mishra et al. Semantic segmentation datasets for resource constrained training
US20210279594A1 (en) Method and apparatus for video coding
Nguyen et al. Learning on hypergraphs with sparsity
US10181000B1 (en) Scheduling parallel processing of multiple partitions for signal electromigration analysis
Huang Frame-groups based fractal video compression and its parallel implementation in Hadoop cloud computing environment
WO2022223052A1 (zh) 加速器、计算机系统和方法
JP7041239B2 (ja) 深層距離学習方法およびシステム
CN116341630A (zh) 神经网络处理
CN116185377A (zh) 计算图的优化方法、计算装置及相关产品
CN112613544A (zh) 目标检测方法、装置、电子设备和计算机可读介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant