Community determination method and device, electronic device, and computer-readable storage medium

By constructing a connected component graph and iteratively calculating the community modularity, the problem of low computational accuracy in anti-fraud scenarios is solved, achieving more efficient and accurate community determination and ensuring the rationality and accuracy of the calculation results.

CN116029742BActive Publication Date: 2026-05-19CHINABANK PAYMENT (BEIJING) TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
CHINABANK PAYMENT (BEIJING) TECH CO LTD
Filing Date
2021-10-25
Publication Date
2026-05-19

AI Technical Summary

Technical Problem

Existing technologies used to identify fraudulent users or businesses in anti-fraud scenarios have low computational accuracy, contain many erroneous data, and have poor usability.

Method used

Construct a connected component graph, determine the target vertex to join the current community to form a temporary community, and iteratively calculate the community modularity until a preset condition is met. Output a temporary community whose community modularity is greater than or equal to the community modularity of the previous community.

Benefits of technology

It improves computational efficiency, reduces memory consumption of computing devices, shortens response time, and enhances data processing efficiency through parallel computing, ensuring the accuracy and rationality of computation results.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116029742B_ABST
    Figure CN116029742B_ABST
Patent Text Reader

Abstract

The present disclosure provides a community determination method and device, electronic equipment and computer readable storage medium. The above method comprises: constructing a connected component graph for representing at least one piece of business information; determining a target vertex from data vertices except vertices in a current community according to a business weight of a data edge in the connected component graph, so as to form a temporary community after adding the target vertex to the current community; determining a temporary community modularity of the temporary community; updating the current community to the temporary community in the case that the temporary community modularity is less than a current community modularity; iteratively performing the operation of determining a next target vertex from data vertices that have not been added to the latest current community and adding the next target vertex to the latest current community to form a new temporary community until the temporary community modularity of the new temporary community is greater than or equal to the community modularity of the last community; and outputting the temporary community whose community modularity is greater than or equal to the community modularity of the last community.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of computer technology, and more specifically, to a method and apparatus for determining a community, an electronic device, a computer-readable storage medium, and a computer program product. Background Technology

[0002] In anti-fraud scenarios, it is necessary to associate known problematic users or companies with potential problematic users or companies and display the potential problematic users or companies so that anti-fraud colleagues can quickly locate and predict potential problematic users, or query related orders based on users' purchasing habits to identify fraudulent sales behaviors such as order brushing.

[0003] In the process of developing this disclosure, it was discovered that the current methods for identifying fraudulent users or information have low computational accuracy, contain a large amount of erroneous data, and have poor usability. Summary of the Invention

[0004] In view of this, the present disclosure provides a method and apparatus for determining a community, an electronic device, a computer-readable storage medium, and a computer program product.

[0005] One aspect of this disclosure provides a method for community identification, including:

[0006] Construct a connected component graph to represent at least one piece of business information. The connected component graph includes multiple data vertices and data edges connecting the data vertices. Each data vertex is used to indicate a business object, and the data edges are used to indicate business attribute information of the business relationship between different business objects. Each data edge is configured with a business weight that matches the business attribute information.

[0007] Based on the business weights of the data edges in the connected component graph, target vertices are determined from the data vertices other than those in the current community, so that a temporary community is formed after the target vertices are added to the current community; wherein, the current community has a current community modularity, which is used to characterize the degree of closeness between the different business objects indicated by each vertex in the current community;

[0008] Determine the temporary community module degree;

[0009] If the module degree of the temporary community is less than that of the current community, the current community will be updated to a temporary community, where the temporary community will be the latest current community.

[0010] The iterative execution continues, determining the next target vertex from the data vertices that have not yet been added to the latest current community, and adding the next target vertex to the latest current community to form a new temporary community. This process continues until the temporary community's modularity is greater than or equal to the previous community's modularity, at which point the iteration ends.

[0011] Output a temporary community whose community modularity is greater than or equal to that of the previous community.

[0012] According to embodiments of this disclosure, determining the target vertex from data vertices other than those in the current community, based on the business weights of data edges in the connected component graph, includes:

[0013] From the data vertices other than those in the current community, identify multiple data vertices that are adjacent to the vertices in the current community as candidate vertices;

[0014] Based on the business weight of each candidate edge, the candidate vertex corresponding to the candidate edge with the largest business weight is determined as the target vertex. The candidate edge is a data edge that connects each candidate vertex to the vertex in the current community.

[0015] According to embodiments of this disclosure, determining the temporary community modularity of a temporary community includes:

[0016] Calculate the basic community modularity of the temporary community, where the basic community modularity is the sum of the vertex modularities of all temporary vertices in the temporary community, and the vertex modularity of each temporary vertex is the sum of the product of the previous vertex modularity of the temporary vertex and the weights of each data edge connecting the temporary vertex, where the previous vertex modularity is the vertex modularity of each temporary vertex when the target vertex has not joined the temporary community.

[0017] Calculate the point detachment probability for each temporary vertex from the temporary community;

[0018] Sum the detachment probabilities for each point to obtain the detachment probability of the temporary community;

[0019] The temporary community modularity is calculated based on the basic community modularity and the community detachment probability.

[0020] According to embodiments of this disclosure, calculating the point detachment probability for each temporary vertex from the temporary community includes:

[0021] Calculate the edge detachment probability of the non-community data edge connecting each temporary vertex, where the non-community data edge is the data edge connecting the temporary vertex and the non-community vertex, and the non-community vertex is the data vertex that is adjacent to the temporary vertex but is outside the temporary community;

[0022] Based on the detachment probability of each edge, the modularity of the basic community, the number of data vertices in the connected component graph, the number of temporary vertices, and the preset detachment probability, calculate the detachment probability of each temporary vertex detaching from the temporary community.

[0023] According to an embodiment of this disclosure, the edge detachment probability is:

[0024] The vertex modularity of a temporary vertex is the sum of the products of the non-community data edge weights connecting the temporary vertex.

[0025] According to embodiments of this disclosure, the business information includes business object information and business attribute information used to characterize the business relationships between business objects;

[0026] Constructing a connected component graph to represent at least one piece of business information includes:

[0027] Retrieve multiple raw graph structure data entries from the message queue. Each raw graph structure data entry includes raw edge data and raw vertex data associated with the raw edge data. The raw edge data includes information representing business attributes, and the raw vertex data includes information representing business objects.

[0028] Construct a connected component graph based on multiple original graph structure data.

[0029] According to embodiments of this disclosure, the original graph structure data is generated in the business system before retrieving multiple pieces of original graph structure data from the message queue;

[0030] The data used to generate the original graph structure includes:

[0031] Read the original business data table, which contains multiple original business data entries, each of which represents a piece of business information;

[0032] Each piece of original business data is converted into original graph structure data that matches each piece of business information.

[0033] According to embodiments of this disclosure, constructing a connected component graph based on multiple original graph structure data includes:

[0034] Each original graph structure data is converted into graph coded data that matches each piece of business information. Each piece of graph coded data includes abstract edge data and abstract vertex data associated with the abstract edge data. The abstract edge data includes information used to represent business attributes, and the abstract vertex data is used to represent business object information. Both the abstract edge data and the abstract vertex data are represented in coded form.

[0035] A connected component graph is constructed based on multiple graph encoding data and business attribute information.

[0036] Another aspect of this disclosure provides a community determination apparatus, including a construction module, a first determination module, a second determination module, an update module, an iteration module, and an output module.

[0037] The construction module is used to construct a connected component graph that represents at least one piece of business information. The connected component graph includes multiple data vertices and data edges connecting the data vertices. Each data vertex is used to indicate a business object, and the data edges are used to indicate business attribute information of the business relationship between different business objects. Each data edge is configured with a business weight that matches the business attribute information.

[0038] The first determining module is used to determine the target vertex from the data vertices other than those in the current community based on the business weights of the data edges in the connected component graph, so as to form a temporary community after adding the target vertex to the current community; wherein, the current community has a current community modularity, which is used to characterize the degree of closeness between the different business objects indicated by each vertex in the current community.

[0039] The second determining module is used to determine the temporary community module degree of the temporary community.

[0040] The update module is used to update the current community to a temporary community when the module degree of the temporary community is less than that of the current community. The temporary community is the latest current community.

[0041] The iteration module is used to iteratively execute the operation of determining the next target vertex from the data vertices that have not been added to the latest current community, and adding the next target vertex to the latest current community to form a new temporary community, until the temporary community module degree of the new temporary community is greater than or equal to the community module degree of the previous community, at which point the iteration operation ends.

[0042] The output module is used to output temporary communities whose community module degree is greater than or equal to that of the previous community.

[0043] According to embodiments of this disclosure, the first determining module includes a first determining unit and a second determining unit.

[0044] The first determining unit is used to determine multiple data vertices adjacent to the vertices in the current community from the data vertices other than the vertices in the current community as candidate vertices; the second determining unit is used to determine the candidate vertex corresponding to the candidate edge with the largest business weight as the target vertex based on the business weight of each candidate edge, wherein the candidate edge is: a data edge connecting each candidate vertex and the vertices in the current community.

[0045] According to embodiments of this disclosure, the second determining module includes a first calculation unit, a second calculation unit, a third calculation unit, and a fourth calculation unit.

[0046] The system comprises four calculation units: a first calculation unit for calculating the basic community modularity of the temporary community, where the basic community modularity is the sum of the vertex modularities of all temporary vertices in the temporary community, and the vertex modularity of each temporary vertex is the sum of the product of the previous vertex modularity of the temporary vertex and the weights of the data edges connecting the temporary vertex, where the previous vertex modularity is the vertex modularity of each temporary vertex when the target vertex has not joined the temporary community; a second calculation unit for calculating the detachment probability of each temporary vertex from the temporary community; a third calculation unit for summing the detachment probabilities of each vertex to obtain the community detachment probability of the temporary community; and a fourth calculation unit for calculating the temporary community modularity of the temporary community based on the basic community modularity and the community detachment probability.

[0047] According to embodiments of this disclosure, the second computing unit includes a first computing subunit and a second computing subunit.

[0048] The first calculation subunit is used to calculate the edge detachment probability of non-community data edges connecting each temporary vertex, wherein non-community data edges are data edges connecting temporary vertices and non-community vertices, and non-community vertices are data vertices that are adjacent to temporary vertices but outside the temporary community; the second calculation subunit is used to calculate the point detachment probability of each temporary vertex from the temporary community based on the edge detachment probability, the basic community modularity, the number of data vertices in the connected component graph, the number of temporary vertices, and the preset detachment probability.

[0049] According to an embodiment of this disclosure, the edge detachment probability is the sum of the product of the vertex modularity of the temporary vertex and the weight of the non-community data edge connecting the temporary vertex.

[0050] According to embodiments of this disclosure, the business information includes business object information and business attribute information used to characterize the business relationships between business objects;

[0051] The construction module includes an acquisition unit and a construction unit. The acquisition unit is used to acquire multiple original graph structure data from the message queue. Each original graph structure data includes original edge data and original vertex data associated with the original edge data. The original edge data includes information used to represent business attributes, and the original vertex data is used to represent business object information. The construction unit is used to construct a connected component graph based on the multiple original graph structure data.

[0052] According to embodiments of this disclosure, it further includes a generation unit for generating original graph structure data in the business system before retrieving multiple original graph structure data from the message queue;

[0053] The generation unit includes an acquisition subunit and a first transformation subunit. The reading subunit reads the original business data table, which contains multiple original business data entries, each representing a business piece of information. The first transformation subunit converts each original business data entry into original graph structure data that matches each business piece of information.

[0054] According to embodiments of this disclosure, the construction unit includes a second conversion subunit and a construction subunit.

[0055] The second transformation subunit is used to convert each original graph structure data into graph coded data that matches each piece of business information. Each piece of graph coded data includes abstract edge data and abstract vertex data associated with the abstract edge data. The abstract edge data includes information used to represent business attributes, and the abstract vertex data is used to represent information about business objects. Both the abstract edge data and the abstract vertex data are represented in coded form. The construction subunit is used to construct a connected component graph based on multiple pieces of graph coded data and business attribute information.

[0056] Another aspect of this disclosure provides an electronic device including: one or more processors and a memory; wherein the memory is used to store one or more programs; wherein, when the one or more programs are executed by the one or more processors, the one or more processors implement the community determination method as described above.

[0057] Another aspect of this disclosure provides a computer-readable storage medium storing computer-executable instructions that, when executed, implement the community determination method described above.

[0058] Another aspect of this disclosure provides a computer program product including computer-executable instructions that, when executed, implement the community determination method as described above.

[0059] According to the embodiments of this disclosure, since the method of this disclosure is based on connected component graphs for processing, and since data analysis and calculation are performed based on graph data, the associations between tables are reduced, thereby improving computational efficiency, reducing the internal memory consumption of computing devices, and shortening response time; and by constructing multiple connected component graphs, parallel computation can be achieved for each connected component graph, thereby improving the efficiency of data processing.

[0060] According to the embodiments of this disclosure, since the target vertex is determined based on the business weight of the data edges in the connected component graph, there is a relatively close correlation between the target vertex and the vertices in the current community. The temporary community determined accordingly has strong rationality. Then, the modularity of the temporary community is calculated and judged according to preset conditions (the modularity of the community decreases after the target vertex is added), which verifies that there is a relatively close correlation between the target vertex and the vertices in the current community, ensuring the accuracy of the calculation results. It can be seen that the method of the embodiments of this disclosure improves the accuracy of target association community prediction by combining the iterative algorithm of community modularity. Attached Figure Description

[0061] The above and other objects, features, and advantages of this disclosure will become clearer from the following description of embodiments of the present disclosure with reference to the accompanying drawings, in which:

[0062] Figure 1 An exemplary system architecture to which the community determination methods and apparatus of this disclosure can be applied is illustrated schematically;

[0063] Figure 2 A flowchart illustrating a community determination method according to an embodiment of the present disclosure is shown schematically;

[0064] Figure 3 A flowchart illustrating the determination of the temporary community modularity of a temporary community according to an embodiment of the present disclosure is shown schematically.

[0065] Figure 4 A block diagram of a community determination device according to an embodiment of the present disclosure is illustrated schematically; and

[0066] Figure 5 A block diagram of an electronic device for implementing a community determination method according to an embodiment of the present disclosure is shown schematically. Detailed Implementation

[0067] The embodiments of the present disclosure will now be described with reference to the accompanying drawings. However, it should be understood that these descriptions are exemplary only and are not intended to limit the scope of the disclosure. In the following detailed description, numerous specific details are set forth to provide a thorough understanding of the embodiments of the present disclosure for ease of explanation. However, it will be apparent that one or more embodiments may be practiced without these specific details. Furthermore, descriptions of well-known structures and techniques are omitted in the following description to avoid unnecessarily obscuring the concepts of the present disclosure.

