[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP7080803B2 - Information processing equipment, information processing methods, and information processing programs - Google Patents

Information processing equipment, information processing methods, and information processing programs Download PDF

Info

Publication number
JP7080803B2
JP7080803B2 JP2018216705A JP2018216705A JP7080803B2 JP 7080803 B2 JP7080803 B2 JP 7080803B2 JP 2018216705 A JP2018216705 A JP 2018216705A JP 2018216705 A JP2018216705 A JP 2018216705A JP 7080803 B2 JP7080803 B2 JP 7080803B2
Authority
JP
Japan
Prior art keywords
node
graph
information processing
processing apparatus
information
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
Application number
JP2018216705A
Other languages
Japanese (ja)
Other versions
JP2020086662A (en
Inventor
雅二郎 岩崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yahoo Japan Corp
Original Assignee
Yahoo Japan Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yahoo Japan Corp filed Critical Yahoo Japan Corp
Priority to JP2018216705A priority Critical patent/JP7080803B2/en
Publication of JP2020086662A publication Critical patent/JP2020086662A/en
Application granted granted Critical
Publication of JP7080803B2 publication Critical patent/JP7080803B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、情報処理装置、情報処理方法、及び情報処理プログラムに関する。 The present invention relates to an information processing apparatus, an information processing method, and an information processing program.

従来、種々の情報を探索(検索)する技術が提供されている。例えば、所定の対象に関する検索を行うために、検索対象に対応するノードが有向エッジにより連結されたグラフデータを生成する技術が提供されている。また、このような技術は、例えば画像検索等に用いられる。 Conventionally, a technique for searching (searching) various information has been provided. For example, there is provided a technique for generating graph data in which nodes corresponding to a search target are connected by directed edges in order to perform a search for a predetermined target. Further, such a technique is used, for example, for image retrieval and the like.

特許第6293335号公報Japanese Patent No. 6293335 特許第6300982号公報Japanese Patent No. 630982

しかしながら、上記の従来技術では、検索に用いるグラフを適切に生成することが難しい場合がある。例えば、グラフを構成するノード(オブジェクト)の傾向等に関わらず、グラフの生成時においてノード間を連結するエッジ数が所定値に設定されている場合、効率的な検索を可能にするグラフが生成できるとは限らない。 However, with the above-mentioned prior art, it may be difficult to appropriately generate a graph used for searching. For example, regardless of the tendency of the nodes (objects) that make up the graph, if the number of edges connecting the nodes is set to a predetermined value when the graph is generated, a graph that enables efficient search is generated. It is not always possible.

本願は、上記に鑑みてなされたものであって、検索に用いるグラフを適切に生成する情報処理装置、情報処理方法、及び情報処理プログラムを提供することを目的とする。 The present application has been made in view of the above, and an object of the present application is to provide an information processing apparatus, an information processing method, and an information processing program for appropriately generating a graph used for a search.

本願に係る情報処理装置は、データ検索の対象となる一のオブジェクトと、前記一のオブジェクトとは異なる他のオブジェクトの各々に対応する複数のノード、及びノード間を連結する有向エッジを含む第1グラフとを取得する取得部と、前記第1グラフに基づいて、前記複数のノードのうち、前記一のオブジェクトに対応する一のノードの近傍に位置する近傍ノードを選択する選択部と、前記一のノードを前記第1グラフに追加し、前記有向エッジの連結に関し、所定の条件により変更される連結条件に基づいて、前記一のノードと前記近傍ノードとの間を前記有向エッジにより連結した第2グラフを生成する生成部と、を備えたことを特徴とする。 The information processing apparatus according to the present application includes a single object to be searched for data, a plurality of nodes corresponding to each of other objects different from the one object, and a directed edge connecting the nodes. An acquisition unit for acquiring one graph, a selection unit for selecting a neighboring node located in the vicinity of one node corresponding to the one object among the plurality of nodes based on the first graph, and the above-mentioned One node is added to the first graph, and with respect to the connection of the directed edges, the directed edge is used between the one node and the neighboring node based on the connection condition changed by a predetermined condition. It is characterized by having a generation unit for generating a concatenated second graph.

実施形態の一態様によれば、検索に用いるグラフを適切に生成することができるという効果を奏する。 According to one aspect of the embodiment, there is an effect that the graph used for the search can be appropriately generated.

図1は、実施形態に係る情報処理の一例を示す図である。FIG. 1 is a diagram showing an example of information processing according to an embodiment. 図2は、実施形態に係る情報処理システムの構成例を示す図である。FIG. 2 is a diagram showing a configuration example of an information processing system according to an embodiment. 図3は、実施形態に係る情報処理装置の構成例を示す図である。FIG. 3 is a diagram showing a configuration example of the information processing apparatus according to the embodiment. 図4は、実施形態に係るオブジェクト情報記憶部の一例を示す図である。FIG. 4 is a diagram showing an example of an object information storage unit according to an embodiment. 図5は、実施形態に係る連結条件情報記憶部の一例を示す図である。FIG. 5 is a diagram showing an example of a connection condition information storage unit according to an embodiment. 図6は、実施形態に係る変更条件情報記憶部の一例を示す図である。FIG. 6 is a diagram showing an example of a change condition information storage unit according to an embodiment. 図7は、実施形態に係るグラフデータ記憶部の一例を示す図である。FIG. 7 is a diagram showing an example of a graph data storage unit according to an embodiment. 図8は、実施形態に係る起点用情報記憶部の一例を示す図である。FIG. 8 is a diagram showing an example of a starting point information storage unit according to an embodiment. 図9は、実施形態に係る再構築条件情報記憶部の一例を示す図である。FIG. 9 is a diagram showing an example of the reconstruction condition information storage unit according to the embodiment. 図10は、実施形態に係る再構築グラフデータ記憶部の一例を示す図である。FIG. 10 is a diagram showing an example of the reconstructed graph data storage unit according to the embodiment. 図11は、実施形態に係る情報処理の一例を示すフローチャートである。FIG. 11 is a flowchart showing an example of information processing according to the embodiment. 図12は、実施形態に係る条件の変更処理の一例を示すフローチャートである。FIG. 12 is a flowchart showing an example of the condition change process according to the embodiment. 図13は、実施形態に係るグラフの再構築処理の一例を示す図である。FIG. 13 is a diagram showing an example of a graph reconstruction process according to an embodiment. 図14は、実施形態に係るグラフの再構築処理の一例を示すフローチャートである。FIG. 14 is a flowchart showing an example of the graph reconstruction process according to the embodiment. 図15は、実施形態に係る情報処理に用いる起点用情報の一例を示す図である。FIG. 15 is a diagram showing an example of starting point information used for information processing according to the embodiment. 図16は、グラフデータを用いた検索処理の一例を示すフローチャートである。FIG. 16 is a flowchart showing an example of a search process using graph data. 図17は、情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。FIG. 17 is a hardware configuration diagram showing an example of a computer that realizes the functions of the information processing device.

以下に、本願に係る情報処理装置、情報処理方法、及び情報処理プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法、及び情報処理プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。 Hereinafter, the information processing apparatus, the information processing method, and the embodiment for implementing the information processing program (hereinafter referred to as “the embodiment”) according to the present application will be described in detail with reference to the drawings. It should be noted that this embodiment does not limit the information processing apparatus, information processing method, and information processing program according to the present application. Further, in each of the following embodiments, the same parts are designated by the same reference numerals, and duplicate explanations are omitted.

(実施形態)
〔1.情報処理〕
図1を用いて、実施形態に係る情報処理の一例について説明する。図1は、実施形態に係る情報処理の一例を示す図である。図1では、情報処理装置100(図3参照)がオブジェクトの追加に応じて、追加されたオブジェクトに対応するノード(以下「追加ノード」ともいう)をグラフデータ(グラフ情報)に追加し、グラフデータを生成する場合を示す。以下では、グラフデータを単にグラフと記載する場合がある。なお、図1の例では、対象とする情報(オブジェクト)がベクトル化され、ベクトル化されたオブジェクトを対象としてグラフ(グラフインデックス)を生成する場合を示す。すなわち、図1の例では、情報処理装置100がベクトルをオブジェクトに対応するオブジェクト値として処理を行う場合を示す。なお、情報処理装置100が用いる情報は、ベクトルに限らず、各対象の類似性を表現可能な情報であれば、どのような形式の情報であってもよい。例えば、情報処理装置100は、各対象に対応する所定のデータや値を用いてもよい。例えば、情報処理装置100は、各対象から生成された所定の数値(例えば2進数の値や16進数の値)を用いてもよい。例えば、情報処理装置100は、ベクトルに限らず、データ間の距離(類似度)が定義されていれば任意の形態のデータを用いてもよい。また、以下では、画像情報をオブジェクトとした場合を一例として説明するが、オブジェクトは、動画情報や音声情報等の種々の対象であってもよい。
(Embodiment)
[1. Information processing]
An example of information processing according to the embodiment will be described with reference to FIG. FIG. 1 is a diagram showing an example of information processing according to an embodiment. In FIG. 1, the information processing apparatus 100 (see FIG. 3) adds a node corresponding to the added object (hereinafter, also referred to as “additional node”) to the graph data (graph information) in response to the addition of the object, and graphs. The case of generating data is shown. In the following, graph data may be simply referred to as a graph. The example of FIG. 1 shows a case where the target information (object) is vectorized and a graph (graph index) is generated for the vectorized object. That is, in the example of FIG. 1, a case where the information processing apparatus 100 processes a vector as an object value corresponding to the object is shown. The information used by the information processing apparatus 100 is not limited to a vector, and may be any form of information as long as it can express the similarity of each object. For example, the information processing apparatus 100 may use predetermined data or values corresponding to each object. For example, the information processing apparatus 100 may use a predetermined numerical value (for example, a binary number value or a hexadecimal number value) generated from each object. For example, the information processing apparatus 100 is not limited to a vector, and may use any form of data as long as the distance (similarity) between the data is defined. Further, although the case where the image information is used as an object will be described below as an example, the object may be various objects such as moving image information and audio information.

また、ここでいうオブジェクトの追加は、オブジェクトの登録と読み換えてもよい。情報処理装置100が行うオブジェクトの追加とは、オブジェクトをオブジェクト情報記憶部121(図4参照)に登録(格納)することであってもよい。また、ここでいうノードの追加は、ノードの登録と読み換えてもよい。情報処理装置100が行うノードの追加とは、ノードをグラフデータ記憶部124(図7参照)に登録(格納)することであってもよい。 Further, the addition of an object here may be read as the registration of an object. The addition of an object performed by the information processing apparatus 100 may mean registering (storing) the object in the object information storage unit 121 (see FIG. 4). Further, the addition of a node here may be read as the registration of a node. The addition of the node performed by the information processing apparatus 100 may be to register (store) the node in the graph data storage unit 124 (see FIG. 7).

また、以下では、一のノードを追加する前のグラフを第1グラフと称し、その一のノードを追加したグラフを第2グラフと称する場合があるが、第1グラフ及び第2グラフは、相対的な概念であって、生成した第2グラフが次のノード追加時には第1グラフになる。例えば、一のノード追加後の第2グラフは、その次に新たなノードを追加する場合には、第1グラフとして用いられる。すなわち、ここでいう第1グラフ及び第2グラフとは、あるノードの追加前後のグラフを区別して表現可能にするための名称である。 Further, in the following, the graph before the addition of one node may be referred to as the first graph, and the graph to which the one node is added may be referred to as the second graph, but the first graph and the second graph are relative. The second graph generated becomes the first graph when the next node is added. For example, the second graph after adding one node is used as the first graph when a new node is added next. That is, the first graph and the second graph referred to here are names for distinguishing and expressing the graphs before and after the addition of a certain node.

また、情報処理装置100は、図1に示すように、ノード及び有向エッジを含むグラフを生成の対象として情報処理を行う。なお、ここでいう、有向エッジとは、一方向にしかデータを辿れないエッジを意味する。以下では、エッジにより辿る元、すなわち始点となるノードを参照元とし、エッジにより辿る先、すなわち終点となるノードを参照先とする。例えば、所定のノード「A」から所定のノード「B」に連結される有向エッジとは、参照元をノード「A」とし、参照先をノード「B」とするエッジであることを示す。 Further, as shown in FIG. 1, the information processing apparatus 100 performs information processing on a graph including a node and a directed edge as a generation target. The directed edge here means an edge in which data can be traced in only one direction. In the following, the source traced by the edge, that is, the node that is the start point is referred to as the reference source, and the destination that is traced by the edge, that is, the node that is the end point is referred to as the 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".

以下では、このようにノード「A」を参照元とするエッジをノード「A」の出力エッジという。また、以下では、このようにノード「B」を参照先とするエッジをノード「B」の入力エッジという。すなわち、ここでいう出力エッジ及び入力エッジとは、一の有向エッジをその有向エッジが連結する2個のノードのうち、いずれのノードを中心として捉えるかの相違であり、一の有向エッジが出力エッジ及び入力エッジになる。すなわち、出力エッジ及び入力エッジは、相対的な概念であって、一の有向エッジについて、参照元となるノードを中心として捉えた場合に出力エッジとなり、参照先となるノードを中心として捉えた場合に入力エッジとなる。なお、本実施形態においては、エッジについては、出力エッジや入力エッジ等の有向エッジを対象とするため、以下では、有向エッジを単に「エッジ」と記載する場合がある。 In the following, the edge with the node "A" as the reference source is referred to as the output edge of the node "A". Further, in the following, such an edge with the node "B" as a reference destination is referred to as an input edge of the node "B". That is, the output edge and the input edge referred to here are differences in which node of the two nodes to which the directed edge is connected is regarded as the center, and the directed edge is one directed. The edge becomes the output edge and the input edge. That is, the output edge and the input edge are relative concepts, and when one directed edge is regarded as the center of the reference node, the output edge is regarded as the center of the reference node. In some cases it becomes the input edge. In the present embodiment, since the edge is a directed edge such as an output edge or an input edge, the directed edge may be simply referred to as an “edge” in the following.

また、ここでいう、各ノードは、各オブジェクトに対応する。例えば、画像から抽出された複数の局所特徴量のそれぞれがオブジェクトであってもよい。また、例えば、オブジェクト間の距離が定義された種々のデータがオブジェクトであってもよい。 Further, each node referred to here corresponds to each object. For example, each of the plurality of local features 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は、例えば情報処理装置100が処理可能な範囲で(例えば数百万~数億等)の膨大な画像情報に対応するノードを対象にグラフの生成処理を行うが、図面においてはその一部のみを図示する。図1の例では、説明を簡単にするために、最大6個のノードを図示して処理の概要を説明する。また、図1の例では、情報処理装置100は、何もない状態、すなわちノードが0個、エッジも0本である状態から、オブジェクトの追加に応じてノードN1等やエッジE1等を順次追加し、グラフGR11を生成する場合を示す。 The information processing device 100 performs graph generation processing for a node corresponding to a huge amount of image information within a range that can be processed by the information processing device 100 (for example, millions to hundreds of millions of millions, etc.). Only a part of it is shown. In the example of FIG. 1, for the sake of simplicity, a maximum of six nodes will be illustrated to explain the outline of the process. Further, in the example of FIG. 1, the information processing apparatus 100 sequentially adds nodes N1 and the like and edges E1 and the like according to the addition of objects from the state where there is nothing, that is, the state where there are 0 nodes and the number of edges is 0. The case where the graph GR11 is generated is shown.

また、このように「ノードN*(*は任意の数値)」と記載した場合、そのノードはノードID「N*」により識別されるノードであることを示す。例えば、「ノードN1」と記載した場合、そのノードはノードID「N1」により識別されるノードである。 Further, when described as "node N * (* is an arbitrary numerical value)" in this way, it means 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".

また、このように「エッジE*(*は任意の数値)」と記載した場合、そのエッジはエッジID「E*」により識別されるエッジであることを示す。例えば、「エッジE1」と記載した場合、そのエッジはエッジID「E1」により識別されるエッジである。例えば、ノードN1を参照元とし、ノードN2を参照先として連結されるエッジE1により、ノードN1からノードN2に辿ることが可能となる。この場合、有向エッジであるエッジE1は、ノードN1を中心として識別される場合、出力エッジとなり、ノードN2を中心として識別される場合、入力エッジとなる。言い換えると、有向エッジであるエッジE1は、ノードN1側からの視点でとらえた場合、自身から他のエッジへ矢印が向いているエッジ、すなわち外向きエッジとなり、ノードN2側からの視点でとらえた場合、自身の方に矢印が向いているエッジ、すなわち内向きエッジとなる。つまり、ここでいう出力エッジは、外向きエッジと読み替えることができ、入力エッジは、内向きエッジと読み替えることができる。 Further, when "edge E * (* is an arbitrary numerical value)" is described in this way, it means that the edge is an edge identified by the edge ID "E *". For example, when described as "edge E1", the edge is an edge identified by the edge ID "E1". For example, the edge E1 connected with the node N1 as the reference source and the node N2 as the reference destination makes it possible to trace from the node N1 to the node N2. In this case, the edge E1 which is a directed edge becomes an output edge when it is identified with the node N1 as the center, and becomes an input edge when it is identified with the node N2 as the center. In other words, the edge E1 which is a directed edge becomes an edge in which the arrow points from itself to another edge, that is, an outward edge, when viewed from the viewpoint from the node N1 side, and is captured from the viewpoint from the node N2 side. If so, it becomes an edge with the arrow pointing toward itself, that is, an inward-facing edge. That is, the output edge referred to here can be read as an outward edge, and the input edge can be read as an inward edge.

また、図1に示す空間情報VS1-1~VS1-4は、グラフデータの生成過程を模式的に示す図であり、空間情報VS1-1~VS1-4に示す空間は、同一の空間であってもよい。また、以下では、空間情報VS1-1~VS1-4について、特に区別なく説明する場合には、空間情報VS1と記載する。 Further, the spatial information VS1-1 to VS1-4 shown in FIG. 1 are diagrams schematically showing the generation process of graph data, and the spaces shown in the spatial information VS1-1 to VS1-4 are the same space. You may. Further, in the following, when the spatial information VS1-1 to VS1-4 are described without particular distinction, they are described as the spatial information VS1.

また、図1中の空間情報VS1は、ユークリッド空間であってもよい。また、図1に示す空間情報VS1は、各ベクトル間の距離等の説明のための概念的な図であり、空間情報VS1は、多次元空間である。例えば、図1に示す空間情報VS1は、平面上に図示するため2次元の態様にて図示されるが、例えば100次元や1000次元等の多次元空間であるものとする。 Further, the spatial information VS1 in FIG. 1 may be an Euclidean space. Further, the spatial information VS1 shown in FIG. 1 is a conceptual diagram for explaining the distance between each vector, and the spatial information VS1 is a multidimensional space. For example, the spatial information VS1 shown in FIG. 1 is shown in a two-dimensional manner for being shown on a plane, but is assumed to be a multidimensional space such as 100 dimensions or 1000 dimensions.

また、図1に示すグラフGR11-1~GR11-4は、グラフデータの生成過程を模式的に示す図であり、グラフGR11-1~GR11-4は、情報処理により生成される同一のグラフデータである。また、以下では、グラフGR11-1~GR11-4について、特に区別なく説明する場合には、グラフGR11と記載する。 Further, the graphs GR11-1 to GR11-4 shown in FIG. 1 are diagrams schematically showing the graph data generation process, and the graphs GR11-1 to GR11-4 are the same graph data generated by information processing. Is. Further, in the following, when the graphs GR11-1 to GR11-4 will be described without particular distinction, they will be referred to as graph GR11.

また、図1に示す例においては、グラフGR11-1~GR11-4においては、適宜「ノードN*(*は任意の数値)」の図示を省略し、取得した各ノードを「○」内に「ノードN*」の「*」の値を付すことにより表現する。すなわち、「ノードN*」の部分の「*」が一致するノードに対応する。例えば、空間情報VS1中の左上の「○」であって、内部に「4」が付された「○」は、ノードID「N4」により識別されるノード(ノードN4)に対応する。例えば、図1に示す例において、各ノードに対応するベクトルデータは、N次元の実数値ベクトルであってもよい。 Further, in the example shown in FIG. 1, in the graphs GR11-1 to GR11-4, the illustration of "node N * (* is an arbitrary numerical value)" is appropriately omitted, and each acquired node is shown in "○". It is expressed by adding the value of "*" of "node N *". That is, it corresponds to the node in which the "*" in the "node N *" part matches. For example, "○" in the upper left of the spatial information VS1 and "○" with "4" inside corresponds to the node (node N4) identified by the node ID "N4". For example, in the example shown in FIG. 1, the vector data corresponding to each node may be an N-dimensional real value vector.

本実施形態においては、空間情報VS1における各ノードの距離を対応する各オブジェクト間の類似度とする。例えば、各ノードに対応する対象(画像情報)の類似性が、空間情報VS1内におけるノード間の距離として写像されているものとする。例えば、各ノードに対応する概念間の類似度が各ノード間の距離に写像されているものとする。ここで、図1に示す例においては、空間情報VS1における各ノード間の距離が短いオブジェクト同士の類似度が高く、空間情報VS1における各ノード間の距離が長いオブジェクト同士の類似度が低い。例えば、図1中の空間情報VS1において、ノードID「N1」により識別されるノード(ノードN1)と、ノードID「N2」により識別されるノード(ノードN2)とは近接している、すなわち距離が短い。そのため、ノードID「N1」により識別されるノードに対応するオブジェクトと、ノードID「N2」により識別されるノードに対応するオブジェクトとは類似度が高いことを示す。 In the present embodiment, the distance of each node in the spatial information VS1 is defined as the degree of similarity between the corresponding objects. For example, it is assumed that the similarity of the target (image information) corresponding to each node is mapped as the distance between the nodes in the spatial information VS1. For example, it is assumed that the similarity between the concepts corresponding to each node is mapped to the distance between each node. Here, in the example shown in FIG. 1, the similarity between the objects having a short distance between the nodes in the spatial information VS1 is high, and the similarity between the objects having a long distance between the nodes in the spatial information VS1 is low. For example, in the spatial information VS1 in FIG. 1, the node (node N1) identified by the node ID "N1" and the node (node N2) identified by the node ID "N2" are close to each other, that is, the distance. Is short. Therefore, it is shown that the object corresponding to the node identified by the node ID “N1” and the object corresponding to the node identified by the node ID “N2” have a high degree of similarity.

また、例えば、図1中の空間情報VS1において、ノードID「N2」により識別されるノードと、ノードID「N5」により識別されるノードとは遠隔にある、すなわち距離が長い。そのため、ノードID「N2」により識別されるノードに対応するオブジェクトと、ノードID「N5」により識別されるノードに対応するオブジェクトとは類似度が低いことを示す。なお、類似度を示す指標としての距離は、ベクトル(N次元ベクトル)間の距離として適用可能であれば、どのような距離であってもよく、例えば、ユークリッド距離やマハラノビス距離やコサイン距離等の種々の距離が用いられてもよい。 Further, for example, in the spatial information VS1 in FIG. 1, the node identified by the node ID "N2" and the node identified by the node ID "N5" are remote, that is, have a long distance. Therefore, it is shown that the object corresponding to the node identified by the node ID “N2” and the object corresponding to the node identified by the node ID “N5” have a low degree of similarity. The distance as an index indicating the degree of similarity may be any distance as long as it can be applied as a distance between vectors (N-dimensional vectors), for example, Euclidean distance, Mahalanobis distance, cosine distance, and the like. Various distances may be used.

また、図1の例では、情報処理装置100は、後述するグラフの生成処理により、新規追加のノードをグラフGR11に追加し、ノードを有向エッジで連結することにより、グラフGR11を生成する。例えば、グラフGR11の生成時やグラフGR11を用いた検索時においては、グラフ構造型インデックスと同様の処理を行うが、開始位置(起点)は所定の起点用情報(以下「起点用インデックス」ともいう)を用いて決定したノード(以下「起点ノード」ともいう)からスタートしてもよい。また、例えば、情報処理装置100が生成したグラフGR11を用いて検索を行う場合、予め決定された起点ノードを起点として検索を行ってもよい。例えば、生成時や検索時においては、起点ノードがノードN1である場合、ノードN1から有向エッジを辿ることにより、ノードN2~N5、N11等を検索してもよい。なお、情報処理装置100は、生成時や検索時において図16に示すような処理手順により近傍ノードの探索(検索)を行ってもよいが、詳細は後述する。 Further, in the example of FIG. 1, the information processing apparatus 100 adds a newly added node to the graph GR11 by the graph generation process described later, and generates the graph GR11 by connecting the nodes with directed edges. For example, at the time of generating the graph GR11 or searching using the graph GR11, the same processing as the graph structure type index is performed, but the start position (starting point) is the predetermined starting point information (hereinafter, also referred to as “starting point index”). ) May be used to start from the node (hereinafter also referred to as the "starting node"). Further, for example, when performing a search using the graph GR11 generated by the information processing apparatus 100, the search may be performed using a predetermined starting node as a starting point. For example, at the time of generation or search, when the starting node is node N1, the nodes N2 to N5, N11 and the like may be searched by tracing the directed edge from the node N1. The information processing apparatus 100 may search (search) nearby nodes by the processing procedure as shown in FIG. 16 at the time of generation or search, but the details will be described later.

ここから、図1を用いて情報処理の詳細を説明する。なお、図1に示す各ステップは、グラフの生成を説明するための便宜的なステップであり、実際の処理はより詳細な処理ステップにより行われてもよい。なお、情報処理装置100が行う情報処理は、図1中のグラフGR11-4に示すようなグラフGR11が生成されれば、どのような処理フローであってもよい。 From here, the details of information processing will be described with reference to FIG. It should be noted that each step shown in FIG. 1 is a convenient step for explaining the generation of the graph, and the actual processing may be performed by a more detailed processing step. The information processing performed by the information processing apparatus 100 may be any processing flow as long as the graph GR11 as shown in the graph GR11-4 in FIG. 1 is generated.

また、図1の例では、連結条件一覧LCL1に示すように、連結条件については、入力閾値が「2」であり、出力閾値が「1」である場合を示す。すなわち、情報処理装置100は、連結条件一覧LCL1に基づいて、各ノードに少なくとも2本の入力エッジ及び1本の出力エッジが連結されるようにグラフを生成する。また、図1の例では、変更条件一覧ACL1や変更条件一覧ACL2に示すような変更条件に基づいて、連結条件を変更する場合を示す。図1の例では、変更条件一覧ACL2に示すエッジの統計値は、入力エッジ数が多い上位20%のノードの等の入力エッジ数の平均値であるものとし、閾値ETH1は「5」であるものとする。なお、図1の例では、説明を簡単にするために、入力エッジ数が多い上位20%のノードの等の入力エッジ数の平均値を統計的な情報の一例として説明するが、統計的な情報は種々の情報であってもよい。例えば、統計的な情報は、グラフやどのようにエッジを追加するか等の連結条件に応じた種々の条件であってもよい。例えば、統計的な情報は、入力エッジ数が多い上位20%のノードの等の入力エッジ数の平均値等の一部のノードやエッジの情報を用いるものに限らず、グラフ全体のノードやエッジの情報を用いるものであってもよい。また、例えば、統計的な情報は、一定個数の初期登録ノードの出力エッジ数の平均でもよい。例えば、統計的な情報は、最初に追加したノードから100番目に追加したノードの100個のノードの出力エッジ数の平均でもよい。情報処理装置100は、変更条件一覧ACL1や変更条件一覧ACL2に示すような情報を変更条件情報記憶部123等(図6参照)に記憶してもよい。 Further, in the example of FIG. 1, as shown in the connection condition list LCL1, the connection condition shows the case where the input threshold value is “2” and the output threshold value is “1”. That is, the information processing apparatus 100 generates a graph so that at least two input edges and one output edge are connected to each node based on the connection condition list LCL1. Further, in the example of FIG. 1, a case where the connection condition is changed based on the change condition as shown in the change condition list ACL1 and the change condition list ACL2 is shown. In the example of FIG. 1, the edge statistics shown in the change condition list ACL2 are assumed to be the average value of the number of input edges of the top 20% of the nodes having a large number of input edges, and the threshold value ETH1 is "5". It shall be. In the example of FIG. 1, for the sake of simplicity, the average value of the number of input edges of the top 20% of nodes having a large number of input edges will be described as an example of statistical information, but statistically. The information may be various information. For example, the statistical information may be various conditions depending on the connection condition such as a graph and how to add an edge. For example, statistical information is not limited to using information on some nodes and edges such as the average value of the number of input edges such as the top 20% of nodes with a large number of input edges, and the nodes and edges of the entire graph. Information may be used. Further, for example, the statistical information may be the average of the number of output edges of a certain number of initial registration nodes. For example, the statistical information may be the average of the number of output edges of 100 nodes of the node added 100th from the node added first. The information processing apparatus 100 may store information as shown in the change condition list ACL1 and the change condition list ACL2 in the change condition information storage unit 123 or the like (see FIG. 6).

まず、情報処理装置100は、ノードN1を新規追加する(ステップS11)。例えば、情報処理装置100は、ノードN1をグラフに追加する。図1の例では、情報処理装置100は、ノードN1が最初のノードであるため、ノードN1を含むグラフGR11を新規に生成する。また、情報処理装置100は、ステップS11後においてグラフGR11には、ノードがノードN1の1個のみであるため、グラフGR11にエッジを追加しない。 First, the information processing apparatus 100 newly adds a node N1 (step S11). For example, the information processing apparatus 100 adds the node N1 to the graph. In the example of FIG. 1, since the node N1 is the first node, the information processing apparatus 100 newly generates the graph GR11 including the node N1. Further, since the information processing apparatus 100 has only one node N1 in the graph GR11 after step S11, the information processing apparatus 100 does not add an edge to the graph GR11.

例えば、情報処理装置100は、検索対象として新たに追加されたオブジェクトを取得し、追加されたオブジェクトに対応するノードを新規追加する。例えば、情報処理装置100は、新たに追加されたオブジェクトをオブジェクト情報記憶部121(図4参照)に記憶し、新たに追加されたオブジェクトに対応付けたノードをグラフデータ記憶部124に記憶する。情報処理装置100は、オブジェクトID「OB1」により識別されるオブジェクト(図4参照)に対応するノードN1をグラフGR11に追加する。 For example, the information processing apparatus 100 acquires a newly added object as a search target, and newly adds a node corresponding to the added object. For example, the information processing apparatus 100 stores the newly added object in the object information storage unit 121 (see FIG. 4), and stores the node associated with the newly added object in the graph data storage unit 124. The information processing apparatus 100 adds a node N1 corresponding to an object (see FIG. 4) identified by the object ID “OB1” to the graph GR11.

そして、情報処理装置100は、ノードN2を新規追加する(ステップS12)。図1の例では、例えば、情報処理装置100は、ノードN2をグラフGR11に追加する。情報処理装置100は、オブジェクトID「OB2」により識別されるオブジェクト(図4参照)に対応するノードN2をグラフGR11に追加する。 Then, the information processing apparatus 100 newly adds the node N2 (step S12). In the example of FIG. 1, for example, the information processing apparatus 100 adds a node N2 to the graph GR11. The information processing apparatus 100 adds a node N2 corresponding to an object (see FIG. 4) identified by the object ID “OB2” to the graph GR11.

そして、情報処理装置100は、グラフを生成する(ステップS13)。情報処理装置100は、連結条件一覧LCL1に基づいて、追加したノードN2に2本の入力エッジ及び1本の出力エッジが連結されるようにグラフを生成する。情報処理装置100は、追加したノードN2に連結するエッジを追加することにより、グラフGR11-1を生成する。図1の例では、情報処理装置100は、グラフGR11中のノードN2以外にはノードN1のみしかないため、ノードN1からノードN2に入力される入力エッジであるエッジE1と、ノードN2からノードN1に出力される出力エッジであるエッジE2とを追加することにより、グラフGR11-1を生成する。そして、情報処理装置100は、グラフGR11-1には、ノードN1以外に、ノードN2との間にエッジを接続するノードが無いため、ノードN2にエッジを連結する処理を終了する。なお、情報処理装置100は、グラフGR11を探索し、ノードN2の近傍ノードとしてノードN1を選択し、ノードN1との間にエッジE1、E2とを追加することにより、グラフGR11-1を生成してもよい。 Then, the information processing apparatus 100 generates a graph (step S13). The information processing apparatus 100 generates a graph based on the connection condition list LCL1 so that two input edges and one output edge are connected to the added node N2. The information processing apparatus 100 generates the graph GR11-1 by adding an edge connected to the added node N2. In the example of FIG. 1, since the information processing apparatus 100 has only the node N1 other than the node N2 in the graph GR11, the edge E1 which is an input edge input from the node N1 to the node N2 and the node N1 from the node N2 Graph GR11-1 is generated by adding an edge E2 which is an output edge to be output to. Then, since the graph GR11-1 has no node other than the node N1 for connecting the edge to the node N2, the information processing apparatus 100 ends the process of connecting the edge to the node N2. The information processing apparatus 100 searches for the graph GR11, selects the node N1 as a node in the vicinity of the node N2, and adds the edges E1 and E2 to the node N1 to generate the graph GR11-1. You may.

また、情報処理装置100は、グラフGR11-1に基づいて、決定用情報一覧DFI1を生成する。情報処理装置100は、グラフGR11-1に含まれるノードやエッジの情報に基づいて、決定用情報一覧DFI1を生成する。例えば、情報処理装置100は、統計的な情報を含む決定用情報一覧DFI1を生成する。情報処理装置100は、グラフGR11-1に含まれるノード数が2個であることや、グラフGR11-1に含まれるエッジ数が2本であることを示す決定用情報一覧DFI1を生成する。情報処理装置100は、条件の判定に用いる情報であれば、ノード数やエッジ数に限らず、種々のグラフの統計的な情報を生成してもよい。決定用情報一覧DFI1には、グラフGR11-1において、入力エッジ数が多い上位20%のノードの等の入力エッジ数の平均値を示す情報(エッジ統計値)が含まれてもよい。なお、グラフGR11-1のように、上位20%のノードの数が「0.4(=2*0.2)」のように、1未満となる場合、情報処理装置100は、上位20%のノードの数を「1」として、最大の入力エッジ数のノードの入力エッジ数をエッジ統計値として用いる。例えば、情報処理装置100は、決定用情報一覧DFI1を記憶部120(図3参照)に記憶してもよい。また、「1」以上の場合の小数点については、切り捨ててもよいし、四捨五入してもよいし、切り上げてもよい。 Further, the information processing apparatus 100 generates a determination information list DFI1 based on the graph GR11-1. The information processing apparatus 100 generates a determination information list DFI1 based on the node and edge information included in the graph GR11-1. For example, the information processing apparatus 100 generates a determination information list DFI1 including statistical information. The information processing apparatus 100 generates a determination information list DFI1 indicating that the number of nodes included in the graph GR11-1 is two and the number of edges included in the graph GR11-1 is two. The information processing apparatus 100 may generate statistical information of various graphs, not limited to the number of nodes and the number of edges, as long as the information is used for determining the condition. The determination information list DFI1 may include information (edge statistics) indicating the average value of the number of input edges such as the top 20% of the nodes having a large number of input edges in the graph GR11-1. When the number of nodes in the top 20% is less than 1 as in graph GR11-1, the information processing apparatus 100 is in the top 20%. The number of nodes of is set to "1", and the number of input edges of the node having the maximum number of input edges is used as the edge statistic value. For example, the information processing apparatus 100 may store the determination information list DFI1 in the storage unit 120 (see FIG. 3). Further, the decimal point in the case of "1" or more may be rounded down, rounded off, or rounded up.

そして、情報処理装置100は、グラフGR11-1が変更条件を満たすかどうかを判定する。例えば、情報処理装置100は、グラフGR11-1に含まれるノード数が2個であるため、変更条件一覧ACL1に示すノード数が100個であるという変更条件を満たさないと判定する。例えば、情報処理装置100は、決定用情報一覧DFI1中のノード数「2」と、変更条件一覧ACL1中のノード数「100」とを比較し、決定用情報一覧DFI1中のノード数「2」が変更条件一覧ACL1中のノード数「100」と異なるため、変更条件を満たさないと判定する。また、情報処理装置100は、グラフGR11-1において、入力エッジ数が多い上位20%のノードの等の入力エッジ数の平均値は「1」であり、閾値ETH1未満であるため、変更条件一覧ACL2に示すエッジの統計値が閾値ETH1以上という変更条件を満たさないと判定する。このように、情報処理装置100は、グラフGR11-1が変更条件を満たさないと判定する。そのため、情報処理装置100は、連結条件を変更せずに、処理を続行する。すなわち、情報処理装置100は、入力閾値「2」及び出力閾値「1」を変更せずに、処理を続行する。 Then, the information processing apparatus 100 determines whether or not the graph GR11-1 satisfies the change condition. For example, the information processing apparatus 100 determines that the number of nodes included in the graph GR11-1 is two, and therefore the change condition that the number of nodes shown in the change condition list ACL1 is 100 is not satisfied. For example, the information processing apparatus 100 compares the number of nodes "2" in the decision information list DFI1 with the number of nodes "100" in the change condition list ACL1 and compares the number of nodes "100" in the decision information list DFI1 with the number of nodes "2" in the decision information list DFI1. Is different from the number of nodes "100" in the change condition list ACL1, so it is determined that the change condition is not satisfied. Further, in the information processing apparatus 100, in the graph GR11-1, the average value of the number of input edges of the top 20% of the nodes having a large number of input edges is "1", which is less than the threshold value ETH1. It is determined that the edge statistical value shown in ACL2 does not satisfy the change condition of the threshold value ETH1 or more. In this way, the information processing apparatus 100 determines that the graph GR11-1 does not satisfy the change condition. Therefore, the information processing apparatus 100 continues the process without changing the connection condition. That is, the information processing apparatus 100 continues the processing without changing the input threshold value “2” and the output threshold value “1”.

そして、情報処理装置100は、ノードN3を新規追加する(ステップS14-1)。図1の例では、例えば、情報処理装置100は、追加されたオブジェクトに対応するノードN3をグラフGR11に追加する。 Then, the information processing apparatus 100 newly adds the node N3 (step S14-1). In the example of FIG. 1, for example, the information processing apparatus 100 adds a node N3 corresponding to the added object to the graph GR11.

そして、情報処理装置100は、グラフを探索する(ステップS14-2)。例えば、情報処理装置100は、図16に示すような処理手順により、追加ノードの近傍に位置するノード(近傍ノード)の探索(検索)を行う。例えば、情報処理装置100は、図16に示すような処理手順によりグラフを探索することにより、所定の個数(以下「選択数」ともいう)の近傍ノードを選択する。例えば、情報処理装置100は、入力閾値や出力閾値に応じて選択数を決定する。図1の例では、情報処理装置100は、より大きな値である入力閾値「2」を選択数に決定する。なお、情報処理装置100は、入力閾値や出力閾値よりも大きな値を選択数に決定してもよい。例えば、情報処理装置100は、「100」個等の種々の値を選択数に決定してもよい。例えば、情報処理装置100は、種々の情報を適宜用いて、選択数を決定してもよい。例えば、情報処理装置100は、生成後のグラフの検索の性能に基づいて、選択数(近傍ノード数)を決定してもよい。また、例えば、情報処理装置100は、グラフ生成中において動的に選択数を変更してもよい。例えば、情報処理装置100は、グラフ生成の途中で検索性能を確認して、選択数を増やしたり減らしたりしてもよい。例えば、情報処理装置100は、生成中のグラフの検索性能に基づいて、選択数を増減させてもよい。例えば、情報処理装置100は、生成中のグラフの検索性能を示す値と所定の閾値との比較に基づいて、選択数を増減させてもよい。このように、情報処理装置100は、選択数に関する条件を動的に変更させてもよい。 Then, the information processing apparatus 100 searches for the graph (step S14-2). For example, the information processing apparatus 100 searches (searches) for a node (neighboring node) located in the vicinity of the additional node by the processing procedure as shown in FIG. For example, the information processing apparatus 100 selects a predetermined number (hereinafter, also referred to as “selection number”) of neighboring nodes by searching the graph by the processing procedure as shown in FIG. For example, the information processing apparatus 100 determines the number of selections according to the input threshold value and the output threshold value. In the example of FIG. 1, the information processing apparatus 100 determines the input threshold value “2”, which is a larger value, as the selection number. The information processing apparatus 100 may determine the number of selections to be larger than the input threshold value and the output threshold value. For example, the information processing apparatus 100 may determine various values such as "100" as the selection number. For example, the information processing apparatus 100 may determine the number of selections by appropriately using various information. For example, the information processing apparatus 100 may determine the number of selections (the number of neighboring nodes) based on the performance of searching the graph after generation. Further, for example, the information processing apparatus 100 may dynamically change the number of selections during graph generation. For example, the information processing apparatus 100 may check the search performance in the middle of graph generation and increase or decrease the number of selections. For example, the information processing apparatus 100 may increase or decrease the number of selections based on the search performance of the graph being generated. For example, the information processing apparatus 100 may increase or decrease the number of selections based on a comparison between a value indicating the search performance of the graph being generated and a predetermined threshold value. In this way, the information processing apparatus 100 may dynamically change the conditions regarding the number of selections.

情報処理装置100は、追加ノードであるノードN3をクエリとして、図16に示すような処理手順によりグラフGR11-1を探索し、ノードN3の近傍ノードとして、選択数「2」に対応する2個のノードN1、N2を選択する。また、図1の例では、ノードN1の方がノードN2よりもノードN3の近傍に位置する。このように、情報処理装置100は、生成中のグラフを用いて追加ノードの近傍ノードを選択することにより、より効率的に近傍ノードを選択し、効率的なグラフ生成を可能にすることができる。例えば、グラフに含まれるノード数が多くなった場合であっても、情報処理装置100は、生成中のグラフを追加ノードの近傍ノードの選択に利用することにより、近傍ノード選択の処理時間の増大を抑制し、より効率的に近傍ノードを選択し、効率的なグラフ生成を可能にすることができる。すなわち、情報処理装置100は、生成中のグラフを用いて追加ノードの近傍ノードを選択することにより、より高速にグラフを生成することができる。なお、情報処理装置100は、近傍ノードを選択できればどのような方法により、近傍ノードを選択してもよく、例えば生成中のグラフ内の各ノードと追加ノードとの間の距離を示す情報を用いて、距離が近い方から順に選択数の近傍ノードを選択してもよい。 The information processing apparatus 100 searches for the graph GR11-1 by using the node N3, which is an additional node, as a query, by the processing procedure as shown in FIG. Select the nodes N1 and N2 of. Further, in the example of FIG. 1, the node N1 is located closer to the node N3 than the node N2. In this way, the information processing apparatus 100 can select the neighboring nodes more efficiently by selecting the neighboring nodes of the additional node using the graph being generated, and enable efficient graph generation. .. For example, even when the number of nodes included in the graph increases, the information processing apparatus 100 increases the processing time for selecting the neighboring node by using the graph being generated for selecting the neighboring node of the additional node. It is possible to suppress the above, select neighboring nodes more efficiently, and enable efficient graph generation. That is, the information processing apparatus 100 can generate a graph at a higher speed by selecting a node in the vicinity of the additional node using the graph being generated. The information processing apparatus 100 may select the neighboring node by any method as long as the neighboring node can be selected. For example, the information processing apparatus 100 uses information indicating the distance between each node and the additional node in the graph being generated. Then, the neighboring nodes of the selected number may be selected in order from the one with the closest distance.

なお、情報処理装置100は、処理の高速化のために、グラフGR11-1の各ノードN1、N2をリーフとする木構造の起点用情報を用いて、起点ノードを決定してもよいが、詳細は後述する。例えば、情報処理装置100は、図15に示すような木構造の起点情報を用いて、グラフGR11-1のノードN1、N2のうち、ノードN1を起点ノードに決定してもよい。このように、情報処理装置100は、生成中のグラフに対応する起点用情報を用いて起点ノードを決定することにより、効率的にグラフを探索することができるため、より効率的に近傍ノードを選択し、効率的なグラフ生成を可能にすることができる。例えば、グラフに含まれるノード数が多くなった場合であっても、情報処理装置100は、起点用情報を用いて起点ノードを決定することにより、起点ノードの選択の処理時間の増大を抑制し、より効率的に起点ノードを選択し、効率的なグラフ生成を可能にすることができる。 The information processing apparatus 100 may determine the starting node by using the information for the starting point of the tree structure having the nodes N1 and N2 of the graph GR11-1 as leaves in order to speed up the processing. Details will be described later. For example, the information processing apparatus 100 may determine the node N1 among the nodes N1 and N2 of the graph GR11-1 as the starting node by using the starting point information of the tree structure as shown in FIG. As described above, the information processing apparatus 100 can efficiently search the graph by determining the starting point node using the starting point information corresponding to the graph being generated, so that the neighboring node can be searched more efficiently. It can be selected to enable efficient graph generation. For example, even when the number of nodes included in the graph increases, the information processing apparatus 100 suppresses an increase in the processing time for selecting the starting node by determining the starting node using the starting information. , It is possible to select the starting node more efficiently and enable efficient graph generation.

そして、情報処理装置100は、連結条件に基づいて、ノードと近傍ノードとの間を連結する有向エッジを第1グラフに追加することにより、第2グラフを生成する(ステップS14-3)。図1の例では、情報処理装置100は、連結条件一覧LCL1に基づいて、ノードN3と近傍ノードであるノードN1、N2との間を連結する有向エッジを第1グラフであるグラフGR11-1に追加することにより、第2グラフであるグラフGR11-2を生成する。具体的には、情報処理装置100は、連結条件一覧LCL1に基づいて、ノードN3に2本の入力エッジ及び1本の出力エッジが連結されるようにグラフGR11-2を生成する。 Then, the information processing apparatus 100 generates the second graph by adding the directed edge connecting the node and the neighboring node to the first graph based on the connection condition (step S14-3). In the example of FIG. 1, the information processing apparatus 100 has a graph GR11-1 which is a first graph showing a directed edge connecting a node N3 and neighboring nodes N1 and N2 based on the connection condition list LCL1. By adding to, the graph GR11-2, which is the second graph, is generated. Specifically, the information processing apparatus 100 generates the graph GR11-2 so that two input edges and one output edge are connected to the node N3 based on the connection condition list LCL1.

情報処理装置100は、選択した近傍ノードのうち、距離が短い方から順に2個のノードにノードN3への入力エッジを連結する。情報処理装置100は、選択した近傍ノードであるノードN1、N2のうち、距離が最も短いノードN1にノードN3へ入力するエッジE3を連結する。これにより、情報処理装置100は、ノードN3の近傍ノードであるノードN1とノードN3とを連結する。 The information processing apparatus 100 connects the input edges to the node N3 to the two selected neighboring nodes in order from the one having the shortest distance. The information processing apparatus 100 connects the edge E3 to be input to the node N3 to the node N1 having the shortest distance among the selected neighboring nodes N1 and N2. As a result, the information processing apparatus 100 connects the node N1 and the node N3, which are nodes in the vicinity of the node N3.

情報処理装置100は、選択した近傍ノードであるノードN1、N2のうち、距離が2番目に短いノードN2にノードN3へ入力するエッジE5を連結する。これにより、情報処理装置100は、ノードN3の近傍ノードであるノードN2とノードN3とを連結する。 The information processing apparatus 100 connects the edge E5 to be input to the node N3 to the node N2 having the second shortest distance among the selected neighboring nodes N1 and N2. As a result, the information processing apparatus 100 connects the node N2 and the node N3, which are nodes in the vicinity of the node N3.

また、情報処理装置100は、選択した近傍ノードのうち、距離が短い方から順に1個のノードにノードN3からの出力エッジを連結する。情報処理装置100は、選択した近傍ノードであるノードN1、N2のうち、距離が最も短いノードN1にノードN3から出力するエッジE4を連結する。これにより、情報処理装置100は、ノードN3とその近傍ノードであるノードN1とを連結する。これにより、情報処理装置100は、追加したノードN3に2本の入力エッジE3、E5及び1本の出力エッジE4が連結されたグラフGR11-2を生成する。 Further, the information processing apparatus 100 connects the output edge from the node N3 to one of the selected neighboring nodes in order from the one having the shortest distance. The information processing apparatus 100 connects the edge E4 output from the node N3 to the node N1 having the shortest distance among the selected neighboring nodes N1 and N2. As a result, the information processing apparatus 100 connects the node N3 and the node N1 which is a neighboring node thereof. As a result, the information processing apparatus 100 generates a graph GR11-2 in which two input edges E3, E5 and one output edge E4 are connected to the added node N3.

また、情報処理装置100は、グラフGR11-2に基づいて、決定用情報一覧DFI2を生成する。例えば、情報処理装置100は、決定用情報一覧DFI1を更新することにより、決定用情報一覧DFI2を生成する。情報処理装置100は、グラフGR11-2に含まれるノード数が3個であることや、グラフGR11-2に含まれるエッジ数が5本であることを示す決定用情報一覧DFI2を生成する。例えば、情報処理装置100は、記憶部120(図3参照)に記憶された決定用情報一覧DFI1を決定用情報一覧DFI2に更新してもよい。 Further, the information processing apparatus 100 generates the determination information list DFI2 based on the graph GR11-2. For example, the information processing apparatus 100 generates the decision information list DFI2 by updating the decision information list DFI1. The information processing apparatus 100 generates a determination information list DFI2 indicating that the number of nodes included in the graph GR11-2 is three and the number of edges included in the graph GR11-2 is five. For example, the information processing apparatus 100 may update the determination information list DFI1 stored in the storage unit 120 (see FIG. 3) to the determination information list DFI2.

そして、情報処理装置100は、グラフGR11-2が変更条件を満たすかどうかを判定する。例えば、情報処理装置100は、グラフGR11-2に含まれるノード数が3個であるため、変更条件一覧ACL1に示すノード数が100個であるという変更条件を満たさないと判定する。例えば、情報処理装置100は、決定用情報一覧DFI2中のノード数「3」と、変更条件一覧ACL1中のノード数「100」とを比較し、決定用情報一覧DFI2中のノード数「3」が変更条件一覧ACL1中のノード数「100」と異なるため、変更条件を満たさないと判定する。また、情報処理装置100は、グラフGR11-2において、入力エッジ数が多い上位20%のノードの等の入力エッジ数の平均値は「2」であり、閾値ETH1未満であるため、変更条件一覧ACL2に示すエッジの統計値が閾値ETH1以上という変更条件を満たさないと判定する。このように、情報処理装置100は、グラフGR11-2が変更条件を満たさないと判定する(ステップS14-4)。そのため、情報処理装置100は、連結条件を変更せずに、処理を続行する。すなわち、情報処理装置100は、入力閾値「2」及び出力閾値「1」を変更せずに、処理を続行する。 Then, the information processing apparatus 100 determines whether or not the graph GR11-2 satisfies the change condition. For example, the information processing apparatus 100 determines that the number of nodes included in the graph GR11-2 is three, and therefore the change condition that the number of nodes shown in the change condition list ACL1 is 100 is not satisfied. For example, the information processing apparatus 100 compares the number of nodes "3" in the decision information list DFI2 with the number of nodes "100" in the change condition list ACL1 and compares the number of nodes "3" in the decision information list DFI2. Is different from the number of nodes "100" in the change condition list ACL1, so it is determined that the change condition is not satisfied. Further, in the information processing apparatus 100, in the graph GR11-2, the average value of the number of input edges of the top 20% of the nodes having a large number of input edges is "2", which is less than the threshold value ETH1. It is determined that the edge statistical value shown in ACL2 does not satisfy the change condition of the threshold value ETH1 or more. As described above, the information processing apparatus 100 determines that the graph GR11-2 does not satisfy the change condition (step S14-4). Therefore, the information processing apparatus 100 continues the process without changing the connection condition. That is, the information processing apparatus 100 continues the processing without changing the input threshold value “2” and the output threshold value “1”.

そして、情報処理装置100は、ノードN4、N5等を新規追加する(ステップS15-1)。例えば、情報処理装置100は、ノードN4、N5を含む97個のノードを順次グラフGR11-2に追加する。図1の例では、情報処理装置100は、グラフGR11-2にノードN4を追加した後、ノードN5等の96個のノードを順次グラフGR11に追加する。 Then, the information processing apparatus 100 newly adds the nodes N4, N5, and the like (step S15-1). For example, the information processing apparatus 100 sequentially adds 97 nodes including the nodes N4 and N5 to the graph GR11-2. In the example of FIG. 1, the information processing apparatus 100 adds the node N4 to the graph GR11-2, and then sequentially adds 96 nodes such as the node N5 to the graph GR11.

そして、情報処理装置100は、グラフを探索する(ステップS15-2)。図1の例では、情報処理装置100は、追加したノードN4をクエリとして、グラフGR11-2を探索する。情報処理装置100は、図16に示すような処理手順によりグラフGR11-2を探索し、ノードN4の近傍ノードとして、選択数「2」に対応する2個のノードN1、N3を選択する。また、図1の例では、ノードN3の方がノードN1よりもノードN4の近傍に位置する。例えば、情報処理装置100は、図15に示すような木構造の起点情報を用いて、グラフGR11-2のノードN1~N3のうち、ノードN3を起点ノードに決定してもよい。 Then, the information processing apparatus 100 searches for the graph (step S15-2). In the example of FIG. 1, the information processing apparatus 100 searches the graph GR11-2 using the added node N4 as a query. The information processing apparatus 100 searches the graph GR11-2 by the processing procedure as shown in FIG. 16, and selects two nodes N1 and N3 corresponding to the selection number "2" as the neighboring nodes of the node N4. Further, in the example of FIG. 1, the node N3 is located closer to the node N4 than the node N1. For example, the information processing apparatus 100 may determine the node N3 among the nodes N1 to N3 of the graph GR11-2 as the starting node by using the starting point information of the tree structure as shown in FIG.

そして、情報処理装置100は、連結条件に基づいて、ノードと近傍ノードとの間を連結する有向エッジを第1グラフに追加することにより、第2グラフを生成する(ステップS15-3)。図1の例では、情報処理装置100は、連結条件一覧LCL1に基づいて、ノードN4と近傍ノードであるノードN1、N3との間を連結する有向エッジを第1グラフであるグラフGR11-2に追加することにより、第2グラフであるグラフGR11-3を生成する。具体的には、情報処理装置100は、連結条件一覧LCL1に基づいて、ノードN4に2本の入力エッジ及び1本の出力エッジが連結されるようにグラフGR11-3を生成する。 Then, the information processing apparatus 100 generates the second graph by adding the directed edge connecting the node and the neighboring node to the first graph based on the connection condition (step S15-3). In the example of FIG. 1, in the information processing apparatus 100, the directed edge connecting the node N4 and the neighboring nodes N1 and N3 is shown in the graph GR11-2, which is the first graph, based on the connection condition list LCL1. By adding to, the graph GR11-3 which is the second graph is generated. Specifically, the information processing apparatus 100 generates the graph GR11-3 so that two input edges and one output edge are connected to the node N4 based on the connection condition list LCL1.

情報処理装置100は、選択した近傍ノードのうち、距離が短い方から順に2個のノードにノードN4への入力エッジを連結する。情報処理装置100は、選択した近傍ノードであるノードN1、N3のうち、距離が最も短いノードN3にノードN4へ入力するエッジE7を連結する。これにより、情報処理装置100は、ノードN4の近傍ノードであるノードN3とノードN4とを連結する。 The information processing apparatus 100 connects the input edges to the node N4 to the two selected neighboring nodes in order from the one having the shortest distance. The information processing apparatus 100 connects the edge E7 to be input to the node N4 to the node N3 having the shortest distance among the selected neighboring nodes N1 and N3. As a result, the information processing apparatus 100 connects the node N3 and the node N4, which are nodes in the vicinity of the node N4.

情報処理装置100は、選択した近傍ノードであるノードN1、N3のうち、距離が2番目に短いノードN1にノードN4へ入力するエッジE6を連結する。これにより、情報処理装置100は、ノードN4の近傍ノードであるノードN1とノードN4とを連結する。 The information processing apparatus 100 connects the edge E6 to be input to the node N4 to the node N1 having the second shortest distance among the selected neighboring nodes N1 and N3. As a result, the information processing apparatus 100 connects the node N1 and the node N4, which are nodes in the vicinity of the node N4.

また、情報処理装置100は、選択した近傍ノードのうち、距離が短い方から順に1個のノードにノードN4からの出力エッジを連結する。情報処理装置100は、選択した近傍ノードであるノードN1、N3のうち、距離が最も短いノードN3にノードN4から出力するエッジE8を連結する。これにより、情報処理装置100は、ノードN4とその近傍ノードであるノードN3とを連結する。これにより、情報処理装置100は、追加したノードN4に2本の入力エッジE6、E7及び1本の出力エッジE8が連結されたグラフGR11-3を生成する。 Further, the information processing apparatus 100 connects the output edge from the node N4 to one of the selected neighboring nodes in order from the one having the shortest distance. The information processing apparatus 100 connects the edge E8 output from the node N4 to the node N3 having the shortest distance among the selected neighboring nodes N1 and N3. As a result, the information processing apparatus 100 connects the node N4 and the node N3 which is a node in the vicinity thereof. As a result, the information processing apparatus 100 generates a graph GR11-3 in which two input edges E6 and E7 and one output edge E8 are connected to the added node N4.

また、情報処理装置100は、ノードN5等の96個のノードについても、ノードN4と同様に、順次グラフGR11に追加することにより、グラフGR11-3を生成する。 Further, the information processing apparatus 100 also generates the graph GR11-3 by sequentially adding the 96 nodes such as the node N5 to the graph GR11 in the same manner as the node N4.

例えば、ノードN4追加後にノードN5が追加された場合、情報処理装置100は、ノードN5の近傍ノードとして、ノードN1、N4を選択する。また、図1の例では、ノードN1の方がノードN4よりもノードN5の近傍に位置する。そして、情報処理装置100は、ノードN5への入力エッジであるエッジN9をノードN1へ連結し、ノードN5への入力エッジであるエッジN10をノードN4へ連結する。また、情報処理装置100は、ノードN5からの出力エッジであるエッジN11をノードN1へ連結する。これにより、情報処理装置100は、追加したノードN5に2本の入力エッジE9、E10及び1本の出力エッジE11が連結されたグラフGR11-3を生成する。また、情報処理装置100は、ノードN4、N5以外の残りの95個のノードについても、ノードN4、N5と同様に、順次グラフGR11に追加することにより、グラフGR11-3を生成する。 For example, when the node N5 is added after the node N4 is added, the information processing apparatus 100 selects the nodes N1 and N4 as the neighboring nodes of the node N5. Further, in the example of FIG. 1, the node N1 is located closer to the node N5 than the node N4. Then, the information processing apparatus 100 connects the edge N9, which is an input edge to the node N5, to the node N1, and connects the edge N10, which is an input edge to the node N5, to the node N4. Further, the information processing apparatus 100 connects the edge N11, which is the output edge from the node N5, to the node N1. As a result, the information processing apparatus 100 generates a graph GR11-3 in which two input edges E9 and E10 and one output edge E11 are connected to the added node N5. Further, the information processing apparatus 100 also generates the graph GR11-3 by sequentially adding the remaining 95 nodes other than the nodes N4 and N5 to the graph GR11 in the same manner as the nodes N4 and N5.

また、情報処理装置100は、グラフGR11-3に基づいて、決定用情報一覧DFI3を生成する。例えば、情報処理装置100は、決定用情報一覧DFI2を更新することにより、決定用情報一覧DFI3を生成する。情報処理装置100は、グラフGR11-3に含まれるノード数が100個であることや、グラフGR11-3に含まれるエッジ数が200本であることを示す決定用情報一覧DFI3を生成する。例えば、情報処理装置100は、記憶部120(図3参照)に記憶された決定用情報一覧DFI2を決定用情報一覧DFI3に更新してもよい。 Further, the information processing apparatus 100 generates a determination information list DFI3 based on the graph GR11-3. For example, the information processing apparatus 100 generates the decision information list DFI3 by updating the decision information list DFI2. The information processing apparatus 100 generates a determination information list DFI3 indicating that the number of nodes included in the graph GR11-3 is 100 and the number of edges included in the graph GR11-3 is 200. For example, the information processing apparatus 100 may update the determination information list DFI2 stored in the storage unit 120 (see FIG. 3) to the determination information list DFI3.

そして、情報処理装置100は、グラフGR11-3が変更条件を満たすかどうかを判定する。例えば、情報処理装置100は、グラフGR11-3に含まれるノード数が100個であるため、変更条件一覧ACL1に示すノード数が100個であるという変更条件を満たすと判定する。例えば、情報処理装置100は、決定用情報一覧DFI3中のノード数「100」と、変更条件一覧ACL1中のノード数「100」とを比較し、決定用情報一覧DFI3中のノード数「100」が変更条件一覧ACL1中のノード数「100」と一致するため、変更条件を満たすと判定する。このように、情報処理装置100は、グラフGR11-3が変更条件を満たすと判定する(ステップS15-4)。 Then, the information processing apparatus 100 determines whether or not the graph GR11-3 satisfies the change condition. For example, since the information processing apparatus 100 includes 100 nodes in the graph GR11-3, it is determined that the change condition that the number of nodes shown in the change condition list ACL1 is 100 is satisfied. For example, the information processing apparatus 100 compares the number of nodes "100" in the decision information list DFI3 with the number of nodes "100" in the change condition list ACL1 and compares the number of nodes "100" in the decision information list DFI3 with "100". Matches the number of nodes "100" in the change condition list ACL1, so it is determined that the change condition is satisfied. In this way, the information processing apparatus 100 determines that the graph GR11-3 satisfies the change condition (step S15-4).

そのため、情報処理装置100は、連結条件を変更する(ステップS16)。図1の例では、情報処理装置100は、条件を満たした変更条件一覧ACL1の変更内容に基づいて、連結条件を変更する。情報処理装置100は、変更条件一覧ACL1に示すように、入力閾値を1増加させる。情報処理装置100は、変更条件一覧ACL1中の変更内容に基づいて、連結条件一覧LCL2を生成する。例えば、情報処理装置100は、連結条件一覧LCL1を更新することにより、連結条件一覧LCL2を生成する。情報処理装置100は、入力閾値が「3」であり、出力閾値が「1」であることを示す連結条件一覧LCL2を生成する。例えば、情報処理装置100は、連結条件情報記憶部122等(図5参照)に記憶された連結条件一覧LCL1に示す情報を連結条件一覧LCL2に示す情報に更新してもよい。 Therefore, the information processing apparatus 100 changes the connection condition (step S16). In the example of FIG. 1, the information processing apparatus 100 changes the connection condition based on the change content of the change condition list ACL1 that satisfies the condition. The information processing apparatus 100 increases the input threshold value by 1 as shown in the change condition list ACL1. The information processing apparatus 100 generates the connection condition list LCL2 based on the change contents in the change condition list ACL1. For example, the information processing apparatus 100 generates the connection condition list LCL2 by updating the connection condition list LCL1. The information processing apparatus 100 generates a concatenation condition list LCL2 indicating that the input threshold value is “3” and the output threshold value is “1”. For example, the information processing apparatus 100 may update the information shown in the connection condition list LCL1 stored in the connection condition information storage unit 122 or the like (see FIG. 5) to the information shown in the connection condition list LCL2.

情報処理装置100は、ステップS16以後の処理においては、入力閾値を「3」として、処理を続行する。このように、情報処理装置100は、グラフの生成過程において動的に連結条件を変更することにより、グラフの生成具体等に応じて適切にグラフの生成条件を変更することができるため、適切なグラフ生成を行うことができる。また、情報処理装置100は、連結条件の変更に応じて、選択数を更新する。図1の例では、情報処理装置100は、より大きな値である入力閾値「3」を選択数に決定する。すなわち、情報処理装置100は、選択数を「2」から「3」に更新する。 In the processing after step S16, the information processing apparatus 100 sets the input threshold value to "3" and continues the processing. As described above, the information processing apparatus 100 can appropriately change the graph generation conditions according to the graph generation specifics and the like by dynamically changing the connection conditions in the graph generation process, which is appropriate. Graph generation can be performed. Further, the information processing apparatus 100 updates the number of selections according to the change of the connection condition. In the example of FIG. 1, the information processing apparatus 100 determines the input threshold value “3”, which is a larger value, as the selection number. That is, the information processing apparatus 100 updates the number of selections from "2" to "3".

そして、情報処理装置100は、ノードN11等を新規追加する(ステップS17-1)。例えば、情報処理装置100は、ノードN11を含む多数(例えば1000個等)のノードを順次グラフGR11-3に追加する。図1の例では、情報処理装置100は、グラフGR11-3にノードN11を追加した後、残りの多数のノードを順次グラフGR11に追加する。 Then, the information processing apparatus 100 newly adds the node N11 and the like (step S17-1). For example, the information processing apparatus 100 sequentially adds a large number of nodes (for example, 1000 or the like) including the node N11 to the graph GR11-3. In the example of FIG. 1, the information processing apparatus 100 adds a node N11 to the graph GR11-3, and then sequentially adds a large number of remaining nodes to the graph GR11.

そして、情報処理装置100は、グラフを探索する(ステップS17-2)。図1の例では、情報処理装置100は、追加したノードN11をクエリとして、グラフGR11-3を探索する。情報処理装置100は、図16に示すような処理手順によりグラフGR11-3を探索し、ノードN11の近傍ノードとして、選択数「3」に対応する3個のノードN1、N4、N5を選択する。また、図1の例では、ノードN5が最もノードN11の近傍に位置し、ノードN5、N1、N4の順でノードN11の近傍に位置する。例えば、情報処理装置100は、図15に示すような木構造の起点情報を用いて、グラフGR11-3のノードN1~N5等を含む100個のノードのうち、ノードN5を起点ノードに決定してもよい。 Then, the information processing apparatus 100 searches for the graph (step S17-2). In the example of FIG. 1, the information processing apparatus 100 searches the graph GR11-3 using the added node N11 as a query. The information processing apparatus 100 searches the graph GR11-3 by the processing procedure as shown in FIG. 16, and selects three nodes N1, N4, and N5 corresponding to the selection number "3" as the neighboring nodes of the node N11. .. Further, in the example of FIG. 1, the node N5 is located closest to the node N11, and is located near the node N11 in the order of the nodes N5, N1, and N4. For example, the information processing apparatus 100 determines the node N5 as the starting node among the 100 nodes including the nodes N1 to N5 of the graph GR11-3 by using the starting point information of the tree structure as shown in FIG. You may.

そして、情報処理装置100は、連結条件に基づいて、ノードと近傍ノードとの間を連結する有向エッジを第1グラフに追加することにより、第2グラフを生成する(ステップS17-3)。図1の例では、情報処理装置100は、連結条件一覧LCL2に基づいて、ノードN11と近傍ノードであるノードN1、N4、N5との間を連結する有向エッジを第1グラフであるグラフGR11-3に追加することにより、第2グラフであるグラフGR11-4を生成する。具体的には、情報処理装置100は、連結条件一覧LCL2に基づいて、ノードN11に3本の入力エッジ及び1本の出力エッジが連結されるようにグラフGR11-4を生成する。 Then, the information processing apparatus 100 generates the second graph by adding the directed edge connecting the node and the neighboring node to the first graph based on the connection condition (step S17-3). In the example of FIG. 1, in the information processing apparatus 100, the directed edge connecting the node N11 and the neighboring nodes N1, N4, and N5 based on the connection condition list LCL2 is the graph GR11 which is the first graph. By adding to -3, the second graph, graph GR11-4, is generated. Specifically, the information processing apparatus 100 generates the graph GR11-4 so that three input edges and one output edge are connected to the node N11 based on the connection condition list LCL2.

情報処理装置100は、選択した近傍ノードのうち、距離が短い方から順に3個のノードにノードN11への入力エッジを連結する。情報処理装置100は、選択した近傍ノードであるノードN1、N4、N5のうち、距離が最も短いノードN5にノードN11へ入力するエッジE13を連結する。これにより、情報処理装置100は、ノードN11の近傍ノードであるノードN5とノードN11とを連結する。 The information processing apparatus 100 connects the input edges to the node N11 to the three selected neighboring nodes in order from the one having the shortest distance. The information processing apparatus 100 connects the edge E13 to be input to the node N11 to the node N5 having the shortest distance among the selected neighboring nodes N1, N4, and N5. As a result, the information processing apparatus 100 connects the node N5, which is a node in the vicinity of the node N11, with the node N11.

情報処理装置100は、選択した近傍ノードであるノードN1、N4、N5のうち、距離が2番目に短いノードN1にノードN11へ入力するエッジE14を連結する。これにより、情報処理装置100は、ノードN11の近傍ノードであるノードN1とノードN11とを連結する。 The information processing apparatus 100 connects the edge E14 to be input to the node N11 to the node N1 having the second shortest distance among the selected neighboring nodes N1, N4, and N5. As a result, the information processing apparatus 100 connects the node N1 and the node N11, which are nodes in the vicinity of the node N11.

情報処理装置100は、選択した近傍ノードであるノードN1、N4、N5のうち、距離が3番目に短いノードN4にノードN11へ入力するエッジE15を連結する。これにより、情報処理装置100は、ノードN11の近傍ノードであるノードN4とノードN11とを連結する。 The information processing apparatus 100 connects the edge E15 to be input to the node N11 to the node N4 having the third shortest distance among the selected neighboring nodes N1, N4, and N5. As a result, the information processing apparatus 100 connects the node N4, which is a node in the vicinity of the node N11, with the node N11.

また、情報処理装置100は、選択した近傍ノードのうち、距離が短い方から順に1個のノードにノードN11からの出力エッジを連結する。情報処理装置100は、選択した近傍ノードであるノードN1、N4、N5のうち、距離が最も短いノードN5にノードN11から出力するエッジE12を連結する。これにより、情報処理装置100は、ノードN11とその近傍ノードであるノードN5とを連結する。これにより、情報処理装置100は、追加したノードN11に3本の入力エッジE13、E14、及び1本の出力エッジE12が連結されたグラフGR11-4を生成する。 Further, the information processing apparatus 100 connects the output edge from the node N11 to one of the selected neighboring nodes in order from the one having the shortest distance. The information processing apparatus 100 connects the edge E12 output from the node N11 to the node N5 having the shortest distance among the selected neighboring nodes N1, N4, and N5. As a result, the information processing apparatus 100 connects the node N11 and the node N5 which is a node in the vicinity thereof. As a result, the information processing apparatus 100 generates a graph GR11-4 in which three input edges E13 and E14 and one output edge E12 are connected to the added node N11.

また、情報処理装置100は、ノードN11以外の他のノードについても、ノードN11と同様に、順次グラフGR11に追加することにより、グラフGR11-4を生成する。 Further, the information processing apparatus 100 also generates the graph GR11-4 by sequentially adding the nodes other than the node N11 to the graph GR11 in the same manner as the node N11.

また、情報処理装置100は、グラフGR11-4に基づいて、決定用情報一覧DFI4を生成する。例えば、情報処理装置100は、決定用情報一覧DFI3を更新することにより、決定用情報一覧DFI4を生成する。情報処理装置100は、グラフGR11-4に含まれるノード数がNNUM1個であることや、グラフGR11-4に含まれるエッジ数がENUM1本であることや、グラフGR11-4のエッジ統計値がSVL1であることを示す決定用情報一覧DFI4を生成する。決定用情報一覧DFI4では、各値をNNUM1やENUM1やSVL1等の抽象的な符号で示すが、各値は具体的な数値であるものとする。例えば、ノード数NNUM1は、「10000」であり、エッジ数ENUM1は「25000」であり、エッジ統計値SVL1は「5」であるものとする。例えば、情報処理装置100は、記憶部120(図3参照)に記憶された決定用情報一覧DFI3を決定用情報一覧DFI4に更新してもよい。 Further, the information processing apparatus 100 generates a determination information list DFI4 based on the graph GR11-4. For example, the information processing apparatus 100 generates the decision information list DFI4 by updating the decision information list DFI3. In the information processing apparatus 100, the number of nodes included in the graph GR11-4 is one NNUM, the number of edges included in the graph GR11-4 is one ENUM, and the edge statistical value of the graph GR11-4 is SVL1. A determination information list DFI4 indicating that the above is generated. In the determination information list DFI4, each value is indicated by an abstract code such as NNUM1, ENUM1 or SVL1, but each value is assumed to be a specific numerical value. For example, it is assumed that the number of nodes NNUM1 is "10000", the number of edges ENUM1 is "25000", and the edge statistical value SVL1 is "5". For example, the information processing apparatus 100 may update the determination information list DFI3 stored in the storage unit 120 (see FIG. 3) to the determination information list DFI4.

そして、情報処理装置100は、グラフGR11-4が変更条件を満たすかどうかを判定する。例えば、情報処理装置100は、グラフGR11-4に含まれるノード数がノード数NNUM1個(10000個等)であり100より大きいため、変更条件一覧ACL1に示すノード数が100個であるという変更条件を満たさないと判定する。例えば、情報処理装置100は、決定用情報一覧DFI1中のノード数「NNUM1」と、変更条件一覧ACL1中のノード数「100」とを比較し、決定用情報一覧DFI4中のノード数「NNUM1」が変更条件一覧ACL1中のノード数「100」と異なるため、変更条件を満たさないと判定する。 Then, the information processing apparatus 100 determines whether or not the graph GR11-4 satisfies the change condition. For example, in the information processing apparatus 100, the number of nodes included in the graph GR11-4 is 1 NNUM (10000, etc.), which is larger than 100. Therefore, the change condition that the number of nodes shown in the change condition list ACL1 is 100. Is not satisfied. For example, the information processing apparatus 100 compares the number of nodes "NNUM1" in the decision information list DFI1 with the number of nodes "100" in the change condition list ACL1 and compares the number of nodes "NNUM1" in the decision information list DFI4. Is different from the number of nodes "100" in the change condition list ACL1, so it is determined that the change condition is not satisfied.

また、情報処理装置100は、グラフGR11-4において、入力エッジ数が多い上位20%のノードの等の入力エッジ数の平均値、すなわちエッジ統計値SVL1は「5」であり、閾値ETH1である「5」以上であるため、変更条件一覧ACL2に示すエッジの統計値が閾値ETH1以上という変更条件を満たすと判定する。このように、情報処理装置100は、グラフGR11-4が変更条件を満たすと判定する(ステップS17-4)。 Further, in the graph GR11-4, the information processing apparatus 100 has an average value of the number of input edges such as the top 20% of nodes having a large number of input edges, that is, the edge statistical value SVL1 is "5" and is a threshold value ETH1. Since it is "5" or more, it is determined that the edge statistical value shown in the change condition list ACL2 satisfies the change condition of the threshold value ETH1 or more. In this way, the information processing apparatus 100 determines that the graph GR11-4 satisfies the change condition (step S17-4).

そのため、情報処理装置100は、連結条件を変更する(ステップS18)。図1の例では、情報処理装置100は、条件を満たした変更条件一覧ACL2の変更内容に基づいて、連結条件を変更する。情報処理装置100は、変更条件一覧ACL2に示すように、入力閾値を1増加させ、出力閾値を5増加させる。情報処理装置100は、変更条件一覧ACL2中の変更内容に基づいて、連結条件一覧LCL3を生成する。例えば、情報処理装置100は、連結条件一覧LCL2を更新することにより、連結条件一覧LCL3を生成する。情報処理装置100は、入力閾値が「4」であり、出力閾値が「6」であることを示す連結条件一覧LCL3を生成する。例えば、情報処理装置100は、連結条件情報記憶部122等(図5参照)に記憶された連結条件一覧LCL2に示す情報を連結条件一覧LCL3に示す情報に更新してもよい。 Therefore, the information processing apparatus 100 changes the connection condition (step S18). In the example of FIG. 1, the information processing apparatus 100 changes the connection condition based on the change content of the change condition list ACL2 that satisfies the condition. The information processing apparatus 100 increases the input threshold value by 1 and increases the output threshold value by 5 as shown in the change condition list ACL2. The information processing apparatus 100 generates a connection condition list LCL3 based on the change contents in the change condition list ACL2. For example, the information processing apparatus 100 generates the connection condition list LCL3 by updating the connection condition list LCL2. The information processing apparatus 100 generates a concatenation condition list LCL3 indicating that the input threshold value is “4” and the output threshold value is “6”. For example, the information processing apparatus 100 may update the information shown in the connection condition list LCL2 stored in the connection condition information storage unit 122 or the like (see FIG. 5) to the information shown in the connection condition list LCL3.

情報処理装置100は、ステップS18以後の処理においては、入力閾値を「4」、入力閾値を「6」として、処理を続行する。このように、情報処理装置100は、グラフの生成過程において動的に連結条件を変更することにより、グラフの生成具体等に応じて適切にグラフの生成条件を変更することができるため、適切なグラフ生成を行うことができる。また、情報処理装置100は、連結条件の変更に応じて、選択数を更新する。図1の例では、情報処理装置100は、より大きな値である出力閾値「6」を選択数に決定する。すなわち、情報処理装置100は、選択数を「3」から「6」に更新する。 In the processing after step S18, the information processing apparatus 100 sets the input threshold value to "4" and the input threshold value to "6", and continues the processing. As described above, the information processing apparatus 100 can appropriately change the graph generation conditions according to the graph generation specifics and the like by dynamically changing the connection conditions in the graph generation process, which is appropriate. Graph generation can be performed. Further, the information processing apparatus 100 updates the number of selections according to the change of the connection condition. In the example of FIG. 1, the information processing apparatus 100 determines the output threshold value “6”, which is a larger value, as the selection number. That is, the information processing apparatus 100 updates the number of selections from "3" to "6".

上述したように、情報処理装置100は、生成中のグラフにノードが追加された場合、生成中のグラフを探索し、追加されたノード(追加ノード)に対応する近傍ノードを高速に選択する。そして、情報処理装置100は、選択した近傍ノードのうち、生成中に動的に変更される連結条件に基づくノードと、追加ノードとの間に有効エッジを連結する。このように、情報処理装置100は、生成中のグラフの生成状況に応じて出力閾値や入力閾値等の連結条件を更新することにより、適切な連結条件に変更することができるため、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。 As described above, when a node is added to the graph being generated, the information processing apparatus 100 searches the graph being generated and selects a neighboring node corresponding to the added node (additional node) at high speed. Then, the information processing apparatus 100 connects the effective edge between the selected neighboring node and the node based on the connection condition dynamically changed during generation and the additional node. As described above, the information processing apparatus 100 can be changed to an appropriate connection condition by updating the connection conditions such as the output threshold value and the input threshold value according to the generation status of the graph being generated, and is therefore used for the search. The graph can be generated properly. Therefore, the information processing apparatus 100 can generate graph data that enables efficient search for a predetermined target.

〔1-1.グラフ規模に応じた連結エッジ数の増加〕
例えば、グラフの生成時において、生成の初期段階で追加されたノードには、多くのエッジが連結される傾向がある。例えば、追加したノードに3本のエッジ(2本の入力エッジ及び1本の出力エッジ等)を連結する場合であっても、最初に登録(追加)したノードには、数千や数万のエッジが連結される。そのため、情報処理装置100は、グラフの生成が進むほど、連結するエッジ数を増加させることにより、いつノードが追加されたかにより生じるエッジのばらつきを抑制することができるため、検索に用いるグラフを適切に生成することができる。
[1-1. Increase in the number of connected edges according to the graph scale]
For example, when a graph is generated, many edges tend to be concatenated to the nodes added in the early stages of generation. For example, even if three edges (two input edges and one output edge, etc.) are connected to the added node, the node registered (added) first has thousands or tens of thousands. The edges are connected. Therefore, the information processing apparatus 100 can suppress the variation in edges caused by when a node is added by increasing the number of connected edges as the graph is generated, so that the graph used for the search is appropriate. Can be generated in.

例えば、情報処理装置100は、グラフの規模に応じて動的に連結条件を変更する。この場合、情報処理装置100は、第1グラフのノード数が第1閾値(例えば千個)までの第1段階では、追加ノードに3本のエッジ(1本の入力エッジ及び2本の出力エッジ等)を連結する。例えば、情報処理装置100は、グラフのノード数が千個に達するまで、3本のエッジ(1本の入力エッジ及び2本の出力エッジ等)を連結する連結条件に基づいて、グラフにエッジを追加する。 For example, the information processing apparatus 100 dynamically changes the connection condition according to the scale of the graph. In this case, the information processing apparatus 100 has three edges (one input edge and two output edges) on the additional node in the first stage when the number of nodes in the first graph is up to the first threshold value (for example, 1,000). Etc.) are connected. For example, the information processing apparatus 100 adds an edge to the graph based on a connection condition for connecting three edges (one input edge, two output edges, etc.) until the number of nodes in the graph reaches 1,000. to add.

