Graph creation assistance device and method

The proposed search device and method improve search accuracy in graphs with uncertain node connections by using edge completion and node embedding techniques, enabling effective recommendations and searches even for query nodes without direct connections.

WO2026042524A1PCT designated stage Publication Date: 2026-02-26HITACHI LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2025/027011
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-08-23
Filing Date
2025-07-30
Publication Date
2026-02-26

AI Technical Summary

Technical Problem

Conventional graph search systems struggle with accuracy when dealing with graphs that have uncertainty in node connections, leading to ineffective searches, especially when query nodes lack connection information with other nodes.

Method used

A search device and method that includes an edge completion unit to assign edge existence probabilities between non-connected nodes, a learning unit to learn these probabilities, a node embedding generation unit to generate embeddings using a trained model, and a similar node search unit to find nodes with similar embeddings.

Benefits of technology

This approach enhances search accuracy in graphs with uncertain node connections by incorporating complementary edges, allowing for accurate recommendations and searches even when query nodes lack direct connection information.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2025027011_26022026_PF_FP_ABST
    Figure JP2025027011_26022026_PF_FP_ABST
Patent Text Reader

Abstract

The present invention comprises: a retrieval device for retrieving, from among nodes constituting a graph having uncertainty in the connection relation of the nodes, a node similar to a query node designated as a node for which related nodes are to be retrieved; and a retrieval method executed by the retrieval device. The present invention is configured such that: edge existence probabilities are respectively assigned among nodes not directly connected in the graph; the edge existence probabilities among the nodes in the graph are learned; a model obtained by learning is used to generate embedding of the nodes and an embedding of the query node; and nodes, the embeddings of which are similar to the embedding of the generated query node, are retrieved.
Need to check novelty before this filing date? Find Prior Art

Description

Graph creation support device and method

[0001] The present invention relates to a graph creation support device and method, and is suitable for application to, for example, a graph creation support device that provides support when creating a graph using a model that has been trained on a graph with uncertainty in the node connections.

[0002] Real-world connections include connections between people, such as following relationships on social networking services (SNS), as well as connections between things, such as IoT (Internet of Things) devices, and connections such as the flow of money between buyers and sellers in a marketplace and between payment service providers.

[0003] These various connections can be expressed in a graph structure, but it is common for graphs to have different structures depending on how the graph creator perceives the data, even for the same subject.For example, in an issue graph that represents corporate issues in a graph structure, the connection relationships of the issues may differ depending on the graph creator, even if the issue graph is for the same company.

[0004] Hereinafter, this will be referred to as "uncertainty in the graph's connectivity," and such a graph will be referred to as "a graph with uncertainty in the node connectivity." Reasons for this uncertainty in the connectivity of a graph include differences in the position of the graph creator, such as whether they are a member of management or a person on the front lines, and differences in the individual perception of the importance of issues.

[0005] In addition, in graphs showing human relationships, the connections that appear can vary significantly depending on the platform the relationships are built on, making it possible to observe uncertainty. For example, when considering a graph showing follow relationships on social media, it is often the case that the connections between the same person differ between two different social media platforms.

[0006] Incidentally, a conventional search system using a graph is disclosed in Patent Literature 1. In this search system, the node features of each node belonging to a graph and the edge information of each edge are input into a GNN (Graph Neural Network) model, and the node features of each node are propagated and updated to the node features of surrounding nodes connected by edges to calculate node embeddings, and this information is stored in a database. Furthermore, in this search system, the query embedding of the query to be searched is also calculated using the GNN model, the similarity between the node embedding and the query embedding is calculated, and nodes with high similarity are searched for.

[0007] Here, "node features" refers to the numerical representation of the text information of the corresponding node using a text embedding model such as SentenceTransformers. "Node embedding" refers to the numerical representation of the node calculated based on the node features of the corresponding node, taking into account the connection relationships between that node and other nodes in the graph. "Query embedding" refers to the node embedding of the query node. The same applies hereinafter.

[0008] Japanese Patent Application Laid-Open No. 2021-26779

[0009] However, with the technology disclosed in Patent Document 1, if the graph to be searched has uncertainty in the node connection relationships, the search system is affected, and there is a problem that highly accurate searches cannot be performed.

[0010] Furthermore, if the query node is input as a single node that does not have connection information with other nodes, when generating the embedding using the GNN model, it is not possible to generate an embedding with connection information (convert it into a numerical representation that takes into account the connection relationships with other nodes), which could result in the problem of not being able to search for similar nodes in the graph structure.

[0011] This is because the GNN model uses node features and edge information to aggregate node information from surrounding nodes to generate node embeddings, and nodes that do not have connection information cannot aggregate node information from surrounding nodes.

[0012] The present invention has been made in consideration of the above points, and aims to propose a search device and method that can improve the accuracy of searching for nodes in a graph in which the node connections are uncertain.

[0013] In order to solve this problem, in the present invention, a search device that searches for nodes similar to a query node designated as the node for which related nodes should be searched from among the nodes that constitute a graph having uncertainty in the node connection relationships is provided with an edge completion unit that assigns an edge existence probability between each of the nodes that are not directly connected in the graph, a learning unit that learns the edge existence probability between each of the nodes in the graph, a node embedding generation unit that generates an embedding for each of the nodes using a model obtained by learning by the learning unit, a query embedding generation unit that generates an embedding for the query node using the model, and a similar node search unit that searches for nodes whose embedding is similar to the embedding of the query node generated by the query embedding generation unit.

[0014] Furthermore, in the present invention, a search method executed by a search device for searching for nodes similar to a query node designated as the node for which a search for related nodes is to be performed, from among the nodes constituting a graph having uncertainty in node connection relationships, includes a first step of assigning an edge existence probability between each of the nodes that are not directly connected in the graph, a second step of learning the edge existence probabilities between each of the nodes in the graph, a third step of generating an embedding of each of the nodes and an embedding of the query node using a model obtained by learning, and a fourth step of searching for the node whose embedding is similar to the generated embedding of the query node.

[0015] According to the search device and method of the present invention, even if the graph used for training the GNN model is a "graph with uncertainty in the node connection relationships," the influence of such uncertainty can be reduced by the presence of complementary edges, making it possible to search for appropriate nodes.

[0016] According to the present invention, search accuracy can be improved.