[0068] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit this disclosure. The terms “comprising,” “including,” etc., as used herein indicate the presence of the stated features, steps, operations, and / or components, but do not exclude the presence or addition of one or more other features, steps, operations, or components.

[0069] All terms used herein (including technical and scientific terms) have the meanings commonly understood by those skilled in the art, unless otherwise defined. It should be noted that the terms used herein are to be interpreted in a manner consistent with the context of this specification, and not in an idealized or overly rigid way.

[0070] When using expressions such as "at least one of A, B, and C," the expression should generally be interpreted in accordance with the meaning commonly understood by a person skilled in the art (e.g., "a system having at least one of A, B, and C" should include, but is not limited to, systems having A alone, having B alone, having C alone, having A and B, having A and C, having B and C, and / or having A, B, and C, etc.). Similarly, when using expressions such as "at least one of A, B, or C," the expression should generally be interpreted in accordance with the meaning commonly understood by a person skilled in the art (e.g., "a system having at least one of A, B, or C" should include, but is not limited to, systems having A alone, having B alone, having C alone, having A and B, having A and C, having B and C, and / or having A, B, and C, etc.).

[0071] Before describing the embodiments of this disclosure in detail, the system structure and application scenarios involved in the methods provided by the embodiments of this disclosure will be introduced as follows.

[0072] Figure 1 An exemplary system architecture 100 to which the community identification methods and apparatus of this disclosure can be applied is illustrated schematically. It should be noted that... Figure 1 The examples shown are merely examples of system architectures that can be applied to the embodiments of this disclosure, in order to help those skilled in the art understand the technical content of this disclosure, but do not mean that the embodiments of this disclosure cannot be used in other devices, systems, environments or scenarios.

[0073] like Figure 1 As shown, the system architecture 100 according to this embodiment may include a business system 101, an encoding system 102, a graph computing system 103, and a storage system 104.

[0074] The method provided in this disclosure can be used in anti-fraud scenarios. In such scenarios, the method provided in this disclosure can be used to determine the possible associated problematic users (or enterprises) of known problematic users (or enterprises), and all the identified associated users can be identified as the target group so that anti-fraud personnel can formulate anti-fraud countermeasures after locking down the target group.

[0075] According to the embodiments of this disclosure, in the above scenario, the business system 101 stores an original business data table, which includes multiple original business data entries. The original business data is written into the business system 101 by the user based on information from the user information table / order information table / enterprise information table. Each original business data entry is used to represent a business information entry, which includes business object information and business attribute information used to represent the business relationship between business objects.

[0076] According to an embodiment of this disclosure, the business system 101 is used to convert the original business data in the original business data table into original graph structure data (original graph edge business data and original graph vertex business data) that match each piece of business information, and send the original graph structure data to the message queue.

[0077] According to embodiments of this disclosure, the encoding system 102 is used to obtain multiple original graph structure data from a message queue and construct a connected component graph based on the multiple original graph structure data. The connected component graph is used to represent at least one piece of business information, and includes multiple data vertices and data edges connecting the data vertices. Each data vertex is used to indicate a business object, and the data edges are used to indicate business attribute information indicating the business association relationships between different business objects.

[0078] According to embodiments of this disclosure, the encoding system 102 can convert the original graph structure data into a connected component graph by first encoding each piece of original graph structure data with an ID, converting it into graph encoding data (abstract edge data, abstract vertex data) that matches each piece of business information, and then constructing a connected component graph based on multiple pieces of graph encoding data and business attribute information. After conversion into graph encoding data, an encoding mapping relationship between the encoded abstract vertices and the original business vertices is also generated. Simultaneously, the encoding mapping relationship is stored in the storage system 104.

[0079] According to embodiments of this disclosure, the graph computing system 103 includes a graph computing engine, which is used to execute the community determination method of the embodiments of this disclosure. After reading the connected component graph from the encoding system 102, the graph computing system 103 executes the community determination method of the embodiments of this disclosure to obtain an abstract calculation result, reads the encoding mapping relationship from the storage system 104, converts the abstract calculation result into a business calculation result according to the encoding mapping relationship, and outputs it (the output is the community number of the vertex), and stores the business calculation result in the storage system 104. Users can read the calculation result calculated by the graph computing system 103 through the query service interface of the graph computing system 103, that is, the target group finally determined by the calculation, that is, the known problem users and the group composed of the problem users that may be associated with them, and perform subsequent analysis and processing based on the calculation result.

[0080] It should be understood that Figure 1 The business system 101, encoding system 102, graph computing system 103, and storage system 104 can be set up in different systems, or they can be combined in the same system. Alternatively, the business system 101, encoding system 102, graph computing system 103, and storage system 104 can be split into subsystems. The system division structure in the figure is only illustrative. The above systems can be arbitrarily combined and split according to implementation needs.

[0081] In the application scenarios of the method in this disclosure embodiment, it is necessary to divide related information based on certain attributes or behaviors of users, determine the problem users (or enterprises) that may be associated with known problem users (or enterprises), and identify all the identified associated users as the target group.

[0082] In the process of implementing this disclosure, it was discovered that communities can be divided based on relational databases. That is, after joining related tables according to the associated fields, if the primary key of the current user is used as a secondary key in the enterprise table or the order table, or exists in the attributes of other users, then these users, enterprises, orders, etc. are considered to be in the same community, thus obtaining a certain community.

[0083] However, the above method has some or all of the following drawbacks:

[0084] (1) Real-time calculation of relationship networks in online business real-time data, writing real-time data into a database, and building the network using a relational database will have the following problems: a) When joining tables with large datasets, if the relationship network exceeds three degrees, the calculated table becomes very large, and the operation usually fails; b) When searching for data through association, the response time generally exceeds the user's expectations, making it difficult to return results within an acceptable range, and real-time data return is not possible. For example, in an anti-fraud scenario, when searching for users who have engaged in fraudulent activities, if a user has placed many orders through fraudulent activities, the relationship network needs to be re-associated, and the relational database has difficulty obtaining real-time data to detect changes in the relationship network.

[0085] (2) Obtaining the set of primary keys associated with a user based on a relational database involves joining the relevant tables one by one to obtain the relevant primary keys. This involves a large number of table joins, which is a very time-consuming and memory-intensive operation. The result set obtained by this method is the set of all relevant primary keys for the user, and the result set obtained through table joins is quite large, containing a lot of erroneous data. Erroneous data provides error information to business personnel, but business personnel cannot identify and eliminate it, resulting in poor usability of the result data.

[0086] In view of this, embodiments of the present disclosure provide a method for determining a community.

[0087] Figure 2 A flowchart illustrating a community determination method according to an embodiment of this disclosure is shown schematically. Figure 2 As shown, the method includes operations S201 to S206.

[0088] In operation S201, a connected component graph is constructed to represent at least one piece of business information. The connected component graph includes multiple data vertices and data edges connecting the data vertices. Each data vertex is used to indicate a business object, and the data edges are used to indicate business attribute information of the business relationship between different business objects. Each data edge is configured with a business weight that matches the business attribute information.