そして、情報処理装置100は、第1グラフのノード数が第2閾値(例えば一万個)までの第2段階では、追加ノードに5本のエッジ(2本の入力エッジ及び3本の出力エッジ等)を連結する。例えば、情報処理装置100は、グラフのノード数が第1閾値の変更条件を満たす場合、連結条件を5本のエッジ(2本の入力エッジ及び3本の出力エッジ等)に変更し、グラフにノードを追加する。情報処理装置100は、グラフのノード数が一万個に達するまで、5本のエッジ(2本の入力エッジ及び3本の出力エッジ等)を連結する連結条件に基づいて、グラフにエッジを追加する。 Then, in the second stage in which the number of nodes in the first graph reaches the second threshold value (for example, 10,000), the information processing apparatus 100 has five edges (two input edges and three output edges) in the additional node. Etc.) are connected. For example, when the number of nodes in the graph satisfies the change condition of the first threshold value, the information processing apparatus 100 changes the connection condition to five edges (two input edges, three output edges, etc.) and displays the graph. Add a node. The information processing apparatus 100 adds an edge to the graph based on a connection condition for connecting five edges (two input edges, three output edges, etc.) until the number of nodes in the graph reaches 10,000. do.

そして、情報処理装置100は、第1グラフのノード数が第3閾値(例えば十万個)までの第3段階では、追加ノードに10本(4本の入力エッジ及び6本の出力エッジ等)のエッジを連結する。例えば、情報処理装置100は、グラフのノード数が第2閾値の変更条件を満たす場合、連結条件を10本(4本の入力エッジ及び6本の出力エッジ等)に変更し、グラフにノードを追加する。情報処理装置100は、グラフのノード数が十万個に達するまで、10本(4本の入力エッジ及び6本の出力エッジ等)を連結する連結条件に基づいて、グラフにエッジを追加する。また、情報処理装置100は、グラフのノード数が第3閾値の変更条件を満たす場合、連結条件をさらにエッジ数を増加した条件に変更し、グラフにノードを追加する。 Then, in the third stage where the number of nodes in the first graph is up to the third threshold value (for example, 100,000), the information processing apparatus 100 has 10 additional nodes (4 input edges, 6 output edges, etc.). Connect the edges of. For example, when the number of nodes in the graph satisfies the change condition of the second threshold value, the information processing apparatus 100 changes the connection condition to 10 (4 input edges, 6 output edges, etc.) and displays the nodes in the graph. to add. The information processing apparatus 100 adds an edge to the graph based on a connection condition for connecting 10 (4 input edges, 6 output edges, etc.) until the number of nodes in the graph reaches 100,000. Further, when the number of nodes in the graph satisfies the change condition of the third threshold value, the information processing apparatus 100 changes the connection condition to a condition in which the number of edges is further increased, and adds the node to the graph.