[0017] 1 is a block diagram showing the overall configuration of a graph creation support device. FIG. 1 is a block diagram used to explain problems with recommendations utilizing a graph structure according to conventional technology. FIG. 2 is a block diagram used to explain problems with recommendations utilizing a graph structure according to conventional technology. FIG. 3 is a block diagram used to explain problems with recommendations utilizing a graph structure according to conventional technology. FIG. 4 is a block diagram used to explain problems with recommendations utilizing a graph structure according to conventional technology. FIG. 5 is a block diagram used to explain problems with recommendations utilizing a graph structure according to conventional technology. FIG. 6 is a diagram showing an example of the configuration of a node information table. FIG. 7 is a diagram showing an example of the configuration of an edge information table. FIG. 8 is a diagram showing an example of the configuration of a complementary edge information table. FIG. 9 is a block diagram showing the flow of pre-calculation processing executed by the graph creation support device of this embodiment. FIG. 10 is a block diagram showing the flow of graph creation support processing executed by the graph creation support device of this embodiment. FIG. 11 is a diagram showing an example of the screen configuration of a graph creation screen. FIG. 12 is a flowchart showing the processing procedure of pre-calculation processing. FIG. 13 is a flowchart showing the processing procedure of complementary edge calculation processing. FIG. 14 is a flowchart showing the processing procedure of GNN learning processing. FIG. 15 is a diagram used to explain negative edge information. Fig. 10 is a flowchart showing the processing procedure of a negative edge creation process; Fig. 11 is a flowchart showing the processing procedure of a node embedding generation process; Fig. 12 is a flowchart showing the processing procedure of a graph creation support process; Fig. 13 is a flowchart showing the processing procedure of a similar node search process; and Fig. 14 is a flowchart showing the processing procedure of a query embedding generation process.

[0018] An embodiment of the present invention will be described in detail below with reference to the drawings.

[0019] (1) Configuration of the Graph Creation Support Device According to the Present Embodiment In Fig. 1, the graph creation support device according to the present embodiment is generally designated by 1. This graph creation support device 1 is a device that supports a user in creating graphs, and is composed of a computer device such as a personal computer, a server, or a workstation.

[0020] In practice, the graph creation support device 1 comprises a CPU (Central Processing Unit) 3, a memory 4, a storage device 5, an input device 6, an output device 7, and a communication device 8, all of which are interconnected via an internal communication line 2.

[0021] The CPU 3 is a processor that controls the overall operation of the graph creation support device 1. The memory 4 is composed of, for example, a volatile semiconductor memory, and is used as a working memory for the CPU 3. The storage device 5 is composed of a large-capacity nonvolatile storage device such as a hard disk device or SSD (Solid State Drive), and is used to store programs and data that requires long-term storage.

[0022] The program stored in the storage device 5 is read into the memory 4 when the graph creation support device 1 is started up or when needed, and the CPU 3 executes the program read into the memory 4, thereby performing various processes for the graph creation support device 1 as a whole, as described below.

[0023] The input device 6 is composed of, for example, a keyboard, a mouse, a scanner, or a microphone, and is used by the user to input data and instructions. The output device 7 is composed of a display, a printer, or a speaker, and is used to present various information to the user. In the following, the output device 7 is assumed to be composed of a display device such as a liquid crystal display or an organic EL (Electro-Luminescence) display.

[0024] The communication device 8 is configured with a LAN (Local Area Network) board and the like, and performs protocol control during communication with other devices via a network (not shown).

[0025] (2) Graph Creation Support Function According to the Present Embodiment Next, we will explain the graph creation support function implemented in the present graph creation support device 1. In this regard, we will first explain a conventional recommendation method that utilizes a graph structure.

[0026] In recent years, it has become common for online shopping sites, video sites, etc. to recommend content similar to what a user has previously purchased or viewed based on the user's purchase history or browsing history. One well-known method for making such recommendations is a recommendation method that utilizes a graph structure.

[0027] A graph is a data representation method consisting of nodes and edges that represent relationships between two nodes. By utilizing this graph structure, it is possible to make recommendations that capture the complex relationships between nodes.

[0028] Specifically, as shown in Figure 2, by inputting the node features ([1,1,1], [1,0,0], [0,1,0] in the figure) of each node 11A to 11C that make up the graph 10 into a trained GNN model (hereinafter referred to as the trained GNN model) 12, it is possible to generate node embeddings ([0.9,0.9,0.8], [1,0.1,0.1], [0.1,1,0.1] in the figure) that take into account the information (node ​​features) held by each node 11A to 11C and the graph structure.

[0029] Therefore, as shown in Figure 3, by inputting the node features of the query node ("User D" in Figure 3, hereinafter referred to as the query node) into such a trained GNN model, appropriate recommendations can be made by recommending a node ("User B" in Figure 3) whose node embedding has a high similarity to the query embedding obtained by inputting the node features of the query node ("User D" in Figure 3, hereinafter referred to as the query node).

[0030] The GNN model is trained using link prediction, which predicts the probability of an edge existing between nodes in the training graph data. The edge existence probability (similarity) is calculated using the inner product of the node embedding between two nodes. Therefore, by training the GNN model in advance and pre-calculating the node embedding for each node, the amount of calculation required for recommendations can be reduced.

[0031] Next, we will explain the impact on the search system when the graph to be searched has uncertainty in the node connections. Here, we will explain the case where a GNN model trained on one SNS is used to recommend other users (hereinafter referred to as recommended users) to a user to register as followers (hereinafter referred to as "follow registration") on another SNS.

[0032] For example, as shown in Figure 4 (A), consider a case where a GNN model trained on SNS1, where at least one of Person A and Person B has registered to follow the other, and at least one of Person B and Person C has registered to follow the other, is used to recommend recommended users to a user on SNS3.

[0033] In the following, when at least one of two users has registered to follow the other user, the two users are said to have a follow relationship. Here, it is assumed that there is a follow relationship between person B and person C in SNS3.

[0034] In this case, in SNS3, taking into consideration the follow relationships between A, B, and C in SNS1, B is recommended to A as a recommended user for follow registration.

[0035] 4B, consider a case where a GNN model trained on SNS2, in which there is a follow relationship between A and C and between B and C, is used to recommend recommended users to a user on SNS3. Here, it is also assumed that there is a follow relationship between B and C on SNS3.

[0036] In this case, in SNS3, taking into consideration the follow relationships between A, B, and C in SNS2, C is recommended to A as a recommended user to follow.

[0037] In this way, based on the follow relationships in both SNS1 and SNS2, it can be inferred that A, B, and C are friends. However, because the graphs of SNS1 and SNS2 have uncertainty in the node connections, the model's learning data (sampling data) differs depending on the sampling method (type of SNS), which causes the behavior of recommendations in SNS3 to change.

[0038] On the other hand, when a model is trained by mixing data from both SNS1 and SNS2, there is a problem that the training is difficult to converge. This is because, for example, the probability of an edge existing between person A and person B in SNS1 is "1" but "0" in SNS2, and the probability of an edge existing between nodes in SNS1 is different from the probability of an edge existing between nodes in SNS2.

