JP6705764B2 - Generation device, generation method, and generation program - Google Patents
Generation device, generation method, and generation program Download PDFInfo
- Publication number
- JP6705764B2 JP6705764B2 JP2017053440A JP2017053440A JP6705764B2 JP 6705764 B2 JP6705764 B2 JP 6705764B2 JP 2017053440 A JP2017053440 A JP 2017053440A JP 2017053440 A JP2017053440 A JP 2017053440A JP 6705764 B2 JP6705764 B2 JP 6705764B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- nodes
- generation device
- graph information
- target
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 114
- 238000012545 processing Methods 0.000 claims description 46
- 238000010187 selection method Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 20
- 230000010365 information processing Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 239000000284 extract Substances 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000000470 constituent Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、生成装置、生成方法、及び生成プログラムに関する。 The present invention relates to a generation device, a generation method, and a generation program.
従来、種々の情報を検索する技術が提供されている。例えば、無向エッジによって生成されたグラフ情報を用いて検索を行う技術が開示されている技術が提供されている。また、このような技術は、例えば画像検索等に用いられる。 Conventionally, techniques for searching various information have been provided. For example, a technology has been provided that discloses a technology for performing a search using graph information generated by an undirected edge. Further, such a technique is used, for example, for image search.
しかしながら、上記の従来技術では、所定の対象に関する効率的な検索を可能にするグラフ情報を生成することが難しい場合がある。例えば、各対象に対応する各ノードが無向エッジにより連結されたグラフ情報を用いて検索を行う場合、重複した経路の探索が生じる等により、処理時間等のコストを抑制することが難しい。 However, in the above-mentioned conventional technique, it may be difficult to generate graph information that enables an efficient search for a predetermined target. For example, when each node corresponding to each target is searched using the graph information connected by the undirected edge, it is difficult to suppress the cost such as the processing time due to the search of the overlapping 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 generate graph information that enables an efficient search for a predetermined target.
本願に係る生成装置は、データ検索における検索対象の各々に対応する複数のノードを含むノード群を取得する取得部と、前記取得部により取得されたノード群のうち、所定のノードを検索時に最初の起点として用いるルートノードとして選択する選択部と、前記ノード群のうち、前記ルートノード、及び前記ルートノードから有向エッジを辿ることにより到達可能なノードを含む処理済ノード群以外のノードを対象ノードとして選択し、前記処理済ノード群のうち、所定数のノードからの有向エッジを前記対象ノードに連結する連結処理により、グラフ情報を生成する生成部と、を備えたことを特徴とする。 The generation device according to the present application, an acquisition unit that acquires a node group including a plurality of nodes corresponding to each of the search target in the data search, and a predetermined node among the node group acquired by the acquisition unit first at the time of searching A selection unit to be selected as a root node to be used as a starting point, and a node other than a processed node group including a node reachable by tracing a directed edge from the root node among the node group A generation unit that generates graph information by a connection process that selects a node and connects directed edges from a predetermined number of nodes of the processed node group to the target node. ..
実施形態の一態様によれば、所定の対象に関する効率的な検索を可能にするグラフ情報を生成することができるという効果を奏する。 According to the aspect of the embodiment, it is possible to generate graph information that enables efficient search for a predetermined target.
以下に、本願に係る生成装置、生成方法、及び生成プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る生成装置、生成方法、及び生成プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。 Hereinafter, modes (hereinafter, referred to as “embodiments”) for carrying out the generation device, the generation method, and the generation program 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. Also, in each of the following embodiments, the same parts are designated by the same reference numerals, and duplicate description will be omitted.
〔1.生成処理の概念〕
まず、図1を用いて、生成装置100が実行する生成処理の概念について説明する。図1は、実施形態に係る生成装置が発揮する作用効果の一例を説明するための図である。例えば、生成装置100は、サーバ装置やクラウドシステム等、単数または複数の生成装置により実現され、移動通信網や無線LAN(Local Area Network)等のネットワークN(図2参照)を介して、検索を行うユーザ等が使用する端末装置(図示省略)と通信可能な情報処理装置である。
[1. Generation process concept]
First, the concept of the generation process executed by the generation device 100 will be described with reference to FIG. FIG. 1 is a diagram for explaining an example of a function and effect exhibited by the generation device according to the embodiment. For example, the generation device 100 is realized by one or a plurality of generation devices such as a server device and a cloud system, and a search is performed via a network N (see FIG. 2) such as a mobile communication network or a wireless LAN (Local Area Network). It is an information processing device capable of communicating with a terminal device (not shown) used by a user or the like.
例えば、生成装置100は、端末装置からクエリ情報(以下、単に「クエリ」ともいう)を受信すると、クエリに類似する対象(ベクトル情報等)を検索し、検索結果を端末装置に提供する。また、例えば、生成装置100が端末装置に提供するデータは、画像情報等のデータ自体であってもよいし、URL(Uniform Resource Locator)等の対応するデータを参照するための情報であってもよい。また、クエリや検索対象のデータは、画像、音声、テキストデータなど、如何なる種類のデータであってもよい。以下では、生成装置100が画像を検索するものとして説明する。 For example, when the generation device 100 receives query information (hereinafter, also simply referred to as “query”) from the terminal device, the generation device 100 searches for a target (vector information or the like) similar to the query and provides the search result to the terminal device. Further, for example, the data provided by the generation device 100 to the terminal device may be data itself such as image information, or may be information for referring to corresponding data such as a URL (Uniform Resource Locator). Good. Further, the query or search target data may be any type of data such as image, voice, text data. In the following description, it is assumed that the generation device 100 searches for an image.
また、生成装置100は、図1に示すように、グラフ情報を生成する。ここでいう、有向エッジとは、一方向にしかデータを辿れないエッジを意味する。以下では、エッジにより辿る元、すなわち始点となるノードを参照元とし、エッジにより辿る先、すなわち終点となるノードを参照先とする。例えば、所定のノード「A」から所定のノード「B」に連結される有向エッジとは、参照元をノード「A」とし、参照先をノード「B」とするエッジであることを示す。ここでいう、各ノードは、各オブジェクトに対応する。例えば、画像から抽出された複数の局所特徴量のそれぞれがオブジェクトであってもよい。また、例えば、オブジェクト間の距離が定義された種々のデータがオブジェクトであってもよい。 The generation device 100 also generates graph information, as shown in FIG. Here, the directed edge means an edge that can trace data in only one direction. In the following, a source that is traced by an edge, that is, a node that is a start point is a reference source, and a destination that is traced by an edge, that is, a node that is an end point is a reference destination. For example, the directed edge connected from the predetermined node “A” to the predetermined node “B” indicates that the reference source is the node “A” and the reference destination is the node “B”. Here, each node 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 the distance between objects is defined may be an object.
生成装置100は、数百万〜数億単位の画像情報に対応するノードを対象に処理を行うが、図面においてはその一部のみを図示する。図1の例では、説明を簡単にするために、9個のノードを図示して処理の概要を説明する。例えば、生成装置100は、図1中のノードN1〜N9に示すような複数のノードを含むノード群を取得し、各ノードを有向エッジで連結したグラフ情報GR11を生成する。 The generation device 100 performs processing for nodes corresponding to millions to hundreds of millions of units of image information, but only a part of them is shown in the drawing. In the example of FIG. 1, for simplification of description, nine nodes are shown and the outline of the process is described. For example, the generation device 100 acquires a node group including a plurality of nodes such as the nodes N1 to N9 in FIG. 1 and generates graph information GR11 in which each node is connected by a directed edge.
また、このように「ノードN*(*は任意の数値)」と記載した場合、そのノードはノードID「N*」により識別されるノードであることを示す。例えば、「ノードN1」と記載した場合、そのノードはノードID「N1」により識別されるノードである。 In addition, in this way, when described as “node N* (* is an arbitrary numerical value)”, it indicates that the node is a node identified by the node ID “N*”. For example, when described as “node N1”, the node is a node identified by the node ID “N1”.
なお、図1中の空間情報VS1−1〜VS1−6は、ユークリッド空間であってもよい。また、図1に示す空間情報VS1−1〜VS1−6は、各ベクトル間の距離等の説明のための概念的な図である。多次元空間となる。なお、例えば、図1に示す空間情報VS1−1〜VS1−6は、平面上に図示するため2次元の態様にて図示されるが、例えば100次元や1000次元等の多次元空間であるものとする。 The spatial information VS1-1 to VS1-6 in FIG. 1 may be Euclidean space. In addition, the spatial information VS1-1 to VS1-6 illustrated in FIG. 1 are conceptual diagrams for explaining the distance between each vector and the like. It becomes a multidimensional space. Note that, for example, the spatial information VS1-1 to VS1-6 shown in FIG. 1 is illustrated in a two-dimensional mode for illustration on a plane, but is, for example, a multidimensional space such as 100 dimensions or 1000 dimensions. And
また、図1に示す空間情報VS1−1〜VS1−6は、グラフ情報の生成過程を模式的に示す図であり、空間情報VS1−1〜VS1−6に示す空間は、同一の空間である。また、以下では、空間情報VS1−1〜VS1−6について、特に区別なく説明する場合には、空間情報VS1と記載する。 In addition, the spatial information VS1-1 to VS1-6 illustrated in FIG. 1 are diagrams schematically illustrating the process of generating the graph information, and the spaces illustrated in the spatial information VS1-1 to VS1-6 are the same space. .. Further, in the following, the spatial information VS1-1 to VS1-6 will be referred to as spatial information VS1 in the case where they are described without distinction.
また、図1に示す例においては、空間情報VS1−1及び空間情報VS1−6以外の空間情報VS1においては、「ノードN*(*は任意の数値)」の図示を省略し、取得した各ノードを「○」内に「ノードN*(*は任意の数値)」の「*」の値を付すことにより表現する。例えば、空間情報VS1−2中の左上の「○」であって、内部に「2」が付された「○」は、ノードID「N2」により識別されるノードに対応する。例えば、図1に示す例において、各ノードに対応するベクトルデータは、N次元の実数値ベクトルであってもよい。 In addition, in the example illustrated in FIG. 1, in the spatial information VS1 other than the spatial information VS1-1 and the spatial information VS1-6, the illustration of the “node N* (* is an arbitrary numerical value)” is omitted and each acquired A node is expressed by adding a value of "*" of "node N* (* is an arbitrary numerical value)" in "○". For example, “◯” in the upper left of the space information VS1-2, which is internally marked with “2”, 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-valued vector.
本実施形態においては、空間情報VS1における各ノードの距離を対応する各オブジェクト間の類似度とする。ここで、図1に示す例においては、空間情報VS1における各ノード間の距離が小さいオブジェクト同士の類似度が高く、空間情報VS1における各ノード間の距離が大きいオブジェクト同士の類似度が低い。例えば、図1中の空間情報VS1において、ノードID「N6」により識別されるノードと、ノードID「N7」により識別されるノードとは近接している、すなわち距離が小さい。そのため、ノードID「N6」により識別されるノードに対応するオブジェクトと、ノードID「N7」により識別されるノードに対応するオブジェクトとは類似度が高いことを示す。 In the present embodiment, the distance of each node in the spatial information VS1 is the similarity between corresponding objects. Here, in the example shown in FIG. 1, the degree of similarity between objects having a small distance between nodes in the spatial information VS1 is high, and the degree of similarity between objects having a large distance between nodes in the spatial information VS1 is low. For example, in the space information VS1 in FIG. 1, the node identified by the node ID “N6” and the node identified by the node ID “N7” are close to each other, that is, the distance is small. Therefore, the object corresponding to the node identified by the node ID “N6” and the object corresponding to the node identified by the node ID “N7” have a high degree of similarity.
また、例えば、図1中の空間情報VS1において、ノードID「N6」により識別されるノードと、ノードID「N2」により識別されるノードとは遠隔にある、すなわち距離が大きい。そのため、ノードID「N6」により識別されるノードに対応するオブジェクトと、ノードID「N2」により識別されるノードに対応するオブジェクトとは類似度が低いことを示す。 Further, for example, in the spatial information VS1 in FIG. 1, the node identified by the node ID “N6” and the node identified by the node ID “N2” are remote, that is, the distance is large. Therefore, the object corresponding to the node identified by the node ID “N6” and the object corresponding to the node identified by the node ID “N2” have a low degree of similarity.
また、図1の例では、生成装置100は、後述する生成処理により、ノードを有向エッジで連結することにより、グラフ情報GR11を生成する。例えば、グラフ情報GR11を用いた検索においては、検索時はグラフ構造型インデックスと同様の処理を行うが、開始位置(起点)は本インデックス(グラフ情報GR11)のルートからスタートする。例えば、生成装置100が生成したグラフ情報GR11を用いて検索を行う場合、ルートノードであるノードN1を起点として検索を行う。例えば、検索時においては、ルートノードであるノードN1から有向エッジを辿ることにより、ノードN2〜N9等を順次検索してもよい。 Further, in the example of FIG. 1, the generation device 100 generates the graph information GR11 by connecting the nodes with the directed edges by the generation process described later. For example, in the search using the graph information GR11, the same process as the graph structure type index is performed at the time of search, but the start position (starting point) starts from the root of this index (graph information GR11). For example, when performing a search using the graph information GR11 generated by the generation device 100, the search is performed starting from the node N1 that is the root node. For example, at the time of search, the nodes N2 to N9 and the like may be sequentially searched by tracing a directed edge from the node N1 that is the root node.
〔2.実施形態に係る生成装置が実行する生成処理について〕
例えば、生成装置100は、ノード群のうち、所定のノードを検索時に最初の起点として用いるルートノードとして選択し、ノード群のうち、ルートノード、及びルートノードから有向エッジを辿ることにより到達可能なノードを含む処理済ノード群以外のノードを対象ノードとして選択し、処理済ノード群のうち、所定数のノードからの有向エッジを対象ノードに連結する連結処理により、グラフ情報を生成する情報処理装置である。例えば、生成装置100は、上述した連結処理を、ノード群において他のノードに連結されていない未処理ノードがなくなるまで繰り返すことにより、グラフ情報を生成する。以下、図を用いて、生成処理を実現する生成装置100の機能構成及び作用効果の一例を説明する。
[2. Regarding the generation process executed by the generation device according to the embodiment]
For example, the generation device 100 can reach the target node by selecting a predetermined node from among the node group as the root node to be used as the first starting point at the time of searching, and following the root node from the node group and the directed edge from the root node. Information for generating graph information by selecting a node other than the processed node group including the target node as the target node, and connecting the directed edges from a predetermined number of nodes to the target node in the processed node group. It is a processing device. For example, the generation device 100 generates the graph information by repeating the above-described connection processing until there are no unprocessed nodes that are not connected to other nodes in the node group. Hereinafter, with reference to the drawings, an example of the functional configuration and operational effects of the generation device 100 that realizes the generation process will be described.
〔2−1.機能構成の一例〕
まず、図2を用いて、実施形態に係る生成装置100の構成について説明する。図2は、実施形態に係る情報処理装置が有する機能構成の一例を説明する図である。図2は、実施形態に係る生成装置が有する機能構成の一例を説明する図である。図2に示すように、生成装置100は、通信部110と、記憶部120と、制御部130とを有する。なお、生成装置100は、生成装置100の管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(例えば、液晶ディスプレイ等)を有してもよい。通信部110は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部110は、ネットワークNと有線または無線で接続され、端末装置との間で、検索クエリや検索結果等の種々の情報の送受信を行う。
[2-1. Example of functional configuration]
First, the configuration of the generation device 100 according to the embodiment will be described with reference to FIG. FIG. 2 is a diagram illustrating an example of a functional configuration of the information processing apparatus according to the embodiment. FIG. 2 is a diagram illustrating an example of a functional configuration included in the generation device according to the embodiment. As illustrated in FIG. 2, the generation device 100 includes a communication unit 110, a storage unit 120, and a control unit 130. The generation device 100 has an input unit (for example, a keyboard and a mouse) that receives various operations from an administrator of the generation device 100, and a display unit (for example, a liquid crystal display) for displaying various information. May be. The communication unit 110 is realized by, for example, a NIC (Network Interface Card) or the like. Then, the communication unit 110 is connected to the network N by wire or wirelessly, and transmits and receives various information such as a search query and a search result to and from the terminal device.
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。実施形態に係る記憶部120は、図2に示すように、オブジェクト情報記憶部121と、グラフ情報記憶部122とを有する。以下、図3および図4を用いて、オブジェクト情報記憶部121、およびグラフ情報記憶部122に登録される情報の一例を説明する。
The storage unit 120 is realized by, for example, a semiconductor memory device such as a RAM (Random Access Memory) or a flash memory (Flash Memory), or a storage device such as a hard disk or an optical disk. The storage unit 120 according to the embodiment includes an object
オブジェクト情報記憶部121には、検索対象(オブジェクト)に関する情報が登録されている。例えば、オブジェクト情報記憶部121には、オブジェクトを識別するための識別情報や、オブジェクトに対応するベクトルデータ(ベクトル情報)が登録されている。
Information regarding a search target (object) is registered in the object
例えば、図3は、実施形態に係るオブジェクト情報記憶部の一例を示す図である。図3に示すように、オブジェクト情報記憶部121には、「オブジェクトID」、および「ベクトル情報」といった項目を有する情報が登録される。「オブジェクトID」とは、オブジェクトを識別するための識別情報である。また、「ベクトル情報」とは、オブジェクトIDにより識別されるオブジェクトに対応するベクトル情報である。すなわち、図3の例では、オブジェクトを識別するオブジェクトIDに対して、オブジェクトに対応するベクトルデータ(ベクトル情報)が対応付けられて登録されている。
For example, FIG. 3 is a diagram illustrating an example of the object information storage unit according to the embodiment. As shown in FIG. 3, information having items such as “object ID” and “vector information” is registered in the object
グラフ情報記憶部122は、後述する生成処理により生成されるグラフ情報が登録されている。例えば、グラフ情報記憶部122には、複数のオブジェクトを接続するエッジに関する情報であり、参照元のオブジェクトと参照先のオブジェクトとを接続する有向エッジに関する情報が登録されている。
The graph
例えば、図4は、実施形態に係るグラフ情報記憶部の一例を示す図である。図4に示すように、グラフ情報記憶部122には、「ノードID」、「オブジェクトID」、および「有向エッジ情報」といった項目を有する情報が登録される。「ノードID」とは、グラフ情報における各ノード(対象)を識別するための識別情報である。また、「オブジェクトID」とは、オブジェクトを識別するための識別情報である。また、「有向エッジ情報」には、「エッジID」や「参照先」といった情報が含まれる。「エッジID」とは、ノード間を連結するエッジを識別するための識別情報である。「参照先」は、エッジにより連結された参照先(ノード)を示す情報である。すなわち、図4の例では、ノードを識別するノードIDに対して、そのノードに対応するオブジェクト(対象)を識別する情報やそのノードからの有向エッジが連結される参照先(ノード)が対応付けられて登録されている。
For example, FIG. 4 is a diagram illustrating an example of the graph information storage unit according to the embodiment. As shown in FIG. 4, information having items such as “node ID”, “object ID”, and “directed edge information” is registered in the graph
例えば、図4の例では、ノードID「N1」により識別されるノードは、オブジェクトID「OB1」により識別されるオブジェクト(対象)に対応することを示す。また、ノードID「N1」により識別されるノードからは、エッジID「E11」により識別されるエッジが、ノードID「N2」により識別されるノードに連結されることを示す。すなわち、図4の例では、ノードID「N1」により識別されるノードからはノードID「N2」により識別されるノードに辿ることができることを示す。 For example, the example of FIG. 4 indicates that the node identified by the node ID “N1” corresponds to the object (target) identified by the object ID “OB1”. Further, from the node identified by the node ID “N1”, the edge identified by the edge ID “E11” is connected to the node identified by the node ID “N2”. That is, the example of FIG. 4 shows that the node identified by the node ID “N1” can be followed from the node identified by the node ID “N1”.
図2に戻り、説明を続ける。制御部130は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等によって、生成装置100内部の記憶装置に記憶されている各種プログラムが、RAM等の記憶領域を作業領域として実行されることにより実現される。図2に示す例では、制御部130は、取得部131と、選択部132と、生成部133と、提供部134(以下、総称して各処理部131〜134と記載する場合がある。)を有する。
Returning to FIG. 2, the description will be continued. The control unit 130 is stored in a storage device inside the generation device 100 by, for example, a CPU (Central Processing Unit), an MPU (Micro Processing Unit), an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array), or the like. The various programs are realized by executing a storage area such as a RAM as a work area. In the example illustrated in FIG. 2, the control unit 130 includes an acquisition unit 131, a
なお、制御部130が有する各処理部131〜134の接続関係は、図2に示した接続関係に限られず、他の接続関係であってもよい。また、各処理部131〜134は、以下に説明するような生成処理の機能・作用(例えば図1)を実現・実行するものであるが、これらは説明のために整理した機能単位であり、実際のハードウェア要素やソフトウェアモジュールとの一致は問わない。すなわち、以下の生成処理の機能・作用を実現・実行することができるのであれば、生成装置100は、任意の機能単位で案内処理を実現・実行して良い。 The connection relationship between the processing units 131 to 134 included in the control unit 130 is not limited to the connection relationship illustrated in FIG. 2 and may be another connection relationship. Further, each of the processing units 131 to 134 realizes and executes the function/action (for example, FIG. 1) of the generation processing as described below, but these are functional units arranged for the purpose of description. It does not matter whether it matches the actual hardware element or software module. That is, if the following functions and actions of the generation process can be realized and executed, the generation device 100 may realize and execute the guidance process in arbitrary function units.
〔2−2.生成処理における作用効果の一例〕
以下、図5に示すフローチャートを用いて、各処理部131〜134が実行・実現する生成処理の内容について説明する。図5は、実施形態に係る生成処理の一例を示すフローチャートである。
[2-2. Example of action and effect in generation processing]
Hereinafter, the content of the generation process executed and realized by each of the processing units 131 to 134 will be described using the flowchart shown in FIG. FIG. 5 is a flowchart showing an example of the generation process according to the embodiment.
まず、取得部131は、ノード群を取得する(ステップS101)。例えば、生成装置100は、生成処理の対象となるノード群を外部の情報処理装置から取得したり、記憶部120から取得したりする。例えば、生成装置100は、オブジェクト情報記憶部121に記憶された各オブジェクトに対応するノード群を取得する。図1の例では、生成装置100は、ノードN1〜N9に示すようなノード群を取得する。
First, the acquisition unit 131 acquires a node group (step S101). For example, the generation device 100 acquires the node group that is the target of the generation process from the external information processing device or the storage unit 120. For example, the generation device 100 acquires a node group corresponding to each object stored in the object
そして、選択部132は、ルートノードを選択する(ステップS102)。ここでいう、ルートノードとは、検索時に最初の起点として用いるノードを意味するものとする。なお、生成装置100は、種々の基準を適宜用いてルートノードを選択してもよい。例えば、生成装置100は、ノード群の平均に近いノードをルートノードとして選択してもよい。例えば、生成装置100は、空間情報VS1の中央部に位置するノードをルートノードとして選択してもよい。例えば、生成装置100は、ノード群を所定のクラスタリング手法によりクラスタリングし、最も要素(ノード)数の多いクラスタからルートノードを選択してもよい。例えば、生成装置100は、最も要素(ノード)数の多いクラスタのうち、平均に近いノードをルートノードとして選択してもよい。
Then, the
図1の例では、生成装置100は、ルートノードをランダムに選択するものとする。例えば、生成装置100は、図1中ステップS11に示すように、ノードN1をルートノードとして選択する。なお、図1の例では、ノードN1にハッチングを付して、他のノードN2〜N9と異なる態様で図示することにより、ノードN1がルートノードであることを示す。 In the example of FIG. 1, it is assumed that the generation device 100 randomly selects a root node. For example, the generation device 100 selects the node N1 as the root node, as shown in step S11 in FIG. In the example of FIG. 1, the node N1 is hatched and illustrated in a manner different from the other nodes N2 to N9 to indicate that the node N1 is the root node.
そして、生成部133は、未処理ノードから対象ノードを選択する(ステップS103)。ここでいう、未処理ノードとは、ノード群のうち、ルートノード、及びルートノードから有向エッジを辿ることにより到達可能なノードを含む処理済ノード群以外のノードを意味する。図1の例では、ノードN1をルートノードに選択後においては、ノードN2〜N9のノードが未処理ノードとなる。また、ここでいう、対象ノードとは、有向エッジを連結する処理を行う対象となるノードを意味する。また、上述のように、処理済ノード群は、ルートノード、及びルートノードから有向エッジを辿ることにより到達可能なノードを含むものとする。 Then, the generation unit 133 selects the target node from the unprocessed nodes (step S103). Here, the unprocessed node means a node other than the processed node group including the root node and the nodes reachable by following the directed edge from the root node in the node group. In the example of FIG. 1, after selecting the node N1 as the root node, the nodes N2 to N9 are unprocessed nodes. In addition, the target node here means a node which is a target for performing the process of connecting the directed edges. In addition, as described above, the processed node group includes a root node and a node reachable by following a directed edge from the root node.
図1の例では、生成装置100は、対象ノードをランダムに選択するものとする。例えば、生成装置100は、図1中ステップS12に示すように、ノードN2を対象ノードとして選択する。なお、生成装置100は、対象ノードをランダムに限らず、種々の基準に基づいて選択してもよい。例えば、生成装置100は、ルートノードに近接しているノードを対象ノードとして選択してもよい。この場合、生成装置100により生成されるグラフ情報を用いた検索では、検索の網羅性が向上するため、高精度な検索が可能となる。例えば、生成装置100は、ルートノードから遠隔にあるノードを対象ノードとして選択してもよい。この場合、生成装置100により生成されるグラフ情報を用いた検索では、1つのエッジを辿ることにより空間内においてより遠方へ移るため、例えば、1つのエッジを辿ることによる空間内の移動距離が長くすることができる等により、検索処理の高速化が期待できる。また、生成装置100は、ルートノードではなく、前回登録ノードに対して最も近いノード、及び、前回登録ノードに対して最も遠いノード、を選択して登録しても良い。この場合、それぞれ上記と同様の効果が期待できる。例えば、生成装置100は、ルートノードではなく、前回処理対象としたノードに対して最も近いノード、または、前回処理対象としたノードに対して最も遠いノードを、対象ノードとして選択してもよい。例えば、生成装置100は、処理済ノード群以外のノードのうち、一の連結処理の直前の連結処理における対象ノードに対して最も近いノード、または、一の連結処理の直前の連結処理における対象ノードに対して最も遠いノードを、一の連結処理における対象ノードとして選択してもよい。 In the example of FIG. 1, it is assumed that the generation device 100 randomly selects a target node. For example, the generation device 100 selects the node N2 as the target node, as shown in step S12 in FIG. In addition, the generation device 100 may select the target node based on various criteria, not limited to random. For example, the generation device 100 may select a node close to the root node as the target node. In this case, in the search using the graph information generated by the generation device 100, the exhaustiveness of the search is improved, so that the search can be performed with high accuracy. For example, the generation device 100 may select a node remote from the root node as the target node. In this case, in the search using the graph information generated by the generation device 100, since one edge is moved to a farther place in the space, for example, the movement distance in the space by tracing one edge is long. As a result, it is expected that the search processing will be speeded up. Further, the generation device 100 may select and register not the root node but the node closest to the previously registered node and the node farthest from the previously registered node. In this case, the same effects as described above can be expected. For example, the generation device 100 may select, as the target node, not the root node but the node closest to the previously processed node or the node farthest from the previously processed node. For example, the generation device 100 may select the node other than the processed node group that is closest to the target node in the concatenation process immediately before the one concatenation process or the target node in the concatenation process immediately before the one concatenation process. The node farthest from may be selected as the target node in one connection process.
そして、生成部133は、処理済ノード群のうち、対象ノードとの間の距離が近い方から所定数のノードからの有向エッジを対象ノードに連結する(ステップS104)。このように、生成部133は、処理済ノード群のうち、対象ノードからの距離に応じて選択される所定数のノードからの有向エッジを対象ノードに連結する。 Then, the generation unit 133 connects to the target node the directed edges from a predetermined number of nodes in the processed node group that are closer to the target node (step S104). In this way, the generation unit 133 connects the directed edges from the predetermined number of nodes selected according to the distance from the target node in the processed node group to the target node.
図1の例では、生成装置100は、所定数を「2」とし、処理済ノード群のうち、対象ノードとの間の距離が近い方から2つのノードからの有向エッジを対象ノードに連結する場合を示す。なお、所定数「2」は一例であり、ノード群に含まれるノード数等に応じて、種々の値(例えば、5や10等)であってもよい。例えば、生成装置100は、次元数の多いデータを扱う場合には、所定数を「100以上」としてもよい。これにより、検索性能が向上させることが期待できる場合がある。 In the example of FIG. 1, the generation device 100 sets the predetermined number to “2”, and connects the directed edges from the two nodes in the processed node group that are closer to the target node to the target node. The case is shown. The predetermined number “2” is an example, and may be various values (for example, 5 and 10) according to the number of nodes included in the node group and the like. For example, the generation device 100 may set the predetermined number to “100 or more” when handling data having a large number of dimensions. This may be expected to improve the search performance.
ここで、図1中の空間情報VS1−2に示すように、ルートノード選択後においては処理済ノード群にはルートノードであるノードN1のみが含まれる。この場合、生成装置100は、図1中ステップS13に示すように、ノードN1からの有向エッジであるエッジE11をノードN2に連結する。 Here, as shown in the spatial information VS1-2 in FIG. 1, after the selection of the root node, the processed node group includes only the node N1 that is the root node. In this case, the generation device 100 connects the edge E11, which is the directed edge from the node N1, to the node N2, as shown in step S13 in FIG.
図1中のエッジE11等に示す各ノード間を連結する矢印線は、連結されるノードが参照元と参照先との関係があることを示す。具体的には、矢印線の始点側のノードが参照元であり、矢先側のノードが参照先であることを示す。例えば、エッジE11は、ノードN1が参照元であり、ノードN2が参照先である有向エッジであることを示す。 An arrow line connecting the nodes shown in the edge E11 and the like in FIG. 1 indicates that the connected nodes have a relationship between a reference source and a reference destination. Specifically, the node on the start point side of the arrow line is the reference source, and the node on the arrow tip side is the reference destination. For example, the edge E11 indicates that the node N1 is a reference source and the node N2 is a reference destination.
このように、生成装置100は、処理済ノード群のうち、所定数のノードからの有向エッジを対象ノードに連結する連結処理を行う。なお、生成装置100は、処理済ノード群に含まれるノード数が、所定数に達しない場合、処理済ノード群の全ノードからの有向エッジを対象ノードに連結してもよい。 In this way, the generation device 100 performs the connection process of connecting the directed edges from the predetermined number of nodes in the processed node group to the target node. Note that the generation device 100 may connect the directed edges from all the nodes of the processed node group to the target node when the number of nodes included in the processed node group does not reach the predetermined number.
また、このように「エッジE*(*は任意の数値)」と記載した場合、そのエッジはエッジID「E*」により識別されるエッジであることを示す。例えば、「エッジE11」と記載した場合、そのエッジはエッジID「E11」により識別されるエッジである。上述のように、ノードN1からのエッジE11をノードN2に連結することにより、検索時において起点となるノードN1からノードN2に辿ることが可能となる。また、ノードN2は未処理ノード群ではなくなり、処理済ノード群に含まれる。 In addition, when the "edge E* (* is an arbitrary numerical value)" is written in this way, it indicates that the edge is an edge identified by the edge ID "E*". For example, when described as “edge E11”, the edge is the edge identified by the edge ID “E11”. As described above, by connecting the edge E11 from the node N1 to the node N2, it is possible to trace from the node N1 that is the starting point during the search to the node N2. Further, the node N2 is no longer an unprocessed node group and is included in the processed node group.
そして、生成部133は、未処理ノードが有る場合(ステップS105:Yes)、ステップS103に戻って処理を繰り返す。 Then, when there is an unprocessed node (step S105: Yes), the generation unit 133 returns to step S103 and repeats the processing.
例えば、ノードN2を対象ノードとして連結処理後において、生成装置100は、図1中ステップS14に示すように、ノードN3を対象ノードとして選択する。ここで、図1中の空間情報VS1−3に示すように、ノードN2の連結処理後においては処理済ノード群にはノードN1及びノードN2の2つが含まれる。この場合、生成装置100は、図1中ステップS15に示すように、ノードN1からの有向エッジであるエッジE12をノードN3に連結し、ノードN2からの有向エッジであるエッジE21をノードN3に連結する。このように、生成装置100は、ノードN3を対象ノードとして連結処理を行う。 For example, after the linking process with the node N2 as the target node, the generation device 100 selects the node N3 as the target node as shown in step S14 in FIG. Here, as shown in the spatial information VS1-3 in FIG. 1, after the connection processing of the node N2, the processed node group includes two nodes N1 and N2. In this case, the generation device 100 connects the edge E12, which is the directed edge from the node N1, to the node N3, and the edge E21, which is the directed edge from the node N2, is connected to the node N3, as shown in step S15 in FIG. Connect to. In this way, the generation device 100 performs the connection process with the node N3 as the target node.
そして、生成部133は、未処理ノードが有る場合(ステップS105:Yes)、ステップS103に戻って処理を繰り返す。 Then, when there is an unprocessed node (step S105: Yes), the generation unit 133 returns to step S103 and repeats the processing.
例えば、ノードN3を対象ノードとして連結処理後において、生成装置100は、図1中ステップS16に示すように、ノードN4を対象ノードとして選択する。ここで、図1中の空間情報VS1−4に示すように、ノードN3の連結処理後においては処理済ノード群にはノードN1〜N3の3つが含まれる。この場合、生成装置100は、ノードN1〜N3のうち、ノードN4との間の距離が近い方から2つのノードからの有向エッジを対象ノードに連結する。図1の例では、空間情報VS1に示すように、ノードN4との間の距離は、ノードN1、N3が近く、ノードN2が遠い。そのため、生成装置100は、図1中ステップS17に示すように、ノードN1からの有向エッジであるエッジE13をノードN4に連結し、ノードN3からの有向エッジであるエッジE31をノードN4に連結する。このように、生成装置100は、ノードN4を対象ノードとして連結処理を行う。 For example, after the connection process with the node N3 as the target node, the generation device 100 selects the node N4 as the target node, as shown in step S16 in FIG. Here, as shown in the spatial information VS1-4 in FIG. 1, after the connection processing of the node N3, the processed node group includes three nodes N1 to N3. In this case, the generation device 100 connects the directed edges from the two nodes, which are closer to the node N4 among the nodes N1 to N3, to the target node. In the example of FIG. 1, as shown in the spatial information VS1, the nodes N4 and N3 are near and the node N2 is far from the node N4. Therefore, as shown in step S17 in FIG. 1, the generation device 100 connects the edge E13, which is the directed edge from the node N1, to the node N4, and the edge E31, which is the directed edge from the node N3, to the node N4. Link. In this way, the generation device 100 performs the connection process with the node N4 as the target node.
なお、生成装置100は、生成途中におけるインデックス情報等のグラフ情報を用いて、対象ノードの近接検索を行うことにより、対象ノードに連結するノードを決定してもよい。例えば、生成装置100は、処理済ノード群のうち対象ノードに近接するノードを決定する際には、検索時と同様の近傍検索の処理を行うことにより、高速化してもよい。すなわち、生成装置100は、対象ノードをクエリとみなして、その対象ノードに近接するノードを検索することにより、対象ノードに連結するノードを決定してもよい。 Note that the generation device 100 may determine the node connected to the target node by performing proximity search for the target node using graph information such as index information during generation. For example, the generation device 100 may speed up by determining the node that is close to the target node in the processed node group by performing the same neighbor search process as at the time of the search. That is, the generation device 100 may determine a node connected to the target node by regarding the target node as a query and searching for a node close to the target node.
例えば、生成装置100は、対象ノードに対して、処理済ノード群の中での近傍する上位k個(kは「2」等の任意の数)のノードを近傍検索し、k個の近傍のノードから対象ノードへ有向エッジ(リンク)を設定する。 For example, the generation device 100 performs a neighborhood search on the top k nodes (k is an arbitrary number such as “2”) in the processed node group that are close to the target node, Set a directed edge (link) from the node to the target node.
そして、生成部133は、未処理ノードが有る場合(ステップS105:Yes)、ステップS103に戻って処理を繰り返す。 Then, when there is an unprocessed node (step S105: Yes), the generation unit 133 returns to step S103 and repeats the processing.
例えば、ノードN4を対象ノードとして連結処理後において、生成装置100は、図1中ステップS18に示すように、ノードN5を対象ノードとして選択する。ここで、図1中の空間情報VS1−5に示すように、ノードN4の連結処理後においては処理済ノード群にはノードN1〜N4の4つが含まれる。この場合、生成装置100は、ノードN1〜N4のうち、ノードN5との間の距離が近い方から2つのノードからの有向エッジを対象ノードに連結する。図1の例では、空間情報VS1に示すように、ノードN5との間の距離は、ノードN1、N2、N4、N3の順で近い。そのため、生成装置100は、図1中ステップS19に示すように、ノードN1からの有向エッジであるエッジE14をノードN5に連結し、ノードN2からの有向エッジであるエッジE22をノードN5に連結する。このように、生成装置100は、ノードN5を対象ノードとして連結処理を行う。 For example, after the linking process with the node N4 as the target node, the generation device 100 selects the node N5 as the target node, as shown in step S18 in FIG. Here, as shown in the spatial information VS1-5 in FIG. 1, after the connection processing of the node N4, the processed node group includes four nodes N1 to N4. In this case, the generation device 100 connects the directed edges from the two nodes, which are closer to the node N5, of the nodes N1 to N4 to the target node. In the example of FIG. 1, as shown in the spatial information VS1, the distance to the node N5 is closer in the order of the nodes N1, N2, N4, and N3. Therefore, the generation device 100 connects the edge E14, which is the directed edge from the node N1, to the node N5, and the edge E22, which is the directed edge from the node N2, to the node N5, as shown in step S19 in FIG. Link. In this way, the generation device 100 performs the connection process with the node N5 as the target node.
そして、生成部133は、未処理ノードが有る場合(ステップS105:Yes)、ステップS103に戻って処理を繰り返す。図1中ステップS20に示すように、生成装置100は、ノードN5を対象ノードとして連結処理後において、未処理ノードであるノードN6〜N9を対象ノードとして、順次連結処理を行う。例えば、図1中の空間情報VS1−6に示すように、生成装置100は、ノードN6、N7、N8、N9の順に対象ノードとして連結処理を行うことにより、グラフ情報GR11を生成する。 Then, when there is an unprocessed node (step S105: Yes), the generation unit 133 returns to step S103 and repeats the processing. As illustrated in step S20 in FIG. 1, the generation device 100 sequentially performs the connection process after the connection process with the node N5 as the target node and the nodes N6 to N9 that are unprocessed nodes as the target nodes. For example, as shown in the spatial information VS1-6 in FIG. 1, the generation device 100 generates the graph information GR11 by performing the connection process as the target nodes in the order of nodes N6, N7, N8, and N9.
そして、生成部133は、未処理ノードが無い場合(ステップS105:No)、処理を終了する。 Then, when there is no unprocessed node (step S105: No), the generation unit 133 ends the process.
例えば、生成装置100は、以下のような処理行う。例えば、生成装置100は、登録するオブジェクトに対応するノード集合(以下、「集合S」ともいう)から任意のノードを選択してルートノードとし、集合Sから除外する。そして、生成装置100は、集合Sから任意のノードを選択肢し、集合Sから除外する。そして、生成装置100は、選択したノードに対して、ツリー上のノード(処理済ノード群)の中での近傍する上位k個のノードを近傍検索し、k個の検索されたノードから当該のノードへエッジ(リンク)を設定する。生成装置100は、上述した処理を、集合Sが空になるまで、繰り返す。なお、図1の例では、グラフ情報の生成までを示したが、生成装置100は、生成したグラフ情報を用いて種々のサービスを提供してもよい。例えば、提供部134は、生成部133により生成されたグラフ情報を外部の情報処理装置へ提供してもよい。例えば、提供部134は、グラフ情報GR11を所定の検索サービスを提供する情報処理装置へ提供してもよい。また、生成装置100が検索サービスを提供する場合、提供部134は、取得部131により端末装置から取得された検索クエリに対応する検索結果を、端末装置へ提供してもよい。 For example, the generation device 100 performs the following processing. For example, the generation device 100 selects an arbitrary node from a node set (hereinafter, also referred to as “set S”) corresponding to an object to be registered as a root node and excludes it from the set S. Then, the generation device 100 selects an arbitrary node from the set S and excludes it from the set S. Then, the generation device 100 performs a neighborhood search for the top k nodes that are close to the selected node in the nodes (processed node group) on the tree, and selects the relevant k node from the k searched nodes. Set an edge (link) to a node. The generation device 100 repeats the above-described processing until the set S becomes empty. In addition, in the example of FIG. 1, the generation of the graph information is shown, but the generation device 100 may provide various services by using the generated graph information. For example, the providing unit 134 may provide the graph information generated by the generating unit 133 to an external information processing device. For example, the providing unit 134 may provide the graph information GR11 to an information processing device that provides a predetermined search service. When the generating device 100 provides the search service, the providing unit 134 may provide the terminal device with the search result corresponding to the search query acquired from the terminal device by the acquisition unit 131.
〔3.変形例〕
上述した実施形態に係る生成装置100は、上記実施形態以外にも種々の異なる形態にて実施されてよい。そこで、以下では、上記の生成装置100の他の実施形態について説明する。なお、以下では、実施形態と同様の点については適宜説明を省略する。
[3. Modification example)
The generation device 100 according to the above-described embodiment may be implemented in various different forms other than the above-described embodiment. Therefore, in the following, another embodiment of the generation device 100 will be described. Note that, in the following, description of the same points as in the embodiment will be appropriately omitted.
〔3−1.複数のルートノード〕
上述した例では、1つのノードをルートノードとして選択する場合を示したが、ルートノードの数が1つに限らず、複数であってもよい。例えば、生成装置100は、複数のルートノードとして、互いに遠いノードを選択しても良い。また、例えば、生成装置100は、所定のクラスタリングを行い、各クラスタの中心に最も近いノードをルートノードとしても良い。すなわち、生成装置100は、ノード群のうち、複数のノードをルートノードとして選択してもよい。この点について、図6を用いて説明する。図6は、複数のルートノードを含むグラフ情報の一例を示す図である。
[3-1. Multiple root nodes)
In the above example, the case where one node is selected as the root node has been shown, but the number of root nodes is not limited to one, and may be plural. For example, the generation device 100 may select nodes far from each other as the plurality of root nodes. Further, for example, the generation device 100 may perform predetermined clustering, and set the node closest to the center of each cluster as the root node. That is, the generation device 100 may select a plurality of nodes as the root node from the node group. This point will be described with reference to FIG. FIG. 6 is a diagram showing an example of graph information including a plurality of root nodes.
図6中の空間情報VS1−6は、図1中の空間情報VS1−6に対応し、1つのノードN1をルートノードとして選択した場合を示す。一方、図6中の空間情報VS1−21は、ノードN1、及びノードN10の2つのノードをルートノードとして選択した場合を示す。すなわち、図6中の空間情報VS1−21は、ノードN10を含む点で、図6中の空間情報VS1−6と相違する。 Spatial information VS1-6 in FIG. 6 corresponds to the spatial information VS1-6 in FIG. 1 and shows a case where one node N1 is selected as the root node. On the other hand, the spatial information VS1-21 in FIG. 6 indicates a case where two nodes, the node N1 and the node N10, are selected as root nodes. That is, the spatial information VS1-21 in FIG. 6 differs from the spatial information VS1-6 in FIG. 6 in including the node N10.
このように、生成装置100は、複数のルートノードを選択してもよい。これにより、複数のルートノードが選択されることにより、各ノードにおけるエッジの連結関係が変更される。図6の示す例では、グラフ情報GR11がグラフ情報GR21に変更される。例えば、空間情報VS1−21においては、空間情報VS1−6中のノードN3からノードN4への有向エッジに変えて、ノードN10からノードN3への有向エッジが連結される。このように複数のルートノードを含むグラフ情報GR21を用いて検索を行う場合、複数の起点から並列して検索を行うことができるため、検索処理の高速化を図ることが可能となる。 In this way, the generation device 100 may select a plurality of root nodes. As a result, by selecting a plurality of root nodes, the connection relation of the edges in each node is changed. In the example shown in FIG. 6, the graph information GR11 is changed to the graph information GR21. For example, in the spatial information VS1-21, the directed edge from the node N10 to the node N3 is connected instead of the directed edge from the node N3 to the node N4 in the spatial information VS1-6. When a search is performed using the graph information GR21 including a plurality of root nodes in this way, the search can be performed in parallel from a plurality of starting points, so that the search processing can be speeded up.
〔3−2.複数のルートノード〕
また、図6の例では、複数のルートノードについて共通のグラフ情報GR21を生成する場合を示したが、各ルートノードについてグラフ情報を生成してもよい。すなわち、生成装置100は、各ルートノードを起点として検索可能な複数のグラフ情報を生成してもよい。この点について、図7を用いて説明する。図7は、複数のグラフ情報の生成の一例を示す図である。
[3-2. Multiple root nodes)
Further, in the example of FIG. 6, the case where the common graph information GR21 is generated for a plurality of root nodes is shown, but the graph information may be generated for each root node. That is, the generation device 100 may generate a plurality of searchable graph information starting from each root node. This point will be described with reference to FIG. 7. FIG. 7 is a diagram showing an example of generation of a plurality of pieces of graph information.
図7中の空間情報VS1−31には、ノードN1〜N10が含まれる。すなわち、図7中の空間情報VS1−31は、ノードN10を含む点で、図1中の空間情報VS1−6と相違する。また、図7中の空間情報VS1−31は、ノードN1、及びノードN10の2つのノードをルートノードとして選択した場合を示す。 The spatial information VS1-31 in FIG. 7 includes nodes N1 to N10. That is, the spatial information VS1-31 in FIG. 7 differs from the spatial information VS1-6 in FIG. 1 in that it includes the node N10. The spatial information VS1-31 in FIG. 7 shows a case where two nodes, the node N1 and the node N10, are selected as root nodes.
ここで、生成装置100は、各ルートノードを対象としてグラフ情報を生成する。図7の例では、生成装置100は、ルートノードであるノードN1、N10をそれぞれ対象としてグラフ情報を生成する。 Here, the generation device 100 generates graph information for each root node. In the example of FIG. 7, the generation device 100 generates graph information for each of the nodes N1 and N10 that are root nodes.
図7に示す例では、生成装置100は、ルートノードであるノードN1を対象として連結処理を行うことにより、空間情報VS1−6に示すグラフ情報GR11を生成する。例えば、生成装置100は、他のルートノードであるノードN10を除いたノードN2〜N9を未処理ノードとして、未処理ノードが無くなるまで連結処理を行うことにより、グラフ情報GR11を生成する。なお、図7中の空間情報VS1−6は、図1中の空間情報VS1−6に対応する。 In the example illustrated in FIG. 7, the generation device 100 generates the graph information GR11 illustrated in the spatial information VS1-6 by performing the connection process on the node N1 that is the root node. For example, the generation device 100 generates the graph information GR11 by performing connection processing until the unprocessed nodes are exhausted, with the nodes N2 to N9 excluding the node N10 that is another root node as unprocessed nodes. The spatial information VS1-6 in FIG. 7 corresponds to the spatial information VS1-6 in FIG.
また、図7に示す例では、生成装置100は、ルートノードであるノードN10を対象として連結処理を行うことにより、空間情報VS1−32に示すグラフ情報GR31を生成する。例えば、生成装置100は、他のルートノードであるノードN1を除いたノードN2〜N9を未処理ノードとして、未処理ノードが無くなるまで連結処理を行うことにより、グラフ情報GR31を生成する。 Further, in the example illustrated in FIG. 7, the generation device 100 generates the graph information GR31 shown in the spatial information VS1-32 by performing the connection process on the node N10 that is the root node. For example, the generation device 100 generates the graph information GR31 by using the nodes N2 to N9 excluding the node N1 which is another root node as unprocessed nodes and performing the connection process until there are no unprocessed nodes.
このように、生成装置100は、複数のルートノードの各々を対象として、グラフ情報を生成してもよい。このように複数のルートノードの各々を対象として生成されたグラフ情報GR11、GR31を用いて検索を行う場合、複数の起点から並列して検索を行うことができるため、検索精度の向上を図ることが可能となる。なお、各ノードをGR11、GR31の両者に登録する例を示したが、登録対象ノードを交互、ランダム、または、ルートノードとの距離を算出し、最も近いグラフのみに登録しても良い。例えば、生成装置100は、対象ノードが複数のルートノードN1、N10の各々に対応する複数のグラフ情報のいずれかに含まれるように連結処理を行うことにより、複数のルートノードN1、N10の各々に対応する複数のグラフ情報を生成してもよい。 In this way, the generation device 100 may generate the graph information for each of the plurality of root nodes. When the search is performed using the graph information GR11 and GR31 generated for each of the plurality of root nodes in this way, the search accuracy can be improved because the search can be performed in parallel from a plurality of starting points. Is possible. Although an example in which each node is registered in both GR11 and GR31 is shown, the registration target node may be registered alternately, randomly, or by calculating the distance from the root node and registering only in the nearest graph. For example, the generation device 100 performs each of the plurality of root nodes N1 and N10 by performing the linking process so that the target node is included in any of the plurality of graph information corresponding to each of the plurality of root nodes N1 and N10. You may generate several graph information corresponding to.
〔3−3.階層構造を有するグラフ情報〕
なお、生成装置100は、階層構造を有するグラフ情報を生成してもよい。この点について、図8〜10を用いて説明する。図8は、階層構造を有するグラフ情報の一例を示す図である。
[3-3. Graph information with hierarchical structure]
The generation device 100 may generate graph information having a hierarchical structure. This point will be described with reference to FIGS. FIG. 8 is a diagram showing an example of graph information having a hierarchical structure.
例えば、生成装置100は、図8に示すような、階層構造を有するグラフ情報GR41を生成する。また、図8に示す例においては、グラフ情報GR41においては、「ノードN*(*は任意の数値)」の図示を省略し、取得した各ノードを「○」内に「ノードN*(*は任意の数値)」の「*」の値を付すことにより表現する。例えば、グラフ情報GR41中の最上部の「○」であって、内部に「1」が付された「○」は、ノードID「N1」により識別されるノードに対応する。また、例えば、グラフ情報GR41中の第5階層の最左部「○」であって、内部に「16」が付された「○」は、ノードID「N16」により識別されるノードに対応する。 For example, the generation device 100 generates graph information GR41 having a hierarchical structure as shown in FIG. Further, in the example shown in FIG. 8, in the graph information GR41, the illustration of “node N* (* is an arbitrary numerical value)” is omitted, and each acquired node is indicated by “○” in “node N*(* Is expressed by adding a value of "*" of "arbitrary numerical value)". For example, “◯”, which is the topmost “◯” in the graph information GR41 and internally attached with “1”, corresponds to the node identified by the node ID “N1”. Further, for example, the leftmost part “◯” of the fifth layer in the graph information GR41, and “◯” with “16” added inside corresponds to the node identified by the node ID “N16”. ..
また、図8の例では、説明を簡単にするために、18個のノードを図示して処理の概要を説明する。例えば、生成装置100は、図1中のノードN1〜N18に示すような複数のノードを含むノード群を取得し、階層構造を有し、有向エッジでノードを連結したグラフ情報GR41を生成する。例えば、グラフ情報GR41を用いた検索においては、検索時はグラフ構造型インデックスと同様の処理を行うが、開始位置(起点)は本インデックス(グラフ情報GR41)のルートからスタートする。例えば、生成装置100が生成したグラフ情報GR41を用いて検索を行う場合、ルートノードであるノードN1を起点として検索を行う。例えば、検索時においては、ルートノードであるノードN1から有向エッジを辿ることにより、第2階層以降のノードN2〜N18等を順次検索してもよい。 Further, in the example of FIG. 8, in order to simplify the description, 18 nodes are illustrated and the outline of the process is described. For example, the generation device 100 acquires a node group including a plurality of nodes such as the nodes N1 to N18 in FIG. 1, has a hierarchical structure, and generates graph information GR41 in which nodes are connected by directed edges. .. For example, in the search using the graph information GR41, the same processing as the graph structure type index is performed at the time of search, but the start position (starting point) starts from the root of this index (graph information GR41). For example, when performing a search using the graph information GR41 generated by the generation device 100, the search is performed starting from the node N1 that is the root node. For example, at the time of search, the nodes N2 to N18 and the like on the second and subsequent layers may be sequentially searched by tracing the directed edge from the node N1 that is the root node.
〔3−3−1.階層構造を有するグラフ情報生成の一例〕
以下、図9に示すフローチャートを用いて、階層構造を有するグラフ情報生成の一例について説明する。図9は、階層構造を有するグラフ情報に係る生成処理の一例を示すフローチャートである。また、図9の説明においては、図8及び図10を適宜参照して、グラフ情報GR41の生成過程について詳述する。図10は、階層構造を有するグラフ情報の生成過程の一例を示す図である。
[3-3-1. Example of graph information generation with hierarchical structure]
An example of graph information generation having a hierarchical structure will be described below with reference to the flowchart shown in FIG. FIG. 9 is a flowchart showing an example of a generation process related to graph information having a hierarchical structure. Further, in the description of FIG. 9, the generation process of the graph information GR41 will be described in detail with reference to FIGS. 8 and 10 as appropriate. FIG. 10 is a diagram showing an example of a process of generating graph information having a hierarchical structure.
また、図10に示すグラフ情報GR41−1、GR41−2は、グラフ情報GR41の生成過程を模式的に示す図であり、グラフ情報GR41−1、GR41−2に示すグラフ情報は、グラフ情報GR41の生成途中の状態を示す。また、以下では、グラフ情報GR41−1、GR41−2について、生成過程であることを特に区別なく説明する場合には、グラフ情報GR41と記載する。 Further, the graph information GR41-1 and GR41-2 shown in FIG. 10 are diagrams schematically showing the generation process of the graph information GR41, and the graph information GR41-1 and GR41-2 are the graph information GR41. Shows the state in the process of being generated. Further, in the following, the graph information GR41-1 and GR41-2 will be referred to as graph information GR41 when the generation process is described without any distinction.
図8及び図10中の各ノード間を連結する矢印線は、連結されるノードが参照元と参照先との関係があることを示す。具体的には、矢印線の始点側のノードが参照元であり、矢先側のノードが参照先であることを示す。例えば、ノードN1を矢元とし、ノードN3を矢先とするエッジ(矢印線)は、ノードN1が参照元であり、ノードN3が参照先である有向エッジであることを示す。 Arrow lines connecting the nodes in FIGS. 8 and 10 indicate that the connected nodes have a reference source and a reference destination. Specifically, the node on the start point side of the arrow line is the reference source, and the node on the arrow tip side is the reference destination. For example, an edge (arrow line) having the node N1 as an arrowhead and the node N3 as an arrowhead indicates that the node N1 is a reference source and the node N3 is a reference destination.
まず、取得部131は、ノード群を取得する(ステップS201)。例えば、生成装置100は、生成処理の対象となるノード群を外部の情報処理装置から取得したり、記憶部120から取得したりする。例えば、生成装置100は、オブジェクト情報記憶部121に記憶された各オブジェクトに対応するノード群を取得する。図8の例では、生成装置100は、ノードN1〜N18に示すようなノード群を取得する。
First, the acquisition unit 131 acquires a node group (step S201). For example, the generation device 100 acquires the node group that is the target of the generation process from the external information processing device or the storage unit 120. For example, the generation device 100 acquires a node group corresponding to each object stored in the object
そして、選択部132は、ルートノードを選択する(ステップS202)。また、生成装置100は、ルートノードの階層を第1階層に設定する。図10の例では、生成装置100は、ルートノードをランダムに選択するものとする。例えば、生成装置100は、図10中ステップS41に示すように、ノードN1をルートノードとして選択する。なお、図8及び図10の例では、ノードN1にハッチングを付して、他のノードN2〜N18と異なる態様で図示することにより、ノードN1がルートノードであることを示す。生成装置100は、第1階層にルートノードであるノードN1を属させる。
Then, the
そして、生成部133は、階層をルートノードの階層の直下に設定する(ステップS203)。ここでいう、階層の直下とは、その階層の下位の階層であり、その階層に連続する次の階層であってもよい。例えば、第1階層の直下の階層は、第2階層となる。図10の例では、生成装置100は、ルートノードの第1階層の下の階層を第2階層に設定する。 Then, the generation unit 133 sets the layer directly below the layer of the root node (step S203). The term “directly below a layer” as used herein means a layer below the layer, and may be the next layer following the layer. For example, the layer immediately below the first layer is the second layer. In the example of FIG. 10, the generation device 100 sets the layer below the first layer of the root node to the second layer.
そして、生成部133は、未処理ノードから設定中の階層に属する対象ノードを選択する(ステップS204)。図10の例では、ノードN1をルートノードに選択後においては、ノードN2〜N18のノードが未処理ノードとなる。 Then, the generation unit 133 selects a target node belonging to the layer being set from the unprocessed nodes (step S204). In the example of FIG. 10, after selecting the node N1 as the root node, the nodes N2 to N18 are unprocessed nodes.
ここで、生成装置100は、階層に属するノード数を所定の基準に基づいて決定する。図10の例では、生成装置100は、その階層に直近の上位階層に属するノード数の2倍をその階層に属するノード数に決定する。図10の例では、生成装置100は、第2階層の直近の上位の第1階層のノード数が「1」であるため、第2階層に属するノード数を「2(=1×2)」に決定する。この場合、階層番号をLとすると階層に属するノード数を2の(L−1)乗とする場合を一例として示すが、L×2、L×3、Lの2乗、log(L)などいずれでも良い。なお、生成装置100は、種々の基準を適宜用いて階層に属するノード数を決定してもよい。 Here, the generation device 100 determines the number of nodes belonging to the hierarchy based on a predetermined standard. In the example of FIG. 10, the generation device 100 determines twice the number of nodes belonging to the upper layer closest to the layer as the number of nodes belonging to the layer. In the example of FIG. 10, the generation device 100 determines that the number of nodes belonging to the second layer is “2 (=1×2)” because the number of nodes in the first layer immediately above the second layer is “1”. To decide. In this case, assuming that the layer number is L, the number of nodes belonging to the layer is set to 2 (L-1) power, but L×2, L×3, L squared, log(L), etc. Either is fine. Note that the generation device 100 may determine the number of nodes belonging to the hierarchy by appropriately using various criteria.
例えば、生成装置100は、階層数が所定の閾値以下となるように、各階層に属するノードの数を決定してもよい。例えば、生成装置100は、対象となるオブジェクト数(ノード数)が100万であり、階層数の閾値が「5」である場合、各階層に属するノード数の平均が「20万(=100万/5)」になるように、各階層に属するノードの数を決定してもよい。なお、生成装置100は、階層が下位になるほど属するノード数が多くなるように各階層のノード数を決定してもよいし、階層が下位になるほど属するノード数が少なくなるように各階層のノード数を決定してもよい。 For example, the generation device 100 may determine the number of nodes belonging to each layer so that the number of layers is equal to or less than a predetermined threshold. For example, in the generation device 100, when the number of target objects (the number of nodes) is 1 million and the threshold value of the number of layers is “5”, the average number of nodes belonging to each layer is “200,000 (=1 million). /5)”, the number of nodes belonging to each layer may be determined. Note that the generation device 100 may determine the number of nodes in each layer so that the number of nodes belonging to each layer increases as the layer becomes lower, or the number of nodes belonging to each layer decreases as the layer becomes lower. The number may be determined.
そして、生成装置100は、階層に属するノード数のノードを選択する。図10の例では、生成装置100は、階層に属するノード数のノードをランダムに選択するものとする。なお、生成装置100は、階層に属するノード数のノードをランダムに選択した後、ノード間の距離が予め規定された距離よりも近い場合には、一方を再度ランダムに選択し直しても良い。また、生成装置100は、各ノードがそれぞれ最も遠くなるように選択しても良い。また、生成装置100は、クラスタリングを行い各クラスタの中心に最も近いノードを選択しても良い。例えば、生成装置100は、図10中ステップS42に示すように、ノードN2、N3の2つのノードを第2階層に属する対象ノードとして選択する。 Then, the generation device 100 selects nodes having the number of nodes belonging to the hierarchy. In the example of FIG. 10, the generation device 100 randomly selects nodes having the number of nodes belonging to the hierarchy. Note that the generation device 100 may randomly select nodes having the number of nodes belonging to the hierarchy, and if the distance between the nodes is shorter than a predetermined distance, one may be randomly selected again. Further, the generation device 100 may select each node so that each node is the farthest. Further, the generation device 100 may perform clustering and select the node closest to the center of each cluster. For example, the generation device 100 selects two nodes N2 and N3 as target nodes belonging to the second layer, as shown in step S42 in FIG.
そして、生成部133は、設定中の階層よりも上位の階層に属するノード群のうち、対象ノードとの間の距離が近い方から所定数のノードからの有向エッジを対象ノードに連結する(ステップS205)。図10の例では、生成装置100は、所定数を「2」とし、設定中の階層よりも上位の階層に属するノード群のうち、対象ノードとの間の距離が近い方から2つのノードからの有向エッジを対象ノードに連結する場合を示す。 Then, the generation unit 133 connects, to the target node, the directed edges from a predetermined number of nodes in the node group belonging to a layer higher than the layer being set and having a closer distance to the target node ( Step S205). In the example of FIG. 10, the generation device 100 sets the predetermined number to “2”, and selects two nodes from a node group belonging to a layer higher than the layer being set, from a node having a closer distance to the target node. The case where the directed edge of is connected to the target node is shown.
ここで、図10中のグラフ情報GR41−1に示すように、第2階層よりも上位の階層(第1階層)に属するノード群にはルートノードであるノードN1のみが含まれる。この場合、生成装置100は、図10中ステップS43に示すように、ノードN1からの有向エッジをノードN2に連結すると決定し、ノードN1からの有向エッジをノードN3に連結すると決定する。例えば、生成装置100は、生成途中におけるインデックス情報等のグラフ情報を用いて、対象ノードの近接検索を行うことにより、対象ノードに連結するノードを決定してもよい。 Here, as shown in the graph information GR41-1 in FIG. 10, the node group belonging to the higher hierarchy (first hierarchy) than the second hierarchy includes only the node N1 which is the root node. In this case, the generation device 100 determines that the directed edge from the node N1 is connected to the node N2 and the directed edge from the node N1 is connected to the node N3, as shown in step S43 in FIG. For example, the generation device 100 may determine the node connected to the target node by performing proximity search for the target node using graph information such as index information during generation.
このように、生成装置100は、処理対象となっている階層よりも上位の階層に属するノードのうち、所定数のノードからの有向エッジを対象ノードに連結する連結処理を行う。なお、生成装置100は、処理対象となっている階層よりも上位の階層に属するノード数が、所定数に達しない場合、処理対象となっている階層よりも上位の階層に属する全ノードからの有向エッジを対象ノードに連結してもよい。図10の例では、第2階層よりも上位の階層に1つのノードN1のみしか属しないため、第2の階層のノードN2、N3には、ノードN1からの有向エッジを連結すると決定する。 In this way, the generation device 100 performs the concatenation process of concatenating the directed edges from a predetermined number of nodes, out of the nodes belonging to the layer higher than the layer being processed, to the target node. In addition, when the number of nodes belonging to a layer higher than the processing target layer does not reach a predetermined number, the generation device 100 selects from all nodes belonging to a layer higher than the processing target layer. The directed edge may be connected to the target node. In the example of FIG. 10, since only one node N1 belongs to the hierarchy higher than the second hierarchy, it is determined that the directed edges from the node N1 are connected to the nodes N2 and N3 of the second hierarchy.
そして、生成装置100は、図10中ステップS44に示すように、ノードN1からの有向エッジをノードN2に連結し、ノードN1からの有向エッジをノードN3に連結する。このように、生成装置100は、同じ階層のノードに関する連結処理を一括して行うことにより、処理の高速化を図ることができる。 Then, the generation device 100 connects the directed edge from the node N1 to the node N2 and connects the directed edge from the node N1 to the node N3, as shown in step S44 in FIG. In this way, the generation device 100 can speed up the processing by collectively performing the connection processing regarding the nodes in the same hierarchy.
そして、生成部133は、未処理ノードが有る場合(ステップS206:Yes)、設定中の階層をその直下の階層に更新し(ステップS207)、ステップS203に戻って処理を繰り返す。例えば、第2階層に属するノードN2、N3を対象ノードとして連結処理後において、生成装置100は、設定中の階層を第2階層の直下の第3階層に更新する。 Then, when there is an unprocessed node (step S206: Yes), the generation unit 133 updates the layer being set to the layer immediately below it (step S207), and returns to step S203 to repeat the process. For example, after the connection processing with the nodes N2 and N3 belonging to the second layer as the target nodes, the generation device 100 updates the layer being set to the third layer immediately below the second layer.
そして、生成部133は、未処理ノードから設定中の階層に属する対象ノードを選択する(ステップS204)。図10の例では、第2階層に属するノードN2、N3の連結処理後において、ノードN4〜N18のノードが未処理ノードとなる。 Then, the generation unit 133 selects a target node belonging to the layer being set from the unprocessed nodes (step S204). In the example of FIG. 10, after the connection processing of the nodes N2 and N3 belonging to the second layer, the nodes N4 to N18 are unprocessed nodes.
図10の例では、生成装置100は、第3階層の直近の上位の第2階層のノード数が「2」であるため、第3階層に属するノード数を「4(=2×2)」に決定する。例えば、生成装置100は、図1中ステップS45に示すように、ノードN4、N5、N6、N7の4つのノードを第3階層に属するノードとして選択する。 In the example of FIG. 10, the generation device 100 sets the number of nodes belonging to the third layer to “4 (=2×2)” because the number of nodes in the second upper layer immediately preceding the third layer is “2”. To decide. For example, the generation device 100 selects four nodes N4, N5, N6, and N7 as nodes belonging to the third layer, as shown in step S45 in FIG.
そして、生成部133は、設定中の階層よりも上位の階層に属するノード群のうち、対象ノードとの間の距離が近い方から所定数のノードからの有向エッジを対象ノードに連結する(ステップS205)。図10の例では、生成装置100は、所定数を「2」とし、設定中の階層よりも上位の階層に属するノード群のうち、対象ノードとの間の距離が近い方から2つのノードからの有向エッジを対象ノードに連結する場合を示す。 Then, the generation unit 133 connects, to the target node, the directed edges from a predetermined number of nodes in the node group belonging to a layer higher than the layer being set and having a closer distance to the target node ( Step S205). In the example of FIG. 10, the generation device 100 sets the predetermined number to “2”, and selects two nodes from a node group belonging to a layer higher than the layer being set, from a node having a closer distance to the target node. The case where the directed edge of is connected to the target node is shown.
ここで、図10中のグラフ情報GR41−2に示すように、第3階層よりも上位の階層(第1階層、第2階層)に属するノード群にはノードN1〜N3の3つが含まれる。この場合、生成装置100は、ノードN1〜N3のうち、ノードN4〜N7の各々との間の距離が近い方から2つのノードからの有向エッジを各対象ノードに連結すると決定する。例えば、生成装置100は、図10中ステップS46に示すように、ノードN2からの有向エッジをノードN4に連結すると決定し、ノードN1からの有向エッジをノードN5に連結すると決定する。また、生成装置100は、ノードN3からの有向エッジをノードN4に連結すると決定し、ノードN2からの有向エッジをノードN5に連結すると決定する。また、生成装置100は、ノードN2、N3からの有向エッジをノードN6に連結すると決定し、ノードN1、N3からの有向エッジをノードN7に連結すると決定する。 Here, as shown in the graph information GR41-2 in FIG. 10, three nodes N1 to N3 are included in the node group that belongs to a higher hierarchy (first hierarchy, second hierarchy) than the third hierarchy. In this case, the generation device 100 determines that the directed edges from the two nodes, which are closer to the nodes N4 to N7 among the nodes N1 to N3, are connected to the respective target nodes. For example, the generating device 100 determines that the directed edge from the node N2 is connected to the node N4 and the directed edge from the node N1 is connected to the node N5, as shown in step S46 in FIG. Further, the generation device 100 determines to connect the directed edge from the node N3 to the node N4 and to connect the directed edge from the node N2 to the node N5. Further, the generation device 100 determines to connect the directed edges from the nodes N2 and N3 to the node N6, and to connect the directed edges from the nodes N1 and N3 to the node N7.
そして、生成装置100は、図10中ステップS47に示すように、ステップS46で決定した有向エッジにより各ノード間を連結する。 Then, as illustrated in step S47 in FIG. 10, the generation device 100 connects the nodes by the directed edge determined in step S46.
なお、生成装置100は、対象ノードが属する階層の直近の上位の階層のみに属するノードからの有向エッジを対象ノードに連結してもよい。例えば、生成装置100は、第3階層のノードN4〜N7が対象ノードである場合、第3階層の直近の上位の階層である第2階層に属するノードN2、N3からの有向エッジを対象ノードに連結してもよい。すなわち、生成装置100は、第3階層のノードN4〜N7が対象ノードである場合、第1階層に属するノードN1を対象から除いてもよい。 Note that the generation device 100 may connect, to the target node, the directed edge from the node that belongs to only the highest hierarchy immediately adjacent to the hierarchy to which the target node belongs. For example, when the nodes N4 to N7 of the third layer are the target nodes, the generation device 100 determines the directed edges from the nodes N2 and N3 belonging to the second layer, which is the immediately upper layer of the third layer, as the target node. May be connected to. That is, when the nodes N4 to N7 of the third layer are the target nodes, the generation device 100 may exclude the node N1 belonging to the first layer from the target.
そして、生成部133は、未処理ノードが有る場合(ステップS206:Yes)、設定中の階層をその直下の階層に更新し(ステップS207)、ステップS203に戻って処理を繰り返す。例えば、第3階層に属するノードN4〜N7を対象ノードとして連結処理後において、生成装置100は、設定中の階層を第3階層の直下の第4階層に更新する。そして、生成装置100は、第3階層に属するノードN4〜N7を対象ノードとして連結処理後において、未処理ノードであるノードN8〜N18を対象ノードとして、順次連結処理を行う。このように、階層ごとに連結処理を繰り返すことにより、生成装置100は、グラフ情報GR41を生成する。 Then, when there is an unprocessed node (step S206: Yes), the generation unit 133 updates the layer being set to the layer immediately below it (step S207), and returns to step S203 to repeat the process. For example, after the linking process with the nodes N4 to N7 belonging to the third layer as the target nodes, the generation device 100 updates the layer being set to the fourth layer immediately below the third layer. Then, the generation device 100 performs the connection process sequentially with the nodes N4 to N7 belonging to the third layer as the target nodes and the nodes N8 to N18 that are unprocessed nodes as the target nodes after the connection process. In this way, the generation device 100 generates the graph information GR41 by repeating the connection process for each layer.
そして、生成部133は、未処理ノードが無い場合(ステップS206:No)、処理を終了する。例えば、生成装置100は、生成したグラフ情報を用いて種々のサービスを提供してもよい。例えば、提供部134は、生成部133により生成されたグラフ情報を外部の情報処理装置へ提供してもよい。例えば、提供部134は、グラフ情報GR41を所定の検索サービスを提供する情報処理装置へ提供してもよい。また、生成装置100が検索サービスを提供する場合、提供部134は、取得部131により端末装置から取得された検索クエリに対応する検索結果を、端末装置へ提供してもよい。 Then, when there is no unprocessed node (step S206: No), the generation unit 133 ends the process. For example, the generation device 100 may provide various services using the generated graph information. For example, the providing unit 134 may provide the graph information generated by the generating unit 133 to an external information processing device. For example, the providing unit 134 may provide the graph information GR41 to an information processing device that provides a predetermined search service. When the generating device 100 provides the search service, the providing unit 134 may provide the terminal device with the search result corresponding to the search query acquired from the terminal device by the acquisition unit 131.
例えば、生成装置100は、以下のような処理行う。例えば、生成装置100は、登録するオブジェクトに対応するノード集合(以下、「集合S」ともいう)から任意のノードを選択してルートノードとし、集合Sから除外する。そして、生成装置100は、上位層のノード数n(i−1)から当該層のノード数n(i)を算出する。ここでいう、「ノード数n(*)」の「関数n()」は「*(任意の数値)」の階層に対応するノード数を出力する関数を意味する。例えば、「n(2)」は、第2階層のノード数(図8の例では、「2」)に対応する。例えば、生成装置100は、「n(i)=n(i−1)×2」の関係を満たすような「関数n()」を用いてもよい。 For example, the generation device 100 performs the following processing. For example, the generation device 100 selects an arbitrary node from a node set (hereinafter, also referred to as “set S”) corresponding to an object to be registered as a root node and excludes it from the set S. Then, the generation device 100 calculates the node number n(i) of the layer from the node number n(i-1) of the upper layer. Here, the "function n()" of "the number of nodes n(*)" means a function that outputs the number of nodes corresponding to the hierarchy of "* (arbitrary numerical value)". For example, “n(2)” corresponds to the number of nodes in the second layer (“2” in the example of FIG. 8). For example, the generation device 100 may use the “function n()” that satisfies the relationship of “n(i)=n(i−1)×2”.
そして、生成装置100は、n(i)個のオブジェクトを集合Sから任意に選択して、サブ集合Lとし、当該層のノードとした上で、集合Sからサブ集合Lに属するノードを除外する。そして、生成装置100は、サブ集合Lから任意の1オブジェクト(ノード)を取得する。当該層のノードを除外した、すなわち、上位層以上ノードからk個のノードを近傍検索し、k個の検索されたノードから当該のノードへエッジ(リンク)をこの時点では設定せずに、設定情報として記録する。 Then, the generation device 100 arbitrarily selects n(i) objects from the set S to form a sub-set L, sets them as nodes of the layer, and excludes nodes belonging to the sub-set L from the set S. .. Then, the generation device 100 acquires any one object (node) from the sub-set L. Excluding the node of the layer, that is, performing a neighborhood search for k nodes from the nodes above the upper layer, and setting an edge (link) from the k searched nodes to the node at this point without setting Record as information.
そして、生成装置100は、サブ集合Lが空でなければサブ集合Lから任意の1ノードを取得し、上述した設定情報を記憶する処理を繰り返す。また、生成装置100は、サブ集合Lが空であれば記録されたエッジの設定情報を元に1階層分のエッジを設定する。 Then, the generation device 100 repeats the process of acquiring any one node from the sub-set L and storing the above-mentioned setting information if the sub-set L is not empty. If the sub-set L is empty, the generation device 100 sets an edge for one layer based on the recorded edge setting information.
そして、生成装置100は、集合Sが空でなければ1階層くだった上で、新たにサブ集合Lを選択する処理から処理を、集合Sが空になるまで、繰り返す。このように、生成装置100は、階層を1階層ずつ追加するため、生成されるグラフ情報における最大深さが保証される。 If the set S is not empty, the generator 100 repeats the process from selecting a new sub-set L until the set S becomes empty, after descending by one layer. As described above, since the generation device 100 adds layers one by one, the maximum depth in the generated graph information is guaranteed.
〔4.検索例〕
ここで、上述したグラフ情報を用いた検索の一例を示す。なお、生成したグラフ情報を用いた検索は下記に限らず、種々の手順により行われてもよい。この点について、図11を一例として説明する。図11は、グラフ情報を用いた検索処理の一例を示すフローチャートである。また、以下でいうオブジェクトは、ノードと読み替えてもよい。なお、以下では、生成装置100が検索処理を行うものとして説明するが、検索処理は他の装置により行われてもよい。
[4. Search example)
Here, an example of the search using the above-mentioned graph information will be shown. The search using the generated graph information is not limited to the following, and may be performed by various procedures. This point will be described with reference to FIG. 11 as an example. FIG. 11 is a flowchart showing an example of a search process using graph information. Further, the object described below may be read as a node. In the following description, the generation device 100 is described as performing the search process, but the search process may be performed by another device.
ここでは、近傍オブジェクト集合N(G,y)は、ノードyに付与されているエッジにより関連付けられている近傍のオブジェクトの集合である。「G」は、所定のグラフ情報(例えば、グラフ情報GR11やグラフ情報GR41等)であってもよい。例えば、生成装置100は、k近傍検索処理を実行する。 Here, the neighborhood object set N(G, y) is a set of neighborhood objects that are related by the edge assigned to the node y. “G” may be predetermined graph information (for example, the graph information GR11 or the graph information GR41). For example, the generation device 100 executes a k-nearest neighbor search process.
例えば、生成装置100は、超球の半径rを∞(無限大)に設定し(ステップS300)、既存のオブジェクト集合から部分集合Sを抽出する(ステップS301)。例えば、生成装置100は、ルートノードとして選択されたオブジェクト(ノード)を部分集合Sとして抽出してもよい。また、例えば、超球とは、検索範囲を示す仮想的な球である。なお、ステップS301において抽出されたオブジェクト集合Sに含まれるオブジェクトは、同時に検索結果のオブジェクト集合Rの初期集合にも含められる。 For example, the generation device 100 sets the radius r of the hypersphere to ∞ (infinity) (step S300) and extracts the subset S from the existing object set (step S301). For example, the generation device 100 may extract the object (node) selected as the root node as the subset S. Further, for example, the hypersphere is a virtual sphere that indicates the search range. The objects included in the object set S extracted in step S301 are also included in the initial set of the object set R as the search result at the same time.
次に、生成装置100は、オブジェクト集合Sに含まれるオブジェクトの中で、検索クエリオブジェクトをyとするとオブジェクトyとの距離が最も短いオブジェクトを抽出し、オブジェクトsとする(ステップS302)。例えば、生成装置100は、ルートノードとして選択されたオブジェクト(ノード)のみがSの要素の場合には、結果的にルートノードがオブジェクトsとして抽出される。次に、生成装置100は、オブジェクトsをオブジェクト集合Sから除外する(ステップS303)。 Next, the generation device 100 extracts an object having the shortest distance from the object y when the search query object is y among the objects included in the object set S and sets it as an object s (step S302). For example, when only the object (node) selected as the root node is the element of S, the generation device 100 consequently extracts the root node as the object s. Next, the generation device 100 excludes the object s from the object set S (step S303).
次に、生成装置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 generation device 100 determines whether or not the distance d(s, y) between the object s and the object y exceeds r(1+ε) (step S304). Here, ε is an expansion element, and r(1+ε) is a value indicating the radius of the search range (only the nodes within this range are searched. The accuracy can be improved by making it larger than the search range). is there. When the distance d(s, y) between the object s and the object y exceeds r(1+ε) (step S304: Yes), the generation device 100 outputs the object set R as a neighboring object set of the object y (step S305). ), the processing ends.
オブジェクト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 generation device 100 sets the neighborhood object set N(G, s) of the object s. One object that is not included in the object set C is selected from the objects that are the elements, and the selected object u is stored in the object set C (step S306). The object set C is provided for convenience in order to avoid duplicate search, and is set to an empty set at the start of processing.
次に、生成装置100は、オブジェクトuとオブジェクトyとの距離d(u,y)がr(1+ε)以下であるか否かを判定する(ステップS307)。オブジェクトuとオブジェクトyとの距離d(u,y)がr(1+ε)以下である場合(ステップ307:Yes)、生成装置100は、オブジェクトuをオブジェクト集合Sに追加する(ステップS308)。 Next, the generation device 100 determines whether or not the distance d(u, y) between the object u and the object y is equal to or smaller than r(1+ε) (step S307). When the distance d(u, y) between the object u and the object y is equal to or less than r(1+ε) (step 307: Yes), the generation device 100 adds the object u to the object set S (step S308).
次に、生成装置100は、オブジェクトuとオブジェクトyとの距離d(u,y)がr以下であるか否かを判定する(ステップS309)。オブジェクトuとオブジェクトyとの距離d(u,y)がrを超える場合(ステップS309:No)、生成装置100は、ステップS315の判定(処理)を行う。 Next, the generation device 100 determines whether or not the distance d(u, y) between the object u and the object y is equal to or less than r (step S309). When the distance d(u, y) between the object u and the object y exceeds r (step S309: No), the generation device 100 performs the determination (process) of step S315.
オブジェクトuとオブジェクトyとの距離d(u,y)がr以下である場合(ステップS309:Yes)、生成装置100は、オブジェクトuをオブジェクト集合Rに追加する(ステップS310)。そして、生成装置100は、オブジェクト集合Rに含まれるオブジェクト数がksを超えるか否かを判定する(ステップS311)。所定数ksは、任意に定められる自然数である。例えば、ks=2であってもよい。 When the distance d(u, y) between the object u and the object y is equal to or smaller than r (step S309: Yes), the generation device 100 adds the object u to the object set R (step S310). Then, the generation device 100 determines whether the number of objects included in the object set R exceeds ks (step S311). The predetermined number ks is a natural number that is arbitrarily determined. For example, ks=2 may be used.
オブジェクト集合Rに含まれるオブジェクト数がksを超える場合(ステップS311:Yes)、生成装置100は、オブジェクト集合Rに含まれるオブジェクトの中でオブジェクトyとの距離が最も長いオブジェクトを、オブジェクト集合Rから除外する(ステップS312)。 When the number of objects included in the object set R exceeds ks (step S311: Yes), the generation device 100 selects from the object set R the object that has the longest distance to the object y among the objects included in the object set R. It is excluded (step S312).
次に、生成装置100は、オブジェクト集合Rに含まれるオブジェクト数がksと一致するか否かを判定する(ステップS313)。オブジェクト集合Rに含まれるオブジェクト数がksと一致する場合(ステップS313:Yes)、生成装置100は、オブジェクト集合Rに含まれるオブジェクトの中でオブジェクトyとの距離が最も長いオブジェクトと、オブジェクトyとの距離を、新たなrに設定する(ステップS314)。 Next, the generation device 100 determines whether the number of objects included in the object set R matches ks (step S313). When the number of objects included in the object set R is equal to ks (step S313: Yes), the generation device 100 determines that among the objects included in the object set R, the object having the longest distance from the object y and the object y. Is set to a new r (step S314).
そして、生成装置100は、オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えたか否かを判定する(ステップS315)。オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えていない場合、生成装置100は、ステップS306に戻って処理を繰り返す。 Then, the generation device 100 determines whether or not all the objects have been selected from the objects that are the elements of the neighboring object set N(G,s) of the object s and stored in the object set C (step S315). When all the objects have not been selected from the objects that are the elements of the neighboring object set N(G,s) of the object s and stored in the object set C, the generation device 100 returns to step S306 and repeats the processing.
オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えた場合生成装置100は、オブジェクト集合Sが空集合であるか否かを判定する(ステップS316)。オブジェクト集合Sが空集合でない場合、生成装置100は、ステップS302に戻って処理を繰り返す。また、オブジェクト集合Sが空集合である場合(ステップS316:Yes)、生成装置100は、オブジェクト集合Rを出力し、処理を終了する(ステップS317)。例えば、生成装置100は、オブジェクト集合Rに含まれるオブジェクト(ノード)を検索クエリ(入力オブジェクトy)に対応する検索結果として、検索を行った端末装置等へ提供してもよい。 When all objects have been selected from the objects that are the elements of the neighboring object set N(G,s) of the object s and stored in the object set C, the generation device 100 determines whether the object set S is an empty set. Is determined (step S316). When the object set S is not an empty set, the generation device 100 returns to step S302 and repeats the processing. When the object set S is an empty set (step S316: Yes), the generation device 100 outputs the object set R and ends the process (step S317). For example, the generation device 100 may provide an object (node) included in the object set R as a search result corresponding to the search query (input object y) to the terminal device or the like that has performed the search.
〔5.効果〕
上述したように、生成装置100は、データ検索における検索対象の各々に対応する複数のノードを含むノード群を取得する。そして、生成装置100は、取得したノード群のうち、所定のノードを検索時に最初の起点として用いるルートノードとして選択する。そして、生成装置100は、ノード群のうち、ルートノード、及びルートノードから有向エッジを辿ることにより到達可能なノードを含む処理済ノード群以外のノードを対象ノードとして選択し、処理済ノード群のうち、所定数のノードからの有向エッジを対象ノードに連結する連結処理により、グラフ情報を生成する。このため、生成装置100は、所定の対象に関する効率的な検索を可能にするグラフ情報を生成することができる。
[5. effect〕
As described above, the generation device 100 acquires a node group including a plurality of nodes corresponding to each search target in data search. Then, the generation device 100 selects a predetermined node from the acquired node group as the root node to be used as the first starting point when searching. Then, the generation device 100 selects a node other than the processed node group including the root node and the nodes reachable by tracing the directed edge from the root node as the target node, and the processed node group Among them, the graph information is generated by the connecting process of connecting the directed edges from the predetermined number of nodes to the target node. Therefore, the generation device 100 can generate graph information that enables an efficient search for a predetermined target.
また、生成装置100は、処理済ノード群のうち、対象ノードからの距離に応じて選択される所定数のノードからの有向エッジを対象ノードに連結する連結処理により、グラフ情報を生成する。このため、生成装置100は、ノード間の距離に応じて有向エッジを連結することにより、所定の対象に関する効率的な検索を可能にするグラフ情報を生成することができる。 Further, the generation device 100 generates graph information by a connection process of connecting directed edges from a predetermined number of nodes selected according to the distance from the target node in the processed node group to the target node. Therefore, the generation device 100 can generate graph information that enables an efficient search for a predetermined target by connecting the directed edges according to the distance between the nodes.
また、生成装置100は、処理済ノード群のうち、対象ノードとの間の距離が近い方から所定数のノードからの有向エッジを対象ノードに連結する連結処理により、グラフ情報を生成する。このため、生成装置100は、距離が近いエッジ間を有向エッジで連結することにより、所定の対象に関する効率的な検索を可能にするグラフ情報を生成することができる。 In addition, the generation device 100 generates graph information by a connection process that connects directed edges from a predetermined number of nodes from the closer distance to the target node in the processed node group to the target node. Therefore, the generation device 100 can generate graph information that enables an efficient search for a predetermined target by connecting edges having a short distance with a directed edge.
また、生成装置100は、連結処理の繰り返しにおいて、連結処理の回数に応じて増加する階層に属するノードとして、対象ノードに有向エッジを連結する連結処理により、グラフ情報を生成する。このため、生成装置100は、階層構造を有するグラフ情報を生成することにより、所定の対象に関する効率的な検索を可能にするグラフ情報を生成することができる。 In addition, in the repetition of the connection process, the generation device 100 generates the graph information by the connection process that connects the directed edge to the target node as a node that belongs to a layer that increases according to the number of times of the connection process. Therefore, the generation device 100 can generate graph information having a hierarchical structure to generate graph information that enables an efficient search for a predetermined target.
また、生成装置100は、ルートノードを最上位の階層のノードとし、対象ノードの階層を処理済ノード群のノードの階層よりも下位の階層のノードとする連結処理により、グラフ情報を生成する。このため、生成装置100は、階層構造に基づいてエッジの連結を行うことにより、所定の対象に関する効率的な検索を可能にするグラフ情報を生成することができる。 In addition, the generation device 100 generates graph information by the concatenation process in which the root node is the node of the highest layer and the layer of the target node is the node of the layer lower than the layer of the nodes of the processed node group. Therefore, the generation device 100 can generate graph information that enables an efficient search for a predetermined target by connecting edges based on a hierarchical structure.
また、生成装置100は、階層数が所定の閾値以下となるように、連結処理を行うことにより、グラフ情報を生成する。このため、生成装置100は、階層数が所定の範囲内に収まるように生成処理を行うことにより、所定の対象に関する効率的な検索を可能にするグラフ情報を生成することができる。 In addition, the generation device 100 generates the graph information by performing the connection process so that the number of layers becomes equal to or less than the predetermined threshold. Therefore, the generation device 100 can generate graph information that enables an efficient search for a predetermined target by performing a generation process so that the number of layers falls within a predetermined range.
また、生成装置100は、階層数が所定の閾値以下となるように各連結処理において対象ノードの数を決定することにより、グラフ情報を生成する。このため、生成装置100は、階層数が所定の範囲内に収まるように各階層のノード数を決定することにより、所定の対象に関する効率的な検索を可能にするグラフ情報を生成することができる。 In addition, the generation device 100 generates graph information by determining the number of target nodes in each connection process so that the number of layers becomes equal to or less than a predetermined threshold. Therefore, the generation device 100 can generate graph information that enables an efficient search for a predetermined target by determining the number of nodes in each hierarchy so that the number of layers falls within a predetermined range. ..
また、生成装置100は、階層の各々に含まれるノードの数が変動するようにグラフ情報を生成する。このため、生成装置100は、階層の各々に含まれるノードの数が変動させることにより、所定の対象に関する効率的な検索を可能にするグラフ情報を生成することができる。 In addition, the generation device 100 generates the graph information so that the number of nodes included in each hierarchy changes. Therefore, the generation device 100 can generate graph information that enables an efficient search for a predetermined target by changing the number of nodes included in each hierarchy.
また、生成装置100は、対象ノードが属する階層よりも上位の階層に属するノードからの有向エッジを対象ノードに連結することにより、グラフ情報を生成する。このため、生成装置100は、階層構造に基づいてエッジの連結を行うことにより、所定の対象に関する効率的な検索を可能にするグラフ情報を生成することができる。 In addition, the generation device 100 generates graph information by connecting the directed edges from the nodes belonging to the hierarchy higher than the hierarchy to which the target node belongs to the target node. Therefore, the generation device 100 can generate graph information that enables an efficient search for a predetermined target by connecting edges based on a hierarchical structure.
また、生成装置100は、対象ノードが属する階層の直近の上位の階層に属するノードからの有向エッジを対象ノードに連結することにより、グラフ情報を生成する。このため、生成装置100は、階層構造に基づいてエッジの連結を行うことにより、所定の対象に関する効率的な検索を可能にするグラフ情報を生成することができる。 In addition, the generation device 100 generates graph information by connecting the directed edge from the node belonging to the next higher hierarchy to the target node to the target node. Therefore, the generation device 100 can generate graph information that enables an efficient search for a predetermined target by connecting edges based on a hierarchical structure.
また、生成装置100は、連結処理を、ノード群において他のノードに連結されていない未処理ノードがなくなるまで繰り返すことにより、グラフ情報を生成する。このため、生成装置100は、エッジによりルートノードから全ノードへ到達可能なグラフ情報を生成することができる。 Further, the generation device 100 generates the graph information by repeating the connection process until there are no unprocessed nodes in the node group that are not connected to other nodes. Therefore, the generation device 100 can generate graph information that can reach all nodes from the root node by the edge.
また、生成装置100は、ノード群のうち、一のノードをルートノードとして選択する。このため、生成装置100は、ルートノードを1つにすることにより、データ量の増大を抑制しつつ、所定の対象に関する効率的な検索を可能にするグラフ情報を生成することができる。 Further, the generation device 100 selects one node from the node group as the root node. For this reason, the generation device 100 can generate the graph information that enables an efficient search for a predetermined target while suppressing an increase in the amount of data by using one root node.
また、生成装置100は、ノード群のうち、複数のノードをルートノードとして選択する。このため、生成装置100は、ルートノードを複数にすることにより、所定の対象に関する効率的な検索を可能にするグラフ情報を生成することができる。例えば、生成装置100は、複数の起点から並列して検索を行うことができるため、検索精度の向上を図ることが可能となる。 Further, the generation device 100 selects a plurality of nodes as the root node from the node group. Therefore, the generation device 100 can generate graph information that enables an efficient search for a predetermined target by using a plurality of root nodes. For example, since the generation device 100 can perform a search in parallel from a plurality of starting points, it is possible to improve the search accuracy.
また、生成装置100は、対象ノードが複数のルートノードの各々に対応する複数のグラフ情報のいずれかに含まれるように連結処理を行うことにより、複数のルートノードの各々に対応する複数のグラフ情報を生成することにより、検索精度の向上を図ることが可能となる。 In addition, the generation device 100 performs a concatenation process such that the target node is included in any of the plurality of pieces of graph information corresponding to each of the plurality of root nodes, so that the plurality of graphs corresponding to each of the plurality of root nodes are generated. By generating the information, it is possible to improve the search accuracy.
また、生成装置100は、処理済ノード群以外のノードのうち、一の連結処理の直前の連結処理における対象ノードに対して最も近いノード、または、一の連結処理の直前の連結処理における対象ノードに対して最も遠いノードを、一の連結処理における対象ノードとして選択することにより、検索処理の高速化が期待できる。 Further, the generation device 100 may be configured such that, among the nodes other than the processed node group, the node closest to the target node in the concatenation process immediately before the one concatenation process or the target node in the concatenation process immediately before the one concatenation process. By selecting the farthest node as the target node in the one concatenation process, it is expected to speed up the search process.
また、生成装置100は、処理済ノード群に関するインデックス情報を用いて対象ノードの近傍検索を行うことにより、グラフ情報を生成することにより、検索時と同様の近傍検索の処理を行うことにより、高速化することができる。 Further, the generation device 100 generates the graph information by performing the neighborhood search of the target node using the index information regarding the processed node group, thereby performing the neighborhood search processing similar to that at the time of the search, thereby performing high-speed processing. Can be converted.
また、上記実施形態及び変形例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。 Further, among the respective processes described in the above-described embodiment and modification, all or part of the processes described as being automatically performed may be manually performed, or described as manually performed. It is also possible to automatically carry out all or part of the processing performed by a known method. In addition, the processing procedures, specific names, information including various data and parameters shown in the above-mentioned documents and drawings can be arbitrarily changed unless otherwise specified. For example, the various kinds of information shown in each drawing are not limited to the illustrated information.
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。 Further, each constituent element of each illustrated device is functionally conceptual, and does not necessarily have to be physically configured as illustrated. That is, the specific form of distribution/integration of each device is not limited to that shown in the figure, and all or a part of the device may be functionally or physically distributed/arranged in arbitrary units according to various loads or usage conditions. It can be integrated and configured.
また、上述してきた実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。 Further, the above-described embodiments and modified examples can be appropriately combined within a range in which the processing content is not inconsistent.
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。 Also, the above-mentioned "section (module, unit)" can be read as "means" or "circuit". For example, the acquisition unit can be read as an acquisition unit or an acquisition circuit.
1 情報処理システム
100 生成装置
121 オブジェクト情報記憶部
122 グラフ情報記憶部
130 制御部
131 取得部
132 選択部
133 生成部
134 提供部
N ネットワーク
1 Information Processing System 100
Claims (18)
前記取得部により取得されたノード群のうち、所定のノードを検索時に最初の起点として用いるルートノードとして選択する選択部と、
前記ノード群のうち、前記ルートノード、及び前記ルートノードから有向エッジを辿ることにより到達可能なノードを含む処理済ノード群以外のノードを対象ノードとして選択し、前記処理済ノード群のうち、所定数のノードからの有向エッジを前記対象ノードに連結する連結処理により、グラフ情報を生成する生成部と、
を備えることを特徴とする生成装置。 An acquisition unit that acquires a node group including a plurality of nodes corresponding to each of the search targets in the data search,
Of the node group acquired by the acquisition unit, a selection unit that selects a predetermined node as a root node to be used as a starting point at the time of searching,
Of the node group, the root node, and select a node other than the processed node group including a node reachable by tracing a directed edge from the root node as a target node, among the processed node group, A generation unit that generates graph information by a connection process that connects directed edges from a predetermined number of nodes to the target node,
A generating device comprising:
前記処理済ノード群のうち、前記対象ノードからの距離に応じて選択される所定数のノードからの有向エッジを前記対象ノードに連結する連結処理により、前記グラフ情報を生成する
ことを特徴とする請求項1に記載の生成装置。 The generator is
The graph information is generated by a connection process of connecting directed edges from a predetermined number of nodes selected according to the distance from the target node from the processed node group to the target node. The generating device according to claim 1.
前記処理済ノード群のうち、前記対象ノードとの間の距離が近い方から所定数のノードからの有向エッジを前記対象ノードに連結する連結処理により、前記グラフ情報を生成する
ことを特徴とする請求項2に記載の生成装置。 The generator is
The graph information is generated by a connection process of connecting directional edges from a predetermined number of nodes from the closer distance to the target node in the processed node group to the target node. The generating device according to claim 2.
前記連結処理の繰り返しにおいて、前記連結処理の回数に応じて増加する階層に属するノードとして、前記対象ノードに前記有向エッジを連結する連結処理により、前記グラフ情報を生成する
ことを特徴とする請求項1〜3のいずれか1項に記載の生成装置。 The generator is
In the repetition of the connection processing, the graph information is generated by the connection processing of connecting the directed edge to the target node as a node belonging to a hierarchy that increases according to the number of times of the connection processing. Item 4. The generation device according to any one of Items 1 to 3.
前記ルートノードを最上位の階層のノードとし、前記対象ノードの階層を前記処理済ノード群のノードの階層よりも下位の階層のノードとする前記連結処理により、前記グラフ情報を生成する
ことを特徴とする請求項4に記載の生成装置。 The generator is
The graph information is generated by the concatenation process in which the root node is a node in the highest hierarchy and the hierarchy of the target node is a node in a hierarchy lower than the hierarchy of the nodes in the processed node group. The generating device according to claim 4.
前記階層数が所定の閾値以下となるように、前記連結処理を行うことにより、前記グラフ情報を生成する
ことを特徴とする請求項4または請求項5に記載の生成装置。 The generator is
The generation device according to claim 4 or 5, wherein the graph information is generated by performing the connection processing so that the number of layers becomes equal to or less than a predetermined threshold.
前記階層数が所定の閾値以下となるように各連結処理において前記対象ノードの数を決定することにより、前記グラフ情報を生成する
ことを特徴とする請求項6に記載の生成装置。 The generator is
The generation device according to claim 6, wherein the graph information is generated by determining the number of the target nodes in each connection process so that the number of layers becomes equal to or less than a predetermined threshold value.
前記階層の各々に含まれるノードの数が変動するように前記グラフ情報を生成する
ことを特徴とする請求項4〜7のいずれか1項に記載の生成装置。 The generator is
The generation device according to claim 4, wherein the graph information is generated so that the number of nodes included in each of the layers changes.
前記対象ノードが属する階層よりも上位の階層に属するノードからの有向エッジを前記対象ノードに連結することにより、前記グラフ情報を生成する
ことを特徴とする請求項4〜8のいずれか1項に記載の生成装置。 The generator is
9. The graph information is generated by connecting a directed edge from a node belonging to a hierarchy higher than the hierarchy to which the target node belongs to the target node, to generate the graph information. The generating device according to.
前記対象ノードが属する階層の直近の上位の階層に属するノードからの有向エッジを前記対象ノードに連結することにより、前記グラフ情報を生成する
ことを特徴とする請求項9に記載の生成装置。 The generator is
The generation device according to claim 9, wherein the graph information is generated by connecting a directed edge from a node that belongs to a hierarchy immediately above the hierarchy to which the target node belongs to the target node.
前記連結処理を、前記ノード群において他のノードに連結されていない未処理ノードがなくなるまで繰り返すことにより、前記グラフ情報を生成する
ことを特徴とする請求項1〜10のいずれか1項に記載の生成装置。 The generator is
The graph information is generated by repeating the linking process until there are no unprocessed nodes that are not linked to other nodes in the node group. Generator.
前記ノード群のうち、一のノードを前記ルートノードとして選択する
ことを特徴とする請求項1〜11のいずれか1項に記載の生成装置。 The selection unit,
The generation device according to claim 1, wherein one of the node groups is selected as the root node.
前記ノード群のうち、複数のノードを前記ルートノードとして選択する
ことを特徴とする請求項1〜11のいずれか1項に記載の生成装置。 The selection unit,
The generation device according to claim 1, wherein a plurality of nodes are selected as the root node from the node group.
前記対象ノードが複数のルートノードの各々に対応する複数のグラフ情報のいずれかに含まれるように連結処理を行うことにより、前記複数のルートノードの各々に対応する前記複数のグラフ情報を生成する
ことを特徴とする請求項13に記載の生成装置。 The generator is
Generating the plurality of graph information corresponding to each of the plurality of root nodes by performing the connection processing so that the target node is included in any of the plurality of graph information corresponding to each of the plurality of root nodes The generating device according to claim 13, wherein
前記処理済ノード群以外のノードのうち、一の連結処理の直前の連結処理における対象ノードに対して最も近いノード、または、前記一の連結処理の直前の連結処理における対象ノードに対して最も遠いノードを、前記一の連結処理における対象ノードとして選択する
ことを特徴とする請求項1〜14のいずれか1項に記載の生成装置。 The generator is
Of the nodes other than the processed node group, the node closest to the target node in the connection process immediately before the one connection process or the farthest from the target node in the connection process immediately before the one connection process. The node is selected as a target node in the one concatenation process. The generating device according to any one of claims 1 to 14.
前記処理済ノード群に関するインデックス情報を用いて前記対象ノードの近傍検索を行うことにより、前記グラフ情報を生成する
ことを特徴とする請求項1〜15のいずれか1項に記載の生成装置。 The generator is
The generation device according to claim 1, wherein the graph information is generated by performing a neighborhood search of the target node using index information regarding the processed node group.
データ検索における検索対象の各々に対応する複数のノードを含むノード群を取得する取得工程と、
前記取得工程により取得されたノード群のうち、所定のノードを検索時に最初の起点として用いるルートノードとして選択する選択工程と、
前記ノード群のうち、前記ルートノード、及び前記ルートノードから有向エッジを辿ることにより到達可能なノードを含む処理済ノード群以外のノードを対象ノードとして選択し、前記処理済ノード群のうち、所定数のノードからの有向エッジを前記対象ノードに連結する連結処理により、グラフ情報を生成する生成工程と、
を含むことを特徴とする生成方法。 A computer-implemented generation method,
An acquisition step of acquiring a node group including a plurality of nodes corresponding to respective search targets in the data search;
A selection step of selecting a predetermined node as a root node to be used as a starting point at the time of searching from the node group acquired by the acquisition step;
Of the node group, the root node, and select a node other than the processed node group including a node reachable by tracing a directed edge from the root node as a target node, among the processed node group, A generation step of generating graph information by a connection process of connecting directed edges from a predetermined number of nodes to the target node;
A generating method comprising:
前記取得手順により取得されたノード群のうち、所定のノードを検索時に最初の起点として用いるルートノードとして選択する選択手順と、
前記ノード群のうち、前記ルートノード、及び前記ルートノードから有向エッジを辿ることにより到達可能なノードを含む処理済ノード群以外のノードを対象ノードとして選択し、前記処理済ノード群のうち、所定数のノードからの有向エッジを前記対象ノードに連結する連結処理により、グラフ情報を生成する生成手順と、
をコンピュータに実行させることを特徴とする生成プログラム。 An acquisition procedure for acquiring a node group including a plurality of nodes corresponding to respective search targets in data search,
Of the node group acquired by the acquisition procedure, a selection procedure for selecting a predetermined node as a root node to be used as a starting point at the time of search,
Of the node group, the root node, and select a node other than the processed node group including a node reachable by tracing a directed edge from the root node as a target node, among the processed node group, A generation procedure of generating graph information by a connection process of connecting directed edges from a predetermined number of nodes to the target node,
A generation program characterized by causing a computer to execute.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017053440A JP6705764B2 (en) | 2017-03-17 | 2017-03-17 | Generation device, generation method, and generation program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017053440A JP6705764B2 (en) | 2017-03-17 | 2017-03-17 | Generation device, generation method, and generation program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018156458A JP2018156458A (en) | 2018-10-04 |
JP6705764B2 true JP6705764B2 (en) | 2020-06-03 |
Family
ID=63716625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017053440A Active JP6705764B2 (en) | 2017-03-17 | 2017-03-17 | Generation device, generation method, and generation program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6705764B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7273609B2 (en) * | 2019-05-08 | 2023-05-15 | ヤフー株式会社 | Information processing device, information processing method, and information processing program |
JP7121706B2 (en) * | 2019-08-06 | 2022-08-18 | ヤフー株式会社 | Information processing device, information processing method, and information processing program |
JP7122293B2 (en) * | 2019-08-06 | 2022-08-19 | ヤフー株式会社 | Information processing device, information processing method, and information processing program |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5014398B2 (en) * | 2009-10-20 | 2012-08-29 | ヤフー株式会社 | Search data management device |
JP6068568B1 (en) * | 2015-07-08 | 2017-01-25 | ヤフー株式会社 | Modified k nearest neighbor graph generation device and method of operating modified k nearest neighbor graph generation device |
-
2017
- 2017-03-17 JP JP2017053440A patent/JP6705764B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2018156458A (en) | 2018-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111460311A (en) | Search processing method, device and equipment based on dictionary tree and storage medium | |
JP6608972B2 (en) | Method, device, server, and storage medium for searching for group based on social network | |
US10191998B1 (en) | Methods of data reduction for parallel breadth-first search over graphs of connected data elements | |
JP6705764B2 (en) | Generation device, generation method, and generation program | |
JPWO2011070980A1 (en) | Dictionary creation device, word collection method, and program | |
JP2019057082A (en) | Data retrieval system, data retrieving method, and program | |
US11809494B2 (en) | Information processing apparatus and information processing method | |
CN105488176A (en) | Data processing method and device | |
JP6959164B2 (en) | Generation device, generation method, and generation program | |
JP7080803B2 (en) | Information processing equipment, information processing methods, and information processing programs | |
US10198529B2 (en) | Apparatus and method of processing graphic data using index based triangle listing | |
JP6311000B1 (en) | Generating device, generating method, and generating program | |
CN112434031A (en) | Uncertain high-utility mode mining method based on information entropy | |
CN109241360B (en) | Matching method and device of combined character strings and electronic equipment | |
JP7353737B2 (en) | Information processing device, information processing method, and information processing program | |
CN103345509B (en) | Obtain the level partition tree method and system of the most farthest multiple neighbours on road network | |
JP4440246B2 (en) | Spatial index method | |
JP2018206084A (en) | Database management system and database management method | |
JP6293335B1 (en) | Generating device, generating method, and generating program | |
JP2013242675A (en) | Dispersion information control device, dispersion information search method, data dispersion arrangement method and program | |
JP2020184235A (en) | Information processing device, information processing method, and information processing program | |
JP7121706B2 (en) | Information processing device, information processing method, and information processing program | |
JP2020187644A (en) | Information processor, method for processing information, and information processing program | |
CN116340354A (en) | Data query method, device, computer equipment and computer readable storage medium | |
JP6498266B2 (en) | Generating device, generating method, and generating program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190325 |
|
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 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200317 |
|
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: 20200414 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200514 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6705764 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
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 |