[0089] According to embodiments of this disclosure, business information includes business object information and business attribute information used to characterize the business relationships between business objects. For example, business information can be: Zhang San bought a chair for 100 yuan, where the business object information is: Zhang San, chair, and the business attribute information is: purchase, 100 yuan. Each connected component graph can contain at least one piece of business information, and there are business relationships between the business information in the same connected component graph. For example, a connected component graph can contain three pieces of business information: (1) Zhang San bought a chair for 100 yuan, (2) Li Si bought a chair for 100 yuan, and (3) Zhang San bought a table for 50 yuan; business information (1) and (2) have a common business object: chair, and are therefore related; business information (2) and (3) have a common business object: Zhang San, and are therefore related. Thus, these three pieces of business information coexist in the same connected component graph.

[0090] According to embodiments of this disclosure, there can be multiple connected component graphs, and the following data processing methods can be performed on each connected component graph in parallel to improve data processing efficiency.

[0091] According to an embodiment of this disclosure, taking the business information as an example: Zhang San bought a chair for 100 yuan, the business information includes two data vertices, which are used to indicate the business objects: Zhang San and the chair; and data edges, which are used to indicate the business attribute information of the business relationship between the two business objects, that is, the act of buying the chair cost 100 yuan; the data edges are configured with business weights that match the business attribute information, and the business weight is 100 yuan.

[0092] In operation S202, based on the business weights of the data edges in the connected component graph, a target vertex is determined from the data vertices other than those in the current community, so that the target vertex can be added to the current community to form a temporary community. The current community has a current community modularity, which is used to characterize the degree of closeness between the different business objects indicated by each vertex in the current community. The smaller the community modularity, the higher the degree of closeness between the different business objects indicated by each vertex in the community.

[0093] According to embodiments of this disclosure, determining a target vertex from data vertices other than those in the current community can be achieved by selecting the data vertex corresponding to the data edge with the largest weight percentage based on the business weight of the data edges in the connected component graph. The target vertex is then added to the current community to form a temporary community. Since the target vertex is determined based on the business weight of the data edges in the connected component graph, there is a relatively close relationship between the target vertex and the vertices in the current community. The temporary community formed by combining them can be temporarily assumed to be a community with a close relationship. Then, the modularity of the temporary community is further calculated to verify and determine whether the previous assumption is reasonable.

[0094] In operation S203, determine the temporary community module degree of the temporary community.

[0095] In operation S204, if the modularity of the temporary community is less than that of the current community, the current community is updated to a temporary community, which serves as the latest current community. This demonstrates, by calculating the modularity of the temporary community, that a relatively close relationship exists between the target vertex and the vertices in the current community (the community modularity decreases after the target vertex is added).

[0096] In operation S205, the process iteratively executes the operation of determining the next target vertex from the data vertices that have not yet been added to the latest current community, and adding the next target vertex to the latest current community to form a new temporary community. This continues until the temporary community modularity of the new temporary community is greater than or equal to the community modularity of the previous community, at which point the iteration ends. That is, the iteration ends after the termination condition is met. The termination condition is that the temporary community modularity of the new temporary community is greater than or equal to the community modularity of the previous community. In other words, if the community modularity shows a trend of increasing, then there is no close relationship between the target vertex and the vertices in the current community. At this point, adding a new target vertex to the latest current community can be terminated.

[0097] According to an embodiment of this disclosure, the initial iteration calculation is performed on an initial community. One data vertex in the connected component graph is randomly selected as the initial community, so the number of initial communities is equal to the number of data vertices in the connected component graph. If a connected component graph contains only one data vertex and there are no other vertices associated with that data vertex, then that vertex becomes its own community and does not participate in subsequent iteration calculations.

[0098] In operation S206, a temporary community with a community modularity greater than or equal to that of the previous community is output. This temporary community, satisfying the termination condition of the iterative calculation, is determined as the final target community. In the target community, the different business objects indicated by each vertex exhibit a strong degree of interdependence. For example, in the scenario of determining the associated products of users engaging in fraudulent transactions, each data vertex in the output target community represents a known user engaging in fraudulent transactions and a product closely associated with their fraudulent behavior.

[0099] According to embodiments of this disclosure, the method is based on connected component graphs for processing. Since data analysis and calculation are performed based on graph data, the associations between tables are reduced, thereby improving computational efficiency, reducing the internal memory consumption of computing devices, and shortening response time. Furthermore, by constructing multiple connected component graphs, parallel computation can be achieved for each connected component graph, improving the efficiency of data processing.

[0100] According to embodiments of this disclosure, the target vertex is determined based on the business weight of the data edges in the connected component graph. Therefore, there is a relatively close relationship between the target vertex and the vertices in the current community. The temporary community determined in this way has strong rationality. Then, the modularity of the temporary community is calculated and judged according to preset conditions (the modularity of the community decreases after the target vertex is added). This verifies that there is a relatively close relationship between the target vertex and the vertices in the current community, ensuring the accuracy of the calculation results. It can be seen that the method of this disclosure improves the accuracy of target association community prediction by combining the iterative algorithm of community modularity.

[0101] According to embodiments of this disclosure, determining the target vertex from data vertices other than those in the current community, based on the business weights of data edges in the connected component graph, includes:

[0102] From the data vertices other than those in the current community, identify multiple data vertices that are adjacent to the vertices in the current community as candidate vertices; based on the business weight of each candidate edge, determine the candidate vertex corresponding to the candidate edge with the largest business weight as the target vertex, where the candidate edge is: a data edge connecting each candidate vertex to a vertex in the current community.

[0103] According to embodiments of this disclosure, the above scenario could be, for example, as follows: A connected component graph contains business information: Zhang San bought a chair for 100 yuan, Zhang San bought a table for 50 yuan, and Zhang San bought a plate for 20 yuan. The vertices of the current community are Zhang San and the chair. The data vertices other than the vertices in the current community include the table and the plate. The business weights of the data edges corresponding to the table and plate are 50 and 20, respectively. Then, the candidate vertex corresponding to the candidate edge with the largest business weight, i.e., the table, is selected as the target vertex.

[0104] According to the embodiments of this disclosure, the target vertex is determined from the data vertices other than those in the current community by selecting the data vertex corresponding to the data edge with the largest weight percentage based on the business weight of the data edges in the connected component graph. Since the data edge corresponding to the target vertex has the largest weight percentage, there is a relatively close relationship between the target vertex and the vertices in the current community. The temporary community determined in this way has strong rationality, ensuring the accuracy of subsequent calculation and verification of the modularity of the temporary community.

[0105] Figure 3 A flowchart illustrating the determination of the temporary community modularity of a temporary community according to an embodiment of the present disclosure is shown.

[0106] like Figure 3 As shown, the method includes operations S301 to S304.

[0107] In operation S301, the basic community modularity of the temporary community is calculated, where the basic community modularity is the sum of the vertex modularities of all temporary vertices in the temporary community.

[0108] According to embodiments of this disclosure, the basic community module degree can be calculated using the following formula (a).

[0109] Basic community module degree = ∑ A∈i p A Formula (1)

[0110] Where, p A Let A be the vertex modularity of a temporary vertex A.

[0111] According to an embodiment of this disclosure, the initial iteration calculation is performed on the initial community. One of the data vertices in the connected component graph is randomly selected as the initial community. Therefore, the basic community modularity of the initial community is the vertex modularity of the randomly selected initial vertex. The vertex modularity of the initial vertex is the reciprocal of the total number of data vertices n in the connected component graph, i.e., 1 / n.

[0112] According to an embodiment of this disclosure, the vertex modularity of each temporary vertex is the sum of the products of the previous vertex modularity of the temporary vertex and the weights of each data edge connecting the temporary vertex, wherein the previous vertex modularity is the vertex modularity of each temporary vertex when the target vertex has not joined the temporary community.

