WO2019216346A1 - グラフ更新装置、グラフ更新方法、及びプログラム - Google Patents

グラフ更新装置、グラフ更新方法、及びプログラム Download PDF

Info

Publication number
WO2019216346A1
WO2019216346A1 PCT/JP2019/018411 JP2019018411W WO2019216346A1 WO 2019216346 A1 WO2019216346 A1 WO 2019216346A1 JP 2019018411 W JP2019018411 W JP 2019018411W WO 2019216346 A1 WO2019216346 A1 WO 2019216346A1
Authority
WO
WIPO (PCT)
Prior art keywords
vertex
neighborhood
graph
vertices
additional
Prior art date
Application number
PCT/JP2019/018411
Other languages
English (en)
French (fr)
Inventor
一生 青山
正嗣 服部
Original Assignee
日本電信電話株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to US17/053,751 priority Critical patent/US11416552B2/en
Publication of WO2019216346A1 publication Critical patent/WO2019216346A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/906Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24147Distances to closest patterns, e.g. nearest neighbour classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Definitions

  • the present invention relates to a technique for updating a neighborhood graph used in fields such as machine learning and search algorithms.
  • the neighborhood graph has various forms, and is applied in various fields according to the form.
  • a typical neighborhood graph has a point in an object or space as a vertex, and an edge is provided between the two vertices based on the sparseness or perspective of the relationship between the two vertices.
  • K-nearest neighbor graph K-NN graph
  • DT Delaunay triangulation
  • RNG relative neighborhood graph
  • ⁇ MST minimum spanning tree
  • Non-Patent Document 1 the search method using the graph index includes an approximate search method (Non-Patent Document 2) or a heuristic method (Patent Documents 1 and 2, Non-Patent Documents 1 and 3). Has been realized.
  • the graph index type search method is fast at the time of searching, but requires a large amount of calculation at the time of index construction. For example, if an exact K nearest neighbor graph is constructed using the simplest method for an object set with n objects (vertices) to be searched, time calculation of O (n 2 ) is performed for dissimilarity calculation Requires amount. In order to reduce this calculation load, a heuristic method for constructing an approximate K nearest neighbor graph has been proposed (Non-Patent Document 4). These methods are methods for constructing a K nearest neighbor graph by batch processing for a given search target object set (vertex set).
  • K. Aoyama, K. Saito, T. Yamada, and N. Ueda "Fast similarity search in small-world networks," Int. Workshop Complex Networks (CompleNet 2009), pp. 185-196, 2009.
  • K. Aoyama, K. Saito, H. Sawada, and N. Ueda "Fast approximate similarity search based on degree-reduced neighborhood graphs," ACM SIGKDD Conf. Knowledge Discovery 2011 Data Mining 2011 K. Aoyama, A. Ogawa, T. Hattori, T. Hori, and A. Nakamura, "Graph index based query-by-example search on a large speech data set" Proc. Int. Conf.
  • the exact or approximate K nearest neighbor graph and the graph having a similar structure to the exact or approximate K nearest neighbor graph are referred to as a neighborhood graph, and the terms object and vertex are used without distinction unless otherwise specified. That is, the object and the vertex are identified with each other.
  • a neighborhood graph extending between K vertices for each vertex, including a strict K nearest neighborhood graph and an approximate K nearest neighborhood graph is generally referred to as a K neighborhood graph.
  • the present invention has been made in view of the above points, and an object thereof is to reduce the amount of time calculation required to add a new vertex to a neighborhood graph.
  • a K neighborhood vertex set of the additional vertex in the neighborhood graph is searched, and the K neighborhood vertex set is output.
  • a K-nearest vertex search unit Based on the neighborhood graph, the additional vertices, and the K neighborhood vertex set of the additional vertices, there may be vertices in the neighborhood graph, and the additional vertex may be included in the K neighborhood vertex set of the vertex
  • a vertex selection unit that selects a candidate vertex set that is a set of certain vertices and outputs the candidate vertex set; Reconstruct the K neighborhood vertex set for all vertices of the neighborhood graph using the K neighborhood vertex set of each vertex of the vertex candidate set, and add the K neighborhood vertex set of the additional vertex to the reconstructed K neighborhood vertex set
  • the disclosed technology can reduce the amount of time required to add new vertices to the neighborhood graph.
  • FIG. 1 is a configuration diagram of a neighborhood graph update device 100.
  • FIG. 2 is a hardware configuration diagram of a neighborhood graph update device 100.
  • FIG. 5 is a flowchart for explaining an operation example of a vertex selection unit 120. It is a figure for demonstrating a 1st filter. It is a figure for demonstrating a 2nd filter. It is a figure for demonstrating a 3rd filter. It is a figure for demonstrating a 4th filter.
  • 5 is a flowchart for explaining an operation example of a neighborhood graph update unit 130. It is a figure which shows the function detailed example of the neighborhood graph update part 130.
  • FIG. 5 is a flowchart for explaining an operation example of a neighborhood graph update unit 130. It is a figure for demonstrating the K-DR graph construction method. It is a figure which shows the speed performance in the case of updating an approximate K-DR graph.
  • FIG. 1 is a configuration diagram of a neighborhood graph update device 100 according to the present embodiment. The configuration and operation outline of the neighborhood graph update device 100 will be described with reference to FIG.
  • the neighborhood graph update device 100 includes a K neighborhood vertex search unit 110, a vertex selection unit 120, and a neighborhood graph update unit 130 as main components.
  • the outline of the operation of each part of the neighborhood graph update device 100 is as follows.
  • the K neighborhood vertex search unit 110 receives a neighborhood graph (here, K neighborhood graph), an object to be added (corresponding to a new vertex to be added to the K neighborhood graph), and the like.
  • the K-neighbor vertex search unit 110 regards a new vertex as a search query, performs a graph index type search using the K-neighbor graph to which the vertex is added as a graph index, and sets the K-neighbor vertex of the added vertex as a K-neighbor Find from the graph. For example, the K neighbor vertex search unit 110 finds a set of K vertices closest to the vertex to be added (a subset of the vertices of the graph as an index).
  • the vertex selection unit 120 selects, from all the n vertices, vertices in which the added vertex may be closer to the nearest K-th nearest vertex at the current time.
  • the vertex selection unit 120 uses a filter in order to avoid calculating the distance between the vertex to be added and each of the n vertices. This filter reduces the amount of time calculation by performing distance calculation only with m ( ⁇ n) vertices.
  • the filter is, for example, a filter that excludes vertices from which the added vertex is not a K-neighbor vertex from the set of all vertices of the input K-neighbor graph.
  • excludede vertices whose added vertices are not K-neighbor vertices may be exact exclusions such as excluding only vertices whose added vertices are not K-nearest vertices, or excluded vertices
  • approximate exclusion that includes vertices with the added vertices as the K-neighbor vertices may be included.
  • the neighborhood graph update unit 130 generates and outputs a neighborhood graph to which new vertices are added by using the vertex set selected by the vertex selection unit 120 and the like.
  • the neighborhood graph is, for example, an approximate order reduction K nearest neighbor graph (approximate K-DR graph).
  • the neighborhood graph update device 100 described above can be realized by causing a device such as a computer to execute a program describing the processing content described in the present embodiment. That is, the functions of the neighborhood graph update device 100 are realized by executing a program corresponding to the processing executed by the neighborhood graph update device 100 using hardware resources such as a CPU and a memory built in the computer. It is possible.
  • the above-mentioned program can be recorded on a computer-readable recording medium (portable memory or the like), stored, or distributed. It is also possible to provide the program through a network such as the Internet or electronic mail.
  • FIG. 2 is a diagram illustrating a hardware configuration example of the neighborhood graph update device 100.
  • 2 includes a drive device 1000, an auxiliary storage device 1002, a memory device 1003, a CPU 1004, an interface device 1005, a display device 1006, an input device 1007, and the like that are mutually connected by a bus B. .
  • the display device 1006 and the input device 1007 may not be provided.
  • a program for realizing processing in the neighborhood graph update device 100 is provided by a recording medium 1001 such as a CD-ROM or a memory card, for example.
  • a recording medium 1001 such as a CD-ROM or a memory card
  • the program is installed from the recording medium 1001 to the auxiliary storage device 1002 via the drive device 1000.
  • the auxiliary storage device 1002 stores the installed program and stores necessary files and data.
  • the memory device 1003 reads the program from the auxiliary storage device 1002 and stores it when there is an instruction to start the program.
  • the CPU 1004 realizes functions related to the neighborhood graph update device 100 according to a program stored in the memory device 1003.
  • the interface device 1005 is used as an interface for connecting to a network.
  • the display device 1006 displays a GUI (Graphical User Interface) or the like by a program.
  • the input device 1007 includes a keyboard and mouse, buttons, a touch panel, and the like, and is used to input various operation instructions.
  • object data Object data corresponding to vertices to be added to the neighborhood graph.
  • the object data may be simply referred to as “object”.
  • Examples of the relationship between objects include distances such as Euclidean distance and Manhattan distance, dissimilarity represented by Kullback-Leibler divergence, similarity such as cosine similarity, and the like.
  • the neighborhood graph and the object to be added are indispensable, but the object of 3) can be transferred to the neighborhood graph of 1) , 1) and 3) can be combined into a neighborhood graph.
  • distance is selected as a measure of the relationship between two objects (vertices) is used.
  • a scaling factor is introduced for generalization to dissimilarity and the like will be described.
  • the neighborhood graph update device 100 outputs an updated neighborhood graph that includes the vertices to be added in 2) based on the input data 1) to 3).
  • the neighborhood graph update device 100 includes a K neighborhood vertex search unit 110, a vertex selection unit 120, and a neighborhood graph update unit 130.
  • the K neighborhood vertex search unit 110 receives the above-described three types of data and outputs a K neighborhood vertex set of the vertex (v q ) to be added. That is, the K neighborhood vertex search unit 110 searches K vertices in ascending order of the distance from the vertex closest to v q in the neighborhood graph, and outputs a K neighborhood vertex set that is a set of the searched K vertices.
  • the vertex selection unit 120 receives as input the neighborhood graph of 1), the vertex to be added in 2), and the K neighborhood vertex set of the additional vertex that is the output of the K neighborhood vertex search unit 110, and its own K neighborhood vertex set is corrected. Select possible vertices from all vertices in the neighborhood graph, and output the selected vertex set.
  • a set of vertices whose own K-neighbor vertex set may be modified may be referred to as a set of vertices whose new K-vertex set may be included in the own K-neighbor set. .
  • the neighborhood graph update unit 130 is selected as the neighborhood graph of 1), the vertex to be added 2), the K neighborhood vertex set of the vertex to be added which is the output of the K neighborhood vertex search unit 110, and the output of the vertex selection unit 120. Using the set of vertices as an input, create and output a neighborhood graph with new vertices added.
  • K Neighbor Vertex Search Unit 110 As shown in FIG. 1, the above-described data 1) to 3) are input to the K neighborhood vertex search unit 110.
  • the K neighbor vertex search unit 110 searches for K neighbor vertices of the vertex to be added using, for example, a graph index type similarity search method. That is, when the graph index type similarity search method is used, the K neighborhood vertex search unit 110 regards the vertex to be added as a search query, and performs a graph index type search using the K neighborhood graph to which the vertex is added as a graph index. carry out.
  • search algorithms include (a) Best-first search (abbreviated as BS) described in Non-Patent Document 1, and (b) Multi-initial vertex start greedy search (Multi-) described in Non-Patent Document 2.
  • a fast graph search algorithm such as start greedy search (abbreviated as MSGS) can be used.
  • the BS in (a) searches for the greedy from the given initial vertex (the vertex closest to the query vertex among the adjacent vertices of the current vertex is taken as the next current vertex, this search is repeated, and the current vertex is closest to the query vertex.
  • the greedy search is completed, the vertices that have been calculated from the query vertex and the distance so far are the vertices whose distance to the query has not been calculated.
  • This is a method in which the vertex next to the query vertex next to the current vertex is set as the next current vertex, and the search method is terminated when a preset calculation cost is reached.
  • MSGS in (b) uses parallel processing, starts a greedy search from a preset number of multiple initial vertices, ends when the greedy search ends, and finds query vertices found in each of multiple search paths For the merged set of vertices close to, K vertices are set as K neighbor vertices from the closest vertex in ascending order based on distance.
  • a breadth-first search may be executed based on a preset end condition starting from the end of the greedy search as a starting point.
  • BFS termination conditions include computational cost, search depth, and invariant K-nearest vertex set.
  • the accuracy of a solution to be obtained depends on a time calculation amount (for example, a distance calculation cost). For example, if the calculation cost is set to n (number of vertices in the neighborhood graph) by the best-first search method (BS), it matches the full search (linear scan method, brute-force method) and obtains a strict K neighborhood vertex set Can do.
  • a time calculation amount for example, a distance calculation cost. For example, if the calculation cost is set to n (number of vertices in the neighborhood graph) by the best-first search method (BS), it matches the full search (linear scan method, brute-force method) and obtains a strict K neighborhood vertex set Can do.
  • ⁇ Vertex selection unit 120> input / output and processing contents of the vertex selection unit 120 will be described.
  • the vertex selection unit 120 K neighborhood graph, new vertices to add (v q), and an output of K near the vertex search unit 110, a new vertex of (v q) A K-nearest vertex set is input.
  • the vertex selection unit 120 may execute a procedure in accordance with the flowchart of FIG. 3 so that a new vertex (v q ) may become its own K neighborhood (K neighborhood vertex).
  • a candidate vertex (v x ) is selected from vertices that are elements of the vertex set (V,
  • n) of the input K-neighbor graph (v x ⁇ V).
  • the fourth filter is applied at any one of the locations A, B, and C shown as insertion location examples 1 to 3. Further, the fourth filter may not be used. Also, here, the first to fourth filters are used, but this is an example, and one, two, or three of these filters may be applied, or the first to fourth filters may be applied. In addition to the four filters, additional filters may be applied.
  • the vertex selection unit 120 applies the first filter.
  • the vertex selection unit 120 is an element of the K neighborhood vertex set (B q ) of the new vertex (v q ) (v x ⁇ B q ), and is the one up to the K th neighborhood vertex of itself (v x ).
  • a vertex (v x ) whose distance (max_dist) is smaller than the distance (dist (v q , v x )) between v q and v x is excluded from the candidates.
  • FIG. 4A shows an example in which the vertex (v x ) is excluded from the vertex candidates by the first filter.
  • dist (v q , v x ) is the distance between the vertex (v x ) and its own (v x ) K-th neighbor vertex ( max_dist). Therefore, the vertex (v x ) is excluded from the selection candidates. In this case, the new vertex (v q ) cannot be a K-vicinity vertex of the vertex (v x ).
  • FIG. 4B shows an example in which the vertex (v x ) passes through the first filter.
  • dist (v q , v x ) is smaller than the distance (max_dist) between the vertex (v x ) and the K-th neighboring vertex of itself (v x ).
  • the vertex (v x ) passes through the first filter.
  • the first filter is when the metric space is defined, i.e., when the relationship between vertices satisfies the distance axiom, if dist (v q , v x )> max_dist, then v q is the K neighborhood of v x It is based on not being a vertex.
  • the vertex selection unit 120 applies the second filter.
  • the vertex (v x ) is removed from the selection candidates.
  • FIG. 5A shows an example in which the vertex (v x ) is excluded from the vertex candidates by the second filter.
  • K near vertex set of new vertices (v q) and (B q) intersection of the K neighboring vertex set of vertices (v x) (B x) is empty. Therefore, the vertex (v x ) is excluded from the vertex candidates.
  • FIG. 5B shows an example in which the vertex (v x ) passes through the second filter.
  • K near vertex set of new vertices (v q) and (B q) intersection of the K neighboring vertex set of vertices (v x) (B x) is not an empty set In this example, it has two vertices. Therefore, the vertex (v x ) is not excluded from the selection candidates.
  • the vertex (v x ) passes through the second filter, but the new vertex (v q ) is not a K-neighbor vertex of the vertex (v x ).
  • the application method of the second filter is a heuristic method using the concept of "A neighbor of a neighbor is also to be a neighbor.”
  • v q may be a K-neighbor vertex of v x .
  • the vertex selection unit 120 applies the third filter. Note that the third filter is applied after the second filter. Therefore, with respect to the vertex (v x ) to be determined by the third filter, the new vertex (v q ) K neighborhood vertex set (B q ) and the vertex (v x ) K neighborhood vertex set (B x ) The intersection set with is not an empty set.
  • the vertex selection unit 120 is not an element of the K neighbor vertex set (B q ) of the new vertex (v q ), but the distance (max_dist) to itself (v x ) to the K th neighbor vertex is the vertex ( v excluding (lower limit of the distance between v x) (LB (v q , v x) q) as vertexes) less than or equal to the vertex than (v x) from the candidate.
  • Vertex (v q) K near vertex set of (B q) the vertex when the vertex of a common set of K near vertex set of (v x) (B x) is one, for that vertex
  • the K near vertex set of vertices (v q) (B q) when there are a plurality apex of intersection of the vertex (v x) K near vertex set of (B x),
  • a K near vertex set of vertices (v q) (B q) when there are a plurality apex of intersection of the vertex (v x) K near vertex set of (B x), among the plurality of vertices ⁇ (distance from the vertex (v q ))-(distance from the vertex (v x ))
  • for any vertex of may be LB (v q , v x ).
  • FIG. 6A shows an example in which the vertex (v x ) is excluded from the vertex candidates by the third filter.
  • LB (v q , v x )
  • FIG. 6B shows an example in which the vertex (v x ) passes through the third filter.
  • ⁇ (LB (v q , v x )
  • the example in FIG. 6B shows an example in which the vertex (v x ) passes through the third filter, but v q is not a K-neighbor vertex of v x .
  • the third filter is that when metric space is defined, that is, when the relationship between vertices satisfies the metric axiom, if LB (v q , v x ) ⁇ max_dist, then v q is the K neighborhood of v x Based on not being a vertex.
  • a fourth filter may be applied in A, B, or C of FIG.
  • the vertex selection unit 120 is outside of K near the target vertex (v x) additional vertex (v q), distance to the K-th near the apex of the additional vertex (v q) (K If K near sphere radius near sphere radius) target vertex than (v x) is small, does not select the target vertex (v x). That is, it is removed by a filter.
  • the difference between the fourth filter and the third filter is that the fourth filter does not depend on the presence or absence of vertices included in the common set, and is determined not by the lower limit of the distance but by the magnitude relationship of the sphere radii Is a point.
  • FIG. 7A shows an example in which the vertex (v x ) is excluded from the vertex candidates by the fourth filter.
  • the K vicinity sphere radius ((dist (v q , v qK )) of the additional vertex (v q ) is larger than the K vicinity sphere radius of the target vertex (v x ). Therefore, the vertex (v x ) is removed from the selection candidates.
  • FIG. 7B shows an example in which the vertex (v x ) passes through the fourth filter.
  • the K-near sphere radius ((dist (v q , v qK )) of the additional vertex (v q ) is smaller than the K-near sphere radius of the target vertex (v x ).
  • the vertex (v x ) passes through the fourth filter.
  • the vertex (v x ) that has passed through the first filter has already calculated the exact distance (dist (v q , v x )) between v q and v x, and the K vertex of the additional vertex (v q ) Since it is an element of the set, it is added to the vertex set in S104 of FIG.
  • the vertex selecting unit 120 newly adds a vertex (v x ) that has passed through the second and third filters (or the second, third, and fourth filters) ( v q ), and if the new vertex (v q ) is within the distance of its own K neighborhood, select that vertex (v x ) and add it to the vertex set as the selected vertex .
  • the neighborhood graph update unit 130 includes a neighborhood graph (K neighborhood graph), a new vertex to be added, a K neighborhood vertex set of new vertices as an output of the K neighborhood vertex search unit 110, and A set of vertices, which is an output of the vertex selection unit 120 and may possibly include a new vertex in its own K neighborhood vertex set, is input. Based on these input data, the neighborhood graph updating unit 130 creates and outputs a neighborhood graph to which new vertices are added by executing the procedure according to the flowchart of FIG.
  • the neighborhood graph update unit 130 reconstructs the k-nearest vertex set related to all the vertices of the inputted neighborhood graph based on the K-nearest vertex set of each vertex of the selected vertex set. More specifically, as an example, the neighborhood graph update unit 130 calculates the distance between each vertex of the selected vertex set in the input neighborhood graph and each other vertex including the added new vertex. Then, a K neighborhood vertex set is obtained. The neighborhood graph update unit 130 then sets the K neighborhood vertex set and the K neighborhood vertex set of each vertex other than the selected vertex set in the input neighborhood graph (already possessed as neighborhood graph data) To reconstruct the K-neighbor vertex set for all vertices of the input neighborhood graph.
  • the neighborhood graph update unit 130 adds the K neighborhood vertex set of new vertices to the vertex set reconstructed in S201, and constructs an approximate directed neighborhood graph.
  • the neighborhood graph update unit 130 converts the neighborhood graph having the same structure as the input neighborhood graph, if necessary, into the approximate directed neighborhood graph. Rebuild on the basis.
  • the neighborhood graph update unit 130 outputs a neighborhood graph to which a new vertex is added.
  • an approximate directed K neighborhood graph is constructed up to S202, and the directed K neighborhood graph is defined according to the definition of undirecting. Let it be an undirected K neighborhood graph.
  • the definition of invalidation is, for example, a rule such that an undirected edge is set in the case of mutual edges, and an undirected edge is set when either an output edge or an input edge exists.
  • the neighborhood graph update unit 130 can construct various neighborhood graphs by using the approximate directed neighborhood graph constructed in S202.
  • FIG. 9 is a diagram illustrating a configuration of the neighborhood graph update unit 130 when the neighborhood graph update unit 130 constructs an approximate degree-reduced K nearest neighbor graph.
  • the input data is the same as the input data input to the neighborhood graph update unit 130 described above.
  • the neighborhood graph update unit 130 outputs an approximate degree-reduced K nearest neighbor graph.
  • the neighborhood graph update unit 130 includes a directed K neighborhood graph generation unit 131 and an order reduction K nearest neighbor graph generation unit 132 (hereinafter referred to as a K-DR graph generation unit 132). .
  • the operation of the neighborhood graph update unit 130 will be described with reference to the flowcharts of FIGS. 10 and 11.
  • the directed K neighborhood graph generation unit 131 reconstructs the K neighborhood vertex set for all the vertices of the input neighborhood graph based on the K neighborhood vertex set of each vertex of the selected vertex set. More specifically, as an example, the directed K neighborhood graph generation unit 131, for each vertex of the selected vertex set in the input neighborhood graph, between each other vertex including the added new vertex. Calculate the distance and find the K-neighbor vertex set.
  • the neighborhood graph update unit 130 sets the K neighborhood vertex set and the K neighborhood vertex set of each vertex other than the selected vertex set in the input neighborhood graph (already possessed as neighborhood graph data) To reconstruct the K-neighbor vertex set for all vertices of the input neighborhood graph.
  • the directed K neighborhood graph generation unit 131 adds the K neighborhood vertex set of new vertices to the K neighborhood vertex set relating to all the vertices reconstructed in S301, and the approximate directed K neighborhood graph (or approximate (K-direction neighbor list).
  • the K-DR graph generation unit 132 receives the approximate directed K neighborhood graph (or the approximate directed K neighborhood list) created by the directed K neighborhood graph generation unit 131 as an input, for example, Non-Patent Documents 1 and 2. Is applied to generate an approximate K-DR graph to which new vertices are added.
  • the K-DR graph generation unit 132 outputs an approximate K-DR graph to which a new vertex is added.
  • the approximate directed K neighbor list created in S302 is a list in which K neighbor vertices are arranged in ascending order of distance for each vertex.
  • the approximate directed K neighborhood list may be referred to as an approximate directed K neighborhood graph.
  • the K-DR graph generation unit 132 sets the second closest vertex as a vertex candidate that extends the side. If it can be reached from the second closest vertex to the origin by following an existing edge toward the nearest vertex (ie, reachable by greedy search), an undirected edge is not generated and it cannot be reached Generate undirected edges only.
  • a 2-DR graph is constructed by performing this operation on all vertices.
  • k is set to k + 1.
  • a (k-1) -DR graph is constructed (a 2-DR graph is constructed if it is the first iteration).
  • the K-DR graph generation unit 132 sets the k-th closest vertex for each vertex as a candidate vertex for extending a side. If the k-th apex can reach the starting point by the greedy search method, an undirected side is not generated, and an undirected side is generated between the starting point and the k-th apex only when it cannot be reached.
  • a k-DR graph is constructed by performing this operation on all vertices.
  • each filter When removed by the first filter: dist (v q , v x )> max_dist ⁇ ⁇ 1
  • the ⁇ of each filter may be different. It is not always necessary to match. That is, in the above example, ⁇ 1 and ⁇ 3 may be the same or different.
  • Target data, relationship scale, input graph, additional vertex, computer used as neighborhood graph update device 100, and evaluation method are as follows.
  • FIG. 12 is a diagram showing an evaluation result by the above-described experiment. That is, FIG. 12 is a diagram illustrating a result when the speed performance in the case of updating the approximate K-DR graph is evaluated by experiment.
  • the time complexity for adding a new vertex to the neighborhood graph can be greatly reduced by the technique according to the present invention.
  • the time calculation amount is experimentally O (log n).
  • the vertex selection unit 120 has a time calculation amount of O (1) because the filter function is not directly related to the number of vertices. Therefore, it is possible to update the neighborhood graph by adding vertices to the neighborhood graph with a very small amount of time calculation of O (log n).
  • K which can be a variable related to the amount of time calculation in addition to the target data number n
  • the vertex addition processing time was obtained by experiment using K as a variable. As a result, it was faster than the reference method in the practically applicable range of the number of output sides K.
  • a K neighborhood vertex set of the additional vertex in the neighborhood graph is searched, A vertex in the neighborhood graph based on the K neighborhood vertex search unit that outputs the K neighborhood vertex set, the neighborhood graph, the additional vertex, and the K neighborhood vertex set of the additional vertex, and the vertex A vertex candidate set that is a set of vertices that may include the additional vertices in the K neighborhood vertex set, and a vertex selection unit that outputs the vertex candidate set, and the K neighborhood of each vertex of the vertex candidate set Reconstructing the K neighborhood vertex set for all vertices of the neighborhood graph using the vertex set, and adding the K neighborhood vertex set of the additional vertex to the reconstructed K neighborhood vertex set, thereby updating the updated neighborhood graph.
  • Graph update device characterized in that it comprises a neighborhood graph updating unit for creating is provided.
  • the vertex selection unit selects the vertex candidate set by applying a filter for excluding vertices that do not make the additional vertex a K neighborhood vertex from the vertex set of the neighborhood graph.
  • the neighborhood graph update unit may create an approximate degree-reduced K nearest neighbor graph as the updated neighborhood graph.
  • a program for causing a computer to function as each unit in the above-described graph updating apparatus is provided.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

グラフ更新装置において、近傍グラフと、当該近傍グラフに追加頂点として追加するオブジェクトとに基づいて、前記近傍グラフにおける前記追加頂点のK近傍頂点集合を探索し、当該K近傍頂点集合を出力するK近傍頂点探索部と、前記近傍グラフと、前記追加頂点と、前記追加頂点のK近傍頂点集合とに基づいて、当該近傍グラフ中の頂点であって、当該頂点のK近傍頂点集合に前記追加頂点が含まれる可能性のある頂点の集合である頂点候補集合を選択し、当該頂点候補集合を出力する頂点選択部と、前記頂点候補集合の各頂点のK近傍頂点集合を用いて前記近傍グラフの全頂点に関するK近傍頂点集合を再構築し、前記追加頂点のK近傍頂点集合を前記再構築したK近傍頂点集合に追加することにより、更新された近傍グラフを作成する近傍グラフ更新部とを備える。

Description

グラフ更新装置、グラフ更新方法、及びプログラム
 本発明は、機械学習や探索アルゴリズム等の分野において使用される近傍グラフを更新する技術に関連するものである。
 近傍グラフは多様な形態があり、その形態に応じて種々な分野で応用されている。近傍グラフの典型は、オブジェクト又は空間中の点を頂点とし、2頂点の関係性の疎密又は遠近に基づき、その2頂点間に辺を設けるものである。特に、関係性を有る頂点からの類似度又は距離(又は非類似度)と定義し、その類似度や距離(非類似度)に基づき最も近い又は類似のK個の頂点に辺を張るK最近傍グラフ(K-nearest neighbor graph、K-NN graph)や、ボロノイ図(Voronoi diagram)の双対であるドロネー三角形分割(Delaunay triangulation、DT)、DTの部分グラフである相対近傍グラフ(relative neighborhood graph, RNG)又はRNGの一般化グラフであるβスケルトングラフ、RNGの部分グラフである最小全域木(minimum spanning tree, MST)はパターン認識や探索において利用されている。
 探索法に着目すると、K最近傍グラフやその部分グラフである次数低減K最近傍グラフ(degree-reduced k-nearest neighbor graph、K-DR graph)を探索の索引に利用し、探索を高速に実行するグラフ索引型探索法が提案されている(非特許文献1)。また、グラフ索引を用いた探索法には、近似探索法(非特許文献2)又は発見的方法(特許文献1、2、非特許文献1、3)があり、種々のメディアに対して高速探索を実現してきた。
 グラフ索引型探索法は、探索時は高速であるものの、索引構築時には多大な計算量を要する。例えば、探索対象のオブジェクト(頂点)数がn個のオブジェクト集合に対して、最も素朴な方法を用いて厳密なK最近傍グラフを構築すると、非類似度計算にO(n2)の時間計算量を要する。この計算負荷を緩和するため、近似K最近傍グラフを構築する発見的方法が提案されている(非特許文献4)。これらの方法は、与えられた探索対象オブジェクト集合(頂点集合)に対して、一括処理でK最近傍グラフを構築する方法である。
特許第4774016号公報 特許第4774019号公報
K. Aoyama, K. Saito, T. Yamada, and N. Ueda, "Fast similarity search in small-world networks," Int. Workshop Complex Networks (CompleNet 2009), pp. 185-196, 2009. K. Aoyama, K. Saito, H. Sawada, and N. Ueda, "Fast approximate similarity search based on degree-reduced neighborhood graphs," ACM SIGKDD Conf. Knowledge Discovery and Data Mining, 2011. K. Aoyama, A. Ogawa, T. Hattori, T. Hori, and A. Nakamura, "Graph index based query-by-example search on a large speech data set" Proc. Int. Conf. Acoustics, Speech, and Signal Processing (ICASSP), pp. 8520-8524, 2013. W. Dong, M. Charikar, and K. Li, "Efficient K-nearest neighbor graph construction for generic similarity measures," Int. World Wide Web Conf., 2011.
 構築されたK最近傍グラフに、新たな1つのオブジェクト(頂点)を追加する際には、n+1個のオブジェクトを対象に一括処理をする必要があり、多大な計算量を要するという問題があった。即ち、1つの新たなオブジェクト(頂点)を追加するオンライン処理方法又は逐次処理方法が求められていた。
 以下、厳密又は近似K最近傍グラフ、及び、厳密又は近似K最近傍グラフと類似構造のグラフを近傍グラフと称し、オブジェクトと頂点との用語を、特に指定しない場合は、区別なく使用する。つまり、オブジェクトと頂点とを同一視する。また、各頂点についてK個の頂点との間に辺を張る近傍グラフを、厳密なK最近傍グラフ及び近似的なK最近傍グラフを含め、総じてK近傍グラフと称する。
 本発明は上記の点に鑑みてなされたものであり、新たな頂点を近傍グラフに追加するために要する時間計算量を削減することを目的とする。
 開示の技術によれば、近傍グラフと、当該近傍グラフに追加頂点として追加するオブジェクトとに基づいて、前記近傍グラフにおける前記追加頂点のK近傍頂点集合を探索し、当該K近傍頂点集合を出力するK近傍頂点探索部と、
 前記近傍グラフと、前記追加頂点と、前記追加頂点のK近傍頂点集合とに基づいて、当該近傍グラフ中の頂点であって、当該頂点のK近傍頂点集合に前記追加頂点が含まれる可能性のある頂点の集合である頂点候補集合を選択し、当該頂点候補集合を出力する頂点選択部と、
 前記頂点候補集合の各頂点のK近傍頂点集合を用いて前記近傍グラフの全頂点に関するK近傍頂点集合を再構築し、前記追加頂点のK近傍頂点集合を前記再構築したK近傍頂点集合に追加することにより、更新された近傍グラフを作成する近傍グラフ更新部と
 を備えることを特徴とするグラフ更新装置が提供される。
 開示の技術により、新たな頂点を近傍グラフに追加するために要する時間計算量を削減することができる。
近傍グラフ更新装置100の構成図である。 近傍グラフ更新装置100のハードウェア構成図である。 頂点選択部120の動作例を説明するためのフローチャートである。 第1のフィルターを説明するための図である。 第2のフィルターを説明するための図である。 第3のフィルターを説明するための図である。 第4のフィルターを説明するための図である。 近傍グラフ更新部130の動作例を説明するためのフローチャートである。 近傍グラフ更新部130の機能詳細例を示す図である。 近傍グラフ更新部130の動作例を説明するためのフローチャートである。 K-DRグラフ構築法を説明するための図である。 近似K-DRグラフを更新する場合の速度性能を示す図である。
 以下、図面を参照して本発明の実施の形態(本実施の形態)を詳細に説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
 (システム構成、動作概要)
 図1は、本実施の形態における近傍グラフ更新装置100の構成図である。図1を用いて近傍グラフ更新装置100の構成及び動作概要を説明する。
 図1に示すとおり、近傍グラフ更新装置100は、K近傍頂点探索部110と頂点選択部120と近傍グラフ更新部130とを主な構成要素として含む。近傍グラフ更新装置100の各部の動作概要は次のとおりである。
 K近傍頂点探索部110には、近傍グラフ(ここではK近傍グラフ)、追加するオブジェクト(K近傍グラフに対して追加する新たな頂点に相当)等が入力される。K近傍頂点探索部110は、新たな頂点を探索のクエリとみなし、当該頂点が追加されるK近傍グラフをグラフ索引とするグラフ索引型探索を実施し、追加する頂点のK近傍頂点をK近傍グラフの中から見つける。例えば、K近傍頂点探索部110は、追加する頂点から最も近いK個の頂点の集合(索引であるグラフの頂点の部分集合)を見つける。
 頂点選択部120は、追加する頂点が現時点でのK番目に近い近傍頂点よりも近くなる可能性のある頂点をn個の全頂点の中から選択する。頂点選択部120は、追加する頂点とn個の頂点各々との距離計算を避けるために、フィルターを用いる。このフィルターにより、m(<n)個の頂点とのみ距離計算を実行することにより、時間計算量を低減する。当該フィルターは、例えば、入力されたK近傍グラフの全頂点の集合から、追加する頂点をK近傍頂点としない頂点を除外するフィルターである。ここで、「追加する頂点をK近傍頂点としない頂点を除外する」とは、追加する頂点をK近傍頂点としない頂点のみを除外するような厳密な除外であってもよいし、除外する頂点に、追加する頂点をK近傍頂点としない頂点に加えて、追加する頂点をK近傍頂点とする頂点が含まれるような近似的な除外であってもよい。このように、追加する頂点をK近傍頂点としない頂点を除外することで、頂点を追加した近傍グラフを作成する際に、追加する頂点との距離計算を行う対象とする頂点の数を削減でき、時間計算量を低減できる。
 近傍グラフ更新部130は、頂点選択部120により選択された頂点集合等を用いることで、新たな頂点が追加された近傍グラフを生成し、出力する。当該近傍グラフは、例えば、近似次数低減K最近傍グラフ(近似K‐DRグラフ)である。
 (ハードウェア構成例)
 上述した近傍グラフ更新装置100は、コンピュータ等の装置に本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、近傍グラフ更新装置100が有する機能は、コンピュータに内蔵されるCPUやメモリ等のハードウェア資源を用いて、近傍グラフ更新装置100で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メール等、ネットワークを通して提供することも可能である。
 図2は、近傍グラフ更新装置100のハードウェア構成例を示す図である。図2の近傍グラフ更新装置100は、それぞれバスBで相互に接続されているドライブ装置1000、補助記憶装置1002、メモリ装置1003、CPU1004、インタフェース装置1005、表示装置1006、及び入力装置1007等を有する。なお、表示装置1006及び入力装置1007を備えないこととしてもよい。
 近傍グラフ更新装置100での処理を実現するプログラムは、例えば、CD-ROM又はメモリカード等の記録媒体1001によって提供される。プログラムを記憶した記録媒体1001がドライブ装置1000にセットされると、プログラムが記録媒体1001からドライブ装置1000を介して補助記憶装置1002にインストールされる。但し、プログラムのインストールは必ずしも記録媒体1001より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置1002は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
 メモリ装置1003は、プログラムの起動指示があった場合に、補助記憶装置1002からプログラムを読み出して格納する。CPU1004は、メモリ装置1003に格納されたプログラムに従って近傍グラフ更新装置100に係る機能を実現する。インタフェース装置1005は、ネットワークに接続するためのインタフェースとして用いられる。表示装置1006はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置1007はキーボード及びマウス、ボタン、又はタッチパネル等で構成され、様々な操作指示を入力させるために用いられる。
 以下、図1に示した近傍グラフ更新装置100の処理動作をより詳細に説明する。
 (近傍グラフ更新装置100への入力データ)
 近傍グラフ更新装置100には下記の1)~3)に示すデータが入力される。
 1) 更新される近傍グラフG=(V,E)。但しVは頂点集合、Eは辺集合を表す。また、K近傍グラフの場合はKの値も必然的にデータとして含まれるとする。
 2) 近傍グラフに追加する頂点に相当するオブジェクトデータ。なお、オブジェクトデータを単に「オブジェクト」と称してもよい。
 3) 上記近傍グラフを構成する頂点に対応するオブジェクトと辺の生成に利用されるオブジェクト間の関係性の尺度。オブジェクト間の関係性の尺度として、例えば、ユークリッド距離、マンハッタン距離などの距離、カルバックライブラーダイバージェンス:Kullback-Leibler divergenceに代表される非類似度、コサイン類似度のような類似度、などがある。
 入力データとして、近傍グラフと追加するオブジェクト(これを近傍グラフでの"クエリ頂点"とも呼ぶ)とは必須であるが、3)のオブジェクト等は、1)の近傍グラフに繰り込むこともできるので、1)と3)の入力を合わせて、近傍グラフとすることもできる。以降、一例として、2つのオブジェクト(頂点)の関係性の尺度として距離を選択した場合を用いる。但し、非類似度等への一般化のために、スケーリング因子(scaling factor)を導入する例も説明する。
 なお、本実施の形態で説明する処理内容は、関係性の尺度に依存せずに基本的に同様であるため、本明細書及び特許請求の範囲における「距離」を、上述した各種の関係性の尺度を総称した用語と解釈してもよい。
 (近傍グラフ更新装置100からの出力)
 近傍グラフ更新装置100は、1)~3)の入力データに基づいて、2)の追加する頂点が含まれ、更新された近傍グラフを出力する。
 (近傍グラフ更新装置100の動作の詳細)
 図1に示したとおり、近傍グラフ更新装置100は、K近傍頂点探索部110と頂点選択部120と近傍グラフ更新部130とを含む。
 K近傍頂点探索部110は、上述した3種類のデータを入力とし、追加する頂点(vq)のK近傍頂点集合を出力する。即ち、K近傍頂点探索部110は、近傍グラフにおけるvqに最も近い頂点から距離の昇順にK個の頂点を探索し、探索したK個の頂点の集合であるK近傍頂点集合を出力する。
 頂点選択部120は、1)の近傍グラフ、2)の追加する頂点、及びK近傍頂点探索部110の出力である追加頂点のK近傍頂点集合を入力とし、自らのK近傍頂点集合が修正される可能性のある頂点を近傍グラフの全頂点から選択し、選択された頂点集合を出力する。自らのK近傍頂点集合が修正される可能性のある頂点の集合は、自らのK近傍頂点集合に新たな頂点(=追加する頂点)が含まれる可能性のある頂点の集合と称することもできる。
 近傍グラフ更新部130は、1)の近傍グラフ、2)の追加する頂点、K近傍頂点探索部110の出力である追加する頂点のK近傍頂点集合、及び頂点選択部120の出力である選択された頂点集合を入力とし、新たな頂点が追加された近傍グラフを作成し、出力する。
 以下、各構成部の処理動作の例をより詳細に説明する。
 <K近傍頂点探索部110>
 図1に示すとおり、K近傍頂点探索部110には前述したデータ1)~3)が入力される。K近傍頂点探索部110は、例えばグラフ索引型類似探索法を用いて、追加する頂点のK近傍頂点を探索する。すなわち、グラフ索引型類似探索法を用いる場合において、K近傍頂点探索部110は、追加する頂点を探索のクエリとみなし、当該頂点が追加されるK近傍グラフをグラフ索引とするグラフ索引型探索を実施する。探索アルゴリズムとして、例えば、非特許文献1に記載の(a)最良優先探索(Best-first search: BSと略す)や、非特許文献2に記載の(b)多初期頂点開始貪欲探索(Multi-start greedy search: MSGSと略す)などの高速グラフ探索アルゴリズムを用いることができる。
 (a)のBSは、与えられた初期頂点から貪欲探索(現頂点の隣接頂点のうち最もクエリ頂点に近い頂点を次の現頂点とし、この探索を繰り返し、現頂点が最もクエリ頂点に近くなった時点で終了する方法)を実行し、貪欲探索が終了した時点で、今までクエリ頂点と距離計算を実行した頂点のうち、隣接頂点がクエリとの距離を計算されていない頂点であって、現頂点の次にクエリ頂点に近い頂点を次の現頂点とする方法であり、予め設定された計算コストに達した時点で終了する探索法である。
 一方、(b)のMSGSは並列処理を利用し、予め設定した数の複数初期頂点から貪欲探索を開始し、貪欲探索が終了した時点で終了し、複数の探索経路の各々で発見したクエリ頂点に近い頂点集合の合併集合に対し、距離に基づき昇順に最も近い頂点からK個の頂点をK近傍頂点とする。また、MSGSにおいては、貪欲探索が終了したものから、終了時の頂点を起点とし、予め設定した終了条件に基づき、幅優先探索(Breadth-first search: BFS)を実行しても良い。BFSの終了条件としては、計算コスト、探索深さ、K近傍頂点集合不変などがある。
 なお、ここで説明したグラフ索引型類似探索法は、発見的方法又は近似探索法であるため、求める解(K近傍頂点集合)の精度は時間計算量(例えば、距離計算コスト)に依存する。例えば、最良優先探索法(BS)で計算コストをn(近傍グラフの頂点数)に設定すると、全探索(linear scan法、brute-force法)と一致し、厳密なK近傍頂点集合を得ることができる。
 <頂点選択部120>
 次に、頂点選択部120の入出力及び処理内容を説明する。図1に示したように、頂点選択部120には、K近傍グラフ、追加する新たな頂点(vq)、及び、K近傍頂点探索部110の出力である、新たな頂点(vq)のK近傍頂点集合が入力される。これら入力データに基づいて、頂点選択部120は、図3のフローチャートに沿った手順を実行することにより、新たな頂点(vq)が、自らのK近傍になる可能性のある(K近傍頂点候補である)頂点(vx)を、入力されたK近傍グラフの頂点集合(V, |V|=n)の要素である頂点の中から選択する(vx∈V)。
 なお、図3に示すように、第4のフィルターについては、挿入箇所例1~3として示されるA、B、Cのいずれかの箇所で適用される。また、第4のフィルターを用いないこととしてもよい。また、ここでは、第1~第4のフィルターを使用しているが、これは例であり、これらのうちの1つ又は2つ又は3つのフィルターを適用してもよいし、第1~第4のフィルターに加えて、更なるフィルターを適用してもよい。
 図3のS101において、頂点選択部120は、第1のフィルターを適用する。ここでは、頂点選択部120は、新たな頂点(v)のK近傍頂点集合(Bq)の要素であって(vx∈Bq)、自ら(vx)のK番目近傍頂点までの距離(max_dist)が、vqとvxとの距離(dist(vq,vx))よりも小さい頂点(vx)を候補から除く。
 第1のフィルターの適用の具体例を図4に示す。図4(a)は、第1のフィルターにより、頂点(vx)が頂点候補から除外される場合の例を示している。図4(a)に示す頂点(vx)について、図示されるように、dist(vq,vx)は、頂点(vx)と自ら(vx)のK番目近傍頂点との距離(max_dist)よりも大きい。よって、頂点(vx)が選択候補から除外される。この場合、新たな頂点(v)は当該頂点(vx)のK近傍頂点になり得ないからである。
 図4(b)は、頂点(vx)が第1のフィルターを通過する場合の例を示している。図示されるように、dist(vq,vx)は、頂点(vx)と自ら(vx)のK番目近傍頂点との距離(max_dist)よりも小さい。よって、頂点(vx)は第1のフィルターを通過する。
 第1のフィルターは、距離空間が定義される場合、即ち、頂点間の関係性が距離公理を充足する場合、dist(vq,vx)>max_distならば、vqはvxのK近傍頂点ではないことに基づくものである。
 図3のS102において、頂点選択部120は、第2のフィルターを適用する。ここでは、頂点選択部120は、新たな頂点(vq)のK近傍頂点集合(Bq)と自ら(vx)のK近傍頂点集合(Bx)との共通集合(intersection)が空集合である(Bq∩B=空集合)頂点(vx)を選択候補から除く。
 第2のフィルターの適用の具体例を図5に示す。図5(a)は、第2のフィルターにより、頂点(vx)が頂点候補から除外される場合の例を示している。図示されるように、この場合、新たな頂点(vq)のK近傍頂点集合(Bq)と、頂点(vx)のK近傍頂点集合(Bx)との共通集合は空である。よって、当該頂点(vx)は頂点候補から除外される。
 図5(b)は、頂点(vx)が第2のフィルターを通過する場合の例を示している。図示されるように、この場合、新たな頂点(vq)のK近傍頂点集合(Bq)と、頂点(vx)のK近傍頂点集合(Bx)との共通集合は空集合ではなく、この例では2つの頂点を有している。よって、当該頂点(vx)は選択候補から除外されない。ただし、図5(b)の例の場合、頂点(vx)は第2のフィルターを通過するが、新たな頂点(vq)は当該頂点(vx)のK近傍頂点ではない。
 第2のフィルターの適用方法は、"A neighbor of a neighbor is also likely to be a neighbor."の考え方を利用した発見的方法であり、データ分布に依存して、第2フィルターで除去される頂点であっても、厳密に計算した場合、vqがvxのK近傍頂点である場合がある。 
 図3のS103において、頂点選択部120は、第3のフィルターを適用する。なお、第3のフィルターは、第2のフィルターの後に適用される。従って、第3のフィルターの判断対象となる頂点(vx)に関し、新たな頂点(vq)のK近傍頂点集合(Bq)と、頂点(vx)のK近傍頂点集合(Bx)との共通集合は空集合ではない。
 ここでは、頂点選択部120は、新たな頂点(vq)のK近傍頂点集合(Bq)の要素ではなく、自ら(vx)のK番目近傍頂点までの距離(max_dist)が、頂点(vq)と頂点(vx)との距離の下限値(LB(vq,vx))よりも小さいか等しい頂点(vx)を候補から除く。
 頂点(vq)と頂点(vx)との距離の下限値(LB(vq,vx))とは、頂点(vq)のK近傍頂点集合(Bq)と、頂点(vx)のK近傍頂点集合(Bx)との共通集合の頂点が複数ある場合においては、当該複数の頂点のうち、|(頂点(vq)との距離)‐(頂点(vx)との距離)|が最大となる頂点について当該|(頂点(vq)との距離)‐(頂点(vx)との距離)|の値である。頂点(vq)のK近傍頂点集合(Bq)と、頂点(vx)のK近傍頂点集合(Bx)との共通集合の頂点が1つである場合においては、当該頂点についての|(頂点(vq)との距離)‐(頂点(vx)との距離)|が下限値(LB(vq,vx))となる。
 なお、頂点(vq)のK近傍頂点集合(Bq)と、頂点(vx)のK近傍頂点集合(Bx)との共通集合の頂点が複数ある場合において、|(頂点(vq)との距離)‐(頂点(vx)との距離)|が最大となる頂点について当該|(頂点(vq)との距離)‐(頂点(vx)との距離)|をLB(vq,vx)とすることは一例である。例えば、頂点(vq)のK近傍頂点集合(Bq)と、頂点(vx)のK近傍頂点集合(Bx)との共通集合の頂点が複数ある場合において、当該複数の頂点のうちの任意の頂点についての|(頂点(vq)との距離)‐(頂点(vx)との距離)|をLB(vq,vx)としてもよい。
 第3のフィルターの適用の具体例を図6に示す。図6(a)は、第3のフィルターにより、頂点(vx)が頂点候補から除外される場合の例を示している。図6(a)に示す頂点(vx)について、図示されるように、LB(vq,vx)=|dist(vq,v1 )-dist(vx,v1)|は、max_distよりも大きいので、当該頂点(vx)は選択候補から除外される。
 図6(b)は、頂点(vx)が第3のフィルターを通過する場合の例を示している。図6ba)に示す頂点(vx)について、図示されるように、LB(vq,vx)=maxJ=1,2{|dist(vq, vj)-dist(vx,vj)|}(図6(b)の例ではLB(vq,vx)=|dist(vq,v1)-dist(vx,v1)|)は、max_distよりも小さいので、当該頂点(vx)は第3のフィルターを通過する。なお、図6(b)の例は、頂点(vx)は第3のフィルターを通過するが、vqはvxのK近傍頂点ではない例を示している。
 第3のフィルターは、距離空間が定義される場合、即ち、頂点間の関係性が距離公理を充足する場合、LB(vq,vx)≧max_distならば、vqはvxのK近傍頂点ではないことに基づいている。
 図3のA、B、あるいはCにおいて第4のフィルターを適用してもよい。第4のフィルター適用において、頂点選択部120は、対象頂点(vx)が追加頂点(v)のK近傍の外側にあり、追加頂点(v)のK番目近傍頂点までの距離(K近傍球半径)よりも対象頂点(vx)のK近傍球半径が小さい場合、対象頂点(vx)を選択しない。つまり、フィルターで除去される。第4のフィルターの第3のフィルターとの相違は、第4のフィルターでは、共通集合に含まれる頂点の有無に依存せず、距離の下限値ではなく、球の半径の大小関係で判定するという点である。
 第4のフィルターの適用の具体例を図7に示す。図7(a)は、第4のフィルターにより、頂点(vx)が頂点候補から除外される場合の例を示している。図7(a)に図示されるように、追加頂点(v)のK近傍球半径((dist(vq,vqK))は、対象頂点(vx)のK近傍球半径よりも大きい。よって、頂点(vx)は選択候補から除去される。
 図7(b)は、頂点(vx)が第4のフィルターを通過する場合の例を示している。図7(b)に図示されるように、追加頂点(v)のK近傍球半径((dist(vq,vqK))は、対象頂点(vx)のK近傍球半径よりも小さい。よって、頂点(vx)は第4のフィルターを通過する。
 第1のフィルターを通過した頂点(vx)は、既にvqとvxとの厳密距離(dist(vq,vx))を計算済であり、追加頂点(v)のK近傍頂点集合の要素であるから、図3のS104における頂点集合に加える。一方、第2、第3、第4のフィルターを通過した頂点(vx)は、厳密に追加頂点(v)のK近傍にあるかどうか不明である。よって、図3のS104において、頂点選択部120は、第2、第3のフィルター(あるいは第2、第3、第4のフィルター)を通過した頂点(vx)に関して、新たに追加する頂点(vq)との厳密距離を計算し、新たな頂点(vq)が自らのK近傍内の距離にあるならば、当該頂点(vx)を選択し、選択された頂点として頂点集合に加える。
 <近傍グラフ更新部130>
 次に、近傍グラフ更新部130の入出力及び処理内容を説明する。図1に示したように、近傍グラフ更新部130には、近傍グラフ(K近傍グラフ)、追加する新たな頂点、K近傍頂点探索部110の出力である新たな頂点のK近傍頂点集合、及び、頂点選択部120の出力である、自らのK近傍頂点集合に新たな頂点が含まれる可能性のある頂点の集合が入力される。これら入力データに基づいて、近傍グラフ更新部130は、図8のフローチャートに沿った手順を実行することにより、新たな頂点が追加された近傍グラフを作成し、出力する。
 図8のS201において、近傍グラフ更新部130は、選択された頂点集合の各頂点のK近傍頂点集合に基づき、入力された近傍グラフの全頂点に関するk近傍頂点集合を再構築する。より詳細には、一例として、近傍グラフ更新部130は、入力された近傍グラフにおける選択された頂点集合の各頂点について、追加された新たな頂点を含む他の各頂点との間の距離を計算し、K近傍頂点集合を求める。そして、近傍グラフ更新部130は、当該K近傍頂点集合と、入力された近傍グラフにおける選択された頂点集合以外の各頂点のK近傍頂点集合(近傍グラフのデータとして既に有しているもの)とを合わせることにより、入力された近傍グラフの全頂点に関するK近傍頂点集合を再構築する。
 S202において、近傍グラフ更新部130は、新たな頂点のK近傍頂点集合をS201で再構築された頂点集合に追加し、近似有向近傍グラフを構築する。
 S203において、近傍グラフ更新部130は、入力された近傍グラフが、有向近傍グラフでない場合は、必要に応じ、当該入力された近傍グラフと同じ構造の近傍グラフを、当該近似有向近傍グラフを基に再構築する。
 S204において、近傍グラフ更新部130は、新たな頂点が追加された近傍グラフを出力する。
 なお、S203において、近傍グラフ更新部130が無向K近傍グラフを構築する場合は、S202までに近似有向K近傍グラフを構築し、当該有向K近傍グラフを、無向化の定義に従って、無向K近傍グラフとする。無効化の定義とは、例えば、相互辺(mutual edge)の場合は無向辺とする、出力辺又は入力辺の何れかが存在する場合は、無向辺を張るなどのルールである。
 また、S203において、近傍グラフ更新部130が、非特許文献1、2、3で使用されている次数低減K最近傍グラフ(degree-reduced K nearest neighbor graph:K-DR graph)を構築する場合は、S202までに構築した近似有向K近傍グラフに既存のK-DRグラフ構築アルゴリズムを適用する。
 このように、近傍グラフ更新部130は、S202で構築される近似有向近傍グラフを利用することで、種々の近傍グラフを構築することができる。
 <近傍グラフ更新部130の具体例>
 次に、近傍グラフ更新部130のより具体的な例として、近傍グラフ更新部130が近似次数低減K最近傍グラフを構築する場合の構成及び処理内容の例を説明する。
 図9は、近傍グラフ更新部130が近似次数低減K最近傍グラフを構築する場合における近傍グラフ更新部130の構成を示す図である。図9に示すように、入力データについては、前述した近傍グラフ更新部130に入力される入力データと同じである。図9の場合には、近傍グラフ更新部130は、近似次数低減K最近傍グラフを出力する。
 図9に示すように、当該近傍グラフ更新部130は、有向K近傍グラフ生成部131と、次数低減K最近傍グラフ生成部132(以降、K-DRグラフ生成部132と称する)とを有する。当該近傍グラフ更新部130の動作を図10、及び図11のフローチャートを参照して説明する。
 図10のS301において、有向K近傍グラフ生成部131は、選択された頂点集合の各頂点のK近傍頂点集合に基づき、入力近傍グラフの全頂点に関するK近傍頂点集合を再構築する。より詳細には、一例として、有向K近傍グラフ生成部131は、入力された近傍グラフにおける選択された頂点集合の各頂点について、追加された新たな頂点を含む他の各頂点との間の距離を計算し、K近傍頂点集合を求める。そして、近傍グラフ更新部130は、当該K近傍頂点集合と、入力された近傍グラフにおける選択された頂点集合以外の各頂点のK近傍頂点集合(近傍グラフのデータとして既に有しているもの)とを合わせることにより、入力された近傍グラフの全頂点に関するK近傍頂点集合を再構築する。ここでは、入力近傍グラフに含まれる頂点のうちに、out-going edge(出力辺)の接続先として新たな頂点を含む頂点が存在する。
 S302において、有向K近傍グラフ生成部131は、新たな頂点のK近傍頂点集合を、S301で再構築された全頂点に関するK近傍頂点集合に追加し、近似有向K近傍グラフ(又は近似有向K近傍リスト)を作成する。
 S303において、K-DRグラフ生成部132は、有向K近傍グラフ生成部131により作成された近似有向K近傍グラフ(又は近似有向K近傍リスト)を入力として、例えば非特許文献1、2に記載のアルゴリズムを適用することで、新たな頂点が追加された近似K-DRグラフを生成する。
 S304において、K-DRグラフ生成部132は、新たな頂点が追加された近似K-DRグラフを出力する。
 S302で作成される近似有向K近傍リストは、各頂点について、距離の昇順にK個の近傍頂点が並べられたリストである。当該近似有向K近傍リストのことを近似有向K近傍グラフと称してもよい。
 非特許文献1、2に記載のアルゴリズムを適用して近似K-DRグラフを作成する場合における概要処理手順を図11のフローチャートを参照して説明する。
 S401において、K-DRグラフ生成部132は、有向K近傍グラフ生成部131により生成された近似有向K近傍リストを用い、各頂点について最近傍頂点(k=1の頂点、1<= k<=K)に無向辺を張り、1-NNグラフを構築する。k=2とする。
 S402において、K-DRグラフ生成部132は、各頂点(起点と呼ぶ)について、2番目に近い頂点を、辺を張る頂点候補とする。当該2番目に近い頂点から起点へ、既存の辺をより近い頂点の方へ辿ることで到達できる(即ち、貪欲探索法で到達可能である)ならば無向辺を生成せず、到達できない場合に限り無向辺を生成する。この操作を全ての頂点に行うことにより、2-DRグラフを構築する。
 S403において、kをk+1とする。S404において、(k-1)-DRグラフが構築されているとする(繰り返しの最初であれば2-DRグラフが構築されている)。K-DRグラフ生成部132は、各頂点についてk番目に近い頂点を、辺を張る候補頂点とする。当該k番目に近い頂点から起点へ、貪欲探索法で到達可能ならば、無向辺を生成せず、到達できないときに限り無向辺を起点と当該k番目に近い頂点の間に生成する。この操作を全ての頂点に行うことにより、k-DRグラフを構築する。
 K-DRグラフ生成部132は、S403とS404の処理をk=Kになるまで繰り返す(S405)。S405においてk=Kであれば処理を終了する。
 (関係性尺度として非類似度等を用いる場合)
 ここまでは、2頂点間の関係性の尺度として距離を用いた場合について説明した。距離公理を充足しないダイバージェンスのような非類似度を用いる場合も多々ある。そのような場合、正数であるスケーリング因子(α>0)を導入する。特に、スケーリング因子の導入により、頂点選択部120の第1のフィルターと第3のフィルターと判定条件は次のようになる。
 第1のフィルターで除去される場合:dist(vq,vx)>max_dist×α1
 第3のフィルターで除去される場合:LB(vq,vx)≧max_dist×α3
 各フィルターのαは異なっても良く。必ずしも一致させる必要はない。つまり、上記の例でいえば、α1とα3は同じでもよいし、異なってもよい。
 (評価結果)
 本実施の形態で説明した近傍グラフ更新装置100を用いて実験を行った。実験には、手書き数字画像データベースMNISTのデータを使用した(http://yann.lecun.com/exdb/mnist/、Y.LeCun, L.Bottou, Y.Bengio, and P.Haffner.、
"Gradient-based learning applied to document recognition." Proceedings of the IEEE, 86(11):2278-2324, November 1998)。
 対象データ、関係性尺度、入力グラフ、追加頂点、近傍グラフ更新装置100として使用した計算機、及び評価法は下記のとおりである。
 対象データ: 60,000画像の各々から抽出された60,000特徴ベクトル(784次元)、単位超球上の点として扱う;
 距離: ユークリッド距離;
 入力グラフ: K-DRグラフ(K=20,40,60,80,100);
 追加頂点:対象データには含まれない20個の特徴ベクトル(単位超球上の点);
 計算機:Intel Xeon E5-2697v3 2.6GHz, single thread実行;
 評価法:1頂点追加の際に全頂点のK近傍頂点を更新する方法を基準法とし、20個の各々の頂点を追加に要する時間の平均を基準法と発明法(本発明を用いた方法)で求めた際の発明法が要した平均時間の基準法の平均時間に対する比率。
 図12は、上記の実験により評価結果を示す図である。すなわち、図12は、近似K-DRグラフを更新する場合の速度性能を実験により評価した際の結果を表す図である。
 図12に示すように、Kが20の場合には発明法は基準法よりも10倍以上高速であり、K=100の場合であっても2倍程度高速である。このように本発明に係る技術により新たな頂点を近傍グラフに追加するための時間計算量を大幅に削減することができることがわかる。
 (実施の形態の効果)
 本実施の形態に係る近似グラフ更新装置100のK近傍頂点探索部110は、グラフ索引型探索を行うため、実験的にO(log n)の時間計算量である。頂点選択部120は、フィルター機能が頂点数に直接関係していないため、O(1)の時間計算量である。従って、O(log n)の非常に少ない時間計算量で近傍グラフに頂点を追加し、近傍グラフを更新することができる。
 また、対象データ数n以外に時間計算量に関係する変数となり得るKに関し、Kを変数として、頂点追加処理時間を実験により求めた。その結果、出力辺数Kの実用上の適用可能範囲で基準法よりも高速であった。
 (実施の形態のまとめ)
 以上、説明したように、本実施の形態によれば、近傍グラフと、当該近傍グラフに追加頂点として追加するオブジェクトとに基づいて、前記近傍グラフにおける前記追加頂点のK近傍頂点集合を探索し、当該K近傍頂点集合を出力するK近傍頂点探索部と、前記近傍グラフと、前記追加頂点と、前記追加頂点のK近傍頂点集合とに基づいて、当該近傍グラフ中の頂点であって、当該頂点のK近傍頂点集合に前記追加頂点が含まれる可能性のある頂点の集合である頂点候補集合を選択し、当該頂点候補集合を出力する頂点選択部と、前記頂点候補集合の各頂点のK近傍頂点集合を用いて前記近傍グラフの全頂点に関するK近傍頂点集合を再構築し、前記追加頂点のK近傍頂点集合を前記再構築したK近傍頂点集合に追加することにより、更新された近傍グラフを作成する近傍グラフ更新部とを備えることを特徴とするグラフ更新装置が提供される。
 前記頂点選択部は、例えば、前記近傍グラフの頂点の集合から、前記追加頂点をK近傍頂点としない頂点を除外するためのフィルターを適用することで前記頂点候補集合を選択する。
 前記近傍グラフ更新部は、前記更新された近傍グラフとして、近似次数低減K最近傍グラフを作成することとしてもよい。
 また、本実施の形態により、コンピュータを、上述したグラフ更新装置における各部として機能させるためのプログラムが提供される。
 以上、本実施の形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
100 近傍グラフ更新装置
110 K近傍頂点探索部
120 頂点選択部
130 近傍グラフ更新部
131 有向K近傍グラフ生成部
132 次数低減K最近傍グラフ生成部
1000 ドライブ装置
1001 記録媒体
1002 補助記憶装置
1003 メモリ装置
1004 CPU
1005 インタフェース装置
1006 表示装置
1007 入力装置

Claims (7)

  1.  近傍グラフと、当該近傍グラフに追加頂点として追加するオブジェクトとに基づいて、前記近傍グラフにおける前記追加頂点のK近傍頂点集合を探索し、当該K近傍頂点集合を出力するK近傍頂点探索部と、
     前記近傍グラフと、前記追加頂点と、前記追加頂点のK近傍頂点集合とに基づいて、当該近傍グラフ中の頂点であって、当該頂点のK近傍頂点集合に前記追加頂点が含まれる可能性のある頂点の集合である頂点候補集合を選択し、当該頂点候補集合を出力する頂点選択部と、
     前記頂点候補集合の各頂点のK近傍頂点集合を用いて前記近傍グラフの全頂点に関するK近傍頂点集合を再構築し、前記追加頂点のK近傍頂点集合を前記再構築したK近傍頂点集合に追加することにより、更新された近傍グラフを作成する近傍グラフ更新部と
     を備えることを特徴とするグラフ更新装置。
  2.  前記頂点選択部は、前記近傍グラフの頂点の集合から、前記追加頂点をK近傍頂点としない頂点を除外するためのフィルターを適用することで前記頂点候補集合を選択する
     ことを特徴とする請求項1に記載のグラフ更新装置。
  3.  前記近傍グラフ更新部は、前記更新された近傍グラフとして、近似次数低減K最近傍グラフを作成する
     ことを特徴とする請求項1又は2に記載のグラフ更新装置。
  4.  グラフ更新装置が実行するグラフ更新方法であって、
     近傍グラフと、当該近傍グラフに追加頂点として追加するオブジェクトとに基づいて、前記近傍グラフにおける前記追加頂点のK近傍頂点集合を探索し、当該K近傍頂点集合を出力するK近傍頂点探索ステップと、
     前記近傍グラフと、前記追加頂点と、前記追加頂点のK近傍頂点集合とに基づいて、当該近傍グラフ中の頂点であって、当該頂点のK近傍頂点集合に前記追加頂点が含まれる可能性のある頂点の集合である頂点候補集合を選択し、当該頂点候補集合を出力する頂点選択ステップと、
     前記頂点候補集合の各頂点のK近傍頂点集合を用いて前記近傍グラフの全頂点に関するK近傍頂点集合を再構築し、前記追加頂点のK近傍頂点集合を前記再構築したK近傍頂点集合に追加することにより、更新された近傍グラフを作成する近傍グラフ更新ステップと
     を備えることを特徴とするグラフ更新方法。
  5.  前記頂点選択ステップにおいて、前記グラフ更新装置は、前記近傍グラフの頂点の集合から、前記追加頂点をK近傍頂点としない頂点を除外するためのフィルターを適用することで前記頂点候補集合を選択する
     ことを特徴とする請求項4に記載のグラフ更新方法。
  6.  前記近傍グラフ更新ステップにおいて、前記グラフ更新装置は、前記更新された近傍グラフとして、近似次数低減K最近傍グラフを作成する
     ことを特徴とする請求項4又は5に記載のグラフ更新方法。
  7.  コンピュータを、請求項1ないし3のうちいずれか1項に記載のグラフ更新装置における各部として機能させるためのプログラム。
PCT/JP2019/018411 2018-05-10 2019-05-08 グラフ更新装置、グラフ更新方法、及びプログラム WO2019216346A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/053,751 US11416552B2 (en) 2018-05-10 2019-05-08 Graph updating apparatus, graph updating method and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018091773A JP6977659B2 (ja) 2018-05-10 2018-05-10 グラフ更新装置、グラフ更新方法、及びプログラム
JP2018-091773 2018-05-10

Publications (1)

Publication Number Publication Date
WO2019216346A1 true WO2019216346A1 (ja) 2019-11-14

Family

ID=68467452

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/018411 WO2019216346A1 (ja) 2018-05-10 2019-05-08 グラフ更新装置、グラフ更新方法、及びプログラム

Country Status (3)

Country Link
US (1) US11416552B2 (ja)
JP (1) JP6977659B2 (ja)
WO (1) WO2019216346A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210117459A1 (en) * 2019-10-18 2021-04-22 Baidu Usa Llc Efficient retrieval of top similarity representations
US11989233B2 (en) * 2019-11-01 2024-05-21 Baidu Usa Llc Transformation for fast inner product search on graph
US11914669B2 (en) * 2019-11-25 2024-02-27 Baidu Usa Llc Approximate nearest neighbor search for single instruction, multiple thread (SIMT) or single instruction, multiple data (SIMD) type processors
US11716343B2 (en) * 2020-08-11 2023-08-01 Cisco Technology, Inc. Secure neighborhoods assessment in enterprise networks
US11625420B2 (en) * 2021-06-10 2023-04-11 Yahoo Assets Llc System and method for identifying approximate k-nearest neighbors in web scale clustering
CN114826931B (zh) * 2022-04-24 2023-03-24 苏州工业园区服务外包职业学院 交替群网络结构容错性确定方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011090351A (ja) * 2009-10-20 2011-05-06 Yahoo Japan Corp 検索データ管理装置
JP2011090352A (ja) * 2009-10-20 2011-05-06 Yahoo Japan Corp 検索データ管理装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4774016B2 (ja) 2007-05-28 2011-09-14 日本電信電話株式会社 情報探索方法、情報探索プログラムおよび情報探索装置
JP4774019B2 (ja) 2007-06-06 2011-09-14 日本電信電話株式会社 ネットワーク生成方法、情報探索方法、プログラム、ネットワーク生成装置および情報探索装置
US8819078B2 (en) * 2012-07-13 2014-08-26 Hewlett-Packard Development Company, L. P. Event processing for graph-structured data
US11366856B2 (en) * 2016-04-25 2022-06-21 Tigergraph, Inc. System and method for updating target schema of graph model
US10409782B2 (en) * 2016-06-15 2019-09-10 Chen Zhang Platform, system, process for distributed graph databases and computing
WO2018144030A1 (en) * 2017-02-06 2018-08-09 The Texas State University-San Marcos System and method for identifying maximal independent sets in parallel
US11526483B2 (en) * 2018-03-30 2022-12-13 Intel Corporation Storage architectures for graph analysis applications
US11392624B2 (en) * 2019-12-11 2022-07-19 Oracle International Corporation Hybrid in-memory BFS-DFS approach for computing graph queries against homogeneous graphs inside relational database systems
US11537579B2 (en) * 2020-03-12 2022-12-27 Oracle International Corporation Fast in-memory technique to build a reverse CSR graph index in an RDBMS

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011090351A (ja) * 2009-10-20 2011-05-06 Yahoo Japan Corp 検索データ管理装置
JP2011090352A (ja) * 2009-10-20 2011-05-06 Yahoo Japan Corp 検索データ管理装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HACID HAKIM: "Incremental Neighborhood graph construction based on the localized update", FIF2007 FORUM ON INFORMATION TECHNOLOGY 2007, INFORMATION TECHNOLOGY LETTERS, vol. 6, 22 August 2007 (2007-08-22), pages 103 - 106 *
YOSHIDA TETSUYA: "A neighborhood graph updating method with reduced database access for high dimensional data", PROCEEDINGS OF THE 18TH DATA ENGINEERING WORKSHOP OF IEICE, 1 June 2007 (2007-06-01), pages 1 - 6 *

Also Published As

Publication number Publication date
US20210157851A1 (en) 2021-05-27
JP2019197438A (ja) 2019-11-14
JP6977659B2 (ja) 2021-12-08
US11416552B2 (en) 2022-08-16

Similar Documents

Publication Publication Date Title
WO2019216346A1 (ja) グラフ更新装置、グラフ更新方法、及びプログラム
Kerber et al. Geometry helps to compare persistence diagrams
Marble et al. Asymptotically near-optimal planning with probabilistic roadmap spanners
Terzi et al. Efficient algorithms for sequence segmentation
Berg et al. Fine-grained complexity analysis of two classic TSP variants
CN109685204B (zh) 图像处理方法及装置、存储介质及电子设备
JP5193518B2 (ja) パターン探索装置及びその方法
Fränti et al. XNN graph
US11599578B2 (en) Building a graph index and searching a corresponding dataset
Chen et al. Finger: Fast inference for graph-based approximate nearest neighbor search
CN107567641B (zh) 用于识别复制品的系统和方法
JP6898818B2 (ja) グラフ生成装置、グラフ生成方法、データ構造、及びプログラム
JP6623380B2 (ja) 探索装置、探索方法および探索プログラム
Zhang et al. Multi-Criteria Optimal Location Query with Overlapping Voronoi Diagrams.
Glantz et al. Tree-based coarsening and partitioning of complex networks
Müller et al. SO-MODS: Optimization for high dimensional computationally expensive multi-modal functions with surrogate search
Sergeyev et al. On deterministic diagonal methods for solving global optimization problems with Lipschitz gradients
Kundu et al. K-nearest neighbour (KNN) approach using SAT based technique for rectilinear steiner tree construction
Rachkovskij Fast similarity search for graphs by edit distance
Vieira et al. Clustering ensemble-based edge bundling to improve the readability of graph drawings
Aung et al. Developed algorithm for making up convex hull based on binary tree
Kim et al. Efficient method for mining high utility occupancy patterns based on indexed list structure
Debatty et al. Fast online k-nn graph building
Li et al. Finding the shortest path between two points in a simple polygon by applying a rubberband algorithm
Soroushnia et al. Parallel implementation of fuzzified pattern matching algorithm on gpu

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19799129

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19799129

Country of ref document: EP

Kind code of ref document: A1