[0039] Therefore, when a graph has uncertainty, the graph creation support device 1 of this embodiment assigns a weak edge existence probability between two nodes that are connected by a short path length but do not have an edge, as shown by the dotted line on the left side of Figure 5(A) and the dotted line on the left side of Figure 5(B). Specifically, a virtual edge (hereinafter referred to as a complementary edge) to which a weak edge existence probability is assigned is set between such two nodes.

[0040] Note that "path length" here refers to the number of nodes existing between the two target nodes. For example, in Figure 6(A), a node marked with the number "0" and a node marked with the number "3" exist between them, so the path length between the two nodes marked with the numbers "0" and "3" is "1." Furthermore, between the node marked with the number "0" and the node marked with the number "7," a node marked with the number "1" and a node marked with the number "3" exist, so the path length between the two nodes marked with the numbers "0" and "7" is "2."

[0041] Furthermore, as a method for assigning a "weak edge existence probability" to a complementary edge between nodes, a method of assigning an edge existence probability that attenuates according to the distance between two nodes can be applied. For example, as shown in Figure 6(B), an edge existence probability of "0.8" is assigned between nodes connected via one node, and an edge existence probability of "0.7" is assigned between nodes connected via two nodes. However, in this case, such edge existence probability may be a value other than "0.8" or "0.7."

[0042] As a result, when person A is used as the query node, it is expected that both person B and person C will be recommended to person A in SNS3, regardless of whether the GNN model is trained in SNS1 or SNS2. In addition, since the distance between the data in SNS1 and SNS2 is closer than in the original, there is also the advantage that the training of the GNN model is more likely to be stable.

[0043] Next, we will explain the problem that occurs when a query node is input as a single node. Here, we will explain the case where a GNN model trained on one SNS is used to recommend users recommended for follow registration on another SNS.

[0044] 7A, consider a case where a GNN model trained on SNS1, in which there are follow relationships between A and B and between B and C, is used to recommend recommended users to C for follow registration on SNS2. Assume that there is a follow relationship between B and C on SNS2.

[0045] In this case, when generating a node embedding (query embedding) for C, who is a query node in SNS2, the node embedding for C will include information that C has a follow relationship with B, so A will likely be recommended to C as a recommended user to follow.

[0046] 7B, consider a case where the model learned in SNS 1 is used to recommend recommended users to follow to C in SNS 3. In SNS 3, there is no follow relationship between B and C, and there is no information at all regarding the connection relationship between A, B, and C.

[0047] In this case, when generating a node embedding (query embedding) for C, who is a query node, in SNS3, since there is no follow relationship between B and C, the relationship between A and B cannot be included in the node embedding of C's node, and A is unlikely to be recommended to C as a recommended user to follow.

[0048] In this way, when a query node is a node that does not have connection information, it is difficult to make recommendations for the query node, and a search method that can accurately search for nodes that can be accurately recommended even for query nodes that do not have connection information is desired.

[0049] Therefore, the graph creation assistance device 1 of this embodiment utilizes previously accumulated inter-node connection information to calculate the node embedding (query embedding) of a query node. That is, the node embedding of a node similar to a query node in a previously created graph is used instead of the query embedding of that query node.

[0050] More specifically, the average of the node embeddings of nodes that have similar node features (before input to the GNN model) to the node features of the query node (before input to the GNN model) is used as the query embedding of the query node. With this method, even if the query node is a single node with no connections, appropriate recommendations can be made for the query node.

[0051] 1, as means for realizing the graph creation support function according to the present embodiment as described above, a node information table 20, an edge information table 21, a supplementary edge information table 22, and trained GNN model information 23 are stored in the storage device 5 of the graph creation support device 1 of the present embodiment. In addition, a node embedding generation unit 24, a query embedding generation unit 25, an edge complementation unit 26, a GNN learning unit 27, and a similar node search unit 28 are stored in the memory 4 of the graph creation support device 1.

[0052] The node information table 20 is a table for managing nodes in each graph that has been created up to that point, and is created in advance and provided to the graph creation assistance device 1. As shown in Fig. 8, this node information table 20 is configured with a graph ID column 20A, a node number column 20B, a node text column 20C, a node feature column 20D, and a node embedding column 20E. In the node information table 20, one record (row) corresponds to one node that belongs to (constitutes) one of the graphs.

[0053] The graph ID field 20A stores an ID (graph ID) unique to the graph to which the corresponding node belongs, the node number field 20B stores an identification number (node ​​number) unique to the node within the graph, and the node text field 20C stores text information about the node (for example, the node name of the node, hereinafter referred to as the node name).

[0054] The node feature field 20D stores the embedding created from the text information of the node using a text embedding model such as SentenceTransformers as the node feature of the node. The node embedding field 20E stores the embedding information of the node (node ​​embedding) obtained by inputting the node feature of the node into a predetermined trained GNN model.

[0055] 8, for example, the node with node number "0" in the graph with graph ID "00001" has the node name "Sales Issue", its node feature value is "[0.0, 0.2, ...]" and its node embedding is "[0.1, 0.1, ...]". Note that hereinafter, the information of one record in the node information table 20 is referred to as the node information of the corresponding node.

[0056] The edge information table 21 is a table for managing edges in each graph that has been created up to that point, and is created in advance and provided to the graph creation assistance device 1. As shown in Fig. 9, this edge information table 21 is configured with a graph ID column 21A, a source node number column 21B, and a target node number column 21C. In the edge information table 21, one record (row) corresponds to one edge connecting two nodes that belong to the same graph.

[0057] The graph ID field 21A stores the graph ID of the graph to which the corresponding edge belongs. The source node number field 21B stores the node number of the node from which the edge starts (hereinafter referred to as the source node), and the target node number field stores the node number of the node to which the edge reaches (hereinafter referred to as the target node).

[0058] 9, the graph with the graph ID "00001" has an edge going from a source node with node number "0" to a target node with node number "1." Note that hereinafter, the information of one record in the edge information table 21 is referred to as the edge information of the corresponding edge.

[0059] The complementary edge information table 22 is a table created during a series of processes by the graph creation support function according to this embodiment, and is used to manage the above-mentioned complementary edges. As shown in Fig. 10, this complementary edge information table 22 is configured with a graph ID column 22A, a path length column 22B, a source node number column 22C, a target number column 22D, and an edge existence probability column 22E. In the complementary edge information table 22, one record (row) corresponds to one complementary edge.

[0060] The graph ID column 22A stores the graph ID of the graph to which the corresponding complementary edge belongs, and the path length column 22B stores the number of nodes existing from the source node to the target node of the corresponding complementary edge.

[0061] The source node number field 22C stores the node number of the source node of the complementary edge, the target node number field 22D stores the node number of the target node of the complementary edge, and the edge existence probability field 22E stores the edge existence probability assigned to the complementary edge.