[0113] For example, assuming the initial community only includes the initial vertex A, obtain all the neighbors of vertex A, and select the neighbor vertex B corresponding to the data edge with the largest weight percentage according to the weight values ​​of all the neighbors of A. Add this neighbor B to the community i where A is located. The basic community modularity of community i after B is added needs to be recalculated. First, calculate the vertex modularity of each temporary vertex after B is added.

[0114] According to an embodiment of this disclosure, the modularity of vertex A can be calculated using the following formula (ii).

[0115] p A =∑ A∈i p A0 (p A→B Formula (II)

[0116] Where p on the right side of the equation A0 Let p be the previous vertex modularity of vertex A (here, the initial modularity is 1 / n). A→B This represents the normalized weight of the data edge connecting temporary vertices A and B.

[0117] The methods for calculating the vertex modularity of vertex B and vertex A, as described in the embodiments of this disclosure, will not be repeated here.

[0118] According to embodiments of this disclosure, the basic community modularity is actually equivalent to calculating the sum of the product of the probabilities of all points and edges within community i, that is, the sum of the product of the probabilities of points within community i pointing to edges outside community i.

[0119] In operation S302, calculate the point detachment probability for each temporary vertex that detaches from the temporary community.

[0120] According to embodiments of this disclosure, calculating the point detachment probability for each temporary vertex from the temporary community includes:

[0121] (1) Calculate the edge detachment probability of the non-community data edge connecting each temporary vertex, where the non-community data edge is the data edge connecting the temporary vertex and the non-community vertex, where the non-community vertex is the data vertex that is adjacent to the temporary vertex and is outside the temporary community.

[0122] According to an embodiment of this disclosure, the edge detachment probability of a non-community data edge of each temporary vertex is the sum of the product of the vertex modularity of the temporary vertex and the weight of the non-community data edge connecting the temporary vertex.

[0123] According to embodiments of this disclosure, the edge detachment probability of non-community data edges of each temporary vertex can be calculated using the following formula (iii).

[0124]

[0125] In the above formula, γ represents the non-i community, p A→γ This represents the probability that temporary vertex A leaves i and enters γ.

[0126] (2) Calculate the detachment probability of each temporary vertex from the temporary community based on the detachment probability of each edge, the modularity of the basic community, the number of data vertices in the connected component graph, the number of temporary vertices, and the preset detachment probability.

[0127] According to embodiments of this disclosure, the point detachment probability of each temporary vertex detaching from the temporary community. It can be calculated using the following formula (iv).

[0128]

[0129] in, The edge detachment probability represents the non-community data edge connecting each temporary vertex, where n is the number of data vertices in the connected component graph, ∑ A∈i p A Basic community module degree, n i Let be the number of temporary vertices in community i, and T be the preset detachment probability, i.e., random probability, which is usually taken as 0.25.

[0130] In operation S303, the detachment probability of each point is summed to obtain the detachment probability of the temporary community.

[0131] According to embodiments of this disclosure, the probability of a temporary community leaving the community can be calculated using the following formula (v).

[0132]

[0133] In operation S304, the temporary community modularity L(M) of the temporary community is calculated based on the basic community modularity and the community detachment probability.

[0134] According to embodiments of this disclosure, the temporary community module degree L(M) of a temporary community can be calculated using the following formula (vi).

[0135]

[0136] According to embodiments of this disclosure, when calculating the temporary community modularity of a temporary community, the temporary community modularity is calculated based on the basic community modularity and the community detachment probability. It can be seen that, based on the basic community modularity, the detachment probability of each temporary vertex leaving the temporary community is comprehensively considered, that is, the probability that each temporary vertex may not belong to the community. Therefore, the accuracy of the calculation results is further improved.

[0137] According to embodiments of this disclosure, constructing a connected component graph for representing at least one piece of business information includes:

[0138] (1) First, generate the original graph structure data in the business system and send the original graph structure data to the message queue.

[0139] The process of generating the original graph structure data includes: reading the original business data table, which contains multiple original business data entries, each representing a piece of business information; and converting each original business data entry into original graph structure data that matches each piece of business information. Each piece of original graph structure data includes original edge data and original vertex data associated with the original edge data. The original edge data includes information representing business attributes, and the original vertex data represents information representing business objects.

[0140] According to embodiments of this disclosure, the original business data in the original business data table is information stored in a relational database. For example, one piece of original business data could be: Zhang San bought a chair for 100 yuan. It is necessary to convert the original business data into original graph structure data matching each piece of business information in the business system according to graph schema rules.

[0141] According to embodiments of this disclosure, the data definition rule for raw edge data is: source vertex\t destination vertex\t edge type\t edge weight; the data definition rule for raw vertex data is: vertex ID\t vertex type\t vertex weight. Each piece of raw business data corresponds to one piece of raw edge data and multiple pieces of raw vertex data.

[0142] Taking the original business data as: Zhang San bought a chair for 100 yuan as an example, its original graph structure data includes the following original edge data: Zhang San\t a chair\t bought\t spent 100 yuan. Its original graph structure data includes the following two original vertices: Zhang San\t user\t none, chair\t product\t 100 yuan.

[0143] The original edge data and the original vertex data associated with the original edge data, wherein the original edge data includes information used to represent business attributes and the original vertex data is used to represent information about business objects.

[0144] (2) Secondly, after generating the original graph structure data in the above business system and sending the original graph structure data to the message queue, the encoding system obtains multiple original graph structure data from the message queue and constructs a connected component graph based on the multiple original graph structure data.

[0145] According to embodiments of this disclosure, the encoding system can convert original graph structure data into connected component graphs by first encoding each piece of original graph structure data with an ID, converting it into graph encoded data (abstract edge data, abstract vertex data) that matches each piece of business information, and then constructing a connected component graph based on multiple pieces of graph encoded data and business attribute information. After conversion to graph encoded data, an encoded mapping relationship between the encoded abstract vertices and the original business vertices is also generated, and this mapping relationship is stored in a storage system for subsequent calculations.

[0146] According to embodiments of this disclosure, in the process of constructing a connected component graph representing at least one piece of business information, each piece of original business data is converted into original graph structure data that matches each piece of business information. Since the original business data in the original business data table is information stored in a relational database, directly analyzing and processing it would be time-consuming and memory-intensive due to the large number of table joins involved. Therefore, converting it into original graph structure data, and then further constructing a connected component graph based on the original graph structure data, allows for significant reduction in table joins and improves computational efficiency by performing processing and analysis based on the connected component graph, since each connected component graph contains at least one piece of original business data with related relationships. This reduces the memory consumption of the computing device.

[0147] According to embodiments of this disclosure, specifically, constructing a connected component graph based on multiple original graph structure data includes:

[0148] Each original graph structure data is converted into graph coded data that matches each piece of business information. Each piece of graph coded data includes abstract edge data and abstract vertex data associated with the abstract edge data. The abstract edge data includes information used to represent business attributes, and the abstract vertex data is used to represent information about business objects. Both the abstract edge data and the abstract vertex data are represented in coded form. A connected component graph is constructed based on multiple pieces of graph coded data and business attribute information.

[0149] According to embodiments of this disclosure, constructing a connected component graph based on multiple original graph structure data first involves converting each original graph structure data into graph-coded data, that is, encoding each original graph structure data with an ID and converting it into graph-coded data (abstract edge data, abstract vertex data) that matches each piece of business information.

[0150] According to an embodiment of this disclosure, for example, taking the original business data: Zhang San bought a chair for 100 yuan, the original edge data converted into the original graph structure data is: Zhang San\t a chair\t bought\t spent 100 yuan. The two original vertex data of the original graph structure data are: Zhang San\t user\t none, chair\t product\t 100 yuan. Converting this into graph encoded data is as follows:

[0151] Abstract edge data: 19435\t 65326\t 1\100;

[0152] The two abstract vertex data are: Zhang San's vertex data: 19435 1 0, and the chair's vertex data: 65326 2 100.

[0153] Simultaneously, it will also generate an encoded mapping relationship between the encoded abstract vertex ID and the original business vertex ID:<key,value> The graph computing engine executes the community determination method of this embodiment. For example, in the process of executing the community determination method of this embodiment, the graph computing system reads the connected component graph from the encoding system, executes the community determination method of this embodiment, obtains the abstract calculation result, reads the encoding mapping relationship from the storage system, converts the abstract calculation result into a business calculation result according to the encoding mapping relationship, and then outputs the business calculation result and stores it in the storage system. Users can read the calculation result calculated by the graph computing system through the query service interface of the graph computing system, that is, the target group finally determined by the calculation, that is, the known problem users and the group composed of problem users that may be associated with them, and perform subsequent analysis and processing based on the calculation result.

[0154] According to the embodiments of this disclosure, since the original graph structure data is represented by characters or text, its data volume is large. If it is directly used to construct a connected component graph, it will cause the electronic device to have a long processing time and low processing efficiency. If the original graph structure data is converted into graph coded data and multiple graph coded data are used, the data volume is reduced because the graph coded data is represented in coded form. In the process of constructing a connected component graph using graph coded data, the data processing efficiency of the electronic device can be improved.

[0155] Figure 4A block diagram of a community determination device 400 according to an embodiment of the present disclosure is shown schematically.

[0156] The community-identifying device 400 can be used to achieve reference. Figure 2 The method shown.

[0157] like Figure 4 As shown, the community determination device 400 includes: a construction module 401, a first determination module 402, a second determination module 403, an update module 404, an iteration module 405, and an output module 406.

[0158] The construction module 401 is used to construct a connected component graph that represents at least one piece of business information. The connected component graph includes multiple data vertices and data edges connecting the data vertices. Each data vertex is used to indicate a business object, and the data edges are used to indicate business attribute information of the business relationship between different business objects. Each data edge is configured with a business weight that matches the business attribute information.

[0159] The first determining module 402 is used to determine a target vertex from data vertices other than those in the current community based on the business weights of the data edges in the connected component graph, so as to form a temporary community after adding the target vertex to the current community; wherein, the current community has a current community modularity, which is used to characterize the degree of closeness between the different business objects indicated by each vertex in the current community.

[0160] The second determining module 403 is used to determine the temporary community module degree of the temporary community.

[0161] Update module 404 is used to update the current community to a temporary community when the module degree of the temporary community is less than that of the current community. The temporary community is the latest current community.

[0162] Iteration module 405 is used to iteratively execute the operation of determining the next target vertex from the data vertices that have not been added to the latest current community, and adding the next target vertex to the latest current community to form a new temporary community, until the temporary community modularity of the new temporary community is greater than or equal to the community modularity of the previous community, and then the iteration operation ends.

[0163] Output module 406 is used to output temporary communities whose community module degree is greater than or equal to that of the previous community.

[0164] According to embodiments of this disclosure, a connected component graph representing at least one piece of business information is constructed by a construction module 401. Subsequently, processing is performed based on the connected component graph by a first determination module 402, a second determination module 403, an update module 403, and an iteration module 405. Since data analysis and calculation are performed based on graph data, the association between tables is reduced, thereby improving computational efficiency, reducing the internal memory consumption of computing devices, and shortening response time. Furthermore, by constructing multiple connected component graphs, parallel computation can be achieved for each connected component graph, improving the efficiency of data processing.

[0165] According to the embodiments of this disclosure, the target vertex is determined by the first determining module 402. Since the target vertex is determined based on the business weight of the data edges in the connected component graph, there is a relatively close relationship between the target vertex and the vertices in the current community. The temporary community determined in this way has strong rationality. Then, the module degree of the temporary community is calculated by the updating module 403 and the iteration module 405, and a judgment is made according to the preset conditions (the community module degree decreases after the target vertex is added). This verifies that there is a relatively close relationship between the target vertex and the vertices in the current community, ensuring the accuracy of the calculation results. It can be seen that the device of the embodiments of this disclosure improves the accuracy of the prediction of the target associated community by combining the iterative algorithm of the community module degree.

[0166] According to embodiments of this disclosure, the first determining module includes a first determining unit and a second determining unit.

[0167] The first determining unit is used to determine multiple data vertices adjacent to the vertices in the current community from the data vertices other than the vertices in the current community as candidate vertices; the second determining unit is used to determine the candidate vertex corresponding to the candidate edge with the largest business weight as the target vertex based on the business weight of each candidate edge, wherein the candidate edge is: a data edge connecting each candidate vertex and the vertices in the current community.

[0168] According to embodiments of this disclosure, the second determining module includes a first calculation unit, a second calculation unit, a third calculation unit, and a fourth calculation unit.

[0169] The system comprises four calculation units: a first calculation unit for calculating the basic community modularity of the temporary community, where the basic community modularity is the sum of the vertex modularities of all temporary vertices in the temporary community, and the vertex modularity of each temporary vertex is the sum of the product of the previous vertex modularity of the temporary vertex and the weights of the data edges connecting the temporary vertex, where the previous vertex modularity is the vertex modularity of each temporary vertex when the target vertex has not joined the temporary community; a second calculation unit for calculating the detachment probability of each temporary vertex from the temporary community; a third calculation unit for summing the detachment probabilities of each vertex to obtain the community detachment probability of the temporary community; and a fourth calculation unit for calculating the temporary community modularity of the temporary community based on the basic community modularity and the community detachment probability.

[0170] According to embodiments of this disclosure, the second computing unit includes a first computing subunit and a second computing subunit.

[0171] The first calculation subunit is used to calculate the edge detachment probability of non-community data edges connecting each temporary vertex, wherein non-community data edges are data edges connecting temporary vertices and non-community vertices, and non-community vertices are data vertices that are adjacent to temporary vertices but outside the temporary community; the second calculation subunit is used to calculate the point detachment probability of each temporary vertex from the temporary community based on the edge detachment probability, the basic community modularity, the number of data vertices in the connected component graph, the number of temporary vertices, and the preset detachment probability.

[0172] According to an embodiment of this disclosure, the edge detachment probability is the sum of the product of the vertex modularity of the temporary vertex and the weight of the non-community data edge connecting the temporary vertex.

[0173] According to embodiments of this disclosure, the business information includes business object information and business attribute information used to characterize the business relationships between business objects;

[0174] The construction module includes an acquisition unit and a construction unit. The acquisition unit is used to acquire multiple original graph structure data from the message queue. Each original graph structure data includes original edge data and original vertex data associated with the original edge data. The original edge data includes information used to represent business attributes, and the original vertex data is used to represent business object information. The construction unit is used to construct a connected component graph based on the multiple original graph structure data.

[0175] According to embodiments of this disclosure, it further includes a generation unit for generating original graph structure data in the business system before retrieving multiple original graph structure data from the message queue;

[0176] The generation unit includes an acquisition subunit and a first transformation subunit. The reading subunit reads the original business data table, which contains multiple original business data entries, each representing a business piece of information. The first transformation subunit converts each original business data entry into original graph structure data that matches each business piece of information.

[0177] According to embodiments of this disclosure, the construction unit includes a second conversion subunit and a construction subunit.

[0178] The second transformation subunit is used to convert each original graph structure data into graph coded data that matches each piece of business information. Each piece of graph coded data includes abstract edge data and abstract vertex data associated with the abstract edge data. The abstract edge data includes information used to represent business attributes, and the abstract vertex data is used to represent information about business objects. Both the abstract edge data and the abstract vertex data are represented in coded form. The construction subunit is used to construct a connected component graph based on multiple pieces of graph coded data and business attribute information.

[0179] Any one or more of the modules, submodules, units, and subunits according to embodiments of the present disclosure, or at least part of the functions of any one or more of them, can be implemented in one module. Any one or more of the modules, submodules, units, and subunits according to embodiments of the present disclosure can be implemented by dividing them into multiple modules. Any one or more of the modules, submodules, units, and subunits according to embodiments of the present disclosure can be at least partially implemented as hardware circuitry, such as Field Programmable Gate Arrays (FPGAs), Programmable Logic Arrays (PLAs), Systems-on-Chip, Systems-on-Substrate, Systems-on-Package, Application-Specific Integrated Circuits (ASICs), or implemented in hardware or firmware by any other reasonable means of integrating or packaging circuitry, or implemented in software, hardware, or firmware, or in any suitable combination of any of these three implementation methods. Alternatively, one or more of the modules, submodules, units, and subunits according to embodiments of the present disclosure can be at least partially implemented as computer program modules, which, when run, can perform corresponding functions.

[0180] For example, any and more of the following modules can be combined into one module / unit / subunit: the construction module 401, the first determining module 402, the second determining module 403, the update module 404, the iteration module 405, and the output module 406. Alternatively, any one of these modules / units / subunits can be split into multiple modules / units / subunits. Or, at least some of the functionality of one or more of these modules / units / subunits can be combined with at least some of the functionality of other modules / units / subunits and implemented in one module / unit / subunit. According to embodiments of this disclosure, at least one of the construction module 401, the first determining module 402, the second determining module 403, the updating module 404, the iteration module 405, and the output module 406 can be at least partially implemented as hardware circuitry, such as a field-programmable gate array (FPGA), a programmable logic array (PLA), a system-on-a-chip, a system-on-a-substrate, a system-on-package, an application-specific integrated circuit (ASIC), or any other reasonable method of integrating or packaging circuitry, or implemented in software, hardware, or firmware, or in any suitable combination of any of these three methods. Alternatively, at least one of the construction module 401, the first determining module 402, the second determining module 403, the updating module 404, the iteration module 405, and the output module 406 can be at least partially implemented as a computer program module, which, when run, can perform corresponding functions.

[0181] Figure 5 A block diagram of an electronic device for implementing a community determination method according to an embodiment of the present disclosure is shown schematically. Figure 5 The electronic device shown is merely an example and should not be construed as limiting the functionality and scope of the embodiments disclosed herein.

[0182] like Figure 5 As shown, an electronic device 500 according to an embodiment of the present disclosure includes a processor 501, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 502 or a program loaded from a storage portion 508 into a random access memory (RAM) 503. The processor 501 may include, for example, a general-purpose microprocessor (e.g., a CPU), an instruction set processor and / or an associated chipset and / or a special-purpose microprocessor (e.g., an application-specific integrated circuit (ASIC)), etc. The processor 501 may also include onboard memory for caching purposes. The processor 501 may include a single processing unit or multiple processing units for performing different actions of the method flow according to an embodiment of the present disclosure.

[0183] RAM 503 stores various programs and data required for the operation of electronic device 500. Processor 501, ROM 502, and RAM 503 are interconnected via bus 504. Processor 501 performs various operations of the method flow according to embodiments of the present disclosure by executing programs in ROM 502 and / or RAM 503. It should be noted that the programs may also be stored in one or more memories other than ROM 502 and RAM 503. Processor 501 may also perform various operations of the method flow according to embodiments of the present disclosure by executing programs stored in said one or more memories.

[0184] According to embodiments of this disclosure, the electronic device 500 may further include an input / output (I / O) interface 505, which is also connected to a bus 504. The system 500 may also include one or more of the following components connected to the I / O interface 505: an input section 506 including a keyboard, mouse, etc.; an output section 507 including a cathode ray tube (CRT), liquid crystal display (LCD), etc., and a speaker, etc.; a storage section 508 including a hard disk, etc.; and a communication section 509 including a network interface card such as a LAN card, modem, etc. The communication section 509 performs communication processing via a network such as the Internet. A drive 510 is also connected to the I / O interface 505 as needed. A removable medium 511, such as a disk, optical disk, magneto-optical disk, semiconductor memory, etc., is installed on the drive 510 as needed so that computer programs read from it can be installed into the storage section 508 as needed.

[0185] According to embodiments of this disclosure, the method flow according to embodiments of this disclosure can be implemented as a computer software program. For example, embodiments of this disclosure include a computer program product comprising a computer program carried on a computer-readable storage medium, the computer program containing program code for performing the methods shown in the flowchart. In such embodiments, the computer program can be downloaded and installed from a network via communication section 509, and / or installed from removable medium 511. When the computer program is executed by processor 501, it performs the functions defined in the system of embodiments of this disclosure. According to embodiments of this disclosure, the systems, devices, apparatuses, modules, units, etc., described above can be implemented by computer program modules.

[0186] This disclosure also provides a computer-readable storage medium, which may be included in the device / apparatus / system described in the above embodiments; or it may exist independently and not assembled into the device / apparatus / system. The computer-readable storage medium carries one or more programs that, when executed, implement the method according to the embodiments of this disclosure.

[0187] According to embodiments of this disclosure, the computer-readable storage medium can be a non-volatile computer-readable storage medium. Examples include, but are not limited to: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPRQM or flash memory), portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof. In this disclosure, the computer-readable storage medium can be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, apparatus, or device.

[0188] For example, according to embodiments of this disclosure, a computer-readable storage medium may include the ROM 502 and / or RAM 503 described above and / or one or more memories other than ROM 502 and RAM 503.

[0189] Embodiments of this disclosure also include a computer program product comprising a computer program containing program code for performing the methods provided in the embodiments of this disclosure. When the computer program product is run on an electronic device, the program code is used to enable the electronic device to implement the community determination method provided in the embodiments of this disclosure.

[0190] When the computer program is executed by the processor 501, it performs the functions defined in the system / apparatus of this disclosure embodiments. According to embodiments of this disclosure, the systems, apparatuses, modules, units, etc., described above can be implemented by computer program modules.

[0191] In one embodiment, the computer program may rely on a tangible storage medium such as an optical storage device or a magnetic storage device. In another embodiment, the computer program may also be transmitted and distributed in the form of signals over a network medium, and may be downloaded and installed via the communication section 509, and / or installed from a removable medium 511. The program code contained in the computer program can be transmitted using any suitable network medium, including but not limited to: wireless, wired, etc., or any suitable combination thereof.

[0192] According to embodiments of this disclosure, program code for executing the computer programs provided in embodiments of this disclosure can be written in any combination of one or more programming languages. Specifically, these computational programs can be implemented using high-level procedural and / or object-oriented programming languages, and / or assembly / machine languages. Programming languages ​​include, but are not limited to, languages ​​such as Java, C++, Python, "C", or similar programming languages. The program code can execute entirely on the user's computing device, partially on the user's device, partially on a remote computing device, or entirely on a remote computing device or server. In cases involving remote computing devices, the remote computing device can be connected to the user's computing device via any type of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computing device (e.g., via the Internet using an Internet service provider).

