Dynamic graph mining method and system based on grouping updating
By adopting a group update method in dynamic graph mining, the exploration domain is formed and the update edges are merged, which solves the problem of redundant calculation in dynamic graph mining, and a more efficient graph mining process is achieved.
Patent Information
- Application Number
- CN202510382204.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-03-28
- Publication Date
- 2025-04-29
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
There is a problem of redundant calculation in dynamic graph mining. Traditional methods ignore the potential benefits of interactions between updates when updating graphs, resulting in the failure to fully improve overall efficiency.
Using a group update-based method, by forming the exploration domain and assigning the updates to the corresponding domain, the repeated vertices in the exploration domain merge the update edges, generate an update subgraph, and topologically pruning is performed on the update subgraph using a neighbor-centric expansion strategy to obtain a matching update subgraph.
Through group updates and coarse-grained execution strategies, use spatial locality to reduce redundant data access, improve the efficiency of dynamic graph mining, reduce online maintenance costs, and minimize interference from unrelated updates.
Smart Images

Figure CN119903214A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of dynamic graph mining, and in particular to a dynamic graph mining method and system based on group updating. Background Art
[0002] Graph mining is essential for deciphering complex networks. In the real world, graphs are dynamic and change over time, so the mining patterns need to be updated to reflect these changes. Traditional methods use fine-grained incremental computation to avoid completely re-mining after each update, which improves speed but often ignores the potential benefits of fully examining the interactions between updates, thus missing out on overall efficiency gains.
[0003] As graphs increasingly represent real-world relationships, extensive research has explored their potential through graph mining methods and image mining systems. Graph mining applications include social network analysis, anti-fraud detection, and bioinformatics. Although current systems mainly deal with static graphs, the real world often deals with dynamic graphs with frequently updated vertices and edges. For example, most e-commerce processes billions of transactions, forming dynamic graphs that track customer and seller interactions, which is crucial for detecting fraud.
[0004] Recomputing all patterns in the entire graph for each update is very expensive. Since updates typically affect only a small portion of the graph, many studies advocate incremental computation strategies that only modify the affected results. These approaches typically utilize fine-grained incremental techniques to perform pattern matching by expansion, starting from the changed vertices. Each update triggers a chain of expansion operations to integrate new matches or eliminate outdated results, but these updates are processed independently.
[0005] Updates to the graph are highly clustered. More than 90% of updates to the graph share at least one vertex with other updates. This clustering indicates significant spatial locality in dynamic graph mining, where most updates come from similar locations and share exploration areas during incremental execution. To exploit this feature, the concept of exploration domains is introduced. These domains organize the graph into different components that cover most of the working set involved in the updates. By grouping updates in these domains and executing them concurrently, overlapping expansion paths can be reused, reducing redundant data accesses and improving efficiency.
[0006] Employing coarse-grained incremental computation in dynamic graph mining poses significant challenges. First, the expansion paths across different workloads change dynamically as the graph evolves, and therefore need to be captured and maintained in real time. The cost of online maintenance of such exploration areas can be high, potentially offsetting the gains from reduced data processing. Second, the effectiveness of processing multiple updates simultaneously depends on maximizing the overlap in the expansion paths. However, the actual traversals in the underlying graph for the various updates may not be effectively aligned. This misalignment means that the expected benefits of sharing the exploration area are not fully realized, as most of the processing work is diverted to managing different paths. Furthermore, concurrent access to these paths can lead to contention for cache resources, further degrading performance rather than improving it.
[0007] Therefore, there is an urgent need for a dynamic graph mining method and system based on group updating to solve the above-mentioned defects. Summary of the invention
[0008] The purpose of the present invention is to provide a method and system for mining dynamic graphs based on group updates to solve the redundant calculation problem in mining dynamic graphs in the prior art. The present invention can accelerate mining dynamic graphs through group updates.
[0009] The objective of the present invention is achieved through the following technical solutions: A first aspect of an embodiment of the present invention provides a dynamic graph mining method based on group update, comprising the following steps: (1) Form exploration domains from the matching set of the initial graph and assign updates to the corresponding exploration domains when the graph changes; where each exploration domain consists of a disjoint set of vertices matched by the initial graph; (2) Identify edges that share repeated vertices in the exploration domain and merge them into update groups to generate update subgraphs; expand the update subgraph using a neighbor-centric expansion strategy on the update subgraph, and perform topological pruning to filter the expanded update subgraph to obtain matching update subgraphs.
[0010] Furthermore, the step (1) specifically includes the following sub-steps: (1.1) Based on the matching set of the initial graph, obtain matching connected components from the initial graph and its matching patterns based on matching connected components, and create an exploration domain based on the matching connected components; wherein the matching connected components are composed of vertices in the matching set; (1.2) When the graph changes, assign updates to each exploration domain according to the updated content of the graph to generate an updated exploration domain; (1.3) Schedule mining tasks to process updates in each explored domain.
[0011] Furthermore, the step (1.1) specifically includes the following sub-steps: (1.1.1) Based on the matching set of the initial graph, obtain all matching items from the initial graph and its matching patterns; (1.1.2) For each matching item, check the distribution of its vertices, that is, check whether all the vertices in the matching item have been assigned to the exploration domain; different operations are performed according to the different distribution of vertices: if all the vertices in the matching item are not assigned to any exploration domain, create a new exploration domain and assign all the vertices in the matching item to the new exploration domain; if some of the vertices in the matching item are assigned to the same exploration domain and other vertices are not assigned, assign the other vertices to the same exploration domain; if the matching item contains vertices from multiple exploration domains, merge the multiple exploration domains into one exploration domain and assign the remaining vertices to the exploration domain.
[0012] Furthermore, the updating of each exploration domain according to the updated content of the graph to generate an updated exploration domain specifically includes: Assume there is a set of exploration domains and batch edge updates, and then distribute the updates to the corresponding exploration domains according to the different situations of their vertices in the exploration domain: If both vertices of the updated edge are not in any exploration domain, a new exploration domain is created and the update is assigned to this new exploration domain; If one of the two vertices of the updated edge is in the existing exploration domain and the other vertex is not assigned, then add the other vertex to the existing exploration domain and assign the update to this exploration domain; If both vertices of the updated edge are in the same exploration domain, the update is assigned to that exploration domain; If two vertices of an updated edge are in different exploration domains, the update is assigned to the exploration domain where the vertex with higher cyclicity lies.
[0013] Furthermore, the step (2) specifically includes the following sub-steps: (2.1) The mining task merges updates into update groups, generates update subgraphs, and expands update subgraphs; (2.2) Filter these expanded update subgraphs through isomorphism testing to obtain matching update subgraphs and store them in the matching set; (2.3) For each new update batch, repeat step (1) to update the exploration domain.
[0014] Furthermore, the merging of updates into the update group is specifically implemented by the following method: First, we identify recurring vertex sets from multiple updates within each exploration domain. ,in represents the i-th repeated vertex in the vertex set, and n represents the total number of repeated vertices in the vertex set; Then, if one of the two vertices of the updated edge is the same as a vertex in the vertex set, the update is added to the update group of that vertex; if both vertices of the updated edge are in the vertex set, the update is added to the update group of the vertex with the higher circularity.
[0015] Furthermore, the calculation method of the cyclic degree is specifically as follows: the cyclic degree of a vertex is the degree of the vertex multiplied by the number of times the vertex is updated in a batch.
[0016] Furthermore, the generating and updating the subgraph and extending the updated subgraph specifically include: First, a repeated vertex of the updated edge is identified as a necessary vertex; then other vertices are selected from the update group of necessary vertices to generate an updated subgraph. When selecting vertices, it is necessary to ensure that the number of vertices in the updated subgraph is less than the pattern size, and the number of the selected vertices is the smallest number except for the necessary vertices; then the adjacent vertices in the adjacent cache of the updated subgraph are formed into a candidate set; secondly, the vertices in the candidate set are added to the buffer in sequence; finally, the vertices in the buffer are used to expand the updated subgraph so that the number of vertices in the expanded updated subgraph is the pattern size.
[0017] Furthermore, filtering these expanded update subgraphs through isomorphism testing to obtain matching update subgraphs specifically includes: An isomorphism check is performed on the expanded update subgraph connected to all vertices in this buffer. Based on the condition that the update subgraph not connected to any buffer vertex cannot meet the pattern matching, topology pruning is performed to eliminate infeasible extensions and obtain a matching update subgraph. Here, this buffer refers to the buffer used when expanding the update subgraph. The isomorphism check is implemented by calling the Bliss library for isomorphism testing.
[0018] A second aspect of an embodiment of the present invention provides a system for implementing the above-mentioned dynamic graph mining method based on group update, comprising: an exploration domain management module for forming exploration domains from a matching set of the initial graph and assigning updates to corresponding exploration domains when the graph changes; wherein each exploration domain consists of a disjoint set of vertices matched by the initial graph; and A group-based mining module is used to identify edges that share repeated vertices in the exploration domain and merge them into update groups to generate update subgraphs; a neighbor-centric expansion strategy is used on the update subgraph to expand the update subgraph, and topological pruning is implemented to filter the expanded update subgraph to obtain a matching update subgraph.
[0019] The beneficial effects of the present invention are as follows: the present invention utilizes exploration domains to process updates in a coarse-grained manner by grouping updates and using a coarse-grained execution strategy to exploit spatial locality; the present invention constructs exploration domains around overlapping vertex areas of previous matches to achieve shared vertex access during path extension while minimizing the overhead of incremental adjustments based on new matches, wherein the exploration domain encapsulates a large number of update-related parts of the graph, allowing multiple updates to effectively explore the same area; the present invention groups updates in these exploration domains to ensure consistent execution and minimize interference from irrelevant updates; the present invention applies a neighborhood-centric expansion method that focuses on expanding vertices rather than subgraphs, and these neighborhoods utilize the community structure of real-world graphs to discover data reuse opportunities that are typically missed by existing methods to achieve optimal data reuse; the system described in the present invention is built on a distributed framework and integrates advanced parallelism, and these exploration domains are dynamically constructed through a management module that identifies and maintains redundant areas as the graph changes, and by grouping updates in these exploration domains and adopting a neighbor-centric expansion strategy, the system described in the present invention is able to minimize redundant data access. BRIEF DESCRIPTION OF THE DRAWINGS
[0020] Figure 1 It is a flowchart of the dynamic graph mining method based on group update of the present invention; Figure 2 is a flow chart of a dynamic graph mining method based on group updating of the present invention; Figure 3 is a schematic diagram of the process of constructing an exploration domain and allocating updates to the exploration domain according to the present invention; Figure 4 is a schematic diagram of the process of the group-based graph mining mode of the present invention; Figure 5 It is an example diagram of the parallel running codes of the present invention. DETAILED DESCRIPTION
[0021] Exemplary embodiments will be described in detail herein, examples of which are shown in the accompanying drawings. When the following description refers to the drawings, the same numbers in different drawings represent the same or similar elements unless otherwise indicated. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with the present invention. Instead, they are merely examples of devices and methods consistent with some aspects of the present invention as detailed in the appended claims.
[0022] The terms used in the present invention are only for the purpose of describing specific embodiments and are not intended to limit the present invention. The singular forms "a", "the" and "the" used in the present invention and the appended claims are also intended to include plural forms unless the context clearly indicates other meanings. It should also be understood that the term "and / or" used herein refers to and includes any or all possible combinations of one or more associated listed items.
[0023] It should be understood that although the terms first, second, third, etc. may be used in the present invention to describe various information, these information should not be limited to these terms. These terms are only used to distinguish the same type of information from each other. For example, without departing from the scope of the present invention, the first information may also be referred to as the second information, and similarly, the second information may also be referred to as the first information. Depending on the context, the word "if" as used herein may be interpreted as "at the time of" or "when" or "in response to determining".
[0024] The present invention is described in detail below in conjunction with the accompanying drawings. In the absence of conflict, the features of the following embodiments and implementations can be combined with each other.
[0025] See also Figure 1 and Figure 2 The dynamic graph mining method based on group update of the present invention specifically comprises the following steps:
[0026] (1) Form exploration domains from the matching set of the initial graph, and assign updates to the corresponding exploration domains when the graph changes, thus realizing the update and adjustment of the exploration domains as the graph evolves. Each exploration domain consists of a set of non-intersecting vertices matched by the initial graph. Figure 1 As shown, the initial domain construction refers to the initial construction based on the initial graph and its matching set to form an exploration domain; when encountering an update, dynamic maintenance is performed on the basis of the initial domain, and the constructed exploration domain is dynamically maintained according to the updated vertices; the update edges are assigned to different exploration domains.
[0027] It should be noted that the matching set refers to the result set consisting of the matches (i.e. isomorphism) that match the pattern in the input graph after the user specifies the pattern and the input graph. The matching set of the graph can be obtained in the preprocessing by the static graph mining method, which is an existing well-known method and will not be described here.
[0028] (1.1) Based on the matching set of the initial graph, matching connected components are obtained from the initial graph and its matching patterns based on matching connected components (MCC), and an exploration domain is created based on the matching connected components, where the matching connected components are composed of vertices in the matching set.
[0029] It should be understood that the pattern of the initial graph matching is specifically: the subgraph that needs to be found from the graph and isomorphic to it, which is specified by the user, is called the matching pattern, where the vertex is the node in the graph.
[0030] (1.1.1) Based on the matching set of the initial graph, obtain all matching items from the initial graph and its matching patterns, where the matching items refer to the matching subgraphs of the initial graph.
[0031] (1.1.2) If Figure 3 As shown, for each matching item, check the distribution of its vertices, that is, check whether all the vertices in the matching item have been assigned to the exploration domain; different operations are performed according to the different distribution of vertices: if all the vertices in the matching item are not assigned to any exploration domain, create a new exploration domain and assign all the vertices in the matching item to the new exploration domain; if some vertices in the matching item are assigned to the same exploration domain and other vertices are not assigned, assign the other vertices to the same exploration domain; if the matching item contains vertices from multiple exploration domains, merge the multiple exploration domains into one exploration domain and assign the remaining vertices to the exploration domain.
[0032] (1.2) When the graph changes, each exploration domain is assigned an update based on the updated content of the graph to generate an updated exploration domain.
[0033] Further, according to the updated content of the graph, each exploration domain is updated to generate an updated exploration domain, specifically including: Figure 3 As shown, suppose there is a set of exploration domains and batch updates of edges. Then, according to the different situations of its vertices in the exploration domain, the updates are assigned to the corresponding exploration domains: if the two vertices of the updated edge are not in any exploration domain, a new exploration domain is created and the update is assigned to the new exploration domain; if one of the two vertices of the updated edge is in the existing exploration domain and the other vertex is not assigned, the other vertex is added to the existing exploration domain and the update is assigned to this exploration domain; if the two vertices of the updated edge are in the same exploration domain, the update is assigned to the exploration domain; if the two vertices of the updated edge are in different exploration domains, the update is assigned to the exploration domain where the vertex with higher cyclicity is located. As shown in Figure 3 As shown, vertex analysis is performed on different situations of the exploration domains to which the updated vertices belong, and then the updated vertices and updated edges are assigned to different exploration domains based on the situation of the vertex analysis, where different colors represent different exploration domains.
[0034] Furthermore, the calculation method of the cycle degree is as follows: the cycle degree of a vertex is the degree of the vertex multiplied by the number of times the vertex is updated in a batch. The degree of a vertex is a basic concept in graph theory, which describes the connection of vertices in a graph.
[0035] For example, suppose there are three exploration domains A\B\C, and there are two updated edges ① / ②, where one vertex of ① is in exploration domain A and the other vertex is in exploration domain B; one vertex of ② is in exploration domain A and the other vertex is in exploration domain C. Since exploration domain A contains 2 vertices, the updates of ① and ② are all assigned to exploration domain A. If there is also an updated edge ③, one vertex of ③ is in exploration domain B and the other vertex is in exploration domain C; at this time, exploration domains A\B\C all have 2 vertices. For each updated edge ① / ② / ③, the updated edge is preferentially assigned to the exploration domain where the vertex with higher circularity is located.
[0036] (1.3) Schedule mining tasks to process updates in each explored domain.
[0037] It should be understood that the mining task refers to mining the matches that are changed by the update. The mining task is arranged in the current step (1.3) to process the updates in each exploration domain. Through the above step (1.2), the updates are distributed to each exploration domain, and then the updates in each exploration domain need to be further processed, so the mining task is arranged to process the updates in each exploration domain. For an update, its mining task is to expand the update edge into multiple subgraphs, and then perform isomorphism testing to determine whether the expanded subgraphs meet the pattern matching. For details, please refer to the following step (2).
[0038] (2) Identify the edges that share repeated vertices in the exploration domain and merge them into the update group to generate an update subgraph, which can effectively reduce redundant neighbor visits; use a neighbor-centric expansion strategy on the update subgraph to expand the update subgraph, which can minimize symmetry interruption checks, and implement topology pruning to filter the expanded update subgraph, which can eliminate hopeless extensions and obtain a matching update subgraph, such as Figure 1 shown. Figure 1 In the paper, the task scheduler refers to the component that schedules the order of task execution, and the real-time graph engine is the processor that processes tasks. Based on the mining tasks arranged by the task scheduler, the real-time graph engine is used to perform different processing operations on the graph, such as merging, generating, expanding, and filtering.
[0039] (2.1) The mining task merges updates into update groups, generates update subgraphs, and expands the update subgraphs.
[0040] Furthermore, if Figure 4 As shown, the updates are merged into update groups by first identifying sets of recurring vertices from multiple updates within each exploration domain. ,in represents the i-th repeated vertex in the vertex set, and n represents the total number of repeated vertices in the vertex set; then, if one of the two vertices of the updated edge is the same as a vertex in the vertex set, the update is added to the update group of the vertex; if both vertices of the updated edge are in the vertex set, the update is added to the update group of the vertex with a higher cyclic degree. Among them, the update group refers to a set of updates with the same nodes.
[0041] It should be understood that step (1.2) distributes the updates of the batches of edges to each exploration domain, and then step (2.1) here further processes the updates of the edges in each exploration domain.
[0042] It should be noted that, at the initial moment, each update edge in an exploration domain can be regarded as an update group. At this time, the size of the update group is 1, that is, each update edge is a group. In this way, the update edges that belong to a single vertex are merged to form an update group. For update edges whose two vertices are in the vertex set, the update edge is assigned to the update group with a higher cyclic degree by calculating the cyclic degree.
[0043] Furthermore, if Figure 4 As shown, an update subgraph is generated, and the update subgraph is expanded, specifically including: first, a repeated vertex of the updated edge is identified as a necessary vertex. Then other vertices are selected from the update group of necessary vertices to generate an update subgraph. When selecting vertices, it is necessary to ensure that the number of vertices in the update subgraph is less than the pattern size, and the number of the selected vertices is the smallest number except for the necessary vertices, which can effectively avoid the generation of repeated update subgraphs; wherein, the pattern is a subgraph given by the user, and its size can be determined when the user inputs. Then, the adjacent vertices in the adjacent cache of the update subgraph are formed into a candidate set. Secondly, the vertices in the candidate set are added to the buffer in sequence. Finally, the vertices in the buffer are used to expand the update subgraph so that the number of vertices of the expanded update subgraph is the pattern size. For example, the update subgraph is expanded to an update subgraph with a pattern size of n=3, as shown in Figure 4 As shown, the update subgraph refers to a subgraph generated by the update group according to different matching modes. Figure 4 The neighbor cache in refers to the cache of different vertices and all their neighbor nodes. The source refers to the vertex in the update group, and the neighbor vertex refers to the vertex adjacent to the corresponding source vertex; the candidate set refers to the set of neighbor vertices in the neighbor cache; the buffer refers to the set of vertices currently being processed selected from the candidate set, that is, the buffer zone.
[0044] It should be understood that the determination of necessary vertices is achieved based on the above-mentioned process of merging updates into update groups, that is: if one of the two vertices of the updated edge is the same as a vertex in the vertex set, then this vertex in the vertex set is the determined necessary vertex; if both vertices of the updated edge are in the vertex set, then any one of the vertices can be selected as the necessary vertex.
[0045] It should be noted that the cache stores neighbor vertices of the updated subgraph, so the vertices in the cache must be neighbors with one or more vertices of the updated subgraph. When adding vertices in the candidate set to the buffer in sequence, not all vertices in the candidate set are added to the buffer. The adding method is similar to the process of generating the updated subgraph. Each time the vertex is added, it is numbered with the smallest number that has not been added to the buffer. In this way, duplication can be avoided by ensuring the partial order relationship.
[0046] (2.2) These expanded update subgraphs are filtered through isomorphism tests to obtain matching update subgraphs, which are stored in the matching set.
[0047] Furthermore, these extended update subgraphs are filtered through isomorphism testing to obtain matching update subgraphs, which is specifically achieved in the following way: an isomorphism check is performed on the extended update subgraphs connected to all vertices in this buffer, and according to the condition that the update subgraphs not connected to any buffer vertex cannot meet the pattern matching, topology pruning is performed to eliminate infeasible extensions to obtain matching update subgraphs. Among them, this buffer refers to the buffer used when extending the update subgraph; the isomorphism check is implemented by calling the Bliss library of the isomorphism test.
[0048] It should be understood that the Bliss library is an open source software library for graph isomorphism testing, which can be used to determine whether two subgraphs are isomorphic.
[0049] (2.3) For each new update batch, repeat step (1) to update the exploration domain.
[0050] It is worth mentioning that the embodiment of the present invention also provides a dynamic graph mining system based on group update, which is used to implement the dynamic graph mining method based on group update of the above embodiment. The system is called Cheetah. Figure 1 As shown, the system includes an exploration domain management module and a group-based mining module.
[0051] In this embodiment, the exploration domain management module is used to form an exploration domain from the matching set of the initial graph, and to distribute updates to the corresponding exploration domains when the graph changes, thereby realizing the update and adjustment of the exploration domain as the graph develops. Each exploration domain consists of a non-intersecting vertex set matched by the initial graph.
[0052] In this embodiment, a group-based mining module is used to identify edges that share repeated vertices in the exploration domain and merge them into update groups to generate an update subgraph, which can effectively reduce redundant neighbor visits; a neighbor-centric expansion strategy is used on the update subgraph to expand the update subgraph, which can minimize symmetry interruption checks, and topology pruning is implemented to filter the expanded update subgraph, which can eliminate hopeless extensions and obtain a matching update subgraph.
[0053] like Figure 5 As shown, this embodiment provides a strategy for running Cheetah in parallel, specifically including: when a batch of streaming edge updates arrive, processEdgeStream will call domainHandler to distribute the updates to the domain, wherein domainHandler can be executed asynchronously and can be executed directly without waiting for other operations. Then, the domain handler arranges these updates to be processed by buildUpg, explore, and ismorTest. Different exploration domains can execute these operations simultaneously to achieve domain-level parallel functions; wherein, buildUpg is used to construct update groups to construct incoming updates into update groups; explore is used to explore subgraphs to explore a set of update subgraphs based on the original graph and the update group; ismorTest is used to perform isomorphism testing to filter the update subgraphs to obtain matching update subgraphs. Synchronization occurs only after this batch of updates is completely mined. Among them, Cheetah is the dynamic graph mining system described in the present invention, which is used to implement the method described in the present invention.
[0054] Specifically, in multiple nodes, groups associated with different domains are executed in parallel, allowing updates to be processed independently without sharing data between workers. This independence is advantageous because grouping updates with potential data overlap in the same exploration domain can minimize data reuse between groups in different exploration domains. Therefore, assigning different groups to separate workers can effectively utilize inter-update locality without compromising performance. In a single node, intra-domain mining parallelism is enhanced by adopting update-level parallelism, where updates within the same group are distributed across different threads of the worker. This is achieved through a neighbor-centric expansion method that allows each vertex to be expanded independently in the update. Due to the different domain sizes and the number of neighbors in the edge updates, the workload between workers in Cheetah can vary greatly, resulting in uneven workload distribution. To improve load balancing, Cheetah implements two strategies: First, Cheetah adopts dynamic task allocation to keep all workers actively involved and ensure even distribution of workload. For domains that are large and contain many updates, Cheetah assigns multiple workers to efficiently process graph mining tasks. Additionally, Cheetah incorporates a work-stealing mechanism for workers that are constantly busy due to a large number of neighbors in the update group. This approach allows less busy workers to receive executable updates from overloaded workers. This approach helps maintain optimal productivity and load balancing among all workers.
[0055] Cheetah uses the MongoDB library to manage dynamically evolving graph data. The graph is stored in an adjacency list format, and each vertex record contains a list of outgoing edges, including the target vertex, a timestamp, and an associated label. Deleted edges are clearly marked. In a single-node setting, the entire data graph is stored in main memory. In a distributed environment, the data graph is replicated across all nodes. Previous research has shown that the MongoDB library can efficiently handle updates without imposing performance limitations.
[0056] The exploration domain is managed efficiently using a Union Search Tree, a data structure commonly used in graph clustering to organize data into disjoint sets, where each element belongs to a set. Specifically, each exploration domain is represented by a rooted tree, where each node contains a vertex. In addition, query efficiency is improved at runtime by optimizing the index structure and optimizing the query tree. Ordered Neighbor Cache: When the neighbors of a point are initially visited, they are sorted and stored in a neighbor cache, providing three advantages: 1) The ordered cache can efficiently build a candidate list of points. 2) Limiting candidate list vertices to backward visits can minimize inefficient comparisons during expansion. 3) The expansion of cached vertices can be detected more efficiently. This sorting overhead only occurs once and is amortized over multiple update executions.
[0057] In this embodiment, Cheetah is compared with existing graph mining systems such as Delta-BigJoin, GraphPi-D, and Tesseract based on the TC algorithm, 4-CF algorithm, 4-MC algorithm, 5-CF algorithm, and 4-FSM algorithm in five real data sets, namely MO, WK, SF, SO, and BC, to evaluate the performance of Cheetah. The results are shown in Table 1.
[0058] Table 1: Comparative experimental results of Cheetah and other existing graph mining systems
[0059] As can be seen from Table 1, the performance improvement of Cheetah compared to the current leading systems varies in different algorithms. Compared with the current leading systems, Cheetah's performance is improved by 1.10 to 2.69 times on average.
[0060] The present invention has studied a large number of documents and patents, but due to space limitations, not all details and contents are listed in detail. However, this does not mean that the present invention does not have the characteristics of these prior arts. On the contrary, the present invention already has all the characteristics of the prior art.
[0061] The above embodiments are only used to illustrate the design ideas and features of the present invention, and their purpose is to enable those skilled in the art to understand the content of the present invention and implement it accordingly. The protection scope of the present invention is not limited to the above embodiments. Therefore, any equivalent changes or modifications made based on the principles and design ideas disclosed by the present invention are within the protection scope of the present invention.
Claims
1. A dynamic graph mining method based on group update, characterized in that: The following steps are involved: (1) Form exploration domains from the matching set of the initial graph and assign updates to the corresponding exploration domains when the graph changes; where each exploration domain consists of a disjoint set of vertices matched by the initial graph; (2) Identify edges that share repeated vertices in the exploration domain and merge them into update groups to generate update subgraphs; expand the update subgraph using a neighbor-centric expansion strategy on the update subgraph, and perform topological pruning to filter the expanded update subgraph to obtain matching update subgraphs.
2. The dynamic graph mining method based on group update according to claim 1, characterized in that: The step (1) specifically includes the following sub-steps: (1.1) Based on the matching set of the initial graph, obtain matching connected components from the initial graph and its matching patterns based on the matching connected components, and create an exploration domain based on the matching connected components; wherein the matching connected components are composed of vertices in the matching set; (1.2) When the graph changes, assign updates to each exploration domain according to the updated content of the graph to generate an updated exploration domain; (1.3) Schedule mining tasks to process updates in each explored domain.
3. The dynamic graph mining method based on group update according to claim 2 is characterized in that: The step (1.1) specifically includes the following sub-steps: (1.1.1) Based on the matching set of the initial graph, obtain all matching items from the initial graph and its matching patterns; (1.1.2) For each matching item, check the distribution of its vertices, that is, check whether all the vertices in the matching item have been assigned to the exploration domain; different operations are performed according to the different distribution of vertices: if all the vertices in the matching item are not assigned to any exploration domain, create a new exploration domain and assign all the vertices in the matching item to the new exploration domain; if some of the vertices in the matching item are assigned to the same exploration domain and other vertices are not assigned, assign the other vertices to the same exploration domain; if the matching item contains vertices from multiple exploration domains, merge the multiple exploration domains into one exploration domain and assign the remaining vertices to the exploration domain.
4. The dynamic graph mining method based on group update according to claim 2 is characterized in that: The updating of each exploration domain according to the updated content of the graph to generate an updated exploration domain specifically includes: Assume there is a set of exploration domains and batch edge updates, and then distribute the updates to the corresponding exploration domains according to the different situations of their vertices in the exploration domain: If both vertices of the updated edge are not in any exploration domain, a new exploration domain is created and the update is assigned to this new exploration domain; If one of the two vertices of the updated edge is in the existing exploration domain and the other vertex is not assigned, then add the other vertex to the existing exploration domain and assign the update to this exploration domain; If both vertices of the updated edge are in the same exploration domain, the update is assigned to that exploration domain; If two vertices of an updated edge are in different exploration domains, the update is assigned to the exploration domain where the vertex with higher cyclicity lies.
5. The dynamic graph mining method based on group update according to claim 1, characterized in that: The step (2) specifically includes the following sub-steps: (2.1) The mining task merges updates into update groups, generates update subgraphs, and expands update subgraphs; (2.2) Filter these expanded update subgraphs through isomorphism testing to obtain matching update subgraphs and store them in the matching set; (2.3) For each new update batch, repeat step (1) to update the exploration domain.
6. The dynamic graph mining method based on group update according to claim 5, characterized in that: The merging of updates into an update group is specifically implemented by the following method: First, we identify recurring vertex sets from multiple updates within each exploration domain. ,in represents the i-th repeated vertex in the vertex set, and n represents the total number of repeated vertices in the vertex set; Then, if one of the two vertices of the updated edge is the same as a vertex in the vertex set, the update is added to the update group of that vertex; If both vertices of the updated edge are in the vertex set, the update is added to the update group of the vertex with the higher cycle degree.
7. The dynamic graph mining method based on group update according to claim 4 or 6, characterized in that: The calculation method of the cyclic degree is specifically as follows: the cyclic degree of a vertex is the degree of the vertex multiplied by the number of times the vertex is updated in a batch.
8. The dynamic graph mining method based on group update according to claim 5, characterized in that: The generating and updating subgraph, and extending and updating subgraph, specifically includes: First, a repeated vertex of the updated edge is identified as a necessary vertex; then other vertices are selected from the update group of necessary vertices to generate an updated subgraph. When selecting vertices, it is necessary to ensure that the number of vertices in the updated subgraph is less than the pattern size, and the number of the selected vertices is the smallest number except for the necessary vertices; then the adjacent vertices in the adjacent cache of the updated subgraph are formed into a candidate set; secondly, the vertices in the candidate set are added to the buffer in sequence; finally, the vertices in the buffer are used to expand the updated subgraph so that the number of vertices in the expanded updated subgraph is the pattern size.
9. The dynamic graph mining method based on group update according to claim 5, characterized in that: The method of filtering these expanded update subgraphs through isomorphism testing to obtain matching update subgraphs specifically includes: An isomorphism check is performed on the expanded update subgraph connected to all vertices in this buffer. Based on the condition that the update subgraph not connected to any buffer vertex cannot meet the pattern matching, topology pruning is performed to eliminate infeasible extensions and obtain a matching update subgraph. Here, this buffer refers to the buffer used when expanding the update subgraph. The isomorphism check is implemented by calling the Bliss library for isomorphism testing.
10. A system for implementing the dynamic graph mining method based on group update according to any one of claims 1 to 9, characterized in that: include: an exploration domain management module for forming exploration domains from a matching set of the initial graph and assigning updates to corresponding exploration domains when the graph changes; wherein each exploration domain consists of a disjoint set of vertices matched by the initial graph; and A group-based mining module to identify edges that share repeated vertices in the exploration domain and merge them into update groups to generate an updated subgraph; The update subgraph is expanded using a neighbor-centric expansion strategy on the update subgraph, and topology pruning is performed to filter the expanded update subgraph to obtain a matching update subgraph.