CN113626650A - 业务处理方法、装置和电子设备 - Google Patents
业务处理方法、装置和电子设备 Download PDFInfo
- Publication number
- CN113626650A CN113626650A CN202110890706.XA CN202110890706A CN113626650A CN 113626650 A CN113626650 A CN 113626650A CN 202110890706 A CN202110890706 A CN 202110890706A CN 113626650 A CN113626650 A CN 113626650A
- Authority
- CN
- China
- Prior art keywords
- data
- operator
- point
- neural network
- activation
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 23
- 230000004913 activation Effects 0.000 claims abstract description 76
- 238000004364 calculation method Methods 0.000 claims abstract description 48
- 238000003062 neural network model Methods 0.000 claims abstract description 41
- 238000012545 processing Methods 0.000 claims abstract description 33
- 238000010586 diagram Methods 0.000 claims description 30
- 238000000034 method Methods 0.000 claims description 30
- 238000013528 artificial neural network Methods 0.000 description 34
- 238000012549 training Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 238000000059 patterning Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本说明书实施例提出了一种业务处理方法、装置和电子设备,其中,上述业务处理方法中,获取数据和图神经网络模型中当前待计算的算子,获取上述算子对应的激活点集,根据上述激活点集,确定上述数据中当前需要进行计算的点,然后,根据上述算子,对当前需要进行计算的点进行计算。从而可以通过激活点集确定当前需要进行计算的点,消除冗余计算,提升图神经网络模型的处理速度。
Description
【技术领域】
本说明书实施例涉及互联网技术领域,尤其涉及一种业务处理方法、装置和电子设备。
【背景技术】
图神经网络(graph neraul network,GNN)是一种神经网络。GNN不仅使用了样本自身的特征信息,还使用了样本与样本之间的关系,GNN面向的是复杂且具有一般意义的图数据结构。图神经网络的训练和预测由图神经网络系统支持,图神经网络系统是一个分布式的图计算引擎,训练的策略包含:全批次(full-batch)训练和/或小批次(mini-batch)训练等。在应用这些训练策略的时候,由于具体模型的区别(例如:有的模型只需要访问点的一度邻居,有的需要访问多度),或者训练样本中点的类型区别(例如:训练图中只有部分是含有标签的点,其他则是提供数据的点),或者其他原因,导致每次训练,发生在每个点或者边上的计算量是不同的。举例如:针对某3层模型,带标签的点需要进行完整的3层计算;标签点的一度邻居需要进行2层计算,而标签点的二度邻居只需要提供原始特征,不需要进行任何计算。
对于这种情况,现有相关技术中并没有什么手段能进行快速而有效的区分,而是每个点都进行全量计算,或者采用一些其他影响性能的方法来判断计算量。这会对模型的训练速度造成较大的影响。
【发明内容】
本说明书实施例提供了一种业务处理方法、装置和电子设备,以实现通过激活点集确定当前需要进行计算的点,消除冗余计算,提升图神经网络模型的处理速度。
第一方面,本说明书实施例提供一种业务处理方法,包括:获取数据和图神经网络模型中当前待计算的算子;其中,所述数据包括标签点、所述标签点的邻居节点,以及所述标签点和所述邻居节点之间的连接关系;获取所述算子对应的激活点集;根据所述激活点集,确定所述数据中当前需要进行计算的点;根据所述算子,对当前需要进行计算的点进行计算;根据计算结果对业务进行处理。
上述业务处理方法中,获取数据和图神经网络模型中当前待计算的算子,获取上述算子对应的激活点集,根据上述激活点集,确定上述数据中当前需要进行计算的点,然后,根据上述算子,对当前需要进行计算的点进行计算。从而可以通过激活点集确定当前需要进行计算的点,消除冗余计算,提升图神经网络模型的处理速度。
其中一种可能的实现方式中,所述获取所述算子对应的激活点集包括:根据所述算子的名称进行索引,获取所述算子对应的激活点集;或者,根据所述算子所在的层级进行索引,获取所述算子对应的激活点集。
其中一种可能的实现方式中,所述激活点集的数据结构为比特集,所述比特集中的每个比特位对应数据中的一个点;所述根据所述激活点集,确定所述数据中当前需要进行计算的点包括:获取所述比特集中的每个比特位的值;当所述比特位的值为预定值时,确定所述比特位对应的点为当前需要进行计算的点。
其中一种可能的实现方式中,所述获取所述算子对应的激活点集之前,还包括:获取图神经网络模型的网络结构和数据;根据所述网络结构,获得所述图神经网络模型的各算子之间的数据依赖关系;根据所述数据依赖关系,生成数据流动图;根据所述数据和所述数据流动图,分别生成与所述图神经网络模型的每个层级或每个算子对应的激活点集。
第二方面,本说明书实施例提供一种业务处理装置,包括:获取模块,用于获取数据和图神经网络模型中当前待计算的算子;其中,所述数据包括标签点、所述标签点的邻居节点,以及所述标签点和所述邻居节点之间的连接关系;以及获取所述算子对应的激活点集;构图模块,用于根据所述激活点集,确定所述数据中当前需要进行计算的点;计算模块,用于根据所述算子,对当前需要进行计算的点进行计算;处理模块,用于根据计算结果对业务进行处理。
其中一种可能的实现方式中,所述获取模块,具体用于根据所述算子的名称进行索引,获取所述算子对应的激活点集;或者,根据所述算子所在的层级进行索引,获取所述算子对应的激活点集。
其中一种可能的实现方式中,所述激活点集的数据结构为比特集,所述比特集中的每个比特位对应数据中的一个点;所述构图模块,具体用于获取所述比特集中的每个比特位的值,当所述比特位的值为预定值时,确定所述比特位对应的点为当前需要进行计算的点。
其中一种可能的实现方式中,所述装置还包括:生成模块;所述获取模块,还用于在获取所述算子对应的激活点集之前,获取图神经网络模型的网络结构和数据;以及根据所述网络结构,获得所述图神经网络模型的各算子之间的数据依赖关系;所述生成模块,用于根据所述数据依赖关系,生成数据流动图;以及根据所述数据和所述数据流动图,分别生成与所述图神经网络模型的每个层级或每个算子对应的激活点集。
第三方面,本说明书实施例提供一种电子设备,包括:至少一个处理器;以及与所述处理器通信连接的至少一个存储器,其中:所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面提供的方法。
第四方面,本说明书实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面提供的方法。
应当理解的是,本说明书实施例的第二~四方面与本说明书实施例的第一方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
【附图说明】
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书一个实施例提供的图拓扑示意图;
图2为本说明书一个实施例提供的数据流动图;
图3为本说明书一个实施例提供的多层激活点集的示意图;
图4为本说明书一个实施例提供的业务处理方法的流程图;
图5为本说明书另一个实施例提供的业务处理方法的流程图;
图6为本说明书再一个实施例提供的业务处理方法的流程图;
图7为本说明书一个实施例提供的业务处理装置的结构示意图;
图8为本说明书另一个实施例提供的业务处理装置的结构示意图;
图9为本说明书一个实施例提供的电子设备的结构示意图。
【具体实施方式】
为了更好的理解本说明书的技术方案,下面结合附图对本说明书实施例进行详细描述。
应当明确,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本说明书保护的范围。
在本说明书实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
下面对本说明书实施例中提到的术语进行解释。
1)图(graph):由点集合和边集合(edge set&node set)构成,点和边上可以有各种属性和特征。边集合中的每一条边都有唯一的出发点、唯一的到达点。出发点和到达点都是该图点集合的成员。
2)人工神经网络(artificial neural network,ANN):简称神经网络(neuralnetwork,NN)或类神经网络,是当前人工智能领域的研究热点。ANN是一种模仿生物神经网络的结构和功能的数学模型或计算模型,用于对函数进行估计或近似。
3)图神经网络(graph neural network,GNN):图神经网络也是一种人工神经网络算法。GNN的训练数据是图,学习图上的拓扑信息和特征信息来做分类或者预测问题。例如根据用户的社交网络,资金网络等图数据,来预测一个用户的信用好坏,是否存在一些违约风险。
4)图神经网络系统(graph neural network system):图神经网络系统是一个计算框架,或称之为计算引擎,图神经网络系统根据用户设计的模型和用户输入的数据,对图神经网络进行训练;或者,根据现有模型对未知数据进行预测。当前工业界的TensorFlow和/或PyTorch等可以很好的训练神经网络,但对图神经网络的支持并不友好。
5)激活点集(active set):在图神经网络系统中,用来表示图中的点是否激活的一种数据结构。
图相比于关系型数据具有更抽象和普遍的数据表达能力,现实生活中大量数据都可以构成图。比如每个用户作为点,用户之间的各种关系(包括好友关系、转账关系、亲属关系和/或同事关系等等)都可以作为边,从而将所有数据组织成为一张大图。当需要对这张图数据进行更多挖掘的时候,就会应用各种各样的图神经网络系统来进行计算。
图神经网络已经成为了当前的研究热点,同时在工业界图神经网络也开始逐渐落地,例如:搜索推荐领域和/或风控领域等。当前业界仍然没有一种普适的,能处理超大规模图数据的神经网络训练和预测系统。鉴于图数据的特殊性,所有图神经网络系统都应该解决每个点上计算量不一致的问题。
本说明书实施例采用了一种“多层激活点集”的数据结构,通过“多层激活点集”可以快速实现点和边的过滤,从而使得图神经网络能实现最小化计算,有效提升处理性能,帮助图神经网络实现产业化。
图1为本说明书一个实施例提供的图拓扑示意图。参见图1,假设在这个图拓扑结构中,点1,2,3是带有标签的标签点。而点4,5,6,7,8都不带有标签,但是在对标签点的训练过程中,由于标签点需要获取邻居的数据,因此点4,5,6,7,8也需要参与计算。
另外,假设运行在该图上的图神经网络模型是一个5层的模型,其中:第二层和第四层需要拿到邻居的表征或者特征进行计算(是否包含边表征或特征都可以),其余层则不需要邻居信息,只需要自身信息计算。
基于当前假设,可以得到图1中每个点的“计算量”,如图2所示,图2为本说明书一个实施例提供的数据流动图。
图2中,横向表示图的扩展,其中第一列表示标签点,即训练的目标——target;第二列表示从target点出发,在图上沿着边扩展得到的一度邻居——1-hop;第三列表示从target点在图上沿着边扩展得到的二度邻居,等同于从1-hop点扩散的一度邻居,用2-hop表示。
竖向则代表图神经网络模型的计算方向,也是每个点上数据的流动方向。其中,input代表点或者点上的原始特征;layer1表示模型的第一层,在前向计算中,只需要拿input的数据进行计算;layer2表示模型的第二层,在前向计算中,需要结合自己第1层的特征(embedding)以及一度邻居即1-hop的第1层embedding进行计算;layer3表示模型的第三层,在前向计算中,仅需要拿自己第2层的embedding进行计算;layer4表示模型的第四层,与layer2类似,需要结合自身以及一度邻居的embedding进行计算;layer5表示模型的第5层,与第1层类似,仅需要自己的数据进行计算。
反向传播的时候计算沿着前向计算的反方向进行。
注意:图2中没有加入边的数据,表示这个模型不需要用到边上的特征。但是本说明书实施例提供的方法同样适用于使用边特征的情况。
图2中的矩形框表示每一层的算子,从图2中可以看出target点需要进行全量计算;1-hop仅需要计算到layer3,因为layer4和layer5的结果即使算出来也没有用,属于冗余计算;而2-hop仅需要计算到layer1。如果没有一种有效的机制来判断和过滤点,把所有点一视同仁,进行全量计算,那么会带来很多的冗余计算,极为影响图神经网络模型的性能。
针对上述问题,现有相关技术中提供了一种方案:将每个点需要计算到第几层这个数据写到点的属性中,每次计算时根据该属性来判断这个点是否要进行当前计算。但是,这种方案有两个明显的缺点:
1、需要将每个点算到第几层这个信息写到点的属性中,那么势必在前期构图的过程中遍历所有的点,并将该信息写入。遍历所有点是一个性能较差的行为,因为:1)如果所有数据存储在内存中,该操作会导致大量访存和缓存缺失(cache miss);2)如果图规模很大,是存储计算分离架构或者外存架构,那么每次都需要读磁盘/固态硬盘(solid statedisk,SSD)/网络,其性能更差;
2、在真正计算过程中,同样要遍历图中的所有点,来判断该点是否要进行计算。由于和第1点同样的原因,这也是一种性能很差的方式。
注意:在计算过程中,会包含前向(Forward)和后向(Backward)两个阶段,两个阶段都需要解决冗余计算的问题。因此上述方案对性能的影响是分布在整个计算过程中的。
本说明书实施例提出了一种业务处理方法,通过“多层激活点集”的数据结构来解决冗余计算的问题。
图3为本说明书一个实施例提供的多层激活点集的示意图。图3左侧部分仍然是一个简单图神经网络中的计算量和数据流动的说明,右侧部分是本说明书实施例中提到的多层激活点集的一种图形化展示。
多层激活点集是一个多层次的数据结构,其每一层是一个比特集(bitset),比特集中每一位的值表示这个比特位对应的点的状态,值为1表示激活,值为0表示不激活。本说明书实施例中,比特集的组织方式可以包括数组、字典或链表等。
如图3所示,图3中的所有点都要进行layer1的计算,意味着layer1的激活点集是所有点,因此layer1对应图3右侧部分的激活点集1,激活点集1用比特集可以表示为:{1,1,1,1,1,1,1,1};
图3中只有target点和1-hop点需要进行layer2和layer3的计算,因此这两层对应图3右侧部分的激活点集2,激活点集2用比特集可以表示为:{1,1,1,1,1,1,0,0};
图3中只有target点需要进行layer4和layer5的计算,因此这两层对应图3右侧部分的激活点集3,激活点集3用比特集可以表示为:{1,1,1,0,0,0,0,0};
在该例子中,多层激活点集正好和图中的hop关系对应,即激活点集1对应:target点+1-hop点+2-hop点;激活点集2对应:target点+1-hop点;激活点集3对应:target点。本说明书实施例中,激活点集可以通过模型层数和/或模型中算子名称等方式来索引。
在明确每一层激活点集后,多层激活点集对这些层次进行组织,并给出一个索引。
多层激活点集的构造和应用过程可以如下:
在用户完成图神经网络模型的定义之后,图神经网络系统解析图神经网络模型即可得到该图神经网络模型的各算子之间的数据依赖关系。在确定训练策略后,即可确定本次训练哪些点要进行哪些计算,即得到了类似于图3左侧部分的数据流动图。在得到数据流动图之后,即可得到多层激活点集。然后图神经网络系统需要在分布式的计算单元(worker)中构造好多层次激活点集。
在前向计算和反向计算中,每次都可以根据计算的层级或者当前算子的名称等信息来索引到当前的激活点集,则每一个计算单元都可以根据当前激活点集对每个点进行快速的过滤,来消除冗余计算。
下面结合图1~图3对本说明书实施例提供的业务处理方法进行说明。图4为本说明书一个实施例提供的业务处理方法的流程图,如图4所示,上述业务处理方法可以包括:
步骤402,获取数据和图神经网络模型中当前待计算的算子。
其中,上述数据包括标签点、上述标签点的邻居节点,以及上述标签点和上述邻居节点之间的连接关系。
参见图1,上述数据可以包括点1、2、3、4、5、6、7和8,其中,点1、2和3为标签点,点4、5、6、7和8为邻居节点,上述数据还可以包括点1、2、3、4、5、6、7和8之间的连接关系。
步骤404,获取上述算子对应的激活点集。
步骤406,根据上述激活点集,确定上述数据中当前需要进行计算的点。
具体地,上述激活点集的数据结构可以为比特集,上述比特集中的每个比特位对应数据中的一个点;其中,上述比特集的组织方式可以是数组、字典或链表等,本实施例对此不作限定。
这样,根据上述激活点集,确定上述数据中当前需要进行计算的点可以为:获取上述比特集中的每个比特位的值;当上述比特位的值为预定值时,确定上述比特位对应的点为当前需要进行计算的点。其中,上述预定值的大小可以在具体实现时自行设定,本实施例对上述预定值的大小不作限定,举例来说,上述预定值可以为1。
举例来说,参见图3,假设当前待计算的算子对应的激活点集为激活点集1,那么可以确定当前需要计算的点为点1、2、3、4、5、6、7和8。
另外,具体实现时,获取上述比特集中的每个比特位的值时,可以按批(batch)获取每个比特位的值,例如:可以一次性获取64字节的值,从而使图神经网络模型的处理速度更加快速。
步骤408,根据上述算子,对当前需要进行计算的点进行计算。
步骤410,根据计算结果对业务进行处理。
上述业务处理方法中,获取数据和图神经网络模型中当前待计算的算子,获取上述算子对应的激活点集,根据上述激活点集,确定上述数据中当前需要进行计算的点,然后,根据上述算子,对当前需要进行计算的点进行计算。从而可以通过激活点集确定当前需要进行计算的点,消除冗余计算,提升图神经网络模型的处理速度。
本说明书实施例提供的业务处理方法不仅可以应用于图神经网络模型的训练,也可以应用于图神经网络模型的验证、测试以及得到图神经网络模型后的预测。
图5为本说明书另一个实施例提供的业务处理方法的流程图,如图5所示,本说明书图4所示实施例中,步骤404可以为:
步骤502,根据上述算子的名称进行索引,获取上述算子对应的激活点集;或者,根据上述算子所在的层级进行索引,获取上述算子对应的激活点集。
需要说明的是,激活点集可以根据算子的名称或算子所在的层级进行索引,但本实施例并不仅限于此,激活点集还可以根据其他的标识符进行索引,本实施例对激活点集的索引方式不作限定。
图6为本说明书再一个实施例提供的业务处理方法的流程图,如图6所示,本说明书图4所示实施例中,步骤404之前,还可以包括:
步骤602,获取图神经网络模型的网络结构和数据。
步骤604,根据上述网络结构,获得图神经网络模型的各算子之间的数据依赖关系。
步骤606,根据上述数据依赖关系,生成数据流动图。
具体地,生成数据流动图的具体实现方式可以参见图2所示实施例的描述,在此不再赘述。
步骤608,根据上述数据和上述数据流动图,分别生成与图神经网络模型的每个层级或每个算子对应的激活点集。
本实施例中,生成激活点集的具体实现方式可以参见图3所示实施例的描述,在此不再赘述。需要说明的是,不同层级或者不同算子可以共享同一个激活点集。
在图神经网络中,一旦一个点需要访问其邻居(绝大多数情况),就存在类似的冗余计算。如果不做任何处理,每次计算所有点都进行全量的计算,那么必然导致性能下降。
而现有相关技术提供的方案,问题在于,每次构图阶段、前向计算阶段和/或后向计算阶段,都需要遍历全图所有点。在工业界的图神经网络中,图的规模是很大的,一般分布式存在内存中、或者利用磁盘等外部存储、或者采用计算存储分离的架构。遍历所有的点会造成大量的内存访问、或者磁盘访问、或者网络访问,带来大量的缓存缺失,导致性能下降。
本说明书实施例提供的方案,利用多层次激活点集来存储每一层需要计算的子图,每一层的基本数据结构是比特集(bitset)。bitset中的每一个比特就可以代表一个点,每一个计算单元仅需要维护本单元负责的点的集合。
在当下绝大多数应用场景中,一个计算单元负责的点数不会过大,一般不会超过1亿个点,绝大多数是百万到千万级别的点。以1亿个点计算,需要的每一层bitset仅仅12MB。目前绝大多数图神经网络仅访问一度邻居,意味着多层激活点集仅包含2个基本的bitset,存储小于24MB。上文例子中的情况,访问了二度邻居,也仅需要3个基本bitset,存储小于36MB。即使更复杂的模型,对应的多层激活点集需要的存储也基本不会超过100MB。
可以看到,这个数量级的数据结构基本可以存储在缓存(cache)中,这意味着在构图、前向计算和/或后向计算中,过滤点大部分情况仅需要访问cache即可,cache的速度相比内存、磁盘或者网络有几个数量级的优势,这可以带来极大的性能提升。在当前的场景实测中,采用了多层激活点集去除冗余计算后,对应部分的性能可以提升10倍以上。
基于当下某些图神经网络系统中存在的冗余计算问题(采用分布式图计算框架的系统基本都会面对该问题),本说明书实施例设计了一个尺寸极小的数据结构——多层激活点集来快速判断一个点是否要进行计算。这个数据结构基本可以存储在cache中,使得每次访问数据极快,以一种高性能的方式消除了冗余计算。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
图7为本说明书一个实施例提供的业务处理装置的结构示意图,如图7所示,上述业务处理装置可以包括:获取模块71、构图模块72、计算模块73和处理模块74;
获取模块71,用于获取数据和图神经网络模型中当前待计算的算子;其中,上述数据包括标签点、上述标签点的邻居节点,以及上述标签点和邻居节点之间的连接关系;以及获取上述算子对应的激活点集;
构图模块72,用于根据上述激活点集,确定上述数据中当前需要进行计算的点;
计算模块73,用于根据上述算子,对当前需要进行计算的点进行计算;
处理模块74,用于根据计算结果对业务进行处理。
图7所示实施例提供的业务处理装置可用于执行本说明书图1~图4所示方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。
图8为本说明书另一个实施例提供的业务处理装置的结构示意图,本实施例中,获取模块71,具体用于根据上述算子的名称进行索引,获取上述算子对应的激活点集;或者,根据上述算子所在的层级进行索引,获取上述算子对应的激活点集。
本实施例中,上述激活点集的数据结构为比特集,上述比特集中的每个比特位对应数据中的一个点;这样,构图模块72,具体用于获取上述比特集中的每个比特位的值,当上述比特位的值为预定值时,确定上述比特位对应的点为当前需要进行计算的点。
进一步地,上述业务处理装置还可以包括:生成模块75;
获取模块71,还用于在获取上述算子对应的激活点集之前,获取图神经网络模型的网络结构和数据;以及根据上述网络结构,获得图神经网络模型的各算子之间的数据依赖关系;
生成模块75,用于根据上述数据依赖关系,生成数据流动图;以及根据上述数据和上述数据流动图,分别生成与图神经网络模型的每个层级或每个算子对应的激活点集。
图8所示实施例提供的业务处理装置可用于执行本说明书图1~图6所示方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。
图9为本说明书一个实施例提供的电子设备的结构示意图,如图9所示,上述电子设备可以包括至少一个处理器;以及与上述处理器通信连接的至少一个存储器,其中:存储器存储有可被处理器执行的程序指令,上述处理器调用上述程序指令能够执行本说明书图1~图6所示实施例提供的业务处理方法。
其中,上述电子设备可以为服务器,例如:云服务器或图计算服务器,本实施例对上述电子设备的形式不作限定。
图9示出了适于用来实现本说明书实施方式的示例性电子设备的框图。图9显示的电子设备仅仅是一个示例,不应对本说明书实施例的功能和使用范围带来任何限制。
如图9所示,电子设备以通用计算设备的形式表现。电子设备的组件可以包括但不限于:一个或者多个处理器410,通信接口420,存储器430,以及连接不同组件(包括存储器430、通信接口420和处理单元410)的通信总线440。
通信总线440表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,或者使用多种总线结构中的任意总线结构的局域总线。举例来说,通信总线440可以包括但不限于工业标准体系结构(industry standardarchitecture,ISA)总线,微通道体系结构(micro channel architecture,MAC)总线,增强型ISA总线、视频电子标准协会(video electronics standards association,VESA)局域总线以及外围组件互连(peripheral component interconnection,PCI)总线。
电子设备典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器430可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(random access memory,RAM)和/或高速缓存存储器。存储器430可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本说明书图1~图6所示实施例的功能。
具有一组(至少一个)程序模块的程序/实用工具,可以存储在存储器430中,这样的程序模块包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块通常执行本说明书图1~图6所描述的实施例中的功能和/或方法。
处理器410通过运行存储在存储器430中的程序,从而执行各种功能应用以及数据处理,例如实现本说明书图1~图6所示实施例提供的业务处理方法。
本说明书实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行本说明书图1~图6所示实施例提供的业务处理方法。
上述非暂态计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(read only memory,ROM)、可擦式可编程只读存储器(erasable programmable read onlymemory,EPROM)或闪存、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、射频(radio frequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本说明书操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(localarea network,LAN)或广域网(wide area network,WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本说明书的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本说明书的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本说明书的实施例所属技术领域的技术人员所理解。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
需要说明的是,本说明书实施例中所涉及的终端可以包括但不限于个人计算机(personal computer,PC)、个人数字助理(personal digital assistant,PDA)、无线手持设备、平板电脑(tablet computer)、手机、MP3播放器、MP4播放器等。
在本说明书所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本说明书各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本说明书各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
Claims (10)
1.一种业务处理方法,包括:
获取数据和图神经网络模型中当前待计算的算子;其中,所述数据包括标签点、所述标签点的邻居节点,以及所述标签点和所述邻居节点之间的连接关系;
获取所述算子对应的激活点集;
根据所述激活点集,确定所述数据中当前需要进行计算的点;
根据所述算子,对当前需要进行计算的点进行计算;
根据计算结果对业务进行处理。
2.根据权利要求1所述的方法,其中,所述获取所述算子对应的激活点集包括:
根据所述算子的名称进行索引,获取所述算子对应的激活点集;或者,
根据所述算子所在的层级进行索引,获取所述算子对应的激活点集。
3.根据权利要求1所述的方法,其中,所述激活点集的数据结构为比特集,所述比特集中的每个比特位对应数据中的一个点;
所述根据所述激活点集,确定所述数据中当前需要进行计算的点包括:
获取所述比特集中的每个比特位的值;
当所述比特位的值为预定值时,确定所述比特位对应的点为当前需要进行计算的点。
4.根据权利要求1-3任意一项所述的方法,其中,所述获取所述算子对应的激活点集之前,还包括:
获取图神经网络模型的网络结构和数据;
根据所述网络结构,获得所述图神经网络模型的各算子之间的数据依赖关系;
根据所述数据依赖关系,生成数据流动图;
根据所述数据和所述数据流动图,分别生成与所述图神经网络模型的每个层级或每个算子对应的激活点集。
5.一种业务处理装置,包括:
获取模块,用于获取数据和图神经网络模型中当前待计算的算子;其中,所述数据包括标签点、所述标签点的邻居节点,以及所述标签点和所述邻居节点之间的连接关系;以及获取所述算子对应的激活点集;
构图模块,用于根据所述激活点集,确定所述数据中当前需要进行计算的点;
计算模块,用于根据所述算子,对当前需要进行计算的点进行计算;
处理模块,用于根据计算结果对业务进行处理。
6.根据权利要求5所述的装置,其中,
所述获取模块,具体用于根据所述算子的名称进行索引,获取所述算子对应的激活点集;或者,根据所述算子所在的层级进行索引,获取所述算子对应的激活点集。
7.根据权利要求5所述的装置,其中,所述激活点集的数据结构为比特集,所述比特集中的每个比特位对应数据中的一个点;
所述构图模块,具体用于获取所述比特集中的每个比特位的值,当所述比特位的值为预定值时,确定所述比特位对应的点为当前需要进行计算的点。
8.根据权利要求5-7任意一项所述的装置,其中,还包括:生成模块;
所述获取模块,还用于在获取所述算子对应的激活点集之前,获取图神经网络模型的网络结构和数据;以及根据所述网络结构,获得所述图神经网络模型的各算子之间的数据依赖关系;
所述生成模块,用于根据所述数据依赖关系,生成数据流动图;以及根据所述数据和所述数据流动图,分别生成与所述图神经网络模型的每个层级或每个算子对应的激活点集。
9.一种电子设备,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至4任一所述的方法。
10.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至4任一所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110890706.XA CN113626650A (zh) | 2021-08-04 | 2021-08-04 | 业务处理方法、装置和电子设备 |
PCT/CN2022/107679 WO2023011237A1 (zh) | 2021-08-04 | 2022-07-25 | 业务处理 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110890706.XA CN113626650A (zh) | 2021-08-04 | 2021-08-04 | 业务处理方法、装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113626650A true CN113626650A (zh) | 2021-11-09 |
Family
ID=78382683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110890706.XA Pending CN113626650A (zh) | 2021-08-04 | 2021-08-04 | 业务处理方法、装置和电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113626650A (zh) |
WO (1) | WO2023011237A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023011237A1 (zh) * | 2021-08-04 | 2023-02-09 | 支付宝(杭州)信息技术有限公司 | 业务处理 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021022521A1 (zh) * | 2019-08-07 | 2021-02-11 | 华为技术有限公司 | 数据处理的方法、训练神经网络模型的方法及设备 |
CN110782044A (zh) * | 2019-10-29 | 2020-02-11 | 支付宝(杭州)信息技术有限公司 | 多方联合训练图神经网络的方法及装置 |
CN111309983B (zh) * | 2020-03-10 | 2021-09-21 | 支付宝(杭州)信息技术有限公司 | 基于异构图进行业务处理的方法及装置 |
CN112149808B (zh) * | 2020-09-28 | 2022-10-14 | 上海交通大学 | 拓展单机图神经网络训练至分布式训练方法、系统及介质 |
CN112766500B (zh) * | 2021-02-07 | 2022-05-17 | 支付宝(杭州)信息技术有限公司 | 图神经网络的训练方法及装置 |
CN113626650A (zh) * | 2021-08-04 | 2021-11-09 | 支付宝(杭州)信息技术有限公司 | 业务处理方法、装置和电子设备 |
-
2021
- 2021-08-04 CN CN202110890706.XA patent/CN113626650A/zh active Pending
-
2022
- 2022-07-25 WO PCT/CN2022/107679 patent/WO2023011237A1/zh active Application Filing
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023011237A1 (zh) * | 2021-08-04 | 2023-02-09 | 支付宝(杭州)信息技术有限公司 | 业务处理 |
Also Published As
Publication number | Publication date |
---|---|
WO2023011237A1 (zh) | 2023-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110321958B (zh) | 神经网络模型的训练方法、视频相似度确定方法 | |
CN110941754B (zh) | 基于增强学习生成向量最近邻搜索策略 | |
CN114925101A (zh) | 数据处理方法、装置、存储介质及电子设备 | |
CN111475736A (zh) | 社区挖掘的方法、装置和服务器 | |
CN105095515A (zh) | 支持快速查询Map-Reduce输出结果的分桶方法、装置及设备 | |
CN116431878A (zh) | 向量检索服务方法、装置、设备及其存储介质 | |
CN112970011B (zh) | 记录查询优化中的谱系 | |
CN116894188A (zh) | 业务标签集更新方法、装置、介质及电子设备 | |
CN113626650A (zh) | 业务处理方法、装置和电子设备 | |
CN109033228A (zh) | 一种推荐列表的确定方法、装置、服务器及存储介质 | |
CN116308738B (zh) | 一种模型训练的方法、业务风控的方法及装置 | |
CN115965074A (zh) | 深度学习模型的训练方法、数据处理方法、装置和设备 | |
CN111667028B (zh) | 一种可靠负样本确定方法和相关装置 | |
US11334571B2 (en) | Artificial intelligence-enabled search for a storage system | |
CN110880005B (zh) | 向量索引建立方法及装置和向量检索方法及装置 | |
CN112767042B (zh) | 一种群组生成方法、装置、电子设备及存储介质 | |
CN110347506B (zh) | 基于lstm的数据处理方法、装置、存储介质与电子设备 | |
EP4350574A1 (en) | Configuration determination method and apparatus for neural network model, and device and storage medium | |
CN111753080B (zh) | 用于输出信息的方法和装置 | |
CN116107761B (zh) | 性能调优方法、系统、电子设备及可读存储介质 | |
CN113707177B (zh) | 基于语音分析识别的服务处理方法及系统 | |
CN118132600A (zh) | 数据处理方法及装置、电子设备及存储介质 | |
CN118446653A (zh) | 基于三维结构的审批数据项设置方法及系统 | |
CN117851355A (zh) | 用于边节点的数据缓存方法、装置、设备及介质 | |
CN115146112A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40062509 Country of ref document: HK |