Information processing device, information processing method, and information processing program

The information processing device addresses the challenge of connecting edges to nodes with specific conditions by generating a second graph that reduces retrieval difficulty, enhancing search efficiency.

JP7887344B2Active Publication Date: 2026-07-09LY CORP

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
LY CORP
Filing Date
2022-11-14
Publication Date
2026-07-09

AI Technical Summary

Technical Problem

Conventional techniques face difficulties in generating graphs where edges are connected to nodes that satisfy specific conditions, particularly in reducing edges to improve retrieval difficulty.

Method used

An information processing device that acquires a first graph, selects nodes based on retrieval difficulty, and generates a second graph by connecting edges to these nodes using methods that ensure edges are added according to predefined conditions.

Benefits of technology

Enables the generation of a graph where edges are connected to nodes that satisfy certain conditions, making it easier to find difficult nodes and improving search efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007887344000001
    Figure 0007887344000001
  • Figure 0007887344000002
    Figure 0007887344000002
  • Figure 0007887344000003
    Figure 0007887344000003
Patent Text Reader

Abstract

To generate a graph in which an edge is connected to a node that satisfies a condition.SOLUTION: An information processing apparatus includes an acquisition unit, a selection unit, and a generation unit. The acquisition unit acquires a first graph in which a plurality of nodes corresponding to a plurality of objects, respectively, are connected by edges, the objects being targets of data retrieval. The selection unit selects, as a target node, a node that satisfies a condition regarding unlikeliness of retrieval, out of the nodes. The generation unit generates a second graph in which edges from nodes other than the target node, out of the multiple nodes, is connected to the target node.SELECTED DRAWING: Figure 3
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to an information processing apparatus, an information processing method, and an information processing program.

Background Art

[0002] Conventionally, techniques for searching various information have been provided. For example, in order to perform a search regarding a predetermined target, a technique for generating graph data in which nodes corresponding to the search target are connected by edges has been provided. Also, such a technique is used, for example, in image search and the like.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Patent Document 2

Non-Patent Documents

[0004]

Non-Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0005] However, in the above conventional technology, it may be difficult to generate a graph in which edges are connected to nodes that satisfy the conditions. For example, in the above conventional technology, although consideration is given to appropriately generating a graph by reducing edges, there is room for improvement in terms of adding (connecting) edges.

[0006] This application has been made in view of the above, and aims to provide an information processing device, an information processing method, and an information processing program that generate a graph in which edges are connected to nodes that satisfy certain conditions. [Means for solving the problem]

[0007] The information processing device according to the present invention is characterized by comprising: an acquisition unit that acquires a first graph in which a plurality of nodes corresponding to each of a plurality of objects that are the target of data retrieval are connected by edges; a selection unit that selects a node from the plurality of nodes that satisfies conditions related to difficulty in retrieval as a target node; and a generation unit that generates a second graph in which edges from nodes other than the target node are connected to the target node. [Effects of the Invention]

[0008] According to one embodiment, it is possible to generate a graph in which edges are connected to nodes that satisfy certain conditions. [Brief explanation of the drawing]

[0009] [Figure 1] Figure 1 shows an example of information processing according to the embodiment. [Figure 2] Figure 2 shows an example of the configuration of an information processing system according to the embodiment. [Figure 3] Figure 3 shows an example of the configuration of an information processing device according to the embodiment. [Figure 4] Figure 4 shows an example of an object information storage unit according to the embodiment. [Figure 5] Figure 5 shows an example of a condition information storage unit according to the embodiment. [Figure 6] Figure 6 shows an example of a graph data storage unit according to the embodiment. [Figure 7] Figure 7 is a flowchart showing an example of information processing according to the embodiment. [Figure 8] Figure 8 shows another example of information processing according to the embodiment. [Figure 9] Figure 9 shows an example of source information used in the information processing according to the embodiment. [Figure 10] Figure 10 is a flowchart showing an example of a search process using graph data. [Figure 11] Figure 11 is a hardware configuration diagram showing an example of a computer that implements the functions of an information processing device. [Modes for carrying out the invention]

[0010] The following describes in detail, with reference to the drawings, the embodiments for implementing the information processing apparatus, information processing method, and information processing program according to the present application (hereinafter referred to as "embodiments"). Note that these embodiments do not limit the information processing apparatus, information processing method, and information processing program according to the present application. Furthermore, the same parts are denoted by the same reference numerals in each of the following embodiments, and redundant descriptions are omitted.

[0011] (Embodiment) [1. Information Processing] An example of information processing according to the embodiment will be explained using Figure 1. Figure 1 is a diagram showing an example of information processing according to the embodiment. In Figure 1, the information processing device 100 (see Figure 3) targets nodes that satisfy the conditions for difficulty in searching (also called "target nodes") among a plurality of nodes in a graph (also called "first graph"), and generates a graph (also called "second graph") in which edges from other nodes other than the target nodes are connected to the target nodes. In the following, the information to be searched (objects) is vectorized, and a graph index (also simply called "graph") is constructed with respect to the vectorized objects. That is, Figure 1 shows the case in which the information processing device 100 processes the vectors as object values ​​corresponding to objects.

[0012] Note that the information used by the information processing apparatus 100 is not limited to vectors, and may be information of any format as long as it can represent the similarity of each target. For example, the information processing apparatus 100 may use predetermined data or values corresponding to each target. For example, the information processing apparatus 100 may use predetermined numerical values (for example, binary values or hexadecimal values) generated from each target. For example, the information processing apparatus 100 may use any form of data as long as the distance (similarity) between the data is defined, not limited to vectors. In the following, the case where image information is used as an object will be described as an example, but the object may be various targets such as video information and audio information.

[0013] Also, in FIG. 1, the information processing apparatus 100 performs information processing on a graph including nodes and directed edges. Here, the directed edge means an edge that can only traverse data in one direction. In the following, the node from which the edge traverses, that is, the starting node, is referred to as the reference source, and the node to which the edge traverses, that is, the ending node, is referred to as the reference destination. For example, a directed edge connected from a predetermined node "A" to a predetermined node "B" indicates that the reference source is the node "A" and the reference destination is the node "B".

[0014] In the following, the edge with the node "A" as the reference source as described above is referred to as the output edge of the node "A". Also, in the following, the edge with the node "B" as the reference destination as described above is referred to as the input edge of the node "B". That is, the output edge and the input edge as described here are the differences in how to capture one directed edge with respect to the two nodes connected by the directed edge. One directed edge becomes the output edge and the input edge. That is, the output edge and the input edge are relative concepts. For one directed edge, it becomes the output edge when captured with the reference source node as the center, and it becomes the input edge when captured with the reference destination node as the center. In the present embodiment, for the edge, since the target is a directed edge such as an output edge or an input edge, in the following, the directed edge may sometimes be simply described as an "edge".

[0015] Also, each node mentioned here corresponds to each object. For example, each of a plurality of local feature amounts extracted from an image may be an object. Also, for example, various data in which the distance between objects is defined may be an object.

[0016] The information processing apparatus 100 performs graph generation processing on nodes corresponding to a huge amount of image information (e.g., several million to several hundred million, etc.) within the range that the information processing apparatus 100 can process. However, only a part of it is illustrated in the drawings. In FIG. 1, for the sake of simplicity of explanation, seven nodes are illustrated to explain the outline of the processing. Specifically, in FIG. 1, only the nodes N1 to N7 are illustrated, and only some edges such as edge E1 are also illustrated.

[0017] When described as "node N* (* is an arbitrary numerical value)" in this way, it indicates that the node is a node identified by the node ID "N*". For example, when described as "node N1", the node is a node identified by the node ID "N1".

[0018] Also, when described as "edge E* (* is an arbitrary numerical value)" in this way, it indicates that the edge is an edge identified by the edge ID "E*". For example, when described as "edge E1", the edge is an edge identified by the edge ID "E1". For example, by the edge E1 that connects node N1 as the reference source and node N2 as the reference destination, it is possible to trace from node N1 to node N2. In this case, the directed edge E1 is an output edge when identified centering on node N1, and an input edge when identified centering on node N2. In other words, the directed edge E1 is an edge with an arrow pointing from itself to another edge, that is, an outward edge, when viewed from the perspective of node N1 side, and an edge with an arrow pointing towards itself, that is, an inward edge, when viewed from the perspective of node N2 side. That is, the output edge mentioned here can be read as an outward edge, and the input edge can be read as an inward edge.

[0019] Furthermore, the spatial information VS1-1 to VS1-7 shown in Figure 1 are schematic representations of each graph, and the spaces shown in spatial information VS1-1 to VS1-7 may be the same space. Also, in the following, when explaining spatial information VS1-1 to VS1-7 without any particular distinction, it will be referred to as spatial information VS1.

[0020] Furthermore, the spatial information VS1 in Figure 1 may be a Euclidean space. Also, the spatial information VS1 shown in Figure 1 is a conceptual diagram for explaining the distances between each vector, etc., and the spatial information VS1 is a multidimensional space. For example, the spatial information VS1 shown in Figure 1 is illustrated in a two-dimensional form because it is plotted on a plane, but it may be a multidimensional space such as 100 dimensions or 1000 dimensions.

[0021] In this embodiment, the distance between each node in spatial information VS1 is used to represent the similarity between corresponding objects. For example, the similarity of the objects (image information) corresponding to each node is mapped as the distance between nodes in spatial information VS1. For example, the similarity between concepts corresponding to each node is mapped as the distance between nodes. In the example shown in Figure 1, objects that are close to each other in spatial information VS1 have high similarity, and objects that are long to each other in spatial information VS1 have low similarity. For example, in spatial information VS1 in Figure 1, the node identified by node ID "N1" (node ​​N1) and the node identified by node ID "N2" (node ​​N2) are close to each other, i.e., they are close to each other. Therefore, the object corresponding to the node identified by node ID "N1" and the object corresponding to the node identified by node ID "N2" have high similarity.

[0022] Furthermore, for example, in the spatial information VS1 in Figure 1, the node identified by node ID "N2" and the node identified by node ID "N5" are far apart, i.e., they are separated by a long distance. Therefore, the object corresponding to the node identified by node ID "N2" and the object corresponding to the node identified by node ID "N5" have low similarity. Note that the distance used as an indicator of similarity can be any distance that is applicable as the distance between vectors (N-dimensional vectors), and various distances such as Euclidean distance, Mahalanobis distance, and cosine distance may be used.

[0023] [1-1. Example of generation method] From here, we will explain the first, second, and third methods, which are examples of graph generation methods, using Figure 1. Below, we will explain that the number of input edges to a node (also called "in-degree") is less than a threshold value, as an example of a condition related to difficulty in searching. Note that the conditions related to difficulty in searching are not limited to those related to the in-degree, and any arbitrary conditions can be set. Note that each step shown in Figure 1 is a convenient step for explaining graph generation, and the actual processing may be carried out with more detailed processing steps.

