Information processor, information processing method, and information processing program

The information processing apparatus addresses the issue of node order in graph generation by using selection criteria for object addition, resulting in improved search performance and appropriate graph structures.

JP2025083121APending Publication Date: 2025-05-30LY CORP
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2023196820
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-11-20
Publication Date
2025-05-30

AI Technical Summary

Technical Problem

Conventional techniques for generating graphs in information processing do not consider the order of adding nodes, which can result in undesired graph structures and affect search performance.

Method used

An information processing apparatus that generates a graph by obtaining reference information indicating the selection order criterion for objects to be added, selects an unselected object based on this criterion, adds a node corresponding to the selected object, and executes a registration process to connect neighboring nodes with edges.

Benefits of technology

The proposed solution allows for the generation of graphs that take into account the order of adding nodes, thereby improving search performance and ensuring the creation of appropriate graph structures.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025083121000001_ABST
    Figure 2025083121000001_ABST
Patent Text Reader

Abstract

To generate a graph in consideration of the order of adding nodes.SOLUTION: An information processor includes an acquisition section and a generation section. The acquisition section acquires object information indicating a plurality of objects to be retrieved and reference information serving as a reference of a selection order of objects to be added to a graph from the plurality of objects when generating the graph in which a plurality of nodes corresponding to each of the plurality of objects are connected by edges. The generation section generates the graph by executing registration processing of selecting one unselected object among the plurality of objects on the basis of the reference of the selection order indicated by the reference information, adding one node corresponding to the selected one object to the graph, and connecting a neighbor node of the one node extracted by retrieval processing of retrieving from the graph and the one node by an edge.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, a technique for generating graph data in which nodes corresponding to search targets are connected by edges in order to perform a search for a predetermined target has been provided. Further, such a technique is used for, for example, image search and the like.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Patent Document 2

Patent Document 3

Summary of the Invention

Problems to be Solved by the Invention

[0004] However, there is room for improvement in the above conventional techniques. For example, in the above conventional techniques, the order of adding nodes corresponding to objects is not particularly considered, and it may be difficult to generate a desired graph depending on the order of adding nodes. Therefore, there is room for improvement in the conventional techniques from the viewpoint of the order of adding nodes, and it is desired to generate a graph in consideration of the order of adding nodes.

[0005] The present application has been made in view of the above, and an object thereof is to provide an information processing apparatus, an information processing method, and an information processing program that generate a graph in consideration of the order of adding nodes.

Means for Solving the Problems

[0006] The information processing apparatus according to the present application, when generating a graph in which a plurality of nodes corresponding to each of the plurality of objects to be searched are connected by edges, obtains, from the plurality of objects, reference information that serves as a criterion for the selection order of the objects to be added to the graph, and based on the criterion of the selection order indicated by the reference information, selects one unselected object from the plurality of objects, adds one node corresponding to the selected object to the graph, and executes a registration process of connecting between the neighboring nodes of the one node extracted by a search process of searching the graph and the one node with the edge, thereby generating the graph.

Advantages of the Invention

[0007] According to one aspect of the embodiment, there is an effect that a graph can be generated in consideration of the addition order of nodes.

Brief Description of the Drawings

[0008]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Mode for Carrying Out the Invention

[0009] Hereinafter, embodiments for implementing the information processing apparatus, information processing method, and information processing program according to the present application (hereinafter referred to as "embodiments") will be described in detail with reference to the drawings. Note that the information processing apparatus, information processing method, and information processing program according to the present application are not limited by this embodiment. In addition, the same parts in the following embodiments are denoted by the same reference numerals, and redundant descriptions are omitted.

[0010] (Embodiment) [1. Information Processing] Using FIG. 1, an example of information processing according to an embodiment will be described. FIG. 1 is a diagram showing an example of information processing according to an embodiment. In FIG. 1, based on the criterion for the selection order of the objects to be added to the graph by the information processing apparatus 100 (see FIG. 3) (hereinafter simply referred to as "criterion"), among a plurality of objects, one unselected object is selected, and the node corresponding to the selected object (hereinafter also referred to as "added node") is sequentially added to the graph data (simply referred to as "graph") by a process (also referred to as "sequential registration process") of adding, and the case of generating a graph is shown. In FIG. 1, as an example of the criterion for the selection order of objects, the case where the distance between each object and other objects is used will be described. Note that the criterion described in FIG. 1 is merely an example of the criterion for the selection order of objects, and various criteria may be used, which will be described later.

[0011] Also, in FIG. 1, the case where the target information (object) is vectorized and a graph (graph index) is generated for the vectorized object is shown. That is, in FIG. 1, the case where the information processing apparatus 100 processes the vector as an object value corresponding to the object is shown.

[0012] Note that the information used by the information processing apparatus 100 is not limited to vectors, and any form of information may be used 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 data is defined, not limited to vectors. Also, hereinafter, 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] In addition, the addition of a node corresponding to an object as referred to herein to the graph may be regarded as registration and re-reading to the graph of the node corresponding to the object. That is, the addition of a node may be registration and re-reading of the node. The addition of a node corresponding to an object performed by the information processing apparatus 100, that is, the addition of a node, may be to register (store) the node corresponding to the object in the graph information storage unit 123 (see FIG. 6).

[0014] FIG. 1 shows a case where the information processing apparatus 100 generates graph information for information (nodes) corresponding to each vector obtained by vectorizing a data search target (object). That is, FIG. 1 shows a case where the information processing apparatus 100 processes a vector as a node value corresponding to a node. Each node corresponds to each object. For example, each of a plurality of local feature amounts extracted from an image may be an object. Further, for example, various data in which the distance between objects is defined may be an object.

[0015] The information processing apparatus 100 performs graph generation processing on nodes corresponding to a huge amount of image information (for example, several million to several billion, etc.) within the range that the information processing apparatus 100 can process. However, only a part of it is illustrated in the drawing. In FIG. 1, for the sake of simplicity of explanation, only nodes corresponding to some of the plurality of objects are illustrated to explain the outline of the processing. In FIG. 1, the information processing apparatus 100 sequentially adds nodes N1, etc. and edges E1, etc. in accordance with the addition of a node corresponding to an object to the graph of the node corresponding to the object, and executes sequential registration processing for generating the graph GR11, starting from a state where there is nothing, that is, a state where the number of nodes is 0 and the number of edges is also 0. 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".

[0016] Also, when the above describes "edge E* (* is an arbitrary numerical value)", 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". In FIG. 1, the information processing apparatus 100 generates graph information by connecting nodes with undirected edges (also simply referred to as "edges"). Here, the undirected edge means an edge that can traverse data bidirectionally between the connected nodes. For example, with the edge E1 connecting node N1 and node N2, it is possible to traverse bidirectionally between node N1 and node N2. That is, with edge E1, it is possible to traverse from node N1 to node N2, and with edge E1, it is also possible to traverse from node N2 to node N1.

[0017] Note that the edges of the graph are not limited to undirected edges and may be directed edges. In the case of a directed edge, it can only be traversed from the node that is the reference source of the directed edge to the reference destination node. For example, when two nodes are connected by two directed edges, one with one node as the reference source (output source) and the other as the reference destination (input destination), and the other with one node as the reference destination and the other as the reference source, the state is the same as when the two nodes are connected by an undirected (bidirectional) edge. For example, the number of times a node is the reference source (output source) of a directed edge is the out-degree of that node. For example, the number of times a node is the reference destination (input destination) of a directed edge is the in-degree of that node.

[0018] Also, the spatial information VS1-1 to VS1-6 shown in FIG. 1 is a diagram schematically showing the generation process of graph data, and the spaces shown in the spatial information VS1-1 to VS1-6 may be the same space. Also, hereinafter, when explaining the spatial information VS1-1 to VS1-6 without particular distinction, it is described as spatial information VS1.

[0019] Each of the circles (〇) in the spatial information VS1 of FIG. 1 represents each node. In the spatial information VS1 of FIG. 1, mainly the nodes related to the explanation are labeled, but each of the unlabeled circles (〇) is also a node, and there are many nodes other than those shown in the figure. Each node corresponds to each object. Also, the lines (straight lines) connecting the circles (〇) in the spatial information VS1 represent each edge. When the edge is a directed edge, for example, it becomes an arrow line with the circle (〇) corresponding to the reference source (output source) node as the arrowhead and the circle (〇) corresponding to the reference destination (input destination) node as the arrow tip.

[0020] Also, the spatial information VS1 in FIG. 1 may be a Euclidean space. Also, the spatial information VS1 shown in FIG. 1 is a conceptual diagram for the explanation of the distance between vectors and the like, and the spatial information VS1 is a multi-dimensional space. For example, although the spatial information VS1 shown in FIG. 1 is illustrated in a two-dimensional form for illustration on a plane, it is assumed to be a multi-dimensional space such as 100 dimensions or 1000 dimensions.

[0021] Also, the graphs GR11-1 to GR11-6 shown in FIG. 1 are diagrams schematically showing the generation process of graph data, and the graphs GR11-1 to GR11-6 are the same graph data generated by information processing. Also, hereinafter, when explaining the graphs GR11-1 to GR11-6 without particular distinction, they will be described as graph GR11.

[0022] In this embodiment, the distance between each node in the spatial information VS1 is set as the similarity between the corresponding objects. For example, assume that the similarity of the objects (image information) corresponding to each node is mapped as the distance between the nodes in the spatial information VS1. For example, assume that the similarity between the concepts corresponding to each node is mapped as the distance between each node. Here, in the example shown in FIG. 1, the similarity between the objects with a short distance between each node in the spatial information VS1 is high, and the similarity between the objects with a long distance between each node in the spatial information VS1 is low. For example, in the spatial information VS1 in FIG. 1, the node (node N4) identified by the node ID "N4" and the node (node N7) identified by the node ID "N7" are close, that is, the distance is short. Therefore, it indicates that the similarity between the object corresponding to the node identified by the node ID "N4" and the object corresponding to the node identified by the node ID "N7" is high.

[0023] Also, for example, in the spatial information VS1 in FIG. 1, the node identified by the node ID "N2" and the node identified by the node ID "N5" are remote, that is, the distance is long. Therefore, it indicates that the similarity between the object corresponding to the node identified by the node ID "N2" and the object corresponding to the node identified by the node ID "N5" is low. Note that the distance as an index indicating the similarity may be any distance as long as it can be applied as the distance between vectors (N-dimensional vectors). For example, various distances such as Euclidean distance, Mahalanobis distance, and cosine distance may be used.

[0024] Also, in FIG. 1, the information processing apparatus 100 selects an unselected object among a plurality of objects by sequential registration processing, adds a node (additional node) corresponding to the selected object to the graph GR11, and generates the graph GR11 by connecting the nodes with edges. For example, when generating the graph GR11 or when performing a search using the graph GR11, the same processing as that for the graph-structured index is performed, but the starting position (starting point) may start from a node (hereinafter also referred to as the "starting node") determined using predetermined starting point information (hereinafter also referred to as the "starting point index"). Also, for example, when performing a search using the graph GR11 generated by the information processing apparatus 100, the search may be performed starting from a predetermined starting node. For example, at the time of generation or search, if the starting node is node N7, nodes N1 to N6, etc. may be searched by following the edges from node N7. Note that examples of processing using the starting point index and the starting node will be described later.

