A Maximal Binocetization Method Based on Hybrid Storage
By combining adjacency lists and bitmaps in a hybrid storage method, sub-bitmaps are dynamically generated, solving the problem of low computational efficiency in existing technologies and improving the efficiency and accuracy of maximal bipartite enumeration, making it suitable for the analysis of large bipartite graphs.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- ZHEJIANG UNIV
- Filing Date
- 2023-10-24
- Publication Date
- 2026-05-05
AI Technical Summary
Existing maximal biclique enumeration methods are computationally inefficient, especially when using adjacency list storage, which results in long computation times due to the large number of vertex neighbors. Bitmap storage requires a large amount of space, making it difficult to efficiently process large-scale graph data.
A hybrid storage approach is adopted, which combines graph structure and subgraph structure with adjacency list and bitmap, dynamically generates sub-bitmaps for storage, selects an appropriate storage method according to the number of vertices, and combines bit operations to accelerate enumeration calculation.
It significantly improves the efficiency of maximal biclique enumeration, is applicable to large bipartite graphs, and enhances the detection rate of fraudulent transactions in e-commerce and the recommendation speed in social networks, as well as the accuracy and speed of gene analysis.
Smart Images

Figure CN117349287B_ABST
Abstract
Description
Technical Field
[0001] This invention belongs to the fields of computer graph computing and data mining, and in particular relates to a maximal biclique enumeration method based on hybrid storage. Background Technology
[0002] In the field of data mining, maximal biclique enumeration is an important research topic. It has wide applications in various fields, such as gene analysis, e-commerce, overlapping community detection, GNN information aggregation, and social relationship recommendation. Taking gene analysis as an example, we can consider genes and traits as two vertex sets of a bipartite graph, with genes and corresponding traits forming the edges of the bipartite graph. A set of genes corresponding to a set of traits constitutes a bipartite cluster. A maximal bipartite cluster is a bipartite cluster in the bipartite graph that is not completely contained by any other bipartite cluster, and it can best describe the correspondence between a set of genes and a set of traits. By enumerating maximal bipartite clusters in the bipartite graph, biologists can understand the connections between genes and traits. By analyzing the connection patterns between different genes, we can reveal the interactions between genes and their combined influence on trait expression.
[0003] Currently, maximal biclique enumeration methods mainly employ recursive algorithms and are implemented based on enumeration trees. Specifically, for a given bipartite graph G(U,V,E), existing methods first recursively generate the power set of the set V as the right-hand vertex set R, and then expand the right-hand vertex set R to the corresponding biclique (L,R). The algorithm enumerates all maximal bicliques and prunes the non-maximal bicliques. In recent years, optimizations to maximal biclique enumeration methods have mainly included vertex sorting, pruning invalid branches, and improving parallelism.
[0004] Regarding the storage formats for maximal bicliques in bipartite graphs, common methods include adjacency list storage and bitmap storage. Adjacency lists use arrays of variable length to store the graph structure, with each array element storing information about a vertex's neighbors. Adjacency lists allow for efficient searching of a vertex's neighbors. Currently, mainstream maximal biclique enumeration methods typically use adjacency lists because they only need to store the actual edges, thus saving storage space. However, in adjacency lists, since the number of neighbors for a vertex can be large, calculating the common neighbors between vertices can be time-consuming. Bitmaps, on the other hand, map the set of graph vertices to a bit sequence, where each bit represents the existence of a vertex and its connections to other vertices. Using bitwise operations, connections between vertices can be calculated quickly. However, because bitmaps require significant storage space, bitmap-based maximal biclique enumeration algorithms are only suitable for small-scale graphs. Summary of the Invention
[0005] To address the issue of low computational efficiency caused by a single storage format in existing technologies, this invention provides a maximal bipartite clique enumeration method based on hybrid storage. For runtime maximal bipartite clique enumeration algorithms handling a small number of vertices, this method employs a strategy of dynamically generating a bitmap-based sub-bipartite graph to complete the enumeration task. Through this hybrid storage approach, this method can simultaneously control the storage overhead of bitmaps and utilize bitmap-based bitwise operations to accelerate the maximal bipartite clique enumeration calculation process, thereby significantly improving the enumeration efficiency of maximal bipartite cliques.
[0006] The technical solution adopted in this invention is as follows:
[0007] A maximal bicluster enumeration method based on hybrid storage stores the runtime graph structure and subgraph structure using a combination of adjacency lists and bitmaps, thereby improving the efficiency of maximal bicluster enumeration; specifically, it includes the following steps:
[0008] (1) Obtain the bipartite graph G0(U,V,E), where U and V are two disjoint vertex sets in the bipartite graph and E is the edge set; the bipartite graph includes the bipartite graph of genes and traits in the gene analysis scenario, the bipartite graph composed of users and products in the e-commerce scenario, or the bipartite graph composed of users and interests in the social network scenario.
[0009] (2) Set a threshold t to determine how the subgraph is stored during runtime; if the number of vertices in U is greater than t, then G0 uses an adjacency list for storage; otherwise, G0 uses a bitmap for storage.
[0010] (3) Take U, V and G0 are the initial parameters of the function. The BicliqueFind(L,R,C,G) function is called recursively, which includes the following sub-steps:
[0011] 3-1. Obtain the four parameters L, R, C, and G corresponding to the current enumeration tree node;
[0012] 3-2. Determine if set C is empty. If yes, exit the function; otherwise, execute step 3-3.
[0013] 3-3. Create a copy (L',R',C',G') of the current enumeration tree node (L,R,C,G);
[0014] 3-4. Select a vertex v from set C, calculate the intersection of set L and the neighbor set of vertex v, and assign the result to L';
[0015] 3-5. Determine if the number of vertices in L is greater than t and the number of vertices in L' is less than or equal to t. If so, construct a sub-map based on the neighbors of all vertices in L' and assign it to G'; otherwise, assign the original graph G, stored according to the adjacency list, to G'.
[0016] 3-6. Assign the vertices in set R to R';
[0017] 3-7. Traverse each vertex v in set C c If set L' is v c A subset of the set of neighbors of v, then v c Add to R'; if set L' and v c If the neighbor sets of v have an intersection, then v c Add to C';
[0018] 3-8. Determine whether there exists a vertex v in set V other than R∪C. x Make the set L' be v x If a subset of the neighbor set is found, proceed to step 3-10; otherwise, proceed to step 3-9.
[0019] 3-9. Output a maximal biclique (L', R'); recursively execute the function BicliqueFind(L', R', C', G');
[0020] 3-10. Remove vertex v from set C, and proceed to step 3-2;
[0021] (4) Output the count results of all maximal cliques or maximal cliques to the user.
[0022] Furthermore, t is set to 32.
[0023] Compared with the prior art, the present invention has the following beneficial effects:
[0024] 1. This invention adopts a hybrid storage method, which retains the low storage space overhead of adjacency list storage and combines the high computational efficiency of bitmap storage.
[0025] 2. For large bipartite graphs, this invention, similar to mainstream methods, uses an adjacency list for storage and computation. Therefore, this invention is applicable to all bipartite graphs that existing methods can handle.
[0026] 3. For tasks in the binary cluster enumeration process that only require calculations on small graphs, this invention greatly improves the execution speed of binary cluster enumeration tasks by dynamically constructing sub-bit graphs, thereby improving the detection rate and speed of fraudulent transactions in e-commerce, recommendation speed in social networks, gene analysis, and overlapping community detection speed. Attached Figure Description
[0027] Figure 1 This is a flowchart of the present invention;
[0028] Figure 2This is a flowchart of the execution of the BicliqueFind(L,R,C,G) function in this invention;
[0029] Figure 3 This refers to the bipartite graph G0 in this embodiment of the invention.
[0030] Figure 4 This is the enumeration tree generated using vertex merging technology in this embodiment of the invention; Detailed Implementation
[0031] like Figure 1 As shown, a maximal bicluster enumeration method based on hybrid storage according to the present invention includes the following steps:
[0032] (1) Obtain the bipartite graph G0(U,V,E), where U and V are two disjoint vertex sets in the bipartite graph, and E is the edge set. The bipartite graph includes bipartite graphs of genes and traits in gene analysis scenarios, bipartite graphs composed of users and products in e-commerce scenarios, and bipartite graphs composed of users and interests in social network scenarios, etc.
[0033] (2) Set a threshold t to determine how the subgraph is stored during runtime. If the number of vertices in U is greater than t, G0 uses an adjacency list for storage; otherwise, G0 uses a bitmap for storage.
[0034] (3) Take U, V and G0 are the initial parameters of the function, and the BicliqueFind(L,R,C,G) function is called recursively. Specifically, it includes the following sub-steps:
[0035] 3-1. Obtain the four parameters L, R, C, and G corresponding to the current enumeration tree node;
[0036] 3-2. Determine if set C is empty. If yes, exit the function; otherwise, execute step 3-3.
[0037] 3-3. Create a copy (L',R',C',G') of the current enumeration tree node (L,R,C,G);
[0038] 3-4. Select a vertex v from set C, calculate the intersection of set L and the neighbor set of vertex v, and assign the result to L';
[0039] 3-5. Determine if the number of vertices in L is greater than t and the number of vertices in L' is less than or equal to t. If so, construct a sub-map based on the neighbors of all vertices in L' and assign it to G'; otherwise, assign the original graph G, stored according to the adjacency list, to G'.
[0040] 3-6. Assign the vertices in set R to R';
[0041] 3-7. Traverse each vertex v in set C c If set L' is v c A subset of the set of neighbors of v, then v c Add to R'; if set L' and v c If the neighbor sets of v have an intersection, then v c Add to C';
[0042] 3-8. Determine whether there exists a vertex v in set V other than R∪C. x Make the set L' be v x If a subset of the neighbor set is found, proceed to step 3-10; otherwise, proceed to step 3-9.
[0043] 3-9. Output a maximal biclique (L', R'); recursively execute the function BicliqueFind(L', R', C', G');
[0044] 3-10. Remove vertex v from set C, and proceed to step 3-2;
[0045] (4) Output the count results of all maximal cliques or maximal cliques to the user.
[0046] The present invention will be further described in detail below with reference to the accompanying drawings and embodiments. It should be noted that the embodiments described below are intended to facilitate the understanding of the present invention and do not constitute any limitation thereof.
[0047] Example 1:
[0048] Taking e-commerce as an example, the number of transactions per day can exceed 100 million, corresponding to a bipartite graph with over 100 million edges, describing users' transaction behavior for goods. Maximal bipartite clusters best describe the bulk purchase behavior of user groups of the same group of goods. However, some malicious merchants use order-brushing methods, hiring a group of users to simultaneously purchase a batch of goods to increase the exposure of the target product. Maximal bipartite clusters can effectively describe this type of order-brushing behavior. Therefore, by enumerating maximal bipartite clusters, we can help detect most suspicious transactions as early as possible and improve the detection rate of suspicious transactions. Specifically, a suspicious transaction detection method using a maximal bipartite cluster enumeration method based on hybrid storage includes the following steps:
[0049] As shown in step (1), the bipartite graph G0 is obtained using the maximal biclique enumeration method based on the candidate vertex merging technique. In this embodiment, the bipartite graph is a bipartite graph composed of users and goods in an e-commerce scenario, such as... Figure 3 As shown;
[0050] As shown in step (2), set the threshold t = 2. This is used to determine the storage method of the subgraph during runtime. If the number of vertices in U is greater than t, then G0 uses an adjacency list for storage; otherwise, G0 uses a bitmap for storage.
[0051] As shown in step (3), Figure 4 The enumeration tree shown is U, V and G0 are used as the initial parameters of the function. The BicliqueFind function is called recursively. Taking the root node as an example, the specific steps are as follows:
[0052] 3-1. Obtain the parameters corresponding to the root node, L = U, C = V, G = G0;
[0053] 3-2. Determine if set C is empty. If yes, exit the function; otherwise, execute step 3-3.
[0054] 3-3. Create a copy (L',R',C',G') of the current enumeration tree node (L,R,C,G);
[0055] 3-4. Select a vertex v1 from set C, and calculate the intersection of set L and the neighbor set of vertex v1, i.e., {u1,u2,u3,u4,u5,u6}∩{u1,u2,u3}={u1,u2,u3}. Assign the value {u1,u2,u3} to L'.
[0056] 3-5. Since the number of vertices in L' is 3, which is greater than 2, the original graph G, which is stored according to the adjacency list, will be assigned to G'.
[0057] 3-6. Assign the vertices in set R to R';
[0058] 3-7. Traverse each vertex v in set C c If set L' is v c A subset of the set of neighbors of v, then v c Add to R'; if set L' and v c If the neighbor sets of v have an intersection, then v c Add it to C'. Other vertices that do not meet the conditions are left unprocessed, resulting in R' = {v1} and C' = {v2, v3, v4}.
[0059] 3-8. Determine whether there exists a vertex v in set V other than R∪C. x Make the set L' be v x If a subset of the neighbor set does not exist, proceed to step 3-9; otherwise, proceed to step 3-10.
[0060] 3-9. Output the maximal biclique (L', R'). Recursively execute the function BicliqueFind(L', R', C', G');
[0061] 3-10. Remove vertex v1 from set C and proceed to step 3-2.
[0062] As shown in step (4), output the count results of all maximal bisectors or maximal bisectors that are suspicious transactions to the user.
[0063] according to Figure 4 As shown, the calculations for nodes p, q, r, s, and y are based on the adjacency list, while the calculations for nodes t, w, x, z, z1, w1, and x1 utilize dynamically generated bitmaps to improve computational efficiency. In actual deployment, it is recommended to set the threshold t in step (2) to 32, so that the neighbors of each vertex can be represented by an integer variable, thereby reducing the use of storage space and accelerating the calculation process through bitwise operations, helping to detect most suspicious transactions as early as possible, and improving the detection rate and speed of suspicious transactions.
[0064] Example 2
[0065] In social network scenarios, maximal bicliques, based on bipartite graphs composed of users and their interests, maximally describe the shared interests of user groups. Maximal biclique enumeration can better assist social recommendation systems. By discovering strong connections between users, the system can recommend other users with similar interests, thereby increasing social interaction and user satisfaction. Specifically, a recommendation method for a social recommendation system utilizing a hybrid storage-based maximal biclique enumeration method includes the following steps:
[0066] As shown in step (1), the bipartite graph G0 is obtained using the maximal biclique enumeration method based on hybrid storage. In this embodiment, the bipartite graph in the social network scenario is composed of users and interests.
[0067] As shown in step (2), a threshold t is set. This threshold determines how the subgraph is stored during runtime. If the number of vertices in U is greater than t, G0 uses an adjacency list for storage; otherwise, G0 uses a bitmap for storage.
[0068] As shown in step (3), with U, V and G0 are used as the initial parameters of the function. The BicliqueFind function is recursively called to generate a search tree.
[0069] As shown in step (4), output all maximal binary groups, i.e. user groups with the greatest similar interests and interest categories, and make mutual recommendations among users or recommend interests that the current user has not followed based on the maximal binary groups.
[0070] This invention employs a hybrid storage method that retains the low storage space overhead of adjacency list storage while combining the computational efficiency of bitmap storage. This significantly improves the execution speed of the binary clique enumeration task, enhances the recommendation speed and accuracy of the social recommendation system, and thus increases social interaction and user satisfaction.
[0071] Example 3
[0072] In gene analysis, maximal diclases describe the determining role of the same set of genes in a set of traits. Enumerating maximal diclases can better help biologists understand the relationship between genes and traits. By analyzing the connection patterns between different genes, the interactions between genes and their combined effects on trait expression can be revealed. This maximal diclase-based analysis method can provide a more comprehensive and in-depth perspective on gene function research, helping scientists to further analyze protein-protein interaction networks. Specifically, a gene-trait relationship analysis method using a hybrid storage-based maximal diclase enumeration method includes the following steps:
[0073] As shown in step (1), the bipartite graph G0 is obtained using the maximal bicluster enumeration method based on hybrid storage. In this embodiment, it is a bipartite graph of genes and traits in a gene analysis scenario;
[0074] As shown in step (2), a threshold t is set. This threshold determines how the subgraph is stored during runtime. If the number of vertices in U is greater than t, G0 uses an adjacency list for storage; otherwise, G0 uses a bitmap for storage.
[0075] As shown in step (3), with U, V and G0 are used as the initial parameters of the function. The BicliqueFind function is recursively called to generate a search tree.
[0076] As shown in step (4), all genes and traits with the largest dichotomies, i.e. the largest connections, are output to the user.
[0077] This invention employs a hybrid storage method that retains the low storage overhead of adjacency list storage while combining the computational efficiency of bitmap storage. This significantly improves the execution speed of bicluster enumeration tasks, enhances the speed and accuracy of gene-trait relationship analysis, helps scientists further conduct protein-protein interaction network analysis, facilitates accurate prediction of the impact of gene variations on traits, and provides important guidance for disease research, genetic engineering, and other fields.
[0078] The embodiments described above provide a detailed explanation of the technical solutions and beneficial effects of the present invention. It should be understood that the above descriptions are merely specific embodiments of the present invention and are not intended to limit the present invention. Any modifications, additions, and equivalent substitutions made within the scope of the principles of the present invention should be included within the protection scope of the present invention.
Claims
1. A maximal biclique enumeration method based on hybrid storage, characterized in that, The runtime graph structure and subgraph structure are stored using a combination of adjacency lists and bitmaps to improve the efficiency of maximal biclique enumeration; specifically, the following steps are included: (1) Obtain the bipartite graph G0 (U, V, E), where U and V are two disjoint vertex sets in the bipartite graph and E is the edge set; the bipartite graph includes the bipartite graph of genes and traits in the gene analysis scenario, the bipartite graph composed of users and products in the e-commerce scenario, or the bipartite graph composed of users and interests in the social network scenario. (2) Set a threshold t to determine the storage method of the subgraph during runtime; if the number of vertices in U is greater than t, then G0 uses an adjacency list for storage; otherwise, G0 uses a bitmap for storage. (3) Using U, ∅, V, and G0 as initial parameters, recursively call the BicliqueFind(L,R,C,G) function, which includes the following sub-steps: 3-1. Obtain the four parameters L, R, C, and G corresponding to the current enumeration tree node: L=U, R=∅, C=V, G=G0; 3-2. Determine if set C is empty. If yes, exit the function; otherwise, proceed to step 3-3. 3-3. Create a copy (L', R', C', G') of the current enumeration tree node (L,R,C,G); 3-4. Select a vertex v from set C, calculate the intersection of set L and the neighbor set of vertex v, and assign the result to L'; 3-5. Determine whether the number of vertices in L is greater than t and the number of vertices in L' is less than or equal to t at the same time; if so, construct a sub-bitmap based on the neighbors of all vertices in L' and assign it to G'; otherwise, assign the original graph G, which is stored according to the adjacency list, to G'. 3-6. Assign the vertices in set R to R'; 3-7. Traverse each vertex v in set C c If set L' is v c A subset of the set of neighbors of v, then v c Add to R'; if set L' and v c If the neighbor sets of v have an intersection, then v c Add to C'; 3-8. Determine whether there exists a vertex v in set V other than R∪C. x Make the set L' be v x If a subset of the neighbor set is found, proceed to step 3-10; otherwise, proceed to step 3-9. 3-9. Output a maximal biclique (L', R'); recursively execute the function BicliqueFind(L', R', C', G'); 3-10. Remove vertex v from set C, and proceed to step 3-2; (4) Output the count results of all maximal cliques or maximal cliques to the user.
2. The maximal bicluster enumeration method based on hybrid storage according to claim 1, characterized in that, The value of t is set to 32.