このように、情報処理装置100は、段階的に連結するエッジ数を増加させることにより、エッジのばらつきを抑制することができるため、検索に用いるグラフを適切に生成することができる。 As described above, the information processing apparatus 100 can suppress the variation of the edges by increasing the number of edges to be connected stepwise, so that the graph used for the search can be appropriately generated.

〔1-2.グラフデータ〕
なお、図1の例では、情報処理装置100が最初(ノード数が0個の状態)からグラフGR11を生成する場合、すなわちグラフを新規に生成する場合を示したが、情報処理装置100は、新規生成に限らず、種々のグラフを生成してもよい。例えば、情報処理装置100は、ノードやエッジが含まれるグラフに、新たに追加されたオブジェクトに対応するノードを追加することにより、グラフを生成してもよい。例えば、情報処理装置100は、エッジが調整され再構築されたグラフに、新たに追加されたオブジェクトに対応するノードを追加することにより、グラフを生成してもよい。例えば、情報処理装置100は、図13に示す再構築グラフGR21に、新たに追加されたオブジェクトに対応するノードを追加し、再構築グラフGR21を更新することにより、グラフを生成してもよい。
[1-2. Graph data]
In the example of FIG. 1, the case where the information processing apparatus 100 generates the graph GR11 from the beginning (the state where the number of nodes is 0), that is, the case where the graph is newly generated is shown, but the information processing apparatus 100 Not limited to new generation, various graphs may be generated. For example, the information processing apparatus 100 may generate a graph by adding a node corresponding to the newly added object to the graph including the node and the edge. For example, the information processing apparatus 100 may generate a graph by adding a node corresponding to the newly added object to the graph whose edges have been adjusted and reconstructed. For example, the information processing apparatus 100 may generate a graph by adding a node corresponding to the newly added object to the reconstruction graph GR21 shown in FIG. 13 and updating the reconstruction graph GR21.

〔1-3.連結条件〕
図1の例では、入力閾値や出力閾値を所定数だけ増加させる場合を示したが、情報処理装置100は、入力閾値や出力閾値について種々の態様により変更を行ってもよい。例えば、一定数の初期ノードの出力エッジの平均値を付与する入力エッジと出力エッジ数の総数としてもよい。例えば、最初に追加した一定数(例えば50個等)のノード(初期ノード)の出力エッジの平均値を、入力閾値と出力閾値の総数としてもよい。また、情報処理装置100は、入力閾値や出力閾値を所定の割合だけ増加させてもよい。例えば、対象が「入力エッジ」であり、変更条件ACDXの変更内容が「10%増加」であり、入力閾値が「10」本である場合、情報処理装置100は、入力閾値が「10」本を「11(=10+10*0.1)」本に増加させてもよい。また、情報処理装置100は、入力閾値や出力閾値の増加に限らず、入力閾値や出力閾値を減少させる変更を行ってもよい。なお、連結条件は、入力閾値や出力閾値に限らず、グラフ生成時においてエッジの連結に関連する条件であれば、どのような条件であってもよい。
[1-3. Consolidation conditions]
In the example of FIG. 1, the case where the input threshold value and the output threshold value are increased by a predetermined number is shown, but the information processing apparatus 100 may change the input threshold value and the output threshold value in various ways. For example, it may be the total number of input edges and output edges that give an average value of the output edges of a certain number of initial nodes. For example, the average value of the output edges of a certain number of nodes (for example, 50 or the like) added first may be the total number of the input threshold value and the output threshold value. Further, the information processing apparatus 100 may increase the input threshold value and the output threshold value by a predetermined ratio. For example, when the target is an "input edge", the change content of the change condition ACDX is "10% increase", and the input threshold value is "10", the information processing apparatus 100 has an input threshold value of "10" lines. May be increased to "11 (= 10 + 10 * 0.1)" books. Further, the information processing apparatus 100 is not limited to increasing the input threshold value and the output threshold value, and may make changes to decrease the input threshold value and the output threshold value. The connection condition is not limited to the input threshold value and the output threshold value, and may be any condition as long as it is a condition related to edge connection at the time of graph generation.

〔1-4.変更条件〕
なお、図1に示す変更条件は一例であり、情報処理装置100は、種々の変更条件を用いてもよい。例えば、情報処理装置100は、グラフに追加された追加ノードの割合に基づく変更条件を用いてもよい。例えば、情報処理装置100は、図13中の再構築条件を変更条件として用いてもよい。例えば、情報処理装置100は、グラフに含まれるノードのうち、追加ノードの割合が所定の閾値以上であることを条件とする変更条件を用いてもよい。例えば、情報処理装置100は、グラフに含まれるノードのうち、有向エッジの調整処理である再構築処理以後に追加された追加ノードの割合が所定の閾値以上であることを条件とする変更条件を用いてもよい。
[1-4. Change conditions]
The change condition shown in FIG. 1 is an example, and the information processing apparatus 100 may use various change conditions. For example, the information processing apparatus 100 may use a change condition based on the percentage of additional nodes added to the graph. For example, the information processing apparatus 100 may use the reconstruction condition in FIG. 13 as a change condition. For example, the information processing apparatus 100 may use a change condition on the condition that the ratio of the additional nodes among the nodes included in the graph is equal to or higher than a predetermined threshold value. For example, the information processing apparatus 100 is a change condition on the condition that the ratio of the additional nodes added after the reconstruction process, which is the adjustment process of the directed edge, among the nodes included in the graph is equal to or higher than a predetermined threshold value. May be used.

また、例えば、情報処理装置100は、グラフの生成時間に関する変更条件を用いてもよい。この場合、情報処理装置100は、生成処理に要する時間(生成時間)を推定する。例えば、情報処理装置100は、追加するノードの数など、グラフを構成するノード数(構成ノード数)を示す情報を取得した場合、その構成ノード数に基づいて、生成時間を推定してもよい。例えば、情報処理装置100は、グラフ生成開始時から所定数(例えば10や100等)のノードを追加時の処理時間(サンプル時間)を用いて、生成時間を推定してもよい。 Further, for example, the information processing apparatus 100 may use a change condition regarding the graph generation time. In this case, the information processing apparatus 100 estimates the time (generation time) required for the generation process. For example, when the information processing apparatus 100 acquires information indicating the number of nodes constituting the graph (number of constituent nodes) such as the number of nodes to be added, the information processing apparatus 100 may estimate the generation time based on the number of constituent nodes. .. For example, the information processing apparatus 100 may estimate the generation time by using the processing time (sample time) at the time of adding a predetermined number (for example, 10 or 100) of nodes from the start of graph generation.

例えば、情報処理装置100は、サンプル時間と、構成ノード数と、連結条件とを用いて、生成時間(推定生成時間)を推定してもよい。例えば、情報処理装置100は、過去のグラフ生成の履歴情報を用いて、推定生成時間を推定してもよい。例えば、情報処理装置100は、サンプル時間、構成ノード数及び連結条件の組合せと、過去のグラフ生成の履歴情報とを比較し、履歴情報のうち、サンプル時間、構成ノード数及び連結条件の組合せと類似する履歴に含まれる処理時間を、推定生成時間として推定してもよい。 For example, the information processing apparatus 100 may estimate the generation time (estimated generation time) by using the sample time, the number of constituent nodes, and the connection condition. For example, the information processing apparatus 100 may estimate the estimated generation time by using the history information of the past graph generation. For example, the information processing apparatus 100 compares the combination of the sample time, the number of constituent nodes, and the connection condition with the history information of the past graph generation, and among the history information, the combination of the sample time, the number of constituent nodes, and the connection condition. The processing time included in the similar history may be estimated as the estimated generation time.

そして、情報処理装置100は、指定された生成時間(指定時間)を超過すると推定される場合、連結エッジ数を減少させるように連結条件を変更してもよい。例えば、情報処理装置100は、推定生成時間と指定時間とを比較し、推定生成時間が指定時間を超える場合、連結エッジ数を減少させるように連結条件を変更してもよい。 Then, when the information processing apparatus 100 is estimated to exceed the designated generation time (designated time), the information processing apparatus 100 may change the connection conditions so as to reduce the number of connection edges. For example, the information processing apparatus 100 may compare the estimated generation time with the designated time, and if the estimated generation time exceeds the designated time, the connection condition may be changed so as to reduce the number of connected edges.

〔1-5.起点用情報〕
例えば、情報処理装置100は、図15に示すようなツリー構造(木構造)に関する起点用情報IND11を起点用情報(起点用インデックス)として用いてもよい。図15は、実施形態に係る情報処理に用いる起点用情報の一例を示す図である。例えば、起点用情報IND11は、グラフGR11中のノードに到達可能なツリー構造を有するインデックスである。図15の例では説明を簡単にするために、起点用情報IND11は、ノードN1~N5の5個のノードに到達するルートのみを図示するが、多数(例えば500や1000等)の他のノードへ到達するルートが含まれてもよい。例えば、起点用情報IND11は、グラフGR11中の全ノードに到達可能であってもよい。
[1-5. Information for starting point]
For example, the information processing apparatus 100 may use the starting point information IND11 regarding the tree structure (tree structure) as shown in FIG. 15 as the starting point information (starting point index). FIG. 15 is a diagram showing an example of starting point information used for information processing according to the embodiment. For example, the starting information IND11 is an index having a tree structure that can reach the nodes in the graph GR11. In the example of FIG. 15, for the sake of simplicity, the origin information IND11 illustrates only the route to reach the five nodes N1 to N5, but many other nodes (eg, 500, 1000, etc.). May include a route to reach. For example, the origin information IND11 may be reachable to all the nodes in the graph GR11.

なお、起点用情報IND11のような起点用情報は、情報処理装置100が生成してもよいし、情報処理装置100は、起点用情報を情報提供装置50等の他の外部装置から取得してもよい。例えば、情報処理装置100は、起点用情報を生成する場合は、木構造に関する種々の従来技術を適宜用いて、グラフ(例えばグラフGR11)に含まれるノードをリーフとする木構造の起点用情報(例えば起点用情報IND11)を生成する。また、情報処理装置100は、新たなノードがグラフ(例えばグラフGR11)に追加された場合、新たに追加されたオブジェクトに対応するノード(「追加ノード」ともいう)をリーフとして木構造の起点用情報(例えば起点用情報IND11)に追加する。これにより、情報処理装置100は、新たなノードがグラフに追加された場合、起点用情報を更新する。すなわち、情報処理装置100は、新たなノードがグラフに追加された場合、新たなノードをリーフとして追加した起点用情報を生成する。 The information processing device 100 may generate the starting point information such as the starting point information IND11, and the information processing device 100 acquires the starting point information from another external device such as the information providing device 50. May be good. For example, when the information processing apparatus 100 generates the starting point information, the information processing apparatus 100 appropriately uses various conventional techniques related to the tree structure, and the starting point information of the tree structure (for example, the graph GR11) has a node as a leaf. For example, the starting point information IND11) is generated. Further, when a new node is added to the graph (for example, graph GR11), the information processing apparatus 100 uses the node corresponding to the newly added object (also referred to as “additional node”) as a leaf for the starting point of the tree structure. It is added to the information (for example, starting information IND11). As a result, the information processing apparatus 100 updates the starting point information when a new node is added to the graph. That is, when a new node is added to the graph, the information processing apparatus 100 generates information for a starting point in which the new node is added as a leaf.

上記のように、情報処理装置100は、木構造に関する種々の従来技術を適宜用いて、起点用情報記憶部125(図8参照)に記憶された起点用情報IND11のような、起点用インデックスを生成する。例えば、情報処理装置100は、新たにオブジェクトが追加された場合、新たに追加されたオブジェクトに対応するノードをリーフとして追加することにより、起点用情報IND11を更新してもよい。図1の例では、情報処理装置100は、ノードN3やノードN4等が追加される毎に、ノードN3やノードN4等をリーフとして追加することにより、起点用情報IND11を更新してもよい。 As described above, the information processing apparatus 100 appropriately uses various conventional techniques related to the tree structure to obtain a starting point index such as the starting point information IND11 stored in the starting point information storage unit 125 (see FIG. 8). Generate. For example, when a new object is added, the information processing apparatus 100 may update the starting information IND11 by adding a node corresponding to the newly added object as a leaf. In the example of FIG. 1, the information processing apparatus 100 may update the starting point information IND11 by adding the node N3, the node N4, or the like as a leaf each time the node N3, the node N4, or the like is added.