[0025] 〔1-1. Information Processing Example〕 Hereinafter, an example of the information processing executed by the information processing apparatus 100 will be described with reference to FIG. 1. Specifically, FIG. 1 shows an example of graph generation by the sequential registration processing of the information processing apparatus 100. Note that each step shown in FIG. 1 is a convenient step for explaining the graph generation process, and the actual processing may include processing earlier than or more detailed than this. The information processing performed by the information processing apparatus 100 may have any processing flow as long as the graph GR11 as shown in the graph GR11-6 in FIG. 1 is generated.

[0026] Also, in FIG. 1, as an example, the case where a reference (reference CR11) identified by the reference ID "CR11" among the references stored in the reference information storage unit 122 (see FIG. 5) is used will be described. For example, the reference CR11 is a reference for the selection order (registration order) indicating that for an object (vector data), the N objects in the vicinity of the object are selected in descending order of the average of the distances. Note that N can be set to any number, and may be any number such as 5, 10, etc.

[0027] First, the information processing apparatus 100 generates information for determining a selection order for an object group that is a target of graph generation. In FIG. 1, the information processing apparatus 100 generates information for determining a selection order for a plurality of objects (hereinafter also simply referred to as "the plurality of objects") stored in the object information storage unit 121 (see FIG. 4) as a target of graph generation.

[0028] For example, for each object (also referred to as "vector data o"), the information processing apparatus 100 acquires N objects (also referred to as "neighboring vector data") in the vicinity of the object (vector data o), and calculates an average distance dav that is the average of the distances between the N objects (neighboring vector data) and the vector data o. Then, the information processing apparatus 100 determines to register in descending order of the average distance dav. That is, the information processing apparatus 100 determines to register in order from the one with the longer (larger value) average distance dav.

[0029] Note that the information processing apparatus 100 may determine (specify) the N objects (neighboring vector data) for each object (vector data o) by an arbitrary process. The information processing apparatus 100 may acquire information indicating the N objects (neighboring vector data) for each object (vector data o) by linear search, or may use a graph or other neighborhood search index. For example, when using a graph, it is possible to generate an index at high speed by suppressing the number of edges at the time of graph generation.

[0030] For example, the information processing apparatus 100 determines the selection order of each object by assigning a selection order (registration order) in descending order of the average distance dav. In FIG. 1, when the average distance dav of the object OB8 is the longest among a plurality of objects, the information processing apparatus 100 determines that the registration order of the object OB8 is "1". For example, the information processing apparatus 100 determines that the object OB5 with the second-longest average distance dav has a registration order of "2", and the object OB72 with the third-longest average distance dav has a registration order of "3". The information processing apparatus 100 determines the registration order of the fourth and subsequent ones based on the order of the average distance dav in the same manner.

[0031] In the example shown below, for the sake of simplicity, the case where the number of edges connected to the added node is "1" when adding an additional node is shown. That is, in FIG. 1, the information processing apparatus 100 generates a graph including the additional node by adding an edge connecting between the added additional node and one node. For example, the information processing apparatus 100 has a search number indicating the number of nodes connected to the additional node as "1", and based on this information, for the additional node, it performs a search process and adds an edge for connecting between the one node extracted by the search process and the additional node. Note that the search number is not limited to "1", and may be various values such as "2" or "10".

[0032] The information processing apparatus 100 may execute a process (also referred to as a "search process") of extracting nodes (also referred to as "neighboring nodes") located in the vicinity of the additional node from the graph being generated by the sequential registration process. For example, the information processing apparatus 100 performs a k-nearest neighbor search as the search process. The information processing apparatus 100 performs a search process of extracting k nodes as neighboring nodes. The information processing apparatus 100 generates (updates) the graph by connecting the neighboring nodes extracted by the search process and the additional node with edges.

[0033] First, the information processing apparatus 100 executes a registration process targeting the object with the registration order of "1" among the plurality of objects (step S11). In FIG. 1, the information processing apparatus 100 executes a registration process targeting the object OB8 determined to have the earliest registration order of "1" among the unselected objects among the plurality of objects. The information processing apparatus 100 executes the registration process using the node corresponding to the object OB8 determined to have the registration order of "1" as the node N1. For example, the information processing apparatus 100 registers (stores) the node N1 corresponding to the object identified by the object ID "OB8" in the graph information storage unit 123.

[0034] Note that in FIG. 1, for the sake of explanation, N1 to N7 corresponding to the addition order are described as an example of the node ID, but the node ID may not correspond to the addition order, and for example, the object ID may be used. In FIG. 1, since the node N1 is the first node, the information processing apparatus 100 newly generates the graph GR11 including the node N1. Also, after step S11, since there is only one node, the node N1, in the graph GR11, no edge is added to the graph GR11.

[0035] Next, the information processing apparatus 100 executes a registration process targeting the object with the registration order of "2" among the plurality of objects (step S12). In FIG. 1, the information processing apparatus 100 executes a registration process targeting the object OB5 determined to have the earliest registration order of "2" among the unselected objects among the plurality of objects. The information processing apparatus 100 executes the registration process using the node corresponding to the object OB5 determined to have the registration order of "2" as the node N2.

[0036] For example, the information processing apparatus 100 registers (stores) in the graph information storage unit 123 a node N2 corresponding to an object identified by the object ID "OB5". Then, the information processing apparatus 100 adds an edge. In FIG. 1, the information processing apparatus 100 generates a graph such that one edge is connected to the added node N2. The information processing apparatus 100 generates a graph GR11-1 by adding an edge connected to the added node N2 as shown in the spatial information VS1-1.

[0037] In FIG. 1, since there is only node N1 other than node N2 in the graph GR11, the information processing apparatus 100 generates a graph GR11-1 by adding an edge E1 connecting node N1 and node N2.

[0038] Next, the information processing apparatus 100 executes a registration process for an object whose registration order is "3" among a plurality of objects (step S13). In FIG. 1, the information processing apparatus 100 executes a registration process for an object OB72 determined to have the earliest registration order "3" among the unselected objects among the plurality of objects. The information processing apparatus 100 executes a registration process using node N3 as the node corresponding to the object OB72 determined to have the registration order "3".

[0039] For example, the information processing apparatus 100 registers (stores) in the graph information storage unit 123 a node N3 corresponding to an object identified by the object ID "OB72". Then, the information processing apparatus 100 adds an edge. The information processing apparatus 100 performs a search process for extracting k neighboring nodes using the graph GR11 being generated. For example, the information processing apparatus 100 searches for nodes (neighboring nodes) located near the added node according to a processing procedure as shown in FIG. 10.

[0040] For example, the information processing apparatus 100 extracts one neighboring node corresponding to the search count "1" by searching for a graph according to the processing procedure shown in FIG. 10. For example, the information processing apparatus 100 uses the node N3, which is an additional node, as a query to search for the graph GR11-1 according to the processing procedure shown in FIG. 10, and extracts one node N1 corresponding to the search count "1" as a neighboring node of the node N3.

[0041] Then, the information processing apparatus 100 connects between the neighboring node and the additional node with an edge. In FIG. 1, the information processing apparatus 100 generates the graph GR11-2 by adding an edge connecting between the node N3 and the node N1, which is a neighboring node, to the graph GR11-1. Specifically, as shown in the spatial information VS1-2, the information processing apparatus 100 generates the graph GR11-2 by connecting between the node N3, which is an additional node, and the node N1 with an edge E2.

[0042] Next, the information processing apparatus 100 executes a registration process for the object whose registration order is "4" among a plurality of objects (step S14). In FIG. 1, the information processing apparatus 100 executes a registration process for the object (referred to as "object OB14") determined to have the earliest registration order "4" among the unselected objects among the plurality of objects. The information processing apparatus 100 executes a registration process for the node corresponding to the object OB14 determined to have the registration order "4" as the node N4.

[0043] For example, the information processing apparatus 100 registers (stores) the node N4 corresponding to the object identified by the object ID "OB14" in the graph information storage unit 123. Then, the information processing apparatus 100 adds an edge. The information processing apparatus 100 performs a search process for extracting k neighboring nodes using the graph GR11 being generated. For example, the information processing apparatus 100 uses the node N4, which is an additional node, as a query to search for the graph GR11-2 according to the processing procedure shown in FIG. 10, and extracts one node N3 corresponding to the search count "1" as a neighboring node of the node N4.

[0044] Then, the information processing apparatus 100 connects the neighboring node and the additional node with an edge. In FIG. 1, the information processing apparatus 100 generates the graph GR11-3 by adding an edge that connects between the node N4 and the neighboring node N3 to the graph GR11-2. Specifically, as shown in the spatial information VS1-3, the information processing apparatus 100 generates the graph GR11-3 by connecting between the additional node N4 and the node N3 with the edge E3.

[0045] Next, the information processing apparatus 100 executes a registration process for an object whose registration order is "5" among the plurality of objects (step S15). In FIG. 1, the information processing apparatus 100 executes a registration process for an object (referred to as "object OB25") that is determined to have the earliest registration order "5" among the unselected objects among the plurality of objects. The information processing apparatus 100 executes a registration process using the node corresponding to the object OB25 determined to have the registration order "5" as the node N5.

[0046] For example, the information processing apparatus 100 registers (stores) the node N5 corresponding to the object identified by the object ID "OB25" in the graph information storage unit 123. Then, the information processing apparatus 100 adds an edge. The information processing apparatus 100 performs a search process for extracting k neighboring nodes by search using the graph GR11 being generated. For example, the information processing apparatus 100 searches the graph GR11-3 according to the processing procedure shown in FIG. 10 using the additional node N5 as a query, and extracts one node N1 corresponding to the search number "1" as a neighboring node of the node N5.

[0047] Then, the information processing apparatus 100 connects the neighboring nodes and the additional nodes with edges. In FIG. 1, the information processing apparatus 100 generates the graph GR11-4 by adding an edge connecting between the node N5 and the node N1 which is a neighboring node to the graph GR11-3. Specifically, as shown in the spatial information VS1-4, the information processing apparatus 100 generates the graph GR11-4 by connecting between the node N5 which is an additional node and the node N1 with an edge E4.

[0048] Next, the information processing apparatus 100 executes a registration process for the object whose registration order is "6" among the plurality of objects (step S16). In FIG. 1, the information processing apparatus 100 executes a registration process for the object (referred to as "object OB36") determined to have the earliest registration order "6" among the unselected objects among the plurality of objects. The information processing apparatus 100 executes the registration process using the node corresponding to the object OB36 determined to have the registration order "6" as the node N6.

[0049] For example, the information processing apparatus 100 registers (stores) the node N6 corresponding to the object identified by the object ID "OB36" in the graph information storage unit 123. Then, the information processing apparatus 100 adds an edge. The information processing apparatus 100 performs a search process for extracting k neighboring nodes by search using the graph GR11 being generated. For example, the information processing apparatus 100 searches the graph GR11-4 according to the processing procedure shown in FIG. 10 using the node N6 which is an additional node as a query, and extracts one node N1 corresponding to the search number "1" as a neighboring node of the node N6.

[0050] Then, the information processing apparatus 100 connects the neighboring node and the additional node with an edge. In FIG. 1, the information processing apparatus 100 generates graph GR11-5 by adding an edge that connects between node N6 and neighboring node N1 to graph GR11-4. Specifically, as shown in spatial information VS1-5, the information processing apparatus 100 generates graph GR11-5 by connecting between additional node N6 and node N1 with edge E5.