[0024] [1-1-0. Preparation (Collecting nodes that are difficult to find)] First, we will explain the points common to all three methods described below: the first, second, and third methods. The information processing device 100 acquires the first graph GR1 (step S1). Below, we will explain the case in which the information processing device 100 generates the first graph GR1 as an example, but the information processing device 100 may also acquire the first graph GR1 from an external device or a storage unit 120 (see Figure 3). In addition, any graph can be used for the first graph GR1, but in Figure 1, an approximate k-neighbor graph is explained as an example of the first graph GR1. Furthermore, the approximate k-neighbor graph is merely one example of the first graph GR1, and the first graph GR1 may be, for example, a k-neighbor graph.

[0025] For example, a k-nearest neighbor graph is a graph in which, for each node, edges are connected to k nodes in order of proximity. For example, an approximate k-nearest neighbor graph is a concept that includes graphs based on graphs that approximate the k-nearest neighbor graph (also called "ANNG"), which is generated by performing a k-nearest neighbor search using the graph being generated during graph index (graph) generation. Note that the approximate k-nearest neighbor graph generated by the above process may also be the k-nearest neighbor graph. In other words, an approximate k-nearest neighbor graph is a concept that includes the k-nearest neighbor graph. Furthermore, any process disclosed in Patent Document 1, Non-Patent Document 1, etc., can be used to generate an approximate k-nearest neighbor graph, and a detailed explanation is omitted.

[0026] In Figure 1, the information processing device 100 performs preparatory processing, including the generation of the first graph GR1, according to the following procedures #0-1 to #0-3. For example, the information processing device 100 collects information about nodes that are difficult to search through preparatory processing. If the information processing device 100 does not generate the graph GR1 as described above, procedure #0-1 may involve obtaining the first graph GR1 from an external device or the storage unit 120.

[0027] (Preparation) Step #0-1: Generate an ANNG, remove edges from each node so that the number of output edges (also called the "out degree") is k, and generate an approximate k-nearest neighbor graph. Step #0-2: Calculate the in-degree of each node. Step #0-3: Sort the nodes in ascending order of in-degree.

[0028] Although a detailed explanation is omitted, in step #0-1, the information processing device 100 generates ANNG by adding nodes to the graph one by one and connecting the nodes bidirectionally with undirected edges or directed edges. Note that the above process is merely an example, and in step #0-1, the information processing device 100 may also generate an approximate k-nearest neighbor graph by searching for k neighboring nodes using each node of ANNG as a query. Through step #0-1, the information processing device 100 obtains a first graph GR11 as shown in spatial information VS1-1.

[0029] Furthermore, the information processing device 100 calculates the in-degree of each node by counting the number of input edges to each node. The information processing device 100 may store the calculated in-degree of each node in the storage unit 120. The information processing device 100 also sorts the nodes in ascending order of in-degree by arranging them in descending order of in-degree. The information processing device 100 may store the sorted information, which is the nodes sorted in ascending order of in-degree, in the storage unit 120.

[0030] The following describes the first to third methods, assuming the prior preparations mentioned above. We will explain the case where the lower limit M is set to 2 as an example. In addition, Figure 1 shows an example where a separate graph is generated as the second graph, but the information processing device 100 may also generate the second graph by adding edges to the first graph. In this case, the second graph will be a graph in which new edges have been added to the first graph. Note that Figure 1 shows the case where a graph reflecting only the nodes of the first graph is used as the initial state of the second graph.

[0031] [1-1-1. First method] First, the first method will be explained. The information processing device 100 executes the process of generating the second graph using the first method according to the following steps #1-1 to #1-5. For example, the information processing device 100 collects information about nodes that are difficult to search due to prior preparation. Note that if the information processing device 100 does not generate graph GR1 as described above, step #0-1 may be the acquisition of the first graph GR1 from an external device or storage unit 120.

[0032] (1st method) Step #1-1: Set the lower limit M of the in-degree. Step #1-2: Obtain one node A in order of increasing in-degree. Step #1-3: If the in-degree of node A is equal to the lower bound M, then terminate. Steps #1-4: Randomly select node B from the graph and add an edge from node B to node A. Steps #1-5: Repeat steps #1-4 until the in-degree equals the lower bound M, then return to step #1-2.

[0033] For example, in step #1-1, the information processing device 100 retrieves the lower limit value ITH1, which is "2", stored in the condition information storage unit 122 (see Figure 5), and sets the lower limit value M to "2". For example, in step #1-2, the information processing device 100 retrieves one node A in ascending order of in-degree from the sort information generated in the preliminary preparation. For example, in step #1-3, the information processing device 100 compares the in-degree of node A with the lower limit value M, and if the in-degree of node A and the lower limit value M are not the same, it repeats the processing in steps #1-2 to #1-5. On the other hand, if the in-degree of node A and the lower limit value M are the same, the information processing device 100 terminates the process.

[0034] For example, in step #1-4, the information processing device 100 randomly selects node B from the first graph GR1 and generates a second graph by adding an edge from node B to node A. As in step #1-5, the information processing device 100 repeats the process of adding an edge to node A in the second graph in step #1-4, and returns to step #1-2 when the in-degree of node A becomes equal to the lower limit M.

[0035] Here, an example of the processing of the first method described above will be explained using Figure 1. The information processing device 100 selects node N7 as the target node (step S2). Thus, in Figure 1, the information processing device 100 selects node N7, which has an in-degree of 0, as the target node. The information processing device 100 determines the number of input edges to add to the target node (also called the "number of additions") by subtracting the "in-degree of the target node" from the lower limit value. For example, the information processing device 100 determines the number of additions to be 2, which is obtained by subtracting the in-degree of node N7 "0" from the lower limit value M.

[0036] Then, the information processing device 100 generates a second graph GR11 in which edges from other nodes are connected to node N7 (step S11). The information processing device 100 generates the second graph GR11 by randomly selecting nodes from the group of nodes in the first graph GR1 to which output edges to node N7 will be added (also called "input source nodes"), and adding input edges from the selected input source nodes to node N7.

[0037] In Figure 1, the information processing device 100 randomly selects node N3 as the input source node and generates a second graph GR11 by adding edge E15, which is an input edge from the selected node N3 to node N7. The information processing device 100 also randomly selects node N2 as the input source node and generates a second graph GR11 by adding edge E16, which is an input edge from the selected node N2 to node N7. As a result, the information processing device 100 generates a second graph GR11 with two input edges E15 and E16 added to node N7 by random selection, as shown in spatial information VS1-2.

[0038] In this way, the information processing device 100 can generate a graph in which edges are connected to nodes that satisfy the conditions by adding input edges to nodes that are difficult to find using the first method. Although Figure 1 illustrates and explains only the case where one node N7 is the target node for illustrative purposes, the information processing device 100 generates the second graph GR11 using the first method by repeating the above process only for nodes whose in-degree is less than the lower limit M. Furthermore, the type of line for each edge in Figure 1 is to distinguish between existing edges in the first graph GR1 and edges added by the first to third methods, etc. That is, edges added by the first to third methods, etc. are shown as dotted lines, but are considered to be the same as existing edges in the first graph GR1.

[0039] Then, the information processing device 100 generates a composite graph by adding edges included in the second graph GR11 to the first graph GR1 (step S12). In Figure 1, as shown in spatial information VS1-3, the information processing device 100 generates a composite graph GR12 by adding edges E15 and E16 included in the second graph GR11 to the first graph GR1. As a result, the information processing device 100 can generate a composite graph to which input edges to nodes that are difficult to search in the first graph have been added, and by using the composite graph, it becomes possible to search using a graph in which the presence of nodes that are difficult to search has been suppressed.

[0040] [1-1-2. Second method] Next, the second method will be described. Note that explanations of points similar to those of the first method will be omitted as appropriate. The information processing device 100 executes the second graph generation process using the second method according to the following procedures #2-1 to #2-6. For example, the information processing device 100 collects information about nodes that are difficult to search due to prior preparation. Note that if the information processing device 100 does not generate graph GR1 as described above, procedure #0-1 may involve obtaining the first graph GR1 from an external device or the storage unit 120.

[0041] (Second method) Step #2-1: Set the lower limit M for the increment and the search count L. Step #2-2: Obtain one node A in order of increasing in-degree. Step #2-3: If the in-degree of node A is equal to the lower bound M, then terminate. Step #2-4: Find L neighboring nodes for node A and form a node set U. Step #2-5: Get node B, which is furthest from node set U, assign an edge from node B to node A, and remove node B from node set U. Step #2-6: Repeat Step #2-5 until the in-degree equals the lower bound M, then return to Step #2-2.

[0042] For example, in step #2-1, the information processing device 100 retrieves the value ITH1, which is the lower limit value of condition LCD1 stored in the condition information storage unit 122 (see Figure 5), and sets the lower limit value M to "2". Also, in step #2-1, the information processing device 100 retrieves the value (setting value) that is set as the search number L stored in the generation information storage unit 123 (see Figure 3), and sets the search number L to the retrieved setting value. Note that any value can be set for the search number L, and the search number L is set to a value that is sufficiently larger than the lower limit value M.

[0043] For example, in step #2-2, the information processing device 100 retrieves one node A from the sort information generated in the preliminary steps, in ascending order of in-degree. For example, in step #2-3, the information processing device 100 compares the in-degree of node A with the lower limit M, and if the in-degree of node A and the lower limit M are not the same, it repeats the processing in steps #2-2 to #2-6. On the other hand, if the in-degree of node A and the lower limit M are the same, the information processing device 100 terminates the process.

[0044] For example, in step #2-4, the information processing device 100 searches for L neighboring nodes for node A and forms a node set U. For example, the information processing device 100 performs a search using the first graph GR1 to find L neighboring nodes for node A, and the extracted group of nodes is formed into a node set U. The information processing device 100 searches for nodes located near node A (neighboring nodes) using the processing procedure shown in Figure 10. For example, the information processing device 100 extracts L neighboring nodes, which is the search number (also called the "number of candidates"), by searching the graph using the processing procedure shown in Figure 10. Note that any method other than that shown in Figure 10 can be used for the search process to extract the node set U, but a detailed explanation is omitted. In addition, to speed up processing, the information processing device 100 may determine the starting node of the search (starting node) using starting point information (starting point index) of a tree structure with each node N1 and N2 of the first graph GR1 as leaves, but details will be described later.