また、情報処理装置100は、他の外部装置から起点用情報を取得する場合は、他の外部装置へグラフを提供する。そして、情報処理装置100は、グラフを受信した他の外部装置が生成した起点用情報を、他の外部装置から取得する。例えば、情報処理装置100は、情報提供装置50から起点用情報IND11を取得する場合は、情報提供装置50へグラフGR11を送信する。そして、情報処理装置100は、グラフGR11を受信した情報提供装置50が生成した起点用情報IND11を、情報提供装置50から取得する。例えば、情報処理装置100は、起点用情報IND11と追加ノードに関する情報とを情報提供装置50へ提供することにより、情報提供装置50から追加ノードにより更新された起点用情報IND11を取得してもよい。なお、上記は一例であり、情報提供装置50は、起点用情報IND11を取得可能であれば、どのような手段により起点用情報IND11を取得してもよい。 Further, when the information processing apparatus 100 acquires the starting point information from another external device, the information processing apparatus 100 provides the graph to the other external device. Then, the information processing device 100 acquires the starting point information generated by the other external device that has received the graph from the other external device. For example, when the information processing apparatus 100 acquires the starting information IND11 from the information providing apparatus 50, the information processing apparatus 100 transmits the graph GR11 to the information providing apparatus 50. Then, the information processing apparatus 100 acquires the starting point information IND11 generated by the information providing apparatus 50 that has received the graph GR11 from the information providing apparatus 50. For example, the information processing device 100 may acquire the starting point information IND11 updated by the additional node from the information providing device 50 by providing the starting point information IND11 and the information about the additional node to the information providing device 50. .. The above is an example, and the information providing device 50 may acquire the starting point information IND11 by any means as long as the starting point information IND11 can be acquired.

また、情報処理装置100は、図15中のインデックス情報群GINF11に示すような起点用情報IND11を用いて起点ノードを決定してもよい。図15の例では、情報処理装置100は、起点用情報IND11に基づいて、クエリQE1に対応する起点ノードを決定する。クエリQE1は、新たに追加するオブジェクトに対応するノードやグラフGR11を用いた検索を行う対象等であってもよい。すなわち、情報処理装置100は、グラフ生成時や検索時において、起点用情報IND11を用いて、起点ノードを決定する。 Further, the information processing apparatus 100 may determine the starting point node by using the starting point information IND11 as shown in the index information group GINF11 in FIG. In the example of FIG. 15, the information processing apparatus 100 determines the starting point node corresponding to the query QE1 based on the starting point information IND11. The query QE1 may be a node corresponding to the newly added object, a target to be searched using the graph GR11, or the like. That is, the information processing apparatus 100 determines the starting point node by using the starting point information IND11 at the time of graph generation or retrieval.

具体的には、情報処理装置100は、起点用情報記憶部125(図8参照)に記憶された起点用情報IND11を用いて、起点ノードを決定する。図15中の起点用情報IND11は、図8中の起点用情報記憶部125に示す階層構造を有する。例えば、起点用情報IND11は、ルートRTの直下に位置する第1階層のノード(ベクトル)が、節点VT1、VT2、VT3等であることを示す。また、例えば、起点用情報IND11は、節点VT2の直下の第2階層のノードが、節点VT2-1~VT2-4(図示せず)であることを示す。例えば、起点用情報IND11は、節点VT2-1の直下の第3階層のノードが、ノードN1、N2、すなわちグラフGR11中のノード(ベクトル)であることを示す。また、起点用情報IND11は、節点VT2-2の直下の第3階層のノードが、ノードN3、N4、N5、すなわちグラフGR11中のノード(ベクトル)であることを示す。 Specifically, the information processing apparatus 100 determines the starting point node by using the starting point information IND11 stored in the starting point information storage unit 125 (see FIG. 8). The starting point information IND11 in FIG. 15 has a hierarchical structure shown in the starting point information storage unit 125 in FIG. For example, the starting point information IND11 indicates that the node (vector) of the first layer located immediately below the root RT is a node VT1, VT2, VT3, or the like. Further, for example, the starting point information IND11 indicates that the nodes in the second layer immediately below the node VT2 are the nodes VT2-1 to VT2-4 (not shown). For example, the starting point information IND11 indicates that the node in the third layer immediately below the node VT2-1 is the node N1, N2, that is, the node (vector) in the graph GR11. Further, the starting point information IND11 indicates that the node in the third layer immediately below the node VT2-2 is the node N3, N4, N5, that is, the node (vector) in the graph GR11.

例えば、情報処理装置100は、図1中の起点用情報IND11に示すような木構造型の起点用インデックス情報を用いて、グラフGR11における起点ノードを決定する。図1の例では、情報処理装置100は、クエリQE1に基づいて、起点用情報IND11を上(ルートRT)から下へ辿ることにより、起点用情報IND11の近傍候補となる起点ノードを決定(特定)する。これにより、情報処理装置100は、効率的に検索クエリ(クエリQE1)に対応する起点ノードを決定することができる。例えば、情報処理装置100は、追加ノードであるクエリQE1に対応する適切な起点ノードを高速に決定することができる。 For example, the information processing apparatus 100 determines the starting point node in the graph GR11 by using the tree-structured starting point index information as shown in the starting point information IND11 in FIG. In the example of FIG. 1, the information processing apparatus 100 determines (identifies) a starting node that is a candidate for the vicinity of the starting information IND11 by tracing the starting information IND11 from the top (route RT) to the bottom based on the query QE1. )do. As a result, the information processing apparatus 100 can efficiently determine the starting node corresponding to the search query (query QE1). For example, the information processing apparatus 100 can quickly determine an appropriate starting node corresponding to the query QE1 which is an additional node.

なお、情報処理装置100は、上記に限らず、種々の起点用インデックスを用いてもよい。すなわち、図15の例に示す起点用情報(起点用インデックス)は一例であり、情報処理装置100は、種々の起点用情報を用いて、グラフ情報を検索してもよい。情報処理装置100は、検索時の起点ノードの決定に用いる起点用インデックスを生成してもよい。例えば、情報処理装置100は、高次元ベクトルを高速に検索するための検索インデックス(起点用情報)を生成する。ここでいう高次元ベクトルとは、例えば、数百次元から数千次元のベクトルであってもよいし、それ以上の次元のベクトルであってもよい。 The information processing apparatus 100 is not limited to the above, and various starting point indexes may be used. That is, the starting point information (starting point index) shown in the example of FIG. 15 is an example, and the information processing apparatus 100 may search for graph information using various starting point information. The information processing apparatus 100 may generate a starting point index used for determining the starting point node at the time of searching. For example, the information processing apparatus 100 generates a search index (starting point information) for searching a high-dimensional vector at high speed. The high-dimensional vector referred to here may be, for example, a vector having several hundred dimensions to several thousand dimensions, or a vector having more dimensions.

例えば、情報処理装置100は、kd木(k-dimensional tree)に関する検索インデックスを起点用インデックスとして生成してもよい。例えば、情報処理装置100は、VP木(Vantage-Point tree)に関する検索インデックスを起点用インデックスとして生成してもよい。 For example, the information processing apparatus 100 may generate a search index related to a kd tree (k-dimensional tree) as a starting index. For example, the information processing apparatus 100 may generate a search index related to a VP tree (Vantage-Point tree) as a starting index.

また、例えば、情報処理装置100は、その他の木構造を有する起点用インデックスとして生成してもよい。例えば、情報処理装置100は、木構造の起点用インデックスのリーフがグラフに接続する種々の起点用インデックスを生成してもよい。例えば、情報処理装置100は、木構造の起点用インデックスのリーフがグラフ中のノードに対応する種々の起点用インデックスを生成してもよい。また、情報処理装置100は、このような起点用インデックスを用いて検索を行う場合、起点用インデックスを辿って到達したリーフ(ノード)からグラフを探索してもよい。 Further, for example, the information processing apparatus 100 may be generated as a starting index having another tree structure. For example, the information processing apparatus 100 may generate various origin indexes in which the leaf of the origin index of the tree structure is connected to the graph. For example, the information processing apparatus 100 may generate various origin indexes in which the leaf of the origin index of the tree structure corresponds to the node in the graph. Further, when the information processing apparatus 100 performs a search using such a starting point index, the information processing apparatus 100 may search for a graph from a leaf (node) reached by following the starting point index.

なお、上述したような起点用インデックスは一例であり、情報処理装置100は、グラフ中のクエリを高速に特定することが可能であれば、どのようなデータ構造の起点用インデックスを生成してもよい。例えば、情報処理装置100は、クエリに対応するグラフ情報中のノードを高速に特定することが可能であれば、バイナリ空間分割に関する技術等の種々の従来技術を適宜用いて、起点用インデックスを生成してもよい。例えば、情報処理装置100は、高次元ベクトルの検索に対応可能な起点用インデックスであれば、どのようなデータ構造の起点用インデックスを生成してもよい。情報処理装置100は、上述のような起点用インデックスとグラフとを用いることにより、所定の対象に関してより効率的な検索を可能にすることができる。すなわち、情報処理装置100は、上述のような起点用インデックスとグラフとを用いることにより、所定の対象に関する検索をより高速に実行可能にすることができる。 The starting index as described above is an example, and the information processing apparatus 100 may generate a starting index of any data structure as long as the query in the graph can be specified at high speed. good. For example, if the information processing apparatus 100 can identify a node in graph information corresponding to a query at high speed, the information processing apparatus 100 generates an index for a starting point by appropriately using various conventional techniques such as a technique related to binary space partitioning. You may. For example, the information processing apparatus 100 may generate a starting index of any data structure as long as it is a starting index capable of searching for a high-dimensional vector. The information processing apparatus 100 can enable a more efficient search for a predetermined target by using the starting index and the graph as described above. That is, the information processing apparatus 100 can execute a search for a predetermined target at a higher speed by using the starting point index and the graph as described above.

〔2.情報処理システムの構成〕
図2に示すように、情報処理システム1は、端末装置10と、情報提供装置50と、情報処理装置100とが含まれる。端末装置10と、情報提供装置50と、情報処理装置100とは所定のネットワークNを介して、有線または無線により通信可能に接続される。図2は、実施形態に係る情報処理システムの構成例を示す図である。なお、図2に示した情報処理システム1には、複数台の端末装置10や、複数台の情報提供装置50や、複数台の情報処理装置100が含まれてもよい。
[2. Information processing system configuration]
As shown in FIG. 2, the information processing system 1 includes a terminal device 10, an information providing device 50, and an information processing device 100. The terminal device 10, the information providing device 50, and the information processing device 100 are connected to each other via a predetermined network N so as to be communicable by wire or wirelessly. FIG. 2 is a diagram showing a configuration example of an information processing system according to an embodiment. The information processing system 1 shown in FIG. 2 may include a plurality of terminal devices 10, a plurality of information providing devices 50, and a plurality of information processing devices 100.

端末装置10は、ユーザによって利用される情報処理装置である。端末装置10は、ユーザによる種々の操作を受け付ける。なお、以下では、端末装置10をユーザと表記する場合がある。すなわち、以下では、ユーザを端末装置10と読み替えることもできる。なお、上述した端末装置10は、例えば、スマートフォンや、タブレット型端末や、ノート型PC(Personal Computer)や、デスクトップPCや、携帯電話機や、PDA(Personal Digital Assistant)等により実現される。 The terminal device 10 is an information processing device used by the user. The terminal device 10 accepts various operations by the user. In the following, the terminal device 10 may be referred to as a user. That is, in the following, the user can be read as the terminal device 10. The terminal device 10 described above is realized by, for example, a smartphone, a tablet terminal, a notebook PC (Personal Computer), a desktop PC, a mobile phone, a PDA (Personal Digital Assistant), or the like.

情報提供装置50は、ユーザ等に種々の情報提供を行うための情報が格納された情報処理装置である。例えば、情報提供装置50は、ウェブサーバ等の種々の外部装置から収集した文字情報等に基づくオブジェクトIDが格納される。例えば、情報提供装置50は、ユーザ等に画像検索サービスを提供する情報処理装置である。例えば、情報提供装置50は、画像検索サービスを提供するための各情報が格納される。例えば、情報提供装置50は、画像検索サービスの対象となる画像に対応するベクトル情報を情報処理装置100に提供する。また、情報提供装置50は、クエリを情報処理装置100に送信することにより、情報処理装置100からクエリに対応する画像を示すオブジェクトID等を受信する。 The information providing device 50 is an information processing device in which information for providing various information to a user or the like is stored. For example, the information providing device 50 stores an object ID based on character information or the like collected from various external devices such as a web server. For example, the information providing device 50 is an information processing device that provides an image search service to users and the like. For example, the information providing device 50 stores each information for providing an image search service. For example, the information providing device 50 provides the information processing device 100 with vector information corresponding to an image that is the target of the image search service. Further, the information providing device 50 receives an object ID or the like indicating an image corresponding to the query from the information processing device 100 by transmitting the query to the information processing device 100.

情報処理装置100は、データ検索の対象となる一のオブジェクトと、一のオブジェクトとは異なる他のオブジェクトの各々に対応する複数のノード、及びノード間を連結する有向エッジを含む第1グラフを用いて、第2グラフを生成する情報処理装置である。すなわち、情報処理装置100は、第1グラフを用いて、第2グラフを生成する生成装置である。例えば、情報処理装置100は、第1グラフ中の複数のノードのうち、一のオブジェクトに対応する一のノードの近傍に位置する近傍ノードを選択する。そして、情報処理装置100は、一のノードを第1グラフに追加し、有向エッジの連結に関し、所定の条件により変更される連結条件に基づいて、一のノードと近傍ノードとの間を有向エッジにより連結した第2グラフを生成する。 The information processing apparatus 100 displays a first graph including one object to be searched for data, a plurality of nodes corresponding to each of other objects different from the one object, and a directed edge connecting the nodes. It is an information processing device that generates a second graph by using it. That is, the information processing device 100 is a generation device that generates a second graph using the first graph. For example, the information processing apparatus 100 selects a neighboring node located in the vicinity of one node corresponding to one object from among a plurality of nodes in the first graph. Then, the information processing apparatus 100 adds one node to the first graph, and has a connection between the one node and the neighboring node based on the connection condition changed by a predetermined condition regarding the connection of the directed edge. A second graph connected by a directed edge is generated.

例えば、情報処理装置100は、端末装置からクエリ情報(以下、単に「クエリ」ともいう)を受信すると、クエリに類似する対象(ベクトル情報等)を検索し、検索結果を端末装置に提供する。また、例えば、情報処理装置100が端末装置に提供するデータは、画像情報等のデータ自体であってもよいし、URL(Uniform Resource Locator)等の対応するデータを参照するための情報であってもよい。また、クエリや検索対象のデータは、画像、音声、テキストデータなど、如何なる種類のデータであってもよい。本実施形態において、情報処理装置100が画像を検索する場合を一例として説明する。 For example, when the information processing device 100 receives query information (hereinafter, also simply referred to as “query”) from the terminal device, the information processing device 100 searches for an object (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 information processing apparatus 100 to the terminal apparatus may be the data itself such as image information, or the information for referring to the corresponding data such as a URL (Uniform Resource Locator). May be good. Further, the data to be queried or searched may be any kind of data such as image, voice, and text data. In the present embodiment, the case where the information processing apparatus 100 searches for an image will be described as an example.

〔3.情報処理装置の構成〕
次に、図3を用いて、実施形態に係る情報処理装置100の構成について説明する。図3は、実施形態に係る情報処理装置100の構成例を示す図である。図3に示すように、情報処理装置100は、通信部110と、記憶部120と、制御部130とを有する。なお、情報処理装置100は、情報処理装置100の管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(例えば、液晶ディスプレイ等)を有してもよい。
[3. Information processing device configuration]
Next, the configuration of the information processing apparatus 100 according to the embodiment will be described with reference to FIG. FIG. 3 is a diagram showing a configuration example of the information processing apparatus 100 according to the embodiment. As shown in FIG. 3, the information processing apparatus 100 includes a communication unit 110, a storage unit 120, and a control unit 130. The information processing device 100 includes an input unit (for example, a keyboard, a mouse, etc.) that receives various operations from the administrator of the information processing device 100, and a display unit (for example, a liquid crystal display, etc.) for displaying various information. You may have.

(通信部110)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部110は、ネットワーク(例えば図2中のネットワークN)と有線または無線で接続され、端末装置10や情報提供装置50との間で情報の送受信を行う。
(Communication unit 110)
The communication unit 110 is realized by, for example, a NIC (Network Interface Card) or the like. Then, the communication unit 110 is connected to the network (for example, the network N in FIG. 2) by wire or wirelessly, and transmits / receives information to / from the terminal device 10 and the information providing device 50.

(記憶部120)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。実施形態に係る記憶部120は、図3に示すように、オブジェクト情報記憶部121と、連結条件情報記憶部122と、変更条件情報記憶部123と、グラフデータ記憶部124と、起点用情報記憶部125と、再構築条件情報記憶部126と、再構築グラフデータ記憶部127とを有する。
(Memory unit 120)
The storage unit 120 is realized by, for example, a semiconductor memory element 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. As shown in FIG. 3, the storage unit 120 according to the embodiment includes an object information storage unit 121, a connection condition information storage unit 122, a change condition information storage unit 123, a graph data storage unit 124, and a starting information storage unit. It has a unit 125, a reconstruction condition information storage unit 126, and a reconstruction graph data storage unit 127.

(オブジェクト情報記憶部121)
実施形態に係るオブジェクト情報記憶部121は、オブジェクトに関する各種情報を記憶する。例えば、オブジェクト情報記憶部121は、オブジェクトIDやベクトルデータを記憶する。図4は、実施形態に係るオブジェクト情報記憶部の一例を示す図である。図4に示すオブジェクト情報記憶部121は、「オブジェクトID」、「ベクトル情報」といった項目が含まれる。
(Object information storage unit 121)
The object information storage unit 121 according to the embodiment stores various information about the object. For example, the object information storage unit 121 stores object IDs and vector data. FIG. 4 is a diagram showing an example of an object information storage unit according to an embodiment. The object information storage unit 121 shown in FIG. 4 includes items such as “object ID” and “vector information”.

「オブジェクトID」は、オブジェクトを識別するための識別情報を示す。また、「ベクトル情報」は、オブジェクトIDにより識別されるオブジェクトに対応するベクトル情報を示す。すなわち、図4の例では、オブジェクトを識別するオブジェクトIDに対して、オブジェクトに対応するベクトルデータ(ベクトル情報)が対応付けられて登録されている。 The "object ID" indicates identification information for identifying an object. Further, "vector information" indicates vector information corresponding to the object identified by the object ID. That is, in the example of FIG. 4, the vector data (vector information) corresponding to the object is associated and registered with the object ID that identifies the object.

例えば、図4の例では、ID「OB1」により識別されるオブジェクト(対象)は、「10,24,51,2...」の多次元のベクトル情報が対応付けられることを示す。 For example, in the example of FIG. 4, it is shown that the object (object) identified by the ID “OB1” is associated with the multidimensional vector information of “10, 24, 51, 2, ...”.

なお、オブジェクト情報記憶部121は、上記に限らず、目的に応じて種々の情報を記憶してもよい。 The object information storage unit 121 is not limited to the above, and may store various information depending on the purpose.

(連結条件情報記憶部122)
実施形態に係る連結条件情報記憶部122は、エッジの連結に関する連結条件に関する各種情報を記憶する。図5は、実施形態に係る連結条件情報記憶部の一例を示す図である。図5に示す連結条件情報記憶部122は、「連結条件ID」、「対象」、「閾値名」、「値」といった項目が含まれる。
(Consolidation condition information storage unit 122)
The connection condition information storage unit 122 according to the embodiment stores various information regarding connection conditions related to edge connection. FIG. 5 is a diagram showing an example of a connection condition information storage unit according to an embodiment. The connection condition information storage unit 122 shown in FIG. 5 includes items such as “connection condition ID”, “target”, “threshold value name”, and “value”.

「連結条件ID」は、有向エッジの連結に関する連結条件を識別する情報を示す。「対象」は、連結条件IDにより識別される連結条件の対象を示す。「閾値名」は、閾値を識別するための情報(名称)を示す。また、「値」は、対応する閾値の具体的な値を示す。 "Concatenation condition ID" indicates information for identifying the concatenation condition regarding the concatenation of the directed edge. “Target” indicates the target of the concatenation condition identified by the concatenation condition ID. The "threshold name" indicates information (name) for identifying the threshold. Further, the “value” indicates a specific value of the corresponding threshold value.

図5の例では、連結条件ID「LCD1」により識別される連結条件(連結条件LCD1)は、入力エッジを対象とする条件であることを示す。連結条件LCD1として用いられる条件は、入力閾値であり、その値は「ITH1」であることを示す。なお、図5に示す例では、「入力閾値」の値は、「ITH1」といった抽象的な符号を図示するが、「2」や「10」等の具体的な数値であるものとする。 In the example of FIG. 5, the connection condition (connection condition LCD1) identified by the connection condition ID “LCD1” indicates that the condition targets the input edge. Concatenation condition The condition used as LCD1 is an input threshold value, which indicates that the value is "ITH1". In the example shown in FIG. 5, the value of the "input threshold value" is shown as an abstract code such as "ITH1", but is assumed to be a specific numerical value such as "2" or "10".

また、図5の例では、連結条件ID「LCD2」により識別される連結条件(連結条件LCD2)は、出力エッジを対象とする条件であることを示す。連結条件LCD2として用いられる条件は、出力閾値であり、その値は「OTH1」であることを示す。なお、図5に示す例では、「出力閾値」の値は、「OTH1」といった抽象的な符号を図示するが、「1」や「20」等の具体的な数値であるものとする。 Further, in the example of FIG. 5, it is shown that the connection condition (connection condition LCD2) identified by the connection condition ID “LCD2” is a condition for the output edge. The condition used as the connection condition LCD2 is an output threshold value, which indicates that the value is “OTH1”. In the example shown in FIG. 5, the value of the "output threshold value" is shown as an abstract code such as "OTH1", but is assumed to be a specific numerical value such as "1" or "20".

なお、連結条件情報記憶部122は、上記に限らず、目的に応じて種々の情報を記憶してもよい。 The connection condition information storage unit 122 is not limited to the above, and may store various information depending on the purpose.

(変更条件情報記憶部123)
実施形態に係る変更条件情報記憶部123は、連結条件の変更に関する変更条件に関する各種情報を記憶する。図6は、実施形態に係る変更条件情報記憶部の一例を示す図である。図6に示す変更条件情報記憶部123は、「変更条件ID」、「決定用情報」、「変更情報」といった項目を有する。
(Change condition information storage unit 123)
The change condition information storage unit 123 according to the embodiment stores various information regarding the change condition regarding the change of the connection condition. FIG. 6 is a diagram showing an example of a change condition information storage unit according to an embodiment. The change condition information storage unit 123 shown in FIG. 6 has items such as "change condition ID", "determination information", and "change information".

「変更条件ID」は、連結条件の変更に関する条件を識別する情報を示す。「決定用情報」は、連結条件を変更するかの決定(判定)に用いる情報が記憶される。「決定用情報」には、「対象情報」、「閾値」といった項目が含まれる。「対象情報」は、連結条件を変更するかの決定に用いられる対象を示す。「閾値」は、判定に用いる閾値を示す。なお、図6に示す例では、「閾値」の値は、「NTH1」といった抽象的な符号を図示するが、「100」や「5000」や「5%」や「0.2」等の具体的な数値であるものとする。 The "change condition ID" indicates information for identifying the condition related to the change of the concatenation condition. The "decision information" stores information used for determining (determining) whether to change the connection condition. The "determination information" includes items such as "target information" and "threshold value". "Target information" indicates the target used in determining whether to change the consolidation condition. The "threshold value" indicates a threshold value used for determination. In the example shown in FIG. 6, the value of the “threshold value” is shown as an abstract code such as “NTH1”, but is concrete such as “100”, “5000”, “5%”, “0.2”, etc. Numerical value.

「変更情報」は、変更される連結条件やその変更内容を示す情報が記憶される。「変更情報」には、「変更対象」、「変更内容」といった項目が含まれる。「変更対象」は、対応する条件を満たす場合に変更される変更対象となる連結条件を示す。「変更対象」には、対象とする連結条件を識別する情報(連結条件ID等)が記憶される。「変更内容」は、対応する条件を満たす場合に連結条件を変更する具体的な内容を示す。なお、図6に示す例では、「変更内容」は、「AINF11」といった抽象的な符号を図示するが、「+1」や「5増加」や「2減少」や「10%増加」や「5%減少」等の種々の変更内容であってもよい。 The "change information" stores information indicating the connection condition to be changed and the content of the change. The "change information" includes items such as "change target" and "change content". "Change target" indicates a consolidation condition to be changed when the corresponding condition is satisfied. Information (consolidation condition ID, etc.) that identifies the target concatenation condition is stored in the "change target". "Change content" indicates a specific content for changing the connection condition when the corresponding condition is satisfied. In the example shown in FIG. 6, the "change content" illustrates an abstract code such as "AINF11", but "+1", "5 increase", "2 decrease", "10% increase", and "5". It may be various changes such as "% decrease".

図6の例では、変更条件ID「ACD1」により識別される変更条件(変更条件ACD1)は、追加ノード数に関する情報を判定に用いる条件であることを示す。変更条件ACD1は、閾値「NTH1」であることを示す。また、変更条件ACD1を満たす場合、変更対象となる連結条件は、連結条件LCD1と連結条件LCD2であることを示す。変更条件ACD1を満たす場合、連結条件LCD1は変更内容AINF11に応じて変更されることを示す。例えば、変更内容AINF11が「2増加」である場合、情報処理装置100は、変更条件ACD1を満たすと判定した場合に、連結条件LCD1の入力閾値ITH1の値を2増加させる。また、変更条件ACD1を満たす場合、連結条件LCD2は変更内容AINF12に応じて変更されることを示す。例えば、変更内容AINF12が「1減少」である場合、情報処理装置100は、変更条件ACD2を満たすと判定した場合に、連結条件LCD2の出力閾値OTH1の値を1減少させる。 In the example of FIG. 6, the change condition (change condition ACD1) identified by the change condition ID “ACD1” indicates that the information regarding the number of additional nodes is used for the determination. The change condition ACD1 indicates that the threshold value is “NTH1”. Further, when the change condition ACD1 is satisfied, it is shown that the connection conditions to be changed are the connection condition LCD1 and the connection condition LCD2. When the change condition ACD1 is satisfied, it is shown that the connection condition LCD1 is changed according to the change content AINF11. For example, when the change content AINF11 is "2 increase", the information processing apparatus 100 increases the value of the input threshold value ITH1 of the connection condition LCD1 by 2 when it is determined that the change condition ACD1 is satisfied. Further, when the change condition ACD1 is satisfied, it is shown that the connection condition LCD2 is changed according to the change content AINF12. For example, when the change content AINF12 is "1 decrease", the information processing apparatus 100 reduces the value of the output threshold value OTH1 of the connection condition LCD2 by 1 when it is determined that the change condition ACD2 is satisfied.

なお、変更条件情報記憶部123は、上記に限らず、目的に応じて種々の情報を記憶してもよい。 The change condition information storage unit 123 is not limited to the above, and may store various information depending on the purpose.

(グラフデータ記憶部124)
実施形態に係るグラフデータ記憶部124は、グラフデータに関する各種情報を記憶する。例えば、グラフデータ記憶部124は、生成したグラフデータを記憶する。図7は、実施形態に係るグラフデータ記憶部の一例を示す図である。図7に示すグラフデータ記憶部124は、「ノードID」、「オブジェクトID」、および「有向エッジ情報」といった項目を有する。また、「有向エッジ情報」には、「エッジID」や「参照先」といった情報が含まれる。
(Graph data storage unit 124)
The graph data storage unit 124 according to the embodiment stores various information related to the graph data. For example, the graph data storage unit 124 stores the generated graph data. FIG. 7 is a diagram showing an example of a graph data storage unit according to an embodiment. The graph data storage unit 124 shown in FIG. 7 has items such as "node ID", "object ID", and "directed edge information". Further, the "directed edge information" includes information such as "edge ID" and "reference destination".

「ノードID」は、グラフデータにおける各ノード(対象)を識別するための識別情報を示す。また、「オブジェクトID」は、オブジェクトを識別するための識別情報を示す。 The "node ID" indicates identification information for identifying each node (target) in the graph data. Further, the "object ID" indicates identification information for identifying an object.

また、「有向エッジ情報」は、対応するノードに接続されるエッジに関する情報を示す。図7の例では、「有向エッジ情報」は、対応するノードから出力される出力エッジに関する情報を示す。また、「エッジID」は、ノード間を連結するエッジを識別するための識別情報を示す。また、「参照先」は、エッジにより連結された参照先(ノード)を示す情報を示す。すなわち、図7の例では、ノードを識別するノードIDに対して、そのノードに対応するオブジェクト(対象)を識別する情報やそのノードからの有向エッジ(出力エッジ)が連結される参照先(ノード)が対応付けられて登録されている。 Further, "directed edge information" indicates information about the edge connected to the corresponding node. In the example of FIG. 7, “directed edge information” indicates information about the output edge output from the corresponding node. Further, the "edge ID" indicates identification information for identifying an edge connecting the nodes. Further, "reference destination" indicates information indicating a reference destination (node) connected by an edge. That is, in the example of FIG. 7, the reference destination (output edge) to which the information for identifying the object (target) corresponding to the node and the directed edge (output edge) from the node are concatenated with respect to the node ID for identifying the node. Node) is associated and registered.

図7の例では、ノードID「N1」により識別されるノード(ノードN1)は、オブジェクトID「OB1」により識別されるオブジェクト(対象)に対応することを示す。また、ノードN1からは、エッジID「E1」により識別されるエッジ(エッジE1)が、ノードID「N2」により識別されるノード(ノードN2)に連結されることを示す。すなわち、図7の例では、グラフデータにおけるノードN1からはエッジE1によりノードN2へ辿ることができることを示す。また、ノードN1からは、エッジID「E3」により識別されるエッジ(エッジE3)が、ノードID「N3」により識別されるノード(ノードN3)に連結されることを示す。すなわち、図7の例では、グラフデータにおけるノードN1からはエッジE3によりノードN3へ辿ることができることを示す。 In the example of FIG. 7, it is shown that the node (node N1) identified by the node ID “N1” corresponds to the object (target) identified by the object ID “OB1”. Further, from the node N1, it is shown that the edge (edge E1) identified by the edge ID “E1” is connected to the node (node N2) identified by the node ID “N2”. That is, in the example of FIG. 7, it is shown that the node N1 in the graph data can be traced to the node N2 by the edge E1. Further, from the node N1, it is shown that the edge (edge E3) identified by the edge ID “E3” is connected to the node (node N3) identified by the node ID “N3”. That is, in the example of FIG. 7, it is shown that the node N1 in the graph data can be traced to the node N3 by the edge E3.

なお、グラフデータ記憶部124は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、グラフデータ記憶部124は、各ノード(ベクトル)間を連結するエッジの長さが記憶されてもよい。すなわち、グラフデータ記憶部124は、各ノード(ベクトル)間の距離を示す情報が記憶されてもよい。また、例えば、グラフデータ記憶部124は、各ノードへの入力エッジの数を示す情報が記憶されてもよい。 The graph data storage unit 124 is not limited to the above, and may store various information depending on the purpose. For example, the graph data storage unit 124 may store the length of the edge connecting each node (vector). That is, the graph data storage unit 124 may store information indicating the distance between each node (vector). Further, for example, the graph data storage unit 124 may store information indicating the number of input edges to each node.