[0051] Then, the information processing apparatus 100 continues the sequential registration process by repeating the execution of the registration process for objects whose registration order is after "7" among the plurality of objects (step S17). In FIG. 1, the information processing apparatus 100 sequentially adds nodes corresponding to the objects in ascending order of the registration order among the unselected objects among the plurality of objects, and connects the edges to generate graph GR11-6 as shown in spatial information VS1-6. For example, as shown in spatial information VS1-6, the information processing apparatus 100 sequentially adds nodes such as node N7 corresponding to the object determined to have the earliest registration order "7" among the unselected objects among the plurality of objects, and adds an edge such as edge E6 that connects between additional node N7 and node N4 to generate graph GR11-6.

[0052] [1-2. Effects, etc.] In this way, the information processing apparatus 100 generates a graph such as graph GR11-6 by performing a sequential registration process of sequentially registering the objects selected in the registration order (selection order) determined based on the criteria into the graph. Thereby, the information processing apparatus 100 can generate a graph in consideration of the order of adding nodes by generating graph GR11 by performing a sequential registration process of sequentially registering each object in the registration order along the criteria.

[0053] Here, in approximate vector neighborhood search using a graph, the search performance varies significantly depending on the graph structure. For example, in a method of adding nodes to the graph one by one during graph generation, the graph structure changes according to the registration order of the nodes, affecting the search performance.

[0054] Conventionally, registration is performed in the order of the given data. An example of the case when registration is performed in the order of the given data is shown in FIG. 11. FIG. 11 is a diagram showing an example of the spatial information before edge addition and a graph generated by a conventional process. In FIG. 11, for the purpose of comparison, an example of the case when a graph is generated by a conventional method is shown for the same object group as the object group targeted in the process described in FIG. 1. The spatial information VS1-0 in FIG. 11 shows the positional relationship of the nodes corresponding to each object before graph generation, and the spatial information VS1-X in FIG. 11 shows the graph GRX in the case when a graph is generated by a conventional method. In FIG. 11, for the purpose of showing the correspondence with FIG. 1, the case where the same node ID is assigned to the same node is shown.

[0055] For example, if the data is composed of multiple clusters (clusters CA, CB, etc. in FIG. 11), in neighborhood search by graph search, it may be impossible to exit the cluster during search. In the conventional method, in the case of a graph in which edges are generated between neighboring nodes, dense nodes within the cluster tend to be connected to each other, and it is difficult to generate edges between clusters. In FIG. 11, between cluster CA and cluster CB, they are connected only by the edge EX between node N1 and node N6. Also, in the method of generating a graph by adding nodes one by one, the nodes added initially tend to have a larger number of edges and those edges tend to be longer.

[0056] Therefore, in order to assign edges to sparse spaces between clusters or in the peripheral parts of clusters, the information processing apparatus 100 registers in order from the vector data existing in the sparse spaces. In FIG. 1, the information processing apparatus 100 registers objects in order from the ones with longer average distance dav, that is, in order from the objects that are more likely to exist (be located) in sparse spaces. As a result, in FIG. 1, for example, the node N1 of the cluster CA is connected to the nodes N2 and N6 of the cluster CB, and the node N3 of the cluster CA is connected to the node N4 of the cluster CB, and multiple edges can connect between the cluster CA and the cluster CB. Therefore, the information processing apparatus 100 can generate a graph that is highly likely to escape from the cluster during search. In this way, the information processing apparatus 100 can generate an appropriate graph by considering the order of adding nodes.

[0057] 〔1-3. Criteria〕 Note that the above-mentioned criteria are only an example of the criteria for the selection order of objects, and various criteria may be used. Examples in this regard are described below.

[0058] The information processing apparatus 100 may use criteria regarding another graph different from the graph to be generated (also referred to as a "graph for registration processing"). For example, the information processing apparatus 100 may use a selection order criterion based on the connection relationship between multiple nodes in a graph for registration processing in which multiple nodes corresponding to each of multiple objects are connected by edges. For example, the information processing apparatus 100 may use a selection order criterion based on the connection relationship between multiple nodes in a graph for registration processing that includes edges input from each of multiple nodes to a predetermined number of neighboring nodes.

[0059] For example, the information processing apparatus 100 may use a selection order criterion based on the connection relationship between a plurality of nodes in a registration processing graph that is a k-nearest neighbor graph. For example, the information processing apparatus 100 may determine the registration order of each object based on the in-degree of the edges connected from other nodes in the registration processing graph. In this way, the in-degree instead of the distance may be used as the criterion. That is, the information processing apparatus 100 may use the in-degree as a measure of the sparse space.

[0060] For example, the information processing apparatus 100 determines to register in ascending order of the in-degree (indegree number) of the nodes corresponding to each object in a registration processing graph such as a k-nearest neighbor graph (knn graph). That is, the information processing apparatus 100 may determine to register in order from the node with the smaller in-degree. In this way, the information processing apparatus 100 may assign an earlier registration order in order from the node with the smaller in-degree.

[0061] Note that since the registration process after the determination of the registration order is the same as the process shown in FIG. 1, a detailed description thereof is omitted. Further, the information processing apparatus 100 may generate a registration processing graph such as a k-nearest neighbor graph, or may acquire a registration processing graph such as a k-nearest neighbor graph from another external device such as the information providing apparatus 50. For example, when generating a registration processing graph such as a k-nearest neighbor graph, the information processing apparatus 100 may appropriately use various methods to generate the registration processing graph. For example, when generating a k-nearest neighbor graph, the information processing apparatus 100 may generate a graph (ANNG: Approximate k-Nearest Neighbor Graph) with nodes added one by one, and generate a k-nearest neighbor graph by deleting k or more directed edges.

[0062] Further, the information processing apparatus 100 may use a criterion that takes into account both the positional relationship with other objects and the connection relationship in the registration processing graph. For example, the information processing apparatus 100 may use a selection order criterion based on the positional relationship with other objects among a plurality of objects and the connection relationship between a plurality of nodes in the registration processing graph. For example, the information processing apparatus 100 may use a criterion that takes into account both the average distance dav for each object and the in-degree in the registration processing graph.

[0063] The information processing apparatus 100 may use an index value calculated from the average distance dav, which is the distance from other objects, and the in-degree in the registration processing graph. For example, the information processing apparatus 100 may calculate the index value of each object using a function that outputs (calculates) a larger value as the average distance dav is longer and the in-degree is smaller. In this case, for example, the information processing apparatus 100 may determine to register in order from the largest index value. In this way, the information processing apparatus 100 may assign an earlier registration order in order from the largest index value. Note that depending on the calculation mode of the index value, the evaluation of the index value may be reversed. For example, the information processing apparatus 100 may calculate the index value of each object using a function that outputs (calculates) a smaller value as the average distance dav is longer and the in-degree is smaller. In this case, the information processing apparatus 100 may determine to register in order from the smallest index value. In this way, the information processing apparatus 100 may assign an earlier registration order in order from the smallest index value.

[0064] Further, the information processing apparatus 100 may use an average of a first order determined by the average distance dav, which is the distance from other objects, and a second order determined by the in-degree in the registration processing graph. For example, the information processing apparatus 100 assigns a smaller first rank in order from the longer average distance dav for each object. For example, the information processing apparatus 100 assigns a smaller second rank in order from the smaller in-degree in the registration processing graph for each object.

[0065] For example, the information processing apparatus 100 may determine to register in ascending order starting from the smaller average of the first order and the second order. In this way, the information processing apparatus 100 may assign an early registration order in ascending order starting from the smaller average of the first order and the second order. Note that since the registration process after determining the registration order is the same as the process shown in FIG. 1, detailed description thereof is omitted.

[0066] In this way, both the distance and the in-degree may be used as the criteria. As described above, the information processing apparatus 100 may determine the registration order of each object by any method using both the distance and the in-degree. For example, the distance and the in-degree may be used in combination as the criteria. For example, the information processing apparatus 100 may determine the registration order based on a value (index value) obtained by weighting and averaging the distance and the in-degree. Also, for example, the information processing apparatus 100 may determine the registration order based on a value obtained by averaging the rank based on the distance and the rank based on the in-degree. In this way, the information processing apparatus 100 may combine the distance and the in-degree, or sort by a value obtained by weighting and averaging the distance and the in-degree, or sort by a value obtained by averaging the respective ranks.

[0067] [1-4. Graph Data] Note that in FIG. 1, the case where the information processing apparatus 100 generates the graph GR11 from the beginning (when the number of nodes is 0), that is, when newly generating a graph, is shown. However, the information processing apparatus 100 may generate various graphs, not limited to new generation. For example, the information processing apparatus 100 may generate a graph by adding a node corresponding to a newly added object to a graph including nodes and edges. For example, the information processing apparatus 100 may generate a graph by adding a node corresponding to a newly added object to a graph in which the edges are adjusted and reconstructed.

[0068] [1-5. Information for Starting Point] For example, the information processing apparatus 100 may use the starting point information IND11 regarding a tree structure (tree structure) as shown in FIG. 9 as the starting point information (starting point index). FIG. 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 reachable to the nodes in the graph GR11. In FIG. 9, for simplicity of explanation, only the routes reaching the five nodes N1 to N5 of the starting point information IND11 are illustrated, but routes reaching a large number (for example, 500, 1000, etc.) of other nodes may be included. For example, the starting point information IND11 may be reachable to all the nodes in the graph GR11.

[0069] Note that the starting point information such as the starting point information IND11 may be generated by the information processing apparatus 100, or the information processing apparatus 100 may acquire the starting point information from another external device such as the information providing apparatus 50. For example, when the information processing apparatus 100 generates the starting point information, it appropriately uses various conventional techniques regarding the tree structure to generate the starting point information (for example, the starting point information IND11) of the tree structure having the nodes included in the graph (for example, the graph GR11) as leaves. Further, when a new node is added to the graph (for example, the graph GR11), the information processing apparatus 100 adds a node corresponding to the newly added object (also referred to as an "added node") as a leaf to the starting point information (for example, the starting point information IND11) of the tree structure. Thereby, when a new node is added to the graph, the information processing apparatus 100 updates the starting point information. That is, when a new node is added to the graph, the information processing apparatus 100 generates the starting point information with the new node added as a leaf.

[0070] As described above, the information processing apparatus 100 generates a starting index such as the starting information IND11 stored in the starting information storage unit 124 (see FIG. 7) by appropriately using various conventional techniques related to the tree structure. For example, when a new object is added, the information processing apparatus 100 may update the starting information IND11 by adding a node corresponding to the newly added object as a leaf. In FIG. 1, each time nodes N3, N4, etc. are added, the information processing apparatus 100 may update the starting information IND11 by adding nodes N3, N4, etc. as leaves.

[0071] In addition, when the information processing apparatus 100 acquires starting information from another external device, it provides a graph to the other external device. Then, the information processing apparatus 100 acquires the starting information generated by the other external device that has received the graph from the other external device. For example, when the information processing apparatus 100 acquires the starting information IND11 from the information providing apparatus 50, it transmits the graph GR11 to the information providing apparatus 50. Then, the information processing apparatus 100 acquires the starting information IND11 generated by the information providing apparatus 50 that has received the graph GR11 from the information providing apparatus 50. For example, the information processing apparatus 100 may provide the starting information IND11 and information related to the additional nodes to the information providing apparatus 50, and acquire the starting information IND11 updated by the additional nodes from the information providing apparatus 50. Note that the above is an example, and the information providing apparatus 50 may acquire the starting information IND11 by any means as long as it can acquire the starting information IND11.

