Community search implementation method and device, medium and equipment
By adopting the (l,k,θ)-truss structural model in the dynamic attribute network, the problem of insufficient accuracy of community search in the dynamic attribute network is solved, and more accurate community search is achieved, making full use of the multi-dimensional information of the network.
Patent Information
- Application Number
- CN202411961827.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-30
- Publication Date
- 2025-04-25
- Estimated Expiration
- 2044-12-30
AI Technical Summary
The prior art has insufficient accuracy in community search in dynamic attribute networks, and has failed to fully consider the angle of the node being query-driven and the dynamic changes of edges in the network.
The (l,k,θ)-truss structure model is used for community search. By constructing a multiple graph model of a dynamic attribute network, dividing time snapshots, calculating the support degree of edges, deleting dynamic edges that do not meet the conditions, and integrating nodes based on the search score threshold, the (l,k,θ)-truss structure model is obtained to determine the result community.
It improves the accuracy of community search, and can more accurately search the community where the query node is located in the dynamic attribute network, making full use of the network topology, time information and attribute information.
Smart Images

Figure CN119884476A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of Internet technology, and in particular to a method, device, medium and equipment for implementing community search. Background Art
[0002] With the development of computer science, sociology, biology and other disciplines, more and more real networks are abstracted into graph structures in response to the increasing amount of information data. In recent years, complex network analysis has proposed network community discovery, that is, revealing the clustering characteristics of closely connected groups within but sparsely connected groups. However, the scale of complex networks in the real world is gradually increasing, and the information of the global network is often difficult to obtain, or the computational complexity of global community discovery is too high. Community search research has attracted the attention of some scholars. Community search is a query-oriented community discovery problem. It starts from a given node and searches for the target community containing the given node. Compared with global community discovery, its advantage lies in high efficiency, and it can find the community where a given node is located according to user needs.
[0003] Community search is applicable to different types of networks, such as static networks, dynamic networks, attribute networks, etc. Static networks abstract real networks into graphs, with entities as nodes and connections between entities as edges, and nodes and edges remain constant. However, in real networks, entities and connections between them often increase, decrease, or have more complex changes over time. For example, in email networks, the two parties who send and receive emails are nodes, and the behavior of sending and receiving emails as connections constitutes the edge between the two nodes. This connection is not constant and will change over time; in citation networks, scientific research papers are nodes, and the citation relationship between papers establishes edges. Papers are published over time, citation relationships increase, and nodes and edges also increase over time. In these cases, nodes and edges change dynamically over time, which is called a dynamic network. A dynamic network is a graph that contains time information and whose nodes and edges change over time. In the past few years, community search for dynamic networks has received increasing attention. This research is essentially about obtaining communities that can persist for a period of time from dynamic networks. Dynamic networks are more in-depth and more appropriate models of the real world than static networks. Based on the dynamic network, the graph with attribute information on nodes and edges is called a dynamic attribute network. The rich attribute information carried by the network contains the characteristic description of the entities in the network, making the abstract network more closely aligned with the real network and the community division results more accurate. For example, in a shopping network, users and products are entities, and the behavior of users purchasing products is an edge. Users are more likely to purchase other products with the same or similar attributes as the current purchased products. Dynamic attribute networks contain more attribute information than dynamic networks. The more different types of information a network contains, the more it can simulate the real network, which helps community search results to be closer to the network characteristics of the real world.
[0004] Community search in the network can not only help people analyze the structure, function and rules of the network, but also accurately search for relevant nodes according to user needs, helping users find the required information data or resources according to their interests, requirements and goals. This personalized search service greatly improves the efficiency and quality of information acquisition. When community search is regarded as a technology, we can apply it to commercial advertising delivery, product recommendation system, spam prediction, etc. Community search has high application value and practical significance.
[0005] There have been many algorithms studied for community search in static networks, such as the M and R algorithms based on local modularity, the random walk and its extension algorithms, the local spectrum-based algorithms, etc. However, these methods only use topological structures for community search, and further research is still needed on dynamic attribute networks. Currently, there is little work on community search for dynamic attribute networks, such as the community search algorithm based on the time activity preference weight model ATAC and the CSAC algorithm driven by attribute sets. These algorithms have different focuses, and the disadvantage is that they do not consider the dynamic changes of edges in the network from the perspective of node-driven queries, and the search accuracy is insufficient. Summary of the invention
[0006] In view of this, the present application provides a community search method, apparatus, medium and device, the main purpose of which is to improve the accuracy of community search.
[0007] According to one aspect of the present application, a community search method is provided, which performs community search based on a (l, k, θ)-truss structure for a dynamic attribute network, and the method comprises:
[0008] Based on the complex network dataset, a multi-graph model of a dynamic attribute network is constructed, and the specified parameters l, k and θ are input, where l represents the sequence length threshold, k represents the support threshold, and θ represents the search score threshold;
[0009] Determine the time span according to the extreme difference of edge timestamps in the network and divide the multi-graph model into different time snapshots;
[0010] In each time snapshot, calculate the number of triangles that each edge participates in forming in the current time snapshot as the support of the edge, traverse each dynamic edge, and cyclically delete dynamic edges whose support is less than k or does not satisfy the existence in the continuous time snapshots of length l;
[0011] Based on the search score threshold θ, the remaining nodes of all time snapshots are integrated to obtain the (l, k, θ)-truss structural model, and the induced subgraph of the (l, k, θ)-truss structural model in the original multi-graph model G is taken as the result community.
[0012] In one implementation, constructing a multiple graph model of a dynamic attribute network includes:
[0013] A multi-graph model (V, E, A, Σ) of the dynamic attribute network G is constructed, where V represents the set of all nodes and |V| represents the number of nodes. E represents the dynamic edges between nodes, where E = {(u, v, T) |u, v∈V}, u and v represent the nodes belonging to V, T represents the set of timestamps t of the edges formed by nodes u and v, any edge in E is represented as e(u, v, t), the triple (u, v, t) represents a dynamic edge, and there are multiple edges with the same or different timestamps between two nodes. A represents the set of attributes of all nodes in the graph, Σ represents the mapping method of mapping a set of attributes a(u) to the corresponding node u, and a(u) represents the attribute group of node u.
[0014] In one implementation, determining the time span according to the range of edge timestamps in the network and dividing the multiple graph models into different time snapshots includes:
[0015] Given a continuous time period td = [t s ,t e ](t s ,t e ∈T,t s ≤t e ), determine the subgraph S of graph G as the time snapshot of G in time period td, that is, S = (V td ,E td ,A,Σ), where [t s ,t e ] represents the time period from the start time to the end time, V td ∈V represents the set of nodes existing in the time period td, E td ={(u,v,T i )|u,v∈V,T i ∈T} represents the dynamic edge set existing in the time period td;
[0016] Count the timestamps of all edges, subtract the minimum from the maximum timestamp to get the range, select the timestamp unit, start from the minimum timestamp, divide the timestamps into multiple groups by unit time, determine that each group of timestamps corresponds to a time snapshot, and store the index number of the divided time snapshot in the corresponding dynamic edge.
[0017] In one implementation, in each time snapshot, calculating the number of triangles formed by each edge in the current time snapshot as the support of the edge includes:
[0018] Traverse all dynamic edges e(u,v,t) in sequence, and for the currently visited dynamic edge, obtain the time snapshot index number of the edge. In the time snapshot, obtain the common neighbor node set N of the two end points u and v of the dynamic edge e(u,v,t);
[0019] Initialize the support sup(u,v,t) of e(u,v,t) to 0, traverse the set N, and for each element n in the set N, determine whether the dynamic edges e1(u,n,t1) and e2(v,n,t2) exist in the current time snapshot. If they do, calculate the support of e(u,v,t) using the following formula:
[0020] sup(u,v,t)=num(u,n,T1)*num(v,n,T2)
[0021] Where, T1 represents the timestamp set of the dynamic edges formed by the current time snapshot nodes u and n, and num(u,n,T1) represents the number of dynamic edges formed by the current time snapshot nodes u and n; T2 represents the timestamp set of the dynamic edges formed by the current time snapshot nodes v and n, and num(v,n,T2) represents the number of dynamic edges formed by the current time snapshot nodes v and n;
[0022] After obtaining the support of e(u,v,t), end the current visit, accumulate all sup(u,v,t) obtained by the traversal, and end the traversal of the set N;
[0023] After repeating the above operations for all visited dynamic edges, the traversal of all dynamic edges is completed and the support degree of each dynamic edge is obtained.
[0024] In one implementation, traversing each dynamic edge and cyclically deleting dynamic edges whose support is less than k or do not satisfy the requirement of existing in continuous time snapshots of length l includes:
[0025] Traverse all dynamic edges e(u,v,t) in sequence. For the currently visited dynamic edge, find and remove the dynamic edges formed by all nodes u and v in the graph. Compare the support of all dynamic edges with the parameter k. If the support is greater than or equal to k, take out the time snapshot index number of the dynamic edge and store it in set I. Calculate the longest subsequence of set I, store its longest subsequence and the length of the longest subsequence in all the dynamic edges just visited. Repeat the above operation for all visited dynamic edges and end the traversal of all dynamic edges.
[0026] Traverse all dynamic edges e(u,v,t) in sequence. For the currently visited dynamic edge, determine whether its support is less than k. If so, store the edge in the queue to be deleted Delete and delete it from the graph. If it is greater than or equal to k, determine whether the longest subsequence length is less than the parameter l. If so, store the edge in the queue to be deleted Delete and delete it from the graph. Repeat the above operation for all visited dynamic edges and end the traversal of all dynamic edges.
[0027] Access the dynamic edge elements in the queue Delete, and for each dynamic edge e(u,v,t), obtain the common neighbor node set N of the two end points u and v of the dynamic edge e(u,v,t). For each element n in the set N, calculate the support sup(u,n) of the dynamic edge formed by nodes u and n and the support sup(v,n) of the dynamic edge formed by nodes v and n, that is:
[0028] sup(u,n,T1)-=num(u,v,T0)*num(v,n,T2)
[0029] sup(v,n,T2)-=num(u,v,T0)*num(u,n,T1)
[0030] Where T0, T1, and T2 represent the timestamp sets of the dynamic edges formed by the current snapshot nodes u, v, u, n, and v, n, respectively; num(u, v, T0), num(u, n, T1), and num(v, n, T2) represent the number of dynamic edges formed by the current snapshot nodes u, v, u, n, and v, n, respectively;
[0031] Compare sup(u,n,T1) with k. If it is less than k, remove the time snapshot of edge (u,n,T1) from the time snapshot index number set I of the dynamic edge, and recalculate the longest subsequence and the longest subsequence length of set I. If the longest subsequence length is less than the parameter l, add the edge to the queue to be deleted Delete and delete the edge from the graph. Perform the above operation on sup(v,n,T2) in the same way.
[0032] Perform the above operations on all elements and end the traversal of the set N;
[0033] If Delete is not an empty queue, repeat the above operation until Delete is empty, and obtain the processed graph H.
[0034] In one implementation, the step of integrating the remaining nodes of all time snapshots based on the search score threshold θ includes:
[0035] Starting from the query node, traverse the remaining nodes in a breadth-first manner. For each visited node v, traverse its neighboring nodes, calculate the attribute affinity P of node v relative to each visited neighboring node n, and calculate the search score Score of v to n;
[0036] The calculated Score is compared with the search score threshold θ, and nodes with a Score not less than θ are retained.
[0037] In one implementation, the search score Score of v for n is calculated by the following formula:
[0038] Score(u,v)=weight(u,v)*P(u,v)
[0039] Among them, Score(u,v) represents the search score of node u for node v, weight(u,v) represents the frequency of the number of times the edge formed by nodes u and v appears in the graph, and P(u,v) represents the closeness of node u to node v;
[0040]
[0041] Among them, A and B represent the attribute sets of nodes u and v respectively, |A| represents the number of attributes of node u, |A∩B| represents the number of attributes of nodes u and v that are the same, |AB| represents the number of attributes of nodes u and v that are different, and P(u,v) represents the attribute proximity of node u to node v.
[0042] According to one aspect of the present application, a community search device is provided, which performs community search based on a (l, k, θ)-truss structure for a dynamic attribute network, and the device includes:
[0043] A multiple graph model building unit is used to build a multiple graph model of a dynamic attribute network based on a complex network data set, and inputs specified parameters l, k and θ, where l represents a sequence length threshold, k represents a support threshold, and θ represents a search score threshold;
[0044] The time snapshot division unit is used to determine the time span according to the extreme difference of edge timestamps in the network and divide the multi-graph model into different time snapshots;
[0045] The dynamic edge deletion unit is used to calculate the number of triangles formed by each edge in the current time snapshot as the support of the edge in each time snapshot, traverse each dynamic edge, and cyclically delete the dynamic edges whose support is less than k or does not meet the requirement of existing in the continuous time snapshots of length l;
[0046] The result determination unit is used to integrate the remaining nodes of all time snapshots based on the search score threshold θ to obtain the (l, k, θ)-truss structural model, and the induced subgraph of the (l, k, θ)-truss structural model in the original multi-graph model G is used as the result community.
[0047] According to one aspect of the present application, a storage medium is provided, in which a computer program is stored, wherein the computer program is configured to execute the above method when running.
[0048] According to one aspect of the present application, an electronic device is provided, including a memory and a processor, wherein a computer program is stored in the memory, and the processor is configured to run the computer program to execute the above method.
[0049] By means of the above technical scheme, the present application provides a community search method, apparatus, medium and equipment. First, a multi-graph model of a dynamic attribute network is constructed, and specified parameters l, k and θ are input; then, the time span is determined according to the extreme difference of the edge timestamps in the network, and the multi-graph model is divided into different time snapshots; then, in each time snapshot, the number of triangles formed by each edge in the current time snapshot is calculated as the support of the edge, each dynamic edge is traversed, and the dynamic edges whose support is less than k or do not meet the requirements of continuous time snapshots of length l are cyclically deleted; finally, the remaining nodes of all time snapshots are integrated based on the search score threshold θ to obtain a (l, k, θ)-truss structure model, and the induced subgraph of the (l, k, θ)-truss structure model in the original multi-graph model G is used as the result community.
[0050] It can be seen that the (l, k, θ)-truss community search method for dynamic attribute networks provided by this application constructs a multi-graph model based on the dynamic attribute network, combines the network's topological structure, time information and attribute information, constructs a (l, k, θ)-truss model, and searches for the community where the query node is located according to the model definition. This application makes full use of the characteristics of dynamic attribute networks, analyzes network structure and information representation, integrates the network's topological structure, edge time information and node attribute information, constructs a (l, k, θ)-truss structural model, and uses the model and constraints to accurately search for the community where the query node is located.
[0051] The above description is only an overview of the technical solution of the present application. In order to more clearly understand the technical means of the present application, it can be implemented in accordance with the contents of the specification. In order to make the above and other purposes, features and advantages of the present application more obvious and easy to understand, the specific implementation methods of the present application are listed below. BRIEF DESCRIPTION OF THE DRAWINGS
[0052] The drawings described herein are used to provide a further understanding of the present application and constitute a part of the present application. The illustrative embodiments of the present application and their descriptions are used to explain the present application and do not constitute an improper limitation on the present application. In the drawings:
[0053] Figure 1 A flowchart of a community search method provided by an embodiment of the present application is shown;
[0054] Figure 2 A schematic diagram of a (l, k, θ)-truss community search method for a dynamic attribute network provided in an embodiment of the present application is shown;
[0055] Figure 3 An example diagram of a dynamic attribute network provided by an embodiment of the present application is shown;
[0056] Figure 4 A schematic diagram showing an example of a time snapshot provided by an embodiment of the present application is shown;
[0057] Figure 5 A schematic diagram of the search phase of the (l, k, θ)-truss community search method for dynamic attribute networks provided in an embodiment of the present application is shown;
[0058] Figure 6 A schematic diagram of the structure of a community search device provided in an embodiment of the present application is shown. DETAILED DESCRIPTION
[0059] In order to enable those skilled in the art to better understand the present application, the technical solutions in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are only embodiments of a part of the present application, not all embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in the field without creative work should fall within the scope of protection of the present application. It should be noted that the embodiments in the present application and the features in the embodiments can be combined with each other without conflict.
[0060] Among the existing solutions, there is a method of using k-truss for community search. k-truss is a structure for finding cohesive subgraphs in a graph, and its definition is based on the triangles in the graph. Specifically, k-truss is a maximal subgraph of the graph G, in which the support of each edge is greater than or equal to k-2. The support here refers to the number of edges e contained in k triangles. The definition of k-truss can be simplified to the support of each edge being greater than or equal to k. In k-truss, each edge is contained in at least (k-2) triangles, which means that the subgraph has a higher density and connectivity. However, the method of performing community search based on k-truss only considers the impact of the support of each edge in the graph on the model, without fully considering the constraints of other dimensions on the model.
[0061] Therefore, an embodiment of the present application proposes a (l, k, θ)-truss community search method for dynamic attribute networks, wherein l, k, and θ in (l, k, θ)-truss represent length, support, and search score, respectively. Therefore, through the comprehensive consideration of the above multiple dimensions, the dynamic changes of edges in the network are considered from the perspective of node-driven query, which can make community search more accurate and efficient.
[0062] See also Figure 1 , is a flow chart of a community search method provided in an embodiment of the present application, comprising the following steps:
[0063] Step 1: Based on the complex network data set, a multi-graph model G(V, E, A, Σ) of a dynamic attribute network is constructed, and the specified parameters l, k and θ are input, where l represents the sequence length threshold, k represents the support threshold, and θ represents the search score threshold;
[0064] Step 2: Determine the time span according to the range of edge timestamps in the network and divide the multi-graph model into different time snapshots;
[0065] Step 3: In each time snapshot, calculate the number of triangles that each edge participates in forming in the current time snapshot as the support of the edge;
[0066] Step 4: traverse each dynamic edge and cyclically delete the dynamic edges whose support is less than k or do not exist in the continuous time snapshots of length l;
[0067] Step 5: Integrate the remaining nodes of all time snapshots: Start from the query node and perform breadth-first traversal to retain the nodes that meet the search score threshold θ, thus obtaining the (l, k, θ)-truss structure model;
[0068] Step 6: Take the induced subgraph of the (l, k, θ)-truss structural model in the original multi-graph model G as the result community.
[0069] As a specific example, in step 1, a multi-graph model G(V, E, A, Σ) of a dynamic attribute network is constructed based on a complex network dataset, and the user-specified parameters l, k and θ are input as follows:
[0070] In the dynamic attribute network G, a multi-graph model G(V,E,A,Σ) is constructed. In it, V represents the set of all nodes, |V| represents the number of nodes; E represents the dynamic edges between nodes, and E={(u,v,T)|u,v∈V}, u,v represent the nodes belonging to V, T represents the set of time stamps t of the edge formed by nodes u and v, and an edge in E can be represented as e(u,v,t), and the triple (u,v,t) represents a dynamic edge. There can be multiple edges with the same or different time stamps between two nodes; A represents the attribute set of all nodes in the graph, Σ represents the mapping method of mapping a set of attributes a(u) to the corresponding node u, and a(u) represents the attribute group of node u.
[0071] As a specific example, in step 2, the time span is determined according to the range of edge timestamps in the network, and the multi-graph model is divided into different time snapshots, as follows:
[0072] Given a continuous time period td = [t s ,t e ](t s ,t e ∈T,t s ≤t e ), the subgraph S of graph G is called the time snapshot of G in time period td, that is, S = (V td ,E td ,A,Σ). Among them, [t s ,t e ] represents the time period from the start time to the end time. td ∈V represents the set of nodes that exist in the time period td. td ={(u,v,T i )|u,v∈V,T i ∈T} represents the dynamic edge set existing in the time period td.
[0073] Count the timestamps of all edges, subtract the minimum from the maximum timestamp to get the range, convert the time into seconds, minutes, hours, days, weeks, months, and years according to the Unix timestamp method, select the appropriate unit, and divide the timestamps into multiple groups based on the selected unit, starting from the minimum timestamp. Each group of timestamps belongs to a time snapshot, and store the index number of the divided time snapshot in the corresponding dynamic edge. A dynamic edge can only exist in one time snapshot.
[0074] As a specific example, in step 3, in each time snapshot, the number of triangles and edge support of each edge in the current time snapshot are calculated, as follows:
[0075] Traverse all dynamic edges e(u,v,t) in sequence, and for the currently visited dynamic edge, obtain the time snapshot index number of the edge. In this time snapshot, obtain the common neighbor node set N of the two end points u and v of the dynamic edge e(u,v,t); initialize the support sup(u,v,t) of e(u,v,t) to 0, traverse the set N, and for each element n in the set N, determine whether the dynamic edges e1(u,n,t1) and e2(v,n,t2) exist in the current time snapshot. If so, calculate the support of e(u,v,t), the formula is:
[0076] sup(u,v,t)=num(u,n,T1)*num(v,n,T2)
[0077] Where T1 represents the timestamp set of the dynamic edges formed by the current snapshot nodes u and n, and num(u,n,T1) represents the number of dynamic edges formed by the current snapshot nodes u and n. The same is true for T2 and num(v,n,T2).
[0078] After obtaining the support of e(u,v,t), the current access is terminated, and all sup(u,v,t) obtained by the traversal are accumulated to terminate the traversal of the set N. After repeating the above operation for all visited dynamic edges, the traversal of all dynamic edges is terminated. In this way, the support of each dynamic edge can be obtained.
[0079] As a specific example, in step 4, traverse each dynamic edge and cyclically delete the dynamic edges whose support is less than k or do not exist in the continuous time snapshot of length l, as follows:
[0080] First, traverse all dynamic edges e(u,v,t) in turn. For the currently visited dynamic edge, find and remove the dynamic edges formed by all nodes u and v in the graph. Compare the support of all dynamic edges with the parameter k. If the support is greater than or equal to k, take out the time snapshot index number of the dynamic edge and store it in set I. Calculate the longest subsequence of set I, and store its longest subsequence and the longest subsequence length in all the dynamic edges just visited. After repeating the above operation for all visited dynamic edges, the traversal of all dynamic edges is completed.
[0081] Then, all dynamic edges e(u,v,t) are traversed in sequence. For the currently visited dynamic edge, determine whether its support is less than k. If so, store the edge in the queue to be deleted and delete it from the graph. If it is greater than or equal to k, determine whether the longest subsequence length is less than the parameter l. If so, store the edge in the queue to be deleted and delete it from the graph. After repeating the above operation for all visited dynamic edges, the traversal of all dynamic edges is completed.
[0082] Then access the elements in the queue Delete, and for each element, i.e., the dynamic edge e(u,v,t), obtain the common neighbor node set N of the two end points u and v of the dynamic edge e(u,v,t). For each element n in the set N, calculate the support sup(u,n) of the dynamic edge formed by nodes u and n and the support sup(v,n) of the dynamic edge formed by nodes v and n, that is:
[0083] sup(u,n,T1)-=num(u,v,T0)*num(v,n,T2)
[0084] sup(v,n,T2)-=num(u,v,T0)*num(u,n,T1)
[0085] Among them, T0 represents the timestamp set of the dynamic edges formed by the current snapshot nodes u and v, and num(u,v,T0) represents the number of dynamic edges formed by the current snapshot nodes u and v. The same is true for T1, T2, num(u,n,T1), and num(v,n,T2).
[0086] After calculation, compare sup(u,n,T1) and k. If it is less than k, remove the time snapshot of edge (u,n,T1) from the time snapshot index number set I of the dynamic edge, and recalculate the longest subsequence and the longest subsequence length of set I. If the longest subsequence length is less than the parameter l, add the edge to the queue to be deleted Delete and delete the edge from the graph. Perform the above operation on sup(v,n,T2). Perform the above operation on all n and end the traversal of set N. If Delete is not an empty queue, repeat the above operation. Until Delete is empty, the processed graph H is obtained.
[0087] As a specific example, in step 5, starting from the query node, the remaining nodes in step S4 are traversed in a breadth-first manner. For each visited node v, its neighbor nodes are traversed, and the attribute proximity P of node v relative to the neighbor node n visited each time is calculated. The search score Score of v to n is calculated, and the formula is as follows:
[0088]
[0089] Among them, A and B represent the attribute sets of nodes u and v respectively, |A| represents the number of attributes of node u, |A∩B| represents the number of attributes of nodes u and v that are the same, |AB| represents the number of attributes of nodes u and v that are different, and P(u,v) represents the attribute proximity of node u to node v.
[0090] Score(u,v)=weight(u,v)*P(u,v)
[0091] Among them, Score(u,v) represents the search score of node u for node v, weight(u,v) represents the frequency of the number of times the edge formed by nodes u and v appears in the graph, and P(u,v) represents the closeness of node u to node v. Then, by comparing the values of Score and θ, nodes with a score not less than θ (attribute closeness) are retained to form a (l,k,θ)-truss structure. The obtained (l,k,θ)-truss structure is used as the induced subgraph in the original multi-graph model G as the result community output.
[0092] In summary, the technical contributions of the embodiments of the present application include at least two aspects:
[0093] 1. Propose a (l, k, θ)-truss structure model that integrates the network topology, time information in the network, and node attribute information;
[0094] 2. A (l, k, θ)-truss community search algorithm for dynamic attribute networks is proposed. It is driven by query nodes and can accurately and quickly search the community where the query node is located.
[0095] The present application scheme is further described in detail below in conjunction with the accompanying drawings and specific embodiments.
[0096] Combination Figure 2 , showing a schematic diagram of a (l, k, θ)-truss community search method for a dynamic attribute network, comprising the following steps:
[0097] Step 1: Based on the complex network dataset, construct a multi-graph model G of the dynamic attribute network and input the user-specified parameters l, k and θ as follows:
[0098] In the dynamic attribute network G, a multi-graph model G(V,E,A,Σ) is constructed. V represents the set of all nodes, and |V| represents the number of nodes. E represents the dynamic edges between nodes, and E={(u,v,T)|u,v∈V}, where u and v represent nodes belonging to V, and T represents the set of timestamps t of the edges formed by nodes u and v. An edge in E can be represented as e(u,v,t), and the triple (u,v,t) represents a dynamic edge. There can be multiple edges with the same or different timestamps between two nodes. A represents the attribute set of all nodes in the graph, and Σ represents the mapping method of mapping a set of attributes a(u) to the corresponding node u. a(u) represents the attribute group of node u. Figure 3 The figure shows a multi-graph model G of a dynamic attribute network, where v1, v2, .., v9 represent nodes, numbers such as {1, 2, 3, 4, 5} represent the time when the edge appears, and {A, B, C, D} etc. represent the attribute set of the node.
[0099] Step 2: Determine the time span according to the range of edge timestamps in the network and divide the multi-graph model into different time snapshots, as follows:
[0100] Given a continuous time period td = [t s ,t e ](t s ,t e ∈T,t s ≤t e ), the subgraph S of graph G is called the time snapshot of G in time period td, that is, S = (V td ,E td ,A,Σ). Among them, [t s ,t e ] represents the time period from the start time to the end time. td ∈V represents the set of nodes that exist in the time period td. td ={(u,v,T i )|u,v∈V,T i ∈T} represents the dynamic edge set existing in the time period td.
[0101] Count the timestamps of all edges, subtract the minimum from the maximum timestamp to get the range, convert the time in seconds, minutes, hours, days, weeks, months, and years in sequence according to the Unix timestamp method, select the appropriate unit, and divide the timestamps into multiple groups according to the selected unit, starting from the minimum timestamp. Each group of timestamps belongs to a time snapshot. Store the index number of the divided time snapshot in the corresponding dynamic edge. A dynamic edge can only exist in one time snapshot.
[0102] Step 3: In each time snapshot, calculate the number of triangles and edge support of each edge in the current time snapshot, as follows:
[0103] Traverse all dynamic edges e(u,v,t) in sequence, and for the currently visited dynamic edge, obtain the time snapshot index number of the edge. In this time snapshot, obtain the common neighbor node set N of the two end points u and v of the dynamic edge e(u,v,t); initialize the support sup(u,v,t) of e(u,v,t) to 0, traverse the set N, and for each element n in the set N, determine whether the dynamic edges e1(u,n,t1) and e2(v,n,t2) exist in the current time snapshot. If so, calculate the support of e(u,v,t), the formula is:
[0104] sup(u,v,t)=num(u,n,T1)*num(v,n,T2)
[0105] Where T1 represents the timestamp set of the dynamic edges formed by the current snapshot nodes u and n, and num(u,n,T1) represents the number of dynamic edges formed by the current snapshot nodes u and n. The same is true for T2 and num(v,n,T2).
[0106] After obtaining the support of e(u,v,t), the current access is terminated, and all sup(u,v,t) obtained by the traversal are accumulated to terminate the traversal of the set N. After repeating the above operation for all visited dynamic edges, the traversal of all dynamic edges is terminated. In this way, the support of each dynamic edge can be obtained. Figure 4 (a) shows a time snapshot, where each edge represents a different dynamic edge. The number of triangles formed by the dynamic edge (v1, v4, t0) with node v2 is 6, and the number of triangles formed with node v3 is 4, so the support of the dynamic edge (v1, v4, t0) in the current time snapshot is 10.
[0107] Step 4: Traverse each dynamic edge and delete the dynamic edges whose support is less than k or do not exist in the continuous time snapshot of length l. The details are as follows:
[0108] First, traverse all dynamic edges e(u,v,t) in turn. For the currently visited dynamic edge, find and remove the dynamic edges formed by all nodes u and v in the graph. Compare the support of all dynamic edges with the parameter k. If the support is greater than or equal to k, take out the time snapshot index number of the dynamic edge and store it in set I. Calculate the longest subsequence of set I, and store its longest subsequence and the longest subsequence length in all the dynamic edges just visited. After repeating the above operation for all visited dynamic edges, the traversal of all dynamic edges is completed.
[0109] Then, all dynamic edges e(u,v,t) are traversed in sequence. For the currently visited dynamic edge, determine whether its support is less than k. If so, store the edge in the queue to be deleted and delete it from the graph. If it is greater than or equal to k, determine whether the longest subsequence length is less than the parameter l. If so, store the edge in the queue to be deleted and delete it from the graph. After repeating the above operation for all visited dynamic edges, the traversal of all dynamic edges is completed. Figure 4 The graph shown is divided into four time snapshots, in order S0, S1, S2, and S3, and each edge represents a different dynamic edge. Figure 4 The support of the dynamic edge (v1,v4,t0) in (a) is 10. Figure 4 The support of the dynamic edge (v1,v4,t1) in (b) is 6. Figure 4 The support of the dynamic edge (v1,v4,t2) in (c) is 4. Figure 4 In (d), the support of the dynamic edge (v1, v4, t3) is 3. When the parameter k is set to 6, the longest subsequence of the time snapshot index of the edge (v1, v4, T0) with a support not less than k is 2. When the parameter k is set to 4, the longest subsequence of the time snapshot index of the edge (v1, v4, T0) with a support not less than k is 3.
[0110] Then access the elements in the queue Delete, and for each element, i.e., the dynamic edge e(u,v,t), obtain the common neighbor node set N of the two end points u and v of the dynamic edge e(u,v,t). For each element n in the set N, calculate the support sup(u,n) of the dynamic edge formed by nodes u and n and the support sup(v,n) of the dynamic edge formed by nodes v and n, that is:
[0111] sup(u,n,T1)-=num(u,v,T0)*num(v,n,T2)
[0112] sup(v,n,T2)-=num(u,v,T0)*num(u,n,T1)
[0113] Among them, T0 represents the timestamp set of the dynamic edges formed by the current snapshot nodes u and v, and num(u,v,T0) represents the number of dynamic edges formed by the current snapshot nodes u and v. The same is true for T1, T2, num(u,n,T1), and num(v,n,T2).
[0114] After calculation, compare sup(u,n,T1) and k. If it is less than k, remove the time snapshot of edge (u,n,T1) from the time snapshot index number set I of the dynamic edge, and recalculate the longest subsequence and the longest subsequence length of set I. If the longest subsequence length is less than the parameter l, add the edge to the queue to be deleted Delete and delete the edge from the graph. Perform the above operation on sup(v,n,T2). Perform the above operation on all n and end the traversal of set N. If Delete is not an empty queue, repeat the above operation. Until Delete is empty, the processed graph H is obtained.
[0115] Step 5: Starting from the query node, traverse the remaining nodes in step S4 in a breadth-first manner. For each visited node v, traverse its neighboring nodes, calculate the attribute proximity P of node v relative to each visited neighboring node n, and calculate the search score Score of v to n. The formula is as follows:
[0116]
[0117] Among them, A and B represent the attribute sets of nodes u and v respectively, |A| represents the number of attributes of node u, |A∩B| represents the number of attributes of nodes u and v that are the same, |AB| represents the number of attributes of nodes u and v that are different, and P(u,v) represents the attribute proximity of node u to node v.
[0118] Score(u,v)=weight(u,v)*P(u,v)
[0119] Among them, Score(u,v) represents the search score of node u for node v, weight(u,v) represents the frequency of the number of times the edge formed by nodes u and v appears in the graph, and P(u,v) represents the closeness of node u to node v. Then, by comparing the values of Score and θ, nodes with scores not less than θ are retained to form a (l,k,θ)-truss structure. The obtained (l,k,θ)-truss structure is used as the induced subgraph in the original multi-graph model G as the result community output. Figure 5 The figure shows a schematic diagram of the search process, where v1, v2, .., v9 represent nodes, {A, B, C, D} etc. represent the attribute set of the node, solid arrows represent visits to first-order neighbors, short dashed arrows represent visits to second-order neighbors, short dotted arrows represent visits to third-order neighbors, and dotted arrows represent visits to fourth-order neighbors. Take node v1 as the query node and start the breadth-first traversal, first visit its first-order neighbor nodes v2, v4, v5, and calculate the attribute proximity between the nodes. P(v1,v4)=0=P(v1,v5), then start from the first-order neighbor nodes v2,v4,v5 in order of number, visit the second-order neighbor nodes, and no longer visit the nodes that have been visited, and so on. Then, the search score Score is obtained based on the attribute proximity between nodes and the frequency of the number of times the edge appears in the graph. Finally, the search score Score is compared with the parameter θ, and the nodes with a search score not less than θ are retained, and the (l,k,θ)-truss structure is output as the result community.
[0120] In summary, the (l, k, θ)-truss community search method for dynamic attribute networks provided in the embodiments of the present application constructs a multi-graph model based on the dynamic attribute network, combines the network's topological structure, time information and attribute information, constructs a (l, k, θ)-truss model, and searches for the community where the query node is located according to the model definition. The embodiments of the present application make full use of the characteristics of the dynamic attribute network, analyze the network structure and information representation, integrate the network's topological structure, the time information of the edge and the attribute information of the node, construct a (l, k, θ)-truss structure model, and use the model and constraints to accurately search for the community where the query node is located.
[0121] Corresponding to the above method, the embodiment of the present application also provides a community search device, which performs community search based on the (l, k, θ)-truss structure for dynamic attribute networks, see Figure 6 , the device comprises:
[0122] The multi-graph model construction unit 601 is used to construct a multi-graph model of a dynamic attribute network according to a complex network data set, and input specified parameters l, k and θ, where l represents a sequence length threshold, k represents a support threshold, and θ represents a search score threshold;
[0123] A time snapshot division unit 602 is used to determine the time span according to the range of edge timestamps in the network and divide the multi-graph model into different time snapshots;
[0124] The dynamic edge deletion unit 603 is used to calculate the number of triangles formed by each edge in the current time snapshot as the support of the edge in each time snapshot, traverse each dynamic edge, and cyclically delete the dynamic edges whose support is less than k or does not meet the requirement of being present in the continuous time snapshots of length l;
[0125] The result determination unit 604 is used to integrate the remaining nodes of all time snapshots based on the search score threshold θ to obtain a (l, k, θ)-truss structural model, and use the induced subgraph of the (l, k, θ)-truss structural model in the original multi-graph model G as the result community.
[0126] The specific implementation principle and process of the relevant device can be referred to the above description and will not be repeated here.
[0127] An embodiment of the present application further provides a storage medium, in which a computer program is stored, wherein the computer program is configured to execute the steps of any of the above method embodiments when running.
[0128] Optionally, in this embodiment, the storage medium may be configured to store a computer program for performing the following steps:
[0129] Based on the complex network dataset, a multi-graph model of a dynamic attribute network is constructed, and the specified parameters l, k and θ are input, where l represents the sequence length threshold, k represents the support threshold, and θ represents the search score threshold;
[0130] Determine the time span according to the extreme difference of edge timestamps in the network and divide the multi-graph model into different time snapshots;
[0131] In each time snapshot, calculate the number of triangles that each edge participates in forming in the current time snapshot as the support of the edge, traverse each dynamic edge, and cyclically delete dynamic edges whose support is less than k or does not satisfy the existence in the continuous time snapshots of length l;
[0132] Based on the search score threshold θ, the remaining nodes of all time snapshots are integrated to obtain the (l, k, θ)-truss structural model, and the induced subgraph of the (l, k, θ)-truss structural model in the original multi-graph model G is taken as the result community.
[0133] Optionally, in this embodiment, the above-mentioned storage medium may include but is not limited to: a USB flash drive, a read-only memory (ROM), a random access memory (RAM), a mobile hard disk, a magnetic disk or an optical disk, and other media that can store computer programs.
[0134] An embodiment of the present application further provides an electronic device, including a memory and a processor, wherein a computer program is stored in the memory, and the processor is configured to run the computer program to execute the steps in any one of the above method embodiments.
[0135] Optionally, the electronic device may further include a transmission device and an input / output device, wherein the transmission device is connected to the processor, and the input / output device is connected to the processor.
[0136] Optionally, in this embodiment, the processor may be configured to perform the following steps through a computer program:
[0137] Based on the complex network dataset, a multi-graph model of a dynamic attribute network is constructed, and the specified parameters l, k and θ are input, where l represents the sequence length threshold, k represents the support threshold, and θ represents the search score threshold;
[0138] Determine the time span according to the extreme difference of edge timestamps in the network and divide the multi-graph model into different time snapshots;
[0139] In each time snapshot, calculate the number of triangles that each edge participates in forming in the current time snapshot as the support of the edge, traverse each dynamic edge, and cyclically delete dynamic edges whose support is less than k or does not satisfy the existence in the continuous time snapshots of length l;
[0140] Based on the search score threshold θ, the remaining nodes of all time snapshots are integrated to obtain the (l, k, θ)-truss structural model, and the induced subgraph of the (l, k, θ)-truss structural model in the original multi-graph model G is taken as the result community.
[0141] Optionally, the specific examples in this embodiment may refer to the examples described in the above embodiments and optional implementation modes, and this embodiment will not be described in detail here.
[0142] The serial numbers of the above-mentioned embodiments of the present application are for description only and do not represent the advantages or disadvantages of the embodiments.
[0143] In the above embodiments of the present application, the description of each embodiment has its own emphasis. For parts that are not described in detail in a certain embodiment, please refer to the relevant description of other embodiments.
[0144] In the several embodiments provided in this application, it should be understood that the disclosed technical content can be implemented in other ways. Among them, the device embodiments described above are only schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of units or modules, which can be electrical or other forms.
[0145] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0146] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of software functional units.
[0147] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application, in essence, or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions to enable a computer device (which can be a personal computer, a server or a network device, etc.) to perform all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes: U disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), mobile hard disk, disk or optical disk and other media that can store program codes.
[0148] The above is only a preferred implementation of the present application. It should be pointed out that for ordinary technicians in this technical field, several improvements and modifications can be made without departing from the principles of the present application. These improvements and modifications should also be regarded as the scope of protection of the present application.
Claims
1. A community search method, characterized in that: A community search is performed on a dynamic attribute network based on a (l, k, θ)-truss structure, the method comprising: Based on the complex network dataset, a multi-graph model of a dynamic attribute network is constructed, and the specified parameters l, k and θ are input, where l represents the sequence length threshold, k represents the support threshold, and θ represents the search score threshold; Determine the time span according to the extreme difference of edge timestamps in the network and divide the multi-graph model into different time snapshots; In each time snapshot, calculate the number of triangles that each edge participates in forming in the current time snapshot as the support of the edge, traverse each dynamic edge, and cyclically delete dynamic edges whose support is less than k or does not satisfy the existence in the continuous time snapshots of length l; Based on the search score threshold θ, the remaining nodes of all time snapshots are integrated to obtain the (l, k, θ)-truss structural model, and the induced subgraph of the (l, k, θ)-truss structural model in the original multi-graph model G is taken as the result community.
2. The method according to claim 1, characterized in that The multi-graph model of the dynamic attribute network is constructed, including: A multi-graph model (V, E, A, Σ) of the dynamic attribute network G is constructed, where V represents the set of all nodes and |V| represents the number of nodes. E represents the dynamic edges between nodes, where E = {(u, v, T) |u, v∈V}, u and v represent the nodes belonging to V, T represents the set of timestamps t of the edges formed by nodes u and v, any edge in E is represented as e(u, v, t), the triple (u, v, t) represents a dynamic edge, and there are multiple edges with the same or different timestamps between two nodes. A represents the set of attributes of all nodes in the graph, Σ represents the mapping method of mapping a set of attributes a(u) to the corresponding node u, and a(u) represents the attribute group of node u.
3. The method according to claim 1, characterized in that The time span is determined according to the extreme difference of the edge timestamps in the network, and the multi-graph model is divided into different time snapshots, including: Given a continuous time period td = [t s ,t e ](t s ,t e ∈T,t s ≤t e ), determine the subgraph S of graph G as the time snapshot of G in time period td, that is, S = (V td ,E td ,A,Σ), where [t s ,t e ] represents the time period from the start time to the end time, V td ∈V represents the set of nodes existing in the time period td, E td ={(u,v,T i )|u,v∈V,T i ∈T} represents the dynamic edge set existing in the time period td; Count the timestamps of all edges, subtract the minimum from the maximum timestamp to get the range, select the timestamp unit, start from the minimum timestamp, divide the timestamps into multiple groups by unit time, determine that each group of timestamps corresponds to a time snapshot, and store the index number of the divided time snapshot in the corresponding dynamic edge.
4. The method according to claim 3, characterized in that In each time snapshot, the number of triangles formed by each edge in the current time snapshot is calculated as the support of the edge, including: Traverse all dynamic edges e(u,v,t) in sequence, and for the currently visited dynamic edge, obtain the time snapshot index number of the edge. In the time snapshot, obtain the common neighbor node set N of the two end points u and v of the dynamic edge e(u,v,t); Initialize the support sup(u,v,t) of e(u,v,t) to 0, traverse the set N, and for each element n in the set N, determine whether the dynamic edges e1(u,n,t1) and e2(v,n,t2) exist in the current time snapshot. If they do, calculate the support of e(u,v,t) using the following formula: sup(u,v,t)=num(u,n,T1)*num(v,n,T2) Where, T1 represents the timestamp set of the dynamic edges formed by the current time snapshot nodes u and n, and num(u,n,T1) represents the number of dynamic edges formed by the current time snapshot nodes u and n; T2 represents the timestamp set of the dynamic edges formed by the current time snapshot nodes v and n, and num(v,n,T2) represents the number of dynamic edges formed by the current time snapshot nodes v and n; After obtaining the support of e(u,v,t), end the current visit, accumulate all sup(u,v,t) obtained by the traversal, and end the traversal of the set N; After repeating the above operations for all visited dynamic edges, the traversal of all dynamic edges is completed and the support degree of each dynamic edge is obtained.
5. The method according to claim 1, characterized in that The traversing each dynamic edge and cyclically deleting the dynamic edges whose support is less than k or do not satisfy the requirement of existing in the continuous time snapshots of length l includes: Traverse all dynamic edges e(u,v,t) in sequence. For the currently visited dynamic edge, find and remove the dynamic edges formed by all nodes u and v in the graph. Compare the support of all dynamic edges with the parameter k. If the support is greater than or equal to k, take out the time snapshot index number of the dynamic edge and store it in set I. Calculate the longest subsequence of set I, store its longest subsequence and the length of the longest subsequence in all the dynamic edges just visited. Repeat the above operation for all visited dynamic edges and end the traversal of all dynamic edges. Traverse all dynamic edges e(u,v,t) in sequence. For the currently visited dynamic edge, determine whether its support is less than k. If so, store the edge in the queue to be deleted Delete and delete it from the graph. If it is greater than or equal to k, determine whether the longest subsequence length is less than the parameter l. If so, store the edge in the queue to be deleted Delete and delete it from the graph. Repeat the above operation for all visited dynamic edges and end the traversal of all dynamic edges. Access the dynamic edge elements in the queue Delete, and for each dynamic edge e(u,v,t), obtain the common neighbor node set N of the two end points u and v of the dynamic edge e(u,v,t). For each element n in the set N, calculate the support sup(u,n) of the dynamic edge formed by nodes u and n and the support sup(v,n) of the dynamic edge formed by nodes v and n, that is: sup(u,n,T1)-=num(u,v,T0)*num(v,n,T2) sup(v,n,T2)-=num(u,v,T0)*num(u,n,T1) Where T0, T1, and T2 represent the timestamp sets of the dynamic edges formed by the current snapshot nodes u, v, u, n, and v, n, respectively; num(u, v, T0), num(u, n, T1), and num(v, n, T2) represent the number of dynamic edges formed by the current snapshot nodes u, v, u, n, and v, n, respectively; Compare sup(u,n,T1) with k. If it is less than k, remove the time snapshot of edge (u,n,T1) from the time snapshot index number set I of the dynamic edge, and recalculate the longest subsequence and the longest subsequence length of set I. If the longest subsequence length is less than the parameter l, add the edge to the queue to be deleted Delete and delete the edge from the graph. Perform the above operation on sup(v,n,T2) in the same way. Perform the above operations on all elements and end the traversal of the set N; If Delete is not an empty queue, repeat the above operation until Delete is empty, and obtain the processed graph H.
6. The community search method according to claim 1, characterized in that: The remaining nodes of all time snapshots are integrated based on the search score threshold θ, including: Starting from the query node, traverse the remaining nodes in a breadth-first manner. For each visited node v, traverse its neighboring nodes, calculate the attribute affinity P of node v relative to each visited neighboring node n, and calculate the search score Score of v to n; The calculated Score is compared with the search score threshold θ, and nodes with a Score not less than θ are retained.
7. The method according to claim 6, characterized in that The search score of v for n is calculated by the following formula: Score(u,v)=weight(u,v)*P(u,v) Among them, Score(u,v) represents the search score of node u for node v, weight(u,v) represents the frequency of the number of times the edge formed by nodes u and v appears in the graph, and P(u,v) represents the closeness of node u to node v; Among them, A and B represent the attribute sets of nodes u and v respectively, |A| represents the number of attributes of node u, |A∩B| represents the number of attributes of nodes u and v that are the same, |AB| represents the number of attributes of nodes u and v that are different, and P(u,v) represents the attribute proximity of node u to node v.
8. A community search device, characterized in that: A community search is performed on a dynamic attribute network based on a (l, k, θ)-truss structure, the device comprising: A multiple graph model building unit is used to build a multiple graph model of a dynamic attribute network based on a complex network data set, and inputs specified parameters l, k and θ, where l represents a sequence length threshold, k represents a support threshold, and θ represents a search score threshold; The time snapshot division unit is used to determine the time span according to the extreme difference of edge timestamps in the network and divide the multi-graph model into different time snapshots; The dynamic edge deletion unit is used to calculate the number of triangles formed by each edge in the current time snapshot as the support of the edge in each time snapshot, traverse each dynamic edge, and cyclically delete the dynamic edges whose support is less than k or does not meet the requirement of existing in the continuous time snapshots of length l; The result determination unit is used to integrate the remaining nodes of all time snapshots based on the search score threshold θ to obtain the (l, k, θ)-truss structural model, and the induced subgraph of the (l, k, θ)-truss structural model in the original multi-graph model G is used as the result community.
9. A storage medium, characterized in that: The storage medium stores a computer program, wherein the computer program is configured to execute the method according to any one of claims 1 to 7 when executed.
10. An electronic device comprising a memory and a processor, characterized in that: A computer program is stored in the memory, and the processor is configured to run the computer program to perform the method according to any one of claims 1 to 7.
Citation Information
Patent Citations
Data mining method and system based on big data
CN117891857A
Embedded preference enhanced community search method and system and storage medium
CN118296249A
Community search method and system based on k-trus nested index and storage medium
CN118332200A
Community search method and system based on k-trus nested index and storage medium
CN118885673A
Method for data graph navigation in a big traffic dataset of a network
EP2908471A1