また、グラフデータは、クエリを入力とし、グラフデータ中のエッジを辿ることによりノードを探索し、クエリに類似するノードを抽出し出力するプログラムモジュールを含んでもよい。すなわち、グラフデータは、グラフを用いて検索処理を行うプログラムモジュールとしての利用が想定されるものであってもよい。例えば、グラフデータGR11は、クエリとしてベクトルデータが入力された場合に、そのベクトルデータに類似するベクトルデータに対応するノードをグラフ中から抽出し、出力するプログラムであってもよい。例えば、グラフデータGR11は、クエリ画像に対応する類似画像を検索するプログラムモジュールとして利用されるデータであってもよい。例えば、グラフデータGR11は、入力されたクエリに基づいて、グラフにおいてそのクエリに類似するノードを抽出し、出力するよう、コンピュータを機能させる。 Further, the graph data may include a program module that takes a query as an input, searches for a node by tracing an edge in the graph data, and extracts and outputs a node similar to the query. That is, the graph data may be expected to be used as a program module that performs a search process using a graph. For example, the graph data GR 11 may be a program that extracts and outputs a node corresponding to the vector data similar to the vector data from the graph when the vector data is input as a query. For example, the graph data GR 11 may be data used as a program module for searching a similar image corresponding to a query image. For example, the graph data GR11 causes a computer to extract and output a node similar to the query in the graph based on the input query.

(起点用情報記憶部125)
実施形態に係る起点用情報記憶部125は、起点用情報に関する各種情報を記憶する。図8は、実施形態に係る起点用情報記憶部の一例を示す図である。具体的には、図8の例では、起点用情報記憶部125は、ツリー構造の起点用インデックス情報を示す。図8の例では、起点用情報記憶部125は、「ルート階層」、「第1階層」、「第2階層」、「第3階層」等といった項目が含まれる。なお、「第1階層」~「第3階層」に限らず、インデックスの階層数に応じて、「第4階層」、「第5階層」、「第6階層」等が含まれてもよい。
(Information storage unit 125 for starting point)
The starting point information storage unit 125 according to the embodiment stores various information related to the starting point information. FIG. 8 is a diagram showing an example of a starting point information storage unit according to an embodiment. Specifically, in the example of FIG. 8, the starting point information storage unit 125 shows the starting point index information of the tree structure. In the example of FIG. 8, the starting information storage unit 125 includes items such as “root layer”, “first layer”, “second layer”, and “third layer”. In addition, not limited to "first layer" to "third layer", "fourth layer", "fifth layer", "sixth layer" and the like may be included depending on the number of layers of the index.

「ルート階層」は、インデックスを用いた起点ノードの決定の開始点となるルート(最上位)の階層を示す。「第1階層」は、インデックスの第1階層に属するノード(節点またはグラフ情報中のベクトル)を識別(特定)する情報が格納される。「第1階層」に格納されるノードは、インデックスの根(ルート)に直接結ばれる階層に対応するノードとなる。 The "root hierarchy" indicates a hierarchy of routes (top level) that is a starting point for determining a starting node using an index. The "first layer" stores information for identifying (identifying) a node (node or vector in graph information) belonging to the first layer of the index. The node stored in the "first layer" is a node corresponding to the layer directly connected to the root of the index.

「第2階層」は、インデックスの第2階層に属するノード(節点またはグラフ情報中のベクトル)を識別(特定)する情報が格納される。「第2階層」に格納されるノードは、第1階層のノードに結ばれる直下の階層に対応するノードとなる。「第3階層」は、インデックスの第3階層に属するノード(節点またはグラフ情報中のベクトル)を識別(特定)する情報が格納される。「第3階層」に格納されるノードは、第2階層のノードに結ばれる直下の階層に対応するノードとなる。 The "second layer" stores information for identifying (identifying) a node (node or vector in graph information) belonging to the second layer of the index. The node stored in the "second layer" is a node corresponding to the immediately lower layer connected to the node of the first layer. The "third layer" stores information for identifying (identifying) a node (node or vector in graph information) belonging to the third layer of the index. The node stored in the "third layer" is a node corresponding to the immediately lower layer connected to the node of the second layer.

図8に示す例においては、起点用情報記憶部125には、図1中の起点用情報IND11に対応する情報が記憶される。例えば、起点用情報記憶部125は、第1階層のノードが、節点VT1~VT3等であることを示す。また、各節点の下の括弧内の数値は、各節点に対応するベクトルの値を示す。 In the example shown in FIG. 8, the starting point information storage unit 125 stores information corresponding to the starting point information IND11 in FIG. 1. For example, the information storage unit 125 for the starting point indicates that the nodes in the first layer are nodes VT1 to VT3 and the like. The numerical values in parentheses below each node indicate the value of the vector corresponding to each node.

また、起点用情報記憶部125は、節点VT2の直下の第2階層のノードが、節点VT2-1~VT2-4であることを示す。また、起点用情報記憶部125は、節点VT2-1の直下の第3階層のノードが、ノードN1、ノードN2のグラフGR11中のノード(ベクトル)であることを示す。起点用情報記憶部125は、節点VT2-2の直下の第3階層のノードが、ノードN3、ノードN4、ノードN5のグラフGR11中のノード(ベクトル)であることを示す。 Further, the information storage unit 125 for the starting point indicates that the nodes in the second layer immediately below the node VT2 are the nodes VT2-1 to VT2-4. Further, the information storage unit 125 for the starting point indicates that the node in the third layer immediately below the node VT2-1 is the node (vector) in the graph GR11 of the node N1 and the node N2. The information storage unit 125 for the starting point indicates that the node in the third layer immediately below the node VT2-2 is the node (vector) in the graph GR11 of the node N3, the node N4, and the node N5.

なお、起点用情報記憶部125は、上記に限らず、目的に応じて種々の情報を記憶してもよい。 The starting information storage unit 125 is not limited to the above, and may store various information depending on the purpose.

(再構築条件情報記憶部126)
実施形態に係る再構築条件情報記憶部126は、エッジを調整するグラフの再構築を行うかの決定に用いる条件に関する再構築条件に関する各種情報を記憶する。図9は、実施形態に係る再構築条件情報記憶部の一例を示す図である。図9に示す再構築条件情報記憶部126は、「再構築条件ID」、「決定用情報」といった項目を有する。
(Reconstruction condition information storage unit 126)
The reconstruction condition information storage unit 126 according to the embodiment stores various information regarding the reconstruction conditions regarding the conditions used for determining whether to reconstruct the graph for adjusting the edge. FIG. 9 is a diagram showing an example of the reconstruction condition information storage unit according to the embodiment. The reconstruction condition information storage unit 126 shown in FIG. 9 has items such as “reconstruction condition ID” and “determination information”.

「再構築条件ID」は、グラフの再構築処理の実行の判定に関する条件を識別する情報を示す。「決定用情報」は、再構築を実行するかの決定(判定)に用いる情報が記憶される。「決定用情報」には、「対象情報」、「閾値」といった項目が含まれる。「対象情報」は、再構築を実行するかの決定に用いられる対象を示す。「閾値」は、判定に用いる閾値を示す。なお、図9に示す例では、「閾値」の値は、「NTH2」といった抽象的な符号を図示するが、「10%」や「0.3」や「500」や「10000」等の具体的な数値であるものとする。 The “reconstruction condition ID” indicates information for identifying a condition relating to the determination of execution of the graph reconstruction process. The "decision information" stores information used for determining (determining) whether to execute reconstruction. The "determination information" includes items such as "target information" and "threshold value". "Target information" indicates the target used to determine whether to perform the reconstruction. The "threshold value" indicates a threshold value used for determination. In the example shown in FIG. 9, the value of the "threshold value" is shown as an abstract code such as "NTH2", but is concrete such as "10%", "0.3", "500", "10000", etc. Numerical value.

図9の例では、再構築条件ID「RCD1」により識別される再構築条件(再構築条件RCD1)は、追加ノード割合に関する情報を判定に用いる条件であることを示す。再構築条件RCD1は、閾値「NTH2」であることを示す。すなわち、情報処理装置100は、再構築条件RCD1を満たすと判定した場合、グラフの再構築処理を実行する。再構築条件RCD1が「10%」である場合、情報処理装置100は、グラフ中のノードのうち、追加ノードの割合が10%に達した際に、グラフの再構築処理を実行する。 In the example of FIG. 9, the reconstruction condition (reconstruction condition RCD1) identified by the reconstruction condition ID “RCD1” indicates that the information regarding the ratio of the additional node is used for the determination. The reconstruction condition RCD1 indicates that the threshold value is “NTH2”. That is, when the information processing apparatus 100 determines that the reconstruction condition RCD1 is satisfied, the information processing apparatus 100 executes the graph reconstruction process. When the reconstruction condition RCD1 is "10%", the information processing apparatus 100 executes the graph reconstruction process when the ratio of the additional nodes among the nodes in the graph reaches 10%.

なお、再構築条件情報記憶部126は、上記に限らず、目的に応じて種々の情報を記憶してもよい。 The reconstruction condition information storage unit 126 is not limited to the above, and may store various information depending on the purpose.

(再構築グラフデータ記憶部127)
実施形態に係る再構築グラフデータ記憶部127は、再構築されたグラフデータに関する各種情報を記憶する。図10は、実施形態に係る再構築グラフデータ記憶部の一例を示す図である。図10の例では、再構築グラフデータ記憶部127は、「ノードID」、「オブジェクトID」、および「有向エッジ情報」といった項目を有する。また、「有向エッジ情報」には、「エッジID」や「参照先」といった情報が含まれる。
(Reconstructed graph data storage unit 127)
The reconstructed graph data storage unit 127 according to the embodiment stores various information regarding the reconstructed graph data. FIG. 10 is a diagram showing an example of the reconstructed graph data storage unit according to the embodiment. In the example of FIG. 10, the reconstructed graph data storage unit 127 has items such as “node ID”, “object ID”, and “directed edge information”. Further, the "directed edge information" includes information such as "edge ID" and "reference destination".

「ノードID」は、グラフデータにおける各ノード(対象)を識別するための識別情報を示す。また、「オブジェクトID」は、オブジェクトを識別するための識別情報を示す。 The "node ID" indicates identification information for identifying each node (target) in the graph data. Further, the "object ID" indicates identification information for identifying an object.

また、「有向エッジ情報」は、対応するノードに接続されるエッジに関する情報を示す。図10の例では、「有向エッジ情報」は、対応するノードから出力される出力エッジに関する情報を示す。また、「エッジID」は、ノード間を連結するエッジを識別するための識別情報を示す。また、「参照先」は、エッジにより連結された参照先(ノード)を示す情報を示す。すなわち、図10の例では、ノードを識別するノードIDに対して、そのノードに対応するオブジェクト(対象)を識別する情報やそのノードからの有向エッジ(出力エッジ)が連結される参照先(ノード)が対応付けられて登録されている。 Further, "directed edge information" indicates information about the edge connected to the corresponding node. In the example of FIG. 10, "directed edge information" indicates information about the output edge output from the corresponding node. Further, the "edge ID" indicates identification information for identifying an edge connecting the nodes. Further, "reference destination" indicates information indicating a reference destination (node) connected by an edge. That is, in the example of FIG. 10, the reference destination (output edge) to which the information for identifying the object (target) corresponding to the node and the directed edge (output edge) from the node are concatenated with respect to the node ID for identifying the node. Node) is associated and registered.

図10の例では、ノードID「N1」により識別されるノード(ノードN1)は、オブジェクトID「OB1」により識別されるオブジェクト(対象)に対応することを示す。また、ノードN1からは、エッジID「E1」により識別されるエッジ(エッジE1)が、ノードID「N2」により識別されるノード(ノードN2)に連結されることを示す。すなわち、図10の例では、グラフデータにおけるノードN1からはエッジE1によりノードN2へ辿ることができることを示す。また、ノードN1からは、エッジID「E13」により識別されるエッジ(エッジE13)が、ノードID「N6」により識別されるノード(ノードN6)に連結されることを示す。すなわち、図10の例では、グラフデータにおけるノードN1からはエッジE13によりノードN6へ辿ることができることを示す。 In the example of FIG. 10, it is shown that the node (node N1) identified by the node ID “N1” corresponds to the object (target) identified by the object ID “OB1”. Further, from the node N1, it is shown that the edge (edge E1) identified by the edge ID “E1” is connected to the node (node N2) identified by the node ID “N2”. That is, in the example of FIG. 10, it is shown that the node N1 in the graph data can be traced to the node N2 by the edge E1. Further, from the node N1, it is shown that the edge (edge E13) identified by the edge ID “E13” is connected to the node (node N6) identified by the node ID “N6”. That is, in the example of FIG. 10, it is shown that the node N1 in the graph data can be traced to the node N6 by the edge E13.

なお、再構築グラフデータ記憶部127は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、再構築グラフデータ記憶部127は、各ノード(ベクトル)間を連結するエッジの長さが記憶されてもよい。すなわち、再構築グラフデータ記憶部127は、各ノード(ベクトル)間の距離を示す情報が記憶されてもよい。また、例えば、再構築グラフデータ記憶部127は、各ノードへの入力エッジの数を示す情報が記憶されてもよい。 The reconstructed graph data storage unit 127 is not limited to the above, and may store various information depending on the purpose. For example, the reconstruction graph data storage unit 127 may store the length of the edge connecting each node (vector). That is, the reconstruction graph data storage unit 127 may store information indicating the distance between each node (vector). Further, for example, the reconstruction graph data storage unit 127 may store information indicating the number of input edges to each node.

また、図10では、再構築後のグラフデータを再構築グラフデータ記憶部127に記憶する場合を図示するが、再構築が完了後のグラフデータは、グラフデータ記憶部124に記憶される。例えば、情報処理装置100は、再構築グラフデータ記憶部127に、再構築途中のグラフデータを記憶し、再構築完了後において、再構築完了後のグラフデータにより、グラフデータ記憶部124を更新する。例えば、情報処理装置100は、再構築完了後において、再構築グラフデータ記憶部127に記憶されたグラフデータを、グラフデータ記憶部124に格納することにより、グラフデータ記憶部124を更新する。なお、上記は一例であり、グラフデータ記憶部124に再構築後のグラフデータが記憶されれば、どのような方法により、グラフデータ記憶部124を更新してもよい。 Further, FIG. 10 illustrates a case where the graph data after reconstruction is stored in the reconstruction graph data storage unit 127, but the graph data after the reconstruction is completed is stored in the graph data storage unit 124. For example, the information processing apparatus 100 stores the graph data in the process of reconstruction in the reconstruction graph data storage unit 127, and after the reconstruction is completed, updates the graph data storage unit 124 with the graph data after the reconstruction is completed. .. For example, the information processing apparatus 100 updates the graph data storage unit 124 by storing the graph data stored in the reconstruction graph data storage unit 127 in the graph data storage unit 124 after the reconstruction is completed. The above is an example, and the graph data storage unit 124 may be updated by any method as long as the reconstructed graph data is stored in the graph data storage unit 124.

(制御部130)
図3の説明に戻って、制御部130は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)やGPU(Graphics Processing Unit)等によって、情報処理装置100内部の記憶装置に記憶されている各種プログラム(情報処理プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部130は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
(Control unit 130)
Returning to the description of FIG. 3, the control unit 130 is a controller, and is inside the information processing device 100 by, for example, a CPU (Central Processing Unit), an MPU (Micro Processing Unit), a GPU (Graphics Processing Unit), or the like. Various programs (corresponding to an example of an information processing program) stored in the storage device of the above are realized by executing the RAM as a work area. Further, the control unit 130 is a controller, and is realized by, for example, an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).

図3に示すように、制御部130は、取得部131と、選択部132と、決定部133と、生成部134と、検索部135と、提供部136とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、図3に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。 As shown in FIG. 3, the control unit 130 includes an acquisition unit 131, a selection unit 132, a determination unit 133, a generation unit 134, a search unit 135, and a provision unit 136, and information described below. Realize or execute the function or action of processing. The internal configuration of the control unit 130 is not limited to the configuration shown in FIG. 3, and may be any other configuration as long as it is configured to perform information processing described later.

(取得部131)
取得部131は、各種情報を取得する。例えば、取得部131は、記憶部120から各種情報を取得する。例えば、取得部131は、オブジェクト情報記憶部121や、連結条件情報記憶部122や、変更条件情報記憶部123や、グラフデータ記憶部124や、起点用情報記憶部125や、再構築条件情報記憶部126や、再構築グラフデータ記憶部127等から各種情報を取得する。また、取得部131は、各種情報を外部の情報処理装置から取得する。
(Acquisition unit 131)
The acquisition unit 131 acquires various types of information. For example, the acquisition unit 131 acquires various information from the storage unit 120. For example, the acquisition unit 131 includes an object information storage unit 121, a connection condition information storage unit 122, a change condition information storage unit 123, a graph data storage unit 124, a starting point information storage unit 125, and a reconstruction condition information storage unit. Various information is acquired from the unit 126, the reconstructed graph data storage unit 127, and the like. Further, the acquisition unit 131 acquires various information from an external information processing device.

取得部131は、データ検索の対象となる一のオブジェクトと、一のオブジェクトとは異なる他のオブジェクトの各々に対応する複数のノード、及びノード間を連結する有向エッジを含む第1グラフとを取得する。 The acquisition unit 131 obtains one object to be searched for data, a plurality of nodes corresponding to each of other objects different from the one object, and a first graph including a directed edge connecting the nodes. get.

取得部131は、新規に追加されたオブジェクト(新規追加オブジェクト)を取得する。例えば、情報処理装置100は、情報提供装置50等の外部装置から新規に追加されたオブジェクト(新規追加オブジェクト)を取得してもよい。取得部131は、新規追加オブジェクトを識別する情報(オブジェクトID)と、新規追加オブジェクトから生成されたベクトルとを対応付けた情報をオブジェクト情報として取得してもよい。この場合、取得部131は、取得したオブジェクト情報をオブジェクト情報記憶部121に記憶させてもよい。そして、取得部131は、新規追加オブジェクトを取得した場合、新規追加オブジェクトに対応するノードする。 The acquisition unit 131 acquires a newly added object (newly added object). For example, the information processing device 100 may acquire a newly added object (newly added object) from an external device such as the information providing device 50. The acquisition unit 131 may acquire information as object information in which the information for identifying the newly added object (object ID) and the vector generated from the newly added object are associated with each other. In this case, the acquisition unit 131 may store the acquired object information in the object information storage unit 121. Then, when the newly added object is acquired, the acquisition unit 131 makes a node corresponding to the newly added object.

また、取得部131は、グラフデータを取得してもよい。例えば、情報処理装置100は、図1中のグラフGR11-1を取得してもよい。例えば、情報処理装置100は、情報提供装置50等の外部装置からグラフデータを取得してもよい。 Further, the acquisition unit 131 may acquire graph data. For example, the information processing apparatus 100 may acquire the graph GR11-1 in FIG. For example, the information processing device 100 may acquire graph data from an external device such as the information providing device 50.

例えば、取得部131は、検索クエリに関する情報を取得する。例えば、取得部131は、画像検索に関する検索クエリを取得する。例えば、取得部131は、利用する端末装置10からクエリを取得する。例えば、取得部131は、利用する端末装置10からクエリを受け付けた情報提供装置50からクエリを取得する。 For example, the acquisition unit 131 acquires information about the search query. For example, the acquisition unit 131 acquires a search query related to an image search. For example, the acquisition unit 131 acquires a query from the terminal device 10 to be used. For example, the acquisition unit 131 acquires a query from the information providing device 50 that has received the query from the terminal device 10 to be used.

(選択部132)
選択部132は、各種情報を選択する。選択部132は、各種情報を抽出する。選択部132は、記憶部120に記憶された各種情報に基づいて、種々の情報を選択する。選択部132は、記憶部120に記憶された各種情報に基づいて、種々の情報を抽出する。
(Selection unit 132)
The selection unit 132 selects various types of information. The selection unit 132 extracts various information. The selection unit 132 selects various information based on the various information stored in the storage unit 120. The selection unit 132 extracts various information based on the various information stored in the storage unit 120.

選択部132は、第1グラフに基づいて、複数のノードのうち、一のオブジェクトに対応する一のノードの近傍に位置する近傍ノードを選択する。選択部132は、入力閾値または出力閾値の数(選択数)の近傍ノードを選択する。選択部132は、入力閾値が出力閾値以上である場合、入力閾値の数を選択数として、選択数の近傍ノードを選択する。選択部132は、出力閾値が入力閾値より大きい場合、出力閾値の数を選択数として、選択数の近傍ノードを選択する。 The selection unit 132 selects a neighboring node located in the vicinity of one node corresponding to one object among a plurality of nodes based on the first graph. The selection unit 132 selects a node in the vicinity of the number of input threshold values or output threshold values (selection number). When the input threshold value is equal to or higher than the output threshold value, the selection unit 132 selects nodes in the vicinity of the selection number, using the number of input threshold values as the selection number. When the output threshold value is larger than the input threshold value, the selection unit 132 selects nodes in the vicinity of the selection number by using the number of output threshold values as the selection number.

選択部132は、第1グラフを探索することにより、近傍ノードを選択する。選択部132は、追加ノードをクエリとして、第1グラフを探索することにより、選択数の近傍ノードを選択する。選択部132は、図16に示すような検索処理により、第1グラフを探索することにより、近傍ノードを選択する。 The selection unit 132 selects nearby nodes by searching the first graph. The selection unit 132 selects the neighboring nodes of the selected number by searching the first graph using the additional node as a query. The selection unit 132 selects nearby nodes by searching the first graph by the search process as shown in FIG.

選択部132は、暫定グラフを探索することにより、暫定グラフに含まれる各ノードに対応する近傍ノードを選択する。選択部132は、暫定グラフを探索することにより、選択数の近傍ノードを選択する。選択部132は、図16に示すような検索処理により、暫定グラフを探索することにより、近傍ノードを選択する。 The selection unit 132 selects neighboring nodes corresponding to each node included in the provisional graph by searching the provisional graph. The selection unit 132 selects the neighboring nodes of the selected number by searching the provisional graph. The selection unit 132 selects nearby nodes by searching the provisional graph by the search process as shown in FIG.

なお、選択部132は、検索部135に要求することにより、検索部135に情報を探索させ、検索部135が探索した探索結果を用いてもよい。選択部132は、選択部132は、検索部135が探索した探索結果から情報を選択してもよい。選択部132は、第2グラフに含まれる各ノードの近傍ノードに関する情報を参照することにより、第2グラフに含まれる各ノードに対応する近傍ノードを選択する。 The selection unit 132 may cause the search unit 135 to search for information by requesting the search unit 135, and may use the search result searched by the search unit 135. The selection unit 132 may select information from the search results searched by the search unit 135. The selection unit 132 selects the neighboring node corresponding to each node included in the second graph by referring to the information regarding the neighboring node of each node included in the second graph.

図1の例では、選択部132は、図16に示すような処理手順によりグラフを探索することにより、選択数の近傍ノードを選択する。選択部132は、図16に示すような処理手順によりグラフGR11-1を探索し、ノードN3の近傍ノードとして、選択数「2」に対応する2個のノードN1、N2を選択する。選択部132は、図16に示すような処理手順によりグラフGR11-2を探索し、ノードN4の近傍ノードとして、選択数「2」に対応する2個のノードN1、N3を選択する。選択部132は、図16に示すような処理手順によりグラフGR11-3を探索し、ノードN11の近傍ノードとして、選択数「3」に対応する3個のノードN1、N4、N5を選択する。 In the example of FIG. 1, the selection unit 132 selects a node in the vicinity of the selected number by searching the graph by the processing procedure as shown in FIG. The selection unit 132 searches the graph GR11-1 by the processing procedure as shown in FIG. 16, and selects two nodes N1 and N2 corresponding to the selection number “2” as the neighboring nodes of the node N3. The selection unit 132 searches the graph GR11-2 by the processing procedure as shown in FIG. 16, and selects two nodes N1 and N3 corresponding to the selection number “2” as the neighboring nodes of the node N4. The selection unit 132 searches the graph GR11-3 by the processing procedure as shown in FIG. 16, and selects three nodes N1, N4, and N5 corresponding to the selection number “3” as the neighboring nodes of the node N11.

(決定部133)
決定部133は、各種情報を決定する。決定部133は、各種情報を判定する。決定部133は、各種情報を変更する。決定部133は、各種情報を更新する。決定部133は、記憶部120に記憶された各種情報に基づいて、種々の情報を決定する。決定部133は、記憶部120に記憶された各種情報に基づいて、種々の情報を判定する。決定部133は、記憶部120に記憶された各種情報に基づいて、種々の情報を変更する。決定部133は、各種情報を更新する。
(Decision unit 133)
The determination unit 133 determines various information. The determination unit 133 determines various information. The determination unit 133 changes various information. The determination unit 133 updates various information. The determination unit 133 determines various information based on the various information stored in the storage unit 120. The determination unit 133 determines various information based on the various information stored in the storage unit 120. The determination unit 133 changes various information based on the various information stored in the storage unit 120. The determination unit 133 updates various information.

決定部133は、所定の条件である連結条件に関する変更条件に基づいて、連結条件を変更するかを決定する。決定部133は、第1グラフにおける複数のノードの数に関する変更条件に基づいて、連結条件を変更するかを決定する。決定部133は、第1グラフにおける複数のノードの数が所定の閾値以上である場合、連結条件を変更するかを決定する。決定部133は、第1グラフにおける複数のノードの数と所定の閾値とを比較し、その結果に応じて、連結条件を動的に変更する。 The determination unit 133 determines whether to change the connection condition based on the change condition regarding the connection condition which is a predetermined condition. The determination unit 133 determines whether to change the connection condition based on the change condition regarding the number of a plurality of nodes in the first graph. The determination unit 133 determines whether to change the connection condition when the number of the plurality of nodes in the first graph is equal to or greater than a predetermined threshold value. The determination unit 133 compares the number of a plurality of nodes in the first graph with a predetermined threshold value, and dynamically changes the connection condition according to the result.

決定部133は、第1グラフにおける複数のノードのうち、所定の時点以後に追加されたノードである追加ノードの割合に関する変更条件に基づいて、連結条件を変更するかを決定する。決定部133は、第1グラフにおける複数のノードのうち、有向エッジの調整処理以後に追加された追加ノードの割合に関する変更条件に基づいて、連結条件を変更するかを決定する。 The determination unit 133 determines whether to change the connection condition based on the change condition regarding the ratio of the additional nodes that are the nodes added after a predetermined time point among the plurality of nodes in the first graph. The determination unit 133 determines whether to change the connection condition based on the change condition regarding the ratio of the additional nodes added after the adjustment process of the directed edge among the plurality of nodes in the first graph.

決定部133は、第1グラフにおける複数のノードのうち、追加ノードの割合が所定の閾値以上である場合、連結条件を変更するかを決定する。決定部133は、第1グラフにおける追加ノードの割合と所定の閾値とを比較し、その結果に応じて、連結条件を動的に変更する。決定部133は、第1グラフにおける有向エッジの数に関する変更条件に基づいて、連結条件を変更するかを決定する。決定部133は、第1グラフにおける有向エッジの統計的情報に関する変更条件に基づいて、連結条件を変更するかを決定する。 The determination unit 133 determines whether to change the connection condition when the ratio of the additional nodes among the plurality of nodes in the first graph is equal to or higher than a predetermined threshold value. The determination unit 133 compares the ratio of the additional nodes in the first graph with a predetermined threshold value, and dynamically changes the connection condition according to the result. The determination unit 133 determines whether to change the connection condition based on the change condition regarding the number of directed edges in the first graph. The determination unit 133 determines whether to change the connection condition based on the change condition regarding the statistical information of the directed edge in the first graph.

決定部133は、変更条件に基づいて、連結条件における有向エッジの数に関するエッジ数条件を変更する。決定部133は、第1グラフにおける複数のノードの数が多い程、エッジ数条件において指定される連結エッジ数を増加させる。決定部133は、指定された生成時間を超過すると推定される場合、エッジ数条件において指定される連結エッジ数を減少させる。 The determination unit 133 changes the edge number condition regarding the number of directed edges in the connection condition based on the change condition. The determination unit 133 increases the number of connected edges specified in the edge number condition as the number of the plurality of nodes in the first graph increases. The determination unit 133 reduces the number of connected edges specified in the edge number condition when it is estimated that the specified generation time is exceeded.

決定部133は、一のノードを起点とし他のノードを終点する出力エッジの数に関する出力数条件を含むエッジ数条件を変更する。決定部133は、他のノードを起点とし一のノードを終点とする入力エッジの数に関する入力数条件を含むエッジ数条件を変更する。 The determination unit 133 changes the edge number condition including the output number condition regarding the number of output edges starting from one node and ending at the other node. The determination unit 133 changes the edge number condition including the input number condition regarding the number of input edges starting from another node and ending at one node.

図1の例では、決定部133は、入力閾値「2」を選択数に決定する。決定部133は、生成中のグラフに対応する起点用情報を用いて起点ノードを決定する。また、決定部133は、連結条件の変更に応じて、選択数を更新する。決定部133は、入力閾値「3」を選択数に決定する。決定部133は、出力閾値「6」を選択数に決定する。決定部133は、選択数を「3」から「6」に更新する。 In the example of FIG. 1, the determination unit 133 determines the input threshold value “2” as the selection number. The determination unit 133 determines the origin node using the origin information corresponding to the graph being generated. Further, the determination unit 133 updates the number of selections according to the change of the connection condition. The determination unit 133 determines the input threshold value "3" as the number of selections. The determination unit 133 determines the output threshold value “6” as the number of selections. The determination unit 133 updates the number of selections from "3" to "6".

(生成部134)
生成部134は、各種情報を生成する。例えば、生成部134は、記憶部120に記憶された情報(データ)から各種情報(データ)を生成する。例えば、生成部134は、オブジェクト情報記憶部121や、連結条件情報記憶部122や、変更条件情報記憶部123や、グラフデータ記憶部124や、起点用情報記憶部125や、再構築条件情報記憶部126や、再構築グラフデータ記憶部127等から各種情報を生成する。例えば、生成部134は、グラフデータから第1グラフデータを生成する。例えば、生成部134は、第1グラフデータに新たに追加されたノードを追加した第2グラフデータを生成する。
(Generation unit 134)
The generation unit 134 generates various information. For example, the generation unit 134 generates various information (data) from the information (data) stored in the storage unit 120. For example, the generation unit 134 may include an object information storage unit 121, a connection condition information storage unit 122, a change condition information storage unit 123, a graph data storage unit 124, a starting point information storage unit 125, and a reconstruction condition information storage unit. Various information is generated from the unit 126, the reconstructed graph data storage unit 127, and the like. For example, the generation unit 134 generates the first graph data from the graph data. For example, the generation unit 134 generates the second graph data by adding the newly added node to the first graph data.

生成部134は、一のノードを第1グラフに追加し、所定の条件により変更される有向エッジの連結に関する連結条件に基づいて、一のノードと近傍ノードとの間を有向エッジにより連結した第2グラフを生成する。生成部134は、決定部133により連結条件を変更すると決定された場合、変更後の連結条件に基づいて、一のノードと近傍ノードとの間を有向エッジにより連結した第2グラフを生成する。 The generation unit 134 adds one node to the first graph and connects one node and a neighboring node by the directed edge based on the connection condition regarding the connection of the directed edge changed by a predetermined condition. Generate the second graph. When the determination unit 133 determines that the connection condition is changed, the generation unit 134 generates a second graph in which one node and a neighboring node are connected by a directed edge based on the changed connection condition. ..