[0072] In addition, the information processing apparatus 100 may determine a starting node using the starting information IND11 as shown in the index information group GINF11 in FIG. 9. In FIG. 9, the information processing apparatus 100 determines a starting node corresponding to the query QE1 based on the starting information IND11. The query QE1 may be, for example, a node corresponding to a newly added object or a target for performing a search using the graph GR11. That is, the information processing apparatus 100 determines a starting node using the starting information IND11 during graph generation or search.

[0073] Specifically, the information processing apparatus 100 determines a start node by using the start information IND11 stored in the start information storage unit. The start information IND11 in FIG. 9 has a hierarchical structure shown in the start information storage unit 124 in FIG. 7. For example, the start information IND11 indicates that the nodes (vectors) of the first layer located immediately below the root RT are the nodes VT1, VT2, VT3, etc. Also, for example, the start information IND11 indicates that the nodes of the second layer immediately below the node VT2 are the nodes VT2-1 to VT2-4 (not shown). For example, the start information IND11 indicates that the nodes of the third layer immediately below the node VT2-1 are the nodes N2, N5, that is, the nodes (vectors) in the graph GR11. Also, the start information IND11 indicates that the nodes of the third layer immediately below the node VT2-2 are the nodes N1, N3, N4, that is, the nodes (vectors) in the graph GR11.

[0074] For example, the information processing apparatus 100 determines the start node in the graph GR11 by using tree-structured start index information as shown in the start information IND11 in FIG. 9. In FIG. 9, the information processing apparatus 100 determines (identifies) a start node that is a candidate in the vicinity of the start information IND11 by tracing the start information IND11 from the top (root RT) downward based on the query QE1. Thereby, the information processing apparatus 100 can efficiently determine the start node corresponding to the search query (query QE1). For example, the information processing apparatus 100 can quickly determine an appropriate start node corresponding to the query QE1 which is an additional node.

[0075] Note that the information processing apparatus 100 is not limited to the above, and various starting indexes may be used. That is, the starting information (starting index) shown in the example of FIG. 9 is just an example, and the information processing apparatus 100 may search for graph information using various starting information. The information processing apparatus 100 may generate a starting index used for determining the starting node at the time of search. For example, the information processing apparatus 100 generates a search index (starting information) for quickly searching for high-dimensional vectors. The high-dimensional vector referred to here may be, for example, a vector of several hundred dimensions to several thousand dimensions, or a vector of more dimensions.

[0076] For example, the information processing apparatus 100 may generate a search index related to a kd-tree (k-dimensional tree) as a starting index. For example, the information processing apparatus 100 may generate a search index related to a VP-tree (Vantage-Point tree) as a starting index.

[0077] Also, for example, the information processing apparatus 100 may generate a starting index having other tree structures. For example, the information processing apparatus 100 may generate various starting indexes in which the leaves of the starting index of the tree structure are connected to the graph. For example, the information processing apparatus 100 may generate various starting indexes in which the leaves of the starting index of the tree structure correspond to the nodes in the graph. Further, when the information processing apparatus 100 performs a search using such a starting index, it may search the graph from the leaf (node) reached by following the starting index.

[0078] Note that the starting index as described above is just an example. As long as the information processing apparatus 100 can quickly identify a query in the graph, it may generate a starting index with any data structure. For example, if the information processing apparatus 100 can quickly identify a node in the graph information corresponding to a query, it may appropriately use various conventional techniques such as techniques related to binary space partitioning to generate a starting index. For example, if the starting index can support the search of high-dimensional vectors, the information processing apparatus 100 may generate a starting index with any data structure. By using the starting index and the graph as described above, the information processing apparatus 100 can enable a more efficient search for a predetermined target. That is, by using the starting index and the graph as described above, the information processing apparatus 100 can execute a search for a predetermined target more quickly.

[0079] [2. Configuration of Information Processing System] As shown in FIG. 2, the information processing system 1 includes a terminal device 10, an information providing device 50, and an information processing apparatus 100. The terminal device 10, the information providing device 50, and the information processing apparatus 100 are communicably connected by wire or wirelessly via a predetermined network N. FIG. 2 is a diagram showing a configuration example of an information processing system according to an embodiment. Note that the information processing system 1 shown in FIG. 2 may include a plurality of terminal devices 10, a plurality of information providing devices 50, and a plurality of information processing apparatuses 100.

[0080] The terminal device 10 is an information processing device used by a user. The terminal device 10 receives various operations by the user. Note that hereinafter, the terminal device 10 may be referred to as the user. That is, hereinafter, the user may also be read as the terminal device 10. Note that the above-described terminal device 10 is realized by, for example, a smartphone, a tablet terminal, a notebook PC (Personal Computer), a desktop PC, a mobile phone, a PDA (Personal Digital Assistant), or the like.

[0081] The information providing device 50 is an information processing device in which information for providing various types of information to a user or the like is stored. For example, the information providing device 50 stores an object ID based on character information or the like collected from various external devices such as a web server. For example, the information providing device 50 is an information processing device that provides an image search service to a user or the like. For example, the information providing device 50 stores each piece of information for providing an image search service. For example, the information providing device 50 provides vector information corresponding to an image that is the target of the image search service to the information processing device 100. Further, the information providing device 50 transmits a query to the information processing device 100, and receives an object ID or the like indicating an image corresponding to the query from the information processing device 100.

[0082] The information processing device 100 is a computer (information processing device) that generates a graph. When generating a graph, the information processing device 100 generates a graph based on a criterion for the selection order of an object to be added to the graph from a plurality of objects. The information processing device 100 selects an unselected single object from among the plurality of objects based on the criterion for the selection order, adds a single node corresponding to the selected single object to the graph, and executes a registration process of connecting, with an edge, between a neighboring node of the single node extracted by a search process for searching the graph and the single node. The information processing device 100 generates a graph by a sequential registration process in which an unselected single object is selected from among the plurality of objects and the registration process is repeated for the selected single object.

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

[0084] [3. Configuration of Information Processing Apparatus] Next, the configuration of the information processing apparatus 100 according to the embodiment will be described with reference to FIG. 3. FIG. 3 is a diagram showing a configuration example of the information processing apparatus 100 according to the embodiment. As shown in FIG. 3, the information processing apparatus 100 includes a communication unit 110, a storage unit 120, and a control unit 130. Note that the information processing apparatus 100 may include an input unit (for example, a keyboard or a mouse) for receiving various operations from an administrator or the like of the information processing apparatus 100, and a display unit (for example, a liquid crystal display) for displaying various information.

[0085] (Communication Unit 110) The communication unit 110 is realized by, for example, a NIC (Network Interface Card) or the like. Then, the communication unit 110 is connected to a network (for example, the network N in FIG. 2) by wire or wirelessly, and transmits and receives information to and from the terminal device 10 and the information providing device 50.

[0086] (Storage Unit 120) The storage unit 120 is implemented by, for example, a semiconductor memory element such as a RAM (Random Access Memory) or a flash memory, or a storage device such as a hard disk or an optical disk. As shown in FIG. 3, the storage unit 120 according to the embodiment includes an object information storage unit 121, a reference information storage unit 122, a graph information storage unit 123, a starting point information storage unit 124, and a registration process graph information storage unit 125. Note that the storage unit 120 stores various types of information. For example, the storage unit 120 may store, in association with each node (object), the order in which each node is added to the graph. The graph information storage unit 123 of the storage unit 120 may store, in association with each node (object), the order in which each node is added to the graph.

[0087] (Object information storage unit 121) The object information storage unit 121 according to the embodiment stores various types of information related to an object. For example, the object information storage unit 121 stores an object ID and vector data. FIG. 4 is a diagram showing an example of the object information storage unit according to the embodiment. The object information storage unit 121 shown in FIG. 4 includes items such as "object ID" and "vector information".

[0088] "Object ID" indicates identification information for identifying an object. "Vector information" indicates vector information corresponding to the object identified by the object ID. That is, in FIG. 4, vector data (vector information) corresponding to the object is associated with and registered for the object ID that identifies the object.

[0089] For example, in FIG. 4, it shows that the object (target) identified by the ID "OB1" is associated with multi-dimensional vector information of "10, 24, 51, 2...".

[0090] Note that the object information storage unit 121 is not limited to the above, and may store various types of information according to the purpose.

[0091] (Reference information storage unit 122) The reference information storage unit 122 according to the embodiment stores various information regarding the criteria for various processes. For example, the reference information storage unit 122 stores various information regarding the criteria for the selection order of objects. FIG. 5 is a diagram showing an example of the reference information storage unit according to the embodiment. The reference information storage unit 122 shown in FIG. 5 includes items such as "reference ID", "target", and "reference content". For example, the reference information storage unit 122 stores various information regarding the criteria and conditions for executing various processes.

[0092] The "reference ID" indicates information for identifying the reference. The "target" indicates the target of the criteria for the selection order of the object. Also, the "reference content" indicates the specific content used as the corresponding reference. In FIG. 5, although the "reference content" is illustrated with abstract symbols such as "CINF11", "CINF12", and "CINF13", it is assumed to be information or conditional expressions that are specific criteria.

[0093] In FIG. 5, the reference (reference CR11) identified by the reference ID "CR11" indicates that it is a reference for the selection order based on the positional relationship of the object. The target of reference CR11 is the positional relationship, and its reference content is shown as "CINF11". The reference content CINF11 in FIG. 5 indicates that the selection order of the object is determined based on the distance from other objects. For example, the reference content CINF11 in FIG. 5 indicates that the objects are selected in order from the one with the longer distance (average distance, etc.) from other objects.

[0094] In FIG. 5, the criterion (criterion CR12) identified by the reference ID "CR12" indicates that it is a criterion for the selection order based on the connection relationship in the registration process graph. The target of criterion CR12 is the connection relationship, and its criterion content indicates that it is "CINF12". The criterion content CINF12 in FIG. 5 indicates that it is determined based on the in-degree in the registration process graph. For example, the criterion content CINF12 in FIG. 5 indicates that the selection order of objects is to select the objects in ascending order of the number of edges (in-degree) input to the object in the registration process graph.

[0095] In FIG. 5, the criterion (criterion CR13) identified by the reference ID "CR13" indicates that it is a criterion for the selection order based on both the positional relationship of the objects and the connection relationship in the registration process graph. The target of criterion CR13 is both the positional relationship and the connection relationship, and its criterion content indicates that it is "CINF13". The criterion content CINF13 in FIG. 5 indicates that it is determined based on the distance from other objects and the in-degree in the registration process graph. For example, the criterion content CINF13 in FIG. 5 indicates that the selection order of objects is to select the objects in the order (descending or ascending) of the index value calculated by the distance from other objects and the in-degree to the object in the registration process graph.

[0096] Note that the reference information storage unit 122 is not limited to the above, and may store various information according to the purpose.

[0097] (Graph information storage unit 123) The graph information storage unit 123 according to the embodiment stores various information related to graph information. For example, the graph information storage unit 123 stores graph information. FIG. 6 is a diagram showing an example of the graph information storage unit according to the embodiment. The graph information storage unit 123 shown in FIG. 6 has items such as "node ID", "object ID", and "edge information". Also, the "edge information" includes information such as "edge ID" and "reference destination".

[0098] "Node ID" indicates identification information for each node (target) in the graph data. Also, "Object ID" indicates identification information for identifying an object.