[0045] For example, in step #2-5, the information processing device 100 obtains the furthest node B from the node set U, generates a second graph by adding an edge from node B to node A, and removes node B from the node set U. As in step #2-6, the information processing device 100 repeats the process of adding an edge to node A in the second graph in step #2-5, and returns to step #2-2 when the in-degree of node A becomes equal to the lower bound M.

[0046] Here, an example of the processing of the second method described above will be explained using Figure 1. The information processing device 100 selects node N7 as the target node (step S2).

[0047] Then, the information processing device 100 generates a second graph GR21 in which edges from other nodes are connected to node N7 (step S21). The information processing device 100 performs a search process to find L neighboring nodes from the group of nodes in the first graph GR1, selects the node furthest from the extracted group of nodes U as the input source node, and generates the second graph GR21 by adding an input edge from the selected input source node to node N7.

[0048] In Figure 1, the information processing device 100 performs a search process to find L neighboring nodes from the node group in the first graph GR1 and extracts a node set U that includes nodes N1, N2, N5, N6, etc. The information processing device 100 selects the furthest node N6 from the node set U that includes nodes N1, N2, N5, N6, etc. as the input source node, and generates the second graph GR21 by adding edge E25, which is the input edge from the selected node N6 to node N7. Note that if an input edge from node N6 to node N7 already exists in the first graph GR1, the information processing device 100 does not add an input edge from node N6 to node N7. Then, the information processing device 100 deletes node N6 from the node set U.

[0049] Furthermore, the information processing device 100 selects the furthest node N2 from the node set U, which includes nodes N1, N2, N5, etc., after the deletion of node N6, as the input source node, and generates the second graph GR21 by adding edge E26, which is the input edge from the selected node N2 to node N7. Note that if the input edge from node N2 to node N7 already exists in the first graph GR1, the information processing device 100 does not add the input edge from node N2 to node N7. Then, the information processing device 100 deletes node N2 from the node set U. As a result, as shown in spatial information VS1-4, the information processing device 100 selects the furthest edge from the node group extracted by the search process, and generates the second graph GR21 with two input edges to node N7, edges E25 and E26, added.

[0050] In this way, the information processing device 100 can generate a graph in which edges are connected to nodes that satisfy the conditions by adding input edges to nodes that are difficult to find using the second method. Although Figure 1 illustrates and explains only the case where one node N7 is the target node for illustrative purposes, the information processing device 100 generates the second graph GR21 using the second method by repeating the above process only for nodes whose in-degree is less than the lower limit M.

[0051] Then, the information processing device 100 generates a composite graph by adding edges included in the second graph GR21 to the first graph GR1 (step S22). In Figure 1, as shown in spatial information VS1-5, the information processing device 100 generates a composite graph GR22 by adding edges E25 and E26 included in the second graph GR21 to the first graph GR1. As a result, the information processing device 100 can generate a composite graph to which input edges to nodes that are difficult to search in the first graph have been added, and by using the composite graph, it becomes possible to search using a graph in which the presence of nodes that are difficult to search has been suppressed.

[0052] Regarding the second method, if it is clearly stated that a separate graph is generated and then merged, the following processing may be used. In this case, the preliminary steps may be the same as those shown in Preliminary Steps #2, specifically steps #5-1 to #5-3. In Preliminary Steps #2, explanations of the same points as in the preliminary steps will be omitted as appropriate.