[0062] 10, a complementary edge with a path length of 2 is generated in a graph with a graph ID of 00001, with the node with node number 0 as the source node and the node with node number 1 as the target node, and the edge existence probability of the complementary edge is 0.8. Note that, hereinafter, the information of one record in the complementary edge information table 22 is referred to as the complementary edge information of the corresponding complementary edge.

[0063] The trained GNN model information 23 is information on a trained GNN model trained using the node information stored in the node information table 20, the edge information stored in the edge information table 21, and the complementary edge information stored in the complementary edge information table 22.

[0064] On the other hand, the node embedding generation unit 24 is a program having a function of generating node embeddings for nodes. The node embedding generation unit 24 acquires the node feature amount of each node of the target graph from the node information table 20, and generates node embeddings for each node by inputting the acquired node feature amount into a trained GNN model based on the trained GNN model information 23. Then, the node embedding generation unit 24 stores each generated node embedding in the corresponding node embedding column 20E ( FIG. 8 ) of the node information table 20.

[0065] The query embedding generation unit 25 is a program having a function of calculating, as a query embedding, the average of node embeddings of a top predetermined number of nodes whose node features are similar to the feature amount (query feature amount) of the query node among the nodes registered in the node information table 20. The query embedding generation unit 25 uses, as the query feature amount of the query node, for example, a text embedding generated from text information (node ​​name) of the query node using a text embedding model such as SentenceTransformers.

[0066] The edge completion unit 26 is a program that has the function of setting a complementary edge between two nodes that are not directly connected in the same graph, using the edge information of each edge stored in the edge information table 21 as input, and assigning a weak edge existence probability to the complementary edge. As a method for determining the edge existence probability, there are a first method in which the edge existence probability is attenuated according to the distance (path length) between the two nodes, as described above with reference to Figure 6(A), and a method in which the edge existence probability is determined according to the similarity of node features.

[0067] The latter method uses the node information of each node stored in the node information table 20 as input, calculates the similarity of the node features of the node information between two nodes, and sets the edge existence probability according to the calculated similarity.

[0068] For example, if the text information (node ​​names) of two nodes are similar, such as "cost reduction" and "personnel reduction," respectively, a high value such as "0.8" is set as the edge existence probability, whereas if the text information of the two nodes is dissimilar, such as "cost reduction" and "task automation," respectively, a low value such as "0.2" is set as the edge existence probability. One method for calculating text similarity is to use the cosine similarity between text embeddings generated using a text embedding model.

[0069] The GNN learning unit 27 is a program having a function of machine learning the probability of an edge existence between each node in a graph, using as input the node information of each node stored in the node information table 20, the edge information of each edge stored in the edge information table 21, and the complementary edge information of each complementary edge stored in the complementary edge information table 22. The GNN learning unit 27 stores the information of the GNN model obtained by such learning in the storage device 5 as learned GNN model information 23.

[0070] The similar node search unit 28 is a program that has the function of using a text-format query node as external input, calculating the similarity between the query embedding generated by the query embedding generation unit 25 and the node embedding of each node registered in the node information table 20, and detecting a predetermined number of nodes with the highest similarity.

[0071] 11 shows the flow of pre-calculation processing executed by the graph creation support device 1 of this embodiment in relation to the graph creation support function described above. This pre-calculation processing is a process of setting complementary edges between all pairs of nodes that are not directly connected in the graph to be searched (hereinafter referred to as node pairs), learning a GNN model, and generating node embeddings for each node using the trained GNN model (trained GNN model). Note that the graph assumed in this embodiment is a "graph with uncertainty in the node connection relationships."

[0072] In the example of Figure 11, the graph with the graph ID "00001" and the graph with the graph ID "00002" are graphs of the issues faced by companies, and there are many common issues and analysis methods. In this way, multiple companies often share common issues.

[0073] On the other hand, the connection relationships of the issues may differ due to factors such as differences in the graph creator. For example, in a graph with a graph ID of "00001," "Business Issue 1" and "Analysis Method 1" are connected via "Business Issue 3." In contrast, in a graph with a graph ID of "00002," "Business Issue 1" and "Analysis Method 1" are directly connected. A graph like this, in which differences in the intermediate nodes of node pairs may occur due to differences in the graph creator, is an example of a "graph with uncertainty in the node connection relationships."

[0074] Furthermore, if "Business Problem 3" and "Business Problem 5" are very similar tasks, they may not be connected because they are nodes in different graphs. In this way, a graph containing a node pair that is similar but has no edge is also an example of a "graph with uncertainty in the node connection relationships."

[0075] In the graph creation support device 1 of this embodiment, the edge completion unit 26 obtains information about such a "graph with uncertainty in the node connection relationships" from the node information table 20 and the edge information table 21, including node information for each node that makes up the graph and edge information for each edge that connects these nodes (S1).

[0076] The edge completion unit 26 then sets a complementary edge between all pairs of nodes that are not directly connected, and assigns a weak edge existence probability to each of these complementary edges (S2).The edge completion unit 26 also passes complementary edge information for each set complementary edge, node information for all nodes belonging to the graph, and edge information for all edges belonging to the graph to the GNN learning unit 27 (S3).

[0077] The GNN learning unit 27 learns the GNN model based on the node information of each node, the edge information of each edge, and the complementary edge information of each complementary edge passed from the edge complementing unit 26 (S4).

[0078] In this case, for example, if the GNN model is trained using only the node information of each node and the edge information of each edge, the probability of an edge existing between the above-mentioned "Business Problem 1" and "Analysis Method 1" is "0" in the model with graph ID "00001" and "1" in the graph with graph ID "00002", and this difference may make it difficult for the GNN training to converge. Also, for example, if only the graph with graph ID "00001" is used to train the GNN model and "Business Problem 1" is entered as a search query, this may affect search results, such that "Analysis Method 1" will not be found.

[0079] In this regard, it is expected that such an effect can be prevented by using complementary edge information in addition to node information for each node and edge information for each edge in training the GNN model.

[0080] In addition, by using complementary edge information in training the GNN model, it is possible to mitigate the low similarity between embeddings for node pairs that are related in the trained graph but have no edge in the searched graph.

[0081] Thereafter, the node embedding generation unit 24 generates node embeddings for each node whose node information was acquired in step S1 (S5) using the GNN model (trained GNN model) trained by the GNN learning unit 27. Specifically, the node embedding generation unit 24 inputs the node feature amounts of each node into the trained GNN model, thereby generating node embeddings for each of these nodes.

[0082] The node embedding generation unit 24 then stores the node embedding of each node thus generated in the corresponding node embedding column 20E (FIG. 8) of the node information table 20 (S6). This completes the series of pre-processing steps.