[0099] Also, "Edge information" indicates information about the edge connected to the corresponding node. In FIG. 6, "Edge information" indicates information about the edge connected to the corresponding node. Also, "Edge ID" indicates identification information for identifying the edge connecting nodes. Also, "Reference destination" indicates information indicating the reference destination (node) connected by the edge. That is, in FIG. 6, for the node ID that identifies a node, information for identifying the object (target) corresponding to that node and the reference destination (node) to which the edge from that node is connected are associated and registered.

[0100] In FIG. 6, the node (node N1) identified by the node ID "N1" indicates that it corresponds to the object (target) identified by the object ID "OB8". Also, from node N1, an edge (edge E1) identified by the edge ID "E1" is shown to be connected to the node (node N2) identified by the node ID "N2". That is, in FIG. 6, it shows that in the graph data, from node N1, it is possible to reach node N2 through edge E1. Also, from node N1, an edge (edge E2) identified by the edge ID "E2" is shown to be connected to the node (node N3) identified by the node ID "N3". That is, in FIG. 6, it shows that in the graph data, from node N1, it is possible to reach node N3 through edge E2.

[0101] Also, from node N1, an edge (edge E4) identified by the edge ID "E4" is shown to be connected to the node (node N5) identified by the node ID "N5". Also, from node N1, an edge (edge E5) identified by the edge ID "E5" is shown to be connected to the node (node N6) identified by the node ID "N6".

[0102] Also, the node (node N2) identified by the node ID "N2" indicates that it corresponds to the object (target) identified by the object ID "OB5". Also, from node N2, it is indicated that the edge (edge E1) identified by the edge ID "E1" is connected to the node (node N1) identified by the node ID "N1". That is, in FIG. 6, it is shown that from node N2 in the graph data, it is possible to reach node N1 via edge E1. The graph information storage unit 123 shown in FIG. 6 shows a case where graph information corresponding to graph GR11-6 is stored.

[0103] Note that the graph information storage unit 123 is not limited to the above, and may store various information according to the purpose. For example, the graph information storage unit 123 may store the length of the edge connecting between each node (vector). That is, the graph information storage unit 123 may store information indicating the distance between each node (vector). Also, for example, the graph information storage unit 123 may store information indicating the number of edges input to each node (in-degree) and the number of edges output from each node (out-degree).

[0104] Also, the graph data may include a program module that takes a query as input, searches for nodes by traversing the edges in the graph data, and extracts and outputs nodes similar to the query. That is, the graph data may be assumed to be used as a program module for performing search processing using the graph. For example, graph data GR11 may be a program that extracts and outputs, from the graph, the nodes corresponding to the vector data similar to the input vector data when vector data is input as a query. For example, graph data GR11 may be data used as a program module for searching for similar images corresponding to a query image. For example, graph data GR11 causes a computer to function so as to extract and output, in the graph, nodes similar to the input query.

[0105] (Start point information storage unit 124) The starting point information storage unit 124 according to the embodiment stores various information related to the starting point information. FIG. 7 is a diagram showing an example of the starting point information storage unit according to the embodiment. Specifically, in FIG. 7, the starting point information storage unit 124 shows the starting point index information in a tree structure. In FIG. 7, the starting point information storage unit 124 includes items such as "root layer", "first layer", "second layer", "third layer", and the like. Note that not limited to the "first layer" to "third layer", depending on the number of layers of the index, "fourth layer", "fifth layer", "sixth layer", and the like may be included.

[0106] The "root layer" indicates the root (topmost) layer that is the starting point for determining the starting node using the index. The "first layer" stores information for identifying (specifying) the nodes (nodes or vectors in the graph information) belonging to the first layer of the index. The nodes stored in the "first layer" are the nodes corresponding to the layer directly connected to the root of the index.

[0107] The "second layer" stores information for identifying (specifying) the nodes (nodes or vectors in the graph information) belonging to the second layer of the index. The nodes stored in the "second layer" are the nodes corresponding to the layer immediately below the nodes in the first layer. The "third layer" stores information for identifying (specifying) the nodes (nodes or vectors in the graph information) belonging to the third layer of the index. The nodes stored in the "third layer" are the nodes corresponding to the layer immediately below the nodes in the second layer.

[0108] In the example shown in FIG. 7, the information corresponding to the starting point information IND11 in FIG. 1 is stored in the starting point information storage unit 124. For example, the starting point information storage unit 124 indicates that the nodes in the first layer are nodes VT1 to VT3 and the like. Also, the numerical values in the parentheses below each node indicate the values of the vectors corresponding to each node.

[0109] In addition, the start point information storage unit 124 indicates that the nodes in the second layer directly below the node VT2 are the nodes VT2-1 to VT2-4. Further, the start point information storage unit 124 indicates that the nodes in the third layer directly below the node VT2-1 are the nodes (vectors) in the graph GR11 of the nodes N2 and N5. The start point information storage unit 124 indicates that the nodes in the third layer directly below the node VT2-2 are the nodes (vectors) in the graph GR11 of the nodes N1, N3, and N4.

[0110] Note that the start point information storage unit 124 is not limited to the above, and may store various information according to the purpose.

[0111] (Graph information storage unit 125 for registration processing) The graph information storage unit 125 for registration processing according to the embodiment stores various information related to the registration processing graph. For example, the graph information storage unit 125 for registration processing stores graph information for registration processing. The graph information storage unit 125 for registration processing has items such as "node ID", "object ID", and "edge information". Further, the "edge information" includes information such as "edge ID" and "reference destination".

[0112] The "node ID" indicates identification information for identifying each node (target) in the graph data. The "object ID" indicates identification information for identifying an object. The "edge information" indicates information related to the edge connected to the corresponding node. The "edge ID" indicates identification information for identifying the edge connecting the nodes. The "reference destination" indicates information indicating the reference destination (node) connected by the edge.

[0113] The registration process graph information storage unit 125 stores information on a graph different from the graph stored in the graph information storage unit 123. For example, the registration process graph information storage unit 125 stores a registration process graph used to determine the selection order of objects to be added in graph generation. For example, the registration process graph information storage unit 125 stores information on a k-nearest neighbor graph (knn graph). For example, the registration process graph information storage unit 125 stores information on a graph (k-nearest neighbor graph) in which directed edges are connected to K nodes with close distances from each node. That is, the registration process graph information storage unit 125 stores information on a graph (k-nearest neighbor graph) in which, starting from each node, K directed edges with other nodes as endpoints are connected. Note that the information stored in the registration process graph information storage unit 125 is the same as the information stored in the graph information storage unit 123 except that the graph structure (nodes, edges, etc.) is different, so detailed description is omitted.

[0114] In addition, the registration process graph information storage unit 125 is not limited to the above and may store various information according to the purpose. For example, the registration process graph information storage unit 125 may store information indicating the number of edges input to each node in association with each node. Also, the registration process graph information storage unit 125 is not limited to the k-nearest neighbor graph and may store any graph as the registration process graph. For example, the registration process graph information storage unit 125 may store the graph GRX in FIG. 11 as the registration process graph. Also, when the registration process graph is not used, the information processing apparatus 100 may not have the registration process graph information storage unit 125.

[0115] (Control unit 130) Returning to the description of FIG. 3, the control unit 130 is a controller, which is realized, for example, by a CPU (Central Processing Unit), an MPU (Micro Processing Unit), a GPU (Graphics Processing Unit), etc., when various programs (corresponding to an example of an information processing program) stored in the storage device inside the information processing apparatus 100 are executed with the RAM as a work area. Also, the control unit 130 is a controller, which is realized, for example, by an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).

[0116] As shown in FIG. 3, the control unit 130 includes an acquisition unit 131, a search unit 132, a generation unit 133, and a provision unit 134, and realizes or executes the functions and operations of information processing described below. Note that the internal configuration of the control unit 130 is not limited to the configuration shown in FIG. 3, and may be any other configuration as long as it can perform the information processing described later.

[0117] (Acquisition Unit 131) The acquisition unit 131 acquires various information. For example, the acquisition unit 131 acquires various information from the storage unit 120. For example, the acquisition unit 131 acquires various information from the object information storage unit 121, the reference information storage unit 122, the graph information storage unit 123, the starting point information storage unit 124, the registration process graph information storage unit 125, etc. Also, the acquisition unit 131 receives various information from an external information processing apparatus.

[0118] The acquisition unit 131 acquires object information indicating a plurality of objects to be searched. The acquisition unit 131 acquires object information indicating a plurality of objects from the object information storage unit 121.

[0119] When generating a graph in which a plurality of nodes corresponding to each of a plurality of objects are connected by edges, the acquisition unit 131 acquires reference information serving as a reference for the selection order of the objects to be added to the graph from the plurality of objects. The acquisition unit 131 acquires reference information indicating a criterion for selecting in order from the objects located in a sparse space among the plurality of objects.

[0120] The acquisition unit 131 acquires reference information indicating a criterion for the selection order based on the positional relationship with other objects among the plurality of objects. The acquisition unit 131 acquires reference information indicating a criterion for selecting in order from the objects far from other objects among the plurality of objects. The acquisition unit 131 acquires reference information indicating a criterion for selecting in order from the objects having a large distance from a predetermined number of other objects located in the vicinity among the plurality of objects.

[0121] The acquisition unit 131 acquires reference information indicating a criterion for selecting in order from the objects having a large average distance from a predetermined number of other objects located in the vicinity among the plurality of objects. The acquisition unit 131 acquires reference information indicating a criterion for selecting in order from the objects having a smaller index value calculated from the distance from other objects and the in-degree of the edges connected from other nodes among the plurality of objects.

[0122] The acquisition unit 131 acquires a registration processing graph which is another graph different from the graph and in which a plurality of nodes corresponding to each of a plurality of objects are connected by edges. The acquisition unit 131 acquires reference information indicating a criterion for the selection order based on the connection relationship between the plurality of nodes in the registration processing graph.

[0123] The acquisition unit 131 acquires a registration processing graph including edges input from each of the plurality of nodes to a predetermined number of neighboring nodes. The acquisition unit 131 acquires reference information indicating a criterion for the selection order based on the in-degree of the edges connected from other nodes in the registration processing graph. The acquisition unit 131 acquires reference information indicating a criterion for selecting in order from the objects having a small in-degree in the registration processing graph.

[0124] The acquisition unit 131 acquires reference information indicating a reference for a selection order based on the positional relationship between other objects in a plurality of objects and the connection relationship between a plurality of nodes in the registration processing graph. The acquisition unit 131 acquires reference information indicating a reference for a selection order based on the distances from a predetermined number of other objects located in the vicinity and the in-degree of the edges connected from other nodes in the registration processing graph.

[0125] The acquisition unit 131 acquires reference information indicating a reference for a selection order based on a first order determined by the positional relationship between other objects in a plurality of objects and a second order determined by the connection relationship between a plurality of nodes in the registration processing graph. The acquisition unit 131 acquires reference information indicating a reference for selecting in order from the smaller average of the first order determined by the positional relationship between other objects in a plurality of objects and the second order determined by the connection relationship between a plurality of nodes in the registration processing graph.

[0126] The acquisition unit 131 acquires a graph in which a plurality of nodes corresponding to each of a plurality of objects to be searched are connected by edges. The acquisition unit 131 acquires a graph generated by a sequential registration process of adding a plurality of nodes in a predetermined order and connecting edges for the added nodes. The acquisition unit 131 acquires a graph generated by the sequential registration process executed by the generation unit 133.

[0127] The acquisition unit 131 acquires a graph in which a plurality of nodes are connected by edges and an additional node. The acquisition unit 131 acquires a predetermined number of additional nodes. The acquisition unit 131 acquires an additional node which is a single node to be added to the graph.