[0053] (Preparation #2) Step #5-1: Generate an ANNG, remove edges so that the out-degree of each node is k, generate an approximate k-nearest neighbor graph, and designate the generated graph as graph #1. Step #5-2: Calculate the in-degree of each node. Step #5-3: Sort the nodes in ascending order of in-degree and assign each node its current in-degree.

[0054] The above process is merely an example, and the information processing device 100 may generate an approximate k-nearest neighbor graph in step #5-1 by searching for k neighboring nodes using each node of ANNG as a query. Furthermore, in step #5-3, the information processing device 100 sorts the nodes in ascending order of in-degree and stores sort information in the storage unit 120, associating the current in-degree with each node.

[0055] Furthermore, if it is clarified that a separate graph is generated and then merged, the second method may be the procedure #6-1 to #6-9 shown in the second method #2 below. Note that in the second method #2, explanations of points similar to the second method will be omitted as appropriate. The information processing device 100 executes the generation process of the second graph by the second method using the procedure #2-1 to #2-6 shown below. For example, the information processing device 100 collects information about nodes that are difficult to search due to prior preparation. Note that if the information processing device 100 does not generate graph GR1 as described above, procedure #5-1 may be the acquisition of the first graph GR1 from an external device or storage unit 120.

[0056] (Second method #2) Step #6-1: Generate a node-only graph #2 from the input graph, graph #1. Step #6-2: Set the lower limit M for the increment and the search count L. Step #6-3: Obtain one node A in descending order of in-degree. Step #6-4: If the in-degree X (in-degree during preparation) assigned to node A in Step #5-3 is the same as the lower bound M, proceed to Step #6-9. Step #6-5: Find L neighboring nodes for node A and form a node set U. Step #6-6: Get node B, which is furthest from node set U, assign an edge from node B to node A in graph #2, and remove node B from node set U. Steps #6-7: Add 1 to the in-degree X of node A. Step #6-8: Repeat steps #6-6 and #6-7 until the in-degree X equals the lower bound M, then return to step #6-3. Steps #6-9: Merge graph #2 into graph #1 (add edges from graph #2 to graph #1)

[0057] For example, in step #6-1, the information processing device 100 generates a second graph that reflects only that node from the first graph. For example, in step #6-2, the information processing device 100 retrieves "2", which is the lower limit value ITH1 of the condition LCD1 stored in the condition information storage unit 122 (see Figure 5), and sets the lower limit value M to "2". For example, in step #6-3, the information processing device 100 retrieves one node A in ascending order of in-degree from the sort information generated in the preliminary steps. For example, in step #6-4, the information processing device 100 compares the in-degree of node A with the lower limit value M, and if the in-degree of node A and the lower limit value M are not the same, it repeats the processing in steps #6-3 to #6-8. On the other hand, if the in-degree of node A and the lower limit value M are the same, the information processing device 100 executes the processing in step #6-9.

[0058] For example, in step #6-5, the information processing device 100 searches for L neighboring nodes for node A and forms a node set U. For example, in step #6-6, the information processing device 100 obtains the furthest node B from the node set U, generates a second graph by adding an edge from node B to node A in the second graph, and removes node B from the node set U. As in step #6-8, the information processing device 100 repeats the process of adding an edge to node A in the second graph in step #6-6, and returns to step #6-3 when the in-degree of node A becomes equal to the lower bound M.

[0059] [1-1-3. Third method] Next, the third method will be explained. Note that explanations of points similar to those of the first and second methods will be omitted as appropriate. The information processing device 100 executes the generation process of the second graph using the third method according to the following procedures #3-1 to #3-6. For example, the information processing device 100 collects information about nodes that are difficult to search due to prior preparation. Note that if the information processing device 100 does not generate graph GR1 as described above, procedure #0-1 may involve obtaining the first graph GR1 from an external device or the storage unit 120.

[0060] (Third method) Step #3-1: Set the lower limit M for the increment and the search count L. Step #3-2: Obtain one node A in descending order of in-degree. Step #3-3: If the in-degree of node A is equal to the lower bound M, then terminate. Step #3-4: Find L neighboring nodes for node A and form a node set U. Steps #3-5: Obtain the nearest node B from node set U, add an edge from node B to node A if there is no edge, and remove node B from node set U. Step #3-6: Repeat Step #3-5 until the in-degree equals the lower bound M, then return to Step #3-2.

[0061] For example, in step #3-1, the information processing device 100 retrieves the value ITH1, which is "2", the lower limit value of condition LCD1 stored in the condition information storage unit 122 (see Figure 5), and sets the lower limit value M to "2". Also, in step #3-1, the information processing device 100 retrieves the value (setting value) that is set as the search number L stored in the generation information storage unit 123 (see Figure 3), and sets the search number L to the retrieved setting value.

[0062] For example, in step #3-2, the information processing device 100 retrieves one node A from the sort information generated in the preliminary steps, in ascending order of in-degree. For example, in step #3-3, the information processing device 100 compares the in-degree of node A with the lower limit M, and if the in-degree of node A and the lower limit M are not the same, it repeats the process from steps #3-2 to #3-6. On the other hand, if the in-degree of node A and the lower limit M are the same, the information processing device 100 terminates the process.

[0063] For example, in step #3-4, the information processing device 100 searches for L neighboring nodes for node A and sets them as node set U. For example, the information processing device 100 performs a search using the first graph GR1 to find L neighboring nodes for node A, and sets the extracted group of nodes as node set U. The information processing device 100 searches for nodes located near node A (neighboring nodes) using the processing procedure shown in Figure 10. For example, the information processing device 100 extracts L neighboring nodes, which is the search number (number of candidates), by searching the graph using the processing procedure shown in Figure 10.

[0064] For example, in step #3-5, the information processing device 100 obtains the nearest node B from the node set U, and if there is no edge from node B to node A, it generates a second graph by adding an edge from node B to node A, and then removes node B from the node set U. Alternatively, in step #3-5, the information processing device 100 may randomly obtain node B from the node set U, and if there is no edge from node B to node A, it generates a second graph by adding an edge from node B to node A, and then removes node B from the node set U. As in step #3-6, the information processing device 100 repeats the process of adding an edge to node A in the second graph in step #3-5, and when the in-degree of node A becomes equal to the lower bound M, it returns to step #3-2.

[0065] Here, an example of the processing of the third method described above will be explained using Figure 1. The information processing device 100 selects node N7 as the target node (step S2).

[0066] Then, the information processing device 100 generates a second graph GR31 in which edges from other nodes are connected to node N7 (step S31). The information processing device 100 performs a search process to find L neighboring nodes from the group of nodes in the first graph GR1, selects the closest node from the node set U of the extracted group of nodes as the input source node, and generates the second graph GR31 by adding an input edge from the selected input source node to node N7.

[0067] In Figure 1, the information processing device 100 performs a search process to find L neighboring nodes from the node group in the first graph GR1 and extracts a node set U that includes nodes N1, N2, N5, N6, etc. The information processing device 100 selects the closest node N1 from the node set U that includes nodes N1, N2, N5, N6, etc. as the input source node and generates the second graph GR31 by adding edge E35, which is the input edge from the selected node N1 to node N7. Note that if an input edge from node N1 to node N7 already exists in the first graph GR1, the information processing device 100 does not add an input edge from node N1 to node N7. Then, the information processing device 100 deletes node N1 from the node set U.

[0068] Furthermore, the information processing device 100 selects the closest node N5 from the node set U, which includes nodes N2, N5, N6, etc., after the deletion of node N1, as the input source node, and generates the second graph GR31 by adding edge E36, which is the input edge from the selected node N5 to node N7. Note that if the information processing device 100 already has an input edge from node N5 to node N7 in the first graph GR1, it does not add an input edge from node N5 to node N7. Then, the information processing device 100 deletes node N5 from the node set U. As a result, as shown in spatial information VS1-6, the information processing device 100 generates the second graph GR31 with two input edges to node N7, edges E35 and E36, added by selecting the closer edge from the node group extracted by the search process.

[0069] In this way, the information processing device 100 can generate a graph in which edges are connected to nodes that satisfy the conditions by adding input edges to nodes that are difficult to find using the third method. Although Figure 1 illustrates and explains only the case where one node N7 is the target node for illustrative purposes, the information processing device 100 generates the second graph GR31 using the third method by repeating the above process only for nodes whose in-degree is less than the lower limit M.

[0070] Then, the information processing device 100 generates a composite graph by adding edges included in the second graph GR31 to the first graph GR1 (step S32). In Figure 1, as shown in spatial information VS1-7, the information processing device 100 generates a composite graph GR32 by adding edges E35 and E36 included in the second graph GR31 to the first graph GR1. As a result, the information processing device 100 can generate a composite graph to which input edges to nodes that are difficult to search in the first graph have been added, and by using the composite graph, it becomes possible to search using a graph in which the presence of nodes that are difficult to search has been suppressed.

[0071] [1-1-4. Effects, Removal of Limitations, etc.] There are datasets with significant spatial bias, and in such cases, graph-type indexes tend to make it difficult to find some objects. For example, objects that are difficult to find (search) are nodes with low in-degrees when a graph such as a k-nearest neighbor graph is generated. Even in such cases, the information processing device 100 can increase the number of edges on objects that are difficult to find (search) by generating a graph in which edges are connected to nodes that satisfy certain conditions, thereby making them easier to find.

[0072] The above description is merely an example, and the information processing device 100 may generate a second graph using any information as appropriate. For example, the information processing device 100 may generate a second graph using any graph, such as an approximate k-nearest neighbor graph, as the first graph, rather than being limited to an approximate k-nearest neighbor graph. Furthermore, the target of the synthesis of the second graph is not limited to the first graph, but may be any graph. For example, the target of the synthesis of the second graph may be a graph generated based on a process of inverting edges included in the first graph (also called the "third graph"), which will be explained in detail in Figure 8.

[0073] Furthermore, the conditions related to the difficulty of finding the search result are not limited to the degree of ingress, but may be based on any information. Also, in the example described above, the search process in the first and second processes was explained using the search count L as a condition, but the search condition may also be the search range.

[0074] Furthermore, in the search process, the information processing device 100 may use the starting point information IND11, which relates to a tree structure as shown in Figure 9, as the starting point information (starting point index). Figure 9 is a diagram showing an example of the starting point information used in the information processing according to the embodiment. For example, the starting point information IND11 is an index having a tree structure that allows access to nodes in the first graph GR1. Note that the starting point information such as the starting point information IND11 may be generated by the information processing device 100, or the information processing device 100 may obtain the starting point information from another external device such as the information providing device 50.

[0075] When the information processing device 100 obtains starting point information from another external device, it provides the graph to the other external device. The information processing device 100 then obtains the starting point information generated by the other external device that received the graph. For example, when the information processing device 100 obtains starting point information IND11 from the information providing device 50, it transmits the first graph GR1 to the information providing device 50. The information processing device 100 then obtains the starting point information IND11 generated by the information providing device 50 that received the first graph GR1 from the information providing device 50.

[0076] Furthermore, the information processing device 100 may determine the starting node using the starting node information IND11, as shown in the index information group GINF11 in Figure 9. In the example in Figure 9, the information processing device 100 determines the starting node corresponding to query QE1 based on the starting node information IND11. Query QE1 may be a node corresponding to a newly added object or the target of a search using the first graph GR1. In other words, the information processing device 100 determines the starting node using the starting node information IND11 when generating a graph or performing a search.

[0077] Specifically, the information processing device 100 determines the starting node using the starting node information IND11 stored in the memory unit 120 (see Figure 3). For example, based on the query QE1, the information processing device 100 determines (identifies) the starting node that is a candidate for a neighbor of the starting node information IND11 by traversing the starting node information IND11 from top (root RT) to bottom. This allows the information processing device 100 to efficiently determine the starting node corresponding to the search query (query QE1). For example, the information processing device 100 can quickly determine an appropriate starting node corresponding to the target node, query QE1.

[0078] The information processing device 100 may use various starting indexes, not limited to those described above. That is, the starting information (starting index) shown in the example in Figure 9 is just one example, and the information processing device 100 may use various starting information to search for graph information. The information processing device 100 may also generate a starting index used to determine the starting node during a search. For example, the information processing device 100 generates a search index (starting information) for quickly searching high-dimensional vectors. Here, a high-dimensional vector may be, for example, a vector with several hundred to several thousand dimensions, or a vector with even more dimensions. The starting index described above is just one example, and the information processing device 100 may generate a starting index of any data structure as long as it can quickly identify queries in the graph.

[0079] [2. Configuration of the Information Processing System] As shown in Figure 2, the information processing system 1 includes a terminal device 10, an information providing device 50, and an information processing device 100. The terminal device 10, the information providing device 50, and the information processing device 100 are connected to each other via a predetermined network N, either by wired or wireless communication. Figure 2 is a diagram showing an example configuration of the information processing system according to the embodiment. Note that the information processing system 1 shown in Figure 2 may include multiple terminal devices 10, multiple information providing devices 50, and multiple information processing devices 100.

[0080] Terminal device 10 is an information processing device used by the user. Terminal device 10 accepts various operations from the user. In the following, terminal device 10 may be referred to as the user. That is, in the following, the user can be read as terminal device 10. The above-mentioned terminal device 10 can be implemented as, for example, a smartphone, a tablet device, a notebook PC (Personal Computer), a desktop PC, a mobile phone, or a PDA (Personal Digital Assistant).

[0081] The information providing device 50 is an information processing device that stores information for providing various information to users, etc. For example, the information providing device 50 stores object IDs based on character information, etc., collected from various external devices such as web servers. For example, the information providing device 50 is an information processing device that provides image search services to users, etc. For example, the information providing device 50 stores various information for providing image search services. For example, the information providing device 50 provides vector information corresponding to images that are the target of the image search service to the information processing device 100. The information providing device 50 also receives object IDs, etc., indicating images corresponding to queries from the information processing device 100 by sending queries to the information processing device 100.

[0082] The information processing device 100 is an information processing device that generates a second graph using a first graph which includes a single object to be retrieved, multiple nodes corresponding to each of other objects different from the single object, and directed edges connecting the nodes. In other words, the information processing device 100 is a generating device that generates a second graph using the first graph. For example, the information processing device 100 selects a neighbor node located near a single node corresponding to a single object from among the multiple nodes in the first graph. Then, the information processing device 100 adds the single node to the first graph and generates a second graph in which the single node and the neighbor node are connected by directed edges based on connection conditions that are changed according to predetermined conditions regarding the connection of directed edges.

[0083] For example, when the information processing device 100 receives query information (hereinafter also simply referred to as "query") from a terminal device, it searches for an object similar to the query (vector information, etc.) and provides the search results to the terminal device. Furthermore, the data that the information processing device 100 provides to the terminal device may be the data itself, such as image information, or it may be information for referencing corresponding data, such as a URL (Uniform Resource Locator). Also, the query and the data to be searched may be of any type, such as images, audio, or text data. In this embodiment, the case where the information processing device 100 searches for an image will be described as an example.

[0084] [3. Configuration of the Information Processing Device] Next, the configuration of the information processing device 100 according to the embodiment will be described using Figure 3. Figure 3 is a diagram showing an example of the configuration of the information processing device 100 according to the embodiment. As shown in Figure 3, the information processing device 100 has a communication unit 110, a storage unit 120, and a control unit 130. The information processing device 100 may also have an input unit (for example, a keyboard or mouse) that receives various operations from the administrator of the information processing device 100, and a display unit (for example, a liquid crystal display) for displaying various information.

[0085] (Communications Department 110) The communication unit 110 is implemented, for example, by a NIC (Network Interface Card). The communication unit 110 is connected to the network (for example, network N in Figure 2) by wire or wireless connection and transmits and receives information with the terminal device 10 and the information providing device 50.

[0086] (Storage unit 120) The storage unit 120 is implemented by, for example, semiconductor memory elements such as RAM (Random Access Memory) and flash memory, or by storage devices such as hard disks and optical discs. As shown in Figure 3, the storage unit 120 according to this embodiment includes an object information storage unit 121, a condition information storage unit 122, a generation information storage unit 123, a first graph data storage unit 124, a second graph data storage unit 125, a third graph data storage unit 126, and a composite graph data storage unit 127.

[0087] (Object information storage unit 121) The object information storage unit 121 according to this embodiment stores various information about an object. For example, the object information storage unit 121 stores an object ID and vector data. Figure 4 shows an example of the object information storage unit according to this embodiment. The object information storage unit 121 shown in Figure 4 includes items such as "object ID" and "vector information".

[0088] The "Object ID" indicates identification information used to identify an object. The "Vector Information" indicates vector information corresponding to the object identified by the Object ID. In other words, in the example in Figure 4, the vector data (vector information) corresponding to the object is registered and associated with the Object ID that identifies the object.

[0089] For example, in the example in Figure 4, the object (target) identified by ID "OB1" is associated with multidimensional vector information of the form "10, 24, 51, 2...".

[0090] Furthermore, the object information storage unit 121 may store various types of information depending on the purpose, not limited to those mentioned above.

[0091] (Condition information storage unit 122) The condition information storage unit 122 according to this embodiment stores various information related to conditions that make something difficult to search. Figure 5 shows an example of the condition information storage unit according to this embodiment. The condition information storage unit 122 shown in Figure 5 includes items such as "condition ID", "target", "threshold name", and "value".

[0092] The "Condition ID" indicates information that identifies the condition related to searchability. The "Target" indicates the target of the condition identified by the Condition ID. The "Threshold Name" indicates information (name) for identifying the threshold. The "Value" indicates the specific value of the corresponding threshold.

[0093] In the example in Figure 5, the condition identified by condition ID "LCD1" (condition LCD1) is a condition that applies to the number of input edges to a node (in-degree). Condition LCD1 is used as the lower limit of the in-degree, and its value is "ITH1". In other words, condition LCD1 is a condition that determines that a node is difficult to find if its in-degree is less than the lower limit. Note that in the example shown in Figure 5, the value of the "lower limit" is illustrated with an abstract code such as "ITH1", but it should be a specific numerical value such as "2" or "10".

[0094] The condition information storage unit 122 is not limited to the above and may store various types of information depending on the purpose.

[0095] (Generation information storage unit 123) The generation information storage unit 123 according to this embodiment stores various information used for generating the graph. The generation information storage unit 123 stores various information used for generating the second graph. For example, the generation information storage unit 123 stores information for determining the number of input edges to add to the target node in generating the second graph. For example, the generation information storage unit 123 stores a function for determining the number of edges to be added as input edges to the target node. For example, the generation information storage unit 123 stores information indicating whether to use the first method, the second method, or the third method for generating the second graph.

[0096] The generation information storage unit 123 is not limited to the above and may store various types of information depending on the purpose. For example, the generation information storage unit 123 may store information used to determine the search count L in the second and third methods. For example, the generation information storage unit 123 may store a value set as the search count L (for example, a value that is sufficiently larger than the lower limit M).

[0097] (First graph data storage unit 124) The first graph data storage unit 124 according to the embodiment stores various information relating to the first graph data. For example, the first graph data storage unit 124 stores graph data acquired as the graph to be processed. For example, the first graph data storage unit 124 stores graph data of the k-neighboring graph. For example, the first graph data storage unit 124 stores graph data of the approximate k-neighboring graph. For example, the first graph data storage unit 124 stores data of the first graph GR1 in Figure 1.

[0098] Figure 6 shows an example of a graph data storage unit according to the embodiment. The first graph data storage unit 124 shown in Figure 6 has items such as "node ID," "object ID," and "directed edge information." In addition, "directed edge information" includes information such as "edge ID" and "reference destination."

[0099] The "Node ID" indicates identification information used to identify each node (object) in the graph data. The "Object ID" indicates identification information used to identify an object.

[0100] Furthermore, "directed edge information" indicates information about the edges connected to the corresponding node. In the example in Figure 6, "directed edge information" indicates information about the output edges that are output from the corresponding node. "Edge ID" indicates identification information for identifying the edges that connect nodes. "Reference destination" indicates information about the reference destination (node) connected by the edge. In other words, in the example in Figure 6, for each node ID that identifies a node, information identifying the object (target) corresponding to that node and the reference destination (node) to which the directed edge (output edge) from that node is connected are associated and registered.

[0101] In the example in Figure 6, the node identified by node ID "N1" (node ​​N1) corresponds to the object (target) identified by object ID "OB1". Furthermore, the edge identified by edge ID "E1" (edge ​​E1) from node N1 is connected to the node identified by node ID "N2" (node ​​N2). In other words, in the example in Figure 6, node N1 in the graph data can be traced to node N2 via edge E1. Also, the edge identified by edge ID "E4" (edge ​​E4) from node N1 is connected to the node identified by node ID "N5" (node ​​N5). In other words, in the example in Figure 6, node N1 in the graph data can be traced to node N5 via edge E4.

[0102] The first graph data storage unit 124 is not limited to the above and may store various types of information depending on the purpose. For example, the first graph data storage unit 124 may store the length of the edges connecting each node (vector). That is, the first graph data storage unit 124 may store information indicating the distance between each node (vector). Also, for example, the first graph data storage unit 124 may store information indicating the number of input edges to each node.

[0103] Furthermore, the graph data may include a program module that takes a query as input, searches for nodes by traversing edges in the graph data, and extracts and outputs nodes similar to the query. In other words, the graph data may be intended for use as a program module that performs search processing using a graph. For example, the graph data may be a program that, when vector data is input as a query, extracts and outputs nodes from the graph that correspond to vector data similar to that vector data. For example, the graph data may be data used as a program module that searches for similar images corresponding to a query image. For example, the graph data may cause the computer to function so that, based on the input query, it extracts and outputs nodes in the graph that are similar to that query.

[0104] (Second graph data storage unit 125) The second graph data storage unit 125 according to the embodiment stores various information relating to the second graph data. For example, the second graph data storage unit 125 stores the generated second graph data. The second graph data storage unit 125 has items such as "node ID," "object ID," and "directed edge information." The "directed edge information" also includes information such as "edge ID" and "reference destination."

[0105] For example, the second graph data storage unit 125 stores data for the second graph GR11 in Figure 1. In this case, the second graph data storage unit 125 stores information indicating input edges such as E15 from node N3 to node N7. For example, the second graph data storage unit 125 stores data for the second graph GR21 in Figure 1. In this case, the second graph data storage unit 125 stores information indicating input edges such as E25 from node N2 to node N7. For example, the second graph data storage unit 125 stores data for the second graph GR31 in Figure 1. In this case, the second graph data storage unit 125 stores information indicating input edges such as E35 from node N1 to node N7. The second graph data storage unit 125 may also store data for the second graph GR52 in Figure 8.

[0106] The data structure of the second graph stored in the second graph data storage unit 125 is the same as that of the first graph stored in the first graph data storage unit 124, so illustrations and detailed explanations are omitted. Furthermore, the second graph data storage unit 125 may store various types of information depending on the purpose, not limited to the above.

[0107] (Third graph data storage unit 126) The third graph data storage unit 126 according to this embodiment stores various information relating to the third graph data. For example, the third graph data storage unit 126 stores the third graph data generated based on a process that inverts the edges included in the first graph. The third graph data storage unit 126 has items such as "node ID," "object ID," and "directed edge information." The "directed edge information" also includes information such as "edge ID" and "reference target."

[0108] For example, the third graph data storage unit 126 stores data for the third graph GR51 in Figure 8. The third graph data storage unit 126 stores graph information, including edges that have been reversed from the edges of the first graph GR1.

[0109] The data structure of the third graph stored in the third graph data storage unit 126 is the same as that of the first graph stored in the first graph data storage unit 124, so illustrations and detailed explanations are omitted. Furthermore, the third graph data storage unit 126 may store various types of information depending on the purpose, not limited to the above.

[0110] (Composite graph data storage unit 127) The composite graph data storage unit 127 according to this embodiment stores various information related to the composite graph data. For example, the composite graph data storage unit 127 stores the generated composite graph data. The composite graph data storage unit 127 has items such as "node ID," "object ID," and "directed edge information." In addition, the "directed edge information" includes information such as "edge ID" and "reference destination."

[0111] The composite graph data storage unit 127 stores a composite graph in which edges from the second graph are added to the first graph. For example, the composite graph data storage unit 127 stores the data for composite graph GR12 in Figure 1. In this case, the composite graph data storage unit 127 stores information that edges from the second graph GR11 are added to the first graph GR1. For example, the composite graph data storage unit 127 stores the data for composite graph GR22 in Figure 1. In this case, the composite graph data storage unit 127 stores information that edges from the second graph GR21 are added to the first graph GR1. For example, the composite graph data storage unit 127 stores the data for composite graph GR32 in Figure 1. In this case, the composite graph data storage unit 127 stores information that edges from the second graph GR31 are added to the first graph GR1.

[0112] Furthermore, the composite graph data storage unit 127 may store a composite graph in which edges from the second graph are added to the third graph. For example, the composite graph data storage unit 127 stores the data of the composite graph GR53 in Figure 1. In this case, the composite graph data storage unit 127 stores information that edges from the second graph GR52 are added to the third graph GR51.

[0113] The data structure of the composite graph stored in the composite graph data storage unit 127 is the same as that of the first graph stored in the first graph data storage unit 124, so illustrations and detailed explanations are omitted. Furthermore, the composite graph data storage unit 127 may store various types of information depending on the purpose, not limited to the above.

[0114] (Control unit 130) Returning to the explanation of Figure 3, the control unit 130 is a controller, and is realized by executing various programs (corresponding to an example of an information processing program) stored in the memory device inside the information processing device 100 using RAM as the working area, for example, by a CPU (Central Processing Unit), MPU (Micro Processing Unit), GPU (Graphics Processing Unit), etc. Furthermore, the control unit 130 is a controller, and is realized by an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or FPGA (Field Programmable Gate Array).

[0115] As shown in Figure 3, the control unit 130 includes an acquisition unit 131, a selection unit 132, a determination unit 133, a generation unit 134, a search unit 135, and a provision unit 136, and realizes or executes the information processing functions and operations described below. Note that the internal configuration of the control unit 130 is not limited to the configuration shown in Figure 3, and other configurations are also acceptable as long as they perform the information processing described later.

[0116] (Acquisition part 131) The acquisition unit 131 acquires various types of information. For example, the acquisition unit 131 acquires various types of information from the storage unit 120. For example, the acquisition unit 131 acquires various types of information from the object information storage unit 121, the condition information storage unit 122, the generation information storage unit 123, the first graph data storage unit 124, the second graph data storage unit 125, the third graph data storage unit 126, the composite graph data storage unit 127, etc. In addition, the acquisition unit 131 acquires various types of information from external information processing devices.

[0117] The acquisition unit 131 acquires a first graph in which multiple nodes corresponding to each of the multiple objects to be searched for are connected by edges. The acquisition unit 131 acquires condition information indicating the conditions. The acquisition unit 131 acquires the first graph which is the k-neighbor graph. The acquisition unit 131 acquires the first graph which is the approximate k-neighbor graph.

[0118] The acquisition unit 131 acquires the first graph data from the first graph data storage unit 124. For example, the information processing device 100 acquires the first graph GR1 in Figure 1. For example, the information processing device 100 may acquire the first graph data, such as the first graph GR1, from an external device such as the information providing device 50.

[0119] For example, the acquisition unit 131 acquires information related to search queries. For example, the acquisition unit 131 acquires search queries related to image searches. For example, the acquisition unit 131 acquires queries from the terminal device 10 being used. For example, the acquisition unit 131 acquires queries from the information providing device 50 that has received queries from the terminal device 10 being used.

[0120] (Selection section 132) The selection unit 132 selects various information. The selection unit 132 extracts various information. The selection unit 132 selects various information based on the various information stored in the storage unit 120. The selection unit 132 extracts various information based on the various information stored in the storage unit 120.

[0121] The selection unit 132 selects a target node from among multiple nodes that satisfies the conditions related to difficulty in searching. The selection unit 132 selects a target node from among multiple nodes that satisfies the conditions indicated by the condition information. The selection unit 132 selects a target node from among multiple nodes that satisfies the conditions related to the number of connected edges.

[0122] The selection unit 132 selects a node from among multiple nodes that satisfies the condition regarding the in-degree, which is the number of input edges that are input from other edges, as a target node. The selection unit 132 also selects a node from among multiple nodes that satisfies the condition that the in-degree is less than a lower limit as a target node.

[0123] (Decision Section 133) The decision unit 133 determines various information. The decision unit 133 evaluates various information. The decision unit 133 modifies various information. The decision unit 133 updates various information. The decision unit 133 determines various information based on the various information stored in the storage unit 120. The decision unit 133 evaluates various information based on the various information stored in the storage unit 120.

[0124] The determination unit 133 determines the number of additions based on the in-degree of the target node and the lower limit. The determination unit 133 determines the number of additions as the value obtained by subtracting the in-degree of the target node from the lower limit.

[0125] (Generation unit 134) The generation unit 134 generates various types of information. The generation unit 134 modifies various types of information. The generation unit 134 updates various types of information. For example, the generation unit 134 generates various types of information (data) from information (data) stored in the storage unit 120. For example, the generation unit 134 generates various types of information from the object information storage unit 121, the condition information storage unit 122, the generation information storage unit 123, the first graph data storage unit 124, the second graph data storage unit 125, the third graph data storage unit 126, the composite graph data storage unit 127, etc.

[0126] For example, the generation unit 134 generates a composite graph by combining the first graph stored in the first graph data storage unit 124 and the second graph stored in the second graph data storage unit 125, and registers the generated composite graph in the composite graph data storage unit 127. For example, the generation unit 134 generates a composite graph by adding edges from the second graph to the first graph, and registers the generated composite graph in the composite graph data storage unit 127.

[0127] For example, the generation unit 134 generates a composite graph by combining the third graph stored in the third graph data storage unit 126 and the second graph stored in the second graph data storage unit 125, and registers the generated composite graph in the composite graph data storage unit 127. For example, the generation unit 134 generates a composite graph by adding edges from the second graph to the third graph, and registers the generated composite graph in the composite graph data storage unit 127.

[0128] The generation unit 134 generates a second graph in which edges from nodes other than the target node are connected to the target node. The generation unit 134 generates a second graph in which an additional number of input edges, determined based on the in-degree of the target node, are connected to the target node. The generation unit 134 generates a second graph in which an additional number of input edges, determined by the determination unit 133, are connected to the target node.

[0129] The generation unit 134 selects an additional number of nodes as input source nodes based on predetermined criteria and generates a second graph by connecting input edges from each of the input source nodes to the target node. The generation unit 134 randomly selects an additional number of input source nodes and generates a second graph by connecting input edges from each of the input source nodes to the target node.

[0130] The generation unit 134 selects the input source nodes for the number of additional nodes from the group of nodes extracted by the search process, and generates a second graph by connecting input edges from each of the input source nodes to the target node. The generation unit 134 selects the input source nodes for the number of additional nodes from the group of nodes that contain more than the lower limit, and generates a second graph by connecting input edges from each of the input source nodes to the target node.

[0131] The generation unit 134 selects the nodes furthest from the target node from the node group as input source nodes, and generates a second graph by connecting input edges from each of the input source nodes to the target node. The generation unit 134 selects the nodes closest to the target node from the node group as input source nodes, and generates a second graph by connecting input edges from each of the input source nodes to the target node.

[0132] The generation unit 134 generates a composite graph by adding edges included in the second graph to the first graph. The generation unit 134 generates a composite graph by adding edges included in the second graph to the third graph, which is generated based on a process of inverting the edges included in the first graph.

[0133] The generation unit 134 extracts neighboring nodes by searching the first graph using a search process as shown in Figure 10. The generation unit 134 extracts neighboring nodes corresponding to each node included in the first graph by searching the first graph. The generation unit 134 extracts neighboring nodes with a candidate number (search count L, etc.) by searching the first graph. The generation unit 134 extracts neighboring nodes by searching the first graph using a search process as shown in Figure 10.

[0134] The generation unit 134 may also request the search unit 135 to search for information and use the search results obtained by the search unit 135. The generation unit 134 may also extract information from the search results obtained by the search unit 135. The generation unit 134 extracts neighboring nodes corresponding to each node in the second graph by referring to information about neighboring nodes of each node in the second graph.

[0135] For example, the generation unit 134 extracts neighboring nodes of the candidate number by searching the graph using the processing procedure shown in Figure 10. The generation unit 134 searches the first graph GR1 using the processing procedure shown in Figure 10 and extracts a group of nodes containing the candidate number as neighboring nodes of the target node.

[0136] (Search section 135) The search unit 135 provides a search service for objects. The search unit 135 searches for various types of information. The search unit 135 retrieves various types of information. For example, the search unit 135 searches for objects by searching graph data. For example, if a query obtained by the acquisition unit 131 is obtained, the search unit 135 searches for objects similar to the query by searching graph data. For example, the search unit 135 extracts objects similar to the query by searching graph data. For example, the search unit 135 extracts objects similar to the query by searching graph data based on the processing procedure shown in Figure 10. Note that if the search unit 135 does not provide a search service, it is not necessary to have the search unit 135.

[0137] (Provider 136) The information provision unit 136 provides various types of information. For example, the information provision unit 136 provides various types of information to the terminal device 10 and the information provision device 50. For example, the information provision unit 136 provides the object ID corresponding to the query as a search result. For example, the information provision unit 136 provides the object ID retrieved by the search unit 135 to the information provision device 50. For example, the information provision unit 136 provides the object ID extracted by the search unit 135 to the information provision device 50. The information provision unit 136 provides the object ID extracted by the search unit 135 to the information provision device 50 as information indicating a vector corresponding to the query.

[0138] Furthermore, the providing unit 136 may provide the second graph data generated by the generation unit 134 to an external information processing device such as the information providing device 50. The providing unit 136 may also provide the composite graph data generated by the generation unit 134 to an external information processing device such as the information providing device 50.

[0139] [4. Information Processing Flow] Next, the procedure for information processing by the information processing system 1 according to the embodiment will be explained using Figure 7. Figure 7 is a flowchart of an example of information processing according to the embodiment.

[0140] As shown in Figure 7, the information processing device 100 acquires a first graph in which multiple nodes corresponding to each of the multiple objects to be retrieved are connected by edges (step S101). For example, the information processing device 100 acquires the first graph from the information providing device 50.

[0141] Then, the information processing device 100 selects a node from among the multiple nodes that satisfies the condition regarding difficulty of searching as the target node (step S102). For example, the information processing device 100 selects a node from among the multiple nodes of the first graph whose in degree is less than the lower limit as the target node.

[0142] Then, the information processing device 100 generates a second graph in which edges from nodes other than the target node are connected to the target node (step S103). For example, the information processing device 100 generates a second graph in which input edges from input source nodes determined based on predetermined criteria are connected to the target edge.

[0143] [5. Other processing examples] As described above, the target of the synthesis of the second graph is not limited to the first graph, but may be any graph. For example, the target of the synthesis of the second graph may be a third graph (also called "ONNG") generated based on a process that inverts the edges included in the first graph. This point will be explained below with reference to Figure 8, etc. Figure 8 is a diagram showing another example of information processing according to the embodiment. For example, the information processing device 100 may generate ONNG as the third graph after the above-described preparation, and then synthesize the second graph generated by the first to third methods onto this third graph. In the case of ONNG, the in-degree is constant, so the number of added edges is determined based on the in-degree of the ANNG or k-nearest neighbor graph, etc., before ONNG. Regarding the processing method (fourth method) shown in Figure 8, explanations of points similar to those described above will be omitted as appropriate. Also, Figure 8 is a simplified example to explain edge inversion in ONNG, and the third graph is not limited to the example shown in Figure 8.

[0144] For example, when the information processing device 100 targets a third graph such as ONNG, it may generate a composite graph using the above-described pre-preparation #2 and second method #2. In Figure 8, the information processing device 100 generates the third graph GR51 by inverting edges E1 to E14, etc., included in the first graph GR1, as shown in spatial information VS1-11 (step S51). In Figure 8, the symbols "E" are converted to "R" to clearly indicate the correspondence between edges in the first graph GR1 and edges in the third graph GR51. For example, edge R1 in the third graph GR51 is an edge whose orientation is inverted from edge E1 in the first graph GR1. Note that in Figure 8, for explanatory purposes, a graph in which only the inversion process of edges E1 to E14, etc., included in the first graph GR1 has been performed is shown as the third graph GR51, but the information processing device 100 may also perform edge adjustment processes other than the inversion process.

[0145] The information processing device 100 generates a second graph GR52 in which edges from other nodes are connected to node N7 (step S52). In Figure 8, as shown in spatial information VS1-12, the information processing device 100 generates a second graph GR52 in which two input edges to node N7, edges E55 and E56, are added by selecting the farther edge from the group of nodes extracted by the search process.

[0146] Then, the information processing device 100 generates a composite graph by adding edges included in the second graph GR52 to the third graph GR51 (step S53). In Figure 8, as shown in spatial information VS1-13, the information processing device 100 generates a composite graph GR53 by adding edges E55 and E56 included in the second graph GR52 to the third graph GR51. As a result, the information processing device 100 can generate a composite graph to which input edges to nodes that are difficult to search in the first graph have been added, and by using the composite graph, it becomes possible to search using a graph in which the presence of nodes that are difficult to search has been suppressed.

[0147] [6. Search Examples] Here, we show an example of a search using the graph data described above. Note that the search using the generated graph data is not limited to the method described below and may be performed by various procedures. This point will be explained using Figure 10 as an example. Figure 10 is a flowchart of an example of a search process using graph data. The search process described below is performed by the search unit 135 of the information processing device 100. Also, the term "object" below may be read as "node". For example, the information processing device 100 (e.g., the search unit 135) performs the search process. The search query for the process described below may be a target node or an object specified by the user.

[0148] Here, the neighbor object set N(G,y) is the set of neighboring objects associated with node y by the edges assigned to it. "G" may be predetermined graph data (for example, the first graph GR1, etc.). For example, the information processing device 100 performs a k-nearest neighbor search process.

[0149] For example, the information processing device 100 sets the radius r of the hypersphere to ∞ (infinity) (step S300) and extracts a subset S from the existing set of objects (step S301). For example, the information processing device 100 may extract the object (node) selected as the root node as the subset S. Also, for example, the hypersphere is a virtual sphere that indicates the search range. The objects included in the set of objects S extracted in step S301 are simultaneously included in the initial set of the search result set R.

[0150] Next, the information processing device 100 extracts the object with the shortest distance from object y to the search query object among the objects included in the object set S, and identifies it as object s (step S302). For example, if the only object (node) selected as the root node is an element of S, the information processing device 100 extracts the root node as object s. Next, the information processing device 100 removes object s from the object set S (step S303).

[0151] Next, the information processing device 100 determines whether the distance d(s,y) between object s and object y exceeds r(1+ε) (step S304). Here, ε is an extension element, and r(1+ε) is a value that indicates the radius of the search range (only nodes within this range are searched. The accuracy can be improved by making it larger than the search range). If the distance d(s,y) between object s and object y exceeds r(1+ε) (step S304: Yes), the information processing device 100 outputs the object set R as the set of neighboring objects of object y (step S305), and terminates the process.

[0152] If the distance d(s,y) between object s and search query object y does not exceed r(1+ε) (step S304: No), the information processing device 100 selects one object from among the objects that are elements of the neighboring object set N(G,s) of object s that is not included in object set C, and stores the selected object u in object set C (step S306). Object set C is provided for convenience to avoid duplicate searches and is set to an empty set at the start of processing.

[0153] Next, the information processing device 100 determines whether the distance d(u,y) between object u and object y is less than or equal to r(1+ε) (step S307). If the distance d(u,y) between object u and object y is less than or equal to r(1+ε) (step S307: Yes), the information processing device 100 adds object u to the object set S (step S308). If the distance d(u,y) between object u and object y is not less than or equal to r(1+ε) (step S307: No), the information processing device 100 performs the determination (processing) in step S309.

[0154] Next, the information processing device 100 determines whether the distance d(u,y) between object u and object y is less than or equal to r (step S309). If the distance d(u,y) between object u and object y exceeds r, the information processing device 100 performs the determination (processing) in step S315. Also, if the distance d(u,y) between object u and object y is not less than or equal to r (step S309: No), the information processing device 100 performs the determination (processing) in step S315.

[0155] If the distance d(u,y) between object u and object y is less than or equal to r (step S309: Yes), the information processing device 100 adds object u to the object set R (step S310). Then, the information processing device 100 determines whether the number of objects in the object set R exceeds ks (step S311). The predetermined number ks is an arbitrarily determined natural number. For example, ks may be a candidate number. For example, it may be any value such as ks=2. If the number of objects in the object set R does not exceed ks (step S311: No), the information processing device 100 performs the determination (processing) in step S313.

[0156] If the number of objects in the object set R exceeds ks (step S311: Yes), the information processing device 100 removes the object that is furthest from object y from the object set R (step S312).

[0157] Next, the information processing device 100 determines whether the number of objects in the object set R matches ks (step S313). If the number of objects in the object set R does not match ks (step S313: No), the information processing device 100 performs the determination (processing) in step S315. If the number of objects in the object set R matches ks (step S313: Yes), the information processing device 100 sets the distance between the object with the longest (farthest) distance from object y and object y as the new r (step S314).

[0158] Then, the information processing device 100 determines whether it has finished selecting all objects from the elements of the neighboring object set N(G,s) of object s and storing them in the object set C (step S315). If it has not finished selecting all objects from the elements of the neighboring object set N(G,s) of object s and storing them in the object set C (step S315: No), the information processing device 100 returns to step S306 and repeats the process.

[0159] If all objects have been selected from the objects that are elements of the neighboring object set N(G,s) of object s and stored in the object set C (step S315: Yes), the information processing device 100 determines whether the object set S is an empty set (step S316). If the object set S is not an empty set (step S316: No), the information processing device 100 returns to step S302 and repeats the process. If the object set S is an empty set (step S316: Yes), the information processing device 100 outputs the object set R and terminates the process (step S317). For example, the information processing device 100 extracts a number of candidate objects (nodes) included in the object set R as neighboring nodes corresponding to the target node (input object y). For example, the information processing device 100 extracts objects (nodes) included in the object set R as a group of nodes corresponding to the target node (input object y). Alternatively, for example, the information processing device 100 may provide the objects (nodes) included in the object set R as search results corresponding to the search query (input object y) to the terminal device that performed the search.

[0160] [7. Effects] As described above, the information processing device 100 according to the embodiment includes an acquisition unit 131, a selection unit 132, and a generation unit 134. The acquisition unit 131 acquires a first graph in which multiple nodes corresponding to each of the multiple objects to be searched are connected by edges. The selection unit 132 selects from the multiple nodes that satisfy the conditions regarding difficulty of searching as target nodes. The generation unit 134 generates a second graph in which edges from the multiple nodes other than the target node are connected to the target node.

[0161] Thus, the information processing device 100 according to the embodiment can generate a graph in which edges are connected to nodes that satisfy the conditions by generating a second graph in which edges from other nodes other than the target node that satisfies the conditions regarding difficulty in searching are connected to the target node.

[0162] Furthermore, in the information processing device 100 according to this embodiment, the acquisition unit 131 acquires condition information indicating conditions. The selection unit 132 selects a target node from among a plurality of nodes that satisfies the conditions indicated by the condition information.

[0163] As a result, the information processing device 100 according to the embodiment can generate a second graph by selecting target nodes that satisfy the conditions indicated by the condition information from among a plurality of nodes and generating a second graph, thereby generating a graph in which edges are connected to the nodes that satisfy the conditions.

[0164] Furthermore, in the information processing device 100 according to the embodiment, the selection unit 132 selects a node from among a plurality of nodes that satisfies the condition regarding the number of connected edges as a target node.

[0165] As a result, the information processing device 100 according to the embodiment can generate a second graph by selecting a node that satisfies the condition regarding the number of connected edges from among a plurality of nodes and generating a second graph, thereby generating a graph in which edges are connected to the node that satisfies the condition.

[0166] Furthermore, in the information processing device 100 according to the embodiment, the selection unit 132 selects a node from among a plurality of nodes that satisfies a condition regarding the in-degree, which is the number of input edges that are input from other edges, as a target node.

[0167] As a result, the information processing device 100 according to the embodiment can generate a second graph by selecting a node that satisfies a condition regarding the in-degree, which is the number of input edges that are input from other edges, from among a plurality of nodes, and generating the second graph, thereby generating a graph in which edges are connected to the node that satisfies the condition.

[0168] Furthermore, in the information processing device 100 according to this embodiment, the selection unit 132 selects a node from among a plurality of nodes that satisfies the condition that the in-degree is less than a lower limit as a target node.

[0169] As a result, the information processing device 100 according to the embodiment can generate a second graph by selecting nodes that satisfy the condition that the in-degree is less than a lower limit from among a plurality of nodes and generating a second graph, thereby generating a graph in which edges are connected to nodes that satisfy the condition.

[0170] Furthermore, in the information processing device 100 according to the embodiment, the generation unit 134 generates a second graph in which an additional number of input edges, determined based on the in-degree of the target node, are connected to the target node.

[0171] As a result, the information processing device 100 according to the embodiment can generate a second graph in which an additional number of input edges, determined based on the in-degree of the target node, are connected to the target node, thereby generating a graph in which edges are connected to nodes that satisfy the conditions.

[0172] Furthermore, the information processing device 100 according to this embodiment includes a determination unit 133. The determination unit 133 determines the number of additions based on the in-degree and lower limit of the target node. The generation unit 134 generates a second graph by connecting the input edges of the number of additions determined by the determination unit 133 to the target node.

[0173] As a result, the information processing device 100 according to the embodiment can generate a graph in which edges are connected to nodes that satisfy the conditions by determining the number of additions based on the in-degree and lower limit of the target node.

[0174] Furthermore, in the information processing device 100 according to the embodiment, the determination unit 133 determines the additional number to be a value obtained by subtracting the in-degree of the target node from the lower limit.

[0175] As a result, the information processing device 100 according to the embodiment can generate a graph in which edges are connected to nodes that satisfy the conditions by determining the additional number as a value obtained by subtracting the in-degree of the target node from the lower limit.

[0176] Furthermore, in the information processing device 100 according to the embodiment, the generation unit 134 selects an additional number of nodes as input source nodes based on predetermined criteria, and generates a second graph by connecting input edges from each of the input source nodes to the target node.

[0177] As a result, the information processing device 100 according to the embodiment can generate a graph in which edges are connected to nodes that satisfy the conditions by connecting input edges from each of the selected input source nodes to the target node.

[0178] Furthermore, in the information processing device 100 according to the embodiment, the generation unit 134 randomly selects an additional number of input source nodes and generates a second graph by connecting input edges from each of the input source nodes to the target node.

[0179] As a result, the information processing device 100 according to the embodiment can generate a graph in which edges are connected to nodes that satisfy the conditions by connecting input edges from each of the randomly selected input source nodes to the target node.

[0180] Furthermore, in the information processing device 100 according to the embodiment, the generation unit 134 selects an additional number of input source nodes from the group of nodes extracted by the search process, and generates a second graph by connecting input edges from each of the input source nodes to the target node.

[0181] As a result, the information processing device 100 according to the embodiment can generate a graph in which edges are connected to nodes that satisfy the conditions by connecting input edges from each of the input source nodes selected from the group of nodes extracted by the search process to the target node.

[0182] Furthermore, in the information processing device 100 according to the embodiment, the generation unit 134 selects an additional number of input source nodes from a group of nodes that includes more than a lower limit, and generates a second graph by connecting input edges from each of the input source nodes to the target node.

[0183] As a result, the information processing device 100 according to the embodiment can generate a graph in which edges are connected to nodes that satisfy the conditions by connecting input edges from each of the input source nodes selected from a group of nodes including a number of nodes greater than the lower limit to the target node.

[0184] Furthermore, in the information processing device 100 according to the embodiment, the generation unit 134 selects an additional number of nodes from the node group, starting from the nodes furthest from the target node, as input source nodes, and generates a second graph by connecting input edges from each of the input source nodes to the target node.

[0185] As a result, the information processing device 100 according to the embodiment can generate a graph in which edges are connected to nodes that satisfy the conditions by connecting input edges from each of the additional input source nodes, starting from the one furthest from the target node, to the target node.

[0186] Furthermore, in the information processing device 100 according to the embodiment, the generation unit 134 selects an additional number of nodes from the node group, starting with those closest to the target node, as input source nodes, and generates a second graph by connecting input edges from each of the input source nodes to the target node.

[0187] As a result, the information processing device 100 according to the embodiment can generate a graph in which edges are connected to nodes that satisfy the conditions by connecting input edges from each of the additional number of input source nodes, starting from the closest to the target node, to the target node.

[0188] Furthermore, in the information processing device 100 according to the embodiment, the generation unit 134 generates a composite graph by adding edges included in the second graph to the first graph.

[0189] As a result, the information processing device 100 according to the embodiment can generate a composite graph by adding edges included in the second graph to the first graph, thereby generating a graph in which edges are connected to nodes that satisfy the conditions.

[0190] Furthermore, in the information processing device 100 according to the embodiment, the generation unit 134 generates a composite graph by adding edges included in the second graph to the third graph, which is generated based on a process of inverting edges included in the first graph.

[0191] As a result, the information processing device 100 according to the embodiment can generate a composite graph by adding edges included in the second graph to the third graph, thereby generating a graph in which edges are connected to nodes that satisfy the conditions.

[0192] Furthermore, in the information processing device 100 according to the embodiment, the acquisition unit 131 acquires a first graph which is a k-neighbor graph.

[0193] As a result, the information processing device 100 according to the embodiment can generate a second graph by selecting target nodes from among a plurality of nodes, targeting the k-nearest neighbor graph, and generating a second graph, thereby creating a graph in which edges are connected to nodes that satisfy the conditions.

[0194] Furthermore, in the information processing device 100 according to the embodiment, the acquisition unit 131 acquires a first graph which is an approximate k-neighbor graph.

[0195] As a result, the information processing device 100 according to the embodiment can generate a second graph by selecting target nodes from among a plurality of nodes, targeting the approximate k-nearest neighbor graph, and generating a second graph, thereby creating a graph in which edges are connected to nodes that satisfy the conditions.

[0196] [8. Hardware Configuration] The information processing device 100 according to the above-described embodiment is realized by a computer 1000 having a configuration such as that shown in Figure 11. Figure 11 is a hardware configuration diagram showing an example of a computer that realizes the functions of the information processing device. The computer 1000 has a CPU 1100, RAM 1200, ROM (Read Only Memory) 1300, HDD (Hard Disk Drive) 1400, communication interface (I / F) 1500, input / output interface (I / F) 1600, and media interface (I / F) 1700.

[0197] The CPU 1100 operates based on programs stored in the ROM 1300 or HDD 1400, controlling various components. The ROM 1300 stores boot programs executed by the CPU 1100 when the computer 1000 starts up, as well as programs that depend on the computer 1000's hardware.

[0198] The HDD1400 stores programs executed by the CPU1100, as well as data used by such programs. The communication interface1500 receives data from other devices via the network N and sends it to the CPU1100, and transmits data generated by the CPU1100 to other devices via the network N.

[0199] The CPU 1100 controls output devices such as displays and printers, and input devices such as keyboards and mice, via the input / output interface 1600. The CPU 1100 acquires data from input devices via the input / output interface 1600. The CPU 1100 also outputs the generated data to output devices via the input / output interface 1600.

[0200] The media interface 1700 reads a program or data stored in the recording medium 1800 and provides it to the CPU 1100 via the RAM 1200. The CPU 1100 loads the program from the recording medium 1800 onto the RAM 1200 via the media interface 1700 and executes the loaded program. The recording medium 1800 is, for example, an optical recording medium such as a DVD (Digital Versatile Disc) or PD (Phase Change Rewritable Disk), a magneto-optical recording medium such as an MO (Magneto-Optical disk), a tape medium, a magnetic recording medium, or a semiconductor memory.

[0201] For example, when computer 1000 functions as an information processing device 100 according to the embodiment, the CPU 1100 of computer 1000 realizes the functions of the control unit 130 by executing a program loaded on RAM 1200. The CPU 1100 of computer 1000 reads and executes these programs from the recording medium 1800, but as another example, these programs may be obtained from other devices via a network N.

[0202] Although some embodiments of the present invention have been described in detail above with reference to the drawings, these are illustrative examples, and the present invention can be implemented in various other forms with modifications and improvements based on the knowledge of those skilled in the art, starting with the embodiments described in the disclosure lines of the invention.

[0203] [9. Other] Furthermore, among the processes described in the above embodiments, all or part of the processes described as being performed automatically can be performed manually, or all or part of the processes described as being performed manually can be performed automatically by known methods. In addition, the processing procedures, specific names, and various data and parameters shown in the above document and drawings can be changed at will unless otherwise specified. For example, the various information shown in each figure is not limited to the information shown.

[0204] Furthermore, the components of each illustrated device are functionally conceptual and do not necessarily need to be physically configured as shown. In other words, the specific forms of distribution and integration of each device are not limited to those shown, and all or part of them can be functionally or physically distributed and integrated in any unit according to various loads and usage conditions.

[0205] Furthermore, the processes described in each of the embodiments described above can be combined as appropriate, provided that the processing content is not contradictory.

[0206] Furthermore, the terms "section, module, unit" mentioned above can be replaced with "means" or "circuit," etc. For example, the acquisition unit can be replaced with acquisition means or acquisition circuit. [Explanation of Symbols]

[0207] 1. Information Processing System 100 Information Processing Devices 121 Object Information Storage Unit 122 Condition information storage unit 123 Generation information storage unit 124 First Graph Data Storage Unit 125 Second Graph Data Storage Unit 126 Third Graph Data Storage Unit 127 Composite Graph Data Storage Unit 130 Control Unit 131 Acquisition Department 132 Selection Section 133 Decision Section 134 Generation part 135 Search Section 136 Provision Department 10 Terminal devices 50 Information provision device N Network

Claims

1. An acquisition unit acquires a first graph in which multiple nodes corresponding to each of the multiple objects that are the target of data retrieval are connected by edges, A selection unit that selects a node from among the aforementioned plurality of nodes that satisfies the conditions related to difficulty in searching as a target node, A generation unit that generates a second graph in which edges from nodes other than the target node among the plurality of nodes are connected to the target node, Equipped with, The generating unit is A composite graph is generated by adding the edges contained in the second graph to the first graph. An information processing device characterized by the following:

2. An acquisition unit that acquires a first graph in which multiple nodes corresponding to each of multiple objects that are the target of data retrieval are connected by edges, A selection unit that selects a node from among the aforementioned plurality of nodes that satisfies the conditions related to difficulty in searching as a target node, A generation unit that generates a second graph in which edges from nodes other than the target node among the plurality of nodes are connected to the target node, Equipped with, The generating unit is A composite graph is generated by adding the edges included in the second graph to the third graph, which is generated based on the process of inverting the edges included in the first graph. An information processing device characterized by the following:

3. The acquisition unit is, Obtain conditional information indicating the aforementioned conditions, The aforementioned selection unit is Select the target node from the plurality of nodes that satisfies the conditions indicated by the condition information. The information processing apparatus according to feature 1.

4. The aforementioned selection unit is Of the aforementioned plurality of nodes, the node that satisfies the aforementioned condition regarding the number of connected edges is selected as the target node. The information processing apparatus according to feature 1.

5. The aforementioned selection unit is Among the aforementioned plurality of nodes, the node that satisfies the aforementioned condition regarding the in-degree, which is the number of input edges that are input from other edges, is selected as the target node. The information processing apparatus according to feature 4.

6. The aforementioned selection unit is Among the plurality of nodes, the node that satisfies the condition that the in-degree is less than the lower limit is selected as the target node. The information processing apparatus according to feature 5.

7. The generating unit is The second graph is generated by connecting an additional number of input edges, determined based on the pre-entry order of the target node, to the target node. The information processing apparatus according to feature 6.

8. A determination unit that determines the number of additions based on the number of entries in the preceding entry of the target node and the lower limit value. Furthermore, The generating unit is The second graph is generated by connecting the additional number of input edges determined by the determination unit to the target node. The information processing apparatus according to feature 7.

9. The aforementioned determination unit, The additional number is determined by subtracting the number of entries prior to the target node from the lower limit. The information processing apparatus according to feature 8.

10. The generating unit is The second graph is generated by selecting the aforementioned additional nodes as input source nodes based on predetermined criteria and connecting input edges from each of the input source nodes to the target node. The information processing apparatus according to feature 7.

11. The generating unit is The second graph is generated by randomly selecting the additional number of input source nodes and connecting input edges from each of the input source nodes to the target node. The information processing apparatus according to feature 10.

12. The generating unit is The second graph is generated by selecting the number of input source nodes from the group of nodes extracted through the search process, and connecting input edges from each of the input source nodes to the target node. The information processing apparatus according to feature 10.

13. The generating unit is The second graph is generated by selecting the additional number of input source nodes from the group of nodes, which includes a number of nodes greater than the lower limit, and connecting input edges from each of the input source nodes to the target node. The information processing apparatus according to feature 12.

14. The generating unit is The second graph is generated by selecting the additional number of nodes from the group of nodes furthest from the target node as the input source nodes, and connecting input edges from each of the input source nodes to the target node. The information processing apparatus according to feature 12.

15. The generating unit is The second graph is generated by selecting the number of additional nodes from the group of nodes closest to the target node as the input source nodes, and connecting input edges from each of the input source nodes to the target node. The information processing apparatus according to feature 12.

16. The acquisition unit is, Obtain the first graph, which is a k-neighbor graph. The information processing apparatus according to feature 1.

17. The acquisition unit is, Obtain the first graph, which is an approximate k-neighborhood graph. The information processing apparatus according to feature 1.

18. A method of information processing performed by a computer, The acquisition process involves obtaining a first graph in which multiple nodes, each corresponding to one of the multiple objects to be searched, are connected by edges, and A selection step of selecting a target node from among the aforementioned multiple nodes that satisfies the conditions regarding difficulty in searching, A generation step of generating a second graph in which edges from nodes other than the target node among the plurality of nodes are connected to the target node, Includes, The aforementioned generation step is A composite graph is generated by adding the edges contained in the second graph to the first graph. An information processing method characterized by the following:

19. The acquisition procedure involves obtaining a first graph in which multiple nodes, each corresponding to one of the multiple objects targeted for data retrieval, are connected by edges, and A selection procedure for selecting a target node from among the aforementioned multiple nodes that satisfies the conditions regarding difficulty in searching, A generation procedure for generating a second graph in which edges from nodes other than the target node among the plurality of nodes are connected to the target node, Have the computer run it, The aforementioned generation procedure is: A composite graph is generated by adding the edges contained in the second graph to the first graph. An information processing program characterized by the following features.

20. A computer-based information processing method, The acquisition process involves obtaining a first graph in which multiple nodes, each corresponding to one of the multiple objects to be searched, are connected by edges, and A selection step of selecting a target node from among the aforementioned multiple nodes that satisfies the conditions regarding difficulty in searching, A generation step of generating a second graph in which edges from nodes other than the target node among the plurality of nodes are connected to the target node, including, The aforementioned generation step is A composite graph is generated by adding the edges included in the second graph to the third graph, which is generated based on the process of inverting the edges included in the first graph. An information processing method characterized by the following:

21. A procedure for obtaining a first graph in which multiple nodes corresponding to each of multiple objects that are the target of data retrieval are connected by edges, A selection procedure for selecting a target node from among the aforementioned multiple nodes that satisfies the conditions regarding difficulty in searching, A generation procedure for generating a second graph in which edges from nodes other than the target node among the plurality of nodes are connected to the target node, Have the computer run it, The aforementioned generation procedure is: A composite graph is generated by adding the edges included in the second graph to the third graph, which is generated based on the process of inverting the edges included in the first graph. An information processing program characterized by the following features.