[0193] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in a block diagram or flowchart, and combinations of blocks in a block diagram or flowchart, may be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions. Those skilled in the art will understand that the features recited in the various embodiments and / or claims of this disclosure can be combined and / or combined in various ways, even if such combinations or combinations are not expressly described in this disclosure. In particular, the features described in the various embodiments and / or claims of this disclosure may be combined and / or combined in various ways without departing from the spirit and teachings of this disclosure. All such combinations and / or combinations fall within the scope of this disclosure.

[0194] The embodiments of this disclosure have been described above. However, these embodiments are for illustrative purposes only and are not intended to limit the scope of this disclosure. Although various embodiments have been described above, this does not mean that the measures in the various embodiments cannot be used advantageously in combination. The scope of this disclosure is defined by the appended claims and their equivalents. Various substitutions and modifications can be made by those skilled in the art without departing from the scope of this disclosure, and all such substitutions and modifications should fall within the scope of this disclosure.

Claims

1. A method for identifying a community, comprising: A connected component graph is constructed to represent at least one piece of business information. The connected component graph includes multiple data vertices and data edges connecting the data vertices. Each data vertex is used to indicate a business object, and the data edges are used to indicate business attribute information of the business association relationship between different business objects. Each data edge is configured with a business weight that matches the business attribute information. Based on the business weights of the data edges in the connected component graph, a target vertex is determined from the data vertices other than those in the current community, so that the target vertex is added to the current community to form a temporary community; wherein, the current community has a current community modularity, wherein the current community modularity is used to characterize the degree of closeness between the different business objects indicated by each vertex in the current community; Determine the temporary community modularity of the temporary community; If the modularity of the temporary community is less than the modularity of the current community, the current community is updated to the temporary community, wherein the temporary community serves as the latest current community. The iterative process involves determining the next target vertex from the data vertices that have not yet been added to the latest current community, and adding the next target vertex to the latest current community to form a new temporary community. This process continues until the temporary community modularity of the new temporary community is greater than or equal to the community modularity of the previous community, at which point the iterative operation ends. Output a temporary community whose community modularity is greater than or equal to that of the previous community.