[0128] The acquisition unit 131 acquires a single object to be the target of data search, a graph including a plurality of nodes corresponding to each of the other objects different from the single object, and edges connecting the nodes. The acquisition unit 131 acquires a single additional node corresponding to the single object to be the target of data search.

[0129] Also, the acquisition unit 131 may acquire graph data. For example, the information processing apparatus 100 may acquire the graph GR11-1 in FIG. 1. For example, the information processing apparatus 100 may acquire graph data from an external apparatus such as the information providing apparatus 50.

[0130] For example, the acquisition unit 131 acquires information regarding a search query. For example, the acquisition unit 131 acquires a search query regarding image search. For example, the acquisition unit 131 acquires a query from the terminal device 10 to be used. For example, the acquisition unit 131 acquires a query from the information providing apparatus 50 that has received the query from the terminal device 10 to be used.

[0131] (Search unit 132) The search unit 132 searches for various information. The search unit 132 executes a search process using the graph. The search unit 132 functions as an extraction unit that extracts various information. The search unit 132 extracts various information. For example, the search unit 132 functions as a search unit that provides a search service regarding an object. The search unit 132 searches for various information. The search unit 132 searches for various information. For example, the search unit 132 searches for an object by searching for graph data.

[0132] The search unit 132 executes a search process for searching a graph according to an instruction from the generation unit 133. For example, when information indicating an object (node) to be processed is given, the search unit 132 searches the graph based on the processing procedure shown in FIG. 10 to extract an object (node) similar to the target object (node). The search unit 132 uses one object (node) among a plurality of objects (nodes) as a target object (target node), and extracts neighboring objects (neighboring nodes) of the target object (target node) by performing a search process for searching the graph.

[0133] For example, the search unit 132 extracts various information from the object information storage unit 121, the reference information storage unit 122, the graph information storage unit 123, the start point information storage unit 124, the registration process graph information storage unit 125, and the like. For example, the search unit 132 extracts various information based on the information acquired by the acquisition unit 131.

[0134] The search unit 132 extracts a predetermined number (for example, the number of searches, etc.) of nodes from a plurality of nodes as neighboring nodes. The search unit 132 performs a search process for extracting neighboring nodes by searching the graph. The search unit 132 performs a search process for extracting a predetermined number of nodes as neighboring nodes based on the relationship with an additional node among a plurality of nodes. The search unit 132 performs a search process for extracting a predetermined number of nodes as neighboring nodes based on the distance between each of the plurality of nodes and the additional node.

[0135] For example, when the query acquired by the acquisition unit 131 is acquired, the search unit 132 searches for an object similar to the query by searching the graph data. For example, the search unit 132 extracts an object similar to the query by searching the graph data. For example, the search unit 132 extracts an object similar to the query by searching the graph data based on the processing procedure shown in FIG. 10.

[0136] The search unit 132 extracts neighboring nodes by searching the graph. The search unit 132 extracts a predetermined number (one in the case of FIG. 1) of neighboring nodes by searching the graph using the additional node as a query. The search unit 132 extracts neighboring nodes by searching the graph through the search process as shown in FIG. 10.

[0137] In FIG. 1, the search unit 132 executes a search process to extract neighboring nodes of the additional node from the graph GR11 using the graph GR11 being generated. The search unit 132 searches the graph GR11-1 according to the processing procedure as shown in FIG. 10 using the node N3, which is the additional node, as a query, and extracts one neighboring node corresponding to the search count "1" as a neighboring node of the node N3. The search unit 132 searches the graph GR11-1 according to the processing procedure as shown in FIG. 10 using the node N3, which is the additional node, as a query, and extracts one node N1 corresponding to the search count "1" as a neighboring node of the node N3.

[0138] (Generation unit 133) The generation unit 133 executes various processes related to graph generation. The generation unit 133 executes a generation process for generating a graph. The generation unit 133 executes a registration process for adding nodes. The generation unit 133 executes a selection process for selecting an object to be processed. The generation unit 133 causes the search unit 132 to execute a search process by instructing the search unit 132 and obtains a search result from the search unit 132.

[0139] The generation unit 133 generates various information. For example, the generation unit 133 generates various information (data) from the information (data) stored in the storage unit 120. For example, the generation unit 133 generates various information from the object information storage unit 121, the reference information storage unit 122, the graph information storage unit 123, the starting point information storage unit 124, the graph information storage unit 125 for registration processing, and the like.

[0140] For example, based on the information acquired by the acquisition unit 131, the generation unit 133 generates various information. The generation unit 133 generates various information using the result of the search process by the search unit 132. The generation unit 133 generates a graph by sequential registration processing. The generation unit 133 generates a graph (such as graph data) by sequential registration processing as shown in FIG. 1.

[0141] Based on the criterion of the selection order indicated by the reference information, the generation unit 133 selects one unselected object among a plurality of objects, adds one node corresponding to the selected object to the graph, and executes a registration process of connecting the vicinity nodes of one node extracted by the search process for searching the graph and the one node with an edge. The generation unit 133 generates a graph by repeating the registration process.

[0142] The generation unit 133 generates a graph by sequentially selecting one object from the objects located in a sparse space and repeating the execution of the registration process for the selected object. The generation unit 133 generates a graph by selecting one object based on the positional relationship with other objects and repeating the execution of the registration process for the selected object.

[0143] The generation unit 133 generates a graph by sequentially selecting one object from the objects far from other objects and repeating the execution of the registration process for the selected object. The generation unit 133 generates a graph by sequentially selecting one object from the objects among a plurality of objects that are far from a predetermined number of other objects located in the vicinity, and repeating the execution of the registration process for the selected object. The generation unit 133 generates a graph by sequentially selecting one object from the objects among a plurality of objects that have a large average distance from a predetermined number of other objects located in the vicinity, and repeating the execution of the registration process for the selected object.

[0144] The generation unit 133 generates a graph by selecting one object based on the connection relationship among a plurality of nodes in the registration process graph and repeatedly executing the registration process for the selected one object. The generation unit 133 selects one object based on the connection relationship among a plurality of nodes in the registration process graph including edges input from each of the plurality of nodes to a predetermined number of neighboring nodes, and repeatedly executes the registration process for the selected one object to generate a graph.

[0145] The generation unit 133 selects one object based on the in-degree of the edges connected from other nodes in the registration process graph. The generation unit 133 sequentially selects one object from the objects with a smaller in-degree in the registration process graph.

[0146] The generation unit 133 selects one object based on the positional relationship with other objects and the connection relationship among a plurality of nodes in the registration process graph, and repeatedly executes the registration process for the selected one object to generate a graph. The generation unit 133 selects one object based on the distance from other objects and the in-degree of the edges connected from other nodes, and repeatedly executes the registration process for the selected one object to generate a graph.

[0147] The generation unit 133 selects one object based on the index value calculated from the distance from other objects and the in-degree of the edges connected from other nodes, and repeatedly executes the registration process for the selected one object to generate a graph. The generation unit 133 sequentially selects one object from the ones with a smaller index value, and repeatedly executes the registration process for the selected one object to generate a graph.

[0148] The generation unit 133 selects one object based on the first order and the second order, and generates a graph by repeatedly executing a registration process for the selected one object. The generation unit 133 selects one object in order from the one with the smaller average of the first order and the second order, and generates a graph by repeatedly executing a registration process for the selected one object.

[0149] (Provision unit 134) The provision unit 134 provides various information. For example, the provision unit 134 transmits various information to the terminal device 10 and the information provision device 50. For example, the provision unit 134 provides an object ID corresponding to a query as a search result. For example, the provision unit 134 provides the object ID retrieved by the search unit 132 to the information provision device 50. For example, the provision unit 134 provides the object ID extracted by the search unit 132 by search to the information provision device 50. The provision unit 134 provides the object ID extracted by the search unit 132 to the information provision device 50 as information indicating a vector corresponding to the query.

[0150] Also, the provision unit 134 may provide the graph generated by the generation unit 133 to an external information processing device. For example, the provision unit 134 may transmit the graph GR11 generated by the generation unit 133 to the information provision device 50.

[0151] [4. Information processing flow] Next, with reference to FIG. 8, the information processing procedure by the information processing system 1 according to the embodiment will be described. FIG. 8 is a flowchart showing an example of information processing according to the embodiment.

[0152] As shown in FIG. 8, the information processing apparatus 100 acquires object information indicating a plurality of objects to be searched (step S101). For example, the information processing apparatus 100 acquires object information indicating a plurality of objects stored in the object information storage unit 121 (see FIG. 4).

[0153] Then, when generating a graph in which a plurality of nodes corresponding to each of the plurality of objects are connected by edges, the information processing apparatus 100 acquires reference information that serves as a criterion for the selection order of the objects to be added to the graph from the plurality of objects (step S102). For example, the information processing apparatus 100 acquires reference information corresponding to the reference used as a criterion in graph generation from among the reference information stored in the reference information storage unit 122 (see FIG. 5).

[0154] Then, based on the criterion of the selection order indicated by the reference information, the information processing apparatus 100 selects one unselected object from among the plurality of objects, adds one node corresponding to the selected one object to the graph, and executes a registration process of connecting the vicinity nodes of the one node extracted by the search process for searching the graph and the one node with an edge, thereby generating a graph (step S103). For example, the information processing apparatus 100 repeats the registration process until there are no unselected objects among the plurality of objects, thereby generating a graph as shown in the graph information storage unit 123 (see FIG. 6).

[0155] [5. Search Example] Here, an example of a search using the graph data described above is shown. Note that the search using the generated graph data is not limited to the following, and may be performed by various procedures. This point will be described with reference to FIG. 10 as an example. FIG. 10 is a flowchart showing an example of a search process using graph data. The search process described below is performed by the search unit 132 of the information processing apparatus 100. Also, the object referred to below may be read as a node. Hereinafter, the information processing apparatus 100 (such as the search unit 132 thereof) performs a search process. The search query for the process described below may be an additional node, a target node, an object specified by the user, or the like.

[0156] Here, the set of neighboring objects N(G, y) is the set of neighboring objects associated by the edges assigned to node y. "G" may be predetermined graph data (for example, graph GR11, graph for registration processing, etc.). For example, the information processing apparatus 100 executes k-nearest neighbor search processing.

[0157] For example, the information processing apparatus 100 sets the radius r of the hypersphere to ∞ (infinity) (step S300), and extracts a subset S from the existing object set (step S301). For example, the information processing apparatus 100 may extract the object (node) selected as the root node as the subset S. Also, for example, a hypersphere is a virtual sphere indicating a search range. Note that the objects included in the object set S extracted in step S301 are also included in the initial set of the object set R of the search results at the same time.

[0158] Next, the information processing apparatus 100 extracts, from the objects included in the object set S, the object with the shortest distance from object y when the search query object is y, and sets it as object s (step S302). For example, when only the object (node) selected as the root node is an element of S, the root node is ultimately extracted as object s. Next, the information processing apparatus 100 excludes object s from the object set S (step S303).