[0083] On the other hand, Fig. 12 shows the flow of graph creation support processing executed by the graph creation support device 1 after the pre-calculation processing of Fig. 11. This graph creation support processing is processing for searching for nodes (hereinafter referred to as related nodes) related to a query node specified by a user from among the nodes belonging to an existing graph.

[0084] In this case, the user first specifies a node from which related nodes should be searched for in the graph being created, i.e., a query node (S10). As a result, the text information (node ​​name) of the query node is provided to the query embedding generation unit 25 as query text information (S11).

[0085] The query embedding generation unit 25 acquires query features and query embeddings of the query node based on the given query text information (S12). The "query features" here are, for example, text embeddings of the query node, and are created using a text embedding model such as Sentence Transformers. The "query embedding" is an embedding of the query node that includes connection information between nodes, and is generated by inputting the query features into a trained GNN model.

[0086] Thereafter, the similar node search unit 28 calculates the similarity between the query embedding acquired by the query embedding generation unit 25 and the node embedding of each node registered in the node information table 20, and extracts a predetermined number of nodes with the highest similarity (S13).The similar node search unit 28 then recommends each of the extracted nodes to the user (S14).

[0087] Thus, when the user selects a node from the recommended nodes to add to the graph currently being created (S15), that node is added to the graph currently being created, connected to the query node by an edge (S16).

[0088] (3) Graph Creation Screen Figure 13 shows an example of the configuration of a graph creation screen 30 that can be displayed on the output device 7 (Figure 1) by performing a predetermined operation on the input device 6 (Figure 1) of the graph creation support device 1. This graph creation screen 30 is a screen on which the user can create a new graph.

[0089] On this graph creation screen 30, the user can select desired nodes and sequentially place marks 32 representing those nodes (hereinafter referred to as node marks) at desired positions in a graph creation area 31 provided in the center of the graph creation screen 30, and then sequentially connect any two necessary node marks 32 among the placed node marks 32 with arrows 33 representing edges through a predetermined operation, thereby creating a directed graph of the desired form. Each node mark 32 displays the name of the corresponding node, allowing the user to easily recognize the connection relationships between nodes in the graph being created.

[0090] Also, on the graph creation screen 30, by clicking on the node mark 32 corresponding to the desired node among the nodes included in the graph being created displayed in the graph creation area 31, the node can be designated as a query node.

[0091] When a query node is specified in this way, several nodes that can be candidates for related nodes connected to the query node by edges are selected by the graph creation assistance device 1 from among the nodes included in the existing graph (each node registered in the node information table 20). In addition, a node mark 32 representing each of these selected nodes (hereinafter, these nodes are referred to as selected nodes) is displayed in a recommended node field 34 provided on the left side of the screen, corresponding to each of the selected nodes.

[0092] 13 illustrates an example in which a node named "Business Issue 2" is specified as a query node, and shows an example in which the node marks 32 of several nodes that may be candidates for the node corresponding to the node mark 32' indicated by the dashed line in Fig. 13 (i.e., the related node described above) are displayed in the recommended node field 34. However, on the actual graph creation screen 30, the node mark 32' indicated by the dashed line is not displayed.

[0093] Furthermore, on the graph creation screen 30, by selecting a desired node from among the node marks 32 displayed in the recommended node field 34 by moving the cursor 35 over the node mark 32 corresponding to the node, a pop-up bubble 35 containing information about the graph including the node is displayed. While Fig. 13 shows an example in which the graph configuration is displayed as such "information about the graph," other information may also be displayed.

