Community search implementation method, device, medium, and apparatus
By constructing a multi-graph model of dynamic attribute networks and utilizing the (l,k,θ)-truss structure, combining topological, temporal, and attribute information, the problem of insufficient accuracy in community search in dynamic attribute networks is solved, and efficient community search is achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- CHANGSHU INSTITUTE OF TECHNOLOGY
- Filing Date
- 2024-12-30
- Publication Date
- 2026-07-07
AI Technical Summary
Existing community search algorithms fail to adequately consider the dynamic changes of nodes in dynamic attribute networks, resulting in insufficient search accuracy.
A multi-graph model of dynamic attribute network is constructed, and community search is performed based on (l,k,θ)-truss structure. By dividing the community by edge support and time snapshot, and combining topological structure, time information and attribute information, the community of the query node is accurately searched.
It improves the accuracy and efficiency of community search, enabling users to quickly find target communities based on their needs, and is suitable for dynamic attribute networks.
Smart Images

Figure CN119884476B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of Internet technology, and in particular to a method, apparatus, medium and device for implementing community search. Background Technology
[0002] With the development of computer science, sociology, biology, and other disciplines, and in response to the ever-increasing amount of information and data, more and more real-world networks are being abstracted into graph structures. In recent years, complex network analysis has proposed community discovery, which reveals the clustering characteristics of networks where connections within groups are tight but connections between groups are sparse. However, as the scale of complex networks in the real world gradually increases, information about the global network is often difficult to obtain, or the computational complexity of global community discovery is too high. Therefore, community search research has attracted the attention of some scholars. Community search is a query-oriented community discovery problem that starts from a given node and searches for target communities containing that node. Compared to global community discovery, its advantages lie in its efficiency and its ability to find the communities containing a given node based on user needs.
[0003] Community search is applicable to different types of networks, such as static networks, dynamic networks, and attribute networks. Static networks abstract real-world networks as graphs, with entities as nodes and relationships between entities as edges, and the nodes and edges remain constant. However, in real-world networks, entities and their relationships often increase, decrease, or undergo more complex changes over time. For example, in email networks, the sender and receiver of emails are nodes, and the act of sending and receiving emails forms the edges between the nodes; these relationships are not constant and change over time. In citation networks, research papers are nodes, and citation relationships between papers establish edges. As papers are published over time, citation relationships increase, and the number of nodes and edges also increases over time. In these cases, the nodes and edges change dynamically over time, which is called a dynamic network. A dynamic network is a graph that incorporates temporal information, and the nodes and edges change continuously over time. In recent years, community search for dynamic networks has received increasing attention. This research essentially aims to obtain communities that can persist over a period of time from dynamic networks. Compared to static networks, dynamic networks are a deeper and more accurate model of the real world. Building upon dynamic networks, a graph where nodes and edges possess attribute information is called a dynamic attribute network. The rich attribute information carried by the network contains characteristic descriptions of the entities within it, making the abstract network more closely resemble real-world networks, resulting in more accurate community partitioning. For example, in a shopping network, users and products are considered entities, and the user's purchase behavior is represented by edges. Users are more likely to purchase other products with the same or similar attributes as the currently purchased product. Dynamic attribute networks contain even more attribute information than dynamic networks. The more diverse the information a network includes, the better it simulates real-world networks, helping community search results to more closely reflect the characteristics of real-world networks.
[0004] Online community search not only helps people analyze the structure, function, and patterns of networks, but also allows for precise searching of relevant nodes based on user needs, helping users find the information, data, or resources they require according to their interests, requirements, and goals. This personalized search service greatly improves the efficiency and quality of information acquisition. As a technology, community search can be applied to business advertising, product recommendation systems, and spam prediction, among other things. Community search has high application value and practical significance.
[0005] Numerous algorithms have been studied for community search in static networks, such as the M and R algorithms based on local modularity, random walk-based algorithms and their extensions, and algorithms based on local spectrum. However, these methods only utilize the topology for community search, and further research is needed on dynamic attribute networks. Current work on community search for dynamic attribute networks is relatively limited, including algorithms based on the Time Activity Preference Weight Model (ATAC) and the CSAC algorithm driven by attribute sets. These algorithms have different focuses, but their shortcoming lies in not considering the dynamic changes of edges in the network from the perspective of node-driven queries, resulting in insufficient search accuracy. Summary of the Invention
[0006] In view of this, this 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 this application, a community search method is provided for community search based on a (l,k,θ)-truss structure in dynamic attribute networks, the method comprising:
[0008] Based on a complex network dataset, a multi-graph model of a dynamic attribute network is constructed, with specified parameters l, k, and θ as input, where l represents the sequence length threshold, k represents the support threshold, and θ represents the search score threshold.
[0009] The time span is determined based on the range of edge timestamps in the network, and the multigraph model is divided into different time snapshots.
[0010] In each time snapshot, calculate the number of triangles formed by each edge in the current time snapshot as the edge's support. Traverse each dynamic edge and iteratively delete dynamic edges with support less than k or that do not exist in consecutive time snapshots of length l.
[0011] Based on the search scoring threshold θ, the remaining nodes of all time snapshots are integrated to obtain the (l,k,θ)-truss structure model. The induced subgraph of the (l,k,θ)-truss structure model in the original multigraph model G is used as the result community.
[0012] In one implementation, the construction of the multigraph model for the dynamic attribute network includes:
[0013] A multi-graph model (V,E,A,Σ) for a dynamic attribute network G is constructed, where V represents the set of all nodes, |V| represents the number of nodes; E represents the dynamic edges between nodes, where E={(u,v,T)|u,v∈V}, u,v represent nodes belonging to V, T represents the set of timestamps t when the edges formed by nodes u,v are connected, any edge in E is represented as e(u,v,t), a 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 a set of attributes a(u) to the corresponding node u, and a(u) represents the attribute set of node u.
[0014] In one implementation, the step of determining the time span based on the range of edge timestamps in the network and dividing the multigraph model into different time snapshots includes:
[0015] Given a continuous time interval td = [t s ,t e ](t s ,t e ∈T,t s ≤t e ), determine that the subgraph S of graph G is a time snapshot of G in time interval td, that is, S = (V td E td ,A,Σ), where, [t s ,t e ] represents the time interval from the start time to the end time, V td ∈V represents the set of nodes that exist within the time interval td, E td ={(u,v,T)} i |u,v∈V,T i ∈T} represents the dynamic edge set that exists within the time interval td;
[0016] Count the timestamps of all edges, subtract the minimum value from the maximum timestamp to get the range, select the timestamp unit, start from the minimum timestamp, divide the timestamps into multiple groups according to the unit time, determine that each group of timestamps corresponds to a time snapshot, and store the index number of the divided time snapshots into the corresponding dynamic edges.
[0017] In one implementation, calculating the number of times each edge participates in forming a triangle in the current time snapshot as the edge's support includes:
[0018] Iterate through all dynamic edges e(u,v,t) in sequence. For the currently visited dynamic edge, obtain the index number of the time snapshot where the edge is located. In this time snapshot, obtain the set N of common neighbor nodes of the two endpoints u and v of the dynamic edge e(u,v,t).
[0019] Initialize the support sup(u,v,t) of e(u) to 0. Iterate through set N. For each element n in set N, check if the dynamic edges e1(u,n,t1) and e2(v,n,t2) exist in the current snapshot. If they exist, 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 set of timestamps for 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; T2 represents the set of timestamps for dynamic edges formed by the current snapshot nodes v and n, and num(v,n,T2) represents the number of dynamic edges formed by the current snapshot nodes v and n.
[0022] After obtaining the support of e(u,v,t), the current visit ends, and all sup(u,v,t) obtained during the traversal are summed to end the traversal of set N;
[0023] Repeat the above operation for all visited dynamic edges, then end the traversal of all dynamic edges and obtain the support of each dynamic edge.
[0024] In one implementation, the step of traversing each dynamic edge and cyclically deleting dynamic edges with support less than k, or those that do not exist in a continuous time snapshot of length l, includes:
[0025] Iterate through all dynamic edges e(u,v,t) sequentially. For the currently visited dynamic edge, find and remove all dynamic edges formed by nodes u and v in the graph. Compare the support of each dynamic edge with the parameter k. If the support is greater than or equal to k, retrieve the snapshot index number of the dynamic edge and store it in set I. Calculate the longest subsequence in set I and store its longest subsequence and its length in all the dynamic edges that were just visited. Repeat the above operation for all visited dynamic edges and then end the traversal of all dynamic edges.
[0026] Iterate through all dynamic edges e(u,v,t) in sequence. For the currently visited dynamic edge, check if its support is less than k. If it is less, store the edge in the deletion queue Delete and delete the edge from the graph. If it is greater than or equal to k, check if the length of the longest subsequence is less than the parameter l. If it is less, store the edge in the deletion queue Delete and delete the edge from the graph. Repeat the above operation for all visited dynamic edges, and then end the traversal of all dynamic edges.
[0027] Access the dynamic edge elements in the Delete queue. For each dynamic edge e(u,v,t), obtain the set N of common neighbor nodes of the two endpoints u and v of the dynamic edge e(u,v,t). For each element n in 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 sets of timestamps for the current snapshot nodes u,v, u,n, and v,n to form dynamic edges, respectively, and 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 sup(u,n,T1) is less than k, remove the time snapshot containing edge (u,n,T1) from the time snapshot index set I of the dynamic edge, and recalculate the longest subsequence and the length of the longest subsequence in set I. If the length of the longest subsequence is less than the parameter l, add the edge to the deletion queue Delete and delete the edge from the graph. Perform the same operation on sup(v,n,T2).
[0032] Perform the above operation on all elements to end the traversal of 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 integration of the remaining nodes from all time snapshots based on the search rating threshold θ includes:
[0035] Starting from the query node, perform a breadth-first traversal of the remaining nodes. For each visited node v, traverse its neighbor nodes, calculate the attribute affinity P of node v relative to each visited neighbor 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 for v against n is calculated using the following formula:
[0038] Score(u,v)=weight(u,v)*P(u,v)
[0039] Where 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 between nodes u and v appears in the graph, and P(u,v) represents the affinity between node u and node v.
[0040]
[0041] Where 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 that nodes u and v have the same, |AB| represents the number of attributes that nodes u and v have different, and P(u,v) represents the attribute affinity of node u to node v.
[0042] According to one aspect of this application, a community search apparatus is provided for performing community search based on a (l,k,θ)-truss structure in dynamic attribute networks, the apparatus comprising:
[0043] The multi-graph model building unit is used to construct a multi-graph model of a dynamic attribute network based on a complex network dataset. The input parameters are specified l, k and θ, where l represents the sequence length threshold, k represents the support threshold and θ represents the search score threshold.
[0044] The time snapshot partitioning unit is used to determine the time span based on the range of edge timestamps in the network, and to divide the multigraph 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 edge support in each time snapshot. It iterates through each dynamic edge and deletes dynamic edges with support less than k or that do not meet the requirement of existing in consecutive 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 scoring threshold θ to obtain the (l,k,θ)-truss structure model, and the induced subgraph of the (l,k,θ)-truss structure model in the original multigraph model G is used as the result community.
[0047] According to one aspect of this application, a storage medium is provided that stores a computer program, wherein the computer program is configured to execute the above-described method at runtime.
[0048] According to one aspect of this application, an electronic device is provided, including a memory and a processor, wherein the memory stores a computer program and the processor is configured to run the computer program to perform the methods described above.
[0049] Using the above technical solution, this application provides a community search method, apparatus, medium, and device. First, a multigraph 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 range of edge timestamps in the network, and the multigraph model is divided into different time snapshots. Next, in each time snapshot, the number of triangles formed by each edge in the current time snapshot is calculated as the edge support. Each dynamic edge is traversed, and dynamic edges with support less than k or that do not meet the requirement of existing in consecutive time snapshots of length l are cyclically deleted. Finally, the remaining nodes of all time snapshots are integrated based on the search scoring threshold θ to obtain the (l,k,θ)-truss structure model. The induced subgraph of the (l,k,θ)-truss structure model in the original multigraph model G is used as the result community.
[0050] As can be seen, the (l,k,θ)-truss community search method for dynamic attribute networks provided in this application constructs a multi-graph model based on the dynamic attribute network. Combining the network's topology, temporal information, and attribute information, it constructs an (l,k,θ)-truss model and searches for the community of a query node based on the model definition. This application fully utilizes the characteristics of dynamic attribute networks, analyzes the network structure and information representation, integrates the network's topology, edge temporal information, and node attribute information to construct an (l,k,θ)-truss structural model. This model and its constraints are then used to accurately search for the community of a query node.
[0051] The above description is only an overview of the technical solution of this application. In order to better understand the technical means of this application and to implement it in accordance with the contents of the specification, and to make the above and other objects, features and advantages of this application more obvious and understandable, the following are specific embodiments of this application. Attached Figure Description
[0052] The accompanying drawings, which are included to provide a further understanding of this application and form part of this application, illustrate exemplary embodiments and are used to explain this application, but do not constitute an undue limitation of this application. In the drawings:
[0053] Figure 1 A flowchart of a community search method provided in an embodiment of this application is shown;
[0054] Figure 2 This illustration shows a schematic diagram of a (l,k,θ)-truss community search method for dynamic attribute networks provided in an embodiment of this application.
[0055] Figure 3 An example diagram of a dynamic attribute network provided in an embodiment of this application is shown;
[0056] Figure 4 This illustration shows a schematic diagram of a time snapshot example provided in an embodiment of this application;
[0057] Figure 5 This illustration shows a schematic diagram of the search phase of the (l,k,θ)-truss community search method for dynamic attribute networks provided in an embodiment of this application.
[0058] Figure 6 A schematic diagram of the structure of a community search device provided in an embodiment of this application is shown. Detailed Implementation
[0059] 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 with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of the present application, and not all of them. Based on the embodiments of the present application, all other embodiments obtained by those skilled in the art without creative effort should fall within the scope of protection of the present application. It should be noted that, unless otherwise specified, the embodiments and features in the embodiments of the present application can be combined with each other.
[0060] Existing solutions employ k-truss for community search. A k-truss is a structure for finding agglomerated subgraphs within a graph. It is defined based on triangles in the graph; specifically, a k-truss is a maximal subgraph of graph G where the support of each edge is greater than or equal to k-2. Here, support refers to the number of times edge e is contained within k triangles. The definition of a k-truss can be simplified to each edge having a support greater than or equal to k. In a k-truss, each edge is contained within at least (k-2) triangles, implying high density and connectivity in the subgraph. However, k-truss-based community search only considers the impact of edge support on the model, without comprehensively considering constraints imposed on the model by other dimensions.
[0061] Therefore, this application proposes a (l,k,θ)-truss community search method for dynamic attribute networks, where l, k, and θ in (l,k,θ)-truss represent length, support, and search score, respectively. Thus, by comprehensively considering the above multi-dimensional aspects and taking the dynamic changes of edges in the network from the perspective of nodes as query drivers, community search can be made more accurate and efficient.
[0062] See Figure 1 The flowchart of the community search method provided in this application embodiment includes the following steps:
[0063] Step 1: Based on the complex network dataset, construct the multi-graph model G(V,E,A,Σ) of the dynamic attribute network, and input the specified parameters l, k and θ, 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 based on the range of edge timestamps in the network, and divide the multigraph model into different time snapshots;
[0065] Step 3: In each time snapshot, calculate the number of triangles each edge participates in in the current time snapshot as the edge support;
[0066] Step 4: Traverse each dynamic edge and delete dynamic edges with a support less than k or that do not exist in the continuous time snapshot of length l.
[0067] Step 5: Integrate the remaining nodes of all time snapshots: Starting from the query node, perform a breadth-first traversal and retain the nodes that meet the search score threshold θ, thereby obtaining the (l,k,θ)-truss structure model.
[0068] Step 6: Use the induced subgraph of the (l,k,θ)-truss structure model in the original multigraph model G as the resulting 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, with user-specified parameters l, k, and θ as input, as follows:
[0070] In a dynamic attribute network G, a multi-graph model G(V,E,A,Σ) is constructed. Here, V represents the set of all nodes, |V| represents the number of nodes; E represents the dynamic edges between nodes, with E = {(u,v,T)|u,v∈V}, where u and v represent nodes belonging to V, and T represents the set of time stamps t for edges formed by nodes u and v. An edge in E can be represented as e(u,v,t), and a triple (u,v,t) represents a dynamic edge. Multiple edges with the same or different time stamps can exist between two nodes; A represents the set of attributes of all nodes in the graph, and Σ represents the mapping method for a set of attributes a(u) to the corresponding node u, where a(u) represents the attribute set of node u.
[0071] As a specific example, in step 2, the time span is determined based on the range of edge timestamps in the network, and the multigraph model is divided into different time snapshots, as follows:
[0072] Given a continuous time interval td = [t s ,t e ](t s ,t e ∈T,t s ≤t e The subgraph S of graph G is called a time snapshot of G over time period td, i.e., S = (V td E td ,A,Σ). Where, [t s ,t e [] indicates the time period from the start time to the end time. V td ∈V represents the set of nodes that exist within the time interval td. E td ={(u,v,T)} i |u,v∈V,T i ∈T} represents the dynamic edge set that exists within the time period td.
[0073] Count the timestamps of all edges, subtract the minimum timestamp from the maximum timestamp to get the range, and convert the time to seconds, minutes, hours, days, weeks, months, and years according to the Unix timestamp method. Select the appropriate unit, and divide the time into multiple groups according to the unit of time, starting from the minimum timestamp. Each group of timestamps belongs to a time snapshot. Store the index number of the divided time snapshots into the corresponding dynamic edges. 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 formed by each edge and the edge support in the current time snapshot are calculated, as follows:
[0075] Iterate through all dynamic edges e(u,v,t). For the currently visited dynamic edge, obtain the snapshot index number of the edge. In that snapshot, obtain the set N of common neighbors of the two endpoints 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. Iterate through the set N. For each element n in the set N, check if dynamic edges e1(u,n,t1) and e2(v,n,t2) exist in the current snapshot. If they exist, calculate the support of e(u,v,t) using the following formula:
[0076] sup(u,v,t)=num(u,n,T1)*num(v,n,T2)
[0077] Where T1 represents the set of timestamps for 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. T2 and num(v,n,T2) are similar.
[0078] After obtaining the support of e(u,v,t), the current visit ends, and all obtained sup(u,v,t) are summed to end the traversal of set N. Repeat the above operation for all visited dynamic edges, and then end the traversal of all dynamic edges. Thus, the support of each dynamic edge can be obtained.
[0079] As a specific example, in step 4, each dynamic edge is traversed, and dynamic edges with support less than k or that do not exist in a continuous time snapshot of length l are deleted in a loop, as follows:
[0080] First, iterate through all dynamic edges e(u,v,t). For the currently visited dynamic edge, find and remove all dynamic edges formed by nodes u and v in the graph. Compare the support of each dynamic edge with the parameter k. If the support is greater than or equal to k, retrieve the snapshot index of that dynamic edge and store it in set I. Calculate the longest subsequence in set I and store its longest subsequence and its length in all the visited dynamic edges. Repeat the above operations for all visited dynamic edges, and then the traversal of all dynamic edges ends.
[0081] Then, iterate through all dynamic edges e(u,v,t). For each visited dynamic edge, check if its support is less than k. If it is, add the edge to the deletion queue (Delete) and remove it from the graph. If it is greater than or equal to k, check if the length of the longest subsequence is less than the parameter l. If it is, add the edge to the deletion queue (Delete) and remove it from the graph. Repeat the above operation for all visited dynamic edges, and then end the traversal of all dynamic edges.
[0082] Then, access the elements in the queue Delete. For each element, i.e., the dynamic edge e(u,v,t), obtain the set N of common neighbor nodes of the two endpoints u and v of the dynamic edge e(u,v,t). For each element n in 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] Where T0 represents the set of timestamps for the formation of dynamic edges between 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. T1, T2 and num(u,n,T1), num(v,n,T2) are similar.
[0086] After calculation, compare the size of sup(u,n,T1) and k. If sup(u,n,T1) is less than k, remove the time snapshot containing the edge (u,n,T1) from the time snapshot index set I, and recalculate the longest subsequence and its length in set I. If the longest subsequence length is less than parameter l, add the edge to the deletion queue Delete and remove it from the graph. Perform the same operation for sup(v,n,T2). Perform the above operation for all n, ending the traversal of set N. If Delete is not an empty queue, repeat the above operation. Continue until Delete is empty, obtaining the processed graph H.
[0087] As a specific example, in step 5, starting from the query node, the remaining nodes from step S4 are traversed in a breadth-first manner. For each visited node v, its neighboring nodes are traversed, the attribute affinity progress P of node v relative to each visited neighboring node n is calculated, and the search score Score of v to n is calculated, as follows:
[0088]
[0089] Where 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 that nodes u and v have the same, |AB| represents the number of attributes that nodes u and v have different, and P(u,v) represents the attribute affinity of node u to node v.
[0090] Score(u,v)=weight(u,v)*P(u,v)
[0091] Here, Score(u,v) represents the search score of node u for node v, weight(u,v) represents the frequency of edges formed between nodes u and v in the graph, and P(u,v) represents the affinity between node u and node v. Then, by comparing the values of Score and θ, nodes with a Score not less than θ (attribute affinity) are retained, forming a (l,k,θ)-truss structure. The resulting (l,k,θ)-truss structure is used as the induced subgraph in the original multigraph model G as the output of the result community.
[0092] In summary, the technical contributions of the embodiments of this application include at least two aspects:
[0093] 1. A (l,k,θ)-truss structure model is proposed that integrates the network topology, time information and node attribute information.
[0094] 2. A (l,k,θ)-truss community search algorithm for dynamic attribute networks is proposed, which is driven by query nodes and can accurately and quickly search the community where the query node belongs.
[0095] The present application will now be described in further detail with reference to the accompanying drawings and specific embodiments.
[0096] Combination Figure 2 This diagram illustrates a (l,k,θ)-truss community search method for dynamic attribute networks, including the following steps:
[0097] Step 1: Based on the complex network dataset, construct a multi-graph model G for the dynamic attribute network, inputting the user-specified parameters l, k, and θ, as follows:
[0098] In a dynamic attribute network G, a multi-graph model G(V,E,A,Σ) is constructed. Here, V represents the set of all nodes, |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 nodes belonging to V, and T represents the set of timestamps t for edges formed by nodes u and v. An edge in E can be represented as e(u,v,t), and a triple (u,v,t) represents a dynamic edge. Multiple edges with the same or different timestamps can exist between two nodes; A represents the set of attributes of all nodes in the graph, and Σ represents the mapping method that maps a set of attributes a(u) to the corresponding node u, where a(u) represents the attribute set of node u. For example... 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 times when edges appear, and {A, B, C, D} represent the attribute sets of nodes.
[0099] Step 2: Determine the time span based on the range of edge timestamps in the network, and divide the multigraph model into different time snapshots, as follows:
[0100] Given a continuous time interval td = [t s ,t e ](t s ,t e ∈T,t s ≤t e The subgraph S of graph G is called a time snapshot of G over time period td, i.e., S = (V td E td ,A,Σ). Where, [t s ,t e [] indicates the time period from the start time to the end time. V td ∈V represents the set of nodes that exist within the time interval td. E td ={(u,v,T)} i |u,v∈V,T i ∈T} represents the dynamic edge set that exists within the time period td.
[0101] Count the timestamps of all edges, subtract the minimum timestamp from the maximum to get the range, and convert the time to seconds, minutes, hours, days, weeks, months, and years according to the Unix timestamp method. Select a suitable unit, and based on the selected unit, divide the time into multiple groups according to the unit of time, starting from the minimum timestamp. Each group of timestamps belongs to a time snapshot. Store the index number of the divided time snapshots into the corresponding dynamic edges. A dynamic edge can only exist in one time snapshot.
[0102] Step 3: In each time snapshot, calculate the number of triangles each edge participates in and the edge support in the current time snapshot, as follows:
[0103] Iterate through all dynamic edges e(u,v,t). For the currently visited dynamic edge, obtain the snapshot index number of the edge. In that snapshot, obtain the set N of common neighbors of the two endpoints 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. Iterate through the set N. For each element n in the set N, check if dynamic edges e1(u,n,t1) and e2(v,n,t2) exist in the current snapshot. If they exist, calculate the support of e(u,v,t) using the following formula:
[0104] sup(u,v,t)=num(u,n,T1)*num(v,n,T2)
[0105] Where T1 represents the set of timestamps for 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. T2 and num(v,n,T2) are similar.
[0106] After obtaining the support of e(u,v,t), the current visit ends, and all obtained sup(u,v,t) are summed to end the traversal of set N. Repeat the above operation for all visited dynamic edges, and then end the traversal of all dynamic edges. Thus, the support of each dynamic edge can be obtained. Figure 4 (a) shows a snapshot of time, where each edge represents a different dynamic edge. The dynamic edge (v1,v4,t0) forms 6 triangles with node v2 and 4 triangles with node v3, so the support of the dynamic edge (v1,v4,t0) in the current snapshot is 10.
[0107] Step 4: Traverse each dynamic edge, and repeatedly delete dynamic edges with support less than k, or those that do not exist in a continuous time snapshot of length l, as follows:
[0108] First, iterate through all dynamic edges e(u,v,t). For the currently visited dynamic edge, find and remove all dynamic edges formed by nodes u and v in the graph. Compare the support of each dynamic edge with the parameter k. If the support is greater than or equal to k, retrieve the snapshot index of that dynamic edge and store it in set I. Calculate the longest subsequence in set I and store its longest subsequence and its length in all the visited dynamic edges. Repeat the above operations for all visited dynamic edges, and then the traversal of all dynamic edges ends.
[0109] Then, iterate through all dynamic edges e(u,v,t). For each visited dynamic edge, check if its support is less than k. If it is, add the edge to the deletion queue `Delete` and remove it from the graph. If it is greater than or equal to k, check if the length of the longest subsequence is less than the parameter l. If it is, add the edge to the deletion queue `Delete` and remove it from the graph. Repeat the above operation for all visited dynamic edges, then end the traversal of all dynamic edges. Figure 4 The graph shown is divided into four time snapshots, in the order of S0, S1, S2, and S3, with each edge representing a different dynamic edge. Figure 4 In (a), the support of the dynamic edge (v1, v4, t0) is 10. Figure 4 (b) has a support of 6 for the dynamic edge (v1, v4, t1). Figure 4 In (c), the support of the dynamic edge (v1, v4, t2) is 4. Figure 4 (d) The support of the dynamic edge (v1,v4,t3) is 3. The parameter k is set to 6. The longest subsequence of the time snapshot index of the edge (v1,v4,T0) with support not less than k is 2. The parameter k is set to 4. The longest subsequence of the time snapshot index of the edge (v1,v4,T0) with support not less than k is 3.
[0110] Then, access the elements in the queue Delete. For each element, i.e., the dynamic edge e(u,v,t), obtain the set N of common neighbor nodes of the two endpoints u and v of the dynamic edge e(u,v,t). For each element n in 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] Where T0 represents the set of timestamps for the formation of dynamic edges between 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. T1, T2 and num(u,n,T1), num(v,n,T2) are similar.
[0114] After calculation, compare the size of sup(u,n,T1) and k. If sup(u,n,T1) is less than k, remove the time snapshot containing the edge (u,n,T1) from the time snapshot index set I, and recalculate the longest subsequence and its length in set I. If the longest subsequence length is less than parameter l, add the edge to the deletion queue Delete and remove it from the graph. Perform the same operation for sup(v,n,T2). Perform the above operation for all n, ending the traversal of set N. If Delete is not an empty queue, repeat the above operation. Continue until Delete is empty, obtaining the processed graph H.
[0115] Step 5: Starting from the query node, perform a breadth-first traversal of the remaining nodes from step S4. 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, as shown in the following formula:
[0116]
[0117] Where 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 that nodes u and v have the same, |AB| represents the number of attributes that nodes u and v have different, and P(u,v) represents the attribute affinity of node u to node v.
[0118] Score(u,v)=weight(u,v)*P(u,v)
[0119] Here, Score(u,v) represents the search score of node u for node v, weight(u,v) represents the frequency of edges formed between nodes u and v in the graph, and P(u,v) represents the affinity between node u and node v. Then, by comparing the values of Score and θ, nodes with a Score not less than θ are retained, forming a (l,k,θ)-truss structure. The resulting (l,k,θ)-truss structure is used as the induced subgraph in the original multigraph model G as the output of the result community. Figure 5 The diagram illustrates a search process, where v1, v2, ..., v9 represent nodes, and {A, B, C, D} represent the attribute sets of the nodes. Solid arrows indicate visiting first-order neighbors, short dashed arrows indicate visiting second-order neighbors, short dotted arrows indicate visiting third-order neighbors, and dotted arrows indicate visiting fourth-order neighbors. Starting with node v1 as the query node, a breadth-first traversal begins, first visiting its first-order neighbors v2, v4, and v5, and calculating the attribute affinity between the nodes. P(v1,v4)=0=P(v1,v5), then, starting from the first-order neighbor nodes v2,v4,v5 in numerical order, visit the second-order neighbor nodes in sequence. Nodes that have already been visited are not visited again, and so on. Then, the search score is obtained based on the affinity between the nodes and the frequency of the edges appearing in the graph. Finally, the search score is compared with the parameter θ, and the nodes with a search score not less than θ are retained. 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 this application constructs a multi-graph model based on the dynamic attribute network. Combining the network's topology, temporal information, and attribute information, it builds a (l,k,θ)-truss model and searches for the community of a query node based on the model definition. This application fully utilizes the characteristics of dynamic attribute networks, analyzes the network structure and information representation, integrates the network's topology, edge temporal information, and node attribute information to construct a (l,k,θ)-truss structural model. This model and its constraints are then used to accurately search for the community of a query node.
[0121] Corresponding to the above method, this application also provides a community search device for performing community search based on a (l,k,θ)-truss structure in dynamic attribute networks. See [link to relevant documentation]. Figure 6 The device includes:
[0122] The multi-graph model building unit 601 is used to build a multi-graph model of dynamic attribute network based on complex network dataset. The input parameters are specified l, k and θ, where l represents the sequence length threshold, k represents the support threshold and θ represents the search score threshold.
[0123] The time snapshot partitioning unit 602 is used to determine the time span based on the range of edge timestamps in the network and to partition the multigraph 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 edge support in each time snapshot, traverse each dynamic edge, and delete dynamic edges with support less than k or that do not meet the requirement of existing in consecutive 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 scoring threshold θ to obtain the (l,k,θ)-truss structure model, and the induced subgraph of the (l,k,θ)-truss structure model in the original multigraph model G is used as the result community.
[0126] The specific implementation principle and process of the device can be referred to in the above description, and will not be repeated here.
[0127] Embodiments of this application also provide a storage medium storing a computer program, wherein the computer program is configured to execute the steps in 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 a complex network dataset, a multi-graph model of a dynamic attribute network is constructed, with specified parameters l, k, and θ as input, where l represents the sequence length threshold, k represents the support threshold, and θ represents the search score threshold.
[0130] The time span is determined based on the range of edge timestamps in the network, and the multigraph model is divided into different time snapshots.
[0131] In each time snapshot, calculate the number of triangles formed by each edge in the current time snapshot as the edge's support. Traverse each dynamic edge and iteratively delete dynamic edges with support less than k or that do not exist in consecutive time snapshots of length l.
[0132] Based on the search scoring threshold θ, the remaining nodes of all time snapshots are integrated to obtain the (l,k,θ)-truss structure model. The induced subgraph of the (l,k,θ)-truss structure model in the original multigraph model G is used as the result community.
[0133] Optionally, in this embodiment, the storage medium may include, but is not limited to, various media capable of storing computer programs, such as USB flash drives, read-only memory (ROM), random access memory (RAM), portable hard drives, magnetic disks, or optical disks.
[0134] Embodiments of this application also provide an electronic device, including a memory and a processor, wherein the memory stores a computer program and the processor is configured to run the computer program to perform the steps in any 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 can be configured to perform the following steps via a computer program:
[0137] Based on a complex network dataset, a multi-graph model of a dynamic attribute network is constructed, with specified parameters l, k, and θ as input, where l represents the sequence length threshold, k represents the support threshold, and θ represents the search score threshold.
[0138] The time span is determined based on the range of edge timestamps in the network, and the multigraph model is divided into different time snapshots.
[0139] In each time snapshot, calculate the number of triangles formed by each edge in the current time snapshot as the edge's support. Traverse each dynamic edge and iteratively delete dynamic edges with support less than k or that do not exist in consecutive time snapshots of length l.
[0140] Based on the search scoring threshold θ, the remaining nodes of all time snapshots are integrated to obtain the (l,k,θ)-truss structure model. The induced subgraph of the (l,k,θ)-truss structure model in the original multigraph model G is used as the result community.
[0141] Optionally, specific examples in this embodiment can refer to the examples described in the above embodiments and optional implementations, and will not be repeated here.
[0142] The sequence numbers of the embodiments in this application are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.
[0143] In the above embodiments of this application, the descriptions of each embodiment have different focuses. For parts not described in detail in a certain embodiment, please refer to the relevant descriptions 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. The device embodiments described above are merely illustrative; for example, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the displayed or discussed mutual coupling, direct coupling, or communication connection may be through some interfaces; the indirect coupling or communication connection between units or modules may be electrical or other forms.
[0145] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0146] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.
[0147] If the integrated unit is implemented as 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 this 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. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as a USB flash drive, read-only memory (ROM), random access memory (RAM), portable hard drive, magnetic disk, or optical disk.
[0148] The above description is only a preferred embodiment of this application. It should be noted that for those skilled in the art, several improvements and modifications can be made without departing from the principle of this application, and these improvements and modifications should also be considered within the scope of protection of this application.
Claims
1. A community search method, characterized in that, A method for community search based on a (l,k,θ)-truss structure for dynamic attribute networks includes: Based on a complex network dataset, a multi-graph model of a dynamic attribute network is constructed, with specified parameters l, k, and θ as input, where l represents the sequence length threshold, k represents the support threshold, and θ represents the search score threshold. The time span is determined based on the range of edge timestamps in the network, and the multigraph model is divided into different time snapshots. In each time snapshot, calculate the number of triangles formed by each edge in the current time snapshot as the edge's support. Traverse each dynamic edge and iteratively delete dynamic edges with support less than k or that do not exist in consecutive time snapshots of length l. Based on the search scoring threshold θ, the remaining nodes of all time snapshots are integrated to obtain the (l,k,θ)-truss structure model. The induced subgraph of the (l,k,θ)-truss structure model in the original multigraph model G is used as the result community. The step of traversing each dynamic edge and cyclically deleting dynamic edges with support less than k, or those that do not exist in a continuous time snapshot of length l, includes: Iterate through all dynamic edges e(u,v,t) sequentially. For the dynamic edge visited at the current time t, find and remove all dynamic edges formed by nodes u and v in the graph. Compare the support of each dynamic edge with the parameter k. If the support is greater than or equal to k, retrieve the snapshot index number of the dynamic edge and store it in set I. Calculate the longest subsequence in set I and store its longest subsequence and its length in all the dynamic edges visited. Repeat the above operation for all visited dynamic edges and then end the traversal of all dynamic edges. Iterate through all dynamic edges e(u,v,t) in sequence. For the currently visited dynamic edge, check if its support is less than k. If it is less, store the edge in the deletion queue Delete and delete the edge from the graph. If it is greater than or equal to k, check if the length of the longest subsequence is less than the parameter l. If it is less, store the edge in the deletion queue Delete and delete the edge from the graph. Repeat the above operation for all visited dynamic edges, and then end the traversal of all dynamic edges. Access the dynamic edge elements in the Delete queue. For each dynamic edge e(u,v,t), obtain the set N of common neighbor nodes of the two endpoints u and v of the dynamic edge e(u,v,t). For each element n in 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: in, , , These represent the sets of timestamps that form dynamic edges for the current snapshot nodes u,v, u,n, and v,n, respectively. , , These represent the number of dynamic edges formed by the current snapshot nodes u,v, u,n, and v,n, respectively. Compare If the value of k is less than k, then remove it from the set I of time snapshot index labels of that dynamic edge. The time snapshot is taken, and the longest subsequence and its length in set I are recalculated. If the longest subsequence length is less than parameter l, the edge is added to the deletion queue (Delete) and removed from the graph. Perform the same operation as above; Perform the above operation on all elements to end the traversal of set N; If Delete is not an empty queue, repeat the above operation until Delete is empty, and obtain the processed graph H.
2. The method according to claim 1, characterized in that, The multigraph model that constructs the dynamic attribute network includes: A multi-graph model (V,E,A,Σ) is constructed for the dynamic attribute network G, where V represents the set of all nodes, |V| represents the number of nodes, and E represents the dynamic edges between nodes. Let u and v represent nodes belonging to V, T represent 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), a 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 all node attributes in the graph, Σ represents the mapping method of a set of attributes a(u) to the corresponding node u, and a(u) represents the attribute set of node u.
3. The method according to claim 2, characterized in that, The process of determining the time span based on the range of edge timestamps in the network and dividing the multigraph model into different time snapshots includes: Given a continuous time period Determine that the subgraph S of graph G is a time snapshot of G over time period td, i.e. ,in, This represents the time period from the start time to the end time. This represents the set of nodes that exist within the time period td. This represents the dynamic edge set that exists within the time period td; Count the timestamps of all edges, subtract the minimum value from the maximum timestamp to get the range, select the timestamp unit, start from the minimum timestamp, divide the timestamps into multiple groups according to the unit time, determine that each group of timestamps corresponds to a time snapshot, and store the index number of the divided time snapshots into the corresponding dynamic edges.
4. The method as described in claim 3, characterized in that, In each time snapshot, the number of times each edge participates in forming a triangle in the current time snapshot is calculated as the edge support, including: Iterate through all dynamic edges e(u,v,t) in sequence. For the currently visited dynamic edge, obtain the index number of the time snapshot where the edge is located. In this time snapshot, obtain the set N of common neighbor nodes of the two endpoints u and v of the dynamic edge e(u,v,t). Initialize the support sup(u,v,t) of e(u) to 0, traverse the set N, and for each element n in set N, determine the dynamic edge in the current time snapshot. and Does it exist? If it does, calculate the support of e(u,v,t) using the following formula: in, This represents the set of timestamps that form the dynamic edge between the current snapshot nodes u and n. Represented as a set of timestamps The specific timestamp in This indicates the number of dynamic edges formed by the current snapshot nodes u and n; This represents the set of timestamps that form the dynamic edges between the current snapshot nodes v and n. Represented as a set of timestamps The specific timestamp in This represents the number of dynamic edges formed by the current snapshot nodes v and n; After obtaining the support of e(u,v,t), end the current access and iterate through all the obtained support values. Accumulate, and the traversal of set N ends; Repeat the above operation for all visited dynamic edges, then end the traversal of all dynamic edges and obtain the support of each dynamic edge.
5. The community search method according to claim 1, characterized in that, The remaining nodes that integrate all time snapshots based on the search scoring threshold θ include: Starting from the query node, perform a breadth-first traversal of the remaining nodes. For each visited node v, traverse its neighbor nodes, calculate the attribute affinity P of node v relative to each visited neighbor 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.
6. The method according to claim 5, characterized in that, The search score for v against n is calculated using the following formula: in, This represents the search score of node u for node v. This represents the frequency of the number of times an edge between nodes u and v occurs in the graph. This indicates the affinity between node u and node v. Where A and B represent the attribute sets of nodes u and v, respectively. This indicates the number of attributes of node u. This indicates the number of nodes with the same u and v attributes. This indicates the number of nodes with distinct u and v attributes. This represents the affinity of node u with respect to node v.
7. A community search device, characterized in that, The apparatus for community search based on a (l,k,θ)-truss structure in dynamic attribute networks includes: The multi-graph model building unit is used to construct a multi-graph model of a dynamic attribute network based on a complex network dataset. The input parameters are specified l, k and θ, where l represents the sequence length threshold, k represents the support threshold and θ represents the search score threshold. The time snapshot partitioning unit is used to determine the time span based on the range of edge timestamps in the network, and to divide the multigraph 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 edge support in each time snapshot. It iterates through each dynamic edge and deletes dynamic edges with support less than k or that do not meet the requirement of existing in consecutive time snapshots of length l. The result determination unit is used to integrate the remaining nodes of all time snapshots based on the search scoring threshold θ to obtain the (l,k,θ)-truss structure model, and the induced subgraph of the (l,k,θ)-truss structure model in the original multigraph model G is used as the result community. Specifically, the dynamic edge deletion unit is used for: Iterate through all dynamic edges e(u,v,t) sequentially. For the currently visited dynamic edge, find and remove all dynamic edges formed by nodes u and v in the graph. Compare the support of each dynamic edge with the parameter k. If the support is greater than or equal to k, retrieve the snapshot index number of the dynamic edge and store it in set I. Calculate the longest subsequence in set I and store its longest subsequence and its length in all the dynamic edges that were just visited. Repeat the above operation for all visited dynamic edges and then end the traversal of all dynamic edges. Iterate through all dynamic edges e(u,v,t) sequentially. For the dynamic edge visited at the current time t, check if its support is less than k. If it is less, store the edge in the deletion queue Delete and delete the edge from the graph. If it is greater than or equal to k, check if the length of the longest subsequence is less than the parameter l. If it is less, store the edge in the deletion queue Delete and delete the edge from the graph. Repeat the above operation for all visited dynamic edges, and then end the traversal of all dynamic edges. Access the dynamic edge elements in the Delete queue. For each dynamic edge e(u,v,t), obtain the set N of common neighbor nodes of the two endpoints u and v of the dynamic edge e(u,v,t). For each element n in 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: in, , , These represent the sets of timestamps that form dynamic edges for the current snapshot nodes u,v, u,n, and v,n, respectively. , , These represent the number of dynamic edges formed by the current snapshot nodes u,v, u,n, and v,n, respectively. Compare If the value of k is less than k, then remove it from the set I of time snapshot index labels of that dynamic edge. The time snapshot is taken, and the longest subsequence and its length in set I are recalculated. If the longest subsequence length is less than parameter l, the edge is added to the deletion queue (Delete) and removed from the graph. Perform the same operation as above; Perform the above operation on all elements to end the traversal of set N; If Delete is not an empty queue, repeat the above operation until Delete is empty, and obtain the processed graph H.
8. A storage medium, characterized in that, The storage medium stores a computer program, wherein the computer program is configured to execute the method described in any one of claims 1 to 6 when it is run.
9. An electronic device comprising a memory and a processor, characterized in that, The memory stores a computer program, and the processor is configured to run the computer program to perform the method as described in any one of claims 1 to 6.