Generation apparatus, generation method, and generation program
The generating apparatus enhances prediction accuracy in graph neural networks by generating new features through path-based filtering and aggregation, addressing the lack of feature updating in conventional methods.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- HITACHI LTD
- Filing Date
- 2022-08-02
- Publication Date
- 2026-04-21
AI Technical Summary
Conventional techniques do not account for updating or generating new features in graph neural networks, which affects prediction accuracy.
A generating apparatus that performs a search process through a graph based on node connections, acquires feature quantities along paths, and adds these quantities to the end node to generate new features.
Improves prediction accuracy in graph neural networks by generating additional features through path-based filtering and aggregation.
Smart Images

Figure 0007849244000001 
Figure 0007849244000002 
Figure 0007849244000003
Abstract
Description
Technical Field
[0001] The present invention relates to a generation device, a generation method, and a generation program for generating data.
Background Art
[0002] The following Patent Document 1 discloses a deep learning method for predicting compound properties that can improve classification accuracy when performing deep learning using a small number of teacher data. This deep learning method includes a step of pre-training the weights of a multi-layer neural network using data obtained by graphing artificial compound data having molecular structure data and vectorizing the data using sub-graphs, and a step of setting the learned weights as initial weights for a multi-layer neural network for property prediction and learning the weights using the compound data. The deep learning device includes an artificial compound database having molecular structure data, a compound database having teacher data, a pre-training execution unit that learns the weights of a multi-layer neural network using data obtained by graphing the molecular structure data and vectorizing the data using sub-graphs, and a learning execution unit that sets the learned weights as initial weights and learns the weights using the compound database.
[0003] The following Patent Document 2 discloses a learning device that suppresses deterioration of prediction accuracy. The medical data structure includes patient medical data composed of a plurality of elements and morbidity information for identifying whether the patient is a person with a poor physical condition who has been hospitalized or a normal person who has never been hospitalized. When the patient corresponds to a recovered patient, the learning device changes the weight of any element of the medical data according to a weighting rule to change the tensor data, generates a core tensor to be similar to the target core tensor, and uses the medical data structure for a process of inputting the core tensor into a learning device using a deep tensor and performing supervised learning.
[0004] The learning device described in Patent Document 3 below includes: a masking unit that receives a set of learning data which is a collection of graph structure data including edges having multiple attributes, and performs masking on a portion of the learning data set to generate missing learning data in which the learning data set is missing; an edge feature extraction unit that extracts the features of edges included in the missing learning data; a graph feature extraction unit that extracts the features of graph structure data corresponding to the missing learning data based on the features extracted by the edge feature extraction unit; a storage device that stores a learning model that estimates graph structure data without missing data from the missing graph structure data; and a learning unit that learns the learning model stored in the storage device based on the features extracted by the graph feature extraction unit so that graph structure data without missing data is estimated, and outputs a trained model after training. [Prior art documents] [Patent Documents]
[0005] [Patent Document 1] Japanese Patent Publication No. 2020-009203 [Patent Document 2] Japanese Patent Publication No. 2020-101901 [Patent Document 3] International Publication No. 21 / 111499 [Overview of the project] [Problems that the invention aims to solve]
[0006] However, the conventional techniques described above do not take into account updating existing features or generating new features in graph neural networks.
[0007] The present invention aims to improve the prediction accuracy in graph neural networks. [Means for solving the problem]
[0008] A generating apparatus that represents one aspect of the invention disclosed in this application is a generating apparatus having a processor that executes a program and a storage device that stores the program, wherein the storage device stores the feature quantities of each node of a plurality of nodes constituting a graph and the connection relationships between the nodes, and the processor is characterized in that it performs a search process that searches for a path in the graph by transitioning between the nodes based on the connection relationships, an acquisition process that acquires the feature quantity of the source node when transitioning from the source node to the destination node in the search of the search process, and an addition process that adds the feature quantities acquired up to the end node by the acquisition process to the feature quantity of the end node of the path. [Effects of the Invention]
[0009] According to a typical embodiment of the present invention, it is possible to improve the prediction accuracy in graph neural networks. Other issues, configurations, and effects not mentioned above will be clarified by the following description of the embodiments. [Brief explanation of the drawing]
[0010] [Figure 1] Figure 1 is an explanatory diagram showing an example of an input graph. [Figure 2] Figure 2 is an explanatory diagram showing the details of the input graph shown in Figure 1. [Figure 3] Figure 3 is an explanatory diagram showing an example of processing when generating features in an input graph. [Figure 4] Figure 4 is an explanatory diagram showing an example of additional features. [Figure 5] Figure 5 is an explanatory diagram showing example 2 of the processing when generating features in an input graph. [Figure 6] Figure 6 is an explanatory diagram showing an example of additional features. [Figure 7] Figure 7 is an explanatory diagram showing example 3 of the processing when generating features in an input graph. [Figure 8] Figure 8 is an explanatory diagram showing an example of additional features. [Figure 9]FIG. 9 is an explanatory diagram showing a processing example 4 during feature amount generation in an input graph. [Figure 10] FIG. 10 is an explanatory diagram showing an example of an additional feature amount. [Figure 11] FIG. 11 is an explanatory diagram showing the state of an input graph after feature amount generation. [Figure 12] FIG. 12 is a flowchart showing an example of a feature amount generation processing procedure. [Figure 13] FIG. 13 is a block diagram showing an example of the hardware configuration of a generation device. [Figure 14] FIG. 14 is an explanatory diagram showing an example of an input graph. [Figure 15] FIG. 15 is an explanatory diagram showing an example of a node DB. [Figure 16] FIG. 16 is an explanatory diagram showing an example of an edge DB. [Figure 17] FIG. 17 is an explanatory diagram showing an example of the configuration of a GCN. [Figure 18] FIG. 18 is an explanatory diagram showing an example of an EMBEDDING layer. [Figure 19] FIG. 19 is an explanatory diagram showing an example of an RGCN layer. [Figure 20] FIG. 20 is an explanatory diagram showing an example of a ReLU layer. [Figure 21] FIG. 21 is an explanatory diagram showing an example of a dropout layer. [Figure 22] FIG. 22 is an explanatory diagram showing an example of a max layer. [Figure 23] FIG. 23 is an explanatory diagram showing the connection relationship between a GCN layer and a concat layer. [Figure 24] FIG. 24 is an explanatory diagram showing an example of an MLP layer and a softmax layer. [Figure 25] FIG. 25 is an explanatory diagram showing an example of a first graph display. [Figure 26] FIG. 26 is an explanatory diagram showing an example of a second graph display. [Figure 27] FIG. 27 is a flowchart showing an example of a graph display processing procedure by a generation device. [Figure 28] Figure 28 is an explanatory diagram showing another example of the first graph representation. [Figure 29] Figure 29 is an explanatory diagram showing another example of the second graph display. [Modes for carrying out the invention] [Examples]
[0011] <Input Graph> Figure 1 is an explanatory diagram showing an example of an input graph input to the generation apparatus in Embodiment 1 of the present invention. Figure 2 is an explanatory diagram showing details of the input graph shown in Figure 1. In Figure 1, the input graph 100 is composed of a plurality of node types Na to Nd and edges connecting the plurality of node types Na to Nd. The edges are assigned a direction.
[0012] A node type is defined as one or more identical nodes. As shown in Figure 2, node type Na has nodes Na1 to Na3, node type Nb has nodes Nb1 to Na6, node type Nc has nodes Nc1 to Nc3, and node type Nd has nodes Nd1 to Nd2.
[0013] Note that if nodes Na1 to Na3 are not distinguished, they are simply referred to as node Na. If nodes Nb1 to Na6 are not distinguished, they are simply referred to as node Nb. If nodes Nc1 to Nc3 are not distinguished, they are simply referred to as node Nc. If nodes Nd1 to Nd2 are not distinguished, they are simply referred to as node Nd.
[0014] Node type Na has one or more customer nodes (hereinafter referred to as customer nodes) Na1 to Na3 and is connected to node types Nb and Nc by edges. Node type Nb has one or more order nodes (hereinafter referred to as order nodes) Nb1 to Na6 and is connected to node types Na, Nb, and Nc by edges. Node type Nc consists of one or more product nodes (hereinafter referred to as product nodes) Nc1 to Nc3 and is connected to node type Nb by edges. Node type Nd has one or more employee nodes (hereinafter referred to as employee nodes) Nd1 to Nd2 and is connected to node type Nb by edges. In each node type Na to Nd, the key and value represent the features of each customer, order, product, and employee within that node type Na to Nd. The key is the feature item, and the value is the value of the feature item.
[0015] There are two types of keys: categorical and continuous. Categorical keys include, for example, job titles such as section chief or engineer. Features with categorical keys are called categorical features. Continuous keys include, for example, numerical data such as amount, year of employment, and length of service, as well as date and time types such as order date and delivery date. Features with continuous keys are called continuous features. In addition to nodes, edges may also have categorical or continuous keys.
[0016] For example, customer node Na has industry, sales revenue, number of employees, and years in business as keys. Also, taking customer a1 as an example, customer node Na has values corresponding to the keys, such as industry "manufacturing", sales revenue "1 billion yen", number of employees "100", and years in business "25" (years).
[0017] The order node Nb has the order date, quantity, and order amount as keys. For example, in order b1, the order node Nb has the order date "2020 / 12 / 0", the quantity "100" (units), and the order amount "¥100,000" as values corresponding to the keys.
[0018] Product node Nc has the following keys: product name, category, price, and delivery date. For example, product c1 has the following values corresponding to the keys: product name "mouse", category "PC peripherals", price "¥1,000", and delivery date "3 days".
[0019] An employee node Nd has age, department, job title, and years of service as key and value. For example, employee d1 has the following values corresponding to the key: age "30" (years old), department "Sales Department", job title "Section Chief", and years of service "7" (years).
[0020] Figure 2 is a diagram that shows the structure of the input graph shown in Figure 1 in more detail. To explain Figure 2 in more detail, the event "Employee Nd1 sold product Nc1 to customer company Na1" is order Nb1. The event "Employee Nd2 sold product Nc1 to customer company Na2" is order Nb2. The event "Employee Nd1 sold product Nc2 to customer company Na2" is order Nb3. The event "Employee Nd1 sold product Nc2 to customer company Na2" is order Nb4. The event "Employee Nd2 sold product Nc3 to customer company Na3" is order Nb5. The event "Employee Nd2 sold product Nc3 to customer company Na3" is order Nb6. If events such as selling to the same customer company multiple times, selling the same product multiple times, or the same employee making sales multiple times occur, one node will be represented as being connected to multiple nodes by edges.
[0021] <Processing during feature generation> Next, we will explain an example of the feature generation process in input graph 100 using Figures 3 to 12. In the feature generation process for input graph 100, new features are generated by following a path from a starting node type, through intermediate node types, to an ending node type. In this process, filters may be set on the starting or intermediate node types. A filter is a condition that restricts the features of the nodes that are passed through. There are two types of filters: filters specified for each path (hereinafter referred to as path filters) and filters fixed to node types regardless of the path (node type filters). Which type of filter is set for which node type is predetermined.
[0022] Figure 3 is an explanatory diagram showing example 1 of the processing when generating features in the input graph 100. Figure 3 shows an example of feature generation when following the path R1 from node Na → Nb → Nc in the input graph 100. A filter F1 is set on the order node Nb. Filter F1 is a path filter that includes conditions C1 and C2. Condition C1 indicates the range of the order date, which is the key, and condition C2 indicates the range of the order amount, which is the key. In other words, the path R1 that follows node Na → Nb → Nc must satisfy conditions C1 and C2. By satisfying conditions C1 and C2, an additional feature 300 is added to the product node Nc.
[0023] In other words, in route R1, the features of customer node type Na are aggregated across all customers and then restricted by the features of order node type Nb to which filter F1 is applied. Therefore, the keys and values of the additional feature 300 are the feature items and their values restricted by filter F1 for all customers within customer node type Na.
[0024] Figure 4 is an explanatory diagram showing an example of additional feature 300. Additional feature 300 registers new keys and values for customers that satisfy the conditions C1 and C2 of filter F1. For example, the number of types of "vendors" for customer companies and "4" indicates that in path R1, there are 4 types of customer a at customer node Na.
[0025] The type of "business" of the customer company, and whether it is "manufacturing, retail, wholesale, or insurance," is indicated in the customer node Na on route R1, showing that customer a is of the type "manufacturing, retail, wholesale, or insurance."
[0026] The total "sales amount" of customer companies and the figure "8 billion yen" indicate that, in route R1, the total sales amount of customer a at customer node Na is "8 billion yen".
[0027] The maximum value of customer company "sales amount" and "2 billion yen" indicate that the maximum sales amount for customer a in customer node Na is "2 billion yen".
[0028] The minimum value of customer company's "sales amount" and "100 million yen" indicate that the minimum sales amount for customer a in customer node Na is "100 million yen".
[0029] The standard deviation of the customer company's "sales amount" and "150 million yen" indicate that the standard deviation of customer a's sales amount at customer node Na is "150 million yen".
[0030] The average number of employees for customer companies, "230 people," indicates that the average number of employees for customer a in customer node Na is "230 people."
[0031] Figure 5 is an explanatory diagram showing example 2 of the feature generation process in input graph 100. Figure 5 shows an example of feature generation when following the path R2 from node Na → Nb → Nd in input graph 100. Since filter F1 is set on the order node Nb, the path R2 following node Na → Nb → Nd must satisfy conditions C1 and C2, just like path R1. By satisfying conditions C1 and C2, an additional feature 500 is added to the employee node Nd.
[0032] Figure 6 is an explanatory diagram showing an example of additional feature 500. In route R2, as in route R1, the features of customer node Na are restricted by the features of customer Nb to which filter F1 is applied. Therefore, the keys and values of additional feature 300 are the feature items and their values restricted by filter F1 for all customers in customer node Na. In other words, additional feature 500 will have the same data as additional feature 300.
[0033] Figure 7 is an explanatory diagram showing example 3 of the feature generation process in input graph 100. Figure 7 shows an example of feature generation when following the path R3 from node Nc → Nb → Nd in input graph 100. A filter F2 is set on the product node Nc. Since filter F2 is fixed to node type Nc, it is a node type filter that includes conditions C3 and C4. Condition C3 indicates the range of the key category, and condition C4 indicates the range of the key delivery date. In other words, the path R3 following node Nc → Nb → Nd must satisfy conditions C3 and C4. By satisfying conditions C3 and C4, an additional feature 700 is added to the employee node Nd.
[0034] In other words, in route R3, the features of product node Nc to which filter F2 is applied are aggregated across all products and restricted by the features of order node Nb. Therefore, the keys and values of the additional feature 700 are the feature items and their values restricted by filter F2 for all products within product node Nc.
[0035] Figure 8 is an explanatory diagram showing an example of additional feature 700. Additional feature 700 registers new keys and values for products that satisfy the conditions C3 and C4 of filter F2. For example, the number of types of product "product name" and "2" indicate that in path R3, there are two types of product c at product node Nc.
[0036] The "product name" and "mouse, keyboard" of product c indicate to product node Nc in route R3 that the type of product c is "mouse, keyboard".
[0037] The sum of the "prices" of product c, "¥2,500," indicates that in path R3, the sum of the prices of product c at product node Nc is "¥2,500."
[0038] The maximum value of the "price" of product c, "¥1,500," indicates that in path R3, the maximum price of product c at product node Nc is "¥1,500."
[0039] The minimum value of the "price" of product c, "¥1,000", indicates that in path R3, the minimum price of product c at product node Nc is "¥1,000".
[0040] The standard deviation of the "price" of product c, "¥353", indicates that in path R3, the standard deviation of the price of product c at product node Nc is "¥353".
[0041] Note that route R3 includes order node Nb to which filter F1 is applied, but the features of product node Nc are not affected by filter F1 conditions C1 and C2, and therefore are not restricted by filter F1. However, if product node Nc contains features that are affected by filter F1 conditions C1 and C2, then it will be restricted by filter F1.
[0042] Figure 9 is an explanatory diagram showing example 4 of the feature generation process in input graph 100. Figure 9 shows an example of feature generation when following the path R4 from node Nc → Nb → Na in input graph 100. Since filter F2 is set on product node Nc, the path R4 following node Nc → Nb → Na must satisfy conditions C3 and C4. By satisfying conditions C3 and C4, an additional feature 900 is added to employee node Na.
[0043] In other words, in route R4, the features of product node Nc to which filter F2 is applied are aggregated for all products and restricted by the features of order node Nb. Therefore, the key and value of additional feature 800 are the feature items and their values restricted by filter F2 for all products within product node Nc.
[0044] Figure 10 is an explanatory diagram showing an example of additional feature 900. Additional feature 900 registers new keys and values for products that satisfy the conditions C3 and C4 of filter F2. For example, the number of types of product "product name" and "1" indicate that in path R3, product node Nc has two types of product c.
[0045] The "product name" and "mouse" of product c indicate to product node Nc in path R3 that the type of product c is "mouse".
[0046] The sum of the "prices" of product c, "¥1,000", indicates that in path R3, the sum of the prices of product c at product node Nc is "¥1,000".
[0047] The maximum value of the "price" of product c, "¥1,000," indicates that in path R3, the maximum price of product c at product node Nc is "¥1,000."
[0048] The minimum value of the "price" of product c, "¥1,000", indicates that in path R3, the minimum price of product c at product node Nc is "¥1,000".
[0049] The standard deviation of the "price" of product c and "¥0" indicate that, in path R3, the standard deviation of the price of product c at product node Nc is "¥0".
[0050] Note that routes R3 and R4 include order node Nb to which filter F1 is applied, but the features of product node Nc are not affected by filter F1 conditions C1 and C2, and therefore are not restricted by filter F1. However, if product node Nc contains features that are affected by filter F1 conditions C1 and C2, then it will be restricted by filter F1.
[0051] Furthermore, in Figures 8 and 10, although paths R3 and R4 both include the same path from node Nc to Nb, the additional feature quantity 700 added to employee node Nd and the additional feature quantity 900 added to customer node Na are different because employee node Nd and customer node Na are specifically connected to different order nodes Nb. For example, in the input graph shown in Figure 2, there are three order nodes connected to employee node Nd1: Nb1, Nb3, and Nb4, whereas there is only one order node connected to customer node Na1: Nb1.
[0052] Figure 11 is an explanatory diagram showing the state of the input graph 100 after feature generation. Additional features 900 are generated for node type Na, additional features 300 are generated for node type Nc, and additional features 500 and 700 are generated for node type Nd.
[0053] Figure 12 is a flowchart illustrating an example of a feature generation process. The feature generation process shown in Figure 12 is performed by a generator that holds the input graph 100. The generator determines whether or not there are any unselected starting node types in the input graph 100 (step S1201). The starting node type can be any node type within the input graph 100. The generator selects a starting node type (step S1202). Note that some node types are configured not to allow the selection of a starting node type. Such node types are excluded from the selection of a starting node type. In this example, node type Nb is one such example.
[0054] The generator obtains feature quantities of the selected starting node type (step S1203). Specifically, for example, it obtains the keys and values of the nodes within the selected starting node type.
[0055] The generator determines whether or not there is a filter in the selected starting node type (step S1204). If there is a filter, the generator applies the filter to the acquired features (step S1205) and proceeds to step S1206. On the other hand, if there is no filter (step S1204: No), it proceeds to step S1206.
[0056] The generation device determines whether there are any untransitioned node types that can be transitioned (step S1206). If there are any untransitioned node types that can be transitioned (step S1206: Yes), the generation device transitions the currently selected node type to the destination node type (step S1207).
[0057] The generator obtains feature quantities of the selected destination node type (step S1208). Specifically, for example, it obtains the keys and values of nodes within the selected destination node type.
[0058] The generator determines whether or not there is a filter in the selected transition node type (step S1209). If there is a filter, the generator applies the filter to the features acquired so far (step S1210) and proceeds to step S1206. On the other hand, if there is no filter (step S1209: No), it proceeds to step S1206.
[0059] If there are no untransitioned node types (step S1206: No), the generator returns to the source node type (step S1211). The generator determines whether the source node type is the starting node type (step S1212). If it is not the starting node type (step S1212: No), it returns to step S1206. On the other hand, if it is the starting node type (step S1212: Yes), it returns to step S1201. If there are no unselected starting node types (step S1201: No), the generator adds the final generated additional features to the end node type (step S1213) and terminates the series of processes. For example, as shown in Figure 11, if node type Na is the end node type, additional feature 900 is added; if node type Nb is the end node type, additional feature 300 is added; and if node type Nd is the end node type, additional features 500 and 700 are added.
[0060] <Example of hardware configuration for the generation device> Figure 13 is a block diagram showing an example of the hardware configuration of a generation device. The generation device 1300 includes a processor 1301, a storage device 1302, an input device 1303, an output device 1304, and a communication interface (communication IF) 1305. The processor 1301, storage device 1302, input device 1303, output device 1304, and communication IF 1305 are connected by a bus 1306. The processor 1301 controls the generation device 1300. The storage device 1302 serves as the work area for the processor 1301. The storage device 1302 is a non-temporary or temporary recording medium that stores various programs and data. Examples of storage devices 1302 include ROM (Read Only Memory), RAM (Random Access Memory), HDD (Hard Disk Drive), and flash memory. The input device 1303 receives data. Input devices 1303 include, for example, a keyboard, mouse, touch panel, numeric keypad, scanner, microphone, and sensor. Output devices 1304 output data. Output devices 1304 include, for example, a display, printer, and speaker. Communication IF 1305 connects to the network and sends and receives data.
[0061] <Input Graph> Figure 14 is an explanatory diagram showing an example of an input graph. The input graph 1400 has multiple (10 in Figure 11) nodes N1 to N10 and multiple (10 in Figure 11) edges E1 to E10 connecting any two of the nodes N1 to N10. When nodes N1 to N10 are not distinguished, they are referred to as node N. When edges E1 to E10 are not distinguished, they are referred to as edge E. The input graph 1400 is the data input to the GCN 1700, which will be described later, and specifically, for example, is the input graph 100 shown in Figure 11. The input graph 1400 is stored in the storage device 1302.
[0062] <nodeDB> Figure 15 is an explanatory diagram showing an example of a node DB. Node DB 1500 is a database that stores information about each of the nodes N1 to N10 of the input graph 1400. Node DB 1500 is stored in storage device 1302. Node DB 1500 has the following fields: node ID 1501, feature quantity 1502, estimated value 1503, and contribution 1504.
[0063] Node ID 1501 is an identifier that uniquely identifies node N. Feature 1502 is an n-dimensional vector consisting of factors F1 to Fn (where n is an integer greater than or equal to 1). Predicted value 1503 is the predicted result Y for each node N, which is output when the input graph 1400 is input into a trained GCN (Graph Convolutional Network). Feature 1502 has key and value pairs, as described in input graph 100.
[0064] The contribution score of 1504 is a numerical representation of the contribution of nodes N1 to N10 to node N, calculated for each node N. Known methods such as SHAP (SHapley Additive exPlanations) or LIME (Local Interpretable Model-agnostic Explanations) can be used to calculate the contribution score. Typically, the sum of the contribution scores of 1504 from each node N1 to N10 of a given node N equals the estimated value of node N, 1503.
[0065] In input graph 100, we focused on the features (keys and values) in our explanation, but it also includes node ID 1501, estimated value 1503, and contribution 1504.
[0066] <Edge DB> Figure 16 is an explanatory diagram showing an example of an edge database. The edge database 1600 is a database that stores information about each of the edges E1 to E10 of the input graph 1400. The edge database 1600 is stored in the storage device 1302. The edge database 1600 has the following fields: edge ID 1601, first node ID 1602, and second node ID 1603.
[0067] Edge ID 1601 is identification information that uniquely identifies edge E. First node ID 1602 is identification information that uniquely identifies first node N. Second node ID 1603 is identification information that uniquely identifies second node N. First node N is node N connected to one end of edge E, and second node N is node N connected to the other end of edge E.
[0068] Although not shown in the diagram, the edge DB1600 may store the feature vectors, edge length, and direction of each edge E. The feature vectors of edge E are used in addition to the node's feature vectors 1502 in the convolution operation of the two nodes N at both ends of edge E.
[0069] <gcn> Figure 17 is an explanatory diagram showing an example of the configuration of a GCN model. The GCN model 1700 has an EMBEDDING layer 1701, one or more GCN layers 1702-1 to 502-m (where m is an integer greater than or equal to 1), a concat layer 1703, an MLP (Multi-Layer Perceptron) layer 1704, and a softmax layer 1705. When GCN layers 1702-1 to 502-m are not distinguished, they are denoted as GCN layer 1702-j (where j is an integer satisfying 1 ≤ j ≤ m). The output of GCN layer 1702-j is input to the next GCN layer 1702-j+1 and simultaneously to concat layer 1703, forming a JK-Net (Jumping Knowledge Network).
[0070] The GCN layer 1702-j includes the RGCN (Relational Graph Convolution Network) layer 1721-j, the normalization layer 1722-j, the ReLU layer 1723-j, the dropout layer 1724-j, and the max layer 1725-j.
[0071] Figure 18 is an explanatory diagram showing an example of the EMBEDDING layer 1701. The EMBEDDING layer 1701 performs preprocessing of the features 1502 contained in node N of the input graph 1400. In Figure 18, the firm node Na, which represents a company, is used as an example. The firm node Na has features 1502 such as F1 (number of employees), F2 (annual sales), F3 (industry), ... Transformation C1 is no transformation, and the value of feature F1 is used as is. Transformation C2 is a logarithmic transformation, and the value of feature F2 is logarithmically transformed. Transformation C3 is a one-hot transformation, and "0" or "1" is assigned depending on the type. The sum-of-products operation is performed on the transformed firm node Na and the learning parameter weight Wa, and the sum-of-products result 1800 is output.
[0072] Figure 19 is an explanatory diagram showing an example of RGCN layer 1721-j. In Figure 19, we will focus on node N9, but the same applies to other nodes N1-N8 and N10. The neighboring node of node N9 is node N8. The neighboring edge of node N9 is edge E9. RGCN layer 1721-j updates the feature vector F(N9) of node N9 with the convolution result F(N9)ud, which is obtained by convolving the feature vector F(N9) of node N9, the feature vector F(N8) of neighboring node N8, and the feature vector F(E9) of neighboring edge E9 (only when j=1).
[0073] In Figure 17, the normalization layer 1722-j normalizes the convolution result of the RGCN layer 1721-j for each node N and edge E so that the mean = 0 and variance = 1, in order to suppress the variability of the absolute values for each of the 1502 features.
[0074] Figure 20 is an explanatory diagram showing an example of the ReLU layer 1723-j. The ReLU layer 1723-j inputs the updated feature vector 1502 of node N, which is the normalization result 2001 from the normalization layer 1722-j, into the ReLU function and converts negative values in the updated feature vector 1502 of node N to 0. In the convolution result 2002 after the conversion, "-3" and "-1" are converted to "0". By using the ReLU function, the vanishing gradient is less likely to occur, and the problem of learning not progressing is suppressed.
[0075] Figure 21 is an explanatory diagram showing an example of the dropout layer 1724-j. In Figure 21, nodes N8 to N10 are used as an example, but the same applies to nodes N1 to N7. The dropout layer 1724-j replaces a certain percentage of the 1502 features of node N with values of 0. This percentage is one of the hyperparameters. In Figure 21, the features F(N8) of node N8, F(N9) of node N9, and F(N10) of node N10 are updated to feature F(N8)ud, feature F(N9)ud, and feature F(N10)ud of node N10, respectively.
[0076] Figure 22 is an explanatory diagram showing an example of max layer 1725-j. In Figure 22, node N8 is used as an example. The output results from dropout layer 1724-j for node N8 and neighboring nodes N7, N9, and N10 are denoted as features F(N8), F(N7), F(N9), and F(N10). Max layer 1725-j performs a convolution operation with the learning parameters weights W(N8), W(N7), W(N9), and W(N10) and the features F(N8), F(N7), F(N9), and F(N10) to obtain the convolution results CR(N8), CR(N7), CR(N9), and CR(N10). In Figure 22, these are represented as 3D vectors.
[0077] The max layer 1725-j generates the maximum value vector of the same-dimensional factors of the convolutional operation results CR(N8), CR(N7), CR(N9), and CR(N10), and uses this as the updated feature F(N8)ud of node N8.
[0078] Figure 23 is an explanatory diagram showing the connectivity of JK-Net (Jumping Knowledge Network), which consists of GCN layers 1702-1 to 1702-m and concat layer 1703. GCN layers 1702-1 to 1702-(m-1) output the feature quantities F(N)-1 to F(N)-(m-1) obtained by the convolution operation to the subsequent GCN layers 1702-2 to 1702-m and concat layer 1703, respectively. GCN layer 1702-m outputs the feature quantity F(N)-m obtained by the convolution operation to concat layer 1703. concat layer 1703 combines the feature quantities F(N)-1 to F(N)-m.
[0079] Figure 24 is an explanatory diagram showing an example of an MLP layer 1704 and a softmax layer 1705. The MLP layer 1704 calculates an estimated value for each node N from the output result from the concat layer 1703. The softmax layer 1705 calculates a probability value between 0 and 1 as an estimated value 1503 by inputting the output result from the MLP layer 1704 into the softmax function.
[0080] In Figure 24, (A) represents two-class classification, (B) represents four-class classification, and (C) represents regression. In (A) to (C), the MLP layer 1704 receives the result of concatenation in the concat layer 1703. In (A) and (B), the MLP layer 1704 receives the result of the final stage calculation in the softmax layer 1705. In the case of (A) two-class classification, the softmax layer 1705 outputs a value between 0 and 1 as the estimated value 1503(Y) for each node N, and in the case of (B) four-class classification, it outputs a four-dimensional vector as the estimated value Y. Each value in this four-dimensional vector is between 0 and 1, and the sum of the four values is 1. In the case of (C) regression, the softmax layer 1705 outputs the estimated value 1503(Y) which indicates the prediction result without going through the softmax layer 1705.
[0081] Here, we will provide additional information regarding the estimated value 1503 and contribution 1504 of node DB1500. The generator 1300 calculates SHAP (SHapley Additive exPlanations) values for each of the 304 features of node N, using the GCN model 1700, which represent the contribution 1504 of each node N to the estimated value 1503 of node N. If edge E has features, the generator also calculates the contribution for each feature of edge E. Prior to inputting the input graph 1400 into the GCN model 1700, the generator 1300 accepts the user's input to specify the number of intermediate layers in the GCN model 1700, specifically, for example, the layer number j of GCN layer 1702-j. The generator 1300 calculates the estimated value 1503 and contribution 1504 for each feature of node N using GCN layers 1702-1 to GCN layer 1702-j with the specified layer number j.
[0082] The generation device 1300 pre-calculates the estimated value 1503 based on the specified layer number j and stores the estimated value 1503 and contribution score 1504 in the node DB 1500. Specifically, for example, the generation device 1300 stores in the node DB 1500 the estimated values 1503 and contributions 1504 obtained by the weight filter for GCN layer 1702-1, estimated values 1503 and contributions 1504 obtained by the weight filter for GCN layers 1702-1 to 1702-2, estimated values 1503 and contributions 1504 obtained by the weight filter for GCN layers 1702-1 to 1702-3, ..., estimated values 1503 and contributions 1504 obtained by the weight filter for GCN layers 1702-1 to 1702-j, ..., and estimated values 1503 and contributions 1504 obtained by the weight filter for GCN layers 1702-1 to 1702-m.
[0083] Subsequently, when the user requests the display of the estimated value 1503 and contribution score 1504 for node N, the generation device 1300 refers to the estimated value 1503 and contribution score 1504 for node N stored in the node DB 1500 and displays the information regarding the estimated value 1503 and contribution score 1504 for node N. In the following, the contribution score 1504 for node N is treated as a one-dimensional number, but in reality, the contribution score 1504 for node N has the same number of dimensions as the feature 1502. If necessary, the user can specify in advance how to aggregate the feature 1502 of node N into a one-dimensional value, such as selecting a numerical value for a specific dimension of the feature 1502, or taking the sum of all dimensions.
[0084] However, the generation device 1300 may, upon receiving a display instruction for the estimated value 1503 and contribution 1504 of node N, calculate the estimated value 1503 and contribution 1504 of node N using GCN layers 1702-j up to the layer number j specified by the user, and display the information regarding the calculated estimated value 1503 and contribution 1504 of node N.
[0085] <Graph display example> Figure 25 is an explanatory diagram showing an example of the first graph display. The first graph display is an example of displaying the contribution of each node N to the estimated value 1503 of a node N specified by the user (hereinafter referred to as the specified node) on display screen 2500, with each node N being 1504. Nodes N that contribute to the specified node N are called contributing nodes N. The distance from a node N to another node N connected by one edge E is called one hop. The larger the layer number j, the larger the number of hops to the node N from which the contribution of 1504 to the estimated value 1503 of the specified node N can be obtained.
[0086] In Figure 25, the starting node N of the arrow is the contributing nodes N2-N6 and N8 (including the self-node N4), and the ending node N of the arrow is the designated node N4. In the example in Figure 25, the contribution values of nodes N1, N7, N9, and N10 to the designated node N4 are "0", so the arrows are not displayed. The contribution values of D42, D43, D44, D45, D46, and D48 of contributing nodes N2-N6 and N8 to the designated node N4 are displayed in association with contributing nodes N2-N6 and N8.
[0087] The sum of the contribution values D42, D43, D44, D45, D46, and D48, which correspond to a contribution of 1504, becomes the estimated value Y of the specified node N4, which corresponds to a contribution of 1503. In Figure 25, the contribution values D42, D43, D44, D45, D46, and D48 are displayed in callouts, but the generation device 1300 may also display them by highlighting colors, such as in a heatmap.
[0088] Figure 26 is an explanatory diagram showing an example of the second graph display. The second graph display is an example in which the contribution of a specified node N (1504) to the estimated value (1503) of each node N is displayed on display screen 2600. A node N that contributes to a specified node N is called a contributing node N. In Figure 26, the specified node N is also referred to as node N4.
[0089] In Figure 26, node N at the starting point of the arrow is the designated node N4, and node N at the ending point of the arrow is the contributing nodes N2-N6 and N8 (including the self-node N4). In the example in Figure 26, the contribution value of designated node N4 to nodes N1, N7, N9, and N10 is "0", so the arrow is not displayed. The contribution values of designated node N4 to contributing nodes N2-N6 and N8, D24, D34, D44, D54, D64, and D84, are displayed in association with the arrows to contributing nodes N2-N6 and N8.
[0090] The contribution values D24, D34, D44, D54, D64, and D84 for contribution level 1504 each become part of the estimated value Y for contribution level 1503 for nodes N2-N6 and N8, respectively. In Figure 23, the contribution values D24, D34, D44, D54, D64, and D84 for contribution level 1504 are displayed in callouts, but the generator 1300 may also display them by highlighting colors, like a heatmap.
[0091] Furthermore, in Figures 25 and 26, if the type of node N is registered in node DB 1500, the generation device 1300 may display each type of node N in a different color.
[0092] Figure 27 is a flowchart illustrating an example of the graph display processing procedure by the generation device 1300. The generation device 1300 accepts the user's input device 1303 to select a display method (step S2701). The generation device 1300 accepts the user's input device 1303 to input the layer number j of the GCN layer (step S2702). The generation device 1300 accepts the user's input device 1303 to specify a node (step S2703). Steps S2701 to S2703 can be performed in any order.
[0093] The information processing device determines whether the display method selected in step S2701 is the first graph display (see Figure 22) or the second graph display (see Figure 23) (step S2704). If the display method selected in step S2701 is the first graph display (step S2704: first), the generation device 1300 obtains the contribution 1504 of each node N to the estimated value 1503 of the specified node N, which corresponds to the layer number j entered in step S2702 (step S2705). Obtaining the contribution 1504 may be done by reading from the node DB 1500 or by calculation using the GCN model 1700. Then, the generation device 1300 executes the first graph display as shown in Figure 22 (step S2706).
[0094] Furthermore, if the display method selected in step S2701 is the second graph display (step S2704: second), the generation device 1300 obtains the contribution 1504 of the specified node N to the estimated value 1503 of each node N, corresponding to the layer number j entered in step S2702 (step S2707). Then, the generation device 1300 executes the second graph display as shown in Figure 23 (step S2708). This completes the graph display process.
[0095] Figure 28 is an explanatory diagram showing another example of the first graph display, and Figure 29 is an explanatory diagram showing another example of the second graph display. Figure 28 is an example in which bar graph 2800 displays the contribution values D42, D43, D44, D45, D46, D48 of each node N2-N6 and N8 to the estimated value of 1503 for the specified node N4. Figure 29 is an example in which bar graph 2900 displays the contribution values D24, D34, D44, D54, D64, D84 of the specified node N4 to the estimated value of 1503 for each node N2-N6 and N8.
[0096] Furthermore, in Figures 28 and 29, if the type of node N is registered in node DB 1500, the generation device 1300 may display the bars in different colors for each type of node N.
[0097] It should be noted that the present invention is not limited to the embodiments described above, but includes various modifications and equivalent configurations within the spirit of the attached claims. For example, the embodiments described above are described in detail to make the present invention easier to understand, and the present invention is not necessarily limited to having all of the described configurations. Furthermore, some of the configurations of one embodiment may be replaced with those of another embodiment. Furthermore, some of the configurations of one embodiment may be added to those of another embodiment. Furthermore, some of the configurations of each embodiment may be added, deleted, or replaced with other configurations.
[0098] Furthermore, each of the aforementioned configurations, functions, processing units, and processing means may be implemented in hardware, for example, by designing them as integrated circuits, or they may be implemented in software by having a processor interpret and execute programs that realize each function.
[0099] Information such as programs, tables, and files that implement each function can be stored in memory, hard disks, SSDs (Solid State Drives), or on recording media such as IC (Integrated Circuit) cards, SD cards, and DVDs (Digital Versatile Discs).
[0100] Furthermore, the control lines and information lines shown are those deemed necessary for explanation purposes and do not necessarily represent all control lines and information lines required for implementation. In reality, it can be assumed that almost all components are interconnected. [Explanation of Symbols]
[0101] 100 Input Graphs 300, 500, 700, 900 additional features 1300 generator 1301 Processor 1302 Storage Devices F1, F2 filters Na~Nd Node type (node)< / gcn>
Claims
1. A generating apparatus having a processor for executing a program and a storage device for storing the program, The aforementioned storage device stores the feature quantities of each node that constitutes the graph, and the connection relationships between the nodes. The aforementioned processor, A search process that navigates through the nodes based on the aforementioned connection relationships to search for a path within the graph, In the search process described above, when transitioning from the source node to the destination node, an acquisition process is performed to acquire the feature quantities of the source node. An additional process is performed to add the feature quantities obtained up to the terminal node by the acquisition process to the feature quantities of the terminal node of the aforementioned path, A generating device characterized by performing the following actions.
2. A generating apparatus according to claim 1, The storage device is set to the first node among the plurality of nodes and stores a first filter having conditions that constrain the feature quantity when the first node is the node from which the transition originated. In the acquisition process, if the first filter is set on the source node, the processor acquires features from the source node that are constrained by the conditions of the first filter. A generating apparatus characterized by the following features.
3. A generating apparatus according to claim 1, The storage device is set as the second node among the plurality of nodes and stores a second filter having conditions that restrict the feature quantities obtained up to the source node when the second node is the destination node. In the acquisition process, if the second filter is set on the destination node, the processor acquires features constrained by the conditions of the second filter from the features up to the source node. A generating apparatus characterized by the following features.
4. A generating apparatus according to claim 1, The aforementioned processor, The graph after the addition process described above is input to a graph neural network for a prediction process that outputs a prediction result. A generating device characterized by performing the following actions.
5. A generation method performed by a generation apparatus having a processor for executing a program and a storage device for storing the program, The aforementioned storage device stores the feature quantities of each node that constitutes the graph, and the connection relationships between the nodes. The aforementioned processor, A search process that navigates through the nodes based on the aforementioned connection relationships to search for a path within the graph, In the search process described above, when transitioning from the source node to the destination node, an acquisition process is performed to acquire the feature quantities of the source node. An additional process is performed to add the feature quantities obtained up to the terminal node by the acquisition process to the feature quantities of the terminal node of the aforementioned path, A generation method characterized by performing the following.
6. A processor that can access a memory device that stores the feature quantities of each node that makes up the graph, and the connection relationships between the nodes, A search process that navigates through the nodes based on the aforementioned connection relationships to search for a path within the graph, In the search process described above, when transitioning from the source node to the destination node, an acquisition process is performed to acquire the feature quantities of the source node. An additional process is performed to add the feature quantities obtained up to the terminal node by the acquisition process to the feature quantities of the terminal node of the aforementioned path, A generation program characterized by causing the execution of a specific action.
Citation Information
Patent Citations
Deep layer learning method and apparatus of chemical compound characteristic prediction using artificial chemical compound data, as well as chemical compound characteristic prediction method and apparatus
JP2020009203A
Medical data structure
JP2020101901A
Information processing device, method, and program
JP2021131765A
Prediction model generation system and prediction system
JP2021196969A
Prediction system and prediction method
WO2016002133A1