[0159] Next, the information processing apparatus 100 determines whether the distance d(s, y) between object s and object y exceeds r(1 + ε) (step S304). Here, ε is an expansion factor, and r(1 + ε) is a value indicating the radius of the search range (only the 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 apparatus 100 outputs the object set R as the set of neighboring objects of object y (step S305) and ends the process.

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

[0161] Next, the information processing apparatus 100 determines whether the distance d(u, y) between the object u and the object y is less than or equal to r(1 + ε) (step S307). When the distance d(u, y) between the object u and the object y is less than or equal to r(1 + ε) (step S307: Yes), the information processing apparatus 100 adds the object u to the object set S (step S308). Also, when the distance d(u, y) between the object u and the object y is not less than or equal to r(1 + ε) (step S307: No), the information processing apparatus 100 performs the determination (process) of step S309.

[0162] Next, the information processing apparatus 100 determines whether the distance d(u, y) between the object u and the object y is less than or equal to r (step S309). When the distance d(u, y) between the object u and the object y exceeds r, the information processing apparatus 100 performs the determination (process) of step S315. Also, when the distance d(u, y) between the object u and the object y is not less than or equal to r (step S309: No), the information processing apparatus 100 performs the determination (process) of step S315.

[0163] When the distance d(u, y) between object u and object y is less than or equal to r (step S309: Yes), the information processing apparatus 100 adds object u to the object set R (step S310). Then, the information processing apparatus 100 determines whether the number of objects included in the object set R exceeds ks (step S311). The predetermined number ks is a natural number arbitrarily determined. For example, ks may be the number of searches. For example, ks = 2 may be used. When the number of objects included in the object set R does not exceed ks (step S311: No), the information processing apparatus 100 performs the determination (process) in step S313.

[0164] When the number of objects included in the object set R exceeds ks (step S311: Yes), the information processing apparatus 100 excludes from the object set R the object having the longest (farthest) distance from object y among the objects included in the object set R (step S312).

[0165] Next, the information processing apparatus 100 determines whether the number of objects included in the object set R matches ks (step S313). When the number of objects included in the object set R does not match ks (step S313: No), the information processing apparatus 100 performs the determination (process) in step S315. Also, when the number of objects included in the object set R matches ks (step S313: Yes), the information processing apparatus 100 sets the distance between the object having the longest (farthest) distance from object y among the objects included in the object set R and object y to a new r (step S314).

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

[0167] If it has finished selecting all objects from the objects that are elements of the set N(G, s) of neighboring objects of object s and storing them in the object set C (step S315: Yes), the information processing apparatus 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 apparatus 100 returns to step S302 and repeats the process. Also, if the object set S is an empty set (step S316: Yes), the information processing apparatus 100 outputs the object set R and ends the process (step S317). For example, the information processing apparatus 100 may select the objects (nodes) included in the object set R as neighboring nodes corresponding to the additional node (input object y). For example, the information processing apparatus 100 may select the objects (nodes) included in the object set R as neighboring nodes corresponding to the target node (input object y). Also, for example, the information processing apparatus 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 or the like that performed the search.

[0168] [6. Effects] As described above, the information processing apparatus according to the embodiment (corresponding to "information processing apparatus 100" in the embodiment) includes an acquisition unit (corresponding to "acquisition unit 131" in the embodiment) and a generation unit (corresponding to "generation unit 133" in the embodiment). The acquisition unit acquires, from a plurality of objects, reference information that serves as a criterion for the selection order of an object to be added to a graph when generating an object information indicating a plurality of objects to be searched and a graph in which a plurality of nodes corresponding to each of the plurality of objects are connected by edges. The generation unit selects, based on the selection order criterion indicated by the reference information, one unselected object from among the plurality of objects, adds one node corresponding to the selected one object to the graph, and executes a registration process of connecting, by an edge, a neighboring node of one node extracted by a search process of searching the graph and the one node, thereby generating a graph.

[0169] Thus, the information processing apparatus according to the embodiment selects, based on the selection order criterion, one unselected object from among the plurality of objects, adds one node corresponding to the selected one object to the graph, and executes a registration process of connecting, by an edge, a neighboring node of one node extracted by a search process of searching the graph and the one node. Thereby, the information processing apparatus can generate a graph in consideration of the addition order of the nodes.

[0170] Also, in the information processing apparatus according to the embodiment, the acquisition unit acquires reference information indicating a criterion for sequentially selecting objects located in a sparse space from among the plurality of objects. The generation unit generates a graph by sequentially selecting one object from the objects located in the sparse space and repeatedly executing the registration process for the selected one object.

[0171] In this way, the information processing apparatus according to the embodiment can generate a graph in which objects located in a sparse space are preferentially added by sequentially selecting an object from the objects located in the sparse space and repeating the execution of the registration process for the selected object. Therefore, the information processing apparatus can generate a graph in consideration of the addition order of the nodes.

[0172] Also, in the information processing apparatus according to the embodiment, the acquisition unit acquires reference information indicating a reference for the selection order based on the positional relationship with other objects among a plurality of objects. The generation unit selects one object based on the positional relationship with other objects, and generates a graph by repeating the execution of the registration process for the selected object.

[0173] In this way, the information processing apparatus according to the embodiment can generate a graph based on the positional relationship with other objects by selecting one object based on the positional relationship with other objects and repeating the execution of the registration process for the selected object. Therefore, the information processing apparatus can generate a graph in consideration of the addition order of the nodes.

[0174] Also, in the information processing apparatus according to the embodiment, the acquisition unit acquires reference information indicating a reference for selecting objects in order from the objects that are far from other objects among a plurality of objects. The generation unit selects one object in order from the objects that are far from other objects, and generates a graph by repeating the execution of the registration process for the selected object.

[0175] In this way, the information processing apparatus according to the embodiment can generate a graph in which objects that are far from other objects are preferentially added by selecting one object in order from the objects that are far from other objects and repeating the execution of the registration process for the selected object. Therefore, the information processing apparatus can generate a graph in consideration of the addition order of the nodes.

[0176] Also, in the information processing apparatus according to the embodiment, the acquisition unit acquires reference information indicating a criterion for selecting, in order, objects that are far from a predetermined number of other objects located in the vicinity among a plurality of objects.

[0177] Thereby, the information processing apparatus according to the embodiment can generate a graph in which, among a plurality of objects, objects that are far from a predetermined number of other objects located in the vicinity are preferentially added. Therefore, the information processing apparatus can generate a graph in consideration of the order of adding nodes.

[0178] Also, in the information processing apparatus according to the embodiment, the acquisition unit acquires reference information indicating a criterion for selecting, in order, objects having a large average distance from a predetermined number of other objects located in the vicinity among a plurality of objects.

[0179] Thereby, the information processing apparatus according to the embodiment can generate a graph in which, among a plurality of objects, objects having a large average distance from a predetermined number of other objects located in the vicinity are preferentially added. Therefore, the information processing apparatus can generate a graph in consideration of the order of adding nodes.

[0180] Also, in the information processing apparatus according to the embodiment, the acquisition unit acquires a registration processing graph, which is another graph different from the graph and in which a plurality of nodes corresponding to each of a plurality of objects are connected by edges, and reference information indicating a criterion for a selection order based on the connection relationship between the plurality of nodes in the registration processing graph. The generation unit generates a graph by selecting one object based on the connection relationship between the plurality of nodes in the registration processing graph and repeating the execution of the registration processing for the selected one object.

[0181] As described above, the information processing apparatus according to the embodiment selects one object based on the connection relationship between a plurality of nodes in the registration processing graph, and repeats the execution of the registration processing for the selected one object, thereby generating a graph based on the connection relationship between the plurality of nodes in the registration processing graph. Therefore, the information processing apparatus can generate a graph in consideration of the addition order of the nodes.

[0182] Also, in the information processing apparatus according to the embodiment, the acquisition unit acquires a registration processing graph including edges input from each of the plurality of nodes to a predetermined number of neighboring nodes.

[0183] Thereby, the information processing apparatus according to the embodiment can generate a graph based on the connection relationship between the plurality of nodes in the registration processing graph including the edges input from each of the plurality of nodes to a predetermined number of neighboring nodes. Therefore, the information processing apparatus can generate a graph in consideration of the addition order of the nodes.

[0184] Also, in the information processing apparatus according to the embodiment, the acquisition unit acquires reference information indicating a selection order criterion based on the in-degree of the edges connected from other nodes in the registration processing graph. The generation unit selects one object based on the in-degree.

[0185] Thereby, the information processing apparatus according to the embodiment can generate a graph based on the in-degree in the registration processing graph. Therefore, the information processing apparatus can generate a graph in consideration of the addition order of the nodes.

[0186] Also, in the information processing apparatus according to the embodiment, the acquisition unit acquires reference information indicating a criterion for selecting in ascending order from the objects with the lowest in-degree in the registration processing graph. The generation unit selects one object in ascending order from the objects with the lowest in-degree in the registration processing graph.

[0187] As a result, the information processing apparatus according to the embodiment can generate a graph by preferentially adding objects with a small in-degree in the registration processing graph. Therefore, the information processing apparatus can generate a graph in consideration of the addition order of nodes.

[0188] Also, in the information processing apparatus according to the embodiment, the acquisition unit acquires reference information indicating a reference for a selection order based on the positional relationship with other objects among a plurality of objects and the connection relationship between a plurality of nodes in the registration processing graph. The generation unit selects one object based on the positional relationship with other objects and the connection relationship between a plurality of nodes in the registration processing graph, and repeats the execution of the registration process for the selected one object, thereby generating a graph.

[0189] In this way, the information processing apparatus according to the embodiment selects one object based on the positional relationship with other objects and the connection relationship between a plurality of nodes in the registration processing graph, and repeats the execution of the registration process for the selected one object, thereby generating a graph based on both the positional relationship with other objects and the connection relationship between a plurality of nodes in the registration processing graph. Therefore, the information processing apparatus can generate a graph in consideration of the addition order of nodes.

[0190] Also, in the information processing apparatus according to the embodiment, the acquisition unit acquires reference information indicating a reference for a selection order based on the distance from a predetermined number of other objects located in the vicinity and the in-degree of the edges connected from other nodes in the registration processing graph. The generation unit selects one object based on the distance from other objects and the in-degree of the edges connected from other nodes, and repeats the execution of the registration process for the selected one object, thereby generating a graph.

[0191] In this way, the information processing apparatus according to the embodiment selects one object based on the distance from other objects and the in-degree of the edges connected from other nodes, and repeatedly executes the registration process for the selected one object, thereby generating a graph based on both the distance from other objects and the in-degree of the edges connected from other nodes. Therefore, the information processing apparatus can generate a graph in consideration of the addition order of the nodes.

[0192] Also, in the information processing apparatus according to the embodiment, the generation unit selects one object based on the index value calculated from the distance from other objects and the in-degree of the edges connected from other nodes, and repeatedly executes the registration process for the selected one object, thereby generating a graph.

[0193] In this way, the information processing apparatus according to the embodiment selects one object based on the index value calculated from the distance from other objects and the in-degree of the edges connected from other nodes, and repeatedly executes the registration process for the selected one object, thereby generating a graph based on both the distance from other objects and the in-degree of the edges connected from other nodes. Therefore, the information processing apparatus can generate a graph in consideration of the addition order of the nodes.

[0194] Also, in the information processing apparatus according to the embodiment, the acquisition unit acquires reference information indicating a reference for sequentially selecting from among a plurality of objects in ascending order of the index value. The generation unit sequentially selects one object in ascending order of the index value and repeatedly executes the registration process for the selected one object, thereby generating a graph.

[0195] In this way, the information processing apparatus according to the embodiment selects, in order from the smallest, one object as a single object, and repeatedly executes the registration process for the selected one object, thereby generating a graph considering both the distance from other objects and the in-degree of the edges connected from other nodes. Therefore, the information processing apparatus can generate a graph considering the order of adding nodes.

[0196] Also, in the information processing apparatus according to the embodiment, the acquisition unit acquires reference information indicating a selection order criterion based on a first order determined by the positional relationship with other objects among a plurality of objects and a second order determined by the connection relationship among a plurality of nodes in the registration process graph. The generation unit selects one object based on the first order and the second order, and repeatedly executes the registration process for the selected one object, thereby generating a graph.

[0197] In this way, the information processing apparatus according to the embodiment selects one object based on a first order determined by the positional relationship with other objects among a plurality of objects and a second order determined by the connection relationship among a plurality of nodes in the registration process graph, and repeatedly executes the registration process for the selected one object, thereby generating a graph considering both the distance from other objects and the in-degree of the edges connected from other nodes. Therefore, the information processing apparatus can generate a graph considering the order of adding nodes.

[0198] Also, in the information processing apparatus according to the embodiment, the acquisition unit acquires reference information indicating a criterion for selecting, in order from the smallest, the average of a first order determined by the positional relationship with other objects among a plurality of objects and a second order determined by the connection relationship among a plurality of nodes in the registration process graph. The generation unit selects one object in order from the smallest average of the first order and the second order, and repeatedly executes the registration process for the selected one object, thereby generating a graph.

[0199] As described above, the information processing apparatus according to the embodiment selects, in ascending order of the smaller average of the first order determined by the positional relationship with other objects among a plurality of objects and the second order determined by the connection relationship among a plurality of nodes in the registration processing graph, one object at a time, and repeatedly executes the registration processing for the selected one object, thereby generating a graph in consideration of both the distance from other objects and the in-degree of the edges connected from other nodes. Therefore, the information processing apparatus can generate a graph in consideration of the order of adding nodes.

[0200] 〔7. Hardware Configuration〕 The information processing apparatus 100 according to the embodiment described above is realized by, for example, a computer 1000 configured as shown in FIG. 12. FIG. 12 is a hardware configuration diagram showing an example of a computer that realizes the functions of the information processing apparatus. The computer 1000 includes a CPU 1100, a RAM 1200, a ROM (Read Only Memory) 1300, an HDD (Hard Disk Drive) 1400, a communication interface (I / F) 1500, an input / output interface (I / F) 1600, and a media interface (I / F) 1700.

[0201] The CPU 1100 operates based on a program stored in the ROM 1300 or the HDD 1400 and controls each part. The ROM 1300 stores a boot program executed by the CPU 1100 when the computer 1000 is started up, a program dependent on the hardware of the computer 1000, and the like.

[0202] The HDD 1400 stores a program executed by the CPU 1100 and data used by such a program. The communication interface 1500 receives data from other devices via the network N and sends it to the CPU 1100, and sends the data generated by the CPU 1100 to other devices via the network N.

[0203] 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 the input devices via the input / output interface 1600. Also, the CPU 1100 outputs the generated data to the output devices via the input / output interface 1600.

[0204] 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 such a 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, etc.

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

[0206] As described above in detail some of the embodiments of the present application with reference to the drawings, these are examples, and the present invention can be implemented in other forms with various modifications and improvements based on the knowledge of those skilled in the art, starting from the aspects described in the disclosure of the invention.

[0207] 〔8. Others〕 Also, among the processes described in the above embodiments, all or part of the processes described as being automatically performed can be manually performed, or all or part of the processes described as being manually performed can be automatically performed by a known method. In addition, regarding the processing procedures, specific names, and information including various data and parameters shown in the above documents and drawings, they can be arbitrarily changed unless otherwise specified. For example, the various information shown in each figure is not limited to the illustrated information.

[0208] In addition, each component of each device shown in the drawings is a functional concept and does not necessarily have to be physically configured as shown in the drawings. That is, the specific form of the distribution and integration of each device is not limited to that shown in the drawings, and all or part of it can be functionally or physically distributed and integrated in any unit according to various loads and usage situations.

[0209] Also, the processes described in each of the above-described embodiments can be appropriately combined as long as the processing contents do not conflict.

[0210] Also, the above-mentioned "section (section, module, unit)" can be read as "means" or "circuit", etc. For example, the acquisition section can be read as an acquisition means or an acquisition circuit.

Explanation of Reference Numerals

[0211] 1 Information Processing System 100 Information Processing Apparatus 121 Object Information Storage Unit 122 Reference Information Storage Unit 123 Graph Information Storage Unit 124 Starting Point Information Storage Unit 125 Graph Information Storage Unit for Registration Processing 130 Control Unit 131 Acquisition Unit 132 Search Unit 133 Generation Unit 134 Provision Unit 10 Terminal Device 50 Information providing device N Network

Claims

1. An acquisition unit that acquires object information indicating a plurality of objects to be searched and reference information serving as a criterion for the selection order of objects to be added to the graph from the plurality of objects when generating a graph in which a plurality of nodes corresponding to each of the plurality of objects are connected by edges; A generation unit that generates the graph by selecting one unselected object from the plurality of objects based on the criterion of the selection order indicated by the reference information, adding one node corresponding to the selected one object to the graph, and executing a registration process of connecting between the neighboring nodes of the one node extracted by a search process for searching the graph and the one node with the edge; An information processing apparatus comprising the above.

2. The acquisition unit acquires the reference information indicating the criterion of selecting in order from the objects located in a sparse space among the plurality of objects; The generation unit generates the graph by sequentially selecting the one object from the objects located in the sparse space and repeatedly executing the registration process for the selected one object. The information processing apparatus according to claim 1, characterized in that.

3. The acquisition unit acquires the reference information indicating the criterion of the selection order based on the positional relationship with other objects among the plurality of objects; The generation unit generates the graph by selecting the one object based on the positional relationship with other objects and repeatedly executing the registration process for the selected one object. The information processing apparatus according to claim 1, characterized in that.

4. The acquisition unit acquires the reference information indicating the criterion of selecting in order from the objects far from other objects among the plurality of objects; The generation unit generates the graph by sequentially selecting the one object from the objects far from other objects and repeatedly executing the registration process for the selected one object. The information processing apparatus according to claim 3, characterized in that.

5. The acquisition unit acquires the reference information indicating the criterion of selecting in order from the objects far from a predetermined number of the other objects located nearby among the plurality of objects. The information processing apparatus according to claim 4, characterized in that...

6. The acquisition unit acquires the reference information indicating the reference for sequentially selecting, from among the plurality of objects, the object having a large average distance from a predetermined number of the other objects located in the vicinity. The information processing apparatus according to claim 5, characterized in that...

7. The acquisition unit acquires a registration processing graph, which is another graph different from the graph and in which a plurality of nodes corresponding to each of the plurality of objects are connected by edges, and the reference information indicating the reference for the selection order based on the connection relationship between the plurality of nodes in the registration processing graph, The generation unit generates the graph by selecting the one object based on the connection relationship between the plurality of nodes in the registration processing graph and repeatedly executing the registration processing for the selected one object. The information processing apparatus according to claim 1, characterized in that...

8. The acquisition unit acquires a registration processing graph including edges input from a predetermined number of neighboring nodes to each of the plurality of nodes. The information processing apparatus according to claim 7, characterized in that...

9. The acquisition unit acquires the reference information indicating the reference for the selection order based on the in-degree of the edges connected from other nodes in the registration processing graph, The generation unit selects the one object based on the in-degree. The information processing apparatus according to claim 7, characterized in that...

10. The acquisition unit acquires the reference information indicating the reference for sequentially selecting from the objects having a small in-degree in the registration processing graph, The generation unit sequentially selects the one object from the objects having a small in-degree in the registration processing graph. The information processing apparatus according to claim 9, characterized in that...

11. The acquisition unit acquires the reference information indicating the reference for the selection order based on the positional relationship between the plurality of objects and the connection relationship between the plurality of nodes in the registration processing graph, The generation unit selects the one object based on the positional relationship with the other objects and the connection relationship between the plurality of nodes in the registration processing graph, and generates the graph by repeatedly executing the registration processing for the selected one object. The information processing apparatus according to claim 7, characterized in that...

12. The acquisition unit acquires the reference information indicating the reference of the selection order based on the distances from a predetermined number of the other objects located in the vicinity and the in-degree of the edges connected from other nodes in the registration processing graph; The generation unit selects the one object based on the distances from the other objects and the in-degree of the edges connected from the other nodes, and repeats the execution of the registration processing for the selected one object to generate the graph. The information processing apparatus according to claim 11, characterized in that...

13. The generation unit selects the one object based on an index value calculated from the distances from the other objects and the in-degree of the edges connected from the other nodes, and repeats the execution of the registration processing for the selected one object to generate the graph. The information processing apparatus according to claim 12, characterized in that...

14. The acquisition unit acquires the reference information indicating the reference of selecting in order from the larger index values among the plurality of objects; The generation unit selects the one object in order from the larger index values, and repeats the execution of the registration processing for the selected one object to generate the graph. The information processing apparatus according to claim 13, characterized in that...

15. The acquisition unit acquires the reference information indicating the reference of selecting in order from the smaller index values among the plurality of objects; The generation unit selects the one object in order from the smaller index values, and repeats the execution of the registration processing for the selected one object to generate the graph. The information processing apparatus according to claim 13, characterized in that...

16. The acquisition unit acquires the reference information indicating the reference of the selection order based on a first order determined by the positional relationship with other objects among the plurality of objects and a second order determined by the connection relationship among the plurality of nodes in the registration processing graph; The generation unit selects the one object based on the first order and the second order, and repeats the execution of the registration processing for the selected one object to generate the graph. The information processing apparatus according to claim 11, characterized in that...

17. The acquisition unit acquires reference information indicating the reference for selecting, in ascending order, from among the first order determined by the positional relationship with other objects in the plurality of objects and the second order determined by the connection relationship between the plurality of nodes in the registration processing graph, the one with the smaller average of the first order and the second order; The generation unit selects, in ascending order, the one object from among the first order and the second order with the smaller average, and generates the graph by repeatedly executing the registration process for the selected one object. The information processing apparatus according to claim 16, characterized in that...

18. An information processing method executed by a computer, comprising: an acquisition step of acquiring object information indicating a plurality of objects to be searched and reference information serving as a reference for the selection order of the objects to be added to the graph from among the plurality of objects when generating a graph in which a plurality of nodes corresponding to each of the plurality of objects are connected by edges; a generation step of generating the graph by selecting one unselected object from among the plurality of objects based on the selection order reference indicated by the reference information, adding one node corresponding to the selected one object to the graph, and executing a registration process of connecting between the one node and neighboring nodes of the one node extracted by a search process for searching the graph with the edge; An information processing method characterized by including the above.

19. An acquisition procedure for acquiring object information indicating a plurality of objects to be searched and reference information serving as a reference for the selection order of the objects to be added to the graph from among the plurality of objects when generating a graph in which a plurality of nodes corresponding to each of the plurality of objects are connected by edges; a generation procedure for generating the graph by causing a computer to select one unselected object from among the plurality of objects based on the selection order reference indicated by the reference information, add one node corresponding to the selected one object to the graph, and execute a registration process of connecting between the one node and neighboring nodes of the one node extracted by a search process for searching the graph with the edge; An information processing program characterized by causing a computer to execute the above.

Citation Information

Patent Citations

  • Information processing apparatus, information processing method, and information processing program

    JP2023027810A

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

    JP7080803B2

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

    JP7330756B2