JP2019144780A - Generating device, generating method, and generating program - Google Patents
Generating device, generating method, and generating program Download PDFInfo
- Publication number
- JP2019144780A JP2019144780A JP2018027427A JP2018027427A JP2019144780A JP 2019144780 A JP2019144780 A JP 2019144780A JP 2018027427 A JP2018027427 A JP 2018027427A JP 2018027427 A JP2018027427 A JP 2018027427A JP 2019144780 A JP2019144780 A JP 2019144780A
- Authority
- JP
- Japan
- Prior art keywords
- node
- edge
- graph
- selection
- nodes
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 151
- 230000008569 process Effects 0.000 claims description 131
- 238000012545 processing Methods 0.000 claims description 47
- 238000004519 manufacturing process Methods 0.000 claims description 6
- 238000010187 selection method Methods 0.000 claims 2
- 238000013500 data storage Methods 0.000 description 50
- 239000013598 vector Substances 0.000 description 37
- 238000003860 storage Methods 0.000 description 31
- 238000010586 diagram Methods 0.000 description 25
- 239000000284 extract Substances 0.000 description 8
- 230000010365 information processing Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000000052 comparative effect Effects 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明は、生成装置、生成方法、及び生成プログラムに関する。 The present invention relates to a generation device, a generation method, and a generation program.
従来、種々の情報を検索する技術が提供されている。例えば、無向エッジによって生成されたグラフデータを用いて検索を行う技術が提供されている。また、このような技術は、例えば画像検索等に用いられる。 Conventionally, techniques for retrieving various information have been provided. For example, a technique for performing a search using graph data generated by an undirected edge is provided. Such a technique is used for image retrieval, for example.
しかしながら、上記の従来技術では、所定の対象に関する効率的な検索を可能にすることが難しい場合がある。例えば、各対象に対応する各ノードが無向エッジにより連結されたグラフデータを用いて検索を行う場合、遠回りな経路の探索が生じる等により、処理時間等のコストを抑制することが難しい。 However, with the above-described conventional technology, it may be difficult to enable an efficient search for a predetermined target. For example, when a search is performed using graph data in which each node corresponding to each target is connected by an undirected edge, it is difficult to suppress costs such as processing time due to a search for a detour route.
本願は、上記に鑑みてなされたものであって、所定の対象に関する効率的な検索を可能にする生成装置、生成方法、及び生成プログラムを提供することを目的とする。 The present application has been made in view of the above, and an object thereof is to provide a generation device, a generation method, and a generation program that enable an efficient search for a predetermined target.
本願に係る生成装置は、データ検索の対象となる複数のノードの情報と、当該複数のノード間を連結する有向エッジ群である第1エッジ群の情報とを含む第1グラフと、前記複数のノードの情報を含む第2グラフを取得する取得部と、前記複数のノードのうち、前記第1グラフにおいて他のノードを終点とする出力エッジの数に基づいて第1選択ノードを選択する第1選択部と、前記第1グラフにおいて前記第1選択ノードを始点とする出力エッジが連結される対象ノードのうち、当該出力エッジの長さに基づいて第2選択ノードを選択する第2選択部と、前記第2グラフにおいて、前記第1選択ノードを始点とする出力エッジの数が所定の閾値未満である場合、前記第1エッジ群において前記第1選択ノードを始点とし前記第2選択ノードを終点とする出力エッジを前記第2グラフに第2エッジの情報として追加する更新処理により、前記第2エッジが追加された第2グラフを生成する生成部と、を備えたことを特徴とする。 The generating apparatus according to the present application includes a first graph including information on a plurality of nodes that are targets of data search, and information on a first edge group that is a directed edge group that connects the plurality of nodes, and the plurality of nodes An acquisition unit that acquires a second graph including node information; and a first selection node that selects a first selection node based on the number of output edges that end at another node in the first graph among the plurality of nodes. A first selection unit, and a second selection unit that selects a second selection node based on a length of the output edge from among target nodes to which an output edge starting from the first selection node is connected in the first graph In the second graph, when the number of output edges starting from the first selection node is less than a predetermined threshold, the second selection node starts from the first selection node in the first edge group. The updating process for adding the output edge of the end point as the information of the second edge in the second graph, is characterized in that and a generator for generating a second graph the second edge is added.
実施形態の一態様によれば、所定の対象に関する効率的な検索を可能にすることができるという効果を奏する。 According to one aspect of the embodiment, there is an effect that it is possible to efficiently search for a predetermined target.
以下に、本願に係る生成装置、生成方法、及び生成プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る生成装置、生成方法、及び生成プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。 Hereinafter, a generation apparatus, a generation method, and a mode for executing a generation program (hereinafter referred to as “embodiment”) according to the present application will be described in detail with reference to the drawings. Note that the generation device, the generation method, and the generation program according to the present application are not limited by this embodiment. In the following embodiments, the same portions are denoted by the same reference numerals, and redundant description is omitted.
(実施形態)
〔1.生成処理〕
図1を用いて、実施形態に係る生成処理の一例について説明する。図1は、実施形態に係る生成処理の一例を示す図である。図1では、生成装置100(図3参照)が与えられたグラフデータ(以下、「第1グラフデータ」ともいう)に基づいて、新たなグラフデータ(以下、「第2グラフデータ」ともいう)を生成する場合を示す。なお、図1の例では、生成装置100は、所定のグラフデータ(以下、「基グラフデータ」ともいう)から第1グラフデータを生成するが詳細は後述する。また、以下では、グラフデータを単にグラフと記載する場合がある。例えば、第1グラフデータを第1グラフと記載し、第2グラフデータを第2グラフとを記載する場合がある。すなわち、図1では、生成装置100が、基グラフデータから第1グラフデータを生成し、生成した第1グラフデータから第2グラフデータを生成する場合を示す。なお、対象とする情報(オブジェクト)は、ベクトルとして表現可能であれば、どのような情報であってもよい。なお、以下では、画像情報を対象としたベクトル情報について説明するが、ベクトル情報の対象は、動画情報や音声情報等の他の対象であってもよい。
(Embodiment)
[1. Generation process)
An example of the generation process according to the embodiment will be described with reference to FIG. FIG. 1 is a diagram illustrating an example of a generation process according to the embodiment. In FIG. 1, new graph data (hereinafter also referred to as “second graph data”) based on the graph data (hereinafter also referred to as “first graph data”) provided by the generation apparatus 100 (see FIG. 3). The case of generating is shown. In the example of FIG. 1, the
また、生成装置100は、図1に示すように、グラフデータを対象に生成処理を行う。なお、ここでいう、有向エッジとは、一方向にしかデータを辿れないエッジを意味する。以下では、エッジにより辿る元、すなわち始点となるノードを参照元とし、エッジにより辿る先、すなわち終点となるノードを参照先とする。例えば、所定のノード「A」から所定のノード「B」に連結される有向エッジとは、参照元をノード「A」とし、参照先をノード「B」とするエッジであることを示す。
Further, as illustrated in FIG. 1, the
以下では、このようにノード「A」を参照元とするエッジをノード「A」の出力エッジという。また、以下では、このようにノード「B」を参照先とするエッジをノード「B」の入力エッジという。すなわち、ここでいう出力エッジ及び入力エッジとは、一の有向エッジをその有向エッジが連結する2つのノードのうち、いずれのノードを中心として捉えるかの相違であり、一の有向エッジが出力エッジ及び入力エッジになる。すなわち、出力エッジ及び入力エッジは、相対的な概念であって、一の有向エッジについて、参照元となるノードを中心として捉えた場合に出力エッジとなり、参照先となるノードを中心として捉えた場合に入力エッジとなる。なお、本実施形態においては、エッジについては、出力エッジや入力エッジ等の有向エッジを対象とするため、以下では、有向エッジを単に「エッジ」と記載する場合がある。 Hereinafter, the edge having the node “A” as a reference source in this way is referred to as an output edge of the node “A”. In the following, an edge with the node “B” as a reference destination is referred to as an input edge of the node “B”. In other words, the output edge and the input edge here are differences in which one of the two nodes connected to the directed edge is regarded as the center, and the one directed edge. Becomes the output edge and the input edge. In other words, the output edge and the input edge are relative concepts, and for one directional edge, when the node as the reference source is regarded as the center, the output edge is regarded as the center, and the node as the reference destination is regarded as the center. The input edge. In the present embodiment, since the edges are directed edges such as output edges and input edges, the directed edges may be simply referred to as “edges” below.
また、ここでいう、各ノードは、各オブジェクトに対応する。例えば、画像から抽出された複数の局所特徴量のそれぞれがオブジェクトであってもよい。また、例えば、オブジェクト間の距離が定義された種々のデータがオブジェクトであってもよい。 Each node here corresponds to each object. For example, each of the plurality of local feature amounts extracted from the image may be an object. Further, for example, various data in which distances between objects are defined may be objects.
生成装置100は、例えば数百万〜数億単位の膨大な画像情報に対応するノードを対象に処理を行うが、図面においてはその一部のみを図示する。図1の例では、説明を簡単にするために、12個のノードのみを図示して処理の概要を説明する。例えば、生成装置100は、図1中のノードN1〜N12に示すような複数のノードを含み、エッジを含まない第2グラフデータGR12−1から開始し、順次エッジを追加することにより第2グラフデータGR12を生成する。
The
また、このように「ノードN*(*は任意の数値)」と記載した場合、そのノードはノードID「N*」により識別されるノードであることを示す。例えば、「ノードN1」と記載した場合、そのノードはノードID「N1」により識別されるノードである。 In addition, when “node N * (* is an arbitrary numerical value)” is described in this way, this indicates that the node is identified by the node ID “N *”. For example, when “node N1” is described, the node is a node identified by the node ID “N1”.
また、このように「エッジE*(*は任意の数値)」と記載した場合、そのエッジはエッジID「E*」により識別されるエッジであることを示す。例えば、「エッジE2」と記載した場合、そのエッジはエッジID「E2」により識別されるエッジである。例えば、ノードN1を参照元とし、ノードN2を参照先として連結されるエッジE2により、ノードN1からノードN2に辿ることが可能となる。この場合、有向エッジであるエッジE2は、ノードN1を中心として識別される場合、出力エッジとなり、ノードN2を中心として識別される場合、入力エッジとなる。言い換えると、有向エッジであるエッジE2は、ノードN1側からの視点でとらえた場合、自身から他のエッジへ矢印が向いているエッジ、すなわち外向きエッジとなり、ノードN2側からの視点でとらえた場合、自身の方に矢印が向いているエッジ、すなわち内向きエッジとなる。つまり、ここでいう出力エッジは、外向きエッジと読み替えることができ、入力エッジは、内向きエッジと読み替えることができる。 In addition, when “edge E * (* is an arbitrary numerical value)” is described in this way, it indicates that the edge is an edge identified by the edge ID “E *”. For example, when “edge E2” is described, the edge is an edge identified by the edge ID “E2”. For example, it is possible to trace from the node N1 to the node N2 by the edge E2 connected with the node N1 as a reference source and the node N2 as a reference destination. In this case, the edge E2, which is a directed edge, becomes an output edge when identified with the node N1 as the center, and becomes an input edge when identified with the node N2 as the center. In other words, the edge E2, which is a directed edge, when viewed from the viewpoint from the node N1 side, becomes an edge in which an arrow points from itself to another edge, that is, an outward edge, and is viewed from the viewpoint from the node N2 side. In this case, the edge is directed toward itself, that is, an inward edge. That is, the output edge here can be read as an outward edge, and the input edge can be read as an inward edge.
また、図1に示す空間情報VS1−1〜VS1−6は、グラフデータの生成過程を模式的に示す図であり、空間情報VS1−1〜VS1−6に示す空間は、同一の空間であってもよい。また、以下では、空間情報VS1−1〜VS1−6について、特に区別なく説明する場合には、空間情報VS1と記載する。 Also, the spatial information VS1-1 to VS1-6 shown in FIG. 1 is a diagram schematically showing a graph data generation process, and the spaces shown in the spatial information VS1-1 to VS1-6 are the same space. May be. Hereinafter, the spatial information VS1-1 to VS1-6 will be referred to as spatial information VS1 when they are not particularly distinguished.
また、図1中の空間情報VS1は、ユークリッド空間であってもよい。また、図1に示す空間情報VS1は、各ベクトル間の距離等の説明のための概念的な図であり、空間情報VS1は、多次元空間である。例えば、図1に示す空間情報VS1は、平面上に図示するため2次元の態様にて図示されるが、例えば100次元や1000次元等の多次元空間であるものとする。 Further, the spatial information VS1 in FIG. 1 may be a Euclidean space. Further, the spatial information VS1 shown in FIG. 1 is a conceptual diagram for explaining the distance between the vectors, and the spatial information VS1 is a multidimensional space. For example, the spatial information VS1 illustrated in FIG. 1 is illustrated in a two-dimensional manner to be illustrated on a plane, but is assumed to be a multidimensional space such as 100 dimensions or 1000 dimensions.
また、図1に示す第2グラフデータGR12−1〜GR12−4は、グラフデータの生成過程を模式的に示す図であり、第2グラフデータGR12−1〜GR12−4は、生成処理により生成される同一のグラフデータである。また、以下では、第2グラフデータGR12−1〜GR12−4について、特に区別なく説明する場合には、第2グラフデータGR12と記載する。 Further, the second graph data GR12-1 to GR12-4 shown in FIG. 1 are diagrams schematically showing the generation process of the graph data, and the second graph data GR12-1 to GR12-4 are generated by the generation process. Are the same graph data. In the following description, the second graph data GR12-1 to GR12-4 will be referred to as second graph data GR12 when they are not particularly distinguished.
また、図1に示す例においては、基グラフデータGR10、第1グラフデータGR11及び第2グラフデータGR12−1〜GR12−4においては、適宜「ノードN*(*は任意の数値)」の図示を省略し、取得した各ノードを「○」内に「ノードN*」の「*」の値を付すことにより表現する。すなわち、「ノードN*」の部分の「*」が一致するノードに対応する。例えば、空間情報VS1中の左上の「○」であって、内部に「2」が付された「○」は、ノードID「N2」により識別されるノードに対応する。例えば、図1に示す例において、各ノードに対応するベクトルデータは、N次元の実数値ベクトルであってもよい。 In the example shown in FIG. 1, in the base graph data GR10, the first graph data GR11, and the second graph data GR12-1 to GR12-4, “node N * (* is an arbitrary numerical value)” is appropriately illustrated. Is expressed by adding the value of “*” of “node N *” in “◯”. That is, it corresponds to the node with the “*” in the “node N *” part. For example, “O” in the upper left in the spatial information VS1 and “O” with “2” inside corresponds to the node identified by the node ID “N2”. For example, in the example shown in FIG. 1, the vector data corresponding to each node may be an N-dimensional real value vector.
本実施形態においては、空間情報VS1における各ノードの距離を対応する各オブジェクト間の類似度とする。例えば、各ノードに対応する対象(画像情報)の類似性が、空間情報VS1内におけるノード間の距離として写像されているものとする。例えば、各ノードに対応する概念間の類似度が各ノード間の距離に写像されているものとする。ここで、図1に示す例においては、空間情報VS1における各ノード間の距離が短いオブジェクト同士の類似度が高く、空間情報VS1における各ノード間の距離が長いオブジェクト同士の類似度が低い。例えば、図1中の空間情報VS1において、ノードID「N5」により識別されるノードと、ノードID「N8」により識別されるノードとは近接している、すなわち距離が短い。そのため、ノードID「N5」により識別されるノードに対応するオブジェクトと、ノードID「N8」により識別されるノードに対応するオブジェクトとは類似度が高いことを示す。 In the present embodiment, the distance of each node in the spatial information VS1 is set as the similarity between corresponding objects. For example, it is assumed that the similarity of objects (image information) corresponding to each node is mapped as a distance between nodes in the spatial information VS1. For example, it is assumed that the similarity between concepts corresponding to each node is mapped to the distance between the nodes. Here, in the example shown in FIG. 1, the similarity between the objects having a short distance between the nodes in the spatial information VS1 is high, and the similarity between the objects having a long distance between the nodes in the spatial information VS1 is low. For example, in the spatial information VS1 in FIG. 1, the node identified by the node ID “N5” and the node identified by the node ID “N8” are close to each other, that is, the distance is short. Therefore, the object corresponding to the node identified by the node ID “N5” and the object corresponding to the node identified by the node ID “N8” have a high degree of similarity.
また、例えば、図1中の空間情報VS1において、ノードID「N8」により識別されるノードと、ノードID「N12」により識別されるノードとは遠隔にある、すなわち距離が長い。そのため、ノードID「N8」により識別されるノードに対応するオブジェクトと、ノードID「N12」により識別されるノードに対応するオブジェクトとは類似度が低いことを示す。なお、類似度を示す指標としての距離は、ベクトル(N次元ベクトル)間の距離として適用可能であれば、どのような距離であってもよく、例えば、ユークリッド距離やマハラノビス距離やコサイン距離等の種々の距離が用いられてもよい。 Further, for example, in the spatial information VS1 in FIG. 1, the node identified by the node ID “N8” and the node identified by the node ID “N12” are remote, that is, have a long distance. Therefore, the degree of similarity between the object corresponding to the node identified by the node ID “N8” and the object corresponding to the node identified by the node ID “N12” is low. The distance as the index indicating the similarity may be any distance as long as it can be applied as the distance between the vectors (N-dimensional vectors), such as the Euclidean distance, the Mahalanobis distance, and the cosine distance. Various distances may be used.
また、図1の例では、生成装置100は、後述する更新処理により、ノードを有向エッジで連結することにより、グラフデータGR12を生成する。例えば、グラフデータGR12を用いた検索においては、検索時はグラフ構造型インデックスと同様の処理を行うが、開始位置(起点)は所定のインデックスを用いて決定した起点ノードからスタートしてもよい。また、例えば、生成装置100が生成したグラフデータGR12を用いて検索を行う場合、予め決定された起点ノードを起点として検索を行ってもよい。例えば、検索時においては、起点ノードがノードN1である場合、ノードN1から有向エッジを辿ることにより、ノードN2〜N12等を検索してもよい。なお、生成装置100は、検索時において図13に示すような処理手順により検索を行ってもよいが、詳細は後述する。
In the example of FIG. 1, the
ここから、図1を用いて生成処理の詳細を説明する。なお、図1に示す各ステップは、第2グラフデータの生成を説明するための便宜的なステップであり、実際の処理はより詳細な処理ステップにより行われてもよい。なお、生成装置100が行う生成処理は、図1中の第2グラフデータGR12−4に示すような第2グラフデータGR12が生成されれば、どのような処理フローであってもよい。
From here, the detail of a production | generation process is demonstrated using FIG. Each step shown in FIG. 1 is a convenient step for explaining the generation of the second graph data, and the actual processing may be performed by more detailed processing steps. The generation process performed by the
まず、生成装置100は、基グラフデータを取得する(ステップS10)。例えば、生成装置100は、基グラフデータ記憶部122から基グラフデータを取得する。図1の例では、生成装置100は、空間情報VS1−1に示すような基グラフデータGR10を取得する。例えば、基グラフデータGR10は、所定の基準に基づいて生成された近傍グラフであってもよい。例えば、基グラフデータGR10は、k近傍(k-nearest neighbor)グラフデータである。図1の例では、基グラフデータGR10は、kが「10」であり、各ノードから近傍の410個のノードに出力エッジが連結されたグラフデータである場合を例に説明する。なお、kは「200」等の種々の値であってもよい。
First, the
なお、基グラフデータは、k近傍グラフデータに限らず、近似k近傍グラフデータ等、複数のノードが有向エッジに連結されたグラフであればどのようなグラフデータであってもよい。また、図1では、処理の説明に必要なノード及びエッジのみを図示し、他のノードやエッジについては図示を省略する。例えば、基グラフデータGR10におけるノードN2〜N4、N6〜N8等からの出力エッジについては図示を省略する。 The base graph data is not limited to k-neighborhood graph data, but may be any graph data as long as it is a graph in which a plurality of nodes are connected to directed edges, such as approximate k-neighborhood graph data. In FIG. 1, only the nodes and edges necessary for the description of the processing are shown, and the other nodes and edges are not shown. For example, illustration of output edges from the nodes N2 to N4, N6 to N8, etc. in the base graph data GR10 is omitted.
そして、生成装置100は、基グラフデータから第1グラフデータを生成する(ステップS11)。例えば、生成装置100は、基グラフデータ中のエッジの向きを反転させることにより、基グラフデータのエッジの向きが逆となった第1グラフデータを生成する。すなわち、生成装置100は、各ノード等間の距離を変えずに、エッジの向きだけを反転させた第1グラフデータを生成する。例えば、生成装置100は、基グラフデータにおける一のノードの入力エッジを出力エッジとし、一のノードの出力エッジを入力エッジとすることにより、エッジの向きだけを反転させた第1グラフデータを生成する。
And the production |
図1の例では、生成装置100は、基グラフデータGR10から空間情報VS1−2に示すような第1グラフデータGR11を生成する。生成装置100は、基グラフデータGR1の転置グラフである第1グラフデータGR11を生成する。例えば、生成装置100は、図5中の基グラフデータ記憶部122に示す各ノードの参照先を始点とし、各ノードを終点として、各エッジの始点と終点を入れ替えることにより、図6中の第1グラフデータ記憶部123に示す第1グラフデータを生成する。例えば、生成装置100は、ノードN1を始点とし、ノードN2を終点とするエッジE2を反転させることにより、空間情報VS1−2に示すように、ノードN2を始点とし、ノードN1を終点とするするエッジE2−1を含む第1グラフデータGR11を生成する。例えば、生成装置100は、種々の従来技術を適宜用いて、グラフデータの転置グラフを生成してもよい。なお、生成装置100は、基グラフデータGR10の第1グラフデータGR11を生成できれば、どのような処理により第1グラフデータGR11を生成してもよい。
In the example of FIG. 1, the
そして、生成装置100は、第1グラフデータから第2グラフデータを生成する(ステップS12)。まず、生成装置100は、第1グラフデータからエッジ(第1エッジ)を除いた第2グラフデータを生成する。例えば、生成装置100は、第1グラフデータからエッジ群(第1エッジ群)を除くことにより、ノードのみを有する第2グラフデータを生成する。図1の例では、生成装置100は、空間情報VS1−3に示すように、第1グラフデータGR11からノードのみを有する第2グラフデータGR12−1を生成する。生成装置100は、ノードのみを有する第2グラフデータGR12−1から開始して、第2グラフデータに条件を満たすエッジ(以下、「第2エッジ」ともいう)を順次追加する。これにより、生成装置100は、第2エッジ群を含む第2グラフデータを生成する。
And the production |
そして、生成装置100は、第2グラフデータにおけるノードのうち、第1グラフデータにおける出力エッジの数に基づいてノード(以下、「第1選択ノード」ともいう)を選択する。そして、生成装置100は、第1選択ノードからの出力エッジが連結されたノード(以下、「対象ノード」ともいう)のうち、出力エッジの短さ、すなわち第1選択ノードとの距離の近さに基づいて、ノード(以下、「第2選択ノード」ともいう)を選択する。
Then, the
そして、生成装置100は、第2グラフにおいて、第2選択ノードを終点とする入力エッジの数が他の閾値(以下、「第1閾値」ともいう)未満であり、第1選択ノードを始点とする出力エッジの数が所定の閾値(以下、「第2閾値」ともいう)未満である場合、第1選択ノードを始点とし第2選択ノードを終点とする出力エッジを第2グラフに追加する。生成装置100は、上記の更新処理を第1選択ノード毎に繰り返すことにより、第2グラフデータを生成する。図1の例では、閾値一覧TL11に示すように、第1閾値「4」未満であり、第2閾値「3」未満である場合を一例として説明する。
In the second graph, the
例えば、生成装置100は、第2グラフデータにおけるノードのうち、第1グラフデータにおける出力エッジが少ない方から順に第1選択ノードを選択する。図1の例では、生成装置100は、一覧情報LT11に示すような各ノードN1〜N12の出力エッジ数に基づいて、第1選択ノードを選択する。
For example, the
生成装置100は、最も出力エッジ数が少ない(0本である)ノードN1を第1選択ノードとして選択し、更新処理を行う。そして、生成装置100は、ノードN1の次に出力エッジ数が少ない(1本である)ノードN2を第1選択ノードとして選択し、更新処理を行う。また、生成装置100は、ノードN1の次に出力エッジ数が少ない(1本である)ノードN2を第1選択ノードとして選択し、更新処理を行う。また、生成装置100は、ノードN1の次に出力エッジ数が少ない(1本である)ノードN3を第1選択ノードとして選択し、更新処理を行う。このように、図1の例では、生成装置100は、ノードN1〜N4を順次第1選択ノードとして、更新処理を行うことにより第2エッジが追加された第2グラフデータを生成する(ステップS13)。すなわち、生成装置100は、更新処理を行うことにより、第2グラフデータに含まれるエッジ(第2エッジ)を更新(追加)することにより、第2エッジが追加された第2グラフデータを生成する。
The
生成装置100は、第1グラフデータGR11中のノードN1を始点とする出力エッジは0本であるため、第2選択ノードとして選択される対象ノードがないため、第2グラフデータGR12−1にエッジ(第2エッジ)を追加することなく、ノードN1を第1選択ノードとする更新処理を終了する。
Since the
また、生成装置100は、ノードN2を第1選択ノードとする更新処理においては、第1グラフデータGR11中のノードN2を始点とする出力エッジは1本であるため、その終点であるノードN1を第2選択ノードとして選択する。そして、生成装置100は、第2グラフデータGR12−1において、第2選択ノードであるノードN1を終点とする入力エッジの数が第1閾値「4」未満の0本であり、第1選択ノードであるノードN2を始点とする出力エッジの数が第2閾値「3」未満の1本であるため、ノードN2を始点としノードN1を終点とするエッジE2−1を第2グラフデータGR12に追加する。このように、生成装置100は、エッジの本数と第1閾値及び第2閾値との比較に基づく条件を満たすかどうかを判定する。そして、生成装置100は、条件を満たすと判定した場合、その判定対象のノードに対応するエッジを第2グラフデータに追加する。
Further, in the update process in which the node N2 is the first selection node, the
また、生成装置100は、ノードN3を第1選択ノードとする更新処理においては、第1グラフデータGR11中のノードN3を始点とする出力エッジは1本であるため、その終点であるノードN1を第2選択ノードとして選択する。そして、生成装置100は、エッジE2−1追加後の第2グラフデータGR12において、第2選択ノードであるノードN1を終点とする入力エッジの数が第1閾値「4」未満の1本であり、第1選択ノードであるノードN3を始点とする出力エッジの数が第2閾値「3」未満の0本である。そのため、生成装置100は、第1閾値及び第2閾値に基づく条件を満たすと判定し、ノードN3を始点としノードN1を終点とするエッジE3−1を第2グラフデータGR12に追加する。
In addition, in the update process in which the node N3 is the first selected node, the
また、生成装置100は、ノードN4を第1選択ノードとする更新処理においては、第1グラフデータGR11中のノードN4を始点とする出力エッジは1本であるため、その終点であるノードN1を第2選択ノードとして選択する。そして、生成装置100は、エッジE2−1、E3−1追加後の第2グラフデータGR12において、第2選択ノードであるノードN1を終点とする入力エッジの数が第1閾値「4」未満の2本であり、第1選択ノードであるノードN4を始点とする出力エッジの数が第2閾値「3」未満の0本である。そのため、生成装置100は、第1閾値及び第2閾値に基づく条件を満たすと判定し、ノードN4を始点としノードN1を終点とするエッジE4−1を第2グラフデータGR12に追加する。これにより、生成装置100は、空間情報VS1−4に示すように、エッジE2−1、E3−1、E4−1の3本のエッジ(第2エッジ)が追加された第2グラフデータGR12−2を生成する。
In addition, in the update process in which the node N4 is the first selection node, the
そして、生成装置100は、一覧情報LT11に示すように、ノードN2〜N4の次に出力エッジ数が少ない(3本である)ノードN10を第1選択ノードとして選択する(ステップS14)。
Then, as illustrated in the list information LT11, the
そして、生成装置100は、第1グラフにおいて第1選択ノードを始点とする出力エッジが連結される対象ノードのうち、出力エッジの長さに基づいて、第2選択ノードを順次選択することにより、第2グラフデータを生成する(ステップS15)。図1の例では、生成装置100は、ノードN10からの出力エッジが連結されるノードN1、N11、N12の3つのノードを対象ノードとして、第2選択ノードを選択する。例えば、生成装置100は、第1グラフデータGR11においてノードN10を始点とするエッジE10−1、E11−1、E12−1のうち、長さが短いエッジが連結されるノードから順に、第2選択ノードとして選択する。
Then, the
図1の例では、生成装置100は、一覧情報LT12に示すように、各エッジE10−1、E11−1、E12−1の長さ、すなわちノードN10と、ノードN1、N11、N12の3つのノードとの間の距離を算出する。例えば、生成装置100は、2つのノードのベクトルを用いて2つのノード間の距離を算出する。例えば、生成装置100は、ノードN10のベクトルとノードN1のベクトルとを用いて、エッジE10−1の長さ、すなわちノードN10とノードN1との間の距離を算出する。なお、生成装置100が算出するエッジの長さ、すなわちノード間の距離は、どのような距離であってもよく、例えば、ユークリッド距離やマハラノビス距離やコサイン距離等であってもよい。
In the example of FIG. 1, as illustrated in the list information LT12, the
図1の例では、生成装置100は、一覧情報LT12に示すように、ノードN10と、ノードN1、N11、N12の3つのノードとの間の距離を各々距離D10、D11、D12と算出する。すなわち、生成装置100は、エッジE10−1の長さを、距離D10と算出し、エッジE11−1の長さを距離D11と算出し、エッジE12−1の長さを距離D12と算出する。また、図1中の一覧情報LT12に示すように、距離D10、D11、D12のうち、距離D11が最も小さく、距離D10が最も大きいものとする。
In the example of FIG. 1, as illustrated in the list information LT12, the
そして、生成装置100は、一覧情報LT12に示す順位1位から順に参照先に示す各ノードを第2選択ノードとして選択し、エッジを追加するかを判定する。図1の例では、生成装置100は、順位1位の参照先であるノードN11を第2選択ノードとして選択し、エッジを追加するかを判定する。
Then, the
第1選択ノードがノードN10であり、ノードN11を第2選択ノードとする場合、生成装置100は、第2選択ノードであるノードN11を終点とする入力エッジの数が第1閾値「4」未満の0本であり、第1選択ノードであるノードN10を始点とする出力エッジの数が第2閾値「3」未満の0本である。そのため、生成装置100は、第1閾値及び第2閾値に基づく条件を満たすと判定し、ノードN10を始点としノードN11を終点とするエッジE11−1を第2グラフデータGR12に追加する。
When the first selection node is the node N10 and the node N11 is the second selection node, the
次に、第1選択ノードがノードN10であり、ノードN12を第2選択ノードとする場合、生成装置100は、第2選択ノードであるノードN12を終点とする入力エッジの数が第1閾値「4」未満の0本であり、第1選択ノードであるノードN10を始点とする出力エッジの数がエッジE11−1の1本であり、第2閾値「3」未満である。そのため、生成装置100は、第1閾値及び第2閾値に基づく条件を満たすと判定し、ノードN10を始点としノードN12を終点とするエッジE12−1を第2グラフデータGR12に追加する。
Next, when the first selection node is the node N10 and the node N12 is the second selection node, the
次に、第1選択ノードがノードN10であり、ノードN1を第2選択ノードとする場合、生成装置100は、第2選択ノードであるノードN1を終点とする入力エッジの数がエッジE2−1、E3−1、E4−1の3本であり、第1閾値「4」未満であり、第1選択ノードであるノードN10を始点とする出力エッジの数がエッジE11−1、E12−1の2本であり、第2閾値「3」未満である。そのため、生成装置100は、第1閾値及び第2閾値に基づく条件を満たすと判定し、ノードN10を始点としノードN1を終点とするエッジE10−1を第2グラフデータGR12に追加する。これにより、生成装置100は、空間情報VS1−5に示すように、エッジE10−1、E11−1、E12−1の3本のエッジ(第2エッジ)が追加された第2グラフデータGR12−3を生成する。
Next, when the first selection node is the node N10 and the node N1 is the second selection node, the
そして、生成装置100は、一覧情報LT11に示すように、ノードN10の次に出力エッジ数が少ない(5本である)ノードN5を第1選択ノードとして選択する(ステップS16)。
Then, as illustrated in the list information LT11, the
そして、生成装置100は、第1グラフにおいて第1選択ノードを始点とする出力エッジが連結される対象ノードのうち、出力エッジの長さに基づいて、第2選択ノードを順次選択することにより、第2グラフデータを生成する(ステップS17)。図1の例では、生成装置100は、ノードN5からの出力エッジが連結されるノードN1、N6〜N9の5つのノードを対象ノードとして、第2選択ノードを選択する。例えば、生成装置100は、第1グラフデータGR11においてノードN5を始点とするエッジE5−1〜E9−1のうち、長さが短いエッジが連結されるノードから順に、第2選択ノードとして選択する。
Then, the
図1の例では、生成装置100は、一覧情報LT13に示すように、各エッジE5−1〜E9−1の長さ、すなわちノードN5と、ノードN1、N6〜N9の5つのノードとの間の距離を算出する。図1の例では、生成装置100は、一覧情報LT13に示すように、ノードN5と、ノードN1、N6〜N9の5つのノードとの間の距離を各々距離D5〜D9と算出する。すなわち、生成装置100は、エッジE10−1の長さを、距離D10と算出し、エッジE11−1の長さを距離D11と算出し、エッジE12−1の長さを距離D12と算出する。また、図1中の一覧情報LT12に示すように、距離D5〜D9のうち、距離D8が最も小さく、距離D9が最も大きいものとする。また、距離D8、D6、D5、D7、D9の順で小さいものとする。
In the example of FIG. 1, as illustrated in the list information LT13, the
そして、生成装置100は、一覧情報LT13に示す順位1位から順に参照先に示す各ノードを第2選択ノードとして選択し、エッジを追加するかを判定する。図1の例では、生成装置100は、順位1位の参照先であるノードN8を第2選択ノードとして選択し、エッジを追加するかを判定する。
Then, the
まず、第1選択ノードがノードN5であり、ノードN8を第2選択ノードとする場合、生成装置100は、第2選択ノードであるノードN8を終点とする入力エッジの数が第1閾値「4」未満の0本であり、第1選択ノードであるノードN5を始点とする出力エッジの数が第2閾値「3」未満の0本である。そのため、生成装置100は、第1閾値及び第2閾値に基づく条件を満たすと判定し、ノードN5を始点としノードN8を終点とするエッジE8−1を第2グラフデータGR12に追加する。
First, when the first selection node is the node N5 and the node N8 is the second selection node, the
次に、第1選択ノードがノードN5であり、ノードN6を第2選択ノードとする場合、生成装置100は、第2選択ノードであるノードN6を終点とする入力エッジの数が第1閾値「4」未満の0本であり、第1選択ノードであるノードN5を始点とする出力エッジの数がエッジE8−1の1本であり、第2閾値「3」未満である。そのため、生成装置100は、第1閾値及び第2閾値に基づく条件を満たすと判定し、ノードN5を始点としノードN6を終点とするエッジE6−1を第2グラフデータGR12に追加する。
Next, when the first selection node is the node N5 and the node N6 is the second selection node, the
次に、第1選択ノードがノードN5であり、ノードN1を第2選択ノードとする場合、生成装置100は、第2選択ノードであるノードN1を終点とする入力エッジの数がエッジE2−1、E3−1、E4−1、E10−1の4本であり、第1閾値「4」未満ではない。そのため、生成装置100は、第1選択ノードがノードN5であり、ノードN1を第2選択ノードである組合せが第1閾値に基づく条件を満たさないと判定し、ノードN5を始点としノードN1を終点とするエッジE5−1を第2グラフデータGR12に追加しない。これにより、生成装置100は、特定のノードに入力エッジが集中することを抑制することができる。
Next, when the first selection node is the node N5 and the node N1 is the second selection node, the
次に、第1選択ノードがノードN5であり、ノードN7を第2選択ノードとする場合、生成装置100は、第2選択ノードであるノードN7を終点とする入力エッジの数が第1閾値「4」未満の0本であり、第1選択ノードであるノードN5を始点とする出力エッジの数がエッジE8−1、E6−1の2本であり、第2閾値「3」未満である。そのため、生成装置100は、第1閾値及び第2閾値に基づく条件を満たすと判定し、ノードN5を始点としノードN7を終点とするエッジE7−1を第2グラフデータGR12に追加する。
Next, when the first selection node is the node N5 and the node N7 is the second selection node, the
次に、第1選択ノードがノードN5であり、ノードN9を第2選択ノードとする場合、生成装置100は、第2選択ノードであるノードN9を終点とする入力エッジの数が第1閾値「4」未満の0本であるため、第1閾値の条件を満たすと判定する。一方、生成装置100は、第1選択ノードであるノードN5を始点とする出力エッジの数がエッジE6−1〜E8−1の3本であり、第2閾値「3」未満ではないため、第2閾値の条件を満たさないと判定する。そのため、生成装置100は、ノードN5を始点としノードN9を終点とするエッジE9−1を第2グラフデータGR12に追加しない。これにより、生成装置100は、特定のノードの出力エッジの増大を抑制することにより、処理時間や処理負荷が増大することを抑制することができる。これにより、生成装置100は、空間情報VS1−6に示すように、エッジE6−1〜E8−1の3本のエッジ(第2エッジ)が追加された第2グラフデータGR12−4を生成する。
Next, when the first selection node is the node N5 and the node N9 is the second selection node, the
上述したように、生成装置100は、第1グラフデータGR11中の第1エッジ群のうち、第1閾値及び第2閾値に基づく条件を満たすと判定されたエッジのみを第2エッジとして、第2グラフデータに追加することにより、特定のノードに入力エッジや出力エッジが集中することが抑制された第2グラフデータを生成することができる。これにより、生成装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As described above, the
このように、生成装置100は、適宜設定可能な第1閾値と第2閾値との2つの閾値を用いて、エッジを追加するかどうか判定する。これにより、生成装置100は、出力エッジや入力エッジの本数について所望の第2グラフを生成することができる。したがって、生成装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As described above, the
従来から、グラフ構造において各ノードが近傍ノードに有向エッジで接続されている近傍グラフ(k近傍グラフ等を含む)が近傍検索に利用されている。このような、有向エッジを含む近傍グラフを用いた検索においては、入力エッジが少なすぎるノードは、そのノードへ到達する可能性を低め、検索精度の低下につながる。また、出力エッジが多すぎる大きすぎるノードは、距離計算回数を増大させ、検索時間の増加につながる。そこで、生成装置100は、入力エッジ及び出力エッジの各々に対応する閾値(第1閾値、第2閾値)を用いて、入力エッジの数が小さいノードや出力エッジの数が大きいノードをグラフ生成時に減らす。言い換えると、生成装置100は、入力エッジの数が小さいノードや出力エッジの数が大きいノードが含まれる第2グラフが生成されることを抑制するように、第2グラフを生成する。これにより、生成装置100は、所望の第2グラフを生成し、第2グラフによる検索性能の向上を可能にする。
Conventionally, neighborhood graphs (including k-neighbor graphs and the like) in which each node is connected to neighboring nodes by directed edges in the graph structure are used for neighborhood search. In such a search using a neighborhood graph including a directed edge, a node with too few input edges is less likely to reach that node, leading to a decrease in search accuracy. A node having too many output edges increases the number of distance calculations, leading to an increase in search time. Therefore, the
また、例えば、グラフデータ中に多数(例えば1000個、1万個等)の出力エッジを含むノードが含まれる場合、そのノードを辿る検索の処理負荷が増大する。また、例えば、グラフデータ中に少数(例えば0個や1個等)の入力エッジを含むノードが含まれる場合、そのノードが検索される可能性が低くなる。このように、生成装置100は、各ノードについて、出力エッジや入力エッジに偏りが生じないよう、特に特定のノードの出力エッジが増大しないようにエッジを調整することにより、処理負荷が増大するノードや、検索される可能性が低いノードが含まれる可能性を低減することができる。したがって、生成装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。また、生成装置100により生成されたグラフデータは、エッジの数の増大を抑制しつつ、所定の対象に関する効率的な検索を可能にすることができる。
Further, for example, if the graph data includes a large number (for example, 1000, 10,000, etc.) of nodes including output edges, the processing load of the search that follows the nodes increases. Further, for example, when a node including a small number (for example, 0 or 1) of input edges is included in the graph data, the possibility that the node is searched is reduced. As described above, the
〔1−1.第1グラフデータ〕
図1の例では、生成装置100が与えられた第1グラフデータGR11から第2グラフデータGR12を生成する場合を示したが、生成装置100は、第1グラフデータを用いることなく第2グラフデータを生成してもよい。例えば、生成装置100は、エッジが連結されていない複数のノードから第2グラフデータを生成してもよい。
[1-1. First graph data]
In the example of FIG. 1, the
例えば、生成装置100は、各ノードから他の全ノードまでの距離に基づく順位に基づいて、第2グラフデータを生成してもよい。例えば、生成装置100は、各ノードを始点ノードとし、各ノードとの距離が短い方から順に第1閾値の数の他のノードを終点ノードとする出力エッジと、各ノードを終点ノードとし、各ノードとの距離が短い方から順に第2閾値の数の他のノードを始点ノードとする入力エッジとを、各ノードに連結することによりグラフデータを生成する。この場合、生成装置100は、各ノードから他の全ノードに出力エッジが連結されたグラフデータを対象とする場合を同様の処理となる。このように、生成装置100は、エッジが連結されていない複数のノードから第2グラフデータを生成してもよい。
For example, the
〔1−2.第1閾値、第2閾値〕
図1の例では、第1閾値を「4」とし、第2閾値を「3」とする場合を示したが、第1閾値や第2閾値には種々の値が選択されてもよい。例えば、第1閾値と第2閾値とは同じ値であってもよい。例えば、第1閾値は、第2閾値よりも小さい値であってもよい。
[1-2. First threshold, second threshold]
In the example of FIG. 1, the first threshold is set to “4” and the second threshold is set to “3”, but various values may be selected for the first threshold and the second threshold. For example, the first threshold value and the second threshold value may be the same value. For example, the first threshold value may be smaller than the second threshold value.
〔1−3.インデックスデータ〕
また、生成装置100は、検索時に用いるインデックスデータを生成してもよい。例えば、生成装置100は、高次元ベクトルを検索する検索インデックスをインデックスデータとして生成する。ここでいう高次元ベクトルとは、例えば、数百次元から数千次元のベクトルであってもよいし、それ以上の次元のベクトルであってもよい。
[1-3. Index data)
Further, the
例えば、生成装置100は、ツリー構造(木構造)に関する検索インデックスをインデックスデータとして生成してもよい。例えば、生成装置100は、kd木(k-dimensional tree)に関する検索インデックスをインデックスデータとして生成してもよい。例えば、生成装置100は、VP木(Vantage-Point tree)に関する検索インデックスをインデックスデータとして生成してもよい。
For example, the generating
また、例えば、生成装置100は、その他の木構造を有するインデックスデータとして生成してもよい。例えば、生成装置100は、木構造のインデックスデータのリーフがグラフデータに接続する種々のインデックスデータを生成してもよい。例えば、生成装置100は、木構造のインデックスデータのリーフが第2グラフデータ中のノードに対応する種々のインデックスデータを生成してもよい。また、生成装置100は、このようなインデックスデータを用いて検索を行う場合、インデックスデータを辿って到達したリーフ(ノード)からグラフデータを探索してもよい。
For example, the generating
なお、上述したようなインデックスデータは一例であり、生成装置100は、グラフデータ中のクエリを高速に特定することが可能であれば、どのようなデータ構造のインデックスデータを生成してもよい。例えば、生成装置100は、クエリに対応するセントロイド情報を高速に特定することが可能であれば、バイナリ空間分割に関する技術等の種々の従来技術を適宜用いて、インデックスデータを生成してもよい。例えば、生成装置100は、高次元ベクトルの検索に対応可能なインデックスであれば、どのようなデータ構造のインデックスデータを生成してもよい。生成装置100は、上述のようなインデックスデータと第2グラフデータとを用いることにより、所定の対象に関するより効率的な検索を可能にすることができる。
Note that the index data as described above is an example, and the
〔2.生成システムの構成〕
図2に示すように、生成システム1は、端末装置10と、情報提供装置50と、生成装置100とが含まれる。端末装置10と、情報提供装置50と、生成装置100とは所定のネットワークNを介して、有線または無線により通信可能に接続される。図2は、実施形態に係る生成システムの構成例を示す図である。なお、図2に示した生成システム1には、複数台の端末装置10や、複数台の情報提供装置50や、複数台の生成装置100が含まれてもよい。
[2. Generation system configuration)
As illustrated in FIG. 2, the
端末装置10は、ユーザによって利用される情報処理装置である。端末装置10は、ユーザによる種々の操作を受け付ける。なお、以下では、端末装置10をユーザと表記する場合がある。すなわち、以下では、ユーザを端末装置10と読み替えることもできる。なお、上述した端末装置10は、例えば、スマートフォンや、タブレット型端末や、ノート型PC(Personal Computer)や、デスクトップPCや、携帯電話機や、PDA(Personal Digital Assistant)等により実現される。
The
情報提供装置50は、ユーザ等に種々の情報提供を行うための情報が格納された情報処理装置である。例えば、情報提供装置50は、ウェブサーバ等の種々の外部装置から収集した文字情報等に基づくオブジェクトIDが格納される。例えば、情報提供装置50は、ユーザ等に画像検索サービスを提供する情報処理装置である。例えば、情報提供装置50は、画像検索サービスを提供するための各情報が格納される。例えば、情報提供装置50は、画像検索サービスの対象となる画像に対応するベクトル情報を生成装置100に提供する。また、情報提供装置50は、クエリを生成装置100に送信することにより、生成装置100からクエリに対応する画像を示すオブジェクトID等を受信する。
The
生成装置100は、各ノードを始点ノードとし、各ノードとの距離が短い方から順に第1閾値の数の他のノードを終点ノードとする出力エッジと、各ノードを終点ノードとし、各ノードとの距離が短い方から順に第2閾値の数の他のノードを始点ノードとする入力エッジとを、第1グラフデータから第2グラフデータを生成各ノードに連結することによりグラフデータを生成する。例えば、生成装置100は、第1グラフデータから第2グラフデータを生成する。
The
例えば、生成装置100は、端末装置からクエリ情報(以下、単に「クエリ」ともいう)を受信すると、クエリに類似する対象(ベクトル情報等)を検索し、検索結果を端末装置に提供する。また、例えば、生成装置100が端末装置に提供するデータは、画像情報等のデータ自体であってもよいし、URL(Uniform Resource Locator)等の対応するデータを参照するための情報であってもよい。また、クエリや検索対象のデータは、画像、音声、テキストデータなど、如何なる種類のデータであってもよい。本実施形態において、生成装置100が画像を検索する場合を一例として説明する。
For example, when receiving the query information (hereinafter, also simply referred to as “query”) from the terminal device, the
〔3.生成装置の構成〕
次に、図3を用いて、実施形態に係る生成装置100の構成について説明する。図3は、実施形態に係る生成装置100の構成例を示す図である。図3に示すように、生成装置100は、通信部110と、記憶部120と、制御部130とを有する。なお、生成装置100は、生成装置100の管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(例えば、液晶ディスプレイ等)を有してもよい。
[3. Configuration of the generator
Next, the configuration of the
(通信部110)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部110は、ネットワーク(例えば図2中のネットワークN)と有線または無線で接続され、端末装置10や情報提供装置50との間で情報の送受信を行う。
(Communication unit 110)
The
(記憶部120)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。実施形態に係る記憶部120は、図3に示すように、オブジェクト情報記憶部121と、基グラフデータ記憶部122と、第1グラフデータ記憶部123と、閾値情報記憶部124と、第2グラフデータ記憶部125とを有する。
(Storage unit 120)
The
(オブジェクト情報記憶部121)
実施形態に係るオブジェクト情報記憶部121は、オブジェクトに関する各種情報を記憶する。例えば、オブジェクト情報記憶部121は、オブジェクトIDやベクトルデータを記憶する。図4は、実施形態に係るオブジェクト情報記憶部の一例を示す図である。図4に示すオブジェクト情報記憶部121は、「オブジェクトID」、「ベクトル情報」といった項目が含まれる。
(Object information storage unit 121)
The object
「オブジェクトID」は、オブジェクトを識別するための識別情報を示す。また、「ベクトル情報」は、オブジェクトIDにより識別されるオブジェクトに対応するベクトル情報を示す。すなわち、図4の例では、オブジェクトを識別するオブジェクトIDに対して、オブジェクトに対応するベクトルデータ(ベクトル情報)が対応付けられて登録されている。 “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 the example of FIG. 4, vector data (vector information) corresponding to an object is registered in association with an object ID for identifying the object.
例えば、図4の例では、ID「OB1」により識別されるオブジェクト(対象)は、「10,24,51,2...」の多次元のベクトル情報が対応付けられることを示す。 For example, in the example of FIG. 4, the object (target) identified by the ID “OB1” is associated with multidimensional vector information “10, 24, 51, 2.
なお、オブジェクト情報記憶部121は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
The object
(基グラフデータ記憶部122)
実施形態に係る基グラフデータ記憶部122は、グラフデータに関する各種情報を記憶する。例えば、基グラフデータ記憶部122は、第1グラフデータを生成する基となるグラフデータを記憶する。図5の例は、基グラフデータ記憶部122は、近傍グラフデータを記憶する。図5は、実施形態に係る基グラフデータ記憶部の一例を示す図である。図5に示す基グラフデータ記憶部122は、「ノードID」、「オブジェクトID」、および「有向エッジ情報」といった項目を有する。また、「有向エッジ情報」には、「エッジID」や「参照先」といった情報が含まれる。
(Base graph data storage unit 122)
The base graph
「ノードID」は、グラフデータにおける各ノード(対象)を識別するための識別情報を示す。また、「オブジェクトID」は、オブジェクトを識別するための識別情報を示す。 “Node ID” indicates identification information for identifying each node (target) in the graph data. The “object ID” indicates identification information for identifying the object.
また、「有向エッジ情報」は、対応するノードに接続されるエッジに関する情報を示す。図5の例では、「有向エッジ情報」は、対応するノードから出力される出力エッジに関する情報を示す。また、「エッジID」は、ノード間を連結するエッジを識別するための識別情報を示す。また、「参照先」は、エッジにより連結された参照先(ノード)を示す情報を示す。すなわち、図5の例では、ノードを識別するノードIDに対して、そのノードに対応するオブジェクト(対象)を識別する情報やそのノードからの有向エッジ(出力エッジ)が連結される参照先(ノード)が対応付けられて登録されている。 “Directed edge information” indicates information related to an edge connected to a corresponding node. In the example of FIG. 5, “directed edge information” indicates information regarding the output edge output from the corresponding node. “Edge ID” indicates identification information for identifying an edge connecting nodes. “Reference destination” indicates information indicating a reference destination (node) connected by an edge. That is, in the example of FIG. 5, with respect to a node ID for identifying a node, information for identifying an object (target) corresponding to the node and a reference destination to which a directed edge (output edge) from the node is linked ( Node) is registered in association with each other.
例えば、図5の例では、ノードID「N1」により識別されるノード(ノードN1)は、オブジェクトID「OB1」により識別されるオブジェクト(対象)に対応することを示す。また、ノードN1からは、エッジID「E2」により識別されるエッジ(エッジE2)が、ノードID「N2」により識別されるノード(ノードN1)に連結されることを示す。すなわち、図5の例では、基グラフデータにおけるノードN1からはエッジE2によりノードN2へ辿ることができることを示す。 For example, in the example of FIG. 5, the node (node N1) identified by the node ID “N1” corresponds to the object (target) identified by the object ID “OB1”. The node N1 indicates that the edge (edge E2) identified by the edge ID “E2” is connected to the node (node N1) identified by the node ID “N2”. That is, in the example of FIG. 5, it can be traced from the node N1 in the base graph data to the node N2 by the edge E2.
なお、基グラフデータ記憶部122は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、基グラフデータ記憶部122は、各ノード(ベクトル)間を連結するエッジの長さが記憶されてもよい。すなわち、基グラフデータ記憶部122は、各ノード(ベクトル)間の距離を示す情報が記憶されてもよい。
The base graph
(第1グラフデータ記憶部123)
実施形態に係る第1グラフデータ記憶部123は、第1グラフデータに関する各種情報を記憶する。例えば、第1グラフデータ記憶部123は、第2グラフデータを生成する基となる第1グラフデータを記憶する。図6は、実施形態に係る第1グラフデータ記憶部の一例を示す図である。図6に示す第1グラフデータ記憶部123は、「ノードID」、「オブジェクトID」、および「有向エッジ情報」といった項目を有する。また、「有向エッジ情報」には、「エッジID」や「参照先」といった情報が含まれる。
(First graph data storage unit 123)
The 1st graph
「ノードID」は、グラフデータにおける各ノード(対象)を識別するための識別情報を示す。また、「オブジェクトID」は、オブジェクトを識別するための識別情報を示す。 “Node ID” indicates identification information for identifying each node (target) in the graph data. The “object ID” indicates identification information for identifying the object.
また、「有向エッジ情報」は、対応するノードに接続されるエッジに関する情報を示す。図6の例では、「有向エッジ情報」は、対応するノードから出力される出力エッジに関する情報を示す。また、「エッジID」は、ノード間を連結するエッジを識別するための識別情報を示す。また、「参照先」は、エッジにより連結された参照先(ノード)を示す情報を示す。すなわち、図6の例では、ノードを識別するノードIDに対して、そのノードに対応するオブジェクト(対象)を識別する情報やそのノードからの有向エッジ(出力エッジ)が連結される参照先(ノード)が対応付けられて登録されている。 “Directed edge information” indicates information related to an edge connected to a corresponding node. In the example of FIG. 6, “directed edge information” indicates information regarding the output edge output from the corresponding node. “Edge ID” indicates identification information for identifying an edge connecting nodes. “Reference destination” indicates information indicating a reference destination (node) connected by an edge. That is, in the example of FIG. 6, with respect to a node ID for identifying a node, information for identifying an object (target) corresponding to the node and a reference destination to which a directed edge (output edge) from the node is linked ( Node) is registered in association with each other.
例えば、図6の例では、ノードID「N1」により識別されるノードは、オブジェクトID「OB1」により識別されるオブジェクト(対象)に対応することを示す。 For example, in the example of FIG. 6, the node identified by the node ID “N1” corresponds to the object (target) identified by the object ID “OB1”.
なお、ノードID中の括弧内は、各グラフデータ間のノードIDを識別可能にする場合のIDを示す。図6の例では、第1グラフデータ記憶部123の各ノードIDには、基グラフデータ記憶部122において対応するノードIDに「−1」が追加されたIDが記憶される。この場合、参照先にも対応するノードIDが記憶される。具体的には、参照先には、図6中のノードIDの末尾に「−1」が追加されたノードIDが記憶されてもよい。例えば、エッジE2−1に対応する参照先には、ノードID「N1−1」が記憶される。
The parentheses in the node ID indicate the ID when the node ID between the graph data can be identified. In the example of FIG. 6, each node ID in the first graph
図6の例では、ノードID「N1」により識別されるノードからは、出力エッジがないことを示す。また、ノードID「N2」により識別されるノード(ノードN2)からは、エッジID「E2−1」により識別されるエッジ(エッジE2−1)が、ノードID「N1」により識別されるノード(ノードN1)に連結されることを示す。すなわち、図6の例では、第1グラフデータにおけるノードN2からはエッジE2−1によりノードN1へ辿ることができることを示す。 The example of FIG. 6 indicates that there is no output edge from the node identified by the node ID “N1”. Further, from the node (node N2) identified by the node ID “N2”, the edge (edge E2-1) identified by the edge ID “E2-1” is identified by the node ID (N1) ( Node N1) is connected. That is, in the example of FIG. 6, it can be traced from the node N2 in the first graph data to the node N1 by the edge E2-1.
なお、第1グラフデータ記憶部123は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、第1グラフデータ記憶部123は、各ノード(ベクトル)間を連結するエッジの長さが記憶されてもよい。すなわち、第1グラフデータ記憶部123は、各ノード(ベクトル)間の距離を示す情報が記憶されてもよい。
In addition, the 1st graph data memory |
(閾値情報記憶部124)
実施形態に係る閾値情報記憶部124は、閾値に関する各種情報を記憶する。例えば、閾値情報記憶部124は、第1閾値や第2閾値を記憶する。図7は、実施形態に係る閾値記憶部の一例を示す図である。図7に示す閾値情報記憶部124は、「閾値名」、「値」、「対象ノード」、「対象エッジ」といった項目が含まれる。
(Threshold information storage unit 124)
The threshold
「閾値名」は、閾値を識別するための情報(名称)を示す。また、「値」は、対応する閾値の具体的な値を示す。「対象ノード」は、対応する閾値が用いられる対象となるノードを示す。また、「対象エッジ」は、対応する閾値が用いられる対象となるエッジを示す。 “Threshold name” indicates information (name) for identifying a threshold. The “value” indicates a specific value of the corresponding threshold value. “Target node” indicates a target node for which a corresponding threshold is used. The “target edge” indicates an edge that is a target for which a corresponding threshold value is used.
図7の例では、閾値名「第1閾値」の値は、「4」であることを示す。第1閾値の対象ノードは、第2選択ノードであり、対象エッジは入力エッジであることを示す。また、閾値名「第2閾値」の値は、「3」であることを示す。第2閾値の対象ノードは、第1選択ノードであり、対象エッジは出力エッジであることを示す。 In the example of FIG. 7, the value of the threshold name “first threshold” is “4”. The target node having the first threshold is the second selection node, and the target edge is an input edge. Further, the value of the threshold name “second threshold” is “3”. The target node with the second threshold is the first selection node, and the target edge is the output edge.
なお、閾値情報記憶部124は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
The threshold
(第2グラフデータ記憶部125)
実施形態に係る第2グラフデータ記憶部125は、第2グラフデータに関する各種情報を記憶する。図8は、実施形態に係る第2グラフデータ記憶部の一例を示す図である。図8の例では、第2グラフデータ記憶部125は、「ノードID」、「オブジェクトID」、および「有向エッジ情報」といった項目を有する。また、「有向エッジ情報」には、「エッジID」や「参照先」といった情報が含まれる。
(Second graph data storage unit 125)
The 2nd graph
「ノードID」は、グラフデータにおける各ノード(対象)を識別するための識別情報を示す。また、「オブジェクトID」は、オブジェクトを識別するための識別情報を示す。 “Node ID” indicates identification information for identifying each node (target) in the graph data. The “object ID” indicates identification information for identifying the object.
また、「有向エッジ情報」は、対応するノードに接続されるエッジに関する情報を示す。図8の例では、「有向エッジ情報」は、対応するノードから出力される出力エッジに関する情報を示す。また、「エッジID」は、ノード間を連結するエッジを識別するための識別情報を示す。また、「参照先」は、エッジにより連結された参照先(ノード)を示す情報を示す。すなわち、図8の例では、ノードを識別するノードIDに対して、そのノードに対応するオブジェクト(対象)を識別する情報やそのノードからの有向エッジ(出力エッジ)が連結される参照先(ノード)が対応付けられて登録されている。 “Directed edge information” indicates information related to an edge connected to a corresponding node. In the example of FIG. 8, “directed edge information” indicates information regarding output edges output from the corresponding nodes. “Edge ID” indicates identification information for identifying an edge connecting nodes. “Reference destination” indicates information indicating a reference destination (node) connected by an edge. That is, in the example of FIG. 8, with respect to a node ID for identifying a node, information for identifying an object (target) corresponding to the node and a reference destination to which a directed edge (output edge) from the node is linked ( Node) is registered in association with each other.
例えば、図8の例では、ノードID「N2」により識別されるノードは、オブジェクトID「OB2」により識別されるオブジェクト(対象)に対応することを示す。 For example, in the example of FIG. 8, the node identified by the node ID “N2” corresponds to the object (target) identified by the object ID “OB2”.
なお、ノードID中の括弧内は、各グラフデータ間のノードIDを識別可能にする場合のIDを示す。図8の例では、第2グラフデータ記憶部125の各ノードIDには、基グラフデータ記憶部122において対応するノードIDに「−2」が追加されたIDが記憶される。この場合、参照先にも対応するノードIDが記憶される。具体的には、参照先には、図8中のノードIDの末尾に「−2」が追加されたノードIDが記憶されてもよい。例えば、エッジE6−1に対応する参照先には、ノードID「N6−2」が記憶される。
The parentheses in the node ID indicate the ID when the node ID between the graph data can be identified. In the example of FIG. 8, each node ID of the second graph
図8の例では、ノードID「N1」により識別されるノードからは、出力エッジがないことを示す。また、ノードID「N2」により識別されるノード(ノードN2)からは、エッジID「E2−1」により識別されるエッジ(エッジE2−1)が、ノードID「N1」により識別されるノード(ノードN1)に連結されることを示す。すなわち、図8の例では、第1グラフデータにおけるノードN2からはエッジE2−1によりノードN1へ辿ることができることを示す。すなわち、図8の例では、第1グラフデータにおけるエッジE2−1が条件を満たしたため、第2グラフデータにも追加されたことを示す。 The example of FIG. 8 indicates that there is no output edge from the node identified by the node ID “N1”. Further, from the node (node N2) identified by the node ID “N2”, the edge (edge E2-1) identified by the edge ID “E2-1” is identified by the node ID (N1) ( Node N1) is connected. That is, the example of FIG. 8 shows that the node N2 in the first graph data can be traced to the node N1 by the edge E2-1. That is, in the example of FIG. 8, since the edge E2-1 in the first graph data satisfies the condition, it is added to the second graph data.
なお、第2グラフデータ記憶部125は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、第2グラフデータ記憶部125は、各ノード(ベクトル)間を連結するエッジの長さが記憶されてもよい。すなわち、第2グラフデータ記憶部125は、各ノード(ベクトル)間の距離を示す情報が記憶されてもよい。例えば、第2グラフデータ記憶部125は、各ノードへの入力エッジの数を示す情報が記憶されてもよい。また、第2グラフデータは、クエリを入力とし、グラフデータ中のエッジを辿ることによりノードを探索し、クエリに類似するノードを抽出し出力するプログラムモジュールを含んでもよい。すなわち、第2グラフデータは、第2グラフを用いて検索処理を行うプログラムモジュールとしての利用が想定されるものであってもよい。例えば、第2グラフデータGR12は、クエリとしてベクトルデータが入力された場合に、そのベクトルデータに類似するベクトルデータに対応するノードを第2グラフ中から抽出し、出力するプログラムであってもよい。例えば、第2グラフデータGR12は、クエリ画像に対応する類似画像を検索するプログラムモジュールとして利用されるデータであってもよい。例えば、第2グラフデータGR12は、入力されたクエリに基づいて、第2グラフにおいてそのクエリに類似するノードを抽出し、出力するよう、コンピュータを機能させる。
In addition, the 2nd graph
(制御部130)
図3の説明に戻って、制御部130は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、生成装置100内部の記憶装置に記憶されている各種プログラム(生成プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部130は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
(Control unit 130)
Returning to the description of FIG. 3, the
図3に示すように、制御部130は、取得部131と、第1選択部及び第2選択部としての選択部132と、生成部133と、生成部134と、提供部135とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、図3に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
As illustrated in FIG. 3, the
(取得部131)
取得部131は、各種情報を取得する。例えば、取得部131は、記憶部120から各種情報を取得する。例えば、取得部131は、オブジェクト情報記憶部121や、基グラフデータ記憶部122や、第1グラフデータ記憶部123や、閾値情報記憶部124や、第2グラフデータ記憶部125等から各種情報を取得する。また、取得部131は、各種情報を外部の情報処理装置から取得する。
(Acquisition part 131)
The
取得部131は、データ検索の対象となる複数のノードの情報と、当該複数のノード間を連結する有向エッジ群である第1エッジ群の情報とを含む第1グラフ(第1グラフデータGR11)と、複数のノードの情報を含む第2グラフデータGR12−1を取得する。
The
例えば、取得部131は、第1グラフデータGR11を第1グラフデータ記憶部123から取得する。また、例えば、取得部131は、第2グラフデータGR12−1を第2グラフデータ記憶部125から取得する。取得部131は、所定の基準に基づいて生成された近傍グラフ(基グラフデータGR10)であって、複数のノード間を連結する有向エッジ群である所定のエッジ群で連結された近傍グラフのうち、所定のエッジ群の各エッジの向きを反転させた第1エッジ群の情報を含む転置グラフである第1グラフを取得する。
For example, the
例えば、取得部131は、基グラフデータを取得する。図1の例では、生成装置100は、基グラフデータGR10を取得する。例えば、取得部131は、第1グラフデータを取得してもよい。例えば、生成装置100は、情報提供装置50等の外部装置から第1グラフデータGR11を取得してもよい。
For example, the
例えば、取得部131は、検索クエリに関する情報を取得する。例えば、取得部131は、画像検索に関する検索クエリを取得する。例えば、取得部131は、利用する端末装置10からクエリを受け付けた情報提供装置50からクエリを取得する。
For example, the
(選択部132)
選択部132は、各種情報を選択する。なお、図3では、第1選択部と第2選択部とを併せて選択部132とする構成を示すが、第1選択部と第2選択部とは各々異なる部(第1選択部及び第2選択部)として構成されてもよい。すなわち、選択部132の処理として説明する各処理は、個別に構成された第1選択部や第2選択部により実行されてもよい。
(Selection unit 132)
The selection unit 132 selects various information. FIG. 3 shows a configuration in which the first selection unit and the second selection unit are combined into the selection unit 132, but the first selection unit and the second selection unit are different from each other (the first selection unit and the first selection unit). 2 selection unit). That is, each process described as the process of the selection unit 132 may be executed by a first selection unit or a second selection unit configured individually.
選択部132は、更新処理においてノードを選択する。選択部132は、複数のノードのうち、第1グラフにおいて他のノードを終点とする出力エッジの数に基づいて第1選択ノードを選択する。選択部132は、1グラフにおいて第1選択ノードを始点とする出力エッジが連結される対象ノードのうち、当該出力エッジの長さに基づいて第2選択ノードを選択する。 The selection unit 132 selects a node in the update process. The selection unit 132 selects a first selection node among a plurality of nodes based on the number of output edges that end at another node in the first graph. The selection unit 132 selects the second selection node based on the length of the output edge among the target nodes to which the output edge starting from the first selection node is connected in one graph.
選択部132は、出力エッジの数に基づいて第1選択ノードを選択する。選択部132は、複数のノードのうち、第1グラフにおいて他のノードを終点とする出力エッジの数が少ないノードから順に第1選択ノードとして選択する。選択部132は、出力エッジの長さに基づいて第2選択ノードを選択する。選択部132は、対象ノードのうち、各ノードから第1選択ノードを始点とする出力エッジが短いノードから順に第2選択ノードとして選択する。 The selection unit 132 selects the first selection node based on the number of output edges. The selection unit 132 selects a plurality of nodes as the first selection node in order from the node with the smallest number of output edges having the other node as an end point in the first graph. The selection unit 132 selects the second selection node based on the length of the output edge. The selection unit 132 selects, from among the target nodes, the second selection node in order from the node with the short output edge starting from the first selection node.
図1の例では、選択部132は、第2グラフデータにおけるノードのうち、第1グラフデータにおける出力エッジが少ない方から順に第1選択ノードを選択する。選択部132は、一覧情報LT11に示すような各ノードN1〜N12の出力エッジ数に基づいて、第1選択ノードを選択する。 In the example of FIG. 1, the selection unit 132 selects the first selection node in order from the node with the fewest output edges in the first graph data among the nodes in the second graph data. The selection unit 132 selects the first selection node based on the number of output edges of each of the nodes N1 to N12 as shown in the list information LT11.
図1の例では、選択部132は、ノードN2を第1選択ノードとする更新処理においては、第1グラフデータGR11中のノードN2を始点とする出力エッジは1本であるため、その終点であるノードN1を第2選択ノードとして選択する。選択部132は、ノードN3を第1選択ノードとする更新処理においては、第1グラフデータGR11中のノードN3を始点とする出力エッジは1本であるため、その終点であるノードN1を第2選択ノードとして選択する。選択部132は、ノードN4を第1選択ノードとする更新処理においては、第1グラフデータGR11中のノードN4を始点とする出力エッジは1本であるため、その終点であるノードN1を第2選択ノードとして選択する。 In the example of FIG. 1, in the update process in which the node N2 is the first selection node, the selection unit 132 has one output edge starting from the node N2 in the first graph data GR11. A node N1 is selected as the second selection node. In the update process in which the node N3 is the first selection node, the selection unit 132 has one output edge starting from the node N3 in the first graph data GR11. Select as a selection node. In the update process in which the node N4 is the first selection node, the selection unit 132 has one output edge starting from the node N4 in the first graph data GR11. Select as a selection node.
図1の例では、選択部132は、一覧情報LT11に示すように、ノードN2〜N4の次に出力エッジ数が少ない(3本である)ノードN10を第1選択ノードとして選択する。選択部132は、ノードN10からの出力エッジが連結されるノードN1、N11、N12の3つのノードを対象ノードとして、第2選択ノードを選択する。選択部132は、第1グラフデータGR11においてノードN10を始点とするエッジE10−1、E11−1、E12−1のうち、長さが短いエッジが連結されるノードから順に、第2選択ノードとして選択する。 In the example of FIG. 1, as illustrated in the list information LT11, the selection unit 132 selects a node N10 having the next smallest number of output edges (three) as the first selection node after the nodes N2 to N4. The selection unit 132 selects the second selection node using the three nodes N1, N11, and N12 to which the output edge from the node N10 is connected as target nodes. In the first graph data GR11, the selection unit 132 selects the edges E10-1, E11-1, and E12-1 starting from the node N10 as the second selection node in order from the node to which the short edge is connected. select.
図1の例では、選択部132は、一覧情報LT11に示すように、ノードN10の次に出力エッジ数が少ない(5本である)ノードN5を第1選択ノードとして選択する。選択部132は、ノードN5からの出力エッジが連結されるノードN1、N6〜N9の5つのノードを対象ノードとして、第2選択ノードを選択する。選択部132は、第1グラフデータGR11においてノードN5を始点とするエッジE5−1〜E9−1のうち、長さが短いエッジが連結されるノードから順に、第2選択ノードとして選択する。 In the example of FIG. 1, as illustrated in the list information LT11, the selection unit 132 selects a node N5 having the next smallest number of output edges (five) as the first selection node after the node N10. The selection unit 132 selects the second selection node using the five nodes N1 and N6 to N9 to which the output edge from the node N5 is connected as target nodes. The selection unit 132 selects, as the second selection node, in order from the node to which the edge having the short length is connected among the edges E5-1 to E9-1 starting from the node N5 in the first graph data GR11.
(生成部133)
生成部133は、各種情報を生成する。例えば、生成部133は、記憶部120に記憶された情報(データ)から各種情報(データ)を生成する。例えば、生成部133は、オブジェクト情報記憶部121や、基グラフデータ記憶部122や、第1グラフデータ記憶部123や、閾値情報記憶部124から各種情報を生成する。例えば、生成部133は、基グラフデータから第1グラフデータを生成する。例えば、生成部133は、第1グラフデータから第2グラフデータを生成する。
(Generator 133)
The generation unit 133 generates various information. For example, the generation unit 133 generates various types of information (data) from information (data) stored in the
例えば、生成部133は、第1グラフデータGR11を生成する。生成部133は、所定の基準に基づいて生成された近傍グラフ(基グラフデータGR10)であって、複数のノード間を連結する有向エッジ群である所定のエッジ群で連結された近傍グラフから第1グラフデータGR11を生成する。生成部133は、基グラフデータGR10うち、各エッジの向きを反転させることにより、基グラフデータGR10の転置グラフである第1グラフデータGR11を生成する。 For example, the generation unit 133 generates the first graph data GR11. The generation unit 133 is a neighborhood graph (base graph data GR10) generated based on a predetermined criterion, and is based on a neighborhood graph connected by a predetermined edge group that is a directed edge group connecting a plurality of nodes. First graph data GR11 is generated. The generating unit 133 generates first graph data GR11 that is a transposed graph of the base graph data GR10 by inverting the direction of each edge in the base graph data GR10.
また、生成部133は、第1グラフデータGR11のエッジを削除することにより、ノードのみが含まれる第2グラフを生成する。例えば、生成部133は、第1グラフデータGR11のエッジを削除することにより、第2グラフデータGR12−1を生成する。生成部133は、近傍グラフの各エッジの向きを反転させた転置グラフである第1グラフデータを用いて第2グラフデータを生成する。 In addition, the generation unit 133 generates a second graph including only nodes by deleting the edge of the first graph data GR11. For example, the generation unit 133 generates the second graph data GR12-1 by deleting the edge of the first graph data GR11. The generation unit 133 generates second graph data using first graph data that is a transposed graph obtained by inverting the direction of each edge of the neighborhood graph.
生成部133は、第2グラフにおいて、第1選択ノードを始点とする出力エッジの数が所定の閾値(第2閾値)未満である場合、第1エッジ群において第1選択ノードを始点とし第2選択ノードを終点とする出力エッジを第2グラフに第2エッジの情報として追加する更新処理により、第2グラフを生成する。生成部133は、第2グラフにおいて、第2選択ノードを終点とする入力エッジの数が他の閾値(第1閾値)未満であり、第1選択ノードを始点とする出力エッジの数が所定の閾値未満である場合、更新処理により、第2エッジが追加された第2グラフを生成する。生成部133は、第2グラフにおいて、第2選択ノードを終点とする入力エッジの数が第1閾値未満であり、第1選択ノードを始点とする出力エッジの数が第2閾値未満である場合、第1エッジ群において第1選択ノードを始点とし第2選択ノードを終点とする出力エッジを第2グラフに第2エッジの情報として追加する更新処理により、第2グラフ(第2グラフデータGR12−4)を生成する。生成部133は、例えば第2グラフデータGR12−1〜GR12−3等において、第2選択ノードを終点とする入力エッジの数が第1閾値「4」未満であり、第1選択ノードを始点とする出力エッジの数が第2閾値記「3」未満である場合、第1グラフデータGR11において第1選択ノードを始点とし第2選択ノードを終点とする出力エッジを第2グラフデータGR12−1〜GR12−3等に追加する更新処理により、第2グラフデータGR12−4を生成する。 When the number of output edges starting from the first selection node in the second graph is less than a predetermined threshold (second threshold) in the second graph, the generation unit 133 sets the second selection starting from the first selection node in the first edge group. A second graph is generated by an update process in which an output edge having the selected node as an end point is added to the second graph as second edge information. In the second graph, the generation unit 133 has a number of input edges having the second selected node as an end point less than another threshold (first threshold), and the number of output edges having the first selected node as a starting point is a predetermined number. If it is less than the threshold value, a second graph with the second edge added is generated by the update process. In the second graph, the generation unit 133 has a number of input edges whose end point is the second selection node that is less than the first threshold value, and a number of output edges whose start point is the first selection node is less than the second threshold value. In the first edge group, the second graph (second graph data GR12− is updated by adding an output edge having the first selected node as the start point and the second selected node as the end point to the second graph as the second edge information. 4) is generated. For example, in the second graph data GR12-1 to GR12-3, the generation unit 133 has the number of input edges whose end point is the second selection node is less than the first threshold “4”, and the first selection node is the start point. When the number of output edges to be performed is less than the second threshold value “3”, output edges having the first selection node as the start point and the second selection node as the end point in the first graph data GR11 are set to the second graph data GR12-1 Second graph data GR12-4 is generated by update processing added to GR12-3 and the like.
生成部133は、第2選択ノードを終点とする入力エッジの数が第1閾値未満であり、第1選択ノードを始点とする出力エッジの数が第2閾値未満である場合、第1選択ノードから第2選択ノードへの出力エッジを第2グラフデータに追加する更新処理により、第2グラフデータGR12を生成する。生成部133は、選択された第1選択ノードと第2選択ノードとの組合せごとに更新処理を繰り返す。 When the number of input edges having the second selection node as an end point is less than the first threshold and the number of output edges having the first selection node as a start point is less than the second threshold, the generation unit 133 generates the first selection node The second graph data GR12 is generated by the update process for adding the output edge from the node to the second selection node to the second graph data. The generation unit 133 repeats the update process for each combination of the selected first selection node and second selection node.
生成部133は、第1選択部としての選択部132により選択される第1選択ノードと、第2選択部としての選択部132により選択される第2選択ノードとの組合せごとに更新処理を繰り返すことにより、第2エッジが追加された第2グラフを生成する。生成部133は、更新処理時の第2グラフに含まれる第2エッジの情報を対象として、更新処理を繰り返すことにより、第2エッジが追加された第2グラフを生成する。 The generation unit 133 repeats the update process for each combination of the first selection node selected by the selection unit 132 as the first selection unit and the second selection node selected by the selection unit 132 as the second selection unit. Thus, the second graph to which the second edge is added is generated. The generation unit 133 generates the second graph to which the second edge is added by repeating the update processing on the second edge information included in the second graph at the time of the update processing.
生成部133は、第2グラフにおける複数のノードのうち、入力エッジが連結されていないノードである入力無ノードがある場合、第1グラフにおいて当該ノードに連結される入力エッジのうち、長さが所定の基準を満たすエッジを、当該ノードの入力エッジとして第2エッジに追加する入力追加処理により、第2エッジが追加された第2グラフを生成する。生成部133は、第2グラフにおける複数のノードのうち、入力エッジが連結されていないノードである入力無ノードがある場合、入力追加処理により入力エッジが0本である、すなわち入力エッジが無いノードを無くすために、第2グラフに入力無エッジの入力エッジを追加する。生成部133は、各ノードに少なくとも1本以上の入力エッジが連結された第2グラフを生成する。生成部133は、検索時にエッジを辿って到達できないノードを無くし、エッジを辿ることにより各ノードに到達可能な第2エッジが追加された第2グラフを生成する。 When there is an input no-node that is a node to which the input edge is not connected among the plurality of nodes in the second graph, the generation unit 133 has a length of the input edges connected to the node in the first graph. A second graph to which the second edge is added is generated by an input addition process for adding an edge satisfying a predetermined criterion to the second edge as an input edge of the node. When there are no input nodes that are nodes whose input edges are not connected among a plurality of nodes in the second graph, the generation unit 133 has zero input edges due to the input addition process, that is, a node that has no input edges In order to eliminate this, an input edge having no input edge is added to the second graph. The generation unit 133 generates a second graph in which at least one input edge is connected to each node. The generation unit 133 eliminates the nodes that cannot be reached by following the edges during the search, and generates a second graph in which the second edges that can reach each node are added by following the edges.
生成部133は、第1グラフにおいて入力無ノードに対応するノードに連結される入力エッジのうち、長さが最も短いエッジを、当該ノードの入力エッジとして第2エッジに追加する入力追加処理により、第2エッジが追加された第2グラフを生成する。生成部133は、入力追加処理において、第1グラフにおいて当該ノードに連結される入力エッジのうち、長さが最も短いエッジ、すなわち類似性の高いノード間のエッジを追加することができる。これにより、生成装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
The generation unit 133 adds an edge having the shortest length among the input edges connected to the node corresponding to the no-input node in the first graph by an input addition process for adding the second edge as the input edge of the node, A second graph with the second edge added is generated. In the input addition process, the generation unit 133 can add an edge having the shortest length among input edges connected to the node in the first graph, that is, an edge between nodes having high similarity. Thereby, the generating
生成部133は、更新処理時において入力追加処理を行うことにより、第2エッジが追加された第2グラフを生成する。生成部133は、更新処理の中で各ノードに少なくとも1本以上の入力エッジが連結された第2グラフを生成する。生成部133は、更新処理の繰り返し終了後において入力追加処理を行うことにより、第2エッジが追加された第2グラフを生成する。例えば、生成部133は、各ノードを第1選択ノードとして選択した更新処理の繰り返し終了後において、入力追加処理を行うことにより、第2エッジが追加された第2グラフを生成する。例えば、生成部133は、第1選択ノードの選択候補となる全ノードが第1選択ノードとして選択された全更新処理の終了後において、入力追加処理を行うことにより、第2エッジが追加された第2グラフを生成する。生成部133は、更新処理の繰り返し終了後において、入力エッジが0本となっているノード(入力無ノード)のみを対象として入力追加処理を行う。生成部133は、全ノードを第1選択ノードとして繰り返した更新処理後において入力エッジが0本であるノードのみを対象として、入力追加処理を行う。 The generation unit 133 generates a second graph to which the second edge is added by performing an input addition process during the update process. The generation unit 133 generates a second graph in which at least one input edge is connected to each node in the update process. The generation unit 133 generates the second graph to which the second edge is added by performing the input addition process after the repetition of the update process. For example, the generation unit 133 generates the second graph to which the second edge is added by performing the input addition process after the end of the update process in which each node is selected as the first selection node. For example, the generation unit 133 adds the second edge by performing the input addition process after the completion of the all update process in which all the nodes that are selection candidates of the first selection node are selected as the first selection node. A second graph is generated. The generation unit 133 performs an input addition process only on a node (node with no input) having zero input edges after the end of the update process. The generation unit 133 performs an input addition process only for a node having zero input edges after the update process in which all nodes are repeated as the first selection node.
図1の例では、生成部133は、更新処理により、ノードを有向エッジで連結することにより、グラフデータGR12を生成する。生成部133は、図1に示すように、第1閾値及び第2閾値に基づく条件を満たすと判定されたエッジのみを第2エッジとして、第2グラフデータに追加することにより、第2グラフデータを生成する。 In the example of FIG. 1, the generation unit 133 generates graph data GR12 by connecting nodes with directed edges by an update process. As illustrated in FIG. 1, the generating unit 133 adds only the edge determined to satisfy the condition based on the first threshold value and the second threshold value as the second edge to the second graph data by adding the second edge to the second graph data. Is generated.
また、図1の例では、生成部133は、基グラフデータから第1グラフデータを生成する。生成部133は、基グラフデータ中のエッジの向きを反転させることにより、基グラフデータのエッジの向きが逆となった第1グラフデータを生成す。生成部133は、各ノード等間の距離を変えずに、エッジの向きだけを反転させた第1グラフデータを生成する。生成部133は、基グラフデータにおける一のノードの入力エッジを出力エッジとし、一のノードの出力エッジを入力エッジとすることにより、エッジの向きだけを反転させた第1グラフデータを生成する。 In the example of FIG. 1, the generation unit 133 generates first graph data from the base graph data. The generation unit 133 generates first graph data in which the direction of the edge of the base graph data is reversed by inverting the direction of the edge in the base graph data. The generation unit 133 generates first graph data in which only the direction of the edge is inverted without changing the distance between the nodes and the like. The generation unit 133 generates first graph data in which only the direction of the edge is inverted by using the input edge of one node in the base graph data as an output edge and the output edge of one node as an input edge.
図1の例では、生成部133は、基グラフデータGR10から空間情報VS1−2に示すような第1グラフデータGR11を生成する。生成部133は、基グラフデータGR1の転置グラフである第1グラフデータGR11を生成する。例えば、生成部133は、図5中の基グラフデータ記憶部122に示す各ノードの参照先を始点とし、各ノードを終点として、各エッジの始点と終点を入れ替えることにより、図6中の第1グラフデータ記憶部123に示す第1グラフデータを生成する。例えば、生成部133は、ノードN1を始点とし、ノードN2を終点とするエッジE2を反転させることにより、空間情報VS1−2に示すように、ノードN2を始点とし、ノードN1を終点とするするエッジE2−1を含む第1グラフデータGR11を生成する。例えば、生成部133は、種々の従来技術を適宜用いて、グラフデータの転置グラフを生成してもよい。なお、生成部133は、基グラフデータGR10の第1グラフデータGR11を生成できれば、どのような処理により第1グラフデータGR11を生成してもよい。
In the example of FIG. 1, the generation unit 133 generates first graph data GR11 as shown in the spatial information VS1-2 from the base graph data GR10. The generation unit 133 generates first graph data GR11 that is a transposed graph of the base graph data GR1. For example, the generation unit 133 uses the reference destination of each node shown in the base graph
図1の例では、生成部133は、第1グラフデータから第2グラフデータを生成する。まず、生成部133は、第1グラフデータからエッジ(第1エッジ)を除いた第2グラフデータを生成する。例えば、生成部133は、第1グラフデータからエッジ群(第1エッジ群)を除くことにより、ノードのみを有する第2グラフデータを生成する。生成部133は、空間情報VS1−3に示すように、第1グラフデータGR11からノードのみを有する第2グラフデータGR12−1を生成する。生成部133は、ノードのみを有する第2グラフデータGR12−1から開始して、第2グラフデータに条件を満たすエッジ(第2エッジ)を順次追加する。生成部133は、第2エッジ群を含む第2グラフデータを生成する。 In the example of FIG. 1, the generation unit 133 generates second graph data from the first graph data. First, the generation unit 133 generates second graph data obtained by removing an edge (first edge) from the first graph data. For example, the generation unit 133 generates second graph data having only nodes by removing an edge group (first edge group) from the first graph data. The generation unit 133 generates second graph data GR12-1 having only nodes from the first graph data GR11 as indicated by the spatial information VS1-3. The generation unit 133 starts from the second graph data GR12-1 having only nodes, and sequentially adds edges (second edges) that satisfy the condition to the second graph data. The generation unit 133 generates second graph data including the second edge group.
また、生成部133は、第2グラフにおいて、第2選択ノードを終点とする入力エッジの数が第1閾値未満であり、第1選択ノードを始点とする出力エッジの数が第2閾値未満である場合、第1選択ノードを始点とし第2選択ノードを終点とする出力エッジを第2グラフに追加する。生成部133は、更新処理を第1選択ノード毎に繰り返すことにより、第2グラフデータを生成する。 In addition, in the second graph, the generation unit 133 has the number of input edges having the second selection node as an end point less than the first threshold value, and the number of output edges having the first selection node as the start point is less than the second threshold value. In some cases, an output edge starting from the first selection node and ending at the second selection node is added to the second graph. The generation unit 133 generates second graph data by repeating the update process for each first selection node.
図1の例では、生成部133は、第2グラフデータGR12−1において、第2選択ノードであるノードN1を終点とする入力エッジの数が第1閾値「4」未満の0本であり、第1選択ノードであるノードN2を始点とする出力エッジの数が第2閾値「3」未満の1本であると判定する。生成部133は、エッジの本数と第1閾値及び第2閾値との比較に基づく条件を満たすかどうかを判定する。そして、生成部133は、条件を満たすと判定した場合、その判定対象のノードに対応するエッジを第2グラフデータに追加する。図1の例では、生成部133は、第1選択ノードがノードN2であり、第2選択ノードがノードN1である組合せについて、第1閾値及び第2閾値との比較に基づく条件を満たすと判定し、ノードN2を始点としノードN1を終点とするエッジE2−1を第2グラフデータGR12に追加する。 In the example of FIG. 1, the generation unit 133 has zero input edges with the node N1 that is the second selection node as the end point in the second graph data GR12-1, which is less than the first threshold “4”. It is determined that the number of output edges starting from the node N2 that is the first selection node is one less than the second threshold “3”. The generation unit 133 determines whether a condition based on a comparison between the number of edges and the first threshold value and the second threshold value is satisfied. If the generation unit 133 determines that the condition is satisfied, the generation unit 133 adds an edge corresponding to the determination target node to the second graph data. In the example of FIG. 1, the generation unit 133 determines that the condition based on the comparison between the first threshold value and the second threshold value is satisfied for the combination in which the first selection node is the node N2 and the second selection node is the node N1. Then, an edge E2-1 having the node N2 as the start point and the node N1 as the end point is added to the second graph data GR12.
図1の例では、生成部133は、空間情報VS1−4に示すように、エッジE2−1、E3−1、E4−1の3本のエッジ(第2エッジ)が追加された第2グラフデータGR12−2を生成する。また、生成部133は、空間情報VS1−5に示すように、エッジE10−1、E11−1、E12−1の3本のエッジ(第2エッジ)が追加された第2グラフデータGR12−3を生成する。 In the example of FIG. 1, the generation unit 133 is a second graph in which three edges (second edges) of edges E2-1, E3-1, and E4-1 are added, as indicated by the spatial information VS1-4. Data GR12-2 is generated. In addition, as illustrated in the spatial information VS1-5, the generation unit 133 adds the second graph data GR12-3 to which three edges (second edges) of the edges E10-1, E11-1, and E12-1 are added. Is generated.
図1の例では、生成部133は、第2選択ノードであるノードN1の入力エッジの数がエッジE2−1、E3−1、E4−1、E10−1の4本であり、第1閾値「4」未満ではないと判定する。生成部133は、第1選択ノードがノードN5であり、ノードN1を第2選択ノードである組合せが第1閾値に基づく条件を満たさないと判定する。この場合、生成部133は、ノードN5を始点としノードN1を終点とするエッジE5−1を第2グラフデータGR12に追加しない。 In the example of FIG. 1, the generation unit 133 has four input edges E2-1, E3-1, E4-1, and E10-1 of the node N1, which is the second selection node, and the first threshold value. It is determined that it is not less than “4”. The generation unit 133 determines that the combination in which the first selection node is the node N5 and the node N1 is the second selection node does not satisfy the condition based on the first threshold value. In this case, the generation unit 133 does not add the edge E5-1 having the node N5 as the start point and the node N1 as the end point to the second graph data GR12.
図1の例では、生成部133は、第2選択ノードであるノードN9を終点とする入力エッジの数が第1閾値「4」未満の0本であるため、第1閾値の条件を満たすと判定する。一方、生成部133は、第1選択ノードであるノードN5を始点とする出力エッジの数がエッジE6−1〜E8−1の3本であり、第2閾値「3」未満ではないため、第2閾値の条件を満たさないと判定する。この場合、生成部133は、ノードN5を始点としノードN9を終点とするエッジE9−1を第2グラフデータGR12に追加しない。 In the example of FIG. 1, since the number of input edges whose end point is the node N9, which is the second selection node, is 0, which is less than the first threshold “4”, the generation unit 133 satisfies the first threshold condition. judge. On the other hand, the generation unit 133 has three output edges starting from the node N5 that is the first selection node, ie, the edges E6-1 to E8-1, and is not less than the second threshold “3”. It is determined that the two threshold conditions are not satisfied. In this case, the generation unit 133 does not add the edge E9-1 having the node N5 as the start point and the node N9 as the end point to the second graph data GR12.
(検索部134)
検索部134は、各種情報を検索する。例えば、検索部134は、グラフデータを探索することにより、オブジェクトを検索する。例えば、検索部134は、取得部131により取得されたクエリが取得された場合、グラフデータを探索することにより、クエリに類似するオブジェクトを検索する。例えば、検索部134は、グラフデータを探索することにより、クエリに類似するオブジェクトを抽出する。例えば、検索部134は、図13に示すような処理手順に基づいて、グラフデータを探索することにより、クエリに類似するオブジェクトを抽出する。なお、検索部134は、検索サービスを提供しない場合、検索部134を有しなくてもよい。
(Search unit 134)
The
(提供部135)
提供部135は、各種情報を提供する。例えば、提供部135は、端末装置10や情報提供装置50に各種情報を提供する。例えば、提供部135は、クエリに対応するオブジェクトIDを検索結果として提供する。例えば、提供部135は、検索部134により検索されたオブジェクトIDを情報提供装置50へ提供する。例えば、提供部135は、検索部134が検索により抽出したオブジェクトIDを情報提供装置50へ提供する。提供部135は、検索部134により抽出されたオブジェクトIDをクエリに対応するベクトルを示す情報として情報提供装置50に提供する。
(Providing unit 135)
The providing unit 135 provides various types of information. For example, the providing unit 135 provides various types of information to the
また、提供部135は、生成部133により生成された第2グラフデータを外部の情報処理装置へ提供してもよい。例えば、提供部135は、生成部133により生成された第2グラフデータGR12を情報提供装置50に送信してもよい。
The providing unit 135 may provide the second graph data generated by the generating unit 133 to an external information processing apparatus. For example, the providing unit 135 may transmit the second graph data GR12 generated by the generating unit 133 to the
〔4.生成処理のフロー〕
次に、図9を用いて、実施形態に係る生成システム1による生成処理の手順について説明する。図9は、実施形態に係る生成処理の一例を示すフローチャートである。
[4. Generation process flow)
Next, the procedure of the generation process by the
図9に示すように、生成装置100は、基グラフデータを取得する(ステップS101)。例えば、生成装置100は、基グラフデータ記憶部122から基グラフデータを取得する。図1の例では、生成装置100は、基グラフデータGR10を取得する。
As illustrated in FIG. 9, the
そして、生成装置100は、基グラフデータから第1グラフデータを生成する(ステップS102)。例えば、生成装置100は、基グラフデータ中のエッジの向きを反転させることにより、基グラフデータのエッジの向きが逆となった第1グラフデータを生成する。図1の例では、生成装置100は、基グラフデータGR10から基グラフデータGR1の転置グラフである第1グラフデータGR11を生成する。
And the production |
そして、生成装置100は、第1グラフデータからエッジを除いた第2グラフデータを生成する(ステップS103)。例えば、生成装置100は、第1グラフデータからエッジを除くことにより、ノードのみを有する第2グラフデータを生成する。図1の例では、生成装置100は、第1グラフデータGR11からノードのみを有する第2グラフデータGR12−1を生成する。
Then, the
そして、生成装置100は、第2グラフデータにおいて第1選択ノードとして選択前のノード(第1未選択ノード)のうち、第1グラフデータにおける出力エッジの数に基づいて、第1選択ノードを選択する(ステップS104)。例えば、生成装置100は、第2グラフデータGR12−1における第1未選択ノード(ノードN5〜N11)うち、第1グラフデータGR11において最も出力エッジが少ない(3本である)ノードN10を、第1選択ノードとして選択する。
Then, the
そして、生成装置100は、第1グラフにおいて第1選択ノードを始点とする出力エッジが連結される対象ノードのうち、出力エッジの長さに基づいて、第2選択ノードを選択する(ステップS105)。例えば、生成装置100は、第1選択ノードがノードN10である場合、ノードN10からの出力エッジが連結されるノードN1、N11、N12の3つのノードを対象ノードとして、第2選択ノードを選択する。例えば、生成装置100は、第1グラフデータGR11においてノードN10を始点とするエッジE10−1、E11−1、E12−1のうち、長さが最も短いエッジ(例えば、エッジE10−1)が連結されるエッジ(例えば、ノードN1)を、第2選択ノードとして選択する。
Then, the
そして、生成装置100は、第2グラフにおいて、第2選択ノードを終点とする入力エッジの数が第1閾値未満であり、第1選択ノードを始点とする出力エッジの数が第2閾値未満である場合、第1選択ノードを始点とし第2選択ノードを終点とする出力エッジを第2グラフに追加する(ステップS106)。例えば、生成装置100は、第2グラフデータGR12−2において、第2選択ノードを終点とする入力エッジの数が第1閾値「4」未満であり、第1選択ノードを始点とする出力エッジの数が第2閾値「3」未満である場合、第1選択ノードを始点とし第2選択ノードを終点とする出力エッジを第2グラフに追加する。図1の例では、生成装置100は、第2グラフデータGR12−2において、第2選択ノードであるノードN1を終点とする入力エッジの数が第1閾値「4」未満の3本であり、第1選択ノードであるノードN10を始点とする出力エッジの数が第2閾値「3」未満の0本である。そのため、生成装置100は、第1閾値及び第2閾値に基づく条件を満たすと判定し、ノードN10を始点としノードN1を終点とするエッジE10−1を第2グラフデータGR12に追加する。
Then, in the second graph, the
そして、生成装置100は、第2選択ノードとして未選択の対象ノードが有るかどうかを判定する(ステップS107)。具体的には、生成装置100は、選択中の第1選択ノードに対する第2選択ノードとして未選択の対象ノードが有るかどうかを判定する。すなわち、各ノードは、異なる第1選択ノードに対する第2選択ノードとして複数回選択され得る。例えば、生成装置100は、一のノードを異なる第1選択ノードに対する第2選択ノードとして複数回選択する。例えば第1グラフデータGR11における入力エッジの本数が5本であるノードN1の場合、生成装置100は、ノードN1を異なる5個の第1選択ノード(ノードN2〜5、N10)に対する第2選択ノードとして5回選択する。
Then, the
生成装置100は、第2選択ノードとして未選択の対象ノードが有ると判定した場合(ステップS107:Yes)、ステップS105に戻って、ステップS105において第2選択ノードとして未選択の対象ノードから第2選択ノードを選択し、以降の処理を繰り返す。また、生成装置100は、第2選択ノードとして未選択の対象ノードが無いと判定した場合(ステップS107:No)、第1選択ノードとして未選択のノードが有るかどうかを判定する(ステップS108)。
If the
生成装置100は、第1選択ノードとして未選択の対象ノードが有ると判定した場合(ステップS108:Yes)、ステップS104に戻って、処理を繰り返す。また、生成装置100は、第1選択ノードとして未選択の対象ノードが無いと判定した場合(ステップS108:No)、処理を終了する。
If it is determined that there is an unselected target node as the first selection node (step S108: Yes), the
〔5.入力エッジが無い場合〕
次に、図10を用いて、実施形態に係る生成システム1による入力追加処理の手順について説明する。図10は、実施形態に係る入力追加処理の一例を示すフローチャートである。
[5. (When there is no input edge)
Next, the procedure of the input addition process by the
図10に示すように、生成装置100は、入力エッジの数が0であるノードを処理ノードとして選択する(ステップS201)。例えば、生成装置100は、あるノードが最初に第1選択ノードとして行われた更新処理終了後において、そのノードの入力エッジの数が0本である場合、そのノードを処理ノードとして選択する。また。例えば、生成装置100は、更新処理の繰返し終了後の第2グラフデータ中のノードのうち、入力エッジの数が0本であるノードを処理ノードとして選択する。図11の例では、生成装置100は、更新処理の繰返し終了後の第2グラフデータGR12−21中のノードのうち、入力エッジの数が0本であるノードN5を処理ノードとして選択する。例えば、生成装置100は、第2グラフ中の全ノード(ノードN1〜N12等)の各々が第1選択ノードとして選択された更新処理の繰返し終了後の第2グラフデータGR12−21中のノードのうち、入力エッジの数が0本であるノードN5を処理ノードとして選択する。
As illustrated in FIG. 10, the
そして、生成装置100は、第1グラフデータにおいて処理ノードに連結される入力エッジのうち、長さが所定の条件を満たす入力エッジを第2グラフデータに追加する(ステップS202)。例えば、生成装置100は、第1グラフデータにおいて処理ノードに連結される入力エッジのうち、長さが最も短い入力エッジを第2グラフデータに追加する。図11の例では、生成装置100は、第1グラフデータGR11中においてノードN5を終点とするエッジE51−1、E52−1のうち、最も短いエッジE51−1を追加した第2グラフデータGR12−22を生成する。また、図1の例では、更新処理中に入力追加処理を行う場合、生成装置100は、ノードN1を第1選択ノードとする更新処理更新処理後において、ノードN1の入力エッジは0本であるため、グラフデータGR11中においてノードN1を終点とするエッジE2−1〜E5−1のうち、最も短いエッジE2−1を追加する。
Then, the
〔6.入力追加処理の例〕
ここで、図11を用いて、入力追加処理を行う場合を説明する。図11は、実施形態に係る入力追加処理の一例を示す図である。具体的には、図11は、入力エッジが無い(0本である)ノードについて、入力エッジを追加する処理を示す。なお、図1と同様の点については適宜説明を省略する。例えば、図11に示すベクトル空間である空間情報VS1は、図1の空間情報VS1と同様である。また、例えば、図11に示す第1グラフデータGR11は、図1に示す第1グラフデータGR11と同様である。
[6. Example of input addition processing)
Here, the case where an input addition process is performed is demonstrated using FIG. FIG. 11 is a diagram illustrating an example of the input addition process according to the embodiment. Specifically, FIG. 11 shows a process of adding an input edge for a node having no input edge (zero lines). The description of the same points as in FIG. 1 will be omitted as appropriate. For example, the spatial information VS1 that is the vector space shown in FIG. 11 is the same as the spatial information VS1 in FIG. Further, for example, the first graph data GR11 shown in FIG. 11 is the same as the first graph data GR11 shown in FIG.
なお、図11の例では、説明を簡単にするために、空間情報VS1−22中の第2グラフデータGR12−21においては、ノードN5を除く全てのノードに少なくとも1本の入力エッジが連結されている場合を示す。 In the example of FIG. 11, in order to simplify the description, in the second graph data GR12-21 in the spatial information VS1-22, at least one input edge is connected to all the nodes except the node N5. Indicates the case.
まず、生成装置100は、入力エッジの数が0であるノードを処理ノードとして選択する(ステップS21)。図11の例では、生成装置100は、更新処理の繰返し終了後の第2グラフデータGR12−21中のノードのうち、入力エッジの数が0本であるノードN5を処理ノードとして選択する。
First, the
そして、生成装置100は、第1グラフデータにおいて処理ノードに連結される入力エッジのうち、長さが所定の条件を満たす入力エッジを第2グラフデータに追加する(ステップS22)。例えば、生成装置100は、第1グラフデータにおいて処理ノードに連結される入力エッジのうち、長さが最も短い入力エッジを第2グラフデータに追加する。図11の例では、一覧情報LT21に示すように、距離D51、D52のうち、距離D51が最も小さく、距離D52が最も大きいものとする。
Then, the
そのため、生成装置100は、一覧情報LT21に示すように、第1グラフデータGR11中においてノードN5を終点とするエッジE51−1、E52−1のうち、最も短いエッジE51−1を追加する。これにより、生成装置100は、空間情報VS1−22に示すように、エッジE51−1が追加され入力エッジが0本となるノードがない第2グラフデータGR12−22を生成する。このように、生成装置100は、他のノードから到達することができないノードを無くすことにより、第2グラフを用いた検索処理時において検索されないノード(対象)が生じることを抑制することにより、所定の対象に関する効率的な検索を可能にすることができる。
Therefore, as illustrated in the list information LT21, the
〔7.比較例〕
ここで、第1選択ノードの選択順序が異なる場合における結果との比較を示す。図12は、実施形態に係る比較例を示す図である。なお、図1と同様の点については適宜説明を省略する。例えば、図12に示すベクトル空間である空間情報VS1は、図1の空間情報VS1と同様である。また、例えば、図12に示す第2グラフデータGR12−4は、図2に示す第2グラフデータGR12−4と同様であり、第1選択ノードを出力エッジが少ない方から順に選択した場合の結果である。
[7. Comparative example)
Here, a comparison with the result when the selection order of the first selection node is different is shown. FIG. 12 is a diagram illustrating a comparative example according to the embodiment. The description of the same points as in FIG. 1 will be omitted as appropriate. For example, the spatial information VS1 that is the vector space shown in FIG. 12 is the same as the spatial information VS1 shown in FIG. Further, for example, the second graph data GR12-4 shown in FIG. 12 is the same as the second graph data GR12-4 shown in FIG. 2, and the result when the first selection nodes are selected in order from the one with the fewest output edges. It is.
一方、図12に示す第2グラフデータGR31は、第1選択ノードをノードIDが小さい方から順に選択した場合の結果である。図12に示す第2グラフデータGR31は、「ノードN*(*は任意の数値)」の「*」が小さい方から順に第1選択ノードを選択した場合に生成される第2グラフデータを示す。 On the other hand, the second graph data GR31 shown in FIG. 12 is a result when the first selection nodes are selected in order from the node having the smallest node ID. The second graph data GR31 illustrated in FIG. 12 indicates the second graph data generated when the first selection node is selected in order from the smallest “*” of “node N * (* is an arbitrary numerical value)”. .
第2グラフデータGR31に示すように、ノードIDが小さい方から順に選択した場合、ノードN10よりも先にノードN5が第1選択ノードとして選択される。そのため、第2グラフデータにエッジE5−1が追加される。これにより、第2グラフデータGR12−4において追加されたエッジE10−1やエッジE7−1が追加されないこととなる。このように、第2グラフデータGR31においては、エッジE7−1が追加されなくなるため、各ノードの入力エッジ(内向きエッジ)を多くすることが難しい場合がある。 As shown in the second graph data GR31, when the node IDs are selected in ascending order, the node N5 is selected as the first selection node before the node N10. Therefore, an edge E5-1 is added to the second graph data. As a result, the edge E10-1 and the edge E7-1 added in the second graph data GR12-4 are not added. As described above, in the second graph data GR31, since the edge E7-1 is not added, it may be difficult to increase the input edges (inward edges) of each node.
一方で、図12に示す第2グラフデータGR12−4は、ノードN7にも内向きエッジであるエッジE7−1が連結されており、できるだけ多くのノードに内向きエッジを連結させることができる。 On the other hand, in the second graph data GR12-4 shown in FIG. 12, the edge E7-1 which is an inward edge is also connected to the node N7, and the inward edge can be connected to as many nodes as possible.
〔8.検索例〕
ここで、上述したグラフデータを用いた検索の一例を示す。なお、生成したグラフデータを用いた検索は下記に限らず、種々の手順により行われてもよい。この点について、図13を一例として説明する。図13は、グラフデータを用いた検索処理の一例を示すフローチャートである。以下に説明する検索処理は、生成装置100の検索部134によって行われる。また、以下でいうオブジェクトは、ノードと読み替えてもよい。なお、以下では、生成装置100(検索部134)が検索処理を行うものとして説明するが、検索処理は他の装置により行われてもよい。この場合、生成装置100は検索部134を有しなくてもよい。
[8. Search example)
Here, an example of the search using the graph data described above is shown. 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. FIG. 13 is a flowchart illustrating an example of search processing using graph data. The search process described below is performed by the
ここでは、近傍オブジェクト集合N(G,y)は、ノードyに付与されているエッジにより関連付けられている近傍のオブジェクトの集合である。「G」は、所定のグラフデータ(例えば、第2グラフデータGR12等)であってもよい。例えば、生成装置100は、k近傍検索処理を実行する。
Here, the neighboring object set N (G, y) is a set of neighboring objects that are related by the edge given to the node y. “G” may be predetermined graph data (for example, the second graph data GR12 or the like). For example, the
例えば、生成装置100は、超球の半径rを∞(無限大)に設定し(ステップS300)、既存のオブジェクト集合から部分集合Sを抽出する(ステップS301)。例えば、生成装置100は、ルートノードとして選択されたオブジェクト(ノード)を部分集合Sとして抽出してもよい。また、例えば、超球とは、検索範囲を示す仮想的な球である。なお、ステップS301において抽出されたオブジェクト集合Sに含まれるオブジェクトは、同時に検索結果のオブジェクト集合Rの初期集合にも含められる。
For example, the generating
次に、生成装置100は、オブジェクト集合Sに含まれるオブジェクトの中で、検索クエリオブジェクトをyとするとオブジェクトyとの距離が最も短いオブジェクトを抽出し、オブジェクトsとする(ステップS302)。例えば、生成装置100は、ルートノードとして選択されたオブジェクト(ノード)のみがSの要素の場合には、結果的にルートノードがオブジェクトsとして抽出される。次に、生成装置100は、オブジェクトsをオブジェクト集合Sから除外する(ステップS303)。
Next, the
次に、生成装置100は、オブジェクトsとオブジェクトyとの距離d(s,y)がr(1+ε)を超えるか否かを判定する(ステップS304)。ここで、εは拡張要素であり、r(1+ε)は、探索範囲(この範囲内のノードのみを探索する。検索範囲よりも大きくすることで精度を高めることができる)の半径を示す値である。オブジェクトsとオブジェクトyとの距離d(s,y)がr(1+ε)を超える場合(ステップS304:Yes)、生成装置100は、オブジェクト集合Rをオブジェクトyの近傍オブジェクト集合として出力し(ステップS305)、処理を終了する。
Next, the generating
オブジェクトsと検索クエリオブジェクトyとの距離d(s,y)がr(1+ε)を超えない場合(ステップS304:No)、生成装置100は、オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトの中からオブジェクト集合Cに含まれないオブジェクトを一つ選択し、選択したオブジェクトuを、オブジェクト集合Cに格納する(ステップS306)。オブジェクト集合Cは、重複検索を回避するために便宜上設けられるものであり、処理開始時には空集合に設定される。
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
次に、生成装置100は、オブジェクトuとオブジェクトyとの距離d(u,y)がr(1+ε)以下であるか否かを判定する(ステップS307)。オブジェクトuとオブジェクトyとの距離d(u,y)がr(1+ε)以下である場合(ステップS307:Yes)、生成装置100は、オブジェクトuをオブジェクト集合Sに追加する(ステップS308)。また、オブジェクトuとオブジェクトyとの距離d(u,y)がr(1+ε)以下ではない場合(ステップS307:No)、生成装置100は、ステップS309の判定(処理)を行う。
Next, the generating
次に、生成装置100は、オブジェクトuとオブジェクトyとの距離d(u,y)がr以下であるか否かを判定する(ステップS309)。オブジェクトuとオブジェクトyとの距離d(u,y)がrを超える場合、生成装置100は、ステップS315の判定(処理)を行う。また、オブジェクトuとオブジェクトyとの距離d(u,y)がr以下ではない場合(ステップS309:No)、生成装置100は、ステップS315の判定(処理)を行う。
Next, the generating
オブジェクトuとオブジェクトyとの距離d(u,y)がr以下である場合(ステップS309:Yes)、生成装置100は、オブジェクトuをオブジェクト集合Rに追加する(ステップS310)。そして、生成装置100は、オブジェクト集合Rに含まれるオブジェクト数がksを超えるか否かを判定する(ステップS311)。所定数ksは、任意に定められる自然数である。例えば、ks=2であってもよい。オブジェクト集合Rに含まれるオブジェクト数がksを超えない場合(ステップS311:No)、生成装置100は、ステップS313の判定(処理)を行う。
When the distance d (u, y) between the object u and the object y is equal to or less than r (step S309: Yes), the
オブジェクト集合Rに含まれるオブジェクト数がksを超える場合(ステップS311:Yes)、生成装置100は、オブジェクト集合Rに含まれるオブジェクトの中でオブジェクトyとの距離が最も長い(遠い)オブジェクトを、オブジェクト集合Rから除外する(ステップS312)。
When the number of objects included in the object set R exceeds ks (step S <b> 311: Yes), the
次に、生成装置100は、オブジェクト集合Rに含まれるオブジェクト数がksと一致するか否かを判定する(ステップS313)。オブジェクト集合Rに含まれるオブジェクト数がksと一致しない場合(ステップS313:No)、生成装置100は、ステップS315の判定(処理)を行う。また、オブジェクト集合Rに含まれるオブジェクト数がksと一致する場合(ステップS313:Yes)、生成装置100は、オブジェクト集合Rに含まれるオブジェクトの中でオブジェクトyとの距離が最も長い(遠い)オブジェクトと、オブジェクトyとの距離を、新たなrに設定する(ステップS314)。
Next, the generating
そして、生成装置100は、オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えたか否かを判定する(ステップS315)。オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えていない場合(ステップS315:No)、生成装置100は、ステップS306に戻って処理を繰り返す。
Then, the
オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えた場合(ステップS315:Yes)、生成装置100は、オブジェクト集合Sが空集合であるか否かを判定する(ステップS316)。オブジェクト集合Sが空集合でない場合(ステップS316:No)、生成装置100は、ステップS302に戻って処理を繰り返す。また、オブジェクト集合Sが空集合である場合(ステップS316:Yes)、生成装置100は、オブジェクト集合Rを出力し、処理を終了する(ステップS317)。例えば、生成装置100は、オブジェクト集合Rに含まれるオブジェクト(ノード)を検索クエリ(入力オブジェクトy)に対応する検索結果として、検索を行った端末装置等へ提供してもよい。
When all the objects are selected from the objects that are elements of the neighboring object set N (G, s) of the object s and stored in the object set C (step S315: Yes), the
〔9.効果〕
上述してきたように、実施形態に係る生成装置100は、取得部131と、第1選択部(実施形態では選択部132)と、第2選択部(実施形態では選択部132)と、生成部133とを有する。取得部131は、データ検索の対象となる複数のノードの情報と、当該複数のノード間を連結する有向エッジ群である第1エッジ群の情報とを含む第1グラフ(実施形態では、「第1グラフデータGR11」。以下同じ)と、複数のノードの情報を含む第2グラフ(実施形態では、「第2グラフデータGR12−1」)を取得する。第1選択部としての選択部132は、複数のノードのうち、第1グラフにおいて他のノードを終点とする出力エッジの数に基づいて第1選択ノードを選択する。第2選択部としての選択部132は、1グラフにおいて第1選択ノードを始点とする出力エッジが連結される対象ノードのうち、当該出力エッジの長さに基づいて第2選択ノードを選択する。生成部133は、第2グラフにおいて、第1選択ノードを始点とする出力エッジの数が所定の閾値(実施形態では「第2閾値」。以下同じ)未満である場合、第1エッジ群において第1選択ノードを始点とし第2選択ノードを終点とする出力エッジを第2グラフに第2エッジの情報として追加する更新処理により、第2グラフ(実施形態では、「第2グラフデータGR12−4」)を生成する。
[9. effect〕
As described above, the
このように、実施形態に係る生成装置100は、出力エッジの数に基づいて第1選択ノードを選択し、出力エッジの長さに基づいて第2選択ノードを選択し、第1選択ノードを始点とする出力エッジの数が第2閾値(実施形態では「3」)未満である場合、第1選択ノードから第2選択ノードへの出力エッジを第2グラフデータに追加する更新処理により、第2グラフデータGR12を生成することができる。したがって、生成装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As described above, the
また、実施形態に係る生成装置100において、生成部133は、第2グラフにおいて、第2選択ノードを終点とする入力エッジの数が他の閾値(実施形態では「第1閾値」。以下同じ)未満であり、第1選択ノードを始点とする出力エッジの数が所定の閾値未満である場合、更新処理により、第2エッジが追加された第2グラフを生成する。
Further, in the
このように、実施形態に係る生成装置100は、第2選択ノードを終点とする入力エッジの数が第1閾値(実施形態では「4」)未満であり、第1選択ノードを始点とする出力エッジの数が第2閾値未満である場合、第1選択ノードから第2選択ノードへの出力エッジを第2グラフデータに追加する更新処理により、第2グラフデータGR12を生成することができる。したがって、生成装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As described above, the
また、実施形態に係る生成装置100において、取得部131は、所定の基準に基づいて生成された近傍グラフ(実施形態では、「基グラフデータGR10」)であって、複数のノード間を連結する有向エッジ群である所定のエッジ群で連結された近傍グラフのうち、所定のエッジ群の各エッジの向きを反転させた第1エッジ群の情報を含む転置グラフである第1グラフを取得する。
Further, in the
このように、実施形態に係る生成装置100は、近傍グラフの各エッジの向きを反転させた転置グラフである第1グラフデータを用いて第2グラフデータを生成することにより、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As described above, the
また、実施形態に係る生成装置100において、第1選択部としての選択部132は、複数のノードのうち、第1グラフにおいて他のノードを終点とする出力エッジの数が少ないノードから順に第1選択ノードとして選択する。
In addition, in the
このように、実施形態に係る生成装置100は、複数のノードのうち、第1グラフにおいて他のノードを終点とする出力エッジの数が少ないノードから順に第1選択ノードとして選択することにより、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As described above, the
また、実施形態に係る生成装置100において、第2選択部としての選択部132は、対象ノードのうち、各ノードから第1選択ノードを始点とする出力エッジが短いノードから順に第2選択ノードとして選択する。
Further, in the
このように、実施形態に係る生成装置100は、対象ノードのうち、各ノードから第1選択ノードを始点とする出力エッジが短いノードから順に第2選択ノードとして選択することにより、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As described above, the
また、実施形態に係る生成装置100において、生成部133は、第1選択部としての選択部132により選択される第1選択ノードと、第2選択部としての選択部132により選択される第2選択ノードとの組合せごとに更新処理を繰り返すことにより、第2エッジが追加された第2グラフを生成する。
In the
このように、実施形態に係る生成装置100は、選択された第1選択ノードと第2選択ノードとの組合せごとに更新処理を繰り返すことにより、第2グラフを生成することにより、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As described above, the
また、実施形態に係る生成装置100において、生成部133は、更新処理時の第2グラフに含まれる第2エッジの情報を対象として、更新処理を繰り返すことにより、第2エッジが追加された第2グラフを生成する。
Further, in the
このように、実施形態に係る生成装置100は、更新処理時の第2グラフに含まれる第2エッジの情報を対象として、生成処理を繰り返すことにより、第2エッジが追加された第2グラフを生成することにより、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As described above, the
また、実施形態に係る生成装置100において、生成部133は、第2グラフにおける複数のノードのうち、入力エッジが連結されていないノードである入力無ノードがある場合、第1グラフにおいて当該ノードに連結される入力エッジのうち、長さが所定の基準を満たすエッジを、当該ノードの入力エッジとして第2エッジに追加する入力追加処理により、第2エッジが追加された第2グラフを生成する。
Further, in the
このように、実施形態に係る生成装置100は、第2グラフにおける複数のノードのうち、入力無ノードがある場合、入力追加処理により入力エッジが0本である、すなわち入力エッジが無いノードを無くす。すなわち、生成装置100は、各ノードに少なくとも1本以上の入力エッジが連結された第2グラフを生成することができ、検索時にエッジを辿って到達できないノードを無くし、エッジを辿ることにより各ノードに到達可能とする。これにより、生成装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As described above, the
また、実施形態に係る生成装置100において、生成部133は、第1グラフにおいて当該ノードに連結される入力エッジのうち、長さが最も短いエッジを、当該ノードの入力エッジとして第2エッジに追加する入力追加処理により、第2エッジが追加された第2グラフを生成する。
Further, in the
このように、実施形態に係る生成装置100は、入力追加処理において、第1グラフにおいて当該ノードに連結される入力エッジのうち、長さが最も短いエッジを、当該ノードの入力エッジとして第2エッジに追加することにより、類似性の高いノード間のエッジを追加することができる。これにより、生成装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As described above, in the input addition process, the
また、実施形態に係る生成装置100において、生成部133は、更新処理時において入力追加処理を行うことにより、第2エッジが追加された第2グラフを生成する。
In the
このように、実施形態に係る生成装置100は、更新処理時において入力追加処理を行うことにより、各ノードが更新処理の対象となった際に入力エッジが0本となるノードが残る可能性を無くすことにより、第2エッジが追加された第2グラフを生成する。すなわち、生成装置100は、更新処理の中で各ノードに少なくとも1本以上の入力エッジが連結された第2グラフを生成することができ、検索時にエッジを辿って到達できないノードを無くし、エッジを辿ることにより各ノードに到達可能とする。これにより、生成装置100は、第2グラフ生成の処理時間の増大を抑制しつつ、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As described above, the
また、実施形態に係る生成装置100において、生成部133は、更新処理の繰り返し終了後において入力追加処理を行うことにより、第2グラフを生成する。
In the
このように、実施形態に係る生成装置100は、更新処理の繰り返し終了後において入力追加処理を行うことにより、各ノードを対象とした更新処理が行われた後に、入力エッジが0本となっているノードのみを対象として入力追加処理を行う。したがって、生成装置100は、入力追加処理を行う対象を更新処理後において入力エッジが0本であるノードのみを対象とすることができるため、入力追加処理により追加されるエッジの本数を少なくすることができる。すなわち、生成装置100は、入力追加処理により追加されるエッジの本数を少なくしつつ、各ノードに少なくとも1本以上の入力エッジが連結された第2グラフを生成することができ、検索時にエッジを辿って到達できないノードを無くし、エッジを辿ることにより各ノードに到達可能とする。これにより、生成装置100は、エッジの本数の増大を抑制しつつ、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As described above, the
〔10.ハードウェア構成〕
上述してきた実施形態に係る生成装置100は、例えば図14に示すような構成のコンピュータ1000によって実現される。図14は、生成装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM(Read Only Memory)1300、HDD(Hard Disk Drive)1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を有する。
[10. Hardware configuration)
The
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
The CPU 1100 operates based on a program stored in the
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス1500は、ネットワークNを介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータをネットワークNを介して他の機器へ送信する。
The
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを入出力インターフェイス1600を介して出力装置へ出力する。
The CPU 1100 controls an output device such as a display and a printer and an input device such as a keyboard and a mouse via the input /
メディアインターフェイス1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
The
例えば、コンピュータ1000が実施形態に係る生成装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部130の機能を実現する。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置からネットワークNを介してこれらのプログラムを取得してもよい。
For example, when the
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の行に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。 As described above, some of the embodiments of the present application have been described in detail with reference to the drawings. However, these are merely examples, and various modifications based on the knowledge of those skilled in the art, including the aspects described in the disclosure line of the invention. It is possible to implement the present invention in other forms with improvements.
〔11.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
[11. Others]
In addition, among the processes described in the above embodiment, all or part of the processes described as being automatically performed can be performed manually, or the processes described as being performed manually can be performed. All or a part can be automatically performed by a known method. In addition, the processing procedures, specific names, and information including various data and parameters shown in the document and drawings can be arbitrarily changed unless otherwise specified. For example, the various types of information illustrated in each drawing is not limited to the illustrated information.
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。 Further, each component of each illustrated apparatus is functionally conceptual, and does not necessarily need to be physically configured as illustrated. In other words, the specific form of distribution / integration of each device is not limited to that shown in the figure, and all or a part thereof may be functionally or physically distributed or arbitrarily distributed in arbitrary units according to various loads or usage conditions. Can be integrated and configured.
また、上述してきた各実施形態に記載された各処理は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。 In addition, the processes described in the embodiments described above can be appropriately combined within a range in which the process contents are not contradictory.
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。 In addition, the “section (module, unit)” described above can be read as “means” or “circuit”. For example, the acquisition unit can be read as acquisition means or an acquisition circuit.
1 生成システム
100 生成装置
121 オブジェクト情報記憶部
122 基グラフデータ記憶部
123 第1グラフデータ記憶部
124 閾値情報記憶部
125 第2グラフデータ記憶部
130 制御部
131 取得部
132 選択部(第1選択部、第2選択部)
133 生成部
134 検索部
135 提供部
10 端末装置
50 情報提供装置
N ネットワーク
DESCRIPTION OF
133
Claims (13)
前記複数のノードのうち、前記第1グラフにおいて他のノードを終点とする出力エッジの数に基づいて第1選択ノードを選択する第1選択部と、
前記第1グラフにおいて前記第1選択ノードを始点とする出力エッジが連結される対象ノードのうち、当該出力エッジの長さに基づいて第2選択ノードを選択する第2選択部と、
前記第2グラフにおいて、前記第1選択ノードを始点とする出力エッジの数が所定の閾値未満である場合、前記第1エッジ群において前記第1選択ノードを始点とし前記第2選択ノードを終点とする出力エッジを前記第2グラフに第2エッジの情報として追加する更新処理により、前記第2エッジが追加された第2グラフを生成する生成部と、
を備えることを特徴とする生成装置。 A first graph including information on a plurality of nodes to be searched for data and information on a first edge group which is a directed edge group connecting the plurality of nodes; and a first graph including information on the plurality of nodes. An acquisition unit for acquiring two graphs;
A first selection unit that selects a first selection node among the plurality of nodes based on the number of output edges whose end points are other nodes in the first graph;
A second selection unit that selects a second selection node based on a length of the output edge among target nodes to which an output edge starting from the first selection node is connected in the first graph;
In the second graph, when the number of output edges starting from the first selection node is less than a predetermined threshold, the first selection node is set as the start point and the second selection node is set as the end point in the first edge group. Generating a second graph to which the second edge is added by an update process for adding the output edge to the second graph as second edge information;
A generating apparatus comprising:
前記第2グラフにおいて、前記第2選択ノードを終点とする入力エッジの数が他の閾値未満であり、前記第1選択ノードを始点とする出力エッジの数が前記所定の閾値未満である場合、前記更新処理により、前記第2エッジが追加された第2グラフを生成する
ことを特徴とする請求項1に記載の生成装置。 The generator is
In the second graph, when the number of input edges having the second selection node as an end point is less than another threshold value, and the number of output edges having the first selection node as a start point is less than the predetermined threshold value, The generation apparatus according to claim 1, wherein the update process generates a second graph to which the second edge is added.
所定の基準に基づいて生成された近傍グラフであって、前記複数のノード間を連結する有向エッジ群である所定のエッジ群で連結された近傍グラフのうち、前記所定のエッジ群の各エッジの向きを反転させた前記第1エッジ群の情報を含む転置グラフである前記第1グラフを取得する
ことを特徴とする請求項1または請求項2に記載の生成装置。 The acquisition unit
Each of the edges of the predetermined edge group among the vicinity graphs generated based on a predetermined criterion and connected by a predetermined edge group that is a directed edge group connecting the plurality of nodes. The generation apparatus according to claim 1, wherein the first graph, which is a transposed graph including information on the first edge group in which the orientation of the first edge group is inverted, is acquired.
前記複数のノードのうち、前記第1グラフにおいて他のノードを終点とする出力エッジの数が少ないノードから順に第1選択ノードとして選択する
ことを特徴とする請求項1〜3のいずれか1項に記載の生成装置。 The first selection unit includes:
The node is selected as a first selection node in order from a node having a small number of output edges whose end points are other nodes in the first graph among the plurality of nodes. The generating device described in 1.
前記対象ノードのうち、各ノードから前記第1選択ノードを始点とする出力エッジが短いノードから順に第2選択ノードとして選択する
ことを特徴とする請求項1〜4のいずれか1項に記載の生成装置。 The second selection unit includes:
5. The selection node according to claim 1, wherein, from among the target nodes, nodes are selected as a second selection node in order from a node with a short output edge starting from the first selection node. 6. Generator.
前記第1選択部により選択される前記第1選択ノードと、前記第2選択部により選択される前記第2選択ノードとの組合せごとに前記更新処理を繰り返すことにより、前記第2エッジが追加された第2グラフを生成する
ことを特徴とする請求項1〜5のいずれか1項に記載の生成装置。 The generator is
The second edge is added by repeating the updating process for each combination of the first selection node selected by the first selection unit and the second selection node selected by the second selection unit. The 2nd graph is produced | generated. The production | generation apparatus of any one of Claims 1-5 characterized by the above-mentioned.
前記更新処理時の前記第2グラフに含まれる前記第2エッジの情報を対象として、前記更新処理を繰り返すことにより、前記第2エッジが追加された第2グラフを生成する
ことを特徴とする請求項6に記載の生成装置。 The generator is
The second graph to which the second edge is added is generated by repeating the update process for the information on the second edge included in the second graph at the time of the update process. Item 7. The generating device according to Item 6.
前記第2グラフにおける前記複数のノードのうち、入力エッジが連結されていないノードである入力無ノードがある場合、前記第1グラフにおいて当該ノードに連結される入力エッジのうち、長さが所定の基準を満たすエッジを、当該ノードの入力エッジとして前記第2エッジに追加する入力追加処理により、前記第2エッジが追加された第2グラフを生成する
ことを特徴とする請求項1〜7のいずれか1項に記載の生成装置。 The generator is
When there is an input non-node that is a node to which an input edge is not connected among the plurality of nodes in the second graph, a length of the input edge connected to the node in the first graph is a predetermined length. 8. The second graph to which the second edge is added is generated by an input addition process for adding an edge satisfying a criterion to the second edge as an input edge of the node. The generating device according to claim 1.
前記第1グラフにおいて前記入力無ノードに対応するノードに連結される入力エッジのうち、長さが最も短いエッジを、当該ノードの入力エッジとして前記第2エッジに追加する入力追加処理により、前記第2エッジが追加された第2グラフを生成する
ことを特徴とする請求項8に記載の生成装置。 The generator is
Of the input edges connected to the node corresponding to the no-input node in the first graph, the input adding process of adding the shortest edge as the input edge of the node to the second edge The generation apparatus according to claim 8, wherein the second graph to which two edges are added is generated.
前記更新処理時において前記入力追加処理を行うことにより、前記第2エッジが追加された第2グラフを生成する
ことを特徴とする請求項8または請求項9に記載の生成装置。 The generator is
10. The generation apparatus according to claim 8, wherein the second graph to which the second edge is added is generated by performing the input addition process at the time of the update process.
前記更新処理の繰り返し終了後において前記入力追加処理を行うことにより、前記第2エッジが追加された第2グラフを生成する
ことを特徴とする請求項8または請求項9に記載の生成装置。 The generator is
The generation apparatus according to claim 8 or 9, wherein the second graph to which the second edge is added is generated by performing the input addition processing after the end of the update processing.
データ検索の対象となる複数のノードの情報と、当該複数のノード間を連結する有向エッジ群である第1エッジ群の情報とを含む第1グラフと、前記複数のノードの情報を含む第2グラフを取得する取得工程と、
前記複数のノードのうち、前記第1グラフにおいて他のノードを終点とする出力エッジの数に基づいて第1選択ノードを選択する第1選択工程と、
前記第1グラフにおいて前記第1選択ノードを始点とする出力エッジが連結される対象ノードのうち、当該出力エッジの長さに基づいて第2選択ノードを選択する第2選択工程と、
前記第2グラフにおいて、前記第1選択ノードを始点とする出力エッジの数が所定の閾値未満である場合、前記第1エッジ群において前記第1選択ノードを始点とし前記第2選択ノードを終点とする出力エッジを前記第2グラフに第2エッジの情報として追加する更新処理により、前記第2グラフを生成する生成工程と、
を含むことを特徴とする生成方法。 A generation method executed by a computer,
A first graph including information on a plurality of nodes to be searched for data and information on a first edge group which is a directed edge group connecting the plurality of nodes; and a first graph including information on the plurality of nodes. An acquisition process for acquiring two graphs;
A first selection step of selecting a first selection node among the plurality of nodes based on the number of output edges whose end points are other nodes in the first graph;
A second selection step of selecting a second selection node based on the length of the output edge among the target nodes to which the output edge starting from the first selection node is connected in the first graph;
In the second graph, when the number of output edges starting from the first selection node is less than a predetermined threshold, the first selection node is set as the start point and the second selection node is set as the end point in the first edge group. Generating the second graph by an update process for adding the output edge to the second graph as the second edge information;
A generation method comprising:
前記複数のノードのうち、前記第1グラフにおいて他のノードを終点とする出力エッジの数に基づいて第1選択ノードを選択する第1選択手順と、
前記第1グラフにおいて前記第1選択ノードを始点とする出力エッジが連結される対象ノードのうち、当該出力エッジの長さに基づいて第2選択ノードを選択する第2選択手順と、
前記第2グラフにおいて、前記第1選択ノードを始点とする出力エッジの数が所定の閾値未満である場合、前記第1エッジ群において前記第1選択ノードを始点とし前記第2選択ノードを終点とする出力エッジを前記第2グラフに第2エッジの情報として追加する更新処理により、前記第2グラフを生成する生成手順と、
をコンピュータに実行させることを特徴とする生成プログラム。 A first graph including information on a plurality of nodes to be searched for data and information on a first edge group which is a directed edge group connecting the plurality of nodes; and a first graph including information on the plurality of nodes. An acquisition procedure for acquiring two graphs;
A first selection procedure for selecting a first selection node based on the number of output edges whose end points are other nodes in the first graph among the plurality of nodes;
A second selection procedure for selecting a second selection node based on the length of the output edge among the target nodes to which the output edge starting from the first selection node is connected in the first graph;
In the second graph, when the number of output edges starting from the first selection node is less than a predetermined threshold, the first selection node is set as the start point and the second selection node is set as the end point in the first edge group. A generation procedure for generating the second graph by an update process for adding the output edge to the second graph as second edge information;
A program for causing a computer to execute.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018027427A JP6959164B2 (en) | 2018-02-19 | 2018-02-19 | Generation device, generation method, and generation program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018027427A JP6959164B2 (en) | 2018-02-19 | 2018-02-19 | Generation device, generation method, and generation program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019144780A true JP2019144780A (en) | 2019-08-29 |
JP6959164B2 JP6959164B2 (en) | 2021-11-02 |
Family
ID=67772520
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018027427A Active JP6959164B2 (en) | 2018-02-19 | 2018-02-19 | Generation device, generation method, and generation program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6959164B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11894944B2 (en) | 2019-12-31 | 2024-02-06 | Johnson Controls Tyco IP Holdings LLP | Building data platform with an enrichment loop |
US12021650B2 (en) | 2019-12-31 | 2024-06-25 | Tyco Fire & Security Gmbh | Building data platform with event subscriptions |
WO2021138245A1 (en) | 2019-12-31 | 2021-07-08 | Johnson Controls Technology Company | Building data platform |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015075960A (en) * | 2013-10-09 | 2015-04-20 | 新日鉄住金ソリューションズ株式会社 | Graph generating device, graph generating method, and graph generating program |
JP2015170062A (en) * | 2014-03-06 | 2015-09-28 | 日本電信電話株式会社 | Document set analyzer, document set analysis method, and document set analysis program |
JP2017021493A (en) * | 2015-07-08 | 2017-01-26 | ヤフー株式会社 | Modified k-nearest neighbor graph generation device and method for operating modified k-nearest neighbor graph generation device |
JP2017117049A (en) * | 2015-12-22 | 2017-06-29 | 株式会社神戸製鋼所 | Method and device for physical distribution management |
-
2018
- 2018-02-19 JP JP2018027427A patent/JP6959164B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015075960A (en) * | 2013-10-09 | 2015-04-20 | 新日鉄住金ソリューションズ株式会社 | Graph generating device, graph generating method, and graph generating program |
JP2015170062A (en) * | 2014-03-06 | 2015-09-28 | 日本電信電話株式会社 | Document set analyzer, document set analysis method, and document set analysis program |
JP2017021493A (en) * | 2015-07-08 | 2017-01-26 | ヤフー株式会社 | Modified k-nearest neighbor graph generation device and method for operating modified k-nearest neighbor graph generation device |
JP2017117049A (en) * | 2015-12-22 | 2017-06-29 | 株式会社神戸製鋼所 | Method and device for physical distribution management |
Also Published As
Publication number | Publication date |
---|---|
JP6959164B2 (en) | 2021-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111460311A (en) | Search processing method, device and equipment based on dictionary tree and storage medium | |
JP6959164B2 (en) | Generation device, generation method, and generation program | |
JP7080803B2 (en) | Information processing equipment, information processing methods, and information processing programs | |
JP6311000B1 (en) | Generating device, generating method, and generating program | |
JP6705764B2 (en) | Generation device, generation method, and generation program | |
JP7353737B2 (en) | Information processing device, information processing method, and information processing program | |
JP6976178B2 (en) | Extractor, extraction method, and extraction program | |
JP6293335B1 (en) | Generating device, generating method, and generating program | |
JP7273609B2 (en) | Information processing device, information processing method, and information processing program | |
JP7121706B2 (en) | Information processing device, information processing method, and information processing program | |
JP2018206084A (en) | Database management system and database management method | |
JP6498266B2 (en) | Generating device, generating method, and generating program | |
JP7330756B2 (en) | Information processing device, information processing method, and information processing program | |
JP5383776B2 (en) | Graph index update device | |
JP6974248B2 (en) | Information processing equipment, information processing methods, and information processing programs | |
JP2022153632A (en) | Information processing device, information processing method, and information processing program | |
JP7388661B2 (en) | Information processing device, information processing method, and information processing program | |
JP7122293B2 (en) | Information processing device, information processing method, and information processing program | |
JP7041530B2 (en) | Display program, display method, and display device | |
JP7130019B2 (en) | Information processing device, information processing method, and information processing program | |
JP7239433B2 (en) | Information processing device, information processing method, and information processing program | |
JP7208955B2 (en) | Information processing device, information processing method, information processing program, information retrieval device, information retrieval method, and information retrieval program | |
JP2024071095A (en) | Information processing apparatus, information processing method, and information processing program | |
JP2019159965A (en) | Information processor, information processing method and program | |
JP2019159806A (en) | Information processor, information processing method and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20191101 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20191108 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200309 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210226 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210309 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210428 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20210921 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20211007 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6959164 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |