WO2020207197A1 - 一种数据处理方法、装置、电子设备及存储介质 - Google Patents
一种数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- WO2020207197A1 WO2020207197A1 PCT/CN2020/079459 CN2020079459W WO2020207197A1 WO 2020207197 A1 WO2020207197 A1 WO 2020207197A1 CN 2020079459 W CN2020079459 W CN 2020079459W WO 2020207197 A1 WO2020207197 A1 WO 2020207197A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- vertex
- target
- wandering
- neighbor set
- vertices
- Prior art date
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 14
- 230000007704 transition Effects 0.000 claims abstract description 142
- 238000005295 random walk Methods 0.000 claims abstract description 75
- 238000000034 method Methods 0.000 claims abstract description 67
- 230000001186 cumulative effect Effects 0.000 claims description 81
- 238000009825 accumulation Methods 0.000 claims description 31
- 238000004590 computer program Methods 0.000 claims description 7
- 230000001960 triggered effect Effects 0.000 claims description 6
- 238000009827 uniform distribution Methods 0.000 claims description 6
- 238000005192 partition Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 16
- 238000004422 calculation algorithm Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/206—Drawing of charts or graphs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9536—Search customisation based on social or collaborative filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social networking
Definitions
- This application relates to the technical field of data processing, and in particular to a data processing method, device, electronic equipment and storage medium.
- Graphs are ubiquitous in real applications. Graphs can effectively express the correlation between entities, such as the correlation between different accounts in social media networks, the correlation between products and customers in e-commerce platforms, The relevance of web page information on the World Wide Web.
- a graph often corresponds to a large number of vertices and a large number of edges, and the edges and vertices are associated with a large amount of metadata, such as the user's gender, age, and geographic location. Therefore, higher requirements are put forward for fast and accurate graph calculation.
- the edge transition probabilities between vertices in the graph are stored in advance based on the edge transition probability matrix. Therefore, in the graph When a vertex performs a random walk, the edge transition probability between the vertex and the vertex can be directly obtained from the edge transition probability matrix to realize the random walk.
- the edge transition probability matrix corresponding to the graph occupies a very large system capacity.
- the embodiments of the present application provide a data processing method, device, electronic equipment, and storage medium, which can save the memory capacity of the system in graph computing tasks.
- One aspect of the embodiments of the present application provides a data processing method, including:
- Specify the target wandering vertex in the target graph determine the historical wandering vertex adjacent to the target wandering vertex, and obtain the first out-edge information transmitted from the historical wandering vertex to the target wandering vertex;
- first out-neighbor set refers to the next possible set of vertices to which the target wandering vertex swims; according to the first out-edge information, it is determined that the target wandering vertex and The edge transition probability between each vertex in the first out-of-neighbor set;
- One aspect of the embodiments of the present application provides a data processing device, including:
- the acquisition module is used to specify the target wandering vertex in the target graph, determine the historical wandering vertex adjacent to the target wandering vertex, and obtain the first historical wandering vertex passed from the historical wandering vertex to the target wandering vertex Outbound information
- the probability determination module is configured to obtain a first out-neighbor set, where the first out-neighbor set refers to the next possible set of vertices to which the target wandering vertex has swam; and determining all the vertices according to the first out-edge information The edge transition probability between the target wandering vertex and each vertex in the first out-neighbor set;
- a vertex determination module configured to determine a vertex to be wandered in the first out-of-neighbor set according to the edge transition probability
- the wandering module is configured to generate the second out-edge information corresponding to the target wandering vertex based on the first out-neighbor set, wander from the target wandering vertex to the to-be-wandered vertex, and combine the The second outgoing edge information is transmitted to the vertex to be wandered, and the vertex to be wandered is determined as a new target wandering vertex;
- the sequence generation module is used to generate a random walk sequence corresponding to the target walk vertex if the number of walks corresponding to the target walk vertex reaches the preset number of walk steps threshold.
- One aspect of the present application provides an electronic device, including: a processor and a memory; the processor is connected to the memory, wherein the memory is used to store program code, and the processor is used to call the program code to execute Like the method in one aspect of the embodiments of this application.
- Figure 1a is a schematic diagram of a distributed graph computing architecture provided by an embodiment of the present application.
- FIG. 1b is a schematic diagram of a scene of a vertex walk process provided by an embodiment of the present application
- FIG. 2 is a schematic flowchart of a data processing method provided by an embodiment of the present application.
- Fig. 3a is a schematic flowchart of a method for obtaining edge transition probability provided by an embodiment of the present application
- FIG. 3b is a schematic flowchart of another method for obtaining edge transition probability according to an embodiment of the present application.
- Figure 4a is a schematic diagram of a scenario for creating a hash table provided by an embodiment of the present application.
- FIG. 4b is a schematic diagram of an architecture for obtaining a neighbor set according to an embodiment of the present application.
- FIG. 5 is a schematic diagram of a scenario for determining the side information of a target provided by an embodiment of the present application
- FIG. 6 is a schematic flowchart of another data processing method provided by an embodiment of the present application.
- FIG. 7a is a schematic flowchart of a method for determining a vertex to be wandered according to an embodiment of the present application
- FIG. 7b is a schematic flowchart of a method for determining the weight accumulation sum of each vertex according to an embodiment of the present application
- FIG. 7c is a schematic flowchart of a method for determining the weight accumulation sum of the first vertex to be processed according to an embodiment of the present application
- FIG. 7d is a schematic flowchart of a method for determining the weight accumulation sum of the second vertex to be processed according to an embodiment of the present application
- FIG. 8 is a schematic diagram of a scenario for calculating a cumulative sum of weights provided by an embodiment of the present application.
- FIG. 9 is a schematic structural diagram of a data processing device provided by an embodiment of the present application.
- FIG. 10 is a schematic structural diagram of an electronic device provided by an embodiment of the present application.
- the graph as a network data structure, is composed of a non-empty set of vertices and a set describing the relationship between the vertices. Such relationships between vertices are called edges.
- FIG. 1a is a schematic diagram of a distributed graph computing architecture provided by an embodiment of the present application.
- the distributed graph processing platform f can communicate with equipment s1, equipment s2, equipment s3, and equipment s4, and equipment s1, equipment s2, equipment s3, and equipment s4 can communicate with each other, equipment s1 to equipment
- Each device in s4 stores data associated with each vertex in the target graph.
- four devices are used as an example for description. The specific number of devices is determined according to actual application scenarios, and there is no limitation here.
- the device s1 is associated with graph data z1, and the graph data z1 can have multiple vertices; the device s2 is associated with graph data z2, and the graph data z2 can have multiple vertices; the device s3 is associated with graph data z3, the graph data z3 can have multiple vertices; the above device s4 is associated with the graph data z4, and the graph data z4 can have multiple vertices.
- All the vertices associated with the aforementioned device s1, device s2, device s3, and device s4 can form a target graph, and a second-order random walk (Second-Order random walk) can be performed in the target graph subsequently.
- the so-called "second-order random walk” refers to selecting the next vertex based on the two nearest vertices, and the parameter used is the edge-to-edge transition probability matrix.
- Each vertex above may correspond to a user account, that is, the data associated with each vertex may be data information corresponding to a user account, such as user identity information, location information, etc.; for another example, each vertex above may correspond to A category of commodities, that is, the data associated with each vertex may be data information corresponding to a category of commodities, such as sales information, origin information, and so on.
- FIG. 1b is a schematic diagram of a scene of a vertex walk process provided by an embodiment of the present application.
- the second-order walk on the distributed graph computing system if the current vertex is the initial vertex in the second-order random walk task, the next vertex of the current vertex is determined by the relevant information of the current vertex. If the current vertex is not the initial vertex in the second-order random walk task, the next vertex of the current vertex is determined by the related information of the previous vertex of the current vertex and the related information of the current vertex. Therefore, in the embodiment of the present application, the historical wandering vertex b1, the target wandering vertex b2, and the waiting vertex b3 are taken as examples to illustrate the entire second-order random walk task.
- a target graph is processed.
- the target graph contains several vertices, each vertex corresponds to a device, and a device can correspond to multiple vertices, that is, historical wandering vertex b1, target
- the wandering vertex b2 and the to-be-wandering vertex b3 respectively correspond to one device, and the device corresponding to the historical wandering vertex b1, the device corresponding to the target wandering vertex b2, and the device corresponding to the wandering vertex b3 can be the same device, or Can be different devices.
- the target wandering vertex b2 is not the initial vertex of the second-order random walk task, and the historical wandering vertex b1 and the target wandering vertex b2 are adjacent wandering vertices.
- the wandering vertex sequence a1 is a vertex sequence generated by performing a second-order random walk task with the initial wandering vertex b4 as the starting point, and for a target graph containing several vertices
- Each vertex in the target graph can be used as an initial wandering vertex, and each initial wandering vertex corresponds to an independent second-order random walk task.
- the second-order random walk tasks corresponding to the walking vertices can be performed in parallel at the same time.
- the second-order random walk tasks corresponding to each of the above-mentioned initial walking vertices are carried out with itself as the starting point.
- the first-order random walk tasks respectively correspond to a certain number of steps
- the second-order random walk tasks corresponding to each initial walking vertex in the above-mentioned target graph together constitute the random walk tasks of the target graph.
- the wandering rules of the second-order random walk task corresponding to each initial wandering vertex are the same.
- the wandering vertex sequence a1 corresponding to the initial wandering vertex b4 is taken as an example for description.
- the device corresponding to the historical wandering vertex b1 is device s1
- the device corresponding to the target wandering vertex b2 is device s2
- the device corresponding to the to-be-wandered vertex b3 is device s3.
- the above device s1 can generate the outgoing edge information corresponding to the vertex b1.
- the outgoing edge information corresponding to the vertex b1 includes the identification information of the initial wandering vertex b4, the identification information of the aforementioned historical wandering vertex b1, and the identification information based on the aforementioned historical wandering vertex b1.
- the out-of-neighbor set refers to the set of the next possible vertex to which the current vertex swims.
- the above-mentioned out-neighbor set contains several vertices.
- the out-neighbor set of vertex b1 includes vertex 1, vertex 2 and vertex 3, which indicates that the next vertex to which the vertex b1 may travel is the vertex 1 , Vertex 2 and Vertex 3.
- the device s1 sends the outgoing edge information corresponding to the vertex b1 to the device s2 corresponding to the target wandering vertex b2, that is, it means to wander from the historical wandering vertex b1 to the target wandering vertex b2.
- the device corresponding to each vertex can obtain its own out-of-neighbor set from the graph computing platform f associated with the distributed graph computing system, and the device s2 can obtain the target game from the graph computing platform f associated with the distributed graph computing system. Take the out-neighbor set a2 of vertex b2.
- the device s2 obtains the out-neighbor set of vertex b1 based on the out-of-edge information of the received historical wandering vertex b1, and determines the out-neighbor set of vertex b1 according to the out-neighbor set of vertex b1 and the out-neighbor set of target wandering vertex b2.
- the zoom factor of each vertex in the set a2, and the weight between each vertex in the neighbor set a2 and the target wandering vertex b2 is scaled according to the zoom factor, and each vertex in the zoomed neighbor set a2 is scaled
- the corresponding weights are normalized to obtain the edge transition probability between each vertex in the neighbor set a2 and the target wandering vertex b2.
- the edge transition probability refers to the transition probability between the edges corresponding to the vertices.
- the edge transition probability between a certain vertex in the neighbor set a2 and the target wandering vertex refers to the historical wandering vertex and the target
- the probability distribution is obtained according to the edge transition probability corresponding to each vertex in the neighboring set a2, and the next vertex of the target wandering vertex is determined in the neighboring set a2 according to the probability distribution, that is, the vertex b3 to be wandered is determined.
- the edge transition probability of the target wandering vertex b2 to the vertex b3 to be wandered refers to: between the edge formed by the vertex b1 and the vertex b2 to the edge formed by the vertex b2 and the vertex b3 The transition probability.
- the aforementioned device s2 sends the edge information of the target wandering vertex b2 to the device s3 corresponding to the vertex to be wandered b3, and at this time, the vertex to be wandered b3 is determined as the new target wandering vertex b3,
- the target wandering vertex b2 is the historical wandering vertex of the new target wandering vertex b3.
- the out-of-neighbor set of the vertex b2 and the out-neighbor set of the target wandering vertex b3 in the outgoing edge information sent by the device s2 is used to determine the waiting for the target wandering vertex b3 Walk the vertices and continue the above-mentioned walk process, each subsequent vertices to which the subsequent walks will determine its own vertex to be walked, that is, the next vertex, to complete the random walk task corresponding to the initial walk vertex b4, and every subsequent vertex
- the rule for a vertex to determine its next vertex is consistent with the above-mentioned rule for determining the next vertex of the target wandering vertex.
- the device corresponding to the previous vertex can send the corresponding outbound information to the device corresponding to the next vertex, and the device corresponding to the next vertex can dynamically calculate its own vertex to be wandered and itself based on the outbound information sent by the previous vertex.
- the edge transition probability between each vertex in the out-of-neighbor set so as to determine its own vertices to be walked. In this process, there is no need to pre-cache the edge transition probability between vertices and vertices through the edge transition probability matrix, saving Increased system capacity.
- the graph processing platform f will generate a random walk sequence corresponding to each initial walk vertex, and each random walk sequence includes the number of vertices that have been walked.
- a vertex can be associated with a user account
- the type of user account can be a shopping account, a communication account, a current news account, etc., which can be based on the vertex and the vertex contained in the random walk sequence.
- FIG. 2 is a schematic flowchart of a data processing method provided by an embodiment of the present application, which can be applied to the distributed graph processing platform f shown in FIG. 1.
- the embodiment of the present application takes a certain vertex in the target graph as the initial wandering vertex, and the second-order random walk task of the initial wandering vertex corresponding to the certain vertex is taken as an example for description. It is understandable Yes, the second-order random walk task corresponding to each initial wandering vertex in the above-mentioned target graph is independent of each other.
- the wandering rules in the second-order random walk task corresponding to each initial wandering vertex in the above-mentioned target graph and all The walking rules in the second-order random walk task of the initial walking vertex corresponding to a certain vertex are consistent.
- the method may include:
- Step S101 Specify the target wandering vertex in the target graph, determine the historical wandering vertex adjacent to the target wandering vertex, and obtain the first outgoing edge transferred from the historical wandering vertex to the target wandering vertex information;
- the target graph includes multiple vertices, and one vertex is designated as the target wandering vertex.
- the initial wander vertex can be designated as the target wander vertex.
- the historical wandering vertex is the last traversed vertex of the target wandering vertex, and the device corresponding to the target wandering vertex receives the first outgoing edge sent by the device corresponding to the historical wandering vertex information.
- the first out-edge information corresponding to the historical wandering vertex is generated by the device corresponding to the historical wandering vertex, and the first out-edge information includes the identification of the initial wandering vertex of the current second-order random walk task Information, the identification information of the historical walk vertex, the remaining steps of the current second-order random walk task determined based on the position of the historical walk vertex, and the out-of-neighbor set of the historical walk vertex.
- the out-of-neighbor set of the historical wandering vertex includes a plurality of vertices, and the next wandering vertex of the historical wandering vertex (also called the vertex to be wandered of the historical wandering vertex) is the history
- a certain vertex in the out-neighbor set of a wandering vertex, and each vertex in the out-neighbor set of the historical wandering vertex has a different edge transition probability, that is, the wandering probability, and the historical wandering vertex. It can be called access probability.
- Step S102 Obtain a first out-of-neighbor set, where the first out-of-neighbor set refers to a set of next possible vertices to which the target wandering vertex swims; according to the first out-edge information, determining the target swim The edge transition probability between the walking vertex and each vertex in the first out-neighbor set;
- the first out-neighbor set refers to the out-neighbor set corresponding to the target wandering vertex
- the device corresponding to the target wandering vertex can directly obtain the first out-neighbor set in the associated graph computing platform.
- the device corresponding to each vertex can obtain the out-neighbor set of each vertex in the associated graph computing platform.
- the first out-edge information includes the out-neighbor set of the historical wandering vertex, and the device corresponding to the target wandering vertex is based on the out-neighbor set of the historical roaming vertex and the out-neighborhood of the target wandering vertex Set, determine the vertex type of each vertex in the out-neighbor set of the target wandering vertex, determine the zoom factor of each vertex according to the vertex type of each vertex, and compare each vertex according to the zoom factor of each vertex
- the weight between each vertex and the target wandering vertex is scaled, and the weight corresponding to each vertex after scaling is normalized to obtain the edge transition probability between each vertex and the target wandering vertex.
- the sum of the edge transition probabilities corresponding to all vertices in the out-neighbor set of the target wandering vertex is 1.
- Step S103 determining a vertex to be wandered in the first out-neighbor set according to the edge transition probability
- a random number is generated according to a uniform distribution, and the value range of the random number is 0 to 1 between.
- the cumulative sum of the edge transition probability of each vertex is generated by the edge transition probability corresponding to each vertex in the first out-of-neighbor set.
- the vertex to be wandered is determined by comparing the size relationship between the random number and the cumulative sum of edge transition probabilities of each vertex.
- the cumulative sum of the edge transition probability of each vertex when generating the cumulative sum of the edge transition probability of each vertex according to the edge transition probability corresponding to each vertex in the first out-of-neighbor set, first sort each vertex, and determine each vertex according to the sorted order The cumulative sum of edge transition probabilities. In this way, the cumulative sum of the transition probabilities of the two adjacent vertices forms a probability interval, and then the above random number is compared with each probability interval to determine the above vertex to be walked.
- the first out-neighbor set includes vertex 1, vertex 2, and vertex 3, the edge transition probability between vertex 1 and the target wandering vertex is 0.2, and the vertex 2 and the target wandering The edge transition probability between vertices is 0.3, and the edge transition probability between the vertex 3 and the target wandering vertex is 0.5.
- the identification information corresponding to the vertex 1 ie, the ID information of the vertex 1 is 18, the identification information of the vertex 2 is 9, and the identification information of the vertex 3 is 22.
- the sorting rule of vertex 3 is not limited and can be in any order.
- the cumulative sum of edge transition probabilities corresponding to each vertex it is calculated based on the sorted vertex 1, vertex 2, and vertex 3. For example, when the vertex 1, vertex 2, and vertex 3 are sorted into vertex 2, vertex 1, vertex 3, the cumulative sum of the edge transition probabilities of vertex 2, vertex 1, and vertex 3 is the edge transition probability of vertex 2, 0.3, , The sum of edge transition probabilities of vertex 2 and vertex 1 is 0.5, and the sum of edge transition probabilities of vertex 2 and vertex 1 and vertex 3 is 1.
- the cumulative edge transition probabilities corresponding to vertex 2, vertex 1, and vertex 3 can be understood as dividing a line segment of length 1 into three sub-line segments, assuming that the lengths of sub-line segments corresponding to vertex 2, vertex 1, and vertex 3 are respectively L2, L1, L3, the range of the sub-segment length L2 corresponding to vertex 2 is 0 ⁇ L2 ⁇ 0.3, the range of the sub-segment length L1 corresponding to vertex 1 is 0.3 ⁇ L3 ⁇ 0.5, and the sub-segment length L3 corresponding to vertex 3 The range of is 0.5 ⁇ L1 ⁇ 1.
- the numerical range of the cumulative sum of edge transition probabilities above the random number can be determined by binary search, because the cumulative sum of edge transition probabilities corresponding to each vertex in the first out-neighbor set after sorting is an increasing sequence of numbers Therefore, based on binary search, we can quickly and accurately determine which value range of the cumulative sum of edge transition probabilities the above random number falls within, so as to determine the edge transition probability corresponding to the vertex to be wandered according to the value range, and then determine the value range of the edge transition probability to be wandered vertex.
- Step S104 Generate second out-edge information corresponding to the target wandering vertex based on the first out-neighbor set, wander from the target wandering vertex to the to-be-wandered vertex, and combine the second out
- the edge information is transmitted to the vertex to be wandered, and the vertex to be wandered is determined as a new target wandering vertex;
- the device corresponding to the target wandering vertex can generate second out-edge information of the target wandering vertex, and the second out-edge information includes the identification information of the initial wandering vertex of the current second-order random walk task , The identification information of the target wandering vertex, the remaining steps of the current second-order random walk task determined based on the position of the target wandering vertex, and the first out-neighbor set of the target wandering vertex.
- the second edge information corresponding to the target wandering vertex to the device corresponding to the aforementioned vertex to be wandered, that is, it indicates that the device has wandered to the vertex to be wandered.
- the target wandering vertex as the historical wandering vertex of the vertex to be wandered
- the vertex to be wandered as the new target wandering vertex
- repeat the steps S101-S103 described above in a loop In the process of determining the next vertex of the new target wandering vertex, that is, determining the vertex to be wandered of the new target wandering vertex.
- Step S105 If the number of walks corresponding to the target walk vertex reaches a preset number of walk steps threshold, generate a random walk sequence corresponding to the target walk vertex;
- each vertex in the above target graph corresponds to a second-order random walk task with a determined number of steps, and the determined number of steps corresponding to the second-order random walk task of each vertex is based on the specific use in the walking process.
- the walking algorithm is determined.
- the number of walks of the second-order random walk task corresponding to the initial walk vertex may be used as the preset number of walks threshold.
- a random walk sequence corresponding to the target walk vertex is generated, that is, a random walk sequence with the initial walk vertex as the starting point is generated Wandering sequence.
- the graph processing platform for realizing the random walk task of the above target graph may be a GraphLite (Synchronous Graph Computing Framework) platform or a GAS (Distributed Graph Computing) type of graph processing platform.
- the device corresponding to the target wandering vertex receives the outbound information sent by the historical wandering vertex, so as to dynamically calculate the edge between the target wandering vertex and each vertex in the first out-neighbor set in real time. Transition probability, the vertex to be walked is finally determined. During this process, there is no need to pre-store the edge transition probability between the target walk vertex and each vertex in the first out-neighbor set, which saves the memory capacity of the system.
- FIG. 3a is a schematic flowchart of a method for obtaining edge transition probability according to an embodiment of the present application, which can be applied to the distributed graph processing platform f shown in FIG. 1. As shown in Figure 3a, it includes the following steps:
- Step S111 determining target outbound information according to the first outbound information
- determining the target outgoing edge information refers to determining the second out neighbor set of the historically walked vertices, and which method can be used to obtain the second out neighbor set of the historically walked vertices can be determined according to actual application scenarios.
- Step S112 according to the identification information of the target wandering vertex, the first out-neighbor set, the identification information of the historical wandering vertex in the target out-edge information, the identification information of the initial wandering vertex, and
- the second out-of-neighbor set corresponding to the historical wandering vertex separately determines the zoom factor between the target wandering vertex and each vertex in the first out-neighbor set;
- the aforementioned out-neighbor set includes the identification information of each vertex in the out-neighbor set (that is, the ID of the vertex), based on the identification information of the historical wandering vertex in the target out-edge information, and the value of the target wandering vertex.
- the relationship between the identification information, the identification information of the vertices in the first out-neighbor set, and the identification information of the vertices in the second out-neighbor set determine the vertex type of each vertex in the first out-neighbor set, according to the The vertex type of each vertex determines the zoom factor between each vertex and the target wandering vertex.
- Step S113 Acquire a transition weight between the target wandering vertex and each vertex in the first out-neighbor set in the target graph;
- the transfer weight between the target wandering vertex and each vertex in the first out-neighbor set is obtained in the target graph, and the transfer weight can represent the relationship between the vertex and the vertex.
- Step S114 Determine the edge transition probability between the target wandering vertex and each vertex in the first out-of-neighbor set according to the transition weight and the zoom factor.
- FIG. 3b is a schematic flowchart of another method for obtaining edge transition probability provided by an embodiment of the present application, which can be applied to the distributed graph processing platform f shown in FIG.
- Figure 3b also describes three parallel methods for obtaining target outbound information.
- step S201 describes the first method for obtaining target outbound information
- step S202-step S203 describes the second method for obtaining target outbound information.
- the method of side information, step S204-step S205 describes the third method of obtaining the target side information.
- the method may include:
- Step S201 If the first outgoing edge information corresponding to the historical wandering vertex includes a second outgoing neighbor set, determine the first outgoing edge information as the target outgoing edge information;
- the device corresponding to the target wandering vertex may receive the out-neighbor set corresponding to the historical wandering vertex sent by the device corresponding to the historical wandering vertex, wherein the out-neighbor set corresponding to the historical wandering vertex is also It can be called the second out-neighbor set, that is, the second out-neighbor set that carries the historical roaming vertex in the first out-edge information sent by the historical roaming vertex will carry the first out-neighbor set of the historical roaming vertex.
- the first outgoing edge information of the two outgoing neighbor set is directly used as the target outgoing edge information.
- Step S202 When the first outgoing edge information corresponding to the historical wandering vertex includes indication information, obtain the second information corresponding to the identification information of the historical wandering vertex from a hash table based on the indication message. Out-of-neighbor set
- the indication information when the indication information is included in the first out-edge information corresponding to the above-mentioned historical wandering vertex, it indicates that at this time, the historical wandering vertex is not included in the first out-edge information corresponding to the historical wandering vertex
- the indication information indicates that the second out-neighbor set is cached in the hash table, and the indication information is used to indicate that the device corresponding to the target wandering vertex can be obtained from the hash table The second out-neighbor set.
- the communication cost between the devices corresponding to the walking vertices that is, when the device corresponding to the above historical walking vertices sends the first outbound information of the historical walking vertices to the device of the target walking vertices, there is no need to send the information of the historical walking vertices.
- the second out-neighbor set sends an indication information with a very small amount of data, and the indication information may be a special identifier.
- the device corresponding to the above-mentioned target wandering vertex can obtain the information of the historical wandering vertex from the created hash table based on the above-mentioned instruction information and the identification information of the above-mentioned historical wandering vertex (that is, the ID information of the above-mentioned historical wandering vertex).
- the second neighbor set The following describes the creation of the hash table under three different caching strategies.
- FIG. 4a is a schematic diagram of a scenario for creating a hash table provided by an embodiment of this application; as shown in FIG. 4a, three methods for creating the hash table are described, that is, three kinds of cache vertices based on the hash table The caching mechanism of the out-of-neighbor set.
- the first method of creating a hash table is specifically that the target graph P includes a number of vertices, and the out-degree of each vertex in the target graph P is obtained in advance, where the out-degree of the vertex is used to indicate that the vertex is expected to visit The number of other vertices. The greater the out-degree of a vertex, the more times the vertex is expected to visit other vertices.
- the memory capacity of the system determines the maximum amount of out-neighbor set data that can be cached.
- the out-degree value corresponding to the vertex with the smallest out-degree value in the multiple out-neighbor sets that can be cached is called the first metric value threshold.
- the out-of-degree value reaches the first metric value threshold, it is determined that the historical wandering vertex belongs to a high-frequency access type vertex, and the second out-neighbor set is cached based on the identification information of the historical wandering vertex To the hash table; the first metric value threshold is determined based on the memory capacity of the system and the out-of-degree values of all vertices in the target graph; the hash table caches multiple frequently-occurring targets in the target graph Multiple out-of-neighbor sets corresponding to the visited vertices.
- Each vertex in the above target graph is judged whether it is accessed for the first time, and the out-neighbor set corresponding to the vertex judged to be accessed for the first time and whose out-degree value is not less than the above-mentioned first metric value threshold is cached in the Ha It is hoped that the creation of the hash table is completed, and the hash table f1 is obtained based on the vertex-first caching strategy of the maximum out degree.
- the second method for creating a hash table is specifically that the target graph P includes several vertices, and the in-degree of each vertex in the target graph P is obtained in advance, where the in-degree of the vertex is used to indicate that the vertex is expected to be visited The greater the in-degree of a vertex indicates that the vertex is expected to be visited more often.
- the maximum amount of out-neighbor set data that can be cached is determined.
- the out-neighbor set corresponding to the vertex with a larger in-degree value is preferentially cached.
- the in-degree value corresponding to the vertex with the smallest in-degree value in the multiple out-neighbor sets that can be cached is called the second metric value threshold.
- the in-degree value reaches the second metric value threshold, it is determined that the historically walked vertex belongs to a high-frequency access type of vertex, and the second out-of-neighbor set is cached based on the identification information of the historically walked vertex
- the hash table; the second metric value threshold is determined based on the memory capacity of the system and the in-degree values of all vertices in the target graph; the hash table caches multiple frequently accessed objects in the target graph Multiple out-neighbor sets corresponding to vertices.
- the vertex Y is visited for the first time.
- a visit that is, the first time to travel to vertex Y in the random walk task corresponding to a certain initial wandering vertex mentioned above, and all other vertices except the certain initial wandering vertex in the above target graph
- vertex Y is judged to be visited for the first time.
- Each vertex in the above target graph is judged whether it is accessed for the first time, and the out-neighbor set corresponding to the vertex judged to be accessed for the first time and whose in-degree value is not less than the above-mentioned second metric value threshold is cached to the hash Table, that is, the creation of the hash table is completed, and the hash table f2 is obtained based on the maximum in-degree vertex-first caching strategy.
- the third method for creating a hash table is specifically that the target graph P includes several vertices, and the number of visits of each vertex in the target graph P is obtained in advance.
- the memory capacity of the system that is, the size of the out-of-neighbor set that can be cached by the hash table
- the number of visits corresponding to the vertex with the smallest number of visits among the multiple out-of-neighbor sets that can be cached is called the third metric threshold.
- the third metric value threshold is determined based on the memory capacity of the system and the number of access times of all vertices in the target graph; the hash table caches multiple frequently accessed objects in the target graph Multiple out-neighbor sets corresponding to vertices.
- vertex Z is visited for the first time.
- a visit that is, the first time to walk to vertex Z in the random walk task corresponding to the above-mentioned certain initial wandering vertex, and all other vertices except the certain initial wandering vertex in the above-mentioned target graph
- vertex Z is judged to be visited for the first time.
- Each vertex in the above target graph is judged whether it is accessed for the first time, and the out-neighbor set corresponding to the vertex that is judged to be accessed for the first time and whose number of times is not less than the third metric value threshold is cached to the Ha
- the hope is that the creation of the hash table is completed, and the hash table f3 is obtained based on the vertex-first caching strategy of the maximum number of accessed times.
- the hash table can be created by caching key-value pairs in the above-mentioned hash table.
- a key-value pair is composed of the identification information of a vertex and its corresponding out-neighbor set, based on the correspondence of all initial wandering vertices in the target graph
- the random walk task of creating the above hash table can make the calculation amount of creating the hash table evenly amortized based on the random walk task corresponding to each initial wandering vertex, which improves the efficiency of creating the hash table.
- FIG. 4b is a schematic diagram of an architecture for obtaining a neighbor set according to an embodiment of the present application.
- the graph processing platform f in FIG. 4b is the graph processing platform f associated with the second-order wandering task of the target graph in FIG. 1a, and s1 and s2 are respectively two devices associated with the graph processing platform f in FIG. 1a.
- the created hash table L is cached in the cache system associated with the graph processing platform f.
- the graph processing platform f detects that the vertex 1 is visited for the first time, the graph The processing platform f will cache the out-neighbor set corresponding to the vertex 1 in the hash table L, the identification information of the vertex 1 is 13, and the identification information of the vertices included in the out-neighbor set of vertex 1 are respectively 14, 15, 16, as shown in FIG. 4b, the out-neighbor set of vertex 1 is cached in the hash table L in the form of key-value pairs.
- the device s2 When the device s2 receives the outgoing edge information sent by other devices associated with the graph processing platform f, and the outgoing edge information includes the identification information of the vertex 1 (that is, the vertex of the historical walk is the vertex 1) And the above-mentioned instruction information, the device s2 will send the identification information corresponding to vertex 1 to the above-mentioned graph processing platform f, and the graph processing platform f obtains the out-neighbor set corresponding to the vertex 1 from the hash table, and combines the The out-neighbor set corresponding to vertex 1 is returned to device s2.
- Step S203 Add the second out-neighbor set to the first out-edge information corresponding to the historically walked vertex, and determine the first out-edge information including the second out-neighbor set as the target out-edge information;
- the second out-neighbor set obtained in the hash table is added to the first out-edge information corresponding to the historically walked vertices, and it can be selected whether to discard the above-mentioned indication information, which will include the above-mentioned second
- the first outgoing side information of the outgoing neighbor set is called the target outgoing side information.
- Step S204 when it is determined that the historical wandering vertex and the target wandering vertex belong to a vertex in the same subgraph according to the graph division identification information, acquire the second out-of-neighbor set;
- the above-mentioned target graph may be divided into multiple subgraphs, and each subgraph includes multiple vertices. Devices corresponding to vertices in the same subgraph can mutually obtain the out-neighbor set corresponding to any vertex in the subgraph to which they belong.
- the above-mentioned graph division identification information is used to identify that the target wandering vertex and the historical wandering vertex belong to the same subgraph.
- the above-mentioned subgraph may refer to one device, that is, the vertices belonging to the same device belong to the same subgraph. Wherein, the above-mentioned sub-graph division of the target graph is completed before the random walk task of the target graph starts.
- the device corresponding to the target wandering vertex obtains the historical wandering from the associated graph computing platform The second out-neighbor set corresponding to the vertex.
- Step S205 Add the second out-neighbor set to the first out-edge information corresponding to the historical walk vertex, and determine the first out-edge information that includes the second out-neighbor set as the target out-edge information;
- the second out-of-neighbor set obtained above is added to the first out-edge information corresponding to the vertices of the historical walk, and the graph partition identification information can be selected whether to discard the first out-neighbor set containing the second out-of-neighbor set.
- the outbound information is called the target outbound information.
- FIG. 5 is a schematic diagram of a scenario for determining target out-edge information provided by an embodiment of the present application; as shown in FIG. 5, three ways to obtain target out-edge information are provided, corresponding to the device corresponding to the historical wandering vertex
- e1, e2, and e3 are respectively the first outgoing edge information sent by the device corresponding to the aforementioned historical wandering vertex to the device corresponding to the aforementioned target wandering vertex.
- the first outgoing edge information e1 that already includes the second outgoing neighbor set corresponding to the historically walked vertex is directly referred to as the target outgoing edge information e4.
- the first outgoing edge information e2 includes graph partition identification information, and when it is determined according to the graph partition identification information that the historical wandering vertex and the target wandering vertex belong to the same subgraph, it is based on the target wandering
- the device corresponding to the vertex obtains the second out-neighbor set of the historical wandering vertex in the associated graph computing platform, and adds the obtained second out-neighbor set to the first out-edge information e2, which will include the first out-of-edge information e2.
- the first outgoing edge information e2 of the two outgoing neighbor set is called the target outgoing edge information e4.
- the first outgoing edge information e3 includes indication information. Based on the indication information, the second outgoing neighbor set corresponding to the historical wandering vertex is obtained in the hash table through the identification information corresponding to the historical wandering vertex, and the The second outgoing neighbor set of is added to the first outgoing edge information e3, and the first outgoing edge information e3 including the second outgoing neighbor set is called the target outgoing edge information e4.
- Step S206 Obtain the first out-neighbor set
- the device corresponding to the target wandering vertex obtains the first out-neighbor set corresponding to the target wandering vertex in an associated graph computing platform.
- the device corresponding to each vertex can statically obtain its own neighbor information in the associated graph computing platform.
- Step S207 According to the identification information of the target wandering vertex, the first out-neighbor set, the identification information of the historical wandering vertex in the target out-edge information, the identification information of the initial wandering vertex, and The second out-neighbor set separately determines the zoom factor between the target wandering vertex and each vertex in the first out-neighbor set.
- Step S208 Acquire a transition weight between the target wandering vertex and each vertex in the first out-neighbor set in the target graph;
- the first out-neighbor set includes vertex 1 and vertex 2, the transfer weight between the target wandering vertex and the vertex 1 is 2, and the transfer between the target wandering vertex and the vertex 2 The weight is 3.
- Step S209 Determine the initial probability between the target wandering vertex and each vertex in the first out-of-neighbor set according to the transition weight and the zoom factor;
- the transfer weight corresponding to each vertex is respectively scaled, that is, the transfer weight corresponding to each vertex is multiplied by the zoom factor, and the zooming is performed.
- the transition weight is called the initial probability; the value range of the initial probability may be greater than one.
- Step S210 normalize the initial probability, and determine the edge transition probability between the target wandering vertex and each vertex in the first out-neighbor set based on the normalized initial probability;
- the initial probability corresponding to each vertex is normalized to obtain the edge transition probability between each vertex and the target wandering vertex, and the sum of the edge transition probabilities corresponding to each vertex Is 1.
- FIG. 6 is a schematic flowchart of another data processing method provided by an embodiment of the present application, which can be applied to the distributed graph processing platform f shown in FIG. 1.
- the method may include:
- Step S301 Obtain all vertices in the target graph, and determine each vertex in the target graph as an original vertex;
- Step S302 respectively determining the target number of walking steps for each original vertex, and synchronously triggering mutually independent random walking tasks for each of the original vertices based on the target number of walking steps;
- the target number of walking steps of each original vertex in the target graph is determined respectively, and the target number of walking steps corresponding to each original vertex is simultaneously measured for each
- Each primitive vertex triggers a random walk task with itself as the starting vertex and the number of walk steps corresponding to the target walk steps respectively.
- the random walk tasks corresponding to each primitive vertex are independent of each other and run in parallel.
- the above random walk algorithm can be Node2Vec (an algorithm that uses vector modeling for nodes in the graph) algorithm, second-order PageRank (a link analysis algorithm) algorithm, second-order SimRank (a collaborative filtering recommendation algorithm) algorithm, Any one of the second-order RWR (a restart random walk algorithm) algorithm is a certain second-order random walk algorithm.
- Step S303 Determine the initial wandering vertex among the original vertices that have triggered the random walk task, wander from the initial wandering vertex to the target wandering vertex, and determine the initial wandering vertex Is the historical wandering vertex adjacent to the target wandering vertex;
- the initial vertices are determined among the original vertices that have triggered the random walk task, and each of the original vertices that have triggered the random walk task may be determined as the initial vertices.
- Step S304 Obtain the first outgoing edge information corresponding to the historical wandering vertex adjacent to the target wandering vertex; the outgoing edge information corresponding to the historical wandering vertex is transferred from the historical wandering vertex to the target wandering Vertex
- the first outgoing edge information corresponding to the initial wandering vertex sent by the device of the aforementioned initial wandering vertex is obtained.
- Step S305 Determine target out-edge information according to the first out-edge information corresponding to the historical wandering vertex, and obtain the first out-neighbor set;
- step S305 For the specific implementation of step S305, reference may be made to the description of step S201 to step S207 in the embodiment corresponding to FIG. 3b, which will not be repeated here.
- Step S306 Determine the vertices in the first out-neighbor set that are the historical wandering vertices as the first type of vertices; set the vertices in the first out-neighbor set and the second out-neighbor set to be common Vertices of out-neighbor vertices are determined as second-type vertices; vertices other than the first-type vertices and the second-type vertices in the first out-neighbor set are determined as third-type vertices;
- the first out-of-neighbor set includes identification information of all vertices that the target wandering vertex may wander
- the second out-of-neighbor set includes identification information of all vertices that may be roamed by historically roaming vertices.
- the vertex whose identification information of the vertex in the first out-of-neighbor set is consistent with the identification information of the historically walked vertex is called the first type vertex, that is, the first out-neighbor set includes the historically walked vertex, which will be
- the vertex of the vertex of the historical walk is determined as the first type of vertex.
- the common vertex whose identification information of the vertices in the first out-neighbor set is the same as that of the vertices in the second out-neighbor set is called the second type vertex, that is, the first out-neighbor set and the second out-neighbor set include The same vertex (common vertex) of is determined as the second type vertex.
- the vertices in the out-neighbor set except for the first type vertices and the second type vertices are called the third type vertices.
- Step S307 Determine the zoom factor of each vertex in the first out-of-neighbor set according to the vertex type
- different types of vertices in the first out-neighbor set correspond to different zoom factors
- the zoom factor of each vertex is determined according to the vertex type of each vertex in the first out-neighbor set.
- the zoom factor corresponding to the first type vertex is 1
- the zoom factor corresponding to the second type vertex is 1/2
- the zoom factor corresponding to the third type vertex is 1/5.
- Step S308 Acquire a transition weight between the target wandering vertex and each vertex in the first out-neighbor set in the target graph;
- Step S309 Determine the initial probability between the target wandering vertex and each vertex in the first out-of-neighbor set according to the transition weight and the zoom factor;
- Step S310 normalize the initial probability, and determine the edge transition probability between the target wandering vertex and each vertex in the first out-neighbor set based on the normalized initial probability;
- step S308 to step S310 please refer to the description of step S209 to step S211 in the embodiment corresponding to FIG. 3b, which will not be repeated here.
- Step S311 Generate second out-edge information corresponding to the target wandering vertex based on the first out-neighbor set, wander from the target wandering vertex to the to-be-wandered vertex, and combine the second out Transferring edge information to the vertex to be swept, determining the target wandering vertex as a historical wandering vertex adjacent to the vertex to be wandering, and determining the vertex to be wandering as the target wandering vertex;
- Step S312 if the number of walks corresponding to the target wandering vertex reaches the threshold of wandering steps corresponding to the initial wandering vertex, a random walk sequence corresponding to the target wandering vertex is generated; the initial wandering vertex is The starting vertex in the random walk sequence;
- step S311 to step S312 For the specific implementation of the above step S311 to step S312, reference may be made to the description of step S104 to step S105 in the embodiment corresponding to FIG. 2, which will not be repeated here.
- the device corresponding to the target wandering vertex receives the out-edge information sent by the historical wandering vertices, so as to dynamically calculate the edge between the target wandering vertex and each vertex in the first out-neighbor set in real time. Transition probability, the vertex to be walked is finally determined. In this process, there is no need to pre-store the edge transition probability between the target walked vertex and each vertex in the first out-neighbor set, which saves the memory capacity of the system.
- Figure 7a is a schematic flowchart of a method for determining a vertex to be walked provided by an embodiment of the present application, which can be applied to the method shown in Figure 1 Distributed graph processing platform f.
- the method may include:
- the sorted vertices in the first out-neighbor set are vertex 1, vertex 2, vertex 3, where the edge transition probability between vertex 1 and the target wandering vertex is 0.3, and The edge transition probability between vertex 2 and the target wandering vertex is 0.4, and the edge transition probability between vertex 3 and the target wandering vertex is 0.3, then vertex 1, vertex 2, and vertex 3 are respectively
- the corresponding cumulative sum of edge transition probabilities is 0.3 of the edge transition probability corresponding to vertex 1, the sum of edge transition probabilities corresponding to vertex 1 and vertex 2 is 0.7, and the sum of edge transition probabilities corresponding to vertex 1 and vertex 2 and vertex 3 is 1.
- S402 Determine the cumulative sum of weights of each vertex in the first out-neighbor set according to the transition weight and the zoom factor between the target wandering vertex and each vertex in the first out-neighbor set.
- FIG. 7b is a schematic flowchart of a method for determining the weight accumulation sum of each vertex provided by an embodiment of the present application, which can be applied to the distributed graph processing platform f shown in FIG. 1.
- the method may include the following steps:
- Step S501 Determine each vertex in the first out-neighbor set as a target to-be-processed vertex
- the target vertex to be processed is determined in the first out-neighbor set, and the target vertex to be processed may be any vertex in the first out-neighbor set.
- Step S502 According to the identification information of the target vertex to be processed, the identification information and the zoom factor of the first type of vertex, the transfer weight between the first type of vertex and the target wandering vertex, the second The identification information and the zoom factor of the type of vertices, the transition weight between the second type of vertices and the target wandering vertices, and determining the cumulative sum of weights of the first to-be-processed vertices;
- Step S503 Determine the weight cumulative sum of the second vertex to be processed according to the identification information and the zoom factor of the third type vertex, and the transition weight between the third type vertex and the target wandering vertex;
- Step S504 Determine the weight cumulative sum of the target vertex to be processed according to the weight cumulative sum of the first vertex to be processed and the weight cumulative sum of the second vertex to be processed;
- the result obtained by adding the weight accumulation of the first vertex to be processed and the weight accumulation and sum of the second vertex to be processed is called the cumulative weight of the target vertex to be processed.
- each vertex in the first out-neighbor set is taken as the target to-be-processed vertex, and the cumulative sum of weights corresponding to each vertex in the first out-neighbor set is obtained through the method described in step S501 to step S504.
- Step S403 Generate random numbers based on uniform distribution and weight accumulation of each vertex in the first out-of-neighbor set;
- the random number is generated according to a uniform distribution based on the probability distribution determined by the cumulative weight of each vertex in the first out-neighbor set, and the value range of the random number is 0 to 1.
- Step S404 Determine the to-be-wandered vertex according to the random number and the numerical range of the cumulative sum of the edge transition probability of each vertex in the first out-of-neighbor set.
- FIG. 7c is a schematic flowchart of a method for determining the weight accumulation and sum of the first to-be-processed vertex provided by an embodiment of the present application, which can be applied to the distributed graph processing platform f shown in FIG.
- the method may include:
- Step S601 Sort the first type vertices and the second type vertices based on the value of the identification information of the vertices, and generate a first vertex array according to the sorted first type vertices and the second type vertices;
- the identification information corresponding to the first type of vertices in the first out-of-neighbor set and the identification information corresponding to the second type of vertices are sorted in ascending order, and after sorting
- the sequence formed by the identification information of the vertices of the first type and the vertices of the second type is called the above-mentioned first vertex array.
- the first vertex array includes vertex 1, vertex 2, vertex 3, vertex 1, vertex 2, vertex 3 are sorted into vertex 2, vertex 1, vertex 3 in the first vertex array, and the sorted vertex from 0
- An index is added to each vertex, that is, the index values of vertex 2, vertex 1, and vertex 3 are 0, 1, and 2, respectively.
- Step S602 Determine the first vertex based on the sorting relationship of each vertex in the first vertex array, according to the transition weight and the zoom factor between the target wandering vertex and each vertex in the first vertex array A cumulative sum of weights of each vertex in a vertex array, and generating a weight array according to the cumulative sum of weights of each vertex in the first vertex array;
- the transition weight corresponding to each vertex is scaled according to the scaling factor corresponding to each vertex in the first vertex array, that is, the scaling factor corresponding to each vertex is multiplied by its corresponding transition weight, and the scaling factor is
- the transfer weight after the multiples are multiplied is called the new transfer weight corresponding to each vertex.
- the weight cumulative sum of each vertex in the first vertex array is obtained according to the new transfer weight corresponding to each vertex, and according to each vertex in the first vertex array
- the ordering relationship of vertices and the weight of each vertex are accumulated and generated to generate the weight array.
- the first vertex array includes vertex 1, vertex 2, vertex 3, vertex 1, vertex 2, vertex 3 are sorted into vertex 2, vertex 1, vertex 3 in the first vertex array, and vertex 2 corresponds to the transition
- the weight and the zoom factor are 1 and 0.5 respectively
- the transfer weight and zoom factor corresponding to the vertex 1 are 2 and 0.8
- the transfer weight and zoom factor corresponding to the vertex 3 are 2 and 0.5 respectively, then the vertex 2, vertex 1.
- the new transition weights corresponding to vertex 3 are 0.5, 1.6, 1, respectively, and the cumulative sum of the weights corresponding to vertex 2, vertex 1, and vertex 3 is the new transition weight 0.5 of vertex 2 and the new transition of vertex 2 and vertex 1
- the resulting weight array is 0.5, 2.1, 3.1.
- Step S603 Search for vertices in the first vertex array whose identification information value is not greater than the value of the identification information of the target vertex to be processed, and determine all the vertices found as the first vertex to be processed;
- all vertices whose identification information is not greater than the identification information of the target vertices to be processed are searched in the foregoing first array as the first vertices to be processed.
- Step S604 Obtain the weight accumulation sum corresponding to the vertex with the largest value of the identification information of the vertices in the first to-be-processed vertex in the weight array, and determine the acquired weight accumulation sum as the value of the first to-be-processed vertex Cumulative sum of weights;
- the weight accumulation sum of the first vertex to be processed can be found in the weight array according to the determined index value.
- the above weight array is represented as aws[k], where k is the index value of each identification information, and the value range of k is 0, 1, 2...n in order.
- the vertex with the largest value of the identification information of the first vertex to be processed is the third point, that is, it is determined that the weight accumulation of the first vertex to be processed and the corresponding index value is 2, so in the weight array
- the cumulative sum of weights of the first to-be-processed vertices obtained in is aws[2].
- FIG. 7d is a schematic flowchart of a method for determining the weight accumulation and sum of the second to-be-processed vertex provided by an embodiment of the present application, which can be applied to the distributed graph processing platform f shown in FIG.
- the method may include:
- Step S701 Sort all the vertices in the first out-neighbor set based on the value of the identification information of the vertices, and generate a second vertex array according to all the vertices after sorting;
- each vertex after sorting is expressed based on the identification information of each vertex Then, the array formed by the identification information of each vertex after sorting is called the second vertex array.
- Step S702 Search for all vertices in the second vertex array whose identification information is not greater than the identification information value of the target vertex to be processed, determine all the vertices found as the vertices to be selected, and then All vertices except the first vertex to be processed among the selected vertices are determined as the second vertex to be processed.
- Step S703 Determine the cumulative sum of weights of the second vertex to be processed according to the transition weight and zoom factor of each of the target wandering vertex and the second vertex to be processed;
- each of the second to-be-processed vertices acquired above is the third type of vertex described above, and the zoom factor corresponding to each of the second to-be-processed vertices is the same, and according to each The scaling factor corresponding to each vertex scales the corresponding transfer weight of each vertex.
- the transfer weight corresponding to each vertex after scaling is called the new transfer weight corresponding to each vertex, and each vertex is obtained
- the corresponding new transition weight sum is called the cumulative sum of weights of the second vertex to be processed.
- the vertex to be walked is determined according to the numerical range of the random number and the cumulative sum of the edge transition probability of each vertex in the first out-neighbor set; specifically, for example, the first out-of-neighbor set
- the neighbor set includes vertex 1, vertex 2, and vertex 3, and the cumulative sum of edge transition probabilities of vertex 1, vertex 2, and vertex 3 are 0.3, 0.7, and 1 in order.
- the cumulative sum of edge transition probabilities corresponding to vertex 1, vertex 2, and vertex 3 can be understood as dividing a line segment of length 1 into three sub-line segments, assuming the length of sub-line segments corresponding to vertex 1, vertex 2, and vertex 3 L1, L2, L3, the range of the sub-segment length L1 corresponding to vertex 1 is 0 ⁇ L1 ⁇ 0.3, the range of the sub-segment length L2 corresponding to vertex 2 is 0.3 ⁇ L2 ⁇ 0.7, and the sub-segment length corresponding to vertex 3 The range of L3 is 0.7 ⁇ L3 ⁇ 1.
- FIG. 8 is a schematic diagram of a scenario for calculating the cumulative sum of weights provided by an embodiment of the present application.
- the array c1 is an array in which the identification information of all vertices in the first out-of-neighbor set is arranged from small to large, which can be called the second vertex array mentioned above.
- the second vertex array c1 includes 8
- the identification information of the 8 vertices are 2, 5, 8, 17, 23, 64, 77, 98 respectively.
- the index set d1 is a set of indexes corresponding to each vertex in the array c1, and the identification information
- the index of the vertex with identification information of 2 is 0, the index of the vertex with identification information of 5 is 1, the index of the vertex with identification information of 8 is 2, the index of the vertex with identification information of 17 is 3, and the index of the vertex with identification information of 23
- the index of the vertex with the identification information of 64 is 5, the index of the vertex with the identification information of 77 is 6, and the index of the vertex with the identification information of 98 is 7.
- the array c2 is an array in which the identification information of the first-type vertices and the second-type vertices in the array c1 are arranged from small to large, which can be referred to as the aforementioned first vertex array.
- the first vertex array includes 3 vertices, and the identification information of the 3 vertices are 8, 23, and 64 respectively.
- the vertices with the identification information of 8 are the first type vertices
- the vertices with the identification information of 23 and the vertices with the identification information of 64 are the second type vertices.
- Array c3 is the cumulative sum of weights corresponding to each vertex in array c2.
- Array c3 can be called the above-mentioned weight array. It is assumed that the difference between each vertex in the first out-of-neighbor set and the target walking vertex is The transition weights are all 1, the zoom factor between the first type vertex and the target wandering vertex is 1/p, the zoom factor between the second type vertex and the target wandering vertex is 1, and the third type vertex is The zoom factor between the vertices of the target is 1/q.
- the cumulative sum of weights corresponding to the vertices with the identification information of 8 in the array c2 is 1/p
- the cumulative sum of weights corresponding to the vertices with the identification information of 23 in the array c2 is 1+1/p
- the identification information in the array c2 The cumulative sum of weights corresponding to the 64 vertices is 1+2/p.
- each weight in the array c3 corresponds to an index 0, 1, and 2, as shown in Figure 8, the index set d3 is a collection of indexes of the cumulative sum of weights corresponding to each vertex in the array c3, and the identification information is 8.
- the cumulative sum of weights corresponding to the vertices is 1/p and the index is 0, the cumulative sum of weights corresponding to the vertices with identification information of 23 is 1+1/p, and the index is 1, and the cumulative sum of weights corresponding to the vertices with identification information of 64 is 1.
- the index of +2/p is 2.
- the second vertex array c1 O[k]
- the first vertex array c2 node[i]
- the weight array c3 as aws[j].
- search for the vertices with the identification information not greater than 17 in the first vertex array c2 and find the vertex with the identification information of 8 node[ 0]
- find the weight accumulation sum 1/p corresponding to the vertex with the identification information of 8 in the weight array that is, aws[0]
- use 1/p corresponding to the found aws[0] as the corresponding first vertex to be processed The cumulative sum of weights.
- the subtracted result is 3, that is, the vertex with the identification information of 17 is in the first output above
- the weight of the second to-be-processed vertices If the cumulative sum is 3/q, the weight cumulative sum of the target vertex 17 to be processed is the cumulative weight of the first vertex to be processed and the weight cumulative sum of the second vertex to be processed, which is 1/p+3/q.
- the above-mentioned first vertex array c1 and weight array c3 are intermediate arrays for calculating the cumulative sum of weights corresponding to the first vertex to be processed and the cumulative sum of weights corresponding to the second vertex to be processed.
- the device corresponding to the target wandering vertex receives the out-edge information sent by the historical wandering vertices, so as to dynamically calculate the edge between the target wandering vertex and each vertex in the first out-neighbor set in real time. Transition probability, the vertex to be walked is finally determined. In this process, there is no need to pre-store the edge transition probability between the target walked vertex and each vertex in the first out-neighbor set, which saves the memory capacity of the system.
- FIG. 9 is a schematic structural diagram of a data processing apparatus provided by an embodiment of the present application.
- the data processing device 900 can be applied to the distributed graph processing platform f shown in FIG. 1, and specifically includes: an acquisition module 901, a probability determination module 902, a vertex determination module 903, a wandering module 904, Sequence generation module 905;
- the obtaining module 901 is used to specify the target wandering vertex in the target graph, determine the historical wandering vertex adjacent to the target wandering vertex, and obtain the first wandering vertex passed from the historical wandering vertex to the target wandering vertex One side information;
- the probability acquisition module 902 is configured to acquire a first out-of-neighbor set, where the first out-of-neighbor set refers to a set of the next possible vertex to which the target wandering vertex can swim; and determining according to the first out-edge information Edge transition probability between the target wandering vertex and each vertex in the first out-neighbor set;
- a vertex determining module 903, configured to determine a vertex to be wandered in the first out-of-neighbor set according to the edge transition probability
- the wandering module 904 is configured to generate second edge information corresponding to the target wandering vertex based on the first out-neighbor set, wander from the target wandering vertex to the to-be-wandered vertex, and combine all
- the second outgoing edge information is transmitted to the vertex to be swam, and the vertex to be swam is determined as a new target vertex;
- the sequence generating module 905 is configured to generate a random walk sequence corresponding to the target wandering vertex if the number of walks corresponding to the target wandering vertex reaches the preset number of wandering steps threshold.
- step S101 For specific functional implementations of the acquisition module 901, the probability determination module 902, the vertex determination module 903, the first walk module 904, and the sequence generation module 905, please refer to step S101 to step S105 in the embodiment corresponding to FIG. 2. Do not repeat them here.
- the obtaining module 901 includes:
- the first determining unit 9011 is configured to obtain all vertices in the target graph, and determine each vertex in the target graph as an original vertex;
- the trigger unit 9012 is configured to determine the target number of walking steps for each original vertex, and to synchronously trigger a mutually independent random walking task for each original vertex based on the target number of walking steps;
- the wandering unit 9013 is used to determine an initial wandering vertex among the original vertices that have triggered the random walk task, to swim from the initial wandering vertex to the target wandering vertex, and to move the initial wandering vertex
- the vertex is determined as the historical wandering vertex adjacent to the target wandering vertex.
- the probability determination module 902 includes:
- the information determining unit 9021 is configured to determine target outbound information according to the first outbound information
- the zoom factor determining unit 9022 is configured to determine the identification information of the historically-traveled vertex in the target out-of-neighbor set, the identification information of the historically-traveled vertex, and the initial walking
- the identification information of the vertices and the second out-neighbor set corresponding to the historical wandering vertex respectively determine the zoom factor between the target wandering vertex and each vertex in the first out-neighbor set;
- a transition weight determining unit 9023 configured to obtain, in the target graph, the transition weight between the target wandering vertex and each vertex in the first out-neighbor set;
- the edge transition probability determination unit 9024 is configured to determine the edge transition probability between the target wandering vertex and each vertex in the first out-neighbor set according to the transition weight and the zoom factor.
- the zoom factor determining unit 9022 is configured to, according to the identification information of the target wandering vertex, the first out-neighbor set, and the identification information of the historical wandering vertex in the target out-edge information And the second out-neighbor set separately determines the vertex type of each vertex in the first out-neighbor set; and determines the zoom factor of each vertex in the first out-neighbor set according to the vertex type.
- the zoom factor determining unit 9022 is configured to determine a vertex in the first out-of-neighbor set that is the historical wandering vertex as a first-type vertex; Vertices whose vertices in the second out-neighbor set are common out-neighbor vertices are determined as second-type vertices; vertices in the first out-neighbor set except for the first type vertices and the second type vertices Determined as the third type of vertex.
- the vertex determination module 903 includes:
- the first accumulation and determination unit 9031 is configured to determine each of the first out-neighbor set according to the edge transition probability between the target wandering vertex and each vertex in the first out-neighbor set Cumulative sum of edge transition probabilities of vertices;
- the second accumulation and determination unit 9032 is configured to determine the first out-neighbor set in the first out-neighbor set according to the transition weight and the zoom factor between the target wandering vertex and each vertex in the first out-neighbor set Cumulative sum of weights of each vertex;
- a random number generating unit 9033 configured to accumulate and generate a random number based on the uniform distribution and the weight of each vertex in the first out-of-neighbor set;
- the vertex determining unit 9034 is configured to determine the vertex to be wandered according to the random number and the value range of the cumulative sum of the edge transition probability of each vertex in the first out-neighbor set.
- the second accumulation and determination unit 9032 includes:
- the first accumulation and determination subunit 90322 is configured to determine the distance between the first type vertex and the target wandering vertex according to the identification information of the target vertex to be processed, the identification information and the zoom factor of the first type vertex The transfer weight of the second type vertex, the identification information and zoom factor of the second type vertex, the transfer weight between the second type vertex and the target wandering vertex, and determine the cumulative sum of the weights of the first vertex to be processed;
- the second accumulation and determination subunit 90323 is configured to determine the second vertex to be processed according to the identification information and the zoom factor of the third type vertex, and the transition weight between the third type vertex and the target wandering vertex Cumulative sum of weights;
- the third cumulative sum determination subunit 90324 is configured to determine the weight cumulative sum of the target vertex to be processed according to the weight cumulative sum of the first vertex to be processed and the weight cumulative sum of the second vertex to be processed.
- the electronic device 1000 may be the distributed graph processing platform f shown in FIG. 1, specifically including: a processor 1001, a network interface 1004, and a memory 1005.
- the electronic device 1000 may also It includes: a user interface 1003 and at least one communication bus 1002.
- the communication bus 1002 is used to implement connection and communication between these components.
- the user interface 1003 may include a display (Display) and a keyboard (Keyboard), and the optional user interface 1003 may also include a standard wired interface and a wireless interface.
- the network interface 1004 may optionally include a standard wired interface and a wireless interface (such as a WI-FI interface).
- the memory 1005 may be a high-speed RAM memory, or a non-volatile memory (non-volatile memory), such as at least one disk memory.
- the memory 1005 may also be at least one storage device located far away from the foregoing processor 1001.
- the memory 1005 as a computer storage medium may include an operating system, a network communication module, a user interface module, and a device control application program.
- the network interface 1004 can provide network communication functions; and the user interface 1003 is mainly used to provide an input interface for the user; and the processor 1001 can be used to call the device control application stored in the memory 1005 A program to implement the description of the data processing method in any one of the preceding embodiments.
- the electronic device 1000 described in the embodiment of the present application can execute the description of the data processing method in any one of the preceding embodiments, and can also execute the data processing device described in the embodiment corresponding to FIG. 9 above.
- the description of 1 will not be repeated here.
- the description of the beneficial effects of using the same method will not be repeated.
- the embodiment of the present application also provides a computer storage medium, and the computer storage medium stores the aforementioned computer program executed by the data processing apparatus 1, and the computer program includes Program instructions.
- the processor executes the program instructions, it can execute the description of the data processing method in any one of the preceding embodiments. Therefore, it will not be repeated here.
- the description of the beneficial effects of using the same method will not be repeated.
- the program can be stored in a computer readable storage medium. During execution, it may include the procedures of the above-mentioned method embodiments.
- the storage medium may be a magnetic disk, an optical disc, a read-only memory (Read-Only Memory, ROM), or a random access memory (Random Access Memory, RAM), etc.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Strategic Management (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Business, Economics & Management (AREA)
- Software Systems (AREA)
- Economics (AREA)
- Marketing (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Primary Health Care (AREA)
- Health & Medical Sciences (AREA)
- Tourism & Hospitality (AREA)
- Development Economics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Processing Or Creating Images (AREA)
Abstract
一种数据处理方法、装置、电子设备及存储介质,该方法包括:在目标图中指定目标游走顶点,确定与所述目标游走顶点相邻的历史游走顶点,获取由所述历史游走顶点传递到所述目标游走顶点的第一出边信息(S101);获取第一出邻集合,所述第一出邻集合是指所述目标游走顶点游走到的下一个可能顶点的集合;根据所述第一出边信息,确定所述目标游走顶点与所述第一出邻集合中每个顶点之间的边转移概率(S102);根据所述边转移概率在所述第一出邻集合中确定待游走顶点(S103);基于所述第一出邻集合生成所述目标游走顶点对应的第二出边信息,从所述目标游走顶点游走至所述待游走顶点,并将所述第二出边信息传递至所述待游走顶点,将所述待游走顶点确定为新的目标游走顶点(S104);若目标游走顶点对应的游走次数达到预设游走步数阈值,则生成目标游走顶点对应的随机游走序列(S105)。
Description
本申请要求于2019年4月8日提交中国专利局、申请号为201910276296.2、申请名称为“一种数据处理方法及装置”的中国专利申请的优先权。
本申请涉及数据处理的技术领域,尤其涉及一种数据处理方法、装置、电子设备及存储介质。
发明背景
图(Graph)在现实应用中无处不在,图能够有效地表达实体之间的关联性,比如社交媒体网络中不同账号之间的关联性、电商平台中商品与客户之间的关联性、万维网的网页信息之间的关联性。但是,图往往对应有大量的顶点与大量的边,并且边与顶点又会关联大量的元数据,比如用户的性别、年龄、地理位置等。因此,对能够快速准确地进行图计算提出了更高的要求。
现有技术中,在对图中所有顶点通过随机游走的算法进行图计算之前,会预先将图中顶点与顶点之间的边转移概率基于边转移概率矩阵进行存储,因此,在对图中顶点进行随机游走时,可以直接从边转移概率矩阵中获取顶点与顶点之间的边转移概率以实现随机游走。但是,由于图包含的顶点数量巨大,图对应的边转移概率矩阵占系统的容量也非常大。
发明内容
本申请实施例提供了一种数据处理方法、装置、电子设备及存储介质,可在图计算任务中节省系统的内存容量。
本申请实施例一方面提供了一种数据处理方法,包括:
在目标图中指定目标游走顶点,确定与所述目标游走顶点相邻的历史游走顶点,获取由所述历史游走顶点传递到所述目标游走顶点的第一出边信息;
获取第一出邻集合,所述第一出邻集合是指所述目标游走顶点游走到的下一个可能顶点的集合;根据所述第一出边信息,确定所述目标游走顶点与所述第一出邻集合中每个顶点之间的边转移概率;
根据所述边转移概率在所述第一出邻集合中确定待游走顶点;
基于所述第一出邻集合生成所述目标游走顶点对应的第二出边信息,从所述目标游走顶点游走至所述待游走顶点,并将所述第二出边信息传递至所述待游走顶点,将所述待游走顶点确定为新的目标游走顶点;
若目标游走顶点对应的游走次数达到预设游走步数阈值,则生成目标游走顶点对应的随机游走序列。
本申请实施例一方面提供了一种数据处理装置,包括:
获取模块,用于在目标图中指定目标游走顶点,确定与所述目标游走顶点相邻的历史游走顶点,获取由所述历史游走顶点传递到所述目标游走顶点的第一出边信息;
概率确定模块,用于获取第一出邻集合,所述第一出邻集合是指所述目标游走顶点游走到的下一个可能顶点的集合;根据所述第一出边信息,确定所述目标游走顶点与所述第一出邻集合中每个顶点之间的边转移概率;
顶点确定模块,用于根据所述边转移概率在所述第一出邻集合中确定待游走顶点;
游走模块,用于基于所述第一出邻集合生成所述目标游走顶点对应的第二出边信息,从所述目标游走顶点游走至所述待游走顶点,并将所述第二出边信息传递至所述待游走顶点,将所述待游走顶点确定为新的目标游走顶点;
序列生成模块,用于若目标游走顶点对应的游走次数达到预设游走步数阈值,则生成目标游走顶点对应的随机游走序列。
本申请一方面提供了一种电子设备,包括:处理器和存储器;所述处理器和存储器相连,其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如本申请实施例中一方面中的方法。
本申请实施例另一方面提供了一种计算机存储介质,该计算机存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令当被处理器执行时使该处理器执行上述一方面中的方法。
附图简要说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请实施例提供的一种分布式图计算的架构示意图;
图1b是本申请实施例提供的一种顶点游走过程的场景示意图;
图2是本申请实施例提供的一种数据处理方法的流程示意图;
图3a是本申请实施例提供的一种获取边转移概率方法的流程示意图;
图3b是本申请实施例提供的另一种获取边转移概率方法的流程示意图;
图4a是本申请实施例提供的一种创建哈希表的场景示意图;
图4b是本申请实施例提供的一种获取出邻集合的架构示意图;
图5是本申请实施例提供的一种确定目标出边信息的场景示意图;
图6是本申请实施例提供的另一种数据处理方法的流程示意图;
图7a是本申请实施例提供的一种确定待游走顶点方法的流程示意图;
图7b是本申请实施例提供的一种确定每个顶点的权重累积和方法的流程示意图;
图7c是本申请实施例提供的一种确定第一待处理顶点的权重累积和方法的流程示意图;
图7d是本申请实施例提供的一种确定第二待处理顶点的权重累积和方法的流程示意图;
图8是本申请实施例提供的一种计算权重累积和的场景示意图;
图9是本申请实施例提供的一种数据处理装置的结构示意图;
图10是本申请实施例提供的一种电子设备的结构示意图。
实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请实施例中,图作为一种网状数据结构,是由非空的顶点集合和一个描述顶点之间关系的集合组成。这种顶点之间的关系称为边。请参见图1a,是本申请实施例提供的一种分布式图计算的架构示意图。如图1a所示,分布式图处理平台f可以与设备s1、设备s2、设备s3、设备s4进行通信,且设备s1、设备s2、设备s3、设备s4之间可以互相通信,设备s1至设备s4中每个设备均存储有目标图中各个顶点所关联的数据。这里以4个设备为例进行说明,设备的具体个数根据实际应用场景决定,此处不做限制。
其中,上述设备s1中关联有图数据z1,图数据z1中可以有多个顶点;上述设备s2中关联有图数据z2,图数据z2中可以有多个顶点;上述设备s3中关联有图数据z3,图数据z3中可以有多个顶点;上述设备s4中关联有图数据为z4,图数据z4中可以有多个顶点。
上述设备s1、设备s2、设备s3、设备s4关联的所有顶点可以构成一个目标图,后续可以在该目标图中进行二阶随机游走(Second-Order random walk)。所谓“二阶随机游走”是指基于最近的两个顶点选择下一个顶点,使用的参数是边到边的转移概率矩阵。
上述每个顶点可以对应于一个用户账号,即所述每个顶点所关联的数据可以是一个用户账号对应的数据信息,比如用户身份信息、位置信息等;又例如,上述每个顶点可以对应于一类商品,即所述每个顶点所关联的数据可以是一类商品对应的数据信息,比如销量信息、产地信息等。
请一并参见图1b,是本申请实施例提供的一种顶点游走过程的场景示意图。由于针对分布式图计算系统上的二阶游走过程中,当前顶点若是二阶随机游走任务中的初始顶点,则当前顶点的下一顶点是由当前顶点的相关信息决定的。若当前顶点不是二阶随机游走任务中的初始顶点,则当前顶点的下一个顶点是由当前顶点的上一个顶点的相关信息与当前顶点的相关信息决定的。因此,本申请实施例以历史游走顶点b1、目标游走顶点b2、待游走顶点b3为例来说明整个二阶随机游走任务。
在分布式图计算系统中,针对一个目标图进行处理,所述目标图中包含若干个顶点,每一个顶点对应于一个设备,一个设备可对应于多个顶点,即历史游走顶点b1、目标游走顶点b2、待游走顶点b3分别都对应于一个设备,且历史游走顶点b1对应的设备、目标游走顶点b2对应的设备、待游走顶点b3对应的设备可以是同一设备,也可以是不同设备。其中,目标游走顶点b2不是二阶随机游走任务的初始顶点,历史游走顶点b1与目标游走顶点b2为相邻游走顶点。
具体的,如图1b所示,游走顶点序列a1是以初始游走顶点b4为起始点并进行二阶随机游走任务所生成的一个顶点序列,其中,对于一个包含若干个顶点的目标图的二阶随机游走任务,所述目标图中的每一个顶点都可以作为初始游走顶点,且每个初始游走顶点都对应于一个独立的二阶随机游走任务,上述每一个初始游走顶点对应的二阶随机游走任务可以同时并行进行,上述每一个初始游走顶点对应的二阶随机游走任务都是以自身为起始点进行的,上述每一个初始游走顶点对应的二阶随机游走任务分别对应有一个确定步数,上述目标图中每一个初始游走顶点对应的二阶随机游走任务一起构成了所述目标图的随机游走任务。上述每一个初始游走顶点对应的二阶随机游走任务的游走规则一致,这里以上述初始游走顶点b4对应的游走顶点序列a1为例进行说明。
此处,假设上述历史游走顶点b1对应的设备是设备s1,上述目标游走顶点b2对应的设备是设备s2,上述待游走顶点b3对应的设备是设备s3。上述设备s1可以生成顶点b1对应的出边信息,所述顶点b1对应的出边信息中包括初始游走顶点b4的标识信息、上述历史游走顶点b1的标识信息、基于上述历史游走顶点b1的位置确定的所述初始游走顶点b4对应的二阶随机游走任务的剩余步数、所述历史游走顶点b1的出邻集合。其中,所述出邻集合是指当前顶点游走到的下一个可能顶点的集合。上述出邻集合中包含若干个顶点,例如,顶点b1的出邻集合中包括顶点1、顶点2和顶点3,则表明所述顶点b1的下一个可能会游走到的顶点为所述顶点1、顶点2和顶点3中某一个顶点。
上述设备s1发送顶点b1对应的出边信息至目标游走顶点b2对应的设备s2,即表示从上述历史游走顶点b1游走至所述目标游走顶点b2。每个顶点对应的设备可以从分布式图计算系统关联的图计算平台f中获取自己的出邻集合,所述设备s2可以从分布式图计算系统关联的图计算平台f中获取所述目标游走顶点b2的出邻集合a2。所述设备s2通过接收到的历史游走顶点b1的出边信息获得顶点b1的出邻集合,并根据顶点b1的出邻集合与目标游走顶点b2的出邻集合,确定在所述出邻集合a2中每个顶点的缩放倍数,根据所述缩放倍数分别对出邻集合a2中每一个顶点与目标游走顶点b2之间的权重进行缩放,将缩放后的出邻集合a2中每个顶点对应的权重归一化,得到出邻集合a2中每个顶点对应与上述目标游走顶点b2之间的边转移概率。
所述边转移概率是指顶点对应的边之间的转移概率,例如出邻集合a2中某个顶点与所述目标游走顶点之间的边转移概率是指,所述历史游走顶点与目标游走顶点构成的边到所述目标游走顶点与所述出邻集合a2中某个顶点构成的边之间的转移概率。
根据出邻集合a2中每个顶点对应的边转移概率得到概率分布,根据所述概率分布在出邻集合a2中确定所述目标游走顶点的下一个顶点,即确定待游走顶点b3。其中,所述目标游走顶点b2到所述待游走顶点b3的边转移概率即是指:上述顶点b1与顶点b2所构成的边到所述顶点b2与上述顶点b3所构成的边之间的转移概率。
上述设备s2将所述目标游走顶点b2的出边信息发送至所述待游走顶点b3对应的设备s3,此时,将所述待游走顶点b3确定为新的目标游走顶点b3,所述目标游走顶点b2为新的目标游走顶点b3的历史游走顶点。
根据上述描述的方法,基于所述设备s3,根据所述设备s2发送的出边信息中顶点b2的出邻集合与目标游走顶点b3的出邻集合确定所述目标游走顶点b3的待游走顶点,并持续上述游走过程,后续游走至的每一个顶点依次确定自己的待游走顶点,即下一个顶点,以完成上述初始游走顶点b4对应的随机游走任务,且后续每一个顶点确定自己的下一个顶点的规则与上述确定目标游走顶点的下一个顶点的规则一致。
上一个顶点对应的设备可以向下一个顶点对应的设备发送相应的出边信息,下一个顶点对应的设备可以基于上一个顶点发送的出边信息,实时动态地计算自己的待游走顶点与自己的出邻集合中的每个顶点之间的边转移概率,从而确定自己的待游走顶点,此间过程中不需要预先将顶点与顶点之间的边转移概率通过边转移概率矩阵缓存下来,节省了系统容量。
当上述目标图的随机游走任务完成之后,所述图处理平台f会生成每一个初始游走顶点对应的随机游走序列,所述每个随机游走序列包括了游走过的各个顶点之间的关联性,其中,一个顶点可以是关联的一个用户账号,用户账号的类型可以是购物账号、通信账号、时事新闻账号等,可以基于所述随机游走序列中包含的顶点与顶点之间的关联性向关联的用户账号推荐商品、好友、新闻等。
请参见图2,是本申请实施例提供的一种数据处理方法的流程示意图,可以应用于图1中所示的分布式图处理平台f。为方便描述,本申请实施例以目标图中的某一个顶点为初始游走顶点,且以所述某一个顶点对应的初始游走顶点的二阶随机游走任务为例进行说明,可以理解的是,上述目标图中的每一个初始游走顶点对应的二阶随机游走任务相互独立,上述目标图中的每一个初始游走顶点对应的二阶随机游走任务中的游走规则与所述某一个顶点对应的初始游走顶点的二阶随机游走任务中的游走规则一致。
如图2所示,所述方法可以包括:
步骤S101,在目标图中指定目标游走顶点,确定与所述目标游走顶点相邻的历史游走顶点,获取由所述历史游走顶点传递到所述目标游走顶点的第一出边信息;
具体的,目标图中包括多个顶点,从中指定一个顶点为目标游走顶点。例如,可以将初始游走顶点指定为目标游走顶点。
所述历史游走顶点即是所述目标游走顶点的上一个已经游走过的顶点,所述目标游走顶点 对应的设备接收由所述历史游走顶点对应的设备发送的第一出边信息。
所述历史游走顶点对应的第一出边信息是由所述历史游走顶点对应的设备生成的,所述第一出边信息中包括当前二阶随机游走任务的初始游走顶点的标识信息、上述历史游走顶点的标识信息、基于上述历史游走顶点的位置确定的当前二阶随机游走任务的剩余步数、上述历史游走顶点的出邻集合。
所述历史游走顶点的出邻集合中包括多个顶点,所述历史游走顶点的下一个游走顶点(也可以称之为所述历史游走顶点的待游走顶点)为所述历史游走顶点的出邻集合中的某个顶点,所述历史游走顶点的出邻集合中每个顶点分别与所述历史游走顶点之间具有不同的边转移概率,即游走概率,也可以称之为访问概率。
步骤S102,获取第一出邻集合,所述第一出邻集合是指所述目标游走顶点游走到的下一个可能顶点的集合;根据所述第一出边信息,确定所述目标游走顶点与所述第一出邻集合中每个顶点之间的边转移概率;
具体的,所述第一出邻集合是指目标游走顶点对应的出邻集合,目标游走顶点对应的设备可以在关联的图计算平台中直接获取得到所述第一出邻集合。每个顶点对应的设备可以在关联的图计算平台中获取每个顶点自己的出邻集合。
所述第一出边信息中包括所述历史游走顶点的出邻集合,所述目标游走顶点对应的设备基于所述历史游走顶点的出邻集合与所述目标游走顶点的出邻集合,确定所述目标游走顶点的出邻集合中每个顶点的顶点类型,根据每个顶点的顶点类型分别确定所述每个顶点的缩放倍数,根据每个顶点的缩放倍数对所述每个顶点与目标游走顶点之间的权重进行缩放,将缩放后的每个顶点对应的权重进行归一化,得到每个顶点与所述目标游走顶点之间的边转移概率。其中,上述目标游走顶点的出邻集合中所有顶点对应的边转移概率之和为1。
由于一个完整的目标图中的顶点数以及边数往往都异常巨大,所以顶点与顶点之间的边转移概率构成的边转移概率矩阵的数据量也非常多,通过在二阶随机游走任务中实时动态地计算顶点与顶点之间的边转移概率,可以不用保存顶点与顶点之间的边转移概率构成的边转移概率矩阵,解决了单机式图计算中需要保存数据量巨大的边转移概率矩阵的挑战,节省了图计算系统的内存容量。
步骤S103,根据所述边转移概率在所述第一出邻集合中确定待游走顶点;
具体的,基于上述第一出邻集合中每个顶点与所述目标游走顶点之间通过缩放倍数进行缩放后的权重,根据均匀分布产生一个随机数,所述随机数的数值范围为0至1之间。通过上述第一出邻集合中每个顶点对应的边转移概率生成所述每个顶点的边转移概率累积和。通过比较上述随机数与每个顶点的边转移概率累积和的大小关系确定待游走顶点。
具体地,通过上述第一出邻集合中每个顶点对应的边转移概率生成所述每个顶点的边转移概率累积和时,首先对各个顶点进行排序,根据排序后的顺序,确定每个顶点的边转移概率累 积和。这样,相邻顶点的两个边转移概率累积和构成了一个概率区间,然后将上述随机数与各个概率区间进行比较,从而确定出上述待游走顶点。
例如,上述第一出邻集合中包括顶点1、顶点2、以及顶点3,所述顶点1与所述目标游走顶点之间的边转移概率为0.2,所述顶点2与所述目标游走顶点之间的边转移概率为0.3,所述顶点3与所述目标游走顶点之间的边转移概率为0.5。上述顶点1对应的标识信息(即顶点1的ID信息)为18,上述顶点2的标识信息为9,上述顶点3的标识信息为22。
将上述顶点1、顶点2、顶点3进行任意排序,例如排序为顶点2、顶点1、顶点3,又例如排序为顶点3、顶点2、顶点1,其中,此处针对所述顶点1、顶点2、顶点3的排序规则没有限定,可以是任意顺序。
之后在计算每个顶点对应的边转移概率累积和时,是基于排序后的顶点1、顶点2、顶点3对应计算得到。例如,当上述顶点1、顶点2、顶点3排序为顶点2、顶点1、顶点3时,所述顶点2、顶点1、顶点3的边转移概率累积和依次为顶点2的边转移概率0.3,、顶点2与顶点1的边转移概率之和0.5、顶点2与顶点1以及顶点3的边转移概率之和1。
上述顶点2、顶点1、顶点3分别对应的边转移概率累积,可以理解为,将长度为1的线段划分为3段子线段,假设上述顶点2、顶点1、顶点3对应的子线段的长度分别为L2、L1、L3,则顶点2对应的子线段长度L2的范围为0<L2≤0.3,顶点1对应的子线段长度L1的范围为0.3<L3≤0.5,顶点3对应的子线段长度L3的范围为0.5<L1≤1。
当上述随机数为0.6时,则可以判断出所述随机数落在顶点3对应的子线段长度L3的范围0.5<L1≤1内,则将所述顶点3确定为所述目标游走顶点的待游走顶点。
其中,上述随机数落在边转移概率累积和的哪一段数值范围内可以通过二分查找的方式确定,由于上述第一出邻集合中排序之后的每个顶点对应的边转移概率累积和为递增的数列,因此基于二分查找可以快速、准确地判断上述随机数落在边转移概率累积和的哪一段数值范围内,从而根据该段数值范围确定待游走顶点对应的边转移概率,进而确定出待游走顶点。
步骤S104,基于所述第一出邻集合生成所述目标游走顶点对应的第二出边信息,从所述目标游走顶点游走至所述待游走顶点,并将所述第二出边信息传递至所述待游走顶点,将所述待游走顶点确定为新的目标游走顶点;
具体的,上述目标游走顶点对应的设备可以生成所述目标游走顶点的第二出边信息,所述第二出边信息中包括当前二阶随机游走任务的初始游走顶点的标识信息、上述目标游走顶点的标识信息、基于上述目标游走顶点的位置确定的当前二阶随机游走任务的剩余步数、上述目标游走顶点的第一出邻集合。
基于所述目标游走顶点对应的设备将所述目标游走顶点对应的第二出边信息发送至上述待游走顶点对应的设备,即表明游走至了所述待游走顶点。将所述目标游走顶点称之为所述待游走顶点的历史游走顶点,将所述待游走顶点称之为新的目标游走顶点,再次循环执行上述步骤 S101-步骤S103所描述的过程,确定新的目标游走顶点的下一个顶点,即确定新的目标游走顶点的待游走顶点。
步骤S105,若所述目标游走顶点对应的游走次数达到预设游走步数阈值,则生成所述目标游走顶点对应的随机游走序列;
具体的,上述目标图中的每一个顶点都对应有一个确定步数的二阶随机游走任务,所述每一个顶点的二阶随机游走任务对应的确定步数根据游走过程中具体使用的游走算法决定。在一个实施例中,可以将所述初始游走顶点对应的二阶随机游走任务的游走次数作为所述预设游走步数阈值。
当从所述初始游走顶点开始,基于上述描述的顶点之间的游走规则,持续游走次数达到所述预设游走步数阈值时,则表示所述初始游走顶点对应的二阶随机游走任务已经完成,根据随机游走时游走至的顶点的游走先后顺序,生成所述目标游走顶点对应的随机游走序列,即生成以所述初始游走顶点为起点的随机游走序列。
其中,实现上述目标图的随机游走任务的图处理平台可以是GraphLite(同步图计算框架)平台、GAS(分布式图计算)类型的图处理平台。
由此可见,本申请实施例基于目标游走顶点对应的设备接收历史游走顶点发送的出边信息,从而实时动态地计算目标游走顶点与第一出邻集合中每个顶点之间的边转移概率,最后确定待游走顶点,此间过程中无需预先存储目标游走顶点与第一出邻集合中每个顶点之间的边转移概率,节省了系统的内存容量。
请参见图3a,是本申请实施例提供的一种获取边转移概率方法的流程示意图,可以应用于图1中所示的分布式图处理平台f。如图3a所示,包括如下步骤:
步骤S111,根据所述第一出边信息确定目标出边信息;
具体地,确定目标出边信息是指确定历史游走顶点的第二出邻集合,可以根据实际应用场景决定使用何种方法去获取所述历史游走顶点的第二出邻集合。
步骤S112,根据所述目标游走顶点的标识信息、所述第一出邻集合、所述目标出边信息中的所述历史游走顶点的标识信息、所述初始游走顶点的标识信息以及所述历史游走顶点对应的第二出邻集合,分别确定所述目标游走顶点与所述第一出邻集合中的每个顶点之间的缩放倍数;
具体的,上述出邻集合中包括了出邻集合中的每个顶点的标识信息(即顶点的ID),根据上述目标出边信息中的历史游走顶点的标识信息、上述目标游走顶点的标识信息、上述第一出邻集合中顶点的标识信息以及上述第二出邻集合中顶点的标识信息之间的关系,判断上述第一出邻集合中的每个顶点的顶点类型,根据所述每个顶点的顶点类型确定所述每个顶点与所述目标游走顶点之间的缩放倍数。
步骤S113,在目标图中获取所述目标游走顶点分别与所述第一出邻集合中的每个顶点之间的转移权重;
具体的,在目标图中获取上述目标游走顶点分别与上述第一出邻集合中的每个顶点之间的转移权重,所述转移权重可以表征顶点与顶点之间的关联关系,一个顶点与另一个顶点之间的关联关系越大,表明该两个顶点之间的游走概率越大。
步骤S114,根据所述转移权重以及所述缩放倍数,确定所述目标游走顶点分别与所述第一出邻集合中的每个顶点之间的边转移概率。
请参见图3b,是本申请实施例提供的另一种获取边转移概率方法的流程示意图,可以应用于图1中所示的分布式图处理平台f。
图3b中还描述了三种并列的获取目标出边信息的方法,其中,下述步骤S201描述了第一种获取目标出边信息的方法,步骤S202-步骤S203描述了第二种获取目标出边信息的方法,步骤S204-步骤S205描述了第三种获取目标出边信息的方法。
如图3b所示,所述方法可以包括:
步骤S201,若所述历史游走顶点对应的第一出边信息包括第二出邻集合,则将所述第一出边信息确定为目标出边信息;
具体的,所述目标游走顶点对应的设备可以接收由上述历史游走顶点对应的设备发送的上述历史游走顶点对应的出邻集合,其中,所述历史游走顶点对应的出邻集合也可以称之为第二出邻集合,即上述历史游走顶点发送的第一出边信息中携带有所述历史游走顶点的第二出邻集合,将携带有所述历史游走顶点的第二出邻集合的第一出边信息直接作为所述目标出边信息。
步骤S202,当所述历史游走顶点对应的第一出边信息中包括指示信息时,基于所述指示消息在哈希表中获取与所述历史游走顶点的标识信息对应的所述第二出邻集合;
具体的,当在上述历史游走顶点对应的第一出边信息中包括所述指示信息时,表明此时,所述历史游走顶点对应的第一出边信息中没有所述历史游走顶点的第二出邻集合,所述指示信息表明在哈希表中缓存有所述第二出邻集合,所述指示信息用于指示所述目标游走顶点对应的设备可以在哈希表中获取所述第二出邻集合。通过在历史游走顶点对应的第一出边信息中添加所述指示信息来替换所述历史游走顶点的第二出邻集合,可以减少所述历史游走顶点对应的设备与所述目标游走顶点对应的设备之间的通信代价,即上述历史游走顶点对应的设备向上述目标游走顶点的设备发送历史游走顶点的第一出边信息时,无需发送所述历史游走顶点的第二出邻集合,而是发送了一个数据量极小的指示信息,所述指示信息可以是一个特殊的标识符。
上述目标游走顶点对应的设备可以基于上述指示信息,通过上述历史游走顶点的标识信息(即上述历史游走顶点的ID信息),在创建的哈希表中获取所述历史游走顶点的第二出邻集合。下述描述了在三种不同的缓存策略下创建所述哈希表。
请参见图4a,为本申请实施例提供的一种创建哈希表的场景示意图;如图4a所示,描述了创建所述哈希表的三种方法,即三种基于哈希表缓存顶点的出邻集合的缓存机制。
其中,第一种创建哈希表的方法具体为,目标图P中包括了若干个顶点,预先获取目标图P 中每一个顶点的出度,其中,顶点的出度用于表明该顶点预计访问其他顶点的次数,一个顶点的出度越大表明该个顶点预计访问其他顶点的次数越多。
根据系统的内存容量(即哈希表能缓存的出邻集合的数据量的大小)确定最多能缓存的出邻集合的数据量,优先缓存出度值更大的顶点对应的出邻集合,将能被缓存的多个出邻集合中出度值最小的顶点对应的出度值称之为第一度量值阈值。
当所述出度值达到第一度量值阈值时,确定所述历史游走顶点属于高频访问类型的顶点,并基于所述历史游走顶点的标识信息将所述第二出邻集合缓存至所述哈希表;所述第一度量值阈值是基于系统的内存容量、目标图中所有顶点的出度值确定得到的;所述哈希表中缓存有目标图中多个被频繁访问的顶点对应的多个出邻集合。
例如,在上述目标图中的所有顶点对应的二阶随机游走任务中,通过某个初始游走顶点游走至某个顶点X时,判断顶点X是否初次被访问,一次游走对应于一次访问,即在上述某个初始游走顶点对应的随机游走任务中初次游走至顶点X,且在上述目标图中的除所述某个初始游走顶点之外的所有其他顶点对应的二阶随机游走任务中均未访问过顶点X时,判断顶点X为初次被访问。进而判断顶点X的出度值是否不小于上述第一度量值阈值,当判断出顶点X的出度值不小于上述第一度量值阈值时,将顶点X对应的出邻集合缓存至上述哈希表。
对上述目标图中的每一个顶点都进行上述是否被初次访问的判断,将判断为初次被访问且出度值不小于上述第一度量值阈值的顶点对应的出邻集合缓存至所述哈希表,即完成了创建所述哈希表,基于最大出度的顶点优先的缓存策略得到哈希表f1。
第二种创建哈希表的方法具体为,目标图P中包括了若干个顶点,预先获取目标图P中每一个顶点的入度,其中,顶点的入度用于表明该顶点预计会被访问的次数,一个顶点的入度越大表明该顶点预计被访问的次数越多。
根据系统的内存容量(即哈希表能缓存的出邻集合的数据量的大小)确定能最多缓存的出邻集合的数据量,优先缓存入度值更大的顶点对应的出邻集合,将能被缓存的多个出邻集合中入度值最小的顶点对应的入度值称之为第二度量值阈值。
当所述入度值达到第二度量值阈值时,确定所述历史游走顶点属于高频访问类型的顶点,并基于所述历史游走顶点的标识信息将所述第二出邻集合缓存至所述哈希表;所述第二度量值阈值是基于系统的内存容量、目标图中所有顶点的入度值确定得到的;所述哈希表中缓存有目标图中多个被频繁访问的顶点对应的多个出邻集合。
例如,在上述目标图中的所有初始游走顶点对应的二阶随机游走任务中,通过某个初始游走顶点游走至某个顶点Y时,判断顶点Y是否初次被访问,一次游走对应于一次访问,即在上述某个初始游走顶点对应的随机游走任务中初次游走至顶点Y,且在上述目标图中的除所述某个初始游走顶点之外的所有其他顶点对应的二阶随机游走任务中均未访问过顶点Y时,判断顶点Y为初次被访问。进而判断顶点Y的入度值是否不小于上述第二度量值阈值,当判断出顶点Y的 入度值不小于上述第二度量值阈值时,将顶点Y对应的出邻集合缓存至上述哈希表。
对上述目标图中的每一个顶点都进行上述是否被初次访问的判断,将判断为初次被访问且入度值不小于上述第二度量值阈值的顶点对应的出邻集合缓存至所述哈希表,即完成了创建所述哈希表,基于最大入度的顶点优先的缓存策略得到哈希表f2。
第三种创建哈希表的方法具体为,目标图P中包括了若干个顶点,预先获取目标图P中每一个顶点的被访问次数。根据系统的内存容量(即哈希表能缓存的出邻集合的数据量的大小)确定能最多缓存的出邻集合的数据量,优先缓存被访问次数更大的顶点对应的出邻集合,将能被缓存的多个出邻集合中被访问次数最小的顶点对应的被访问次数称之为第三度量值阈值。
当检测到所述历史游走顶点为初次被访问时,获取所述历史游走顶点的访问次数值;
当所述访问次数值达到第三度量值阈值时,确定所述历史游走顶点属于高频访问类型的顶点,并基于所述历史游走顶点的标识信息将所述第二出邻集合缓存至所述哈希表;所述第三度量值阈值是基于系统的内存容量、目标图中所有顶点的访问次数值确定得到的;所述哈希表中缓存有目标图中多个被频繁访问的顶点对应的多个出邻集合。
例如,在上述目标图中的所有初始游走顶点对应的二阶随机游走任务中,通过某个初始游走顶点游走至某个顶点Z时,判断顶点Z是否初次被访问,一次游走对应于一次访问,即在上述某个初始游走顶点对应的随机游走任务中初次游走至顶点Z,且在上述目标图中的除所述某个初始游走顶点之外的所有其他顶点对应的二阶随机游走任务中均未访问过顶点Z时,判断顶点Z为初次被访问。进而判断顶点Z的被访问次数值是否不小于上述第三度量值阈值,当判断出顶点Z的被访问次数值不小于上述第三度量值阈值时,将顶点Z对应的出邻集合缓存至上述哈希表。
对上述目标图中的每一个顶点都进行上述是否被初次访问的判断,将判断为初次被访问且被访问次数值不小于上述第三度量值阈值的顶点对应的出邻集合缓存至所述哈希表,即完成了创建所述哈希表,基于最大被访问次数的顶点优先的缓存策略得到哈希表f3。
其中,可以通过在上述哈希表中缓存键值对创建所述哈希表,一个键值对由一个顶点的标识信息与其对应的出邻集合构成,基于目标图中的所有初始游走顶点对应的随机游走任务创建上述哈希表,可以使得创建哈希表的计算量基于每一个初始游走顶点对应的随机游走任务得到均摊,提高了创建哈希表的效率。
请参见图4b,是本申请实施例提供的一种获取出邻集合的架构示意图。图4b中图处理平台f为图1a中的目标图的二阶游走任务所关联的图处理平台f,s1、s2分别为图1a中图处理平台f所关联的2个设备。将创建的哈希表L缓存至所述图处理平台f所关联的缓存系统中。
如图4b所示,在设备s1对应的随机游走任务中,当游走至所述设备s1对应的顶点1,且所述图处理平台f检测到所述顶点1为初次被访问时,图处理平台f会将所述顶点1对应的出邻集合缓存在所述哈希表L中,上述顶点1的标识信息为13,所述顶点1的出邻集合中包括的 顶点的标识信息分别为14、15、16,如图4b所示,以键值对的形式将所述顶点1的出邻集合缓存在上述哈希表L中。
当设备s2接收到其他关联在所述图处理平台f上的设备发送的出边信息,且所述出边信息中包括所述顶点1(即历史游走顶点为所述顶点1)的标识信息以及上述指示信息时,所述设备s2会发送顶点1对应的标识信息至上述图处理平台f,图处理平台f从哈希表中获取到所述顶点1对应的出邻集合,并将所述顶点1对应的出邻集合返回至设备s2。
步骤S203,将所述第二出邻集合添加至所述历史游走顶点对应的第一出边信息中,将包含所述第二出邻集合的第一出边信息确定为所述目标出边信息;
具体的,将上述在哈希表中获取到的第二出邻集合添加至所述历史游走顶点对应的第一出边信息中,可以选择是否将上述指示信息丢弃,将包含了上述第二出邻集合的第一出边信息称之为所述目标出边信息。
步骤S204,当根据图划分标识信息确定所述历史游走顶点与所述目标游走顶点同属于一个子图中的顶点时,获取所述第二出邻集合;
具体的,上述目标图可以划分为多个子图,每个子图包括多个顶点,同一个子图内的顶点对应的设备可以互相获取到所属子图内的任意顶点对应的出邻集合。上述图划分标识信息用于标识所述目标游走顶点与所述历史游走顶点同属于一个子图。其中,上述一个子图可以指一个设备,即属于同一个设备的顶点同属于一个子图。其中,上述目标图的子图划分是在所述目标图的随机游走任务开始之前就已经划分完成。当根据上述图划分标识信息判断出上述历史游走顶点与上述目标游走顶点同属于一个子图时,基于所述目标游走顶点对应的设备在关联的图计算平台中获取所述历史游走顶点对应的第二出邻集合。
步骤S205,将所述第二出邻集合添加至所述历史游走顶点对应的第一出边信息中,将包含所述第二出邻集合的第一出边信息确定为所述目标出边信息;
具体的,将上述获取到的第二出邻集合添加至上述历史游走顶点对应的第一出边信息中,可以选择是否丢弃上述图划分标识信息,将包含上述第二出邻集合的第一出边信息称之为所述目标出边信息。
请参见图5,是本申请实施例提供的一种确定目标出边信息的场景示意图;如图5所示,提供了三种获取目标出边信息的方式,对应于历史游走顶点对应的设备发送的3种历史游走顶点对应的第一出边信息。其中,e1、e2、e3分别为上述历史游走顶点对应的设备发送给上述目标游走顶点对应的设备的第一出边信息。将已经包括所述历史游走顶点对应的第二出邻集合的第一出边信息e1直接称之为所述目标出边信息e4。
其中,上述第一出边信息e2中包括图划分标识信息,当根据所述图划分标识信息判断出上述历史游走顶点与上述目标游走顶点所属于同一个子图,则基于所述目标游走顶点对应的设备在关联的图计算平台中获取所述历史游走顶点的第二出邻集合,将获取到的第二出邻集合添加 至上述第一出边信息e2中,将包含所述第二出邻集合的第一出边信息e2称之为所述目标出边信息e4。
其中,上述第一出边信息e3包括指示信息,基于所述指示信息通过历史游走顶点对应的标识信息在哈希表中获取所述历史游走顶点对应的第二出邻集合,将获取到的第二出邻集合添加至所述第一出边信息e3中,将包含所述第二出邻集合的第一出边信息e3称之为所述目标出边信息e4。
步骤S206,获取所述第一出邻集合;
具体的,所述目标游走顶点对应的设备在关联的图计算平台中获取所述目标游走顶点对应的第一出邻集合。其中,每一个顶点对应的设备可以在关联的图计算平台中静态获取自己的出邻信息。
步骤S207,根据所述目标游走顶点的标识信息、所述第一出邻集合、所述目标出边信息中的所述历史游走顶点的标识信息、所述初始游走顶点的标识信息以及第二出邻集合,分别确定所述目标游走顶点与所述第一出邻集合中的每个顶点之间的缩放倍数。
步骤S208,在目标图中获取所述目标游走顶点分别与所述第一出邻集合中的每个顶点之间的转移权重;
比如所述第一出邻集合中包括顶点1和顶点2,所述目标游走顶点与所述顶点1之间的转移权重为2,所述目标游走顶点与所述顶点2之间的转移权重为3。
步骤S209,根据所述转移权重以及缩放倍数确定所述目标游走顶点与所述第一出邻集合中的每个顶点之间的初始概率;
具体的,根据上述第一出邻集合中每个顶点对应的缩放倍数分别对所述每个顶点对应的转移权重进行缩放,即将每个顶点对应的转移权重与缩放倍数相乘,将进行缩放的转移权重称之为所述初始概率;所述初始概率的数值范围可以大于1。
步骤S210,将所述初始概率归一化,基于归一化之后的初始概率确定所述目标游走顶点分别与所述第一出邻集合中的每个顶点之间的边转移概率;
具体的,将上述每个顶点对应的初始概率进行归一化处理,得到所述每个顶点与所述目标游走顶点之间的边转移概率,所述每个顶点对应的边转移概率之和为1。
请参见图6,是本申请实施例提供的另一种数据处理方法的流程示意图,可以应用于图1中所示的分布式图处理平台f。如图6所示,所述方法可以包括:
步骤S301,获取所述目标图中的所有顶点,并将所述目标图中的每个顶点确定为原始顶点;
步骤S302,分别确定每个原始顶点的目标游走步数,并基于所述目标游走步数对所述每个原始顶点同步触发相互独立的随机游走任务;
具体的,基于随机游走任务中具体使用的随机游走算法分别确定目标图中每个原始顶点的目标游走步数,并根据每个原始顶点对应的目标游走步数同时对所述每个原始顶点触发以自身 为起始顶点且游走步数为其分别所对应的目标游走步数的随机游走任务,每个原始顶点对应的随机游走任务相互独立,同时并行进行。
上述随机游走算法可以是Node2Vec(一种对于图中的节点使用向量建模的算法)算法、二阶PageRank(一种链接分析算法)算法、二阶SimRank(一种协同过滤推荐算法)算法、二阶RWR(一种重启随机游走算法)算法中的任意一种确定的二阶随机游走算法。
步骤S303,在已触发所述随机游走任务的原始顶点中确定所述初始游走顶点,从所述初始游走顶点游走至所述目标游走顶点,并将所述初始游走顶点确定为所述目标游走顶点相邻的历史游走顶点;
具体的,在已触发所述随机游走任务的原始顶点中确定所述初始游走顶点,可以将已触发所述随机游走任务的每个原始顶点都确定为所述初始游走顶点。
步骤S304,获取与目标游走顶点相邻的历史游走顶点对应的第一出边信息;所述历史游走顶点对应的出边信息是由所述历史游走顶点传递至所述目标游走顶点的;
具体的,即获取上述初始游走顶点的设备发送的所述初始游走顶点对应的第一出边信息。
步骤S305,根据所述历史游走顶点对应的第一出边信息确定目标出边信息,获取所述第一出邻集合;
其中,所述步骤S305的具体实现方式可以参见图3b对应的实施例中对步骤S201-步骤S207的描述,这里不再进行赘述。
步骤S306,将所述第一出邻集合中为所述历史游走顶点的顶点确定为第一类型顶点;将所述第一出邻集合中与所述第二出邻集合中的顶点为公共出邻顶点的顶点确定为第二类型顶点;将所述第一出邻集合中除所述第一类型顶点以及所述第二类型顶点之外的顶点确定为第三类型顶点;
具体的,上述第一出邻集合中包括目标游走顶点可能会游走的所有顶点的标识信息,上述第二出邻集合中包括历史游走顶点可能会游走的所有顶点的标识信息。将上述第一出邻集合中顶点的标识信息与历史游走顶点的标识信息一致的顶点称之为第一类型顶点,即上述第一出邻集合中包括所述历史游走顶点,将为所述历史游走顶点的顶点确定为第一类型顶点。
将上述第一出邻集合中顶点的标识信息与第二出邻集合中顶点的标识信息相同的公共顶点称之为第二类型顶点,即将上述第一出邻集合与第二出邻集合中包含的相同顶点(公共顶点)确定为第二类型顶点。将所述出邻集合中除上述第一类型顶点与第二类型顶点之外的顶点称之为第三类型顶点。
步骤S307,根据所述顶点类型分别确定所述第一出邻集合中的每个顶点的缩放倍数;
具体的,针对第一出邻集合中不同类型的顶点对应有不同的缩放倍数,根据上述第一出邻集合中每个顶点的顶点类型确定所述每个顶点的缩放倍数。比如上述第一类型顶点对应的缩放倍数为1,上述第二类型顶点对应的缩放倍数为1/2,上述第三类型顶点对应的缩放倍数为1/5。
步骤S308,在目标图中获取所述目标游走顶点分别与所述第一出邻集合中的每个顶点之间的转移权重;
步骤S309,根据所述转移权重以及缩放倍数确定所述目标游走顶点与所述第一出邻集合中的每个顶点之间的初始概率;
步骤S310,将所述初始概率归一化,基于归一化之后的初始概率确定所述目标游走顶点分别与所述第一出邻集合中的每个顶点之间的边转移概率;
其中,上述步骤S308-步骤S310的具体实现方式可以参见图3b对应的实施例中对步骤S209-步骤S211的描述,这里不再进行赘述。
步骤S311,基于所述第一出邻集合生成所述目标游走顶点对应的第二出边信息,从所述目标游走顶点游走至所述待游走顶点,并将所述第二出边信息传递至所述待游走顶点,将所述目标游走顶点确定为所述待游走顶点相邻的历史游走顶点,将所述待游走顶点确定为所述目标游走顶点;
步骤S312,若所述目标游走顶点对应的游走次数达到初始游走顶点对应的游走步数阈值,则生成所述目标游走顶点对应的随机游走序列;所述初始游走顶点是所述随机游走序列中的起始顶点;
其中,上述步骤S311-步骤S312的具体实现方式可以参见图2对应的实施例中对步骤S104-步骤S105的描述,这里不再进行赘述。
由此可见,本申请实施例基于目标游走顶点对应的设备接收历史游走顶点发送的出边信息,从而实时动态地计算目标游走顶点与第一出邻集合中每个顶点之间的边转移概率,最后确定待游走顶点,此过程中无需预先存储目标游走顶点与第一出邻集合中每个顶点之间的边转移概率,节省了系统的内存容量。
在上述图3b确定出了转移权重以及缩放倍数的基础之上,请参见图7a,是本申请实施例提供的一种确定待游走顶点方法的流程示意图,可以应用于图1中所示的分布式图处理平台f。如图7a所示,所述方法可以包括:
S401,根据所述目标游走顶点与所述第一出邻集合中的每个顶点之间的边转移概率,分别确定所述第一出邻集合中的每个顶点的边转移概率累积和;
具体的,例如所述第一出邻集合中排序之后的顶点为顶点1、顶点2、顶点3,其中,所述顶点1与所述目标游走顶点之间的边转移概率为0.3,所述顶点2与所述目标游走顶点之间的边转移概率为0.4,所述顶点3与所述目标游走顶点之间的边转移概率为0.3,则所述顶点1、顶点2、顶点3分别对应的边转移概率累积和分别为顶点1对应的边转移概率0.3、顶点1与顶点2对应的边转移概率之和0.7、顶点1与顶点2以及顶点3对应的边转移概率之和1。
S402,根据所述目标游走顶点与所述第一出邻集合中的每个顶点之间的转移权重以及缩放倍数,分别确定所述第一出邻集合中的每个顶点的权重累积和。
请参见图7b,是本申请实施例提供的一种确定每个顶点的权重累积和方法的流程示意图,可以应用于图1中所示的分布式图处理平台f。如图7b所示,所述方法可以包括:包括如下步骤:
步骤S501,将所述第一出邻集合中的每个顶点确定为目标待处理顶点;
具体的,在所述第一出邻集合中确定所述目标待处理顶点,所述目标待处理顶点可以是所述第一出邻集合中任意一个顶点。
步骤S502,根据所述目标待处理顶点的标识信息、所述第一类型顶点的标识信息和缩放倍数、所述第一类型顶点与所述目标游走顶点之间的转移权重、所述第二类型顶点的标识信息和缩放倍数、所述第二类型顶点与所述目标游走顶点之间的转移权重,确定第一待处理顶点的权重累积和;
步骤S503,根据所述第三类型顶点的标识信息和缩放倍数、所述第三类型顶点与所述目标游走顶点之间的转移权重,确定第二待处理顶点的权重累积和;
步骤S504,根据所述第一待处理顶点的权重累积和以及所述第二待处理顶点的权重累积和,确定所述目标待处理顶点的权重累积和;
具体的,将上述得到的第一待处理顶点的权重累积和上述第二待处理顶点的权重累积和相加得到的结果,称之为上述目标待处理顶点的权重累积和。
这样,将上述第一出邻集合中的每个顶点都作为上述目标待处理顶点,通过步骤S501-步骤S504所描述的方式,分别得到第一出邻集合中每个顶点对应的权重累积和。
步骤S403,基于均匀分布、所述第一出邻集合中的每个顶点的权重累积和生成随机数;
具体的,通过上述第一出邻集合中的每个顶点的权重累积和所决定的概率分布,根据均匀分布生成所述随机数,所述随机数的取值范围为0至1。
步骤S404,根据所述随机数与所述第一出邻集合中的每个顶点的边转移概率累积和的数值范围,确定所述待游走顶点。
针对上述步骤502,请参见图7c,是本申请实施例提供的一种确定第一待处理顶点的权重累积和方法的流程示意图,可以应用于图1中所示的分布式图处理平台f。如图7c所示,所述方法可以包括:
步骤S601,基于顶点的标识信息的数值,对所述第一类型顶点与所述第二类型顶点进行排序,并根据排序之后的第一类型顶点与第二类型顶点生成第一顶点数组;
具体的,根据顶点的标识信息的数值,按照从小到大的顺序,将上述第一出邻集合中的第一类型顶点对应的标识信息与第二类型顶点对应的标识信息进行排序,将排序之后的第一类型顶点与第二类型顶点的标识信息构成的序列称之为上述第一顶点数组。
从上述第一顶点数组中的第一个标识信息开始,给每个标识信息增加索引,所述索引用于在所述第一顶点数组中查找对应的标识信息。比如第一顶点数组中包括顶点1、顶点2、顶点3, 顶点1、顶点2、顶点3在所述第一顶点数组中排序为顶点2、顶点1、顶点3,从0开始给排序之后的每个顶点添加索引,即所述顶点2、顶点1、顶点3的索引值分别为0、1、2。
步骤S602,基于所述第一顶点数组中每个顶点的排序关系、根据所述目标游走顶点与所述第一顶点数组中的每个顶点之间的转移权重以及缩放倍数,确定所述第一顶点数组中的每个顶点的权重累积和,并根据所述第一顶点数组中的每个顶点的权重累积和生成权重数组;
具体的,根据上述第一顶点数组中每个顶点对应的缩放倍数对所述每个顶点对应的转移权重进行缩放,即将每个顶点对应的缩放倍数分别与其对应的转移权重相乘,将与缩放倍数进行相乘之后的转移权重称之为每个顶点对应的新转移权重。基于所述第一顶点数组中每个顶点的排序关系,根据每个顶点对应的所述新转移权重得到第一顶点数组中每个顶点的权重累积和,根据所述第一顶点数组中每个顶点的排序关系以及每个顶点的权重累积和生成所述权重数组。
例如第一顶点数组中包括顶点1、顶点2、顶点3,顶点1、顶点2、顶点3在所述第一顶点数组中排序为顶点2、顶点1、顶点3,所述顶点2对应的转移权重和缩放倍数分别为1和0.5,所述顶点1对应的转移权重和缩放倍数分别为2和0.8,所述顶点3对应的转移权重与缩放倍数分别为2和0.5,则上述顶点2、顶点1、顶点3对应的新转移权重分别为0.5、1.6、1,则上述顶点2、顶点1、顶点3对应的权重累积和分别为顶点2的新转移权重0.5、顶点2与顶点1的新转移权重之和2.1、顶点2与顶点1以及顶点3的新转移权重之后3.1,得到的权重数组为0.5、2.1、3.1。
步骤S603,在所述第一顶点数组中查找标识信息的数值不大于所述目标待处理顶点的标识信息的数值的顶点,将查找到的所有顶点确定为所述第一待处理顶点;
具体的,在上述第一数组中查找标识信息不大于所述目标待处理顶点的标识信息的所有顶点作为所述第一待处理顶点。
步骤S604,在所述权重数组中获取所述第一待处理顶点中顶点的标识信息的数值最大的顶点对应的权重累积和,将获取到的权重累积和确定为所述第一待处理顶点的权重累积和;
具体的,通过确定所述第一待处理顶点的权重累积和对应的索引值,进而可以根据确定的索引值在所述权重数组中查找到所述第一待处理顶点的权重累积和。比如将上述权重数组表示为aws[k],其中k为每个标识信息的索引值,k的取值范围依次为0,1,2...n。在上述第一待处理顶点中的顶点的标识信息的数值最大的顶点为第三个点,即确定所述第一待处理顶点的权重累积和对应的索引值为2,因此在所述权重数组中获取到的所述第一待处理顶点的权重累积和为aws[2]。
针对上述步骤503,请参见图7d,是本申请实施例提供的一种确定第二待处理顶点的权重累积和方法的流程示意图,可以应用于图1中所示的分布式图处理平台f。如图7d所示,所述方法可以包括:
步骤S701,基于顶点的标识信息的数值,对所述第一出邻集合中的所有顶点进行排序,并 根据排序之后的所有顶点生成第二顶点数组;
具体的,根据第一出邻集合中的每个顶点的标识信息的数值大小,按照从小到大的递增顺序进行排序,将排序之后的所述每个顶点基于所述每个顶点的标识信息表示出来,将排序之后的每个顶点的标识信息构成的数组称之为上述第二顶点数组。
步骤S702,在所述第二顶点数组中查找标识信息的数值不大于所述目标待处理顶点的标识信息的数值的所有顶点,将查找到的所有顶点确定为待选择顶点,并将所述待选择顶点中除所述第一待处理顶点之外的所有顶点确定为所述第二待处理顶点。
步骤S703,根据所述目标游走顶点与所述第二待处理顶点中的每个顶点的转移权重以及缩放倍数确定所述第二待处理顶点的权重累积和;
具体的,上述获取到的第二待处理顶点中的每个顶点都是上述描述的第三类型顶点,所述第二待处理顶点中的每个顶点对应的缩放倍数均相同,根据所述每个顶点对应的缩放倍数分别对所述每个顶点对应地转移权重进行缩放,将进行缩放之后的每个顶点对应的转移权重称之为每个顶点对应的新转移权重,将得到的每个顶点对应的新转移权重之和称之为上述第二待处理顶点的权重累积和。
针对上述步骤S404,根据所述随机数与所述第一出邻集合中的每个顶点的边转移概率累积和的数值范围,确定所述待游走顶点;具体的,例如,上述第一出邻集合中包括顶点1、顶点2、以及顶点3,则所述顶点1、顶点2、顶点3的边转移概率累积和依次为0.3、0.7、1。
上述顶点1、顶点2、顶点3分别对应的边转移概率累积和,可以理解为,将长度为1的线段划分为3段子线段,假设上述顶点1、顶点2、顶点3对应的子线段的长度分别为L1、L2、L3,则顶点1对应的子线段长度L1的范围为0<L1≤0.3,顶点2对应的子线段长度L2的范围为0.3<L2≤0.7,顶点3对应的子线段长度L3的范围为0.7<L3≤1。当上述随机数为0.3时,则可以判断出所述随机数落在顶点1对应的子线段长度L1的范围0<L1≤0.3内,则将所述顶点1确定为所述目标游走顶点的待游走顶点。
请参见图8,是本申请实施例提供的一种计算权重累积和的场景示意图。如图8所示,数组c1为第一出邻集合中的所有顶点的标识信息按照从小到大排列成的数组,可以称之为上述第二顶点数组,所述第二顶点数组c1中包括8个顶点,所述8个顶点的标识信息分别为2、5、8、17、23、64、77、98。其中,所述8个顶点中的每一个顶点分别对应于一个索引k=0,…,7,如图8所示,索引集合d1为数组c1中每个顶点分别对应的索引的集合,标识信息为2的顶点的索引为0,标识信息为5的顶点的索引为1,标识信息为8的顶点的索引为2,标识信息为17的顶点的索引为3,标识信息为23的顶点的索引为4,标识信息为64的顶点的索引为5,标识信息为77的顶点的索引为6,标识信息为98的顶点的索引为7。
数组c2为数组c1中的第一类型顶点与第二类型顶点的标识信息按照从小到大排列成的数组,可以称之为上述第一顶点数组。所述第一顶点数组中包括3个顶点,所述3个顶点的标识 信息分别为8、23、64。其中标识信息为8的顶点为所述第一类型顶点,标识信息为23的顶点与标识信息为64的顶点为所述第二类型顶点。第一顶点数组c2中每个顶点对应有一个索引k=0,1,2,如图8所示,索引集合d2为数组c2中每个顶点分别对应的索引,在第一顶点数组c2中,标识信息为8的顶点的索引为0,标识信息为23的顶点的索引为1,标识信息为64的顶点的索引为2。
数组c3是数组c2中每个顶点分别对应的权重累积和,可以将数组c3称之为上述权重数组,其中,假设上述第一出邻集合中每个顶点与所述目标游走顶点之间的转移权重都为1,上述第一类型顶点与目标游走顶点之间的缩放倍数为1/p,上述第二类型顶点与目标游走顶点之间的缩放倍数为1,上述第三类型顶点与目标游走顶点之间的缩放倍数为1/q。因此,上述数组c2中标识信息为8的顶点对应的权重累积和为1/p,上述数组c2中标识信息为23的顶点对应的权重累积和为1+1/p,上述数组c2中标识信息为64的顶点对应的权重累积和为1+2/p。
其中,数组c3中每一个权重对应于一个索引0,1,2,如图8所示,索引集合d3为数组c3中每个顶点分别对应的权重累积和的索引的集合,标识信息为8的顶点对应的权重累积和为1/p的索引为0,标识信息为23的顶点对应的权重累积和为1+1/p的索引为1,标识信息为64的顶点对应的权重累积和为1+2/p的索引为2。
将上述第二顶点数组c1表示为O[k],将上述第一顶点数组c2表示为node[i],将上述权重数组c3表示为aws[j]。在第二顶点数组c1中选中待处理顶点为标识信息为17的顶点O[3],在第一顶点数组c2中查找标识信息不大于17的顶点,查找到是标识信息为8的顶点node[0],在权重数组中查找标识信息为8的顶点对应的权重累积和1/p,即aws[0],将查找到的aws[0]对应的1/p作为上述第一待处理顶点对应的权重累积和。
用上述标识信息为17的顶点在数组c1中的索引值减去标识信息为8的顶点在数组c2中的索引值,减出来的结果为3,即标识信息为17的顶点在上述第一出邻集合中标识信息小于17的还有另外三个顶点,该三个顶点为第三类型顶点,将这三个顶点称之为上述第二待处理顶点,则所述第二待处理顶点的权重累积和为3/q,则上述目标待处理顶点17的权重累积和为所述第一待处理顶点的权重累积和与第二待处理顶点的权重累积和,为1/p+3/q。其中,上述第一顶点数组c1与权重数组c3是用于计算第一待处理顶点对应的权重累积和与第二待处理顶点对应的权重累积和的中间数组。
由此可见,本申请实施例基于目标游走顶点对应的设备接收历史游走顶点发送的出边信息,从而实时动态地计算目标游走顶点与第一出邻集合中每个顶点之间的边转移概率,最后确定待游走顶点,此过程中无需预先存储目标游走顶点与第一出邻集合中每个顶点之间的边转移概率,节省了系统的内存容量。
请参见图9,是本申请实施例提供的一种数据处理装置的结构示意图。如图9所示,该数据处理装置900,可以应用于图1中所示的分布式图处理平台f,具体包括:获取模块901、概率 确定模块902、顶点确定模块903、游走模块904、序列生成模块905;
获取模块901,用于在目标图中指定目标游走顶点,确定与所述目标游走顶点相邻的历史游走顶点,获取由所述历史游走顶点传递到所述目标游走顶点的第一出边信息;
概率获取模块902,用于获取第一出邻集合,所述第一出邻集合是指所述目标游走顶点游走到的下一个可能顶点的集合;根据所述第一出边信息,确定所述目标游走顶点与所述第一出邻集合中每个顶点之间的边转移概率;
顶点确定模块903,用于根据所述边转移概率在所述第一出邻集合中确定待游走顶点;
游走模块904,用于基于所述第一出邻集合生成所述目标游走顶点对应的第二出边信息,从所述目标游走顶点游走至所述待游走顶点,并将所述第二出边信息传递至所述待游走顶点,将所述待游走顶点确定为新的目标游走顶点;
序列生成模块905,用于若目标游走顶点对应的游走次数达到预设游走步数阈值,则生成目标游走顶点对应的随机游走序列。
其中,所述获取模块901、概率确定模块902、顶点确定模块903、第一游走模块904、序列生成模块905的具体功能实现方式请参见图2对应的实施例中的步骤S101-步骤S105,这里不再进行赘述。
在一实施例中,获取模块901包括:
第一确定单元9011,用于获取所述目标图中的所有顶点,并将所述目标图中的每个顶点确定为原始顶点;
触发单元9012,用于分别确定每个原始顶点的目标游走步数,并基于所述目标游走步数对所述每个原始顶点同步触发相互独立的随机游走任务;
游走单元9013,用于在已触发所述随机游走任务的原始顶点中确定初始游走顶点,从所述初始游走顶点游走至所述目标游走顶点,并将所述初始游走顶点确定为所述目标游走顶点相邻的历史游走顶点。
在一实施例中,概率确定模块902包括:
信息确定单元9021,用于根据所述第一出边信息确定目标出边信息;
缩放倍数确定单元9022,用于根据所述目标游走顶点的标识信息、所述第一出邻集合、所述目标出边信息中的所述历史游走顶点的标识信息、所述初始游走顶点的标识信息以及所述历史游走顶点对应的第二出邻集合,分别确定所述目标游走顶点与所述第一出邻集合中的每个顶点之间的缩放倍数;
转移权重确定单元9023,用于在目标图中获取所述目标游走顶点分别与所述第一出邻集合中的每个顶点之间的转移权重;
边转移概率确定单元9024,用于根据所述转移权重以及所述缩放倍数,确定所述目标游走顶点分别与所述第一出邻集合中的每个顶点之间的边转移概率。
在一实施例中,缩放倍数确定单元9022用于,根据所述目标游走顶点的标识信息、所述第一出邻集合、所述目标出边信息中的所述历史游走顶点的标识信息以及所述第二出邻集合,分别确定所述第一出邻集合中的每个顶点的顶点类型;根据所述顶点类型分别确定所述第一出邻集合中的每个顶点的缩放倍数。
在一实施例中,缩放倍数确定单元9022用于,将所述第一出邻集合中为所述历史游走顶点的顶点确定为第一类型顶点;将所述第一出邻集合中与所述第二出邻集合中的顶点为公共出邻顶点的顶点确定为第二类型顶点;将所述第一出邻集合中除所述第一类型顶点以及所述第二类型顶点之外的顶点确定为第三类型顶点。
在一实施例中,顶点确定模块903包括:
第一累积和确定单元9031,用于根据所述目标游走顶点与所述第一出邻集合中的每个顶点之间的边转移概率,分别确定所述第一出邻集合中的每个顶点的边转移概率累积和;
第二累积和确定单元9032,用于根据所述目标游走顶点与所述第一出邻集合中的每个顶点之间的转移权重以及缩放倍数,分别确定所述第一出邻集合中的每个顶点的权重累积和;
随机数生成单元9033,用于基于均匀分布、所述第一出邻集合中的每个顶点的权重累积和生成随机数;
顶点确定单元9034,用于根据所述随机数与所述第一出邻集合中的每个顶点的边转移概率累积和的数值范围,确定所述待游走顶点。
在一实施例中,第二累积和确定单元9032包括:
顶点确定子单元90321,用于将所述第一出邻集合中的每个顶点确定为目标待处理顶点;
第一累积和确定子单元90322,用于根据所述目标待处理顶点的标识信息、所述第一类型顶点的标识信息和缩放倍数、所述第一类型顶点与所述目标游走顶点之间的转移权重、所述第二类型顶点的标识信息和缩放倍数、所述第二类型顶点与所述目标游走顶点之间的转移权重,确定第一待处理顶点的权重累积和;
第二累积和确定子单元90323,用于根据所述第三类型顶点的标识信息和缩放倍数、所述第三类型顶点与所述目标游走顶点之间的转移权重,确定第二待处理顶点的权重累积和;
第三累积和确定子单元90324,用于根据所述第一待处理顶点的权重累积和以及所述第二待处理顶点的权重累积和,确定所述目标待处理顶点的权重累积和。
请参见图10,是本申请实施例提供的一种电子设备的结构示意图。如图10所示,所述电子设备1000,可以为图1中所示的分布式图处理平台f,具体包括:处理器1001,网络接口1004和存储器1005,此外,所述电子设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005 可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图10所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图10所示的电子设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现前文任一个所对应实施例中对所述数据处理方法的描述。
应当理解,本申请实施例中所描述的电子设备1000可执行前文任一个所对应实施例中对所述数据处理方法的描述,也可执行前文图9所对应实施例中对所述数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机存储介质,且所述计算机存储介质中存储有前文提及的数据处理装置1所执行的计算机程序,且所述计算机程序包括程序指令,当所述处理器执行所述程序指令时,能够执行前文任一个所对应实施例中对所述数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖范围。
Claims (24)
- 一种数据处理方法,其特征在于,应用于电子设备,包括:在目标图中指定目标游走顶点,确定与所述目标游走顶点相邻的历史游走顶点,获取由所述历史游走顶点传递到所述目标游走顶点的第一出边信息;获取第一出邻集合,所述第一出邻集合是指所述目标游走顶点游走到的下一个可能顶点的集合;根据所述第一出边信息,确定所述目标游走顶点与所述第一出邻集合中每个顶点之间的边转移概率;根据所述边转移概率在所述第一出邻集合中确定待游走顶点;基于所述第一出邻集合生成所述目标游走顶点对应的第二出边信息,从所述目标游走顶点游走至所述待游走顶点,并将所述第二出边信息传递至所述待游走顶点,将所述待游走顶点确定为新的目标游走顶点;若目标游走顶点对应的游走次数达到预设游走步数阈值,则生成目标游走顶点对应的随机游走序列。
- 根据权利要求1所述的方法,其特征在于,所述确定与所述目标游走顶点相邻的历史游走顶点包括:获取所述目标图中的所有顶点,并将所述目标图中的每个顶点确定为原始顶点;分别确定每个原始顶点的目标游走步数,并基于所述目标游走步数对所述每个原始顶点同步触发相互独立的随机游走任务;在已触发所述随机游走任务的原始顶点中确定初始游走顶点,从所述初始游走顶点游走至所述目标游走顶点,并将所述初始游走顶点确定为所述目标游走顶点相邻的历史游走顶点。
- 根据权利要求1所述的方法,其特征在于,所述根据所述第一出边信息,确定所述目标游走顶点与所述第一出邻集合中的每个顶点之间的边转移概率,包括:根据所述第一出边信息确定目标出边信息;根据所述目标游走顶点的标识信息、所述第一出邻集合、所述目标出边信息中的所述历史游走顶点的标识信息、所述初始游走顶点的标识信息以及所述历史游走顶点对应的第二出邻集合,分别确定所述目标游走顶点与所述第一出邻集合中的每个顶点之间的缩放倍数;在目标图中获取所述目标游走顶点分别与所述第一出邻集合中的每个顶点之间的转移权重;根据所述转移权重以及所述缩放倍数,确定所述目标游走顶点分别与所述第一出邻集合中的每个顶点之间的边转移概率。
- 根据权利要求3所述的方法,其特征在于,所述根据所述第一出边信息确定目标出边信息包括:若所述第一出边信息包括所述第二出邻集合,则将所述第一出边信息确定为所述目标出边信息。
- 根据权利要求3所述的方法,其特征在于,所述根据所述第一出边信息确定目标出边信息,包括:若所述第一出边信息包括图划分标识信息,当根据所述图划分标识信息确定所述历史游走顶点与所述目标游走顶点同属于一个子图中的顶点时,获取所述第二出邻集合;将所述第二出邻集合添加至所述第一出边信息中,将包含所述第二出邻集合的第一出边信息确定为所述目标出边信息。
- 根据权利要求3所述的方法,其特征在于,所述根据所述第一出边信息确定目标出边信息,包括:若所述第一出边信息包括指示信息,基于所述指示消息在哈希表中获取与所述历史游走顶点的标识信息对应的所述第二出邻集合;将所述第二出邻集合添加至所述第一出边信息中,将包含所述第二出邻集合的第一出边信息确定为所述目标出边信息。
- 根据权利要求3所述的方法,其特征在于,所述根据所述目标游走顶点的标识信息、所述第一出邻集合、所述目标出边信息中的所述历史游走顶点的标识信息、所述初始游走顶点的标识信息以及所述历史游走顶点对应的第二出邻集合,分别确定所述目标游走顶点与所述第一出邻集合中的每个顶点之间的缩放倍数,包括:根据所述目标游走顶点的标识信息、所述第一出邻集合、所述目标出边信息中的所述历史游走顶点的标识信息以及所述第二出邻集合,分别确定所述第一出邻集合中的每个顶点的顶点类型;根据所述顶点类型分别确定所述第一出邻集合中的每个顶点的缩放倍数。
- 根据权利要求7所述的方法,其特征在于,所述根据所述目标游走顶点的标识信息、所述第一出邻集合、所述目标出边信息中的所述历史游走顶点的标识信息以及所述第二出邻集合,分别确定所述第一出邻集合中的每个顶点的顶点类型,包括:将所述第一出邻集合中为所述历史游走顶点的顶点确定为第一类型顶点;将所述第一出邻集合中与所述第二出邻集合中的顶点为公共出邻顶点的顶点确定为第二类型顶点;将所述第一出邻集合中除所述第一类型顶点以及所述第二类型顶点之外的顶点确定为第三类型顶点。
- 根据权利要求6所述的方法,其特征在于,还包括:当检测到所述历史游走顶点为初次被访问时,获取所述历史游走顶点的出度值;当所述出度值达到第一度量值阈值时,基于所述历史游走顶点的标识信息将所述第二出邻 集合缓存至所述哈希表。
- 根据权利要求6所述的方法,其特征在于,还包括:当检测到所述历史游走顶点为初次被访问时,获取所述历史游走顶点的入度值;当所述入度值达到第二度量值阈值时,基于所述历史游走顶点的标识信息将所述第二出邻集合缓存至所述哈希表。
- 根据权利要求6所述的方法,其特征在于,还包括:当检测到所述历史游走顶点为初次被访问时,获取所述历史游走顶点的访问次数值;当所述访问次数值达到第三度量值阈值时,基于所述历史游走顶点的标识信息将所述第二出邻集合缓存至所述哈希表。
- 根据权利要求8所述的方法,其特征在于,所述根据所述边转移概率在所述第一出邻集合中确定待游走顶点,包括:根据所述目标游走顶点与所述第一出邻集合中的每个顶点之间的边转移概率,分别确定所述第一出邻集合中的每个顶点的边转移概率累积和;根据所述目标游走顶点与所述第一出邻集合中的每个顶点之间的转移权重以及缩放倍数,分别确定所述第一出邻集合中的每个顶点的权重累积和;基于均匀分布、所述第一出邻集合中的每个顶点的权重累积和生成随机数;根据所述随机数与所述第一出邻集合中的每个顶点的边转移概率累积和的数值范围,确定所述待游走顶点。
- 根据权利要求12所述的方法,其特征在于,所述根据所述目标游走顶点与所述第一出邻集合中的每个顶点之间的转移权重以及缩放倍数,分别确定所述第一出邻集合中的每个顶点的权重累积和,包括:将所述第一出邻集合中的每个顶点确定为目标待处理顶点;根据所述目标待处理顶点的标识信息、所述第一类型顶点的标识信息和缩放倍数、所述第一类型顶点与所述目标游走顶点之间的转移权重、所述第二类型顶点的标识信息和缩放倍数、所述第二类型顶点与所述目标游走顶点之间的转移权重,确定第一待处理顶点的权重累积和;根据所述第三类型顶点的标识信息和缩放倍数、所述第三类型顶点与所述目标游走顶点之间的转移权重,确定第二待处理顶点的权重累积和;根据所述第一待处理顶点的权重累积和以及所述第二待处理顶点的权重累积和,确定所述目标待处理顶点的权重累积和。
- 根据权利要求13所述的方法,其特征在于,所述根据所述目标待处理顶点的标识信息、所述第一类型顶点的标识信息和缩放倍数、所述第一类型顶点与所述目标游走顶点之间的转移权重、所述第二类型顶点的标识信息和缩放倍数、所述第二类型顶点与所述目标游走顶点之间的转移权重,确定第一待处理顶点的权重累积和,包括:基于顶点的标识信息的数值,对所述第一类型顶点与所述第二类型顶点进行排序,并根据排序之后的第一类型顶点与第二类型顶点生成第一顶点数组;基于所述第一顶点数组中每个顶点的排序关系、根据所述目标游走顶点与所述第一顶点数组中的每个顶点之间的转移权重以及缩放倍数,确定所述第一顶点数组中的每个顶点的权重累积和,并根据所述第一顶点数组中的每个顶点的权重累积和生成权重数组;在所述第一顶点数组中查找标识信息的数值不大于所述目标待处理顶点的标识信息的数值的顶点,将查找到的所有顶点确定为所述第一待处理顶点;在所述权重数组中获取所述第一待处理顶点中顶点的标识信息的数值最大的顶点对应的权重累积和,将获取到的权重累积和确定为所述第一待处理顶点的权重累积和。
- 根据权利要求13所述的方法,其特征在于,所述根据所述第三类型顶点的标识信息和缩放倍数、所述第三类型顶点与所述目标游走顶点之间的转移权重,确定第二待处理顶点的权重累积和,包括:基于顶点的标识信息的数值,对所述第一出邻集合中的所有顶点进行排序,并根据排序之后的所有顶点生成第二顶点数组;在所述第二顶点数组中查找标识信息的数值不大于所述目标待处理顶点的标识信息的数值的所有顶点,将查找到的所有顶点确定为待选择顶点,并将所述待选择顶点中除所述第一待处理顶点之外的所有顶点确定为所述第二待处理顶点;根据所述目标游走顶点与所述第二待处理顶点中的每个顶点的转移权重以及缩放倍数确定所述第二待处理顶点的权重累积和。
- 一种数据处理装置,其特征在于,包括:获取模块,用于在目标图中指定目标游走顶点,确定与所述目标游走顶点相邻的历史游走顶点,获取由所述历史游走顶点传递到所述目标游走顶点的第一出边信息;概率确定模块,用于获取第一出邻集合,所述第一出邻集合是指所述目标游走顶点游走到的下一个可能顶点的集合;根据所述第一出边信息,确定所述目标游走顶点与所述第一出邻集合中每个顶点之间的边转移概率;顶点确定模块,用于根据所述边转移概率在所述第一出邻集合中确定待游走顶点;游走模块,用于基于所述第一出邻集合生成所述目标游走顶点对应的第二出边信息,从所述目标游走顶点游走至所述待游走顶点,并将所述第二出边信息传递至所述待游走顶点,将所述待游走顶点确定为新的目标游走顶点;序列生成模块,用于若目标游走顶点对应的游走次数达到预设游走步数阈值,则生成目标游走顶点对应的随机游走序列。
- 根据权利要求16所述的装置,其特征在于,所述获取模块包括:第一确定单元,用于获取所述目标图中的所有顶点,并将所述目标图中的每个顶点确定为 原始顶点;触发单元,用于分别确定每个原始顶点的目标游走步数,并基于所述目标游走步数对所述每个原始顶点同步触发相互独立的随机游走任务;游走单元,用于在已触发所述随机游走任务的原始顶点中确定初始游走顶点,从所述初始游走顶点游走至所述目标游走顶点,并将所述初始游走顶点确定为所述目标游走顶点相邻的历史游走顶点。
- 根据权利要求16所述的装置,其特征在于,所述概率确定模块包括:信息确定单元,用于根据所述第一出边信息确定目标出边信息;缩放倍数确定单元,用于根据所述目标游走顶点的标识信息、所述第一出邻集合、所述目标出边信息中的所述历史游走顶点的标识信息、所述初始游走顶点的标识信息以及所述历史游走顶点对应的第二出邻集合,分别确定所述目标游走顶点与所述第一出邻集合中的每个顶点之间的缩放倍数;转移权重确定单元,用于在目标图中获取所述目标游走顶点分别与所述第一出邻集合中的每个顶点之间的转移权重;边转移概率确定单元,用于根据所述转移权重以及所述缩放倍数,确定所述目标游走顶点分别与所述第一出邻集合中的每个顶点之间的边转移概率。
- 根据权利要求18所述的装置,其特征在于,所述缩放倍数确定单元用于,根据所述目标游走顶点的标识信息、所述第一出邻集合、所述目标出边信息中的所述历史游走顶点的标识信息以及所述第二出邻集合,分别确定所述第一出邻集合中的每个顶点的顶点类型;根据所述顶点类型分别确定所述第一出邻集合中的每个顶点的缩放倍数。
- 根据权利要求19所述的装置,其特征在于,所述缩放倍数确定单元用于,将所述第一出邻集合中为所述历史游走顶点的顶点确定为第一类型顶点;将所述第一出邻集合中与所述第二出邻集合中的顶点为公共出邻顶点的顶点确定为第二类型顶点;将所述第一出邻集合中除所述第一类型顶点以及所述第二类型顶点之外的顶点确定为第三类型顶点。
- 根据权利要求20所述的装置,其特征在于,所述顶点确定模块包括:第一累积和确定单元,用于根据所述目标游走顶点与所述第一出邻集合中的每个顶点之间的边转移概率,分别确定所述第一出邻集合中的每个顶点的边转移概率累积和;第二累积和确定单元,用于根据所述目标游走顶点与所述第一出邻集合中的每个顶点之间的转移权重以及缩放倍数,分别确定所述第一出邻集合中的每个顶点的权重累积和;随机数生成单元,用于基于均匀分布、所述第一出邻集合中的每个顶点的权重累积和生成随机数;顶点确定单元,用于根据所述随机数与所述第一出邻集合中的每个顶点的边转移概率累积和的数值范围,确定所述待游走顶点。
- 根据权利要求21所述的装置,其特征在于,所述第二累积和确定单元包括:顶点确定子单元,用于将所述第一出邻集合中的每个顶点确定为目标待处理顶点;第一累积和确定子单元,用于根据所述目标待处理顶点的标识信息、所述第一类型顶点的标识信息和缩放倍数、所述第一类型顶点与所述目标游走顶点之间的转移权重、所述第二类型顶点的标识信息和缩放倍数、所述第二类型顶点与所述目标游走顶点之间的转移权重,确定第一待处理顶点的权重累积和;第二累积和确定子单元,用于根据所述第三类型顶点的标识信息和缩放倍数、所述第三类型顶点与所述目标游走顶点之间的转移权重,确定第二待处理顶点的权重累积和;第三累积和确定子单元,用于根据所述第一待处理顶点的权重累积和以及所述第二待处理顶点的权重累积和,确定所述目标待处理顶点的权重累积和。
- 一种电子设备,其特征在于,包括:处理器和存储器;所述处理器和存储器相连,其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如权利要求1-15任一项所述的方法。
- 一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如权利要求1-15任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP20786716.9A EP3955133A4 (en) | 2019-04-08 | 2020-03-16 | DATA PROCESSING METHOD AND APPARATUS, ELECTRONIC DEVICE, AND STORAGE MEDIA |
US17/372,099 US11450042B2 (en) | 2019-04-08 | 2021-07-09 | Data processing for generating a random walk sequence |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910276296.2 | 2019-04-08 | ||
CN201910276296.2A CN110019989B (zh) | 2019-04-08 | 2019-04-08 | 一种数据处理方法及装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/372,099 Continuation US11450042B2 (en) | 2019-04-08 | 2021-07-09 | Data processing for generating a random walk sequence |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020207197A1 true WO2020207197A1 (zh) | 2020-10-15 |
Family
ID=67190708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/079459 WO2020207197A1 (zh) | 2019-04-08 | 2020-03-16 | 一种数据处理方法、装置、电子设备及存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11450042B2 (zh) |
EP (1) | EP3955133A4 (zh) |
CN (1) | CN110019989B (zh) |
WO (1) | WO2020207197A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019989B (zh) | 2019-04-08 | 2023-11-03 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及装置 |
CN111049809A (zh) * | 2019-11-27 | 2020-04-21 | 深圳壹账通智能科技有限公司 | 风险用户识别方法、装置、计算机设备及存储介质 |
CN112417247B (zh) * | 2020-11-22 | 2022-04-05 | 同济大学 | 基于随机游走的动态流图数据顶点重要性更新方法和装置 |
WO2023155992A1 (en) * | 2022-02-17 | 2023-08-24 | Huawei Technologies Co., Ltd. | Fast record attachment to a directed acyclic graph based distributed ledger system |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120197834A1 (en) * | 2011-02-01 | 2012-08-02 | Microsoft Corporation | Estimating relatedness in social network |
CN106777284A (zh) * | 2016-12-29 | 2017-05-31 | 南京邮电大学 | 一种基于标签信息的图游走表示方法 |
CN107943934A (zh) * | 2017-11-23 | 2018-04-20 | 北京天广汇通科技有限公司 | 关系强度确定方法和装置 |
US20180121823A1 (en) * | 2014-05-01 | 2018-05-03 | International Business Machines Corporation | Method, System and Computer Program Product for Automating Expertise Management Using Social and Enterprise Data |
CN108108407A (zh) * | 2017-12-11 | 2018-06-01 | 南京师范大学 | 基于时空轨迹的群体运动移动簇模式排序方法 |
CN110019989A (zh) * | 2019-04-08 | 2019-07-16 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8380723B2 (en) * | 2010-05-21 | 2013-02-19 | Microsoft Corporation | Query intent in information retrieval |
WO2012051583A1 (en) * | 2010-10-15 | 2012-04-19 | Ness Computing, Inc. | A computer system and method for analyzing data sets and providing personalized recommendations |
US8903824B2 (en) * | 2011-12-09 | 2014-12-02 | International Business Machines Corporation | Vertex-proximity query processing |
US9195941B2 (en) * | 2013-04-23 | 2015-11-24 | International Business Machines Corporation | Predictive and descriptive analysis on relations graphs with heterogeneous entities |
WO2015173854A1 (ja) * | 2014-05-12 | 2015-11-19 | 株式会社 日立製作所 | 情報処理システムおよび情報処理方法 |
JP6757913B2 (ja) * | 2016-02-26 | 2020-09-23 | 国立研究開発法人情報通信研究機構 | 画像クラスタリングシステム、画像クラスタリング方法、画像クラスタリングプログラム、および、コミュニティ構造検出システム |
CN107590243B (zh) * | 2017-09-14 | 2019-09-06 | 中国人民解放军信息工程大学 | 基于随机游走和多样性图排序的个性化服务推荐方法 |
CN108021610A (zh) * | 2017-11-02 | 2018-05-11 | 阿里巴巴集团控股有限公司 | 随机游走、基于分布式系统的随机游走方法、装置以及设备 |
US11281964B2 (en) * | 2018-06-27 | 2022-03-22 | National Technology & Engineering Solutions Of Sandia, Llc | Devices and methods for increasing the speed and efficiency at which a computer is capable of modeling a plurality of random walkers using a particle method |
CN109002856B (zh) * | 2018-07-20 | 2020-08-14 | 西安交通大学 | 一种基于随机游走的流量特征自动生成方法与系统 |
US11334567B2 (en) * | 2019-08-16 | 2022-05-17 | Oracle International Corporation | Efficient SQL-based graph random walk |
-
2019
- 2019-04-08 CN CN201910276296.2A patent/CN110019989B/zh active Active
-
2020
- 2020-03-16 WO PCT/CN2020/079459 patent/WO2020207197A1/zh unknown
- 2020-03-16 EP EP20786716.9A patent/EP3955133A4/en active Pending
-
2021
- 2021-07-09 US US17/372,099 patent/US11450042B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120197834A1 (en) * | 2011-02-01 | 2012-08-02 | Microsoft Corporation | Estimating relatedness in social network |
US20180121823A1 (en) * | 2014-05-01 | 2018-05-03 | International Business Machines Corporation | Method, System and Computer Program Product for Automating Expertise Management Using Social and Enterprise Data |
CN106777284A (zh) * | 2016-12-29 | 2017-05-31 | 南京邮电大学 | 一种基于标签信息的图游走表示方法 |
CN107943934A (zh) * | 2017-11-23 | 2018-04-20 | 北京天广汇通科技有限公司 | 关系强度确定方法和装置 |
CN108108407A (zh) * | 2017-12-11 | 2018-06-01 | 南京师范大学 | 基于时空轨迹的群体运动移动簇模式排序方法 |
CN110019989A (zh) * | 2019-04-08 | 2019-07-16 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3955133A4 (en) | 2022-05-18 |
US20210335025A1 (en) | 2021-10-28 |
CN110019989B (zh) | 2023-11-03 |
EP3955133A1 (en) | 2022-02-16 |
CN110019989A (zh) | 2019-07-16 |
US11450042B2 (en) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020207197A1 (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
Wang et al. | Efficient distance-aware influence maximization in geo-social networks | |
Alvari et al. | Community detection in dynamic social networks: A game-theoretic approach | |
US9135630B2 (en) | Systems and methods for large-scale link analysis | |
CN105991674A (zh) | 一种信息推送方法和装置 | |
JP6155833B2 (ja) | 伝達情報変動検知方法、伝達情報変動検知装置および伝達情報変動検知プログラム | |
CN113568940B (zh) | 数据查询的方法、装置、设备以及存储介质 | |
CN112580789B (zh) | 训练图编码网络、预测交互事件的方法及装置 | |
CN110555172A (zh) | 用户关系挖掘方法及装置、电子设备和存储介质 | |
US9674083B2 (en) | Path calculation order deciding method, program and calculating apparatus | |
CN115860179A (zh) | 轨迹预测方法、装置、设备、存储介质及程序产品 | |
CN109802859A (zh) | 一种网络图中的节点推荐方法和服务器 | |
CN110880150A (zh) | 社区发现方法、装置、设备和可读存储介质 | |
CN105550240B (zh) | 一种推荐的方法及装置 | |
KR101609457B1 (ko) | 대용량 그래프 데이터베이스에서 하한 경계값에 기초하여 메디안 노드를 검색하는 방법 | |
CN116127661A (zh) | 终端接入变电站的路径确定方法、装置、设备和存储介质 | |
CN104735237A (zh) | 一种路径预测方法及交互式语音应答ivr路径预测系统 | |
CN110442616A (zh) | 一种针对大数据量的页面访问路径分析方法与系统 | |
KR101591595B1 (ko) | 대용량 그래프 데이터베이스에서 링크를 예측하는 방법 | |
CN103064872A (zh) | 使用数据结构处理搜索查询 | |
JP5900487B2 (ja) | 移動体管理システム、移動体管理サーバ、移動体管理方法および移動体管理プログラム | |
Duong et al. | Spatiotemporal data mining for mobility prediction in wireless network | |
CN112966893A (zh) | 一种物流网络规划方法及装置 | |
Borusu et al. | Online partial service hosting at the edge | |
CN117880917B (zh) | 一种动态自组网络方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20786716 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2020786716 Country of ref document: EP Effective date: 20211108 |