[0094] On the graph creation screen 30, by clicking and specifying the node mark 32 corresponding to a desired candidate from among several related node candidates whose node marks 32 are displayed in the recommended node field 34, the node mark 32 can be displayed in a state connected via an arrow 33 to the node mark 32 of the query node in the graph creation area 31 (displayed at the position of the node mark 32' indicated by the dashed line in FIG. 13). As a result, the node corresponding to the node mark 32 is incorporated into the graph being created.

[0095] In addition, on the graph creation screen 30, by double-clicking the desired node mark 32 among the node marks 32 corresponding to each node of the graph being created in the graph creation area 31, it is possible to transition to a state in which parameters such as the node name of the corresponding node can be changed.

[0096] An edge existence probability setting area 36 is provided in the upper right corner of the graph creation screen 30, and the edge existence probability currently set for each edge type of complementary edge is displayed in this edge existence probability setting area 36. Note that Fig. 13 shows an example in which, for "edge type 1" in which two nodes are connected via one node, the edge existence probability of the complementary edge set between those nodes is "0.8," and, for "edge type 2" in which two nodes are connected via two nodes, the edge existence probability of the complementary edge set between those nodes is "0.7."

[0097] In this case, the edge existence probability for each edge type of complementary edge displayed in the edge existence probability setting area 36 can be freely rewritten, thereby allowing the edge existence probability for each edge type of complementary edge to be set to a desired value.

[0098] On the graph creation screen 30, after creating a graph as described above or while creating a graph, by clicking the save button 37 located at the bottom left of the screen, the information of the graph created up to that point in the graph creation area 31 can be imported and saved into the graph creation support device 1.

[0099] In practice, when the save button 37 is clicked, the graph creation support device 31 stores the node information of each node included in the graph created in the graph creation area 31 at that time in the node information table 20, and also registers the edge information of each edge included in the graph in the edge information table 21.

[0100] (4) Various Processes Executed in Relation to the Graph Creation Support Function Next, specific details of various processes executed in the graph creation support device 1 in relation to the graph creation support function according to this embodiment will be described. Note that, although the entities that execute the various processes will be described below as programs ("... units"), it goes without saying that in reality, the CPU 3 (FIG. 1) of the graph creation support device 1 executes the processes based on the programs.

[0101] (4-1) Pre-calculation Processing (4-1-1) Flow of Pre-calculation Processing Figure 14 shows a specific processing flow of the pre-calculation processing described above with reference to Figure 11. This pre-calculation processing is started in response to a predetermined operation by the user, and first, the edge completion unit 26 executes edge completion processing (S20) to set complementary edges for all node pairs that are not connected via edges in a target graph (hereinafter referred to as the target graph) and assign edge existence probabilities to the complementary edges.

[0102] Next, the GNN learning unit 27 executes a GNN learning process to learn a GNN model based on the target graph (S21), and then the node embedding generation unit 24 executes a node embedding generation process to generate node embeddings for all nodes in the target graph (S22).The graph creation assistance device 1 then ends this pre-calculation process.

[0103] (4-1-2) Edge Complementation Processing Fig. 15 shows specific processing contents of the edge complementation processing executed by the edge complementation unit 26 in step S20 of the pre-calculation processing described above with reference to Fig. 14. When the user performs a predetermined operation, the edge complementation unit 26 starts the edge complementation processing shown in Fig. 15.

[0104] The edge completion unit 26 first obtains node information for all nodes in the target graph from the node information table 20 (FIG. 8) (S30), and also obtains edge information for all edges in the target graph from the edge information table 21 (FIG. 9) (S31).

[0105] Next, the edge complementation unit 26 selects one node from among the nodes for which node information was obtained in step S30, for which step S33 and subsequent steps have not been processed (S32), and creates all node pairs between the selected node and each node that is not directly connected to the selected node (S33).

[0106] Next, the edge complementation unit 26 stores information about the node pairs created in step S33 in the complementation edge information table 22 ( FIG. 10 ) (S34). Specifically, the edge complementation unit 26 secures one unused record in the complementation edge information table 22 for each node pair created in step S33, and stores the graph ID of the target graph in the graph ID column 22A of that record, the path length of the node pair in the path length column 22B, the node number of the upstream node in the node pair in the source node number column 22C, and the node number of the downstream node in the node pair in the target node number column 22D.

[0107] The edge complementation unit 26 also calculates the edge existence probability of each node pair created in step S33, and stores the calculated edge existence probability in the edge existence probability column 22E of the corresponding record in the complemented edge information table 22 (S35).

[0108] In this case, the edge existence probability can be calculated by applying a method in which the edge existence probability is attenuated according to the distance between nodes as described above with reference to Figures 6(A) and (B), or by applying an edge existence probability based on the similarity between texts held by the nodes.

[0109] Thereafter, the edge complementation unit 26 determines whether or not the processing of steps S33 to S35 has been completed for all nodes for which node information was acquired in step S30 (S36). If the determination returns a negative result, the edge complementation unit 26 returns to step S32, and thereafter repeats the processing of steps S32 to S36 while sequentially switching the node selected in step S32 to other nodes for which step S33 and subsequent steps have not been processed.

[0110] When the edge complementing unit 26 eventually completes the processing of steps S33 to S35 for all nodes in the target graph and obtains a positive result in step S36, it terminates this edge complementing processing.

[0111] (4-1-3) GNN Learning Process Fig. 16 shows the flow of the GNN learning process executed by the GNN learning unit 27 in step S21 of the pre-calculation process described above with reference to Fig. 14. When the edge completion process described above with reference to Fig. 15 by the edge completion unit 26 is completed, the GNN learning unit 27 starts the GNN learning process shown in Fig. 16.

[0112] The GNN learning unit 27 first acquires edge information for all edges from the edge information table 21 (FIG. 9) (S40). The GNN learning unit 27 also samples some negative edges and executes a negative edge creation process (S41) to generate, for each sampled negative edge, information on the graph ID of the graph to which the negative edge belongs, the source node number of the source node of the negative edge, and the target node number of the target node of the negative edge, as negative edge information 40, as shown in FIG.

[0113] Then, the GNN learning unit 27 subsequently executes learning of the GNN model using the edge information acquired in step S40 and the negative edge information 40 generated in step S41.

[0114] In practice, the GNN learning unit 27 obtains node embedding for each node in the graph by inputting the node features of each node in the same graph, the edge information of each edge in the graph, the complementary edge information of each complementary edge in the graph, and the negative edge information 40 obtained in step S41 into the GNN model (S42).

[0115] The GNN learning unit 27 also calculates the edge existence probability of each negative edge based on the node embedding of each acquired node (S43). For example, the GNN learning unit 27 calculates the inner product of the node embedding of the source node and target node of each negative edge to calculate a predicted value of the edge existence probability between the two nodes that make up the negative edge.

[0116] Furthermore, the GNN learning unit 27 sets the edge existence probability of each complementary edge stored in the complementary edge information table 22 (FIG. 10) as the correct value, and inputs this edge existence probability and the predicted value of the edge existence probability for each negative edge acquired in step S43 into the loss function (S44).

[0117] In normal GNN model learning, the correct value for the edge existence probability is either "0" or "1," so the loss function for the classification task is used. However, in this embodiment, a supplementary edge is newly defined, and the correct value for the edge existence probability of that supplementary edge is a real number between "0" and "1," so the loss function for the regression task is used as the loss function.

[0118] Such a loss function is the most basic loss function for regression tasks, We can apply the mean squared error function given by: This mean squared error function takes the square of the difference between the correct value and the predicted value and calculates the average as the loss.

[0119] In addition, the loss function is expressed by the following equation: It is also possible to apply the mean absolute error function given by

[0120] Next, the GNN learning unit 27 updates the parameters of the GNN model so as to minimize the output of the loss function (S45), and then determines whether or not the processes of steps S42 to S45 have been repeated for a preset number of epochs (S46). If the GNN learning unit 27 obtains a negative result in this determination, it returns to step S42, and thereafter repeats the processes of steps S42 to S45 for a preset number of epochs.

[0121] Then, when the GNN learning unit 27 obtains a positive result in step S46 by repeating the processing of steps S42 to S45 for the number of epochs, it stores the finally obtained GNN model information in the storage device 5 (Figure 1) as trained GNN model information 23 (Figure 1), and then terminates the GNN learning process (S47).

[0122] 18 shows more specific processing contents of the GNN learning unit 27 in step S41 of the GNN learning processing. When the GNN learning unit 27 proceeds to step S41 of the GNN learning processing, it starts the negative edge creation processing shown in FIG.

[0123] The GNN learning unit 27 first obtains the node number and graph ID of each node currently being targeted from the node information table 20 (FIG. 8) (S50), and then obtains edge information for all edges belonging to the graph from the edge information table 21 (FIG. 9) (S51).

[0124] Next, the GNN learning unit 27 refers to the graph ID of each node and randomly samples a predetermined number of negative edges to acquire negative edge information 40 (S52).

[0125] Specifically, the GNN learning unit 27 randomly selects two nodes in the same graph (two nodes with the same graph ID) as a node pair, and if no path exists between the selected two nodes, samples the node pair as a negative edge and temporarily stores information about the node pair as negative edge information 40 ( FIG. 17 ). Note that “no path exists between two nodes” here means that the two nodes are not connected via one or more edges, and includes cases where an edge cannot be traced from one node to the other due to the direction of the edge. The GNN learning unit 27 performs the same process until it obtains a predetermined number of negative edge samples, thereby acquiring negative edge information 40 for the predetermined number of negative edges.

[0126] In this case, normally, when multiple graphs are used for learning, negative edges that cross over between the graphs may be sampled, but the GNN learning unit 27 of this embodiment does not sample negative edges that cross over between graphs, but samples negative edges only within the same graph. This is because, considering that multiple different graphs are created individually, the presence or absence of edges that cross over between the graphs has not been considered, and it is considered inappropriate to treat the graphs as "absolutely no edges" between them.

[0127] Although node pairs with no edge between them are usually sampled, the GNN learning unit 27 of this embodiment samples node pairs with no path between them as negative edges. This is because if a path exists, the edge existence probability can be considered positive even if the probability is low.

[0128] Then, when the process of step S52 is completed, the GNN learning unit 27 ends this negative edge creation process and returns to the GNN learning process of FIG.

[0129] (4-1-4) Node Embedding Generation Processing Fig. 19 shows the flow of the node embedding generation processing executed by the node embedding generation unit 24 in step S22 of the pre-calculation processing described above with reference to Fig. 14. When the GNN learning processing described above with reference to Fig. 16 by the GNN learning unit 27 is completed, the node embedding generation unit 24 starts the node embedding generation processing shown in Fig. 19.

[0130] The node embedding generation unit 24 first obtains the node feature amounts of each node registered in the node information table 20 by reading them out (S60), and also obtains the edge information of each edge registered in the edge information table 21 by reading them out (S61).The node embedding generation unit 24 also obtains the trained GNN model information 23 (FIG. 1) by reading it out from the storage device 5 (FIG. 1) (S62).

[0131] Next, the node embedding generation unit 24 inputs the node features of each node acquired in step S60 and the edge information of each edge acquired in step S61 into a trained GNN model based on the trained GNN model information 23 acquired in step S62 (S63).

[0132] As a result, the trained GNN model outputs node embeddings for each node that reflect the graph structure based on the node feature values ​​of each node and the edge information of each edge. The node embedding generation unit 24 then stores the node embeddings for each node in the node embedding column 20E (FIG. 8) of the corresponding record in the node information table 20 (S64). The node embedding generation unit 24 then terminates the node embedding generation process.

[0133] (4-2) Graph Creation Support Processing (4-2-1) Flow of Graph Creation Support Processing Meanwhile, Fig. 20 shows the flow of graph creation support processing executed by the similar node search unit 28 (Fig. 1) when a user is creating a graph using the graph creation screen 30 described above with reference to Fig. 13. The similar node search unit 28 detects nodes similar to a query node specified by the user from among the nodes registered in the node information table 20, and presents them to the user, according to the processing procedure shown in Fig. 20.

[0134] In practice, when a user starts creating a graph using the graph creation screen 30, the similar node search unit 28 starts the graph creation support process shown in FIG. 20 and first waits for the user to specify a query node (S70).

[0135] When the user eventually specifies a query node, the similar node search unit 28 executes a similar node search process to search the node information table 20 for nodes similar to the query node (hereinafter referred to as similar nodes) based on the text (node ​​name) of the specified query node (S71).

[0136] Next, the similar node search unit 28 selects the top few similar nodes with the highest similarity from the similar nodes detected by the similar node search process of step S71, and displays the node marks 32 (FIG. 13) corresponding to the selected similar nodes in the recommended node field 34 (FIG. 13) on the graph creation screen 30 (FIG. 13) (S72).The similar node search unit 28 then waits for one similar node to be selected from the nodes displaying the node marks 32 corresponding to the recommended node field 34 (S73).

[0137] Then, when the user eventually selects one desired similar node from the similar nodes whose node marks 32 are displayed in the recommended node column 34 of the graph creation screen 30 (S73: YES), the similar node search unit 28 displays the selected node mark 32 at a corresponding position in the graph currently being created in the graph creation area 31 (Figure 13) (for example, the location displayed by a dotted line in the graph creation area 31 in Figure 13) (S74).

[0138] Next, the similar node search unit 28 determines whether the save button 37 (FIG. 13) on the graph creation screen 30 has been clicked (S75). If the determination is negative, the similar node search unit 28 returns to step S70, and thereafter repeats the processes of steps S70 to S75.

[0139] When the user eventually clicks the save button 37 on the graph creation screen 30 (S76: YES), the similar node search unit 28 saves the node information of each node that constitutes the graph that has been created in the graph creation area 31 up to that point and the edge information of each edge that constitutes that graph (S76). Furthermore, the similar node search unit 28 closes the graph creation screen 30, and then ends this graph creation assistance process.

[0140] (4-2-2) Similar Node Search Processing Fig. 21 shows specific processing details of the similar node search unit 28 in step S71 of the graph creation support processing described above. When the similar node search unit 28 proceeds to step S71 of the graph creation support processing, it starts the similar node search processing shown in Fig. 21, and first recognizes the query node specified by the user in step S70 of the graph creation support processing (S80).

[0141] Next, the similar node search unit 28 requests the query embedding generation unit 25 ( FIG. 1 ) to generate an embedding of the query node (S81). At this time, the similar node search unit 28 provides the node information of the query node recognized in step S80 to the query embedding generation unit 25 as query information. Thus, upon receiving this request, the query embedding generation unit 25 calculates a query embedding of the query node based on the query information, and notifies the similar node search unit 28 of the calculated query embedding.

[0142] Next, the similar node search unit 28 obtains the node embedding of each node registered in the node information table 20 by reading it from the node information table 20 (S82).The similar node search unit 28 also selects one node embedding that has not been processed in step S84 from the node embeddings obtained in step S82 (S83).

[0143] The similar node search unit 28 then calculates the similarity between the node embedding selected in step S83 (hereinafter referred to as the selected node embedding) and the query embedding generated by the query embedding generation unit 25 in step S81 (S84). Note that cosine similarity can be used as this similarity.

[0144] Next, the similar node search unit 28 determines whether or not the processing of step S84 has been completed for all nodes for which node embeddings were acquired in step S82 (S85). If the similar node search unit 28 obtains a negative result in this determination, it returns to step S83, and thereafter repeats the processing of steps S83 to S85 while sequentially switching the node embedding selected in step S83 to other node embeddings that have not been processed in step S84.

[0145] When the similar node search unit 28 eventually obtains a positive result in step S85 by completing the processing of step S84 for all node embeddings obtained in step S82, it extracts a predetermined number of nodes that have the highest similarity between the query embedding of the query node and the node embedding (S86), and then ends this similar node search process and returns to the graph creation support process.

[0146] (4-2-3) Query Embedding Generation Processing Figure 22 shows the flow of a series of processes (hereinafter referred to as the query embedding generation processing) executed by the query embedding generation unit 25, which is requested by the similar node search unit 28 to generate a query embedding for a query node in step S81 of the similar node search processing described above with reference to Figure 21.

[0147] When the query embedding generation unit 25 receives such a request, it starts the query embedding generation process shown in FIG. 22, and first obtains the node features (query features) of the query node specified by the user from the node information table 20 (S90).

[0148] Next, the query embedding generation unit 25 acquires the node features of all nodes other than the query node from the node information table 20 by reading them out of the node information registered in the node information table 20 (S91).

[0149] After that, the query embedding generation unit 25 calculates the similarity between the node feature of each node acquired in step S91 and the query feature acquired in step S90 (S92). Cosine similarity can be applied as this similarity.

[0150] Then, based on the similarity between the node features of each node calculated in step S92 and the query features of the query node, the query embedding generation unit 25 acquires the node numbers and the graph IDs of the graphs to which the nodes belong for the top predetermined number of nodes with the highest similarity (S93).

[0151] Next, the query embedding generation unit 25 obtains the node embedding of each node for which the node number and graph ID were obtained in step S93 from the node information table 20, and calculates the average value of the node embedding of each obtained node.The query embedding generation unit 25 then sets the calculated average value as the query embedding of the query node, and notifies the similar node search unit 28 of the query embedding (S94).After this, the query embedding generation unit 25 ends this node embedding generation process.

[0152] (5) Effects of the Present Embodiment As described above, the graph creation assistance device 1 of the present embodiment sets a complementary edge between two nodes in a graph where no edge exists, and trains a GNN model using the node information of each node in the graph, the edge information of each edge, and also the complementary edge information of each set complementary edge.The GNN model trained in this way (trained GNN model) is then used to calculate the similarity between the node embedding of each node generated using the GNN model trained in this way and the query embedding of the query node, and based on the calculation result, searches for nodes similar to the query node, extracts a predetermined number of nodes with the highest similarity, and recommends them to the user.

[0153] In this case, the nodes recommended to the user in this way are merely nodes similar to the query node, not nodes similar to the related nodes of the query node desired by the user. However, as described above, the node embedding of each node includes information about the connection relationship between that node and other nodes in the existing graph, so nodes similar to such related nodes are also extracted as nodes with high similarity, so there is no problem.

[0154] Therefore, according to the graph creation support device 1, even if the graph used for learning a GNN model is a "graph with uncertainty in the node connection relationships," the influence of such uncertainty can be reduced, making it possible to search for appropriate nodes, thereby improving search accuracy. It can also make it easier to stabilize the learning of the GNN model.

[0155] Furthermore, in this graph creation support device 1, the average value of the embeddings of nodes in an existing graph that have node features similar to the query features of the query node is used as the embedding of the query node, so even if the query node does not have connection information, the node embedding (query embedding) of the query node can include connection information. This allows the graph creation support device 1 to further improve search accuracy.

[0156] Furthermore, in this graph creation support device 1, the edge existence probability of such a complementary edge is assigned based on the distance between nodes or the similarity of the text embedding of the nodes, thereby reducing the influence of differences in the graph connection relationships due to differences in graph creators, etc.

[0157] Furthermore, in this graph creation support device 1, the loss function used when training the GNN model is the loss function for the regression task rather than the loss function for the classification task, thereby reducing the impact of differences in graph connectivity on the node embedding generated by the GNN model.

[0158] (6) Other Embodiments In the above embodiment, the graph creation support device 1 of this embodiment is described as being configured by a single computer device, but the present invention is not limited to this, and the graph creation support device 1 may also be configured by a distributed computing system made up of multiple computer devices.

[0159] Furthermore, in the above embodiment, the case where the graph to be searched is a directed graph has been described, but the present invention is not limited to this, and can also be applied to the case where the graph to be searched is an undirected graph.

[0160] Furthermore, in the above-described embodiment, the case where node text embedding is applied as the node feature of each node to be input to the trained GNN model has been described, but the present invention is not limited to this, and various other features can be widely applied as the node feature of each node to be input to the trained GNN model, such as features representing user information on SNS or features representing words contained in the text of a paper.

[0161] Furthermore, in the above-described embodiment, a GNN model is applied as a model for generating node embeddings from node features, but the present invention is not limited to this, and various other machine learning models can be widely applied.

[0162] The present invention can be widely applied to search devices of various configurations that search for nodes similar to a query node from among the nodes that make up a graph with uncertainty in the node connections.

[0163] 1...Graph creation support device, 3...CPU, 20...Node information table, 21...Edge information table, 22...Complementary edge information table, 23...Trained GNN model information, 24...Node embedding generation unit, 25...Query embedding generation unit, 26...Edge complementation unit, 27...GNN learning unit, 28...Similar node search unit, 30...Graph creation screen.

Claims

1. A search device that searches for nodes similar to a query node designated as the node for which related nodes should be searched from among the nodes that constitute a graph having uncertainty in the node connection relationships, the search device comprising: an edge completion unit that assigns an edge existence probability between each of the nodes that are not directly connected in the graph; a learning unit that learns the edge existence probability between each of the nodes in the graph; a node embedding generation unit that generates an embedding for each of the nodes using a model obtained by learning from the learning unit; a query embedding generation unit that generates an embedding for the query node using the model; and a similar node search unit that searches for nodes whose embedding is similar to the embedding of the query node generated by the query embedding generation unit.

2. The search device according to claim 1, characterized in that the learning unit learns by a regression task using the edge existence probability of a real value assigned by the edge complementing unit as an input.

3. The search device according to claim 1, characterized in that the edge complementation unit assigns the edge existence probability between two nodes that are not directly connected, which probability attenuates depending on the distance between the nodes.

4. The search device according to claim 1, characterized in that the edge complementation unit assigns the edge existence probability between two nodes that are not directly connected according to the similarity of the features of each node.

5. The search device described in claim 1, characterized in that the learning unit randomly samples two nodes in the graph for which no path exists as negative edges, and uses information about the sampled negative edges to learn the probability of an edge existing between each of the nodes in the graph.

6. The search device according to claim 5, wherein the learning unit does not sample the negative edges that cross the graph.

7. The search device according to claim 1, characterized in that the query embedding generation unit generates the embedding of the query node using the embedding of the node having features similar to the features of the query node.

8. The search device described in claim 1, characterized in that the similar node search unit presents a predetermined number of nodes whose embeddings are similar to the embedding of the query node generated by the query embedding generation unit detected by the search, and adds the nodes selected from the presented nodes to the graph.

9. A search method executed by a search device that searches for nodes similar to a query node designated as the node for which related nodes should be searched from among the nodes that constitute a graph with uncertainty in the node connection relationships, the search method comprising: a first step of assigning an edge existence probability between each of the nodes that are not directly connected in the graph; a second step of learning the edge existence probability between each of the nodes in the graph; a third step of generating an embedding for each of the nodes and an embedding for the query node using a model obtained by learning; and a fourth step of searching for the node whose embedding is similar to the generated embedding for the query node.

Citation Information

Patent Citations

  • Real-time graph-based embedding construction method and system for personalized content recommendation

    JP2021026779A

  • Information processing device, information processing method, and program

    JP2023149688A

  • Node selection apparatus and method for maximizing influence using node metadata in network with unknown topology

    US20230162009A1