生成部134は、変更後のエッジ数条件に基づいて、一のノードと近傍ノードとの間を有向エッジにより連結した第2グラフを生成する。生成部134は、増加後の連結エッジ数に基づいて、一のノードと近傍ノードとの間を有向エッジにより連結した第2グラフを生成する。生成部134は、減少後の連結エッジ数に基づいて、一のノードと近傍ノードとの間を有向エッジにより連結した第2グラフを生成する。 The generation unit 134 generates a second graph in which one node and a neighboring node are connected by a directed edge based on the changed edge number condition. The generation unit 134 generates a second graph in which one node and neighboring nodes are connected by directed edges based on the number of connected edges after the increase. The generation unit 134 generates a second graph in which one node and neighboring nodes are connected by directed edges based on the number of connected edges after the decrease.

生成部134は、変更後の出力数条件に基づいて、近傍ノードのうち、出力数条件に対応する数の出力先ノードに、一のノードを起点とする出力エッジを連結した第2グラフを生成する。生成部134は、変更後のエッジ数条件に基づいて、近傍ノードのうち、入力数条件に対応する数の入力元ノードに、一のノードを終点とする入力エッジを連結した第2グラフを生成する。 Based on the changed output number condition, the generation unit 134 generates a second graph in which the output edges starting from one node are connected to the number of output destination nodes corresponding to the output number condition among the neighboring nodes. do. Based on the changed edge number condition, the generation unit 134 generates a second graph in which the input source nodes corresponding to the input number condition among the neighboring nodes are connected to the input edges having one node as the end point. do.

生成部134は、第2グラフにおける有向エッジを更新することにより、第3グラフを生成する。生成部134は、第2グラフが、グラフの再構築に関する所定の条件を満たす場合、第3グラフを生成する。生成部134は、第2グラフの有向エッジを反転した反転エッジを追加した暫定グラフを生成し、生成した暫定グラフを用いて、第3グラフを生成する。生成部134は、連結条件に基づいて、各ノードと近傍ノードとの間を有向エッジにより連結した第3グラフを生成する。生成部134は、第2グラフに含まれる各ノードの近傍ノードに関する情報を用いて、第3グラフを生成する。 The generation unit 134 generates the third graph by updating the directed edge in the second graph. The generation unit 134 generates the third graph when the second graph satisfies a predetermined condition regarding the reconstruction of the graph. The generation unit 134 generates a provisional graph by adding an inverted edge obtained by inverting the directed edge of the second graph, and generates a third graph by using the generated provisional graph. The generation unit 134 generates a third graph in which each node and a neighboring node are connected by a directed edge based on the connection condition. The generation unit 134 generates the third graph by using the information about the neighboring nodes of each node included in the second graph.

生成部134は、取得部131により新規に追加されたオブジェクトが取得された場合、新規に追加されたオブジェクトに対応するベクトルを生成してもよい。この場合、生成部134は、生成したベクトルをオブジェクトに対応付けてオブジェクト情報記憶部121に記憶させてもよい。 When the newly added object is acquired by the acquisition unit 131, the generation unit 134 may generate a vector corresponding to the newly added object. In this case, the generation unit 134 may associate the generated vector with the object and store it in the object information storage unit 121.

図1の例では、生成部134は、ノードN1が最初のノードであるため、ノードN1を含むグラフGR11を新規に生成する。生成部134は、連結条件一覧LCL1に基づいて、追加したノードN2に2本の入力エッジ及び1本の出力エッジが連結されるようにグラフを生成する。生成部134は、追加したノードN2に連結するエッジを追加することにより、グラフGR11-1を生成する。 In the example of FIG. 1, since the node N1 is the first node, the generation unit 134 newly generates the graph GR11 including the node N1. The generation unit 134 generates a graph so that two input edges and one output edge are connected to the added node N2 based on the connection condition list LCL1. The generation unit 134 generates the graph GR11-1 by adding an edge connected to the added node N2.

生成部134は、グラフGR11-1に基づいて、決定用情報一覧DFI1を生成する。生成部134は、追加したノードN3に2本の入力エッジE3、E5及び1本の出力エッジE4が連結されたグラフGR11-2を生成する。 The generation unit 134 generates the determination information list DFI1 based on the graph GR11-1. The generation unit 134 generates a graph GR11-2 in which two input edges E3, E5 and one output edge E4 are connected to the added node N3.

生成部134は、グラフGR11-2に基づいて、決定用情報一覧DFI2を生成する。生成部134は、追加したノードN4に2本の入力エッジE6、E7及び1本の出力エッジE8が連結されたグラフGR11-3を生成する。生成部134は、ノードN5等の96個のノードについても、ノードN4と同様に、順次グラフGR11に追加することにより、グラフGR11-3を生成する。 The generation unit 134 generates the determination information list DFI2 based on the graph GR11-2. The generation unit 134 generates a graph GR11-3 in which two input edges E6 and E7 and one output edge E8 are connected to the added node N4. The generation unit 134 also generates the graph GR11-3 by sequentially adding the 96 nodes such as the node N5 to the graph GR11 in the same manner as the node N4.

生成部134は、グラフGR11-3に基づいて、決定用情報一覧DFI3を生成する。生成部134は、追加したノードN11に3本の入力エッジE13、E14、及び1本の出力エッジE12が連結されたグラフGR11-4を生成する。生成部134は、変更条件一覧ACL1中の変更内容に基づいて、連結条件一覧LCL2を生成する。 The generation unit 134 generates the determination information list DFI3 based on the graph GR11-3. The generation unit 134 generates a graph GR11-4 in which three input edges E13 and E14 and one output edge E12 are connected to the added node N11. The generation unit 134 generates the connection condition list LCL2 based on the change contents in the change condition list ACL1.

生成部134は、グラフGR11-4に基づいて、決定用情報一覧DFI4を生成する。生成部134は、変更条件一覧ACL2中の変更内容に基づいて、連結条件一覧LCL3を生成する。 The generation unit 134 generates the determination information list DFI4 based on the graph GR11-4. The generation unit 134 generates the connection condition list LCL3 based on the change contents in the change condition list ACL2.

(検索部135)
検索部135は、オブジェクトに関する検索サービスを提供する。検索部135は、各種情報を探索する。検索部135は、各種情報を検索する。例えば、検索部135は、グラフデータを探索することにより、オブジェクトを検索する。例えば、検索部135は、取得部131により取得されたクエリが取得された場合、グラフデータを探索することにより、クエリに類似するオブジェクトを検索する。例えば、検索部135は、グラフデータを探索することにより、クエリに類似するオブジェクトを抽出する。例えば、検索部135は、図16に示すような処理手順に基づいて、グラフデータを探索することにより、クエリに類似するオブジェクトを抽出する。なお、検索部135は、検索サービスを提供しない場合、検索部135を有しなくてもよい。
(Search unit 135)
The search unit 135 provides a search service for objects. The search unit 135 searches for various information. The search unit 135 searches for various types of information. For example, the search unit 135 searches for an object by searching for graph data. For example, when the query acquired by the acquisition unit 131 is acquired, the search unit 135 searches for an object similar to the query by searching the graph data. For example, the search unit 135 extracts an object similar to a query by searching the graph data. For example, the search unit 135 extracts an object similar to a query by searching the graph data based on the processing procedure as shown in FIG. If the search unit 135 does not provide the search service, the search unit 135 may not have the search unit 135.

(提供部136)
提供部136は、各種情報を提供する。例えば、提供部136は、端末装置10や情報提供装置50に各種情報を提供する。例えば、提供部136は、クエリに対応するオブジェクトIDを検索結果として提供する。例えば、提供部136は、検索部135により検索されたオブジェクトIDを情報提供装置50へ提供する。例えば、提供部136は、検索部135が検索により抽出したオブジェクトIDを情報提供装置50へ提供する。提供部136は、検索部135により抽出されたオブジェクトIDをクエリに対応するベクトルを示す情報として情報提供装置50に提供する。
(Providing Department 136)
The providing unit 136 provides various information. For example, the providing unit 136 provides various information to the terminal device 10 and the information providing device 50. For example, the providing unit 136 provides the object ID corresponding to the query as a search result. For example, the providing unit 136 provides the object ID searched by the searching unit 135 to the information providing device 50. For example, the providing unit 136 provides the object ID extracted by the search unit 135 to the information providing device 50. The providing unit 136 provides the information providing device 50 with the object ID extracted by the searching unit 135 as information indicating a vector corresponding to the query.

また、提供部136は、生成部134により生成された第2グラフデータを外部の情報処理装置へ提供してもよい。例えば、提供部136は、生成部134により生成されたグラフGR11を情報提供装置50に送信してもよい。 Further, the providing unit 136 may provide the second graph data generated by the generating unit 134 to an external information processing device. For example, the providing unit 136 may transmit the graph GR 11 generated by the generating unit 134 to the information providing device 50.

〔4.情報処理のフロー〕
次に、図11を用いて、実施形態に係る情報処理システム1による情報処理の手順について説明する。図11は、実施形態に係る情報処理の一例を示すフローチャートである。
[4. Information processing flow]
Next, the procedure of information processing by the information processing system 1 according to the embodiment will be described with reference to FIG. FIG. 11 is a flowchart showing an example of information processing according to the embodiment.

図11に示すように、情報処理装置100は、一のオブジェクトを取得する(ステップS101)。例えば、情報処理装置100は、情報提供装置50からグラフに新たに追加するオブジェクト情報を取得する。 As shown in FIG. 11, the information processing apparatus 100 acquires one object (step S101). For example, the information processing apparatus 100 acquires object information newly added to the graph from the information providing apparatus 50.

そして、情報処理装置100は、第1グラフを取得する(ステップS102)。例えば、情報処理装置100は、グラフデータ記憶部124(図7参照)に記憶されたグラフを第1グラフとして取得する。 Then, the information processing apparatus 100 acquires the first graph (step S102). For example, the information processing apparatus 100 acquires the graph stored in the graph data storage unit 124 (see FIG. 7) as the first graph.

そして、情報処理装置100は、第1グラフに基づいて、複数のノードのうち、一のオブジェクトに対応する一のノードの近傍ノードを選択する(ステップS103)。例えば、情報処理装置100は、追加する一のノードをクエリとして、第1グラフを探索することにより、近傍ノードを選択する。 Then, the information processing apparatus 100 selects a node in the vicinity of one node corresponding to one object from the plurality of nodes based on the first graph (step S103). For example, the information processing apparatus 100 selects a neighboring node by searching the first graph using one node to be added as a query.

そして、情報処理装置100は、一のノードを第1グラフに追加する(ステップS104)。そして、情報処理装置100は、有向エッジの連結に関する連結条件に基づいて、一のノードと近傍ノードとの間を有向エッジにより連結した第2グラフを生成する(ステップS105)。 Then, the information processing apparatus 100 adds one node to the first graph (step S104). Then, the information processing apparatus 100 generates a second graph in which one node and a neighboring node are connected by the directed edge based on the connection condition regarding the connection of the directed edge (step S105).

次に、図12を用いて、実施形態に係る情報処理システム1による情報処理の手順について説明する。図12は、実施形態に係る条件の変更処理の一例を示すフローチャートである。例えば、図12に示す条件の変更処理は、図11中のステップS101の前や、ステップS105の後に行われてもよい。 Next, the procedure of information processing by the information processing system 1 according to the embodiment will be described with reference to FIG. FIG. 12 is a flowchart showing an example of the condition change process according to the embodiment. For example, the condition change process shown in FIG. 12 may be performed before step S101 in FIG. 11 or after step S105.

図12に示すように、情報処理装置100は、変更条件を満たすかどうかを判定する(ステップS201)。情報処理装置100は、変更条件を満たすと判定した場合(ステップS201:Yes)、変更条件に基づいて連結条件を変更する(ステップS202)。 As shown in FIG. 12, the information processing apparatus 100 determines whether or not the change condition is satisfied (step S201). When the information processing apparatus 100 determines that the change condition is satisfied (step S201: Yes), the information processing apparatus 100 changes the connection condition based on the change condition (step S202).

情報処理装置100は、変更条件を満たさないと判定した場合(ステップS201:No)、連結条件を変更せずに処理を終了する。 When the information processing apparatus 100 determines that the change condition is not satisfied (step S201: No), the information processing apparatus 100 ends the process without changing the connection condition.

〔5.再構築処理の例〕
図1の例では、ノードが追加される度に、追加ノードにエッジを連結する処理を繰り返すが、追加ノードの数が増えるにつれて、エッジの連結にばらつきが生じている場合等、エッジの調整処理が必要な場合がある。このような場合、連結済みのエッジを維持したまま、新たな追加ノードへの連結エッジを追加するだけでは、エッジの連結にばらつきを解消することが難しい。そのため、情報処理装置100は、エッジの調整処理が必要な場合、グラフ中の各ノードのエッジの連結を再度行う再構築処理を実行する。例えば、情報処理装置100は、グラフが再構築条件を満たす場合、そのグラフのエッジの連結を再度行う再構築処理を実行する。この再構築処理の点について、図13を用いて説明する。図13は、実施形態に係るグラフの再構築処理の一例を示す図である。なお、図1と同様の点については、適宜説明を省略する。また、図13に示す空間情報VS1-21~VS1-24は、グラフデータの生成過程を模式的に示す図であり、空間情報VS1-21~VS1-24に示す空間は、同一の空間であってもよい。また、空間情報VS1-21~VS1-24について、特に区別なく説明する場合には、空間情報VS1と記載する。
[5. Example of reconstruction process]
In the example of FIG. 1, the process of connecting an edge to an additional node is repeated every time a node is added, but as the number of additional nodes increases, the edge connection process becomes uneven, for example, the edge adjustment process. May be required. In such a case, it is difficult to eliminate the variation in the edge connection by simply adding the connection edge to the new additional node while maintaining the connected edge. Therefore, when the edge adjustment process is required, the information processing apparatus 100 executes a reconstruction process of reconnecting the edges of each node in the graph. For example, when the graph satisfies the reconstruction condition, the information processing apparatus 100 executes a reconstruction process for reconnecting the edges of the graph. The point of this reconstruction process will be described with reference to FIG. FIG. 13 is a diagram showing an example of a graph reconstruction process according to an embodiment. The same points as in FIG. 1 will be omitted as appropriate. Further, the spatial information VS1-21 to VS1-24 shown in FIG. 13 are diagrams schematically showing the generation process of graph data, and the spaces shown in the spatial information VS1-21 to VS1-24 are the same space. You may. Further, when the spatial information VS1-21 to VS1-24 are described without particular distinction, they are described as spatial information VS1.

図13の例では、情報処理装置100は、ノードN1~N5等の9999個のノードを含むグラフGR11-21を生成する。例えば、情報処理装置100は、ノードN1~N5等の9900個のノードを含むグラフ(初期グラフ)を用いて、その初期グラフに99個の追加ノードを追加して、グラフGR11-21を生成した場合を示す。図13の例では、情報処理装置100は、連結条件一覧LCL1の入力閾値「2」を選択数に決定する。 In the example of FIG. 13, the information processing apparatus 100 generates graph GR11-21 including 9999 nodes such as nodes N1 to N5. For example, the information processing apparatus 100 uses a graph (initial graph) including 9900 nodes such as nodes N1 to N5, adds 99 additional nodes to the initial graph, and generates graph GR11-21. Show the case. In the example of FIG. 13, the information processing apparatus 100 determines the input threshold value “2” of the connection condition list LCL1 as the number of selections.

また、情報処理装置100は、グラフGR11-21に基づいて、決定用情報一覧DFI21を生成する。情報処理装置100は、グラフGR11-21に含まれるノード数が9999個であることや、グラフGR11-21に含まれる追加ノード数が99個であることを示す決定用情報一覧DFI21を生成する。例えば、情報処理装置100は、決定用情報一覧DFI21を記憶部120(図3参照)に記憶してもよい。 Further, the information processing apparatus 100 generates the determination information list DFI21 based on the graph GR11-21. The information processing apparatus 100 generates a determination information list DFI21 indicating that the number of nodes included in the graph GR11-21 is 9999 and the number of additional nodes included in the graph GR11-21 is 99. For example, the information processing apparatus 100 may store the determination information list DFI 21 in the storage unit 120 (see FIG. 3).

そして、情報処理装置100は、グラフGR11-21が再構築条件を満たすかどうかを判定する。例えば、情報処理装置100は、グラフGR11-21に含まれるノード数が9999個であり、追加ノード数が99個であるため、追加ノード割合を「0.0099(=99/9999)」と算出する。情報処理装置100は、グラフGR11-21の追加ノード割合が「0.0099」であるため、再構築条件一覧RCL21に示す追加ノード割合の閾値「0.1」以上であるという再構築条件を満たさないと判定する。そのため、情報処理装置100は、再構築処理を実行せずに、処理を続行する。 Then, the information processing apparatus 100 determines whether or not the graph GR11-21 satisfies the reconstruction condition. For example, in the information processing apparatus 100, since the number of nodes included in the graph GR11-21 is 9999 and the number of additional nodes is 99, the ratio of additional nodes is calculated as "0.0099 (= 99/9999)". do. Since the information processing apparatus 100 has an additional node ratio of "0.0099" in the graph GR11-21, the information processing apparatus 100 satisfies the reconstruction condition that the threshold value of the additional node ratio shown in the reconstruction condition list RCL21 is "0.1" or more. It is determined that there is no such thing. Therefore, the information processing apparatus 100 continues the processing without executing the reconstruction processing.

そして、情報処理装置100は、ノードN6を新規追加する(ステップS21-1)。例えば、情報処理装置100は、ノードN6をグラフGR11-21に追加する。 Then, the information processing apparatus 100 newly adds the node N6 (step S21-1). For example, the information processing apparatus 100 adds the node N6 to the graph GR11-21.

そして、情報処理装置100は、グラフを探索する(ステップS21-2)。図13の例では、情報処理装置100は、追加したノードN6をクエリとして、グラフGR11-21を探索する。情報処理装置100は、図16に示すような処理手順によりグラフGR11-21を探索し、ノードN6の近傍ノードとして、選択数「2」に対応する2個のノードN1、N3を選択する。また、図13の例では、ノードN1が最もノードN6の近傍に位置する。例えば、情報処理装置100は、図15に示すような木構造の起点情報を用いて、グラフGR11-21のノードN1~N5等を含む9999個のノードのうち、ノードN1を起点ノードに決定してもよい。 Then, the information processing apparatus 100 searches for the graph (step S21-2). In the example of FIG. 13, the information processing apparatus 100 searches the graph GR11-21 using the added node N6 as a query. The information processing apparatus 100 searches the graph GR11-21 by the processing procedure as shown in FIG. 16, and selects two nodes N1 and N3 corresponding to the selection number "2" as the neighboring nodes of the node N6. Further, in the example of FIG. 13, the node N1 is located closest to the node N6. For example, the information processing apparatus 100 determines the node N1 as the starting node among the 9999 nodes including the nodes N1 to N5 of the graph GR11-21 by using the starting point information of the tree structure as shown in FIG. You may.

そして、情報処理装置100は、連結条件に基づいて、ノードと近傍ノードとの間を連結する有向エッジを第1グラフに追加することにより、第2グラフを生成する(ステップS21-3)。図13の例では、情報処理装置100は、連結条件一覧LCL1に基づいて、ノードN6と近傍ノードであるノードN1、N3との間を連結する有向エッジを第1グラフであるグラフGR11-21に追加することにより、第2グラフであるグラフGR11-22を生成する。具体的には、情報処理装置100は、連結条件一覧LCL1に基づいて、ノードN6に2本の入力エッジ及び1本の出力エッジが連結されるようにグラフGR11-22を生成する。 Then, the information processing apparatus 100 generates the second graph by adding the directed edge connecting the node and the neighboring node to the first graph based on the connection condition (step S21-3). In the example of FIG. 13, the information processing apparatus 100 has a graph GR11-21 which is the first graph of the directed edge connecting the node N6 and the neighboring nodes N1 and N3 based on the connection condition list LCL1. By adding to, the graph GR11-22, which is the second graph, is generated. Specifically, the information processing apparatus 100 generates the graph GR11-22 so that two input edges and one output edge are connected to the node N6 based on the connection condition list LCL1.

情報処理装置100は、選択した近傍ノードのうち、距離が短い方から順に2個のノードにノードN6への入力エッジを連結する。情報処理装置100は、選択した近傍ノードであるノードN1、N3のうち、距離が最も短いノードN1にノードN6へ入力するエッジE13を連結する。これにより、情報処理装置100は、ノードN6の近傍ノードであるノードN1とノードN6とを連結する。 The information processing apparatus 100 connects the input edges to the node N6 to the two selected neighboring nodes in order from the one having the shortest distance. The information processing apparatus 100 connects the edge E13 to be input to the node N6 to the node N1 having the shortest distance among the selected neighboring nodes N1 and N3. As a result, the information processing apparatus 100 connects the node N1 and the node N6, which are nodes in the vicinity of the node N6.

情報処理装置100は、選択した近傍ノードであるノードN1、N3のうち、距離が2番目に短いノードN3にノードN6へ入力するエッジE14を連結する。これにより、情報処理装置100は、ノードN6の近傍ノードであるノードN3とノードN6とを連結する。図13中のグラフGR11-22では、紙面の関係上、グラフGR11-21で図示したエッジについては符号を省略し、両方向のエッジが連結される場合、双方向矢印で図示する。例えば、グラフGR11-22中のノードN3とノードN4との間を連結する双方向矢印は、ノードN3とノードN4との間がエッジE7、E8で連結されることを示す。 The information processing apparatus 100 connects the edge E14 to be input to the node N6 to the node N3 having the second shortest distance among the selected neighboring nodes N1 and N3. As a result, the information processing apparatus 100 connects the node N3 and the node N6, which are nodes in the vicinity of the node N6. In the graph GR11-22 in FIG. 13, the reference numerals are omitted for the edges shown in the graph GR11-21 due to space limitations, and when the edges in both directions are connected, they are shown by double-headed arrows. For example, a bidirectional arrow connecting node N3 and node N4 in the graph GR11-22 indicates that node N3 and node N4 are connected by edges E7 and E8.

また、情報処理装置100は、選択した近傍ノードのうち、距離が短い方から順に1個のノードにノードN6からの出力エッジを連結する。情報処理装置100は、選択した近傍ノードであるノードN1、N3のうち、距離が最も短いノードN1にノードN6から出力するエッジE12を連結する。これにより、情報処理装置100は、ノードN6とその近傍ノードであるノードN1とを連結する。これにより、情報処理装置100は、追加したノードN6に2本の入力エッジE13、E14及び1本の出力エッジE12が連結されたグラフGR11-22を生成する。このように、グラフGR11-22には、1個のノードN6が追加されたことにより、グラフGR11-22のノード数が10000(=9999+1)個になり、グラフGR11-22に含まれる追加ノード数が100(=99+1)個になる。 Further, the information processing apparatus 100 connects the output edge from the node N6 to one of the selected neighboring nodes in order from the one having the shortest distance. The information processing apparatus 100 connects the edge E12 output from the node N6 to the node N1 having the shortest distance among the selected neighboring nodes N1 and N3. As a result, the information processing apparatus 100 connects the node N6 and the node N1 which is a node in the vicinity thereof. As a result, the information processing apparatus 100 generates a graph GR11-22 in which two input edges E13 and E14 and one output edge E12 are connected to the added node N6. As described above, since one node N6 is added to the graph GR11-22, the number of nodes of the graph GR11-22 becomes 10,000 (= 9999 + 1), and the number of additional nodes included in the graph GR11-22. Is 100 (= 99 + 1).

また、情報処理装置100は、グラフGR11-22に基づいて、決定用情報一覧DFI22を生成する。例えば、情報処理装置100は、決定用情報一覧DFI21を更新することにより、決定用情報一覧DFI22を生成する。情報処理装置100は、グラフGR11-22に含まれるノード数が10000個であることや、グラフGR11-22に含まれる追加ノード数が100個であることを示す決定用情報一覧DFI21を生成する。例えば、情報処理装置100は、記憶部120(図3参照)に記憶された決定用情報一覧DFI21を決定用情報一覧DFI22に更新してもよい。 Further, the information processing apparatus 100 generates a determination information list DFI22 based on the graph GR11-22. For example, the information processing apparatus 100 generates the decision information list DFI 22 by updating the decision information list DFI 21. The information processing apparatus 100 generates a determination information list DFI21 indicating that the number of nodes included in the graph GR11-22 is 10,000 and the number of additional nodes included in the graph GR11-22 is 100. For example, the information processing apparatus 100 may update the determination information list DFI 21 stored in the storage unit 120 (see FIG. 3) to the determination information list DFI 22.

そして、情報処理装置100は、グラフGR11-22が再構築条件を満たすかどうかを判定する。例えば、情報処理装置100は、グラフGR11-22に含まれるノード数が10000個であり、追加ノード数が100個であるため、追加ノード割合を「0.01(=100/10000)」と算出する。情報処理装置100は、グラフGR11-22の追加ノード割合が「0.01」であるため、再構築条件一覧RCL21に示す追加ノード割合の閾値「0.1」以上であるという再構築条件を満たすと判定する。このように、情報処理装置100は、グラフGR11-22が再構築条件を満たすと判定する(ステップS21-4)。そのため、情報処理装置100は、再構築処理を実行すると決定する。情報処理装置100は、第2グラフであるグラフGR11-22が、グラフの再構築に関する所定の条件を満たすため、第3グラフ(「再構築グラフ」ともいう)を生成すると決定する。 Then, the information processing apparatus 100 determines whether or not the graph GR 11-22 satisfies the reconstruction condition. For example, in the information processing apparatus 100, since the number of nodes included in the graph GR11-22 is 10,000 and the number of additional nodes is 100, the ratio of additional nodes is calculated as "0.01 (= 100/10000)". do. Since the information processing apparatus 100 has the additional node ratio of the graph GR 11-22 of "0.01", the information processing apparatus 100 satisfies the reconstruction condition that the threshold value of the additional node ratio shown in the reconstruction condition list RCL21 is "0.1" or more. Is determined. As described above, the information processing apparatus 100 determines that the graph GR 11-22 satisfies the reconstruction condition (step S21-4). Therefore, the information processing apparatus 100 determines to execute the reconstruction process. The information processing apparatus 100 determines that the graph GR11-22, which is the second graph, generates a third graph (also referred to as a “reconstruction graph”) because the graph GR 11-22 satisfies a predetermined condition regarding the reconstruction of the graph.

そのため、情報処理装置100は、グラフに反転エッジを追加する(ステップS22)。情報処理装置100は、ノードN6を追加した第2グラフであるグラフGR11-22に反転エッジを追加する。情報処理装置100は、グラフGR11-22の各ノードについて、他のノードとの間に一方のエッジのみが連結されている場合、そのノード間に他方のエッジを連結する。すなわち、情報処理装置100は、1本のエッジのみで連結されているノード間に、その1本のエッジを反転したエッジ(反転エッジ)を追加する。 Therefore, the information processing apparatus 100 adds an inverted edge to the graph (step S22). The information processing apparatus 100 adds an inverted edge to the graph GR11-22, which is the second graph to which the node N6 is added. For each node of the graph GR 11-22, the information processing apparatus 100 connects the other edge between the nodes when only one edge is connected to the other node. That is, the information processing apparatus 100 adds an edge (inverted edge) in which one edge is inverted between the nodes connected by only one edge.

図13の例では、情報処理装置100は、ノードN1からノードN4へのエッジE6を反転したエッジE15により、ノードN1とノードN4との間を連結する。すなわち、情報処理装置100は、ノードN4を始点とする出力エッジであるエッジE15をノードN1へ連結する。また、情報処理装置100は、1本のエッジE5で連結されたノードN2とノードN3との間に、エッジE5を反転したエッジE16を追加する。また、情報処理装置100は、1本のエッジE10で連結されたノードN4とノードN5との間に、エッジE10を反転したエッジE17を追加する。また、情報処理装置100は、1本のエッジE14で連結されたノードN3とノードN6との間に、エッジE14を反転したエッジE18を追加する。このように、情報処理装置100は、1本のエッジのみで連結されているノード間に、その1本のエッジを反転したエッジを追加することにより、仮想的なK最近傍グラフに基づく各ノードの近傍ノードのデータGR20(「近傍ノードデータGR20」とする)を生成する。 In the example of FIG. 13, the information processing apparatus 100 connects the node N1 and the node N4 by the inverted edge E15 of the edge E6 from the node N1 to the node N4. That is, the information processing apparatus 100 connects the edge E15, which is an output edge starting from the node N4, to the node N1. Further, the information processing apparatus 100 adds an edge E16 in which the edge E5 is inverted between the node N2 and the node N3 connected by one edge E5. Further, the information processing apparatus 100 adds an edge E17 in which the edge E10 is inverted between the node N4 and the node N5 connected by one edge E10. Further, the information processing apparatus 100 adds an edge E18 in which the edge E14 is inverted between the node N3 and the node N6 connected by one edge E14. In this way, the information processing apparatus 100 adds an edge in which one edge is inverted between the nodes connected by only one edge, so that each node based on the virtual K nearest neighborhood graph is added. Generates the data GR20 of the neighboring node of (referred to as "neighboring node data GR20").

すなわち、情報処理装置100は、グラフに反転エッジを追加することにより、グラフGR11-22において少なくとも1本のノードで連結されていたノード間が、双方向に連結された仮想的なK最近傍グラフに基づく近傍ノードデータGR20を生成する。図13中の近傍ノードデータGR20は、グラフの状態で図示するが、理解を容易にするためのイメージであり、近傍ノードデータGR20は、各ノードの近傍ノードに関するデータ(情報)であるものとする。例えば、近傍ノードデータGR20は、グラフGR11-22中の各ノードから出力エッジが連結されたノード及びそのノードとの間の距離の一覧情報であってもよい。例えば、近傍ノードデータGR20には、ある対象ノードからの出力エッジが連結される近傍ノード候補と、その近傍ノード候補と対象ノードの間の距離が対応付けられた情報(以下、「近傍ノード候補の情報」ともいう)が含まれる。例えば、近傍ノードデータGR20には、ノードN1に、ノードN1からの出力エッジが連結されるノードN2、N3、N4、N5、N6等の近傍ノード候補と、そのノードとの間の距離が対応付けられた情報が含まれてもよい。また、例えば、近傍ノードデータGR20には、ノードN2に、ノードN2からの出力エッジが連結されるノードN1、N3等の近傍ノード候補と、そのノードとの間の距離が対応付けられた近傍ノード候補の情報が含まれてもよい。なお、情報処理装置100は、個々のノードの近傍ノードが選択できれば、近傍ノードデータGR20に限らず、どのような情報を用いてもよい。例えば、情報処理装置100は、近傍ノードデータGR20を用いることなく、グラフGR11に基づいて、再構築グラフGR21に含まれる各ノードの近傍ノードを選択してもよいが、この点については後述する。 That is, the information processing apparatus 100 adds an inverted edge to the graph, so that the nodes connected by at least one node in the graph GR11-22 are connected in both directions to form a virtual K nearest neighborhood graph. Generates neighborhood node data GR20 based on. The neighborhood node data GR20 in FIG. 13 is shown in the state of a graph, but is an image for facilitating understanding, and the neighborhood node data GR20 is assumed to be data (information) about the neighborhood nodes of each node. .. For example, the neighborhood node data GR20 may be list information of the distance between each node in the graph GR11-22 and the node to which the output edge is connected and the node. For example, in the neighborhood node data GR20, information in which the neighborhood node candidate to which the output edge from a certain target node is connected and the distance between the neighborhood node candidate and the target node are associated with each other (hereinafter, “neighborhood node candidate”). Information ") is included. For example, in the neighborhood node data GR20, the distance between the neighboring node candidates such as the nodes N2, N3, N4, N5, N6 to which the output edge from the node N1 is connected to the node N1 and the node is associated with the node N1. The information provided may be included. Further, for example, in the neighborhood node data GR20, the neighborhood node in which the distance between the neighborhood node candidate such as the nodes N1 and N3 to which the output edge from the node N2 is connected and the node is associated with the node N2 is associated with the node N2. Candidate information may be included. The information processing apparatus 100 may use any information, not limited to the neighboring node data GR20, as long as the neighboring nodes of the individual nodes can be selected. For example, the information processing apparatus 100 may select the neighboring nodes of each node included in the reconstructed graph GR21 based on the graph GR11 without using the neighboring node data GR20, but this point will be described later.

