A data processing system, method, apparatus and storage medium
By leveraging the collaborative work of the task scheduling module and the execution module, and utilizing the cache to store historical feature representations, redundant computations in graph neural networks are avoided, improving the efficiency of large-scale graph data processing and solving the problem of low processing efficiency caused by redundant computations in existing technologies.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-03-29
- Publication Date
- 2026-03-27
AI Technical Summary
Existing graph neural networks suffer from redundant computations when processing large-scale graph data, resulting in low processing efficiency. This is especially true in scenarios such as e-commerce, where the complex relationships between nodes in graph data involving billions of user nodes cannot be effectively avoided.
By combining a task scheduling module and an execution module, the results of historical feature aggregation tasks are stored in a designated cache. For each node, it is determined whether there is a feature representation of the associated object in the cache, and a feature aggregation task is generated. Existing feature representations are directly obtained from the cache to avoid duplicate calculations.
By reducing redundant calculations, the efficiency of graph data processing is improved, the amount of computation required to update node feature representations is reduced, and the processing speed is increased.
Smart Images

Figure CN116384472B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present specification relates to the technical field of graph learning, and in particular to a data processing system, method, device and storage medium. BACKGROUND
[0002] At present, the graph neural network is a deep learning technology based on graph structured data. The existing graph neural network is mainly based on the recursive neighborhood message passing method, that is, each node receives the features of its neighbor nodes, and updates its own node features using the received features, and applies the updated node features to downstream tasks such as computer vision, natural language processing and recommendation system.
[0003] In the task scenarios such as e-commerce, the graph data to be processed usually contains feature information of nodes corresponding to hundreds of millions of users, and there are complex association relationships between these nodes, for example, a node is a neighbor node of multiple other nodes. Therefore, in the process of independently aggregating the fields of each node, there is a large amount of redundant calculation, which reduces the processing efficiency of the graph data.
[0004] Therefore, how to improve the processing efficiency of the graph data is a problem to be solved. SUMMARY
[0005] The present specification provides a data processing system, method, device and storage medium to partially solve the above problems existing in the prior art.
[0006] The present specification adopts the following technical solutions:
[0007] The present specification provides a data processing system, which comprises a task scheduling module, a specified cache area and an execution module.
[0008] The task scheduling module is configured to determine, for each node in target graph data, an associated object corresponding to the node required for processing the node, judge whether the feature representation of the associated object is contained in the specified cache area, if so, generate a feature aggregation task for the node, wherein the associated object includes a set of common neighbor nodes of the node, other neighbor nodes of the node except those belonging to the set of common neighbor nodes, and edges between the node and each neighbor node, and the feature representation corresponding to the associated object is the feature aggregation task of other nodes executed and saved in the specified cache area after execution.
[0009] The execution module is configured to, for each node, perform a feature aggregation task for the node to aggregate the feature representation corresponding to the associated object, obtain an aggregated feature representation of the node, and fuse the aggregated feature representation of the node with a node feature representation of the node to obtain a fused node feature representation of the node, and process the target graph data according to the fused node feature representation of the node and fused node feature representations of other nodes.
[0010] Optionally, for an edge between the node and each neighbor node of the node, if the feature representation corresponding to the edge between the node and the neighbor node is not contained in the specified cache area, the task scheduling module is configured to generate a first task and add the first task to a preset first task queue, so that the execution module acquires the first task from the first task queue and executes the first task, and the first task is used to aggregate the node feature representation of the node with a node feature representation of the neighbor node to obtain the feature representation corresponding to the edge between the node and the neighbor node.
[0011] Optionally, for the set of common neighbor nodes, if the feature representation corresponding to the set of common neighbor nodes is not contained in the specified cache area, the task scheduling module is configured to generate a second task and add the second task to a preset second task queue, so that the execution module acquires the second task from the second task queue and executes the second task, and the second task is used to aggregate the node feature representation of each node contained in the set of common neighbor nodes to obtain the feature representation corresponding to the set of common neighbor nodes.
[0012] Optionally, the execution module comprises a first execution module.
[0013] The first execution module is configured to acquire the first task from the first task queue and execute the first task to obtain the feature representation corresponding to the edge between the node and the neighbor node, and save the feature representation corresponding to the edge between the node and the neighbor node to a preset specified cache area.
[0014] for each node in the target graph data, determining an aggregated feature representation of the node, and aggregating the aggregated feature representation of the node with a node feature representation of the node to obtain a fused node feature representation of the node.
[0015] Optionally, the first execution module comprises a scheduling unit and at least one execution unit, and the execution unit comprises a first working state and a second working state.
[0016] The scheduling unit is configured to adjust the working state of each execution unit according to the load of each execution unit.
[0017] If the execution unit is in the first working state, the execution unit obtains the first task from the first task queue and executes to obtain a feature representation corresponding to an edge between the node and the neighbor node;
[0018] If the execution unit is in the second working state, the execution unit is configured to determine, for each node in the target graph data, an aggregated feature representation of the node, and aggregate the aggregated feature representation of the node with a node feature representation of the node to obtain a fused node feature representation of the node.
[0019] Optionally, the execution module comprises a second execution module.
[0020] The second execution module is configured to obtain the second task from the second task queue and execute to obtain a feature representation corresponding to the set of common neighbor nodes, and save the feature representation corresponding to the set of common neighbor nodes into a preset designated cache area.
[0021] The second execution module is configured to execute, for each node in the target graph data, a feature aggregation task corresponding to the node to aggregate the feature representations corresponding to the associated objects to obtain an aggregated feature representation of the node.
[0022] Optionally, the second execution module comprises a task cache unit, and the task cache unit is configured to be assigned to the feature aggregation task.
[0023] The second execution module is configured to store the feature representations corresponding to the associated objects obtained into the task cache unit.
[0024] When it is determined that the task cache unit stores all the feature representations corresponding to the associated objects required for executing the feature aggregation task, the second execution module executes the feature aggregation task to aggregate the feature representations corresponding to the associated objects to obtain the aggregated feature representation of the node.
[0025] Optionally, the data processing system further comprises a control module, and the control module comprises a plurality of sub-controllers.
[0026] The control module is configured to receive a control instruction sent by a user, and configure the plurality of sub-controllers according to the control instruction to control whether the plurality of sub-controllers are connected.
[0027] The execution module is configured to obtain, through the plurality of sub-controllers, the feature representations corresponding to the associated objects required for executing the feature aggregation task for the node from the designated cache area to execute the feature aggregation task for the node.
[0028] Optionally, the target graph data is divided from original graph data according to common neighbor nodes between each node contained in the original graph data.
[0029] The present specification provides a data processing method applied in a data processing system, the data processing system comprising a task scheduling module, a designated cache area, and an execution module, the method comprising:
[0030] The task scheduling module determines, for each node in the target graph data, an associated object corresponding to the node required when processing the node, judges whether the designated cache area contains a feature representation of the associated object, and if so, generates a feature aggregation task for the node, wherein the associated object comprises a common neighbor node set of the node, other neighbor nodes of the node excluding those belonging to the common neighbor node set, and edges between the node and each neighbor node, and the feature representation corresponding to the associated object is saved in the designated cache area after a historical execution of a feature aggregation task of another node;
[0031] The execution module executes, for each node, the feature aggregation task for the node to aggregate the feature representation corresponding to the associated object, obtains an aggregated feature representation of the node, aggregates the aggregated feature representation of the node with a node feature representation of the node to obtain a fused node feature representation of the node, and processes the target graph data according to the fused node feature representation of the node and fused node feature representations of other nodes.
[0032] Optionally, the method further comprises:
[0033] For an edge between the node and each neighbor node of the node, if the designated cache area does not contain a feature representation corresponding to the edge between the node and the neighbor node, a first task is generated;
[0034] The first task is added to a preset first task queue, so that the execution module acquires the first task from the first task queue and executes the first task, and the first task is used to aggregate the node feature representation of the node with a node feature representation of the neighbor node to obtain the feature representation corresponding to the edge between the node and the neighbor node.
[0035] Optionally, the method further comprises:
[0036] For the common neighbor node set, if the designated cache area does not contain a feature representation corresponding to the common neighbor node set, a second task is generated;
[0037] The second task is added to a preset second task queue, so that the second task is acquired from the second task queue by the execution module and executed, and the second task is used to aggregate the node feature representation of each node included in the common neighbor node set to obtain a feature representation corresponding to the common neighbor node set.
[0038] Optionally, the execution module comprises a first execution module.
[0039] The first task is acquired from the first task queue by the execution module and executed, and specifically comprises:
[0040] The first task is acquired from the first task queue by the execution module and executed, and the feature representation corresponding to the edge between the node and the neighbor node is obtained and saved to a preset designated cache area.
[0041] The aggregated feature representation of the node is aggregated with the node feature representation of the node to obtain a fused node feature representation of the node, and specifically comprises:
[0042] For each node in the target graph data, the aggregated feature representation of the node is determined, and the aggregated feature representation of the node is aggregated with the node feature representation of the node to obtain a fused node feature representation of the node.
[0043] Optionally, the first execution module comprises a scheduling unit and at least one execution unit, the execution unit comprises a first working state and a second working state, and the first working state and the second working state are adjusted by the scheduling unit according to the load of each execution unit.
[0044] The first task is acquired from the first task queue by the execution module and executed, and the feature representation corresponding to the edge between the node and the neighbor node is obtained, and specifically comprises:
[0045] The first task is acquired from the first task queue by the execution unit in the first working state and executed, and the feature representation corresponding to the edge between the node and the neighbor node is obtained.
[0046] For each node in the target graph data, the aggregated feature representation of the node is determined, and the aggregated feature representation of the node is aggregated with the node feature representation of the node to obtain a fused node feature representation of the node, and specifically comprises:
[0047] The execution unit in the second working state is used to determine an aggregated feature representation of each node in the target graph data, and aggregate the aggregated feature representation of the node with a node feature representation of the node to obtain a fused node feature representation of the node.
[0048] Optionally, the execution module comprises a second execution module.
[0049] The execution module is configured to acquire the second task from the second task queue and execute the second task.
[0050] The second execution module is configured to acquire the second task from the second task queue and execute the second task, obtain a feature representation corresponding to the common neighbor node set, and save the feature representation corresponding to the common neighbor node set into a preset designated cache area.
[0051] The execution module is configured to execute a feature aggregation task for the node to aggregate the feature representations corresponding to the associated objects to obtain an aggregated feature representation of the node.
[0052] The second execution module is configured to execute, for each node in the target graph data, a feature aggregation task corresponding to the node to aggregate the feature representations corresponding to the associated objects to obtain an aggregated feature representation of the node.
[0053] Optionally, the second execution module comprises a task cache unit configured to be assigned to the feature aggregation task.
[0054] The execution module is configured to determine an aggregated feature representation of each node in the target graph data, and aggregate the aggregated feature representation of the node with a node feature representation of the node to obtain a fused node feature representation of the node.
[0055] The second execution module is configured to acquire the feature representations corresponding to the associated objects stored in the task cache unit.
[0056] When it is determined that the task cache unit stores the feature representations corresponding to all the associated objects required for executing the feature aggregation task, the execution module is configured to execute the feature aggregation task to aggregate the feature representations corresponding to the associated objects to obtain an aggregated feature representation of the node.
[0057] Optionally, the data processing system further comprises a control module comprising sub-controllers.
[0058] The execution module is configured to execute a feature aggregation task for the node.
[0059] The sub-controllers obtain the feature representation of the associated object corresponding to the feature aggregation task from the designated cache area, and execute the feature aggregation task for the node, wherein the sub-controllers are configured by the control module according to the control instruction sent by the user to control whether the sub-controllers are connected.
[0060] Optionally, the target graph data is a graph data block divided from original graph data according to common neighbor nodes between each node in the original graph data.
[0061] The present specification provides a computer readable storage medium, which stores a computer program, and the computer program is executed by a processor to implement the above data processing method.
[0062] The present specification provides an electronic device, which includes a memory, a processor, and a computer program stored in the memory and executable on the processor, and the processor implements the above data processing method when executing the program.
[0063] The above at least one technical solution adopted by the present specification can achieve the following beneficial effects:
[0064] In the data processing method provided by the present specification, the task scheduling module determines the associated object corresponding to each node in the target graph data when processing the node, judges whether the feature representation of the associated object is contained in the designated cache area, generates the feature aggregation task for the node if yes, wherein the associated object includes the common neighbor node set of the node, other neighbor nodes of the node except the common neighbor node set, and the edge between the node and each neighbor node, the feature representation of the associated object is saved in the designated cache area after the historical execution of the feature aggregation task of other nodes, the feature aggregation task for each node is executed by the execution module to aggregate the feature representation of the associated object, obtain the aggregated feature representation of the node, aggregate the aggregated feature representation of the node with the node feature representation of the node to obtain the fused node feature representation of the node, and process the target graph data according to the fused node feature representation of the node and the fused node feature representation of other nodes.
[0065] As can be seen from the above method, when the feature aggregation task of each node contained in the target graph data is generated by the task scheduling module, it can be judged whether the feature representation of the associated object required for executing the feature aggregation task of the node is contained in the preset designated cache area, if it exists, the feature representation of the associated object can be directly obtained from the designated cache area, if it does not exist, the feature representation of the associated object is extracted again, wherein the feature representation of the associated object required for executing the feature aggregation task of the node contained in the designated cache area is saved when the feature aggregation task of other nodes is executed in history, so that repeated extraction of the feature representation of the associated object can be avoided, and further, redundant calculation operation when updating the node feature representation of each node in the target graph data can be reduced, so that the processing efficiency of the target graph data can be improved. BRIEF DESCRIPTION OF DRAWINGS
[0066] The accompanying drawings, which are included to provide a further understanding of the present specification, constitute a part of the present specification, and the illustrative embodiments of the present specification and their description serve to explain the present specification, and do not constitute an improper limitation on the present specification. In the drawings:
[0067] Figure 1 is a schematic diagram of a data processing system provided in the present specification;
[0068] Figure 2 is a schematic diagram of original graph data provided in the present specification;
[0069] Figure 3 is a schematic diagram of an execution module provided in the present specification;
[0070] Figure 4 is a schematic diagram of a control module provided in the present specification;
[0071] Figure 5 is a schematic diagram of a data processing method provided in the present specification;
[0072] Figure 6 is a schematic diagram of an electronic device corresponding to Figure 5 provided in the present specification. DETAILED DESCRIPTION
[0073] In order to make the purpose, technical scheme and advantages of the present specification clearer, the technical scheme of the present specification will be described clearly and completely in combination with the specific embodiments of the present specification and the corresponding drawings. Obviously, the described embodiments are only part of the embodiments of the present specification, not all the embodiments. Based on the embodiments in the present specification, all other embodiments obtained by those skilled in the art without creative labor fall within the scope of protection of the present specification.
[0074] The technical solutions provided by the embodiments of the present specification are described in detail below with reference to the drawings.
[0075] Currently, in the field of graph neural networks and graph data processing, it is usually necessary to process the feature information represented by the nodes and edges in the graph data through a recursive neighborhood message passing method, that is, for each node in the graph data, the feature information represented by the neighbor nodes of the node and the edges between the node and each neighbor node of the node is aggregated onto the node to obtain the fused node feature representation of the node. Further, the graph data can be updated according to the fused node feature representation of each node in the graph data.
[0076] For example, the graph data contains six nodes a, b, c, d, e, and f, wherein the neighbor nodes of node a are nodes b, c, and d, and the neighbor nodes of node f are nodes b, c, d, and e. As can be seen from this, there are common neighbor nodes between node a and node f, that is, nodes b, c, and d. When determining the fused feature of node a, the feature information represented by nodes b, c, and d can be aggregated first to obtain the aggregated feature representation of the three nodes, and then the aggregated feature representation of the three nodes and the edge feature representation of the edges between node a and the three nodes can be aggregated to obtain a further aggregated feature representation. Finally, the further aggregated feature representation and the feature representation representing the feature information of node a itself can be fused to obtain the fused feature representation corresponding to node a.
[0077] Further, when determining the feature representation of node f, the feature information represented by nodes b, c, and d can also be aggregated to obtain the aggregated feature representation of the three nodes, and then the aggregated feature representation of nodes b, c, and d and the feature information represented by node e can be aggregated to determine the fused node feature representation of node f. As can be seen from this, the process of aggregating the feature information represented by nodes b, c, and d to obtain the aggregated feature representation of the three nodes is repeated, resulting in a large amount of redundant calculation.
[0078] Similarly, for node a and node b, the edge feature representation of the edge between node a and node b is needed when determining the fused node feature representation of node a, and the edge feature representation of the edge between node a and node b is also needed when determining the fused node feature representation of node b. The repeated process of calculating the edge feature representation of the edge between node a and node b also causes a large amount of redundant calculation.
[0079] Based on this, a data processing system is provided in the present specification, as shown in Figure 1
[0080] Figure 1 A schematic diagram of a data processing system provided in the specification.
[0081] It can be seen from Figure 1 The data processing system comprises a task scheduling module, a specified cache area, and an execution module.
[0082] The task scheduling module can be configured to determine target graph data that needs to be processed, and then determine, for each node in the target graph data, an associated object corresponding to the node required for processing the node, and determine whether the associated object contains a feature representation in the specified cache area.
[0083] The specified cache area can be a pre-set structure cache area, a node feature information cache area, a weight cache area, and an instant cache area.
[0084] The structure cache area, the node feature information cache area, and the weight cache area are respectively configured to store structure information, node feature information, and node weight and / or edge weight of the target graph data read by the task scheduling module from a pre-set high-bandwidth memory area, so that the execution module can read the required information from the structure cache area, the node feature information cache area, and the weight cache area when performing the feature aggregation task of the node.
[0085] The instant cache area is configured to store the feature representation of the common neighbor node set and the feature representation of the edge determined in the process of performing the feature aggregation task of the node by the execution module. In actual application, the feature representation of the common neighbor node set and the feature representation of the edge that need to be stored in the instant cache area can exceed the upper limit of the instant cache area. Therefore, a corresponding priority weight can be set for the feature representation of each common neighbor node set and / or each edge saved in the instant cache area. The common neighbor node set and / or each edge with a lower priority weight will be preferentially cleared when the instant cache area exceeds the upper limit of the capacity.
[0086] In the above content, the structure information of the target graph data can refer to the connection relationship between nodes in the target graph data, the in-degree and out-degree of each node, and the like.
[0087] The node feature information can refer to the feature information represented by the node in the target graph data. For example, assuming that the target graph data is user graph data of an e-commerce platform, the feature information of each node in the graph data represents the related information (such as user name, user historical behavior record, etc.) of the user corresponding to the node.
[0088] The node weight and / or edge weight can refer to the node weight corresponding to each node and the edge weight corresponding to each edge contained in the target graph data.
[0089] It should be noted that in practical application scenarios such as e-commerce, the original graph data to be processed often contains a large amount of data information, for example, in the e-commerce scenario, the graph data containing information of billions of users and items needs to be processed.
[0090] And because the volume of these original graph data is large, it often cannot be put into the main memory of the processor, so in this specification, the graph data block divided from the original graph data according to the common neighbor nodes between each node in the original graph data can be taken as the target graph data, and then the target graph data can be processed, and the processor can be a processor such as a central processing unit (CPU), a graphic processing unit (GPU), etc.
[0091] Specifically, the common neighbor nodes between each node in the original graph data can be determined according to the connection relationship between each node in the original graph data through a preset neural network model, and the graph data block divided from the original graph data is specifically as shown in Figure 2 .
[0092] Figure 2 The schematic diagram of the original graph data provided in this specification.
[0093] As can be seen from Figure 2 , when the original graph data contains seven nodes a, b, c, d, e, f, and g, among which a, b, and c exist between each other, and a, b, and c have fewer connection relationships with d, e, f, and g, therefore, a, b, and c can be divided into a graph data block, and d, e, f, and g can be divided into a graph data block.
[0094] Further, when the task scheduling module determines that the feature representation of all associated objects of the node required for processing the node in the preset specified cache area, the feature aggregation task for the node is generated, and the associated objects include the common neighbor node set of the node, other neighbor nodes of the node in addition to the common neighbor node set, and the edges between the node and each neighbor node.
[0095] Among them, the feature representation corresponding to the associated object is the feature aggregation task of the other node executed and saved in the specified cache area after execution, so in actual application, there are cases where the specified cache area does not contain the feature representation of the common neighbor node set of the node and the feature representation of the edges between the node and each neighbor node.
[0096] In the present specification, the task scheduling module can determine, for each node in the graph data, a common neighbor node set of the node, other neighbor nodes of the node other than the common neighbor node set, and an edge between the node and each neighbor node.
[0097] For example, assuming that there is a node a, the neighbor nodes of the node a are b, c, d, e, and there is also a node f, the neighbor nodes of the node f are b, c, and d, it can be determined that the nodes b, c, and d are a common neighbor node set, and it can be further determined that the node a contains a neighbor node e and a common neighbor node set b, c, and d. The whole of the common neighbor node set can be regarded as a neighbor node of the node a.
[0098] Further, when the task scheduling module determines, for each edge between the node and each neighbor node of the node, that the feature representation corresponding to the edge is not contained in the specified cache area, the task scheduling module can generate a first task and add the first task to a preset first task queue, so that the execution module obtains the first task from the first task queue and executes the first task, wherein the first task is used to aggregate the node feature representation of the node and the node feature representation of the neighbor node to obtain the feature representation corresponding to the edge between the node and the neighbor node.
[0099] In addition, when the task scheduling module determines, for each common neighbor node set of the node, that the feature representation corresponding to the common neighbor node set is not contained in the specified cache area, the task scheduling module can generate a second task and add the second task to a preset second task queue, so that the execution module obtains the second task from the second task queue and executes the second task, wherein the second task is used to aggregate the node feature representation of each node contained in the common neighbor node set to obtain the feature representation corresponding to the common neighbor node set.
[0100] It should be noted that the common neighbor node set and the other neighbor nodes other than the common neighbor node set each correspond to a unique identifier ID, and the task scheduling module can distinguish the common neighbor node set and the other neighbor nodes other than the common neighbor node set by the unique identifiers ID corresponding to the common neighbor node set and the other neighbor nodes other than the common neighbor node set.
[0101] Further, the execution module can obtain and execute the first task or the second task from the first task queue and the second task queue, as shown in Figure 3 .
[0102] Figure 3 The execution module provided in the present specification is shown in the schematic diagram.
[0103] FromFigure 3 The execution module can include a first execution module and a second execution module. The first execution module can be configured to obtain a first task from a first task queue and execute the first task to obtain a feature representation corresponding to an edge between the node and a neighbor node, and save the feature representation corresponding to the edge between the node and the neighbor node to a preset designated cache area.
[0104] The second execution module can be configured to determine, for each node in the target graph data, an aggregated feature representation of the node, and aggregate the aggregated feature representation of the node with a node feature representation of the node to obtain a fused node feature representation of the node.
[0105] Specifically, the first execution module includes a scheduling unit and at least one execution unit, wherein the execution unit includes a first working state and a second working state.
[0106] The scheduling unit can adjust the working state of each execution unit according to the load of each execution unit. If the execution unit is in the first working state, the execution unit can obtain a first task from a first task queue and execute the first task to obtain a feature representation corresponding to an edge between the node and a neighbor node.
[0107] If the execution unit is in the second working state, the execution unit is configured to determine, for each node in the target graph data, an aggregated feature representation of the node, and aggregate the aggregated feature representation of the node with a node feature representation of the node to obtain a fused node feature representation of the node.
[0108] It should be noted that the method of aggregating the node feature representations of the nodes connected by the edge to obtain the edge feature representation of the edge by the first execution module can be selected according to actual needs, for example, the node feature representations of the nodes connected by the edge are spliced to obtain spliced node feature representations, and then the spliced node feature representations can be input into a preset neural network model to obtain the edge feature representation of the edge through the preset neural network model.
[0109] In addition, the first execution module can also obtain the weight of the edge from the weight cache area, and weight the spliced node feature representations of the nodes connected by the edge after splicing the node feature representations of the nodes connected by the edge to obtain the spliced node feature representations, and then input the weighted spliced node feature representations into a preset neural network model to obtain the edge feature representation of the edge through the preset neural network model.
[0110] In addition, the first execution module can also obtain the weight corresponding to the node from the weight cache area when fusing the node feature representation of the node and the aggregated feature representation of the node, and then can weight fuse the aggregated feature representation of the node according to the weight corresponding to the node to obtain the fused node feature representation of the node.
[0111] In the present specification, the execution units described above use systolic arrays to perform matrix multiplication operations when determining the feature representation corresponding to an edge and when determining the fused node feature representation corresponding to a node, except that the number of systolic arrays used is different, and therefore the scheduling unit can control the combination of the systolic arrays included in each execution unit to achieve the conversion of the execution unit between the first working state and the second working state.
[0112] Further, the second execution module is configured to obtain and execute a second task from the second task queue to obtain the feature representation corresponding to the set of common neighbor nodes, and save the feature representation corresponding to the set of common neighbor nodes to a preset designated cache area.
[0113] In addition, the second execution module is further configured to, for each node in the target graph data, execute the feature aggregation task corresponding to the node to aggregate the feature representations of the associated objects to obtain the aggregated feature representation of the node.
[0114] In actual application scenarios, the feature representations of the associated objects required for executing the feature aggregation task of part of the nodes may not be in the designated cache area, and therefore corresponding first tasks or second tasks need to be generated to be executed by the designated module to obtain the feature representations of the associated objects required for executing the feature aggregation task of part of the nodes.
[0115] Based on this, the second execution module comprises: a plurality of task cache units, wherein each task cache unit is configured to be assigned to the feature aggregation task of each node, and the second execution module can store the obtained feature representations of the associated objects in the task cache unit, and when it is determined that the task cache unit stores the feature representations of all the associated objects required for executing the feature aggregation task, the feature aggregation task is executed to aggregate the feature representations of the associated objects to obtain the aggregated feature representation of the node.
[0116] Further, after obtaining the aggregated feature representation of the node, the second execution module can send the aggregated feature representation of the node to the first execution module, so that the first execution module can aggregate the aggregated feature representation of the node with the node feature representation of the node to obtain the fused node feature representation of the node.
[0117] It should be noted that the first execution module and the second execution module described above can execute the processing tasks required by each of them in parallel.
[0118] In addition, the data processing system described above further comprises a control module, wherein the control module comprises a plurality of sub-controllers, and the sub-controllers are configured to control the data transmission between the task scheduling module, the designated cache area, the first execution modules, and the second execution module.Figure 4 as shown.
[0119] Figure 4 is a schematic diagram of the control module provided in the present specification.
[0120] From Figure 4 It can be seen from the above that the control module can receive a control instruction sent by a user, and configure each sub-controller according to the control instruction to control whether each sub-controller is connected, so as to control the task scheduling module to send the generated first task and second task to the first execution module and the second execution module through the sub-controller, and control the second execution module to obtain the feature representation of the associated object from the specified cache area, save the feature representation of the associated object to the specified cache area, and send the feature representation of the associated object to the first execution module.
[0121] In addition, the first execution module can also be controlled by the sub-controller to obtain the feature representation of the associated object from the specified cache area, and save the feature representation of the associated object to the specified cache area.
[0122] It should be noted that the processing flow of the graph data is not always the same in different graph neural networks and different graph data processing. For example, there are graph neural networks that do not need to consider the feature representation of the edge when processing the graph data, and some graph neural networks need to consider the feature representation of the edge when processing the graph data. Therefore, each sub-controller can be configured by the control module to control the data transmission between the task scheduler, the first execution module, the second execution module, and the specified cache area according to the received control instruction, and the scheduling unit in the first execution module controls the first execution module to be in the first working state or the second working state, so that the above-mentioned data processing system can be adapted to different graph neural networks.
[0123] Further, after the first execution module determines the fused node feature representation of each node in the target graph data, it can update the node feature representation of each node contained in the target graph data according to the fused node feature representation of each node, so as to obtain updated target graph data, and execute a corresponding task according to the updated target graph data. For example, according to the node feature representation of each node in the updated target graph data, a task of recommending goods to a user is executed.
[0124] It can be seen from the above that, when generating the feature aggregation task of each node in the target graph data through the task scheduling module, it can be judged whether the feature representation of the associated object required for executing the feature aggregation task of the node is contained in the preset designated cache area, if it exists, the feature representation of the associated object can be directly obtained from the designated cache area, if it does not exist, the feature representation of the associated object is extracted again, wherein the feature representation of the associated object required for executing the feature aggregation task of the node contained in the designated cache area is saved when the feature aggregation task of other nodes is executed in history, thereby avoiding repeated extraction of the feature representation of the associated object, and further reducing redundant calculation operations when updating the node feature representation of each node in the target graph data, thereby improving the processing efficiency of the target graph data.
[0125] In order to further illustrate the above data processing system, the present specification also provides a method for processing data by the above data processing system, as shown in the following Figure 5
[0126] Figure 5 The schematic diagram of a data processing method provided in the present specification includes the following steps:
[0127] S501: The task scheduling module determines the associated object corresponding to each node in the target graph data required for processing the node, judges whether the feature representation of the associated object is contained in the designated cache area, if yes, generates the feature aggregation task for the node, wherein the associated object includes: the common neighbor node set of the node, other neighbor nodes of the node except the common neighbor node set, and the edge between the node and each neighbor node, and the feature representation corresponding to the associated object is saved in the designated cache area after the historical execution of the feature aggregation task of other nodes.
[0128] S502: Through the execution module, for each node, execute the feature aggregation task for the node to aggregate the feature representation corresponding to the associated object to obtain the aggregated feature representation of the node, and aggregate the aggregated feature representation of the node with the node feature representation of the node to obtain the fused node feature representation of the node, and process the target graph data according to the fused node feature representation of the node and the fused node feature representation of other nodes.
[0129] The task scheduling module determines, for each node in the target graph data, an associated object corresponding to the node required when processing the node, judges whether the specified cache area contains a feature representation of the associated object, and if so, generates a feature aggregation task for the node, wherein the associated object includes a set of common neighbor nodes of the node, other neighbor nodes of the node other than those belonging to the set of common neighbor nodes, and edges between the node and each neighbor node, and the feature representation corresponding to the associated object is saved in the specified cache area after the historical execution of the feature aggregation task of other nodes;
[0130] The execution module executes the feature aggregation task for each node to aggregate the feature representation corresponding to the associated object, obtains the aggregated feature representation of the node, aggregates the aggregated feature representation of the node with the node feature representation of the node to obtain the fused node feature representation of the node, and processes the target graph data according to the fused node feature representation of the node and the fused node feature representation of other nodes.
[0131] For the edge between the node and each neighbor node of the node, if the specified cache area does not contain a feature representation corresponding to the edge between the node and the neighbor node, a first task is generated;
[0132] The first task is added to a preset first task queue, so that the execution module obtains the first task from the first task queue and executes it, and the first task is used to aggregate the node feature representation of the node with the node feature representation of the neighbor node to obtain the feature representation corresponding to the edge between the node and the neighbor node.
[0133] For the set of common neighbor nodes, if the specified cache area does not contain a feature representation corresponding to the set of common neighbor nodes, a second task is generated;
[0134] The second task is added to a preset second task queue, so that the execution module obtains the second task from the second task queue and executes it, and the second task is used to aggregate the node feature representation of each node included in the set of common neighbor nodes to obtain the feature representation corresponding to the set of common neighbor nodes.
[0135] The execution module includes a first execution module; the execution module obtains the first task from the first task queue and executes it to obtain the feature representation corresponding to the edge between the node and the neighbor node, and saves the feature representation corresponding to the edge between the node and the neighbor node in the preset specified cache area; for each node in the target graph data, the aggregated feature representation of the node is determined, and the aggregated feature representation of the node is aggregated with the node feature representation of the node to obtain the fused node feature representation of the node.
[0136] The first execution module comprises a scheduling unit and at least one execution unit, the execution unit comprises a first working state and a second working state, and the first working state and the second working state are adjusted by the scheduling unit according to the load of each execution unit;
[0137] The execution unit in the first working state obtains a first task from the first task queue and executes the first task, to obtain a feature representation corresponding to an edge between the node and the neighbor node;
[0138] The execution unit in the second working state determines an aggregated feature representation of each node in the target graph data, and aggregates the aggregated feature representation of the node with a node feature representation of the node to obtain a fused node feature representation of the node.
[0139] The execution module comprises a second execution module; the second execution module obtains a second task from a second task queue and executes the second task, to obtain a feature representation corresponding to a set of common neighbor nodes, and save the feature representation corresponding to the set of common neighbor nodes into a preset designated cache area;
[0140] The second execution module executes a feature aggregation task corresponding to each node in the target graph data, to aggregate a feature representation corresponding to an associated object, and obtain an aggregated feature representation of the node.
[0141] The second execution module comprises a plurality of task cache units, and each task cache unit is allocated to a feature aggregation task;
[0142] The second execution module obtains the feature representation corresponding to the associated object and stores the feature representation into the task cache unit;
[0143] When it is determined that the task cache unit stores the feature representation corresponding to all associated objects required for executing the feature aggregation task, the feature aggregation task is executed to aggregate the feature representation corresponding to the associated object, and obtain the aggregated feature representation of the node.
[0144] The data processing system further comprises a control module, and the control module comprises a plurality of sub-controllers;
[0145] Each sub-controller obtains the feature representation corresponding to the associated object required for executing the feature aggregation task from the designated cache area, to execute the feature aggregation task for the node, and the sub-controllers are configured by the control module according to the control instruction sent by the user, to control whether the sub-controllers are connected.
[0146] The target graph data is a graph data block divided from original graph data according to common neighbor nodes between the nodes in the original graph data.
[0147] From the above, it can be seen that not only can the feature identifier of the associated object of the node that needs to be reused be determined and saved when the feature aggregation task of the node is executed, so as to be reused when the feature aggregation task of other nodes is executed, thereby improving the processing efficiency of the target graph data, but also the hardware devices such as the task scheduling module, the first execution module including the scheduling unit and the at least one execution unit, the second execution module including the task cache unit, and the control module including the sub-controllers can be used in combination with the method, thereby further improving the processing efficiency of the target graph data.
[0148] The specification also provides a computer-readable storage medium storing a computer program, which can be used to execute the above Figure 5 The method.
[0149] The specification also provides Figure 6 The electronic device shown in the above Figure 5 The schematic structural diagram of the electronic device corresponding to the above Figure 6 As shown in the hardware level, the electronic device includes a processor, an internal bus, a network interface, a memory, and a non-volatile memory, and of course can also include other hardware required by the business. The processor reads the corresponding computer program from the non-volatile memory into the memory and then runs to implement the above Figure 1 The method.
[0150] Of course, in addition to the software implementation, the specification does not exclude other implementation manners, such as a logic device or a combination of software and hardware, and the like, that is, the execution subject of the following processing flow is not limited to each logic unit, but can also be hardware or a logic device.
[0151] In the 1990s, it was relatively easy to distinguish whether an improvement in a technology was a hardware improvement (e.g., an improvement in the circuit structure of a diode, transistor, switch, etc.) or a software improvement (an improvement in a method flow). However, as technology has evolved, many improvements in method flows today can be considered as direct improvements in hardware circuit structures. Designers almost always obtain the corresponding hardware circuit structures by programming the improved method flows into hardware circuits. Therefore, it cannot be said that an improvement in a method flow cannot be implemented using hardware entity modules. For example, a programmable logic device (PLD) (e.g., a field programmable gate array (FPGA)) is an integrated circuit whose logic function is determined by user programming of the device. A digital system is "integrated" on a PLD by the designer programming the PLD, rather than by ordering a chip manufacturer to design and fabricate a custom integrated circuit chip. Moreover, instead of manually fabricating integrated circuit chips, this programming is now mostly implemented using "logic compiler" software, which is similar to software compilers used in program development, and the original code to be compiled is written in a specific programming language, which is called a hardware description language (HDL), and there are many such languages, such as ABEL (Advanced Boolean Expression Language), AHDL (Altera Hardware Description Language), Confluence, CUPL (Cornell University Programming Language), HDCal, JHDL (Java Hardware Description Language), Lava, Lola, MyHDL, PALASM, RHDL (Ruby Hardware Description Language), etc., and the most commonly used are VHDL (Very-High-Speed Integrated Circuit Hardware Description Language) and Verilog. Those skilled in the art should be aware that, as long as the method flow is logically programmed in the above-mentioned hardware description languages and programmed into an integrated circuit, a hardware circuit implementing the logical method flow can be easily obtained.
[0152] The controller can be implemented in any suitable way, for example, the controller can take the form of a microprocessor or processor and a computer readable medium storing computer readable program code, such as software or firmware, executable by the (micro)processor, logic gates, switches, an application specific integrated circuit (ASIC), a programmable logic controller and an embedded microcontroller, examples of which include but are not limited to the following microcontrollers: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20 and Silicone Labs C8051F320, the memory controller can also be implemented as part of the control logic of the memory. Those skilled in the art will also know that, in addition to being implemented in pure computer readable program code, the controller can equally well be implemented to perform the same functions using logic gates, switches, an application specific integrated circuit, a programmable logic controller and an embedded microcontroller, etc. by means of a logical programming of the method steps. The controller can thus be considered as a hardware component, and the means comprised therein for performing the various functions can be considered as structures within the hardware component. Alternatively, the means for performing the various functions can even be considered as both a software module implementing the method and a structure within the hardware component.
[0153] The systems, apparatuses, modules or units illustrated by the above embodiments can be implemented by computer chips or entities, or by products with certain functions. A typical implementation device is a computer. Specifically, the computer can be a personal computer, a laptop computer, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or a combination of any of these devices.
[0154] For the sake of description, the above apparatuses are described in various units by functions respectively. Of course, the functions of each unit can be implemented in one or more software and / or hardware in implementing the present specification.
[0155] Those skilled in the art will understand that the embodiments of the present specification can be provided as a method, a system or a computer program product. Therefore, the present specification can take the form of a complete hardware embodiment, a complete software embodiment or an embodiment combining software and hardware aspects. Moreover, the present specification can take the form of a computer program product implemented on one or more computer usable storage media (including but not limited to magnetic disk storage, CD-ROM, optical storage, etc.) containing computer usable program code.
[0156] This specification is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this specification. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create a machine for implementing the flowchart illustrations and / or block diagrams. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0157] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.
[0158] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0159] In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.
[0160] Memory may include non-persistent storage in computer-readable media, such as random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. Memory is an example of computer-readable media.
[0161] Computer-readable media includes permanent and non-permanent, movable and non-movable media that can be implemented by any method or technology to store information. The information can be computer-readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, magnetic cassette, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information accessible to a computing device. According to the definition herein, computer-readable media does not include transitory media such as modulated data signals and carriers.
[0162] It should also be noted that the terms "comprising", "containing", or any other variant thereof are intended to cover non-exclusive inclusion, such that a process, method, article or apparatus that comprises a list of elements does not only include those elements, but can also include other elements not expressly listed or inherent to such process, method, article or apparatus. Without more limitations, the element defined by the statement "comprising a" does not exclude the presence of additional identical elements in the process, method, article or apparatus that includes the element.
[0163] Those skilled in the art will appreciate that embodiments of the present specification can be provided as methods, systems or computer program products. Therefore, the present specification can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Moreover, the present specification can take the form of a computer program product implemented on one or more computer-usable storage media (including, but not limited to, magnetic disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0164] The present specification can be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The present specification can also be practiced in distributed computing environments where tasks are performed by remote processing devices that are connected through a communication network. In a distributed computing environment, program modules can be located in both local and remote computer storage media including storage devices.
[0165] The various embodiments described in this specification are described using a numbering of embodiments approach: these are each individually integrated contributions pertaining to different aspects of the description. For each embodiment, the description focuses on the differences from the other embodiments. Each embodiment is to be read in isolation, with the understanding that the same or similar features from other embodiments can be combined with the features of the respective embodiment. In particular, the description of the system embodiments is kept relatively short, as the system embodiments are largely analogous to the method embodiments.
[0166] The above only describes the embodiments of the present specification and is not intended to limit the present specification. The present specification can have various modifications and changes for those skilled in the art. Any modification, equivalent replacement, improvement, etc. within the spirit and principle of the present specification shall be included in the scope of claims of the present specification.
Claims
1. A data processing system, characterized in that, The data processing system includes: a task scheduling module, a designated cache area, and an execution module; the designated cache area refers to a preset structure cache area, a node feature information cache area, a weight cache area, and an instant cache area; wherein, the structure cache area is used to store the structure information of the target graph data read from the preset high-bandwidth memory area; the node feature information cache area is used to store the node feature information of the target graph data; the weight cache area is used to store the node weights and / or edge weights of the target graph data; the instant cache area is used to store the feature representations of the reusable common neighbor node set and the edge feature representations determined during the execution of the node feature aggregation task by the execution module; the target graph data is user graph data in the recommendation system, and the nodes contained in the target graph data correspond to the users of the recommendation system, and the feature information of the node is used to characterize the relevant information of the user corresponding to the node, the relevant information including: username, user historical behavior records; The task scheduling module is used to determine the associated object corresponding to each node in the target graph data when processing the node, and to determine whether the feature representation of the associated object is contained in the specified cache. If so, a feature aggregation task for the node is generated. The associated object includes: the common neighbor node set of the node, other neighbor nodes of the node other than those belonging to the common neighbor node set, and the edges between the node and each neighbor node. The feature representation corresponding to the associated object is the feature aggregation task of other nodes executed in the past, which is saved to the specified cache after execution. The execution module is used to perform a feature aggregation task for each node, aggregating the feature representations corresponding to the associated objects to obtain the aggregated feature representation of the node, fusing the aggregated feature representation of the node with the node feature representation of the node to obtain the fused node feature representation of the node, updating the node feature representation of each node in the target graph data based on the fused node feature representation of the node and the fused node feature representations of other nodes, and performing a task to recommend products to the user based on the updated node feature representations of each node in the target graph data; wherein, if the instant cache contains the feature representations of the associated objects required to perform the feature aggregation task of the node, the feature representations corresponding to the associated objects are obtained from the instant cache.
2. The data processing system as described in claim 1, characterized in that, For each edge between a node and its neighboring nodes, if the specified cache does not contain the feature representation corresponding to the edge between the node and its neighboring nodes, the task scheduling module generates a first task and adds the first task to a preset first task queue, so that the execution module obtains the first task from the first task queue and executes it. The first task is used to aggregate the node feature representation of the node and the node feature representation of the neighboring nodes to obtain the feature representation corresponding to the edge between the node and its neighboring nodes.
3. The data processing system as described in claim 1, characterized in that, For the set of public neighbor nodes, if the designated cache does not contain the feature representation corresponding to the set of public neighbor nodes, the task scheduling module generates a second task and adds the second task to a preset second task queue, so that the execution module obtains the second task from the second task queue and executes it. The second task is used to aggregate the node feature representations of each node contained in the set of public neighbor nodes to obtain the feature representation corresponding to the set of public neighbor nodes.
4. The data processing system as described in claim 2, characterized in that, The execution module includes: a first execution module; The first execution module is configured to retrieve the first task from the first task queue and execute it, obtain the feature representation of the edge between the node and its neighboring nodes, and save the feature representation of the edge between the node and its neighboring nodes to a preset specified cache area; and For each node in the target graph data, the aggregated feature representation of the node is determined, and the aggregated feature representation of the node is aggregated with the node feature representation of the node to obtain the fused node feature representation of the node.
5. The data processing system as described in claim 4, characterized in that, The first execution module includes: a scheduling unit and at least one execution unit, wherein the execution unit has a first working state and a second working state; The scheduling unit is used to adjust the working status of each execution unit according to the load of each execution unit; If the execution unit is in the first working state, the execution unit retrieves the first task from the first task queue and executes it to obtain the feature representation of the edge between the node and the neighboring node; If the execution unit is in the second working state, the execution unit is used to determine the aggregated feature representation of each node in the target graph data, and aggregate the aggregated feature representation of the node with the node feature representation of the node to obtain the fused node feature representation of the node.
6. The data processing system as described in claim 3, characterized in that, The execution module includes: a second execution module; The second execution module is used to retrieve the second task from the second task queue and execute it, obtain the feature representation corresponding to the common neighbor node set, and save the feature representation corresponding to the common neighbor node set to a preset designated cache area; and For each node in the target graph data, a feature aggregation task is performed to aggregate the feature representations of the associated objects to obtain the aggregated feature representation of the node.
7. The data processing system as described in claim 6, characterized in that, The second execution module includes: task caching units, which are used to allocate tasks to the feature aggregation task; The second execution module is used to store the feature representation corresponding to the associated object into the task cache unit; When it is determined that the task cache unit contains feature representations corresponding to all associated objects required to execute the feature aggregation task, the feature aggregation task is executed to aggregate the feature representations corresponding to the associated objects to obtain the aggregated feature representation of the node.
8. The data processing system as described in claim 1, characterized in that, The data processing system further includes a control module, which includes sub-controllers; The control module is used to receive control commands sent by the user and configure each sub-controller according to the control commands to control whether each sub-controller is connected. The execution module is used to obtain the feature representations of the associated objects required to perform the feature aggregation task for the node from the designated cache area through the sub-controllers, so as to perform the feature aggregation task for the node.
9. The data processing system according to any one of claims 1 to 8, characterized in that, The target graph data is a graph data block that is pre-divided from the original graph data based on the common neighbor nodes between the nodes contained in the original graph data.
10. A data processing method, characterized in that, The data processing method is applied to a data processing system, which includes a task scheduling module, a designated cache area, and an execution module. The designated cache area refers to a preset structure cache area, a node feature information cache area, a weight cache area, and an instant cache area. The structure cache area stores the structure information of the target graph data read from a preset high-bandwidth memory area. The node feature information cache area stores the node feature information of the target graph data. The weight cache area stores the node weights and / or edge weights of the target graph data. The instant cache area stores the feature representations of the frequently used common neighbor node set and the edge feature representations determined during the execution of the node feature aggregation task by the execution module. The target graph data is user graph data in a recommendation system, and the nodes in the target graph data correspond to users in the recommendation system. The feature information of the nodes is used to characterize the relevant information of the user corresponding to the node, including: username and user historical behavior records. The method includes: The task scheduling module, for each node in the target graph data, determines the associated object corresponding to that node required for processing, and checks whether the feature representation of the associated object is contained in the designated cache. If so, it generates a feature aggregation task for that node. The associated object includes: the node's common neighbor node set, other neighbor nodes of the node besides those belonging to the common neighbor node set, and the edges between the node and its neighbor nodes. The feature representation corresponding to the associated object is the feature aggregation task of other previously executed nodes, which is saved to the designated cache after execution. The target graph data is user graph data from a recommendation system. The nodes in the target graph data correspond to users in the recommendation system. The feature information of the nodes is used to characterize the relevant information of the user corresponding to the node, including: username and user historical behavior records. Through the execution module, for each node, a feature aggregation task is performed to aggregate the feature representations corresponding to the associated objects to obtain the aggregated feature representation of the node. This aggregated feature representation is then combined with the node feature representation of the node to obtain the fused node feature representation. Based on the fused node feature representation of the node and the fused node feature representations of other nodes, the node feature representations of each node in the target graph data are updated. Finally, based on the updated node feature representations of each node in the target graph data, a task of recommending products to the user is performed. If the instant cache contains the feature representations of the associated objects required to perform the feature aggregation task for that node, then the feature representations corresponding to the associated objects are obtained from the instant cache.
11. The method as described in claim 10, characterized in that, The method further includes: For each edge between a node and its neighboring nodes, if the specified cache does not contain the feature representation corresponding to the edge between the node and its neighboring nodes, then a first task is generated. The first task is added to a preset first task queue so that the execution module can retrieve the first task from the first task queue and execute it. The first task is used to aggregate the node feature representation of the node and the node feature representation of the neighboring node to obtain the feature representation of the edge between the node and the neighboring node.
12. The method as described in claim 10, characterized in that, The method further includes: If the specified cache does not contain the feature representation corresponding to the common neighbor node set, then a second task is generated. The second task is added to a preset second task queue so that the execution module can retrieve the second task from the second task queue and execute it. The second task is used to aggregate the node feature representations of each node included in the common neighbor node set to obtain the feature representations corresponding to the common neighbor node set.
13. The method as described in claim 11, characterized in that, The execution module includes: a first execution module; The execution module retrieves and executes the first task from the first task queue, specifically including: The execution module retrieves the first task from the first task queue and executes it to obtain the feature representation of the edge between the node and its neighboring node, and saves the feature representation of the edge between the node and its neighboring node to a preset designated cache area. The aggregated feature representation of the node is aggregated with the node feature representation of the node to obtain the fused node feature representation of the node, specifically including: For each node in the target graph data, the aggregated feature representation of the node is determined, and the aggregated feature representation of the node is aggregated with the node feature representation of the node to obtain the fused node feature representation of the node.
14. The method as described in claim 13, characterized in that, The first execution module includes: a scheduling unit and at least one execution unit. The execution unit includes a first working state and a second working state, which are adjusted by the scheduling unit according to the load of each execution unit. The execution module retrieves the first task from the first task queue and executes it to obtain the feature representation of the edge between the node and its neighboring nodes, specifically including: The execution unit, in its first working state, retrieves and executes the first task from the first task queue to obtain the feature representation of the edge between the node and its neighboring node. For each node in the target graph data, the aggregated feature representation of that node is determined, and the aggregated feature representation of that node is aggregated with the node feature representation of that node to obtain the fused node feature representation, specifically including: The execution unit, in its second working state, determines the aggregated feature representation of each node in the target graph data, and aggregates the aggregated feature representation of the node with the node feature representation of the node to obtain the fused node feature representation of the node.
15. The method as described in claim 12, characterized in that, The execution module includes: a second execution module; The execution module retrieves and executes the second task from the second task queue, specifically including: The second execution module retrieves the second task from the second task queue and executes it to obtain the feature representation corresponding to the common neighbor node set, and saves the feature representation corresponding to the common neighbor node set to a preset designated cache area. Perform a feature aggregation task for this node to aggregate the feature representations corresponding to the associated objects, thereby obtaining the aggregated feature representation of this node, specifically including: The second execution module performs a feature aggregation task for each node in the target graph data to aggregate the feature representations of the associated objects and obtain the aggregated feature representation of the node.
16. The method as described in claim 15, characterized in that, The second execution module includes: task caching units, which are used to allocate tasks to the feature aggregation task; For each node in the target graph data, the aggregated feature representation of that node is determined, and the aggregated feature representation of that node is aggregated with the node feature representation of that node to obtain the fused node feature representation, specifically including: The second execution module obtains the feature representation corresponding to the associated object and stores it in the task cache unit; When it is determined that the task cache unit contains feature representations corresponding to all associated objects required to execute the feature aggregation task, the feature aggregation task is executed to aggregate the feature representations corresponding to the associated objects to obtain the aggregated feature representation of the node.
17. The method as described in claim 10, characterized in that, The data processing system further includes a control module, which includes sub-controllers; Perform a feature aggregation task for this node, specifically including: Each sub-controller retrieves the feature representations corresponding to the associated objects required to perform the feature aggregation task from the designated cache area, and performs the feature aggregation task for that node. The sub-controllers are configured by the control module according to the control instructions sent by the user, so as to control whether the sub-controllers are connected.
18. The method according to any one of claims 10 to 17, characterized in that, The target graph data is a graph data block that is pre-divided from the original graph data based on the common neighbor nodes between the nodes contained in the original graph data.
19. A computer-readable storage medium, characterized in that, The storage medium stores a computer program, which, when executed by a processor, implements the method described in any one of claims 10 to 18.
20. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the program, it implements the method described in any one of claims 10 to 18.
Citation Information
Patent Citations
Task scheduling method and device, storage medium and electronic device
CN113032119A
Object clustering model obtaining method and object clustering method and device
CN114358111A