2. The method according to claim 1, wherein, The step of determining the target vertex from the data vertices other than those in the current community based on the business weights of the data edges in the connected component graph includes: From the data vertices other than those in the current community, identify a plurality of data vertices that are adjacent to the vertices in the current community as candidate vertices; Based on the business weight of each candidate edge, the candidate vertex corresponding to the candidate edge with the largest business weight is determined as the target vertex, wherein the candidate edge is the data edge connecting each candidate vertex to the vertex in the current community.

3. The method according to claim 1, wherein, The determination of the temporary community modularity includes: Calculate the basic community modularity of the temporary community, wherein the basic community modularity is the sum of the vertex modularities of all temporary vertices in the temporary community, wherein the vertex modularity of each temporary vertex is the sum of the product of the previous vertex modularity of the temporary vertex and the weights of each data edge connecting the temporary vertex, wherein the previous vertex modularity is the vertex modularity of each temporary vertex when the target vertex has not joined the temporary community; Calculate the point detachment probability for each of the temporary vertices from the temporary community; The detachment probability of each point is summed to obtain the detachment probability of the temporary community. The temporary community modularity is calculated based on the basic community modularity and the community detachment probability.

4. The method according to claim 3, wherein, The calculation of the point detachment probability for each of the temporary vertices from the temporary community includes: Calculate the edge detachment probability of the non-community data edge connecting each of the temporary vertices, wherein the non-community data edge is: the data edge connecting the temporary vertex and a non-community vertex, wherein the non-community vertex is: the data vertex that is adjacent to the temporary vertex and is outside the temporary community; The detachment probability of each temporary vertex from the temporary community is calculated based on the detachment probability of each edge, the modularity of the basic community, the number of data vertices in the connected component graph, the number of temporary vertices, and the preset detachment probability.

5. The method according to claim 4, wherein, The probability of the edge detaching is: The vertex modularity of the temporary vertex is the sum of the products of the non-community data edge weights connecting the temporary vertex.

6. The method according to claim 1, wherein the business information includes business object information and business attribute information for characterizing the business relationships between the business objects; The construction of the connected component graph used to represent at least one piece of business information includes: Multiple original graph structure data are obtained from the message queue, wherein each original graph structure data includes original edge data and original vertex data associated with the original edge data, wherein the original edge data includes information used to characterize the business attribute, and the original vertex data is used to characterize the business object information; as well as The connected component graph is constructed based on multiple sets of the original graph structure data.

7. The method according to claim 6, wherein, Before retrieving multiple original graph structure data from the message queue, the original graph structure data is generated in the business system; The generation of the original graph structure data includes: Read the original business data table, wherein the original business data table includes multiple original business data entries, and each original business data entry is used to represent one piece of business information; Each piece of original business data is converted into original graph structure data that matches each piece of business information.

8. The method according to claim 6, wherein, The step of constructing the connected component graph based on multiple sets of the original graph structure data includes: Each piece of the original graph structure data is converted into graph encoded data that matches each piece of business information. Each piece of graph encoded data includes abstract edge data and abstract vertex data associated with the abstract edge data. The abstract edge data includes information used to represent the business attributes, and the abstract vertex data is used to represent the business object information. Both the abstract edge data and the abstract vertex data are represented in encoded form. The connected component graph is constructed based on multiple graph encoding data and the business attribute information.

9. A community identification device, comprising: A construction module is used to construct a connected component graph for representing at least one piece of business information. The connected component graph includes multiple data vertices and data edges connecting the data vertices. Each data vertex is used to indicate a business object, and the data edges are used to indicate business attribute information of the business association relationship between different business objects. Each data edge is configured with a business weight that matches the business attribute information. The first determining module is used to determine a target vertex from the data vertices other than those in the current community based on the business weights of the data edges in the connected component graph, so as to add the target vertex to the current community to form a temporary community; wherein, the current community has a current community modularity, wherein the current community modularity is used to characterize the degree of closeness between the different business objects indicated by each vertex in the current community; The second determining module is used to determine the temporary community module degree of the temporary community; If the modularity of the temporary community is less than the modularity of the current community, the current community is updated to the temporary community, wherein the temporary community serves as the latest current community. The iteration module is used to iteratively execute the operation of determining the next target vertex from the data vertices that have not been added to the latest current community, and adding the next target vertex to the latest current community to form a new temporary community, until the temporary community modularity of the new temporary community is greater than or equal to the community modularity of the previous community, and then the iteration operation ends. The output module is used to output temporary communities whose community module degree is greater than or equal to that of the previous community.

10. An electronic device, comprising: One or more processors; Memory, used to store one or more programs. Wherein, when the one or more programs are executed by the one or more processors, the one or more processors implement the method of any one of claims 1 to 8.

11. A computer-readable storage medium having stored thereon executable instructions that, when executed by a processor, cause the processor to perform the method of any one of claims 1 to 8.

12. A computer program product comprising computer-executable instructions, which, when executed, are used to implement the method of any one of claims 1 to 8.