そして、情報処理装置100は、グラフの再構築処理を実行し、再構築グラフを生成する(ステップS23)。情報処理装置100は、連結条件一覧LCL1に基づいて、グラフGR11に含まれるノードN1~N6等を含む10000個のノード間をエッジで連結した再構築グラフであるグラフGR21(再構築グラフGR21)を生成する。図13の例では、情報処理装置100は、連結条件一覧LCL1の入力閾値「2」を選択数に決定する。 Then, the information processing apparatus 100 executes the graph reconstruction process and generates the reconstruction graph (step S23). The information processing apparatus 100 provides a graph GR21 (reconstruction graph GR21) which is a reconstruction graph in which 10,000 nodes including the nodes N1 to N6 included in the graph GR11 are connected by an edge based on the connection condition list LCL1. Generate. In the example of FIG. 13, the information processing apparatus 100 determines the input threshold value “2” of the connection condition list LCL1 as the number of selections.

例えば、情報処理装置100は、ノードN1から順に対象として処理を行うことにより、再構築グラフGR21を生成する。まず、情報処理装置100は、ノードN1~N6等を含む10000個のノードを含み、エッジを含まない再構築グラフGR21を生成する。例えば、情報処理装置100は、グラフGR11に含まれる情報のうち、ノードのみをコピーすることにより、N1~N6等を含む10000個のノードを含み、エッジを含まない再構築グラフGR21を生成する。そして、情報処理装置100は、エッジを含まない再構築グラフGR21を初期状態として、再構築グラフGR21内のノードを対象として順次エッジを追加することにより、再構築グラフGR21を生成する。なお、図13の例では、説明を簡単にするために、グラフGR11中のノードと再構築グラフGR21のノードと同じノードIDで処理する場合を示すが、グラフGR11中のノードと再構築グラフGR21のノードとの対応付けがされていれば、どのようなノードIDにより管理されてもよい。例えば、グラフGR11中のノードN1は、再構築グラフGR21中においてはノードN1-1(すなわちノードID「N1-1」)とし、ノードN1とノードN1-1とを対応付けた情報を記憶部120(図3参照)してもよい。 For example, the information processing apparatus 100 generates the reconstructed graph GR21 by performing processing in order from the node N1. First, the information processing apparatus 100 generates a reconstruction graph GR21 including 10000 nodes including nodes N1 to N6 and the like and does not include edges. For example, the information processing apparatus 100 generates a reconstructed graph GR21 including 10000 nodes including N1 to N6 and the like and not including an edge by copying only the nodes among the information contained in the graph GR11. Then, the information processing apparatus 100 generates the reconstruction graph GR21 by sequentially adding edges to the nodes in the reconstruction graph GR21 with the reconstruction graph GR21 not including the edge as the initial state. In the example of FIG. 13, for the sake of simplicity, the case of processing with the same node ID as the node in the graph GR11 and the node of the reconstructed graph GR21 is shown, but the node in the graph GR11 and the reconstructed graph GR21 are shown. As long as it is associated with the node of, it may be managed by any node ID. For example, the node N1 in the graph GR11 is a node N1-1 (that is, the node ID “N1-1”) in the reconstructed graph GR21, and the information in which the node N1 and the node N1-1 are associated is stored in the storage unit 120. (See FIG. 3).

また、情報処理装置100は、近傍ノードデータGR20を参照して、エッジ連結処理の対象のノード(対象ノード)からの出力エッジが接続されるノードから近傍ノードを選択してもよい。情報処理装置100は、近傍ノードデータGR20において、対象ノードからの出力エッジが連結されているノードのうち、距離が近い方から選択数のノードを近傍ノードとして選択してもよい。また、情報処理装置100は、近傍ノードデータGR20において選択した近傍ノードに対応する再構築グラフGR21中のノードを近傍ノードとして選択してもよい。また、情報処理装置100は、再構築グラフGR21を生成する際に、グラフを探索することにより、近傍ノードを選択してもよい。例えば、情報処理装置100は、再構築グラフGR21を生成する際に、グラフGR11を探索することにより、近傍ノードを選択してもよい。この場合、情報処理装置100は、近傍ノードデータGR20や仮想的なK最近傍グラフを生成しなくてもよい。 Further, the information processing apparatus 100 may refer to the neighborhood node data GR20 and select a neighborhood node from the nodes to which the output edges from the target node (target node) of the edge connection processing are connected. In the neighborhood node data GR20, the information processing apparatus 100 may select a selection number of nodes as the neighborhood node from the node to which the output edges from the target node are connected, from the one having the shortest distance. Further, the information processing apparatus 100 may select a node in the reconstruction graph GR21 corresponding to the neighboring node selected in the neighborhood node data GR20 as the neighborhood node. Further, the information processing apparatus 100 may select a neighboring node by searching the graph when generating the reconstructed graph GR21. For example, the information processing apparatus 100 may select a neighboring node by searching the graph GR 11 when generating the reconstructed graph GR 21. In this case, the information processing apparatus 100 does not have to generate the neighborhood node data GR20 or the virtual K-nearest neighbor graph.

例えば、情報処理装置100は、ノードN1を対象のノード(対象ノード)としてエッジの連結を行う場合、近傍ノードデータGR20において、ノードN1からの出力エッジが連結される近傍ノード候補の情報を参照する。情報処理装置100は、近傍ノードデータGR20に含まれるノードN1の近傍ノード候補を参照し、ノードN1の近傍ノードとして、選択数「2」に対応する2個のノードN2、N6を選択する。例えば、情報処理装置100は、近傍ノードデータGR20に含まれるノードN1の近傍ノード候補の各距離を比較し、距離が短い方から順にノードN1の近傍ノードを選択する。図13の例では、情報処理装置100は、ノードN1の近傍ノード候補のうち、ノードN1と最も距離が短いノードN6と2番目に距離が短いノードN2の2つのノードを、再構築グラフGR21中のノードN1の近傍ノードとして選択する。 For example, when the information processing apparatus 100 connects edges with the node N1 as the target node (target node), the information processing apparatus 100 refers to the information of the neighborhood node candidate to which the output edge from the node N1 is connected in the neighborhood node data GR20. .. The information processing apparatus 100 refers to the neighborhood node candidate of the node N1 included in the neighborhood node data GR20, and selects two nodes N2 and N6 corresponding to the selection number "2" as the neighborhood node of the node N1. For example, the information processing apparatus 100 compares the distances of the neighboring node candidates of the node N1 included in the neighboring node data GR20, and selects the neighboring nodes of the node N1 in order from the shortest distance. In the example of FIG. 13, the information processing apparatus 100 selects two nodes, the node N6 having the shortest distance from the node N1 and the node N2 having the shortest distance from the node N1, among the neighboring node candidates of the node N1 in the reconstruction graph GR21. Select as a node near node N1 of.

そして、情報処理装置100は、連結条件に基づいて、対象ノードと近傍ノードとの間を連結する有向エッジを再構築グラフGR21に追加する。図13の例では、情報処理装置100は、連結条件一覧LCL1に基づいて、再構築グラフGR21中のノードN1と近傍ノードであるノードN2、N6との間を連結する有向エッジを再構築グラフGR21に追加する。具体的には、情報処理装置100は、連結条件一覧LCL1に基づいて、再構築グラフGR21中のノードN1に2本の入力エッジ及び1本の出力エッジが連結されるように再構築グラフGR21を生成(更新)する。 Then, the information processing apparatus 100 adds a directed edge connecting the target node and the neighboring node to the reconstruction graph GR 21 based on the connection condition. In the example of FIG. 13, the information processing apparatus 100 reconstructs a directed edge connecting the node N1 in the reconstruction graph GR21 and the neighboring nodes N2 and N6 based on the connection condition list LCL1. Add to GR21. Specifically, the information processing apparatus 100 sets the reconstruction graph GR21 so that two input edges and one output edge are connected to the node N1 in the reconstruction graph GR21 based on the connection condition list LCL1. Generate (update).

情報処理装置100は、選択した近傍ノードのうち、距離が短い方から順に2個のノードにノードN1への入力エッジを連結する。情報処理装置100は、選択した近傍ノードであるノードN2、N6のうち、再構築グラフGR21において、距離が最も短いノードN6にノードN1へ入力するエッジE12を連結する。また、情報処理装置100は、選択した近傍ノードであるノードN2、N6のうち、再構築グラフGR21において、距離が2番目に短いノードN2にノードN1へ入力するエッジE2を連結する。 The information processing apparatus 100 connects the input edges to the node N1 to the two selected neighboring nodes in order from the one having the shortest distance. The information processing apparatus 100 connects the edge E12 to be input to the node N1 to the node N6 having the shortest distance in the reconstruction graph GR21 among the selected neighboring nodes N2 and N6. Further, the information processing apparatus 100 connects the edge E2 to be input to the node N1 to the node N2 having the second shortest distance in the reconstruction graph GR21 among the selected neighboring nodes N2 and N6.

また、情報処理装置100は、選択した近傍ノードのうち、距離が短い方から順に1個のノードにノードN1からの出力エッジを連結する。情報処理装置100は、選択した近傍ノードであるノードN2、N6のうち、再構築グラフGR21において、距離が最も短いノードN6にノードN1から出力するエッジE13を連結する。 Further, the information processing apparatus 100 connects the output edge from the node N1 to one of the selected neighboring nodes in order from the one having the shortest distance. The information processing apparatus 100 connects the edge E13 output from the node N1 to the node N6 having the shortest distance in the reconstruction graph GR21 among the selected neighboring nodes N2 and N6.

そして、情報処理装置100は、ノードN2~N6等を含む残りの9999個のノードについても同様に連結エッジを追加する処理を行うことにより、再構築グラフGR21を生成する。なお、情報処理装置100は、生成した再構築グラフGR21を第1グラフとして、図1に示すようなオブジェクト(ノード)の新規追加の処理を行ってもよい。例えば、情報処理装置100は、生成した再構築グラフGR21を第1グラフとして、追加されたオブジェクトに対応する追加ノードを再構築グラフGR21に追加することにより、第2グラフを生成してもよい。 Then, the information processing apparatus 100 generates the reconstructed graph GR21 by similarly performing a process of adding a connecting edge to the remaining 9999 nodes including the nodes N2 to N6 and the like. The information processing apparatus 100 may use the generated reconstruction graph GR21 as the first graph to perform a process of newly adding an object (node) as shown in FIG. For example, the information processing apparatus 100 may generate a second graph by using the generated reconstruction graph GR21 as the first graph and adding an additional node corresponding to the added object to the reconstruction graph GR21.

上述したように、情報処理装置100は、グラフが再構築の条件を満たす場合、再構築グラフを生成することにより、適切なタイミングでエッジのバランスを調整することができるため、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。 As described above, when the graph satisfies the reconstruction condition, the information processing apparatus 100 can adjust the edge balance at an appropriate timing by generating the reconstruction graph, so that the graph used for the search can be used. Can be generated appropriately. Therefore, the information processing apparatus 100 can generate graph data that enables efficient search for a predetermined target.

〔6.再構築処理のフロー〕
次に、図14を用いて、実施形態に係る情報処理システム1によるグラフの再構築処理の手順について説明する。図14は、実施形態に係るグラフの再構築処理の一例を示すフローチャートである。
[6. Reconstruction process flow]
Next, with reference to FIG. 14, a procedure for graph reconstruction processing by the information processing system 1 according to the embodiment will be described. FIG. 14 is a flowchart showing an example of the graph reconstruction process according to the embodiment.

図14に示すように、情報処理装置100は、再構築条件を満たすかどうかを判定する(ステップS501)。情報処理装置100は、再構築条件を満たさないと判定した場合(ステップS501:No)、再構築処理をせずに処理を終了する。 As shown in FIG. 14, the information processing apparatus 100 determines whether or not the reconstruction condition is satisfied (step S501). When the information processing apparatus 100 determines that the reconstruction condition is not satisfied (step S501: No), the information processing apparatus 100 ends the process without performing the reconstruction process.

情報処理装置100は、再構築条件を満たすと判定した場合(ステップS501:Yes)、第2グラフに含まれる各ノードの近傍ノードに関する情報を参照することにより、第2グラフに含まれる各ノードに対応する近傍ノードを選択する(ステップS502)。そして、情報処理装置100は、有向エッジの連結に関する連結条件に基づいて、各ノードと近傍ノードとの間を有向エッジにより連結した第3グラフを生成する(ステップS503)。 When the information processing apparatus 100 determines that the reconstruction condition is satisfied (step S501: Yes), the information processing apparatus 100 refers to the information regarding the neighboring nodes of each node included in the second graph, whereby the node included in the second graph is referred to. Select the corresponding neighbor node (step S502). Then, the information processing apparatus 100 generates a third graph in which each node and neighboring nodes are connected by the directed edge based on the connection condition regarding the connection of the directed edge (step S503).

〔7.検索例〕
ここで、上述したグラフデータを用いた検索の一例を示す。なお、生成したグラフデータを用いた検索は下記に限らず、種々の手順により行われてもよい。この点について、図16を一例として説明する。図16は、グラフデータを用いた検索処理の一例を示すフローチャートである。以下に説明する検索処理は、情報処理装置100の検索部135によって行われる。また、以下でいうオブジェクトは、ノードと読み替えてもよい。なお、以下では、情報処理装置100(選択部132や検索部135)が検索処理を行う。なお、検索サービスを提供しない場合、情報処理装置100は検索部135を有しなくてもよい。以下で説明する処理の検索クエリは、追加ノードや対象ノードやユーザが指定したオブジェクト等であってもよい。
[7. Search example]
Here, an example of the search using the graph data described above is shown. The search using the generated graph data is not limited to the following, and may be performed by various procedures. This point will be described with reference to FIG. 16 as an example. FIG. 16 is a flowchart showing an example of a search process using graph data. The search process described below is performed by the search unit 135 of the information processing apparatus 100. In addition, the objects referred to below may be read as nodes. In the following, the information processing device 100 (selection unit 132 and search unit 135) performs a search process. If the search service is not provided, the information processing apparatus 100 does not have to have the search unit 135. The search query of the process described below may be an additional node, a target node, an object specified by the user, or the like.

ここでは、近傍オブジェクト集合N(G,y)は、ノードyに付与されているエッジにより関連付けられている近傍のオブジェクトの集合である。「G」は、所定のグラフデータ(例えば、第2グラフGR12等)であってもよい。例えば、情報処理装置100は、k近傍検索処理を実行する。 Here, the neighborhood object set N (G, y) is a set of neighborhood objects associated with the edge assigned to the node y. “G” may be predetermined graph data (for example, the second graph GR12 or the like). For example, the information processing apparatus 100 executes the k-nearest neighbor search process.

例えば、情報処理装置100は、超球の半径rを∞(無限大)に設定し(ステップS300)、既存のオブジェクト集合から部分集合Sを抽出する(ステップS301)。例えば、情報処理装置100は、ルートノードとして選択されたオブジェクト(ノード)を部分集合Sとして抽出してもよい。また、例えば、超球とは、検索範囲を示す仮想的な球である。なお、ステップS301において抽出されたオブジェクト集合Sに含まれるオブジェクトは、同時に検索結果のオブジェクト集合Rの初期集合にも含められる。 For example, the information processing apparatus 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 information processing apparatus 100 may extract an object (node) selected as a root node as a subset S. Further, for example, a hypersphere is a virtual sphere indicating a 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 of the search results at the same time.

次に、情報処理装置100は、オブジェクト集合Sに含まれるオブジェクトの中で、検索クエリオブジェクトをyとするとオブジェクトyとの距離が最も短いオブジェクトを抽出し、オブジェクトsとする(ステップS302)。例えば、情報処理装置100は、ルートノードとして選択されたオブジェクト(ノード)のみがSの要素の場合には、結果的にルートノードがオブジェクトsとして抽出される。次に、情報処理装置100は、オブジェクトsをオブジェクト集合Sから除外する(ステップS303)。 Next, the information processing apparatus 100 extracts the object having the shortest distance from the object y from the objects included in the object set S, where y is the search query object, and sets it as the object s (step S302). For example, in the information processing apparatus 100, when only the object (node) selected as the root node is an element of S, the root node is extracted as the object s as a result. Next, the information processing apparatus 100 excludes the objects 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 information processing apparatus 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 extension element, and r (1 + ε) is a value indicating the radius of the search range (searching only the nodes within this range. The accuracy can be improved by making it larger than the search range). be. When the distance d (s, y) between the object s and the object y exceeds r (1 + ε) (step S304: Yes), the information processing apparatus 100 outputs the object set R as a neighborhood object set of the object y (step). S305), the process is terminated.

オブジェクト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 information processing apparatus 100 determines the neighborhood object set N (G, s) of the objects s. One object not included in the object set C is selected from the objects that are the elements of the above, 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+ε)以下である場合(ステップS307:Yes)、情報処理装置100は、オブジェクトuをオブジェクト集合Sに追加する(ステップS308)。また、オブジェクトuとオブジェクトyとの距離d(u,y)がr(1+ε)以下ではない場合(ステップS307:No)、情報処理装置100は、ステップS309の判定(処理)を行う。 Next, the information processing apparatus 100 determines whether or not the distance d (u, y) between the object u and the object y is r (1 + ε) or less (step S307). When the distance d (u, y) between the object u and the object y is r (1 + ε) or less (step S307: Yes), the information processing apparatus 100 adds the object u to the object set S (step S308). Further, when the distance d (u, y) between the object u and the object y is not r (1 + ε) or less (step S307: No), the information processing apparatus 100 determines (processes) step S309.

次に、情報処理装置100は、オブジェクトuとオブジェクトyとの距離d(u,y)がr以下であるか否かを判定する(ステップS309)。オブジェクトuとオブジェクトyとの距離d(u,y)がrを超える場合、情報処理装置100は、ステップS315の判定(処理)を行う。また、オブジェクトuとオブジェクトyとの距離d(u,y)がr以下ではない場合(ステップS309:No)、情報処理装置100は、ステップS315の判定(処理)を行う。 Next, the information processing apparatus 100 determines whether or not the distance d (u, y) between the object u and the object y is r or less (step S309). When the distance d (u, y) between the object u and the object y exceeds r, the information processing apparatus 100 performs the determination (processing) in step S315. Further, when the distance d (u, y) between the object u and the object y is not r or less (step S309: No), the information processing apparatus 100 determines (processes) in step S315.

オブジェクトuとオブジェクトyとの距離d(u,y)がr以下である場合(ステップS309:Yes)、情報処理装置100は、オブジェクトuをオブジェクト集合Rに追加する(ステップS310)。そして、情報処理装置100は、オブジェクト集合Rに含まれるオブジェクト数がksを超えるか否かを判定する(ステップS311)。所定数ksは、任意に定められる自然数である。例えば、ksは、選択数であってもよい。例えば、ks=2であってもよい。オブジェクト集合Rに含まれるオブジェクト数がksを超えない場合(ステップS311:No)、情報処理装置100は、ステップS313の判定(処理)を行う。 When the distance d (u, y) between the object u and the object y is r or less (step S309: Yes), the information processing apparatus 100 adds the object u to the object set R (step S310). Then, the information processing apparatus 100 determines whether or not the number of objects included in the object set R exceeds ks (step S311). The predetermined number ks is an arbitrarily determined natural number. For example, ks may be a selection number. For example, ks = 2 may be set. When the number of objects included in the object set R does not exceed ks (step S311: No), the information processing apparatus 100 determines (processes) step S313.

オブジェクト集合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 information processing apparatus 100 selects the object having the longest distance (far) from the object y among the objects included in the object set R. Exclude from the object set R (step S312).

次に、情報処理装置100は、オブジェクト集合Rに含まれるオブジェクト数がksと一致するか否かを判定する(ステップS313)。オブジェクト集合Rに含まれるオブジェクト数がksと一致しない場合(ステップS313:No)、情報処理装置100は、ステップS315の判定(処理)を行う。また、オブジェクト集合Rに含まれるオブジェクト数がksと一致する場合(ステップS313:Yes)、情報処理装置100は、オブジェクト集合Rに含まれるオブジェクトの中でオブジェクトyとの距離が最も長い(遠い)オブジェクトと、オブジェクトyとの距離を、新たなrに設定する(ステップS314)。 Next, the information processing apparatus 100 determines whether or not the number of objects included in the object set R matches ks (step S313). When the number of objects included in the object set R does not match ks (step S313: No), the information processing apparatus 100 determines (processes) step S315. Further, when the number of objects included in the object set R matches ks (step S313: Yes), the information processing apparatus 100 has the longest distance (far) from the object y among the objects included in the object set R. The distance between the object and the object y is set to a new r (step S314).

そして、情報処理装置100は、オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えたか否かを判定する(ステップS315)。オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えていない場合(ステップS315:No)、情報処理装置100は、ステップS306に戻って処理を繰り返す。 Then, the information processing apparatus 100 selects all the objects from the objects that are the elements of the object set N (G, s) in the vicinity of the objects s, and determines whether or not the objects have been stored in the object set C (step S315). .. When all the objects are selected from the objects which are the elements of the object set N (G, s) in the vicinity of the objects and stored in the object set C (step S315: No), the information processing apparatus 100 performs step S306. Return to and repeat the process.

オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えた場合(ステップS315:Yes)、情報処理装置100は、オブジェクト集合Sが空集合であるか否かを判定する(ステップS316)。オブジェクト集合Sが空集合でない場合(ステップS316:No)、情報処理装置100は、ステップS302に戻って処理を繰り返す。また、オブジェクト集合Sが空集合である場合(ステップS316:Yes)、情報処理装置100は、オブジェクト集合Rを出力し、処理を終了する(ステップS317)。例えば、情報処理装置100は、オブジェクト集合Rに含まれるオブジェクト(ノード)を追加ノード(入力オブジェクトy)に対応する近傍ノードとして選択してもよい。例えば、情報処理装置100は、オブジェクト集合Rに含まれるオブジェクト(ノード)を対象ノード(入力オブジェクトy)に対応する近傍ノードとして選択してもよい。また、例えば、情報処理装置100は、オブジェクト集合Rに含まれるオブジェクト(ノード)を検索クエリ(入力オブジェクトy)に対応する検索結果として、検索を行った端末装置等へ提供してもよい。 When all the objects are selected from the objects that are the elements of the object set N (G, s) in the vicinity of the objects s and stored in the object set C (step S315: Yes), the information processing apparatus 100 sets the object set S. Is an empty set or not (step S316). If the object set S is not an empty set (step S316: No), the information processing apparatus 100 returns to step S302 and repeats the process. When the object set S is an empty set (step S316: Yes), the information processing apparatus 100 outputs the object set R and ends the process (step S317). For example, the information processing apparatus 100 may select an object (node) included in the object set R as a neighboring node corresponding to an additional node (input object y). For example, the information processing apparatus 100 may select an object (node) included in the object set R as a neighborhood node corresponding to the target node (input object y). Further, for example, the information processing apparatus 100 may provide an object (node) included in the object set R to a terminal device or the like that has performed a search as a search result corresponding to a search query (input object y).

〔8.効果〕
上述してきたように、実施形態に係る情報処理装置100は、取得部131と、選択部132と、生成部134とを有する。取得部131は、データ検索の対象となる一のオブジェクトと、一のオブジェクトとは異なる他のオブジェクトの各々に対応する複数のノード、及びノード間を連結する有向エッジを含む第1グラフとを取得する。選択部132は、第1グラフに基づいて、複数のノードのうち、一のオブジェクトに対応する一のノードの近傍に位置する近傍ノードを選択する。生成部134は、一のノードを第1グラフに追加し、有向エッジの連結に関し、所定の条件により変更される連結条件に基づいて、一のノードと近傍ノードとの間を有向エッジにより連結した第2グラフを生成する。
[8. effect〕
As described above, the information processing apparatus 100 according to the embodiment includes an acquisition unit 131, a selection unit 132, and a generation unit 134. The acquisition unit 131 obtains one object to be searched for data, a plurality of nodes corresponding to each of other objects different from the one object, and a first graph including a directed edge connecting the nodes. get. The selection unit 132 selects a neighboring node located in the vicinity of one node corresponding to one object among a plurality of nodes based on the first graph. The generation unit 134 adds one node to the first graph, and regarding the connection of the directed edge, the directed edge between the one node and the neighboring node based on the connection condition changed by a predetermined condition. Generate a concatenated second graph.

このように、実施形態に係る情報処理装置100は、一のオブジェクトに対応する一のノードを第1グラフに追加し、有向エッジの連結に関し、所定の条件により変更される連結条件に基づいて、一のノードと近傍ノードとの間を有向エッジにより連結した第2グラフを生成することにより、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。 As described above, the information processing apparatus 100 according to the embodiment adds one node corresponding to one object to the first graph, and regarding the connection of the directed edges, based on the connection condition changed by a predetermined condition. , By generating a second graph in which one node and a neighboring node are connected by a directed edge, the graph used for the search can be appropriately generated. Therefore, the information processing apparatus 100 can generate graph data that enables efficient search for a predetermined target.

また、実施形態に係る情報処理装置100は、決定部133を有する。決定部133は、所定の条件である連結条件に関する変更条件に基づいて、連結条件を変更するかを決定する。生成部134は、決定部133により連結条件を変更すると決定された場合、変更後の連結条件に基づいて、一のノードと近傍ノードとの間を有向エッジにより連結した第2グラフを生成する。 Further, the information processing apparatus 100 according to the embodiment has a determination unit 133. The determination unit 133 determines whether to change the connection condition based on the change condition regarding the connection condition which is a predetermined condition. When the determination unit 133 determines that the connection condition is changed, the generation unit 134 generates a second graph in which one node and a neighboring node are connected by a directed edge based on the changed connection condition. ..

これにより、実施形態に係る情報処理装置100は、変更条件に応じて連結条件を変更するかを決定することができるため、連結条件を動的に変更し、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。 As a result, the information processing apparatus 100 according to the embodiment can determine whether to change the connection condition according to the change condition, so that the connection condition is dynamically changed and the graph used for the search is appropriately generated. be able to. Therefore, the information processing apparatus 100 can generate graph data that enables efficient search for a predetermined target.

また、実施形態に係る情報処理装置100において、決定部133は、第1グラフにおける複数のノードの数に関する変更条件に基づいて、連結条件を変更するかを決定する。 Further, in the information processing apparatus 100 according to the embodiment, the determination unit 133 determines whether to change the connection condition based on the change condition regarding the number of the plurality of nodes in the first graph.

これにより、実施形態に係る情報処理装置100は、第1グラフにおけるノード数に応じて、連結条件を動的に変更し、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。 Thereby, the information processing apparatus 100 according to the embodiment can dynamically change the connection condition according to the number of nodes in the first graph and appropriately generate the graph used for the search. Therefore, the information processing apparatus 100 can generate graph data that enables efficient search for a predetermined target.

また、実施形態に係る情報処理装置100において、決定部133は、第1グラフにおける複数のノードの数が所定の閾値以上である場合、連結条件を変更するかを決定する。 Further, in the information processing apparatus 100 according to the embodiment, the determination unit 133 determines whether to change the connection condition when the number of the plurality of nodes in the first graph is equal to or more than a predetermined threshold value.

これにより、実施形態に係る情報処理装置100は、第1グラフにおける複数のノードの数と所定の閾値とを比較し、その結果に応じて、連結条件を動的に変更し、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。 As a result, the information processing apparatus 100 according to the embodiment compares the number of a plurality of nodes in the first graph with a predetermined threshold value, dynamically changes the connection condition according to the result, and uses the graph for the search. Can be properly generated. Therefore, the information processing apparatus 100 can generate graph data that enables efficient search for a predetermined target.

また、実施形態に係る情報処理装置100において、決定部133は、第1グラフにおける複数のノードのうち、所定の時点以後に追加されたノードである追加ノードの割合に関する変更条件に基づいて、連結条件を変更するかを決定する。 Further, in the information processing apparatus 100 according to the embodiment, the determination unit 133 concatenates based on the change condition regarding the ratio of the additional nodes that are the nodes added after a predetermined time point among the plurality of nodes in the first graph. Decide if you want to change the conditions.

これにより、実施形態に係る情報処理装置100は、第1グラフにおける追加ノードの割合に応じて、連結条件を動的に変更し、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。 Thereby, the information processing apparatus 100 according to the embodiment can dynamically change the connection condition according to the ratio of the additional nodes in the first graph and appropriately generate the graph used for the search. Therefore, the information processing apparatus 100 can generate graph data that enables efficient search for a predetermined target.

また、実施形態に係る情報処理装置100において、決定部133は、第1グラフにおける複数のノードのうち、追加ノードの割合が所定の閾値以上である場合、連結条件を変更するかを決定する。 Further, in the information processing apparatus 100 according to the embodiment, the determination unit 133 determines whether to change the connection condition when the ratio of the additional nodes among the plurality of nodes in the first graph is equal to or more than a predetermined threshold value.

これにより、実施形態に係る情報処理装置100は、第1グラフにおける追加ノードの割合と所定の閾値とを比較し、その結果に応じて、連結条件を動的に変更し、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。 As a result, the information processing apparatus 100 according to the embodiment compares the ratio of the additional nodes in the first graph with the predetermined threshold value, dynamically changes the connection condition according to the result, and obtains the graph used for the search. Can be generated appropriately. Therefore, the information processing apparatus 100 can generate graph data that enables efficient search for a predetermined target.

また、実施形態に係る情報処理装置100において、決定部133は、第1グラフにおける有向エッジの数に関する変更条件に基づいて、連結条件を変更するかを決定する。 Further, in the information processing apparatus 100 according to the embodiment, the determination unit 133 determines whether to change the connection condition based on the change condition regarding the number of directed edges in the first graph.

これにより、実施形態に係る情報処理装置100は、第1グラフにおける有向エッジの数に関する変更条件に応じて、連結条件を動的に変更し、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。 As a result, the information processing apparatus 100 according to the embodiment can dynamically change the connection condition according to the change condition regarding the number of directed edges in the first graph, and appropriately generate the graph to be used for the search. .. Therefore, the information processing apparatus 100 can generate graph data that enables efficient search for a predetermined target.

また、実施形態に係る情報処理装置100において、決定部133は、第1グラフにおける有向エッジの統計的情報に関する変更条件に基づいて、連結条件を変更するかを決定する。 Further, in the information processing apparatus 100 according to the embodiment, the determination unit 133 determines whether to change the connection condition based on the change condition regarding the statistical information of the directed edge in the first graph.

これにより、実施形態に係る情報処理装置100は、第1グラフにおける有向エッジの数の統計的情報に応じて、連結条件を動的に変更し、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。 As a result, the information processing apparatus 100 according to the embodiment can dynamically change the connection condition according to the statistical information of the number of directed edges in the first graph, and appropriately generate the graph to be used for the search. can. Therefore, the information processing apparatus 100 can generate graph data that enables efficient search for a predetermined target.

また、実施形態に係る情報処理装置100において、決定部133は、変更条件に基づいて、連結条件における有向エッジの数に関するエッジ数条件を変更する。生成部134は、変更後のエッジ数条件に基づいて、一のノードと近傍ノードとの間を有向エッジにより連結した第2グラフを生成する。 Further, in the information processing apparatus 100 according to the embodiment, the determination unit 133 changes the edge number condition regarding the number of directed edges in the connection condition based on the change condition. The generation unit 134 generates a second graph in which one node and a neighboring node are connected by a directed edge based on the changed edge number condition.

これにより、実施形態に係る情報処理装置100は、変更条件に基づいて、エッジ数条件を動的に変更し、変更後のエッジ数条件に基づいて第2グラフを生成し、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。 As a result, the information processing apparatus 100 according to the embodiment dynamically changes the edge number condition based on the change condition, generates a second graph based on the changed edge number condition, and uses the graph for the search. Can be generated appropriately. Therefore, the information processing apparatus 100 can generate graph data that enables efficient search for a predetermined target.

また、実施形態に係る情報処理装置100において、決定部133は、第1グラフにおける複数のノードの数が多い程、エッジ数条件において指定される連結エッジ数を増加させる。生成部134は、増加後の連結エッジ数に基づいて、一のノードと近傍ノードとの間を有向エッジにより連結した第2グラフを生成する。 Further, in the information processing apparatus 100 according to the embodiment, the determination unit 133 increases the number of connected edges specified in the edge number condition as the number of the plurality of nodes in the first graph increases. The generation unit 134 generates a second graph in which one node and neighboring nodes are connected by directed edges based on the number of connected edges after the increase.

これにより、実施形態に係る情報処理装置100は、ノードの数が多い程、エッジ数条件において指定される連結エッジ数を増加させ、増加後のエッジ数条件に基づいて第2グラフを生成することができるため、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。 As a result, the information processing apparatus 100 according to the embodiment increases the number of connected edges specified in the edge number condition as the number of nodes increases, and generates a second graph based on the increased edge number condition. Therefore, the graph used for the search can be appropriately generated. Therefore, the information processing apparatus 100 can generate graph data that enables efficient search for a predetermined target.

また、実施形態に係る情報処理装置100において、決定部133は、指定された生成時間を超過すると推定される場合、エッジ数条件において指定される連結エッジ数を減少させる。生成部134は、減少後の連結エッジ数に基づいて、一のノードと近傍ノードとの間を有向エッジにより連結した第2グラフを生成する。 Further, in the information processing apparatus 100 according to the embodiment, the determination unit 133 reduces the number of connected edges specified in the edge number condition when it is estimated that the specified generation time is exceeded. The generation unit 134 generates a second graph in which one node and neighboring nodes are connected by directed edges based on the number of connected edges after the decrease.

これにより、実施形態に係る情報処理装置100は、ノ生成時間を超過する場合エッジ数条件において指定される連結エッジ数を減少させ、減少後のエッジ数条件に基づいて第2グラフを生成し、指定された生成時間の超過を抑制しつつ、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。 As a result, the information processing apparatus 100 according to the embodiment reduces the number of connected edges specified in the edge number condition when the generation time is exceeded, and generates a second graph based on the reduced edge number condition. The graph used for the search can be appropriately generated while suppressing the excess of the specified generation time. Therefore, the information processing apparatus 100 can generate graph data that enables efficient search for a predetermined target.

また、実施形態に係る情報処理装置100において、決定部133は、一のノードを起点とし他のノードを終点する出力エッジの数に関する出力数条件を含むエッジ数条件を変更する。生成部134は、変更後の出力数条件に基づいて、近傍ノードのうち、出力数条件に対応する数の出力先ノードに、一のノードを起点とする出力エッジを連結した第2グラフを生成する。 Further, in the information processing apparatus 100 according to the embodiment, the determination unit 133 changes the edge number condition including the output number condition regarding the number of output edges starting from one node and ending at the other node. Based on the changed output number condition, the generation unit 134 generates a second graph in which the output edges starting from one node are connected to the number of output destination nodes corresponding to the output number condition among the neighboring nodes. do.

これにより、実施形態に係る情報処理装置100は、出力数条件を含むエッジ数条件を動的に変更し、出力数条件に対応する数の出力先ノードに、一のノードを起点とする出力エッジを連結することができるため、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。 As a result, the information processing apparatus 100 according to the embodiment dynamically changes the edge number condition including the output number condition, and the number of output destination nodes corresponding to the output number condition is the output edge starting from one node. Can be concatenated, so that the graph used for the search can be appropriately generated. Therefore, the information processing apparatus 100 can generate graph data that enables efficient search for a predetermined target.

また、実施形態に係る情報処理装置100において、決定部133は、他のノードを起点とし一のノードを終点とする入力エッジの数に関する入力数条件を含むエッジ数条件を変更する。生成部134は、変更後のエッジ数条件に基づいて、近傍ノードのうち、入力数条件に対応する数の入力元ノードに、一のノードを終点とする入力エッジを連結した第2グラフを生成する。 Further, in the information processing apparatus 100 according to the embodiment, the determination unit 133 changes the edge number condition including the input number condition regarding the number of input edges starting from another node and ending at one node. Based on the changed edge number condition, the generation unit 134 generates a second graph in which the input source nodes corresponding to the input number condition among the neighboring nodes are connected to the input edges having one node as the end point. do.

これにより、実施形態に係る情報処理装置100は、入力数条件を含むエッジ数条件を動的に変更し、入力数条件に対応する数の入力元ノードに、一のノードを終点とする入力エッジを連結することができるため、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。 As a result, the information processing apparatus 100 according to the embodiment dynamically changes the edge number condition including the input number condition, and makes the input source node of the number corresponding to the input number condition an input edge having one node as an end point. Can be concatenated, so that the graph used for the search can be appropriately generated. Therefore, the information processing apparatus 100 can generate graph data that enables efficient search for a predetermined target.

また、実施形態に係る情報処理装置100において、選択部132は、第1グラフを探索することにより、近傍ノードを選択する。 Further, in the information processing apparatus 100 according to the embodiment, the selection unit 132 selects a neighboring node by searching the first graph.

これにより、実施形態に係る情報処理装置100は、第1グラフを探索することにより、効率的に近傍ノードを選択するができるため、生成時間の増大を抑制しつつ、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。 As a result, the information processing apparatus 100 according to the embodiment can efficiently select neighboring nodes by searching the first graph, so that the graph used for the search can be appropriately selected while suppressing an increase in the generation time. Can be generated. Therefore, the information processing apparatus 100 can generate graph data that enables efficient search for a predetermined target.

また、実施形態に係る情報処理装置100において、生成部134は、第2グラフにおける有向エッジを更新することにより、第3グラフを生成する。 Further, in the information processing apparatus 100 according to the embodiment, the generation unit 134 generates the third graph by updating the directed edge in the second graph.

これにより、実施形態に係る情報処理装置100は、生成した第2グラフにおいて特定のノードに多数のエッジが連結されている等のエッジの連結にばらつきが生じている場合等、エッジの調整処理が必要な場合に、有向エッジを更新して第3グラフを生成することにより、エッジの連結のばらつき等が解消されたグラフを再構築することができるため、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。 As a result, the information processing apparatus 100 according to the embodiment can perform edge adjustment processing when the edge connection is uneven, such as when a large number of edges are connected to a specific node in the generated second graph. If necessary, by updating the directed edge and generating the third graph, it is possible to reconstruct the graph in which the variation in the connection of the edges is eliminated, so that the graph used for the search is appropriately generated. be able to. Therefore, the information processing apparatus 100 can generate graph data that enables efficient search for a predetermined target.

また、実施形態に係る情報処理装置100において、生成部134は、第2グラフが、グラフの再構築に関する所定の条件を満たす場合、第3グラフを生成する。 Further, in the information processing apparatus 100 according to the embodiment, the generation unit 134 generates the third graph when the second graph satisfies a predetermined condition regarding the reconstruction of the graph.

これにより、実施形態に係る情報処理装置100は、生成した第2グラフにおけるエッジの連結にばらつきが生じている場合等、グラフの再構築に関する所定の条件を満たす場合等、エッジの調整処理が必要な場合に、有向エッジを更新して第3グラフを生成することにより、エッジの連結のばらつき等が解消されたグラフを再構築することができるため、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。 As a result, the information processing apparatus 100 according to the embodiment requires edge adjustment processing, such as when the connection of edges in the generated second graph is uneven, or when certain conditions relating to graph reconstruction are satisfied. In such a case, by updating the directed edge and generating the third graph, it is possible to reconstruct the graph in which the variation in the connection of the edges is eliminated, so that the graph used for the search should be generated appropriately. Can be done. Therefore, the information processing apparatus 100 can generate graph data that enables efficient search for a predetermined target.

また、実施形態に係る情報処理装置100において、生成部134は、第2グラフに含まれる各ノードの近傍ノードに関する情報を用いて、第3グラフを生成する。 Further, in the information processing apparatus 100 according to the embodiment, the generation unit 134 generates the third graph by using the information about the nodes in the vicinity of each node included in the second graph.

これにより、実施形態に係る情報処理装置100は、第2グラフに含まれる各ノードの近傍ノードに関する情報を用いて、第3グラフを生成することにより、例えば仮想的に近似K近傍グラフ状態とした第2グラフに含まれる各ノードの近傍ノードに関する情報を用いてグラフを生成することができるため、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。 As a result, the information processing apparatus 100 according to the embodiment generates a third graph by using the information about the nearby nodes of each node included in the second graph, for example, to virtually obtain an approximate K neighborhood graph state. Since the graph can be generated using the information about the nodes in the vicinity of each node included in the second graph, the graph used for the search can be appropriately generated. Therefore, the information processing apparatus 100 can generate graph data that enables efficient search for a predetermined target.

また、実施形態に係る情報処理装置100において、選択部132は、第2グラフに含まれる各ノードの近傍ノードに関する情報を参照することにより、第2グラフに含まれる各ノードに対応する近傍ノードを選択する。生成部134は、連結条件に基づいて、各ノードと近傍ノードとの間を有向エッジにより連結した第3グラフを生成する。 Further, in the information processing apparatus 100 according to the embodiment, the selection unit 132 refers to the information regarding the neighboring nodes of each node included in the second graph, thereby displaying the neighboring nodes corresponding to the neighboring nodes included in the second graph. select. The generation unit 134 generates a third graph in which each node and a neighboring node are connected by a directed edge based on the connection condition.

これにより、実施形態に係る情報処理装置100は、第2グラフに含まれる各ノードの近傍ノードに関する情報を参照することにより、効率的に近傍ノードを選択するができるため、生成時間の増大を抑制しつつ、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。 As a result, the information processing apparatus 100 according to the embodiment can efficiently select the neighboring nodes by referring to the information about the neighboring nodes of each node included in the second graph, so that the increase in the generation time is suppressed. However, the graph used for the search can be appropriately generated. Therefore, the information processing apparatus 100 can generate graph data that enables efficient search for a predetermined target.

〔9.ハードウェア構成〕
上述してきた実施形態に係る情報処理装置100は、例えば図17に示すような構成のコンピュータ1000によって実現される。図17は、情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM(Read Only Memory)1300、HDD(Hard Disk Drive)1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を有する。
[9. Hardware configuration]
The information processing apparatus 100 according to the above-described embodiment is realized by, for example, a computer 1000 having a configuration as shown in FIG. FIG. 17 is a hardware configuration diagram showing an example of a computer that realizes the functions of the information processing device. The computer 1000 includes a CPU 1100, a RAM 1200, a ROM (Read Only Memory) 1300, an HDD (Hard Disk Drive) 1400, a communication interface (I / F) 1500, an input / output interface (I / F) 1600, and a media interface (I / F). ) Has 1700.

CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。 The CPU 1100 operates based on a program stored in the ROM 1300 or the HDD 1400, and controls each part. The ROM 1300 stores a boot program executed by the CPU 1100 when the computer 1000 is started, a program depending on the hardware of the computer 1000, and the like.

HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス1500は、ネットワークNを介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータをネットワークNを介して他の機器へ送信する。 The HDD 1400 stores a program executed by the CPU 1100, data used by such a program, and the like. The communication interface 1500 receives data from another device via the network N and sends it to the CPU 1100, and transmits the data generated by the CPU 1100 to the other device via the network N.

CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを入出力インターフェイス1600を介して出力装置へ出力する。 The CPU 1100 controls an output device such as a display or a printer, and an input device such as a keyboard or a mouse via the input / output interface 1600. The CPU 1100 acquires data from the input device via the input / output interface 1600. Further, the CPU 1100 outputs the generated data to the output device via the input / output interface 1600.

メディアインターフェイス1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。 The media interface 1700 reads a program or data stored in the recording medium 1800 and provides the program or data to the CPU 1100 via the RAM 1200. The CPU 1100 loads the program from the recording medium 1800 onto the RAM 1200 via the media interface 1700, and executes the loaded program. The recording medium 1800 is, for example, an optical recording medium such as a DVD (Digital Versatile Disc) or PD (Phase change rewritable Disk), a magneto-optical recording medium such as MO (Magneto-Optical disk), a tape medium, a magnetic recording medium, or a semiconductor memory. And so on.

例えば、コンピュータ1000が実施形態に係る情報処理装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部130の機能を実現する。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置からネットワークNを介してこれらのプログラムを取得してもよい。 For example, when the computer 1000 functions as the information processing apparatus 100 according to the embodiment, the CPU 1100 of the computer 1000 realizes the function of the control unit 130 by executing the program loaded on the RAM 1200. The CPU 1100 of the computer 1000 reads these programs from the recording medium 1800 and executes them, but as another example, these programs may be acquired from another device via the network N.

以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の行に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。 Although some of the embodiments of the present application have been described in detail with reference to the drawings, these are examples, and various modifications are made based on the knowledge of those skilled in the art, including the embodiments described in the disclosure line of the invention. It is possible to carry out the present invention in other modified forms.

〔10.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
[10. others〕
Further, among the processes described in the above-described embodiment, all or a part of the processes described as being automatically performed can be manually performed, or the processes described as being manually performed can be performed. All or part of it can be done automatically by a known method. In addition, information including processing procedures, specific names, various data and parameters shown in the above documents and drawings can be arbitrarily changed unless otherwise specified. For example, the various information shown in each figure is not limited to the information shown in the figure.

また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。 Further, each component of each of the illustrated devices is a functional concept, and does not necessarily have to be physically configured as shown in the figure. That is, the specific form of distribution / integration of each device is not limited to the one shown in the figure, and all or part of them may be functionally or physically distributed / physically in any unit according to various loads and usage conditions. Can be integrated and configured.

また、上述してきた各実施形態に記載された各処理は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。 In addition, the processes described in the above-described embodiments can be appropriately combined as long as the processing contents do not contradict each other.

また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。 Further, the above-mentioned "section, module, unit" can be read as "means" or "circuit". For example, the acquisition unit can be read as an acquisition means or an acquisition circuit.

1 情報処理システム
100 情報処理装置
121 オブジェクト情報記憶部
122 連結条件情報記憶部
123 変更条件情報記憶部
124 グラフデータ記憶部
125 起点用情報記憶部
126 再構築条件情報記憶部
127 再構築グラフデータ記憶部
130 制御部
131 取得部
132 選択部
133 決定部
134 生成部
135 検索部
136 提供部
10 端末装置
50 情報提供装置
N ネットワーク
1 Information processing system 100 Information processing device 121 Object information storage unit 122 Connection condition information storage unit 123 Change condition information storage unit 124 Graph data storage unit 125 Origin information storage unit 126 Reconstruction condition information storage unit 127 Reconstruction graph data storage unit 130 Control unit 131 Acquisition unit 132 Selection unit 133 Decision unit 134 Generation unit 135 Search unit 136 Providing unit 10 Terminal device 50 Information providing device N network

Claims (20)

データ検索の対象となる一のオブジェクトと、前記一のオブジェクトとは異なる他のオブジェクトの各々に対応する複数のノード、及びノード間を連結する有向エッジを含む第1グラフとを取得する取得部と、
前記第1グラフに基づいて、前記複数のノードのうち、前記一のオブジェクトに対応する一のノードの近傍に位置する近傍ノードを選択する選択部と、
前記一のノードを前記第1グラフに追加し、前記有向エッジの連結に関し、グラフを構成するノードまたはエッジの傾向に基づく条件である所定の条件により変更される連結条件に基づいて、前記一のノードと前記近傍ノードとの間を前記有向エッジにより連結した第2グラフを生成する生成部と、
を備えることを特徴とする情報処理装置。
An acquisition unit that acquires one object to be searched for data, a plurality of nodes corresponding to each of other objects different from the one object, and a first graph including a directed edge connecting the nodes. When,
Based on the first graph, a selection unit for selecting a neighboring node located in the vicinity of the one node corresponding to the one object among the plurality of nodes.
The one node is added to the first graph, and the connection of the directed edges is based on the connection condition changed by a predetermined condition which is a condition based on the tendency of the nodes or edges constituting the graph. A generator that generates a second graph in which the node of the above and the neighboring node are connected by the directed edge.
An information processing device characterized by being equipped with.
前記所定の条件である前記連結条件に関する変更条件に基づいて、前記連結条件を変更するかを決定する決定部、
をさらに備え、
前記生成部は、
前記決定部により前記連結条件を変更すると決定された場合、変更後の前記連結条件に基づいて、前記一のノードと前記近傍ノードとの間を前記有向エッジにより連結した前記第2グラフを生成する
ことを特徴とする請求項1に記載の情報処理装置。
A determination unit that determines whether to change the connection condition based on the change condition related to the connection condition, which is the predetermined condition.
Further prepare
The generator is
When the determination unit determines to change the connection condition, the second graph in which the one node and the neighboring node are connected by the directed edge is generated based on the changed connection condition. The information processing apparatus according to claim 1, wherein the information processing apparatus is to be used.
前記決定部は、
前記第1グラフにおける前記複数のノードの数に関する前記変更条件に基づいて、前記連結条件を変更するかを決定する
ことを特徴とする請求項2に記載の情報処理装置。
The decision-making part
The information processing apparatus according to claim 2, wherein it is determined whether or not to change the connection condition based on the change condition regarding the number of the plurality of nodes in the first graph.
前記決定部は、
前記第1グラフにおける前記複数のノードの数が所定の閾値以上である場合、前記連結条件を変更するかを決定する
ことを特徴とする請求項3に記載の情報処理装置。
The decision-making part
The information processing apparatus according to claim 3, wherein when the number of the plurality of nodes in the first graph is equal to or greater than a predetermined threshold value, it is determined whether or not to change the connection condition.
前記決定部は、
前記第1グラフにおける前記複数のノードのうち、所定の時点以後に追加されたノードである追加ノードの割合に関する前記変更条件に基づいて、前記連結条件を変更するかを決定する
ことを特徴とする請求項2または請求項3に記載の情報処理装置。
The decision-making part
It is characterized in that it is determined whether to change the connection condition based on the change condition regarding the ratio of the additional node which is a node added after a predetermined time point among the plurality of nodes in the first graph. The information processing apparatus according to claim 2 or 3.
前記決定部は、
前記第1グラフにおける前記複数のノードのうち、前記追加ノードの割合が所定の閾値以上である場合、前記連結条件を変更するかを決定する
ことを特徴とする請求項5に記載の情報処理装置。
The decision-making part
The information processing apparatus according to claim 5, wherein when the ratio of the additional node among the plurality of nodes in the first graph is equal to or higher than a predetermined threshold value, it is determined whether or not to change the connection condition. ..
前記決定部は、
前記第1グラフにおける前記有向エッジの数に関する前記変更条件に基づいて、前記連結条件を変更するかを決定する
ことを特徴とする請求項2~6のいずれか1項に記載の情報処理装置。
The decision-making part
The information processing apparatus according to any one of claims 2 to 6, wherein it is determined whether or not to change the connection condition based on the change condition regarding the number of directed edges in the first graph. ..
前記決定部は、
前記第1グラフにおける前記有向エッジの統計的情報に関する前記変更条件に基づいて、前記連結条件を変更するかを決定する
ことを特徴とする請求項2~7のいずれか1項に記載の情報処理装置。
The decision-making part
The information according to any one of claims 2 to 7, wherein it is determined whether or not to change the connection condition based on the change condition regarding the statistical information of the directed edge in the first graph. Processing equipment.
前記決定部は、
前記変更条件に基づいて、前記連結条件における前記有向エッジの数に関するエッジ数条件を変更し、
前記生成部は、
変更後の前記エッジ数条件に基づいて、前記一のノードと前記近傍ノードとの間を前記有向エッジにより連結した前記第2グラフを生成する
ことを特徴とする請求項2~8のいずれか1項に記載の情報処理装置。
The decision-making part
Based on the change condition, the edge number condition regarding the number of the directed edges in the connection condition is changed.
The generator is
Any of claims 2 to 8, wherein the second graph in which the one node and the neighboring node are connected by the directed edge is generated based on the changed edge number condition. The information processing apparatus according to item 1.
前記決定部は、
前記第1グラフにおける前記複数のノードの数が多い程、前記エッジ数条件において指定される連結エッジ数を増加させ、
前記生成部は、
増加後の前記連結エッジ数に基づいて、前記一のノードと前記近傍ノードとの間を前記有向エッジにより連結した前記第2グラフを生成する
ことを特徴とする請求項9に記載の情報処理装置。
The decision-making part
As the number of the plurality of nodes in the first graph increases, the number of connected edges specified in the edge number condition is increased.
The generator is
The information processing according to claim 9, wherein the second graph in which the one node and the neighboring node are connected by the directed edge is generated based on the number of connected edges after the increase. Device.
前記決定部は、
指定された生成時間を超過すると推定される場合、前記エッジ数条件において指定される連結エッジ数を減少させ、
前記生成部は、
減少後の前記連結エッジ数に基づいて、前記一のノードと前記近傍ノードとの間を前記有向エッジにより連結した前記第2グラフを生成する
ことを特徴とする請求項9に記載の情報処理装置。
The decision-making part
If it is estimated that the specified generation time will be exceeded, the number of connected edges specified in the edge number condition will be reduced.
The generator is
The information processing according to claim 9, wherein the second graph in which the one node and the neighboring node are connected by the directed edge is generated based on the reduced number of connected edges. Device.
前記決定部は、
前記一のノードを起点とし他のノードを終点する出力エッジの数に関する出力数条件を含む前記エッジ数条件を変更し、
前記生成部は、
変更後の前記出力数条件に基づいて、前記近傍ノードのうち、前記出力数条件に対応する数の出力先ノードに、前記一のノードを起点とする前記出力エッジを連結した前記第2グラフを生成する
ことを特徴とする請求項9~11のいずれか1項に記載の情報処理装置。
The decision-making part
The edge number condition including the output number condition regarding the number of output edges starting from the one node and ending at the other node is changed.
The generator is
Based on the changed output number condition, the second graph in which the output edge starting from the one node is connected to the number of output destination nodes corresponding to the output number condition among the neighboring nodes. The information processing apparatus according to any one of claims 9 to 11, characterized in that it is generated.
前記決定部は、
他のノードを起点とし前記一のノードを終点とする入力エッジの数に関する入力数条件を含む前記エッジ数条件を変更し、
前記生成部は、
変更後の前記エッジ数条件に基づいて、前記近傍ノードのうち、前記入力数条件に対応する数の入力元ノードに、前記一のノードを終点とする前記入力エッジを連結した前記第2グラフを生成する
ことを特徴とする請求項9~12のいずれか1項に記載の情報処理装置。
The decision-making part
The edge number condition including the input number condition regarding the number of input edges starting from another node and ending at the one node is changed.
The generator is
Based on the changed edge number condition, the second graph in which the input edge having the one node as the end point is connected to the input source node of the number corresponding to the input number condition among the neighboring nodes. The information processing apparatus according to any one of claims 9 to 12, wherein the information processing apparatus is generated.
前記選択部は、
前記第1グラフを探索することにより、前記近傍ノードを選択する
ことを特徴とする請求項1~13のいずれか1項に記載の情報処理装置。
The selection unit is
The information processing apparatus according to any one of claims 1 to 13, wherein the neighboring node is selected by searching the first graph.
前記生成部は、
前記第2グラフにおける前記有向エッジを更新することにより、第3グラフを生成する
ことを特徴とする請求項1~14のいずれか1項に記載の情報処理装置。
The generator is
The information processing apparatus according to any one of claims 1 to 14, wherein a third graph is generated by updating the directed edge in the second graph.
前記生成部は、
前記第2グラフが、グラフの再構築に関する所定の条件を満たす場合、前記第3グラフを生成する
ことを特徴とする請求項15に記載の情報処理装置。
The generator is
The information processing apparatus according to claim 15, wherein the second graph satisfies a predetermined condition for reconstructing the graph, and the third graph is generated.
前記生成部は、
前記第2グラフに含まれる各ノードの近傍ノードに関する情報を用いて、前記第3グラフを生成する
ことを特徴とする請求項15または請求項16に記載の情報処理装置。
The generator is
The information processing apparatus according to claim 15 or 16, wherein the third graph is generated by using information about a node in the vicinity of each node included in the second graph.
前記選択部は、
前記第2グラフに含まれる各ノードの近傍ノードに関する情報を参照することにより、前記第2グラフに含まれる各ノードに対応する前記近傍ノードを選択し、
前記生成部は、
前記連結条件に基づいて、前記各ノードと前記近傍ノードとの間を前記有向エッジにより連結した前記第3グラフを生成する
ことを特徴とする請求項17に記載の情報処理装置。
The selection unit is
By referring to the information about the neighboring nodes of each node included in the second graph, the neighboring node corresponding to each node included in the second graph is selected.
The generator is
The information processing apparatus according to claim 17, wherein the third graph in which each node and the neighboring node are connected by the directed edge is generated based on the connection condition.
コンピュータが実行する情報処理方法であって、
データ検索の対象となる一のオブジェクトと、前記一のオブジェクトとは異なる他のオブジェクトの各々に対応する複数のノード、及びノード間を連結する有向エッジを含む第1グラフとを取得する取得工程と、
前記第1グラフに基づいて、前記複数のノードのうち、前記一のオブジェクトに対応する一のノードの近傍に位置する近傍ノードを選択する選択工程と、
前記一のノードを前記第1グラフに追加し、前記有向エッジの連結に関し、グラフを構成するノードまたはエッジの傾向に基づく条件である所定の条件により変更される連結条件に基づいて、前記一のノードと前記近傍ノードとの間を前記有向エッジにより連結した第2グラフを生成する生成工程と、
を含むことを特徴とする情報処理方法。
It is an information processing method executed by a computer.
Acquisition process to acquire one object to be searched for data, a plurality of nodes corresponding to each of other objects different from the one object, and a first graph including a directed edge connecting the nodes. When,
A selection step of selecting a neighboring node located in the vicinity of the one node corresponding to the one object from the plurality of nodes based on the first graph.
The one node is added to the first graph, and the connection of the directed edges is based on the connection condition changed by a predetermined condition which is a condition based on the tendency of the nodes or edges constituting the graph. And a generation step of generating a second graph in which the node of the above and the neighboring node are connected by the directed edge.
An information processing method characterized by including.
データ検索の対象となる一のオブジェクトと、前記一のオブジェクトとは異なる他のオブジェクトの各々に対応する複数のノード、及びノード間を連結する有向エッジを含む第1グラフとを取得する取得手順と、
前記第1グラフに基づいて、前記複数のノードのうち、前記一のオブジェクトに対応する一のノードの近傍に位置する近傍ノードを選択する選択手順と、
前記一のノードを前記第1グラフに追加し、前記有向エッジの連結に関し、グラフを構成するノードまたはエッジの傾向に基づく条件である所定の条件により変更される連結条件に基づいて、前記一のノードと前記近傍ノードとの間を前記有向エッジにより連結した第2グラフを生成する生成手順と、
をコンピュータに実行させることを特徴とする情報処理プログラム。
Acquisition procedure for acquiring one object to be searched for data, a plurality of nodes corresponding to each of other objects different from the one object, and a first graph including a directed edge connecting the nodes. When,
Based on the first graph, a selection procedure for selecting a neighboring node located in the vicinity of the one node corresponding to the one object among the plurality of nodes, and a selection procedure.
The one node is added to the first graph, and the connection of the directed edges is based on the connection condition changed by a predetermined condition which is a condition based on the tendency of the nodes or edges constituting the graph. And a generation procedure for generating a second graph in which the node of the above and the neighboring node are connected by the directed edge.
An information processing program characterized by having a computer execute.
JP2018216705A 2018-11-19 2018-11-19 Information processing equipment, information processing methods, and information processing programs Active JP7080803B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018216705A JP7080803B2 (en) 2018-11-19 2018-11-19 Information processing equipment, information processing methods, and information processing programs

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018216705A JP7080803B2 (en) 2018-11-19 2018-11-19 Information processing equipment, information processing methods, and information processing programs

Publications (2)

Publication Number Publication Date
JP2020086662A JP2020086662A (en) 2020-06-04
JP7080803B2 true JP7080803B2 (en) 2022-06-06

Family

ID=70908115

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018216705A Active JP7080803B2 (en) 2018-11-19 2018-11-19 Information processing equipment, information processing methods, and information processing programs

Country Status (1)

Country Link
JP (1) JP7080803B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7174017B2 (en) * 2020-07-20 2022-11-17 ヤフー株式会社 Information processing device, information processing method and information processing program
JP7402140B2 (en) * 2020-09-23 2023-12-20 株式会社日立製作所 Registration device, registration method, and registration program
JP7353330B2 (en) * 2021-07-16 2023-09-29 ヤフー株式会社 Information processing device, information processing method, and information processing program

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011090352A (en) 2009-10-20 2011-05-06 Yahoo Japan Corp Retrieval data management device
JP6293335B1 (en) 2017-05-19 2018-03-14 ヤフー株式会社 Generating device, generating method, and generating program

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011090352A (en) 2009-10-20 2011-05-06 Yahoo Japan Corp Retrieval data management device
JP6293335B1 (en) 2017-05-19 2018-03-14 ヤフー株式会社 Generating device, generating method, and generating program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IWASAKI, Masajiro et al.,Optimization of Indexing Based on k-Nearest Neighbor Graph for Proximity Search in High-dimensional Data [online],Cornell University,2018年10月17日,pp.1-12,[検索日:2021.09.21], Internet<URL: https://arxiv.org/abs/1810.07355 >

Also Published As

Publication number Publication date
JP2020086662A (en) 2020-06-04

Similar Documents

Publication Publication Date Title
JP7080803B2 (en) Information processing equipment, information processing methods, and information processing programs
JP6959164B2 (en) Generation device, generation method, and generation program
JP7354014B2 (en) Information processing device, information processing method, and information processing program
JP6976178B2 (en) Extractor, extraction method, and extraction program
JP6705764B2 (en) Generation device, generation method, and generation program
JP2020027590A (en) Information processing device, information processing method, and information processing program
JP6418658B2 (en) Information processing apparatus, information processing method, and program
JP7414906B2 (en) Information processing device, information processing method, and information processing program
JP7121706B2 (en) Information processing device, information processing method, and information processing program
JP6293335B1 (en) Generating device, generating method, and generating program
JP2020184235A (en) Information processing device, information processing method, and information processing program
JP6278903B2 (en) Interactive content search using comparison
JP2020187644A (en) Information processor, method for processing information, and information processing program
JP7388661B2 (en) Information processing device, information processing method, and information processing program
JP6498266B2 (en) Generating device, generating method, and generating program
JP6933636B2 (en) Information processing equipment, information processing methods, and information processing programs
JP7122293B2 (en) Information processing device, information processing method, and information processing program
JP6865706B2 (en) Information processing equipment, information processing methods, and information processing programs
KR102062139B1 (en) Method and Apparatus for Processing Data Based on Intelligent Data Structure
JP6960361B2 (en) Information processing equipment, information processing methods, and information processing programs
JP7041530B2 (en) Display program, display method, and display device
JP7239433B2 (en) Information processing device, information processing method, and information processing program
JP2019194815A (en) Information processing apparatus, information processing method, and information processing program
JP7130019B2 (en) Information processing device, information processing method, and information processing program
JP7208955B2 (en) Information processing device, information processing method, information processing program, information retrieval device, information retrieval method, and information retrieval program

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20191101

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20191108

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200917

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210827

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211005

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211202

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: 20220426

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220525

R150 Certificate of patent or registration of utility model

Ref document number: 7080803

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350