JP7080803B2 - Information processing equipment, information processing methods, and information processing programs - Google Patents
Information processing equipment, information processing methods, and information processing programs Download PDFInfo
- 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
Links
- 230000010365 information processing Effects 0.000 title claims description 569
- 238000003672 processing method Methods 0.000 title claims description 7
- 230000008859 change Effects 0.000 claims description 173
- 238000000034 method Methods 0.000 claims description 90
- 230000008569 process Effects 0.000 claims description 64
- 238000012545 processing Methods 0.000 claims description 45
- 238000010187 selection method Methods 0.000 claims 2
- 239000013598 vector Substances 0.000 description 42
- 238000013500 data storage Methods 0.000 description 39
- 238000010586 diagram Methods 0.000 description 30
- 101150049032 ACL1 gene Proteins 0.000 description 18
- 101100448894 Arabidopsis thaliana GLR3.1 gene Proteins 0.000 description 18
- 101150023061 acpP gene Proteins 0.000 description 18
- 101100255938 Arabidopsis thaliana RVE4 gene Proteins 0.000 description 17
- 101100074248 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) LCL1 gene Proteins 0.000 description 17
- 101100277646 Candida albicans (strain SC5314 / ATCC MYA-2876) DFI1 gene Proteins 0.000 description 13
- 101100054598 Hordeum vulgare ACL1.2 gene Proteins 0.000 description 10
- 101150005470 LCL2 gene Proteins 0.000 description 9
- 239000000284 extract Substances 0.000 description 9
- 101100009092 Arabidopsis thaliana DCD gene Proteins 0.000 description 7
- 101100135607 Arabidopsis thaliana PAO gene Proteins 0.000 description 7
- 101100435070 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) APN2 gene Proteins 0.000 description 7
- 101100268779 Solanum lycopersicum ACO1 gene Proteins 0.000 description 7
- 101000894525 Homo sapiens Transforming growth factor-beta-induced protein ig-h3 Proteins 0.000 description 6
- 102100021398 Transforming growth factor-beta-induced protein ig-h3 Human genes 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 208000028485 lattice corneal dystrophy type I Diseases 0.000 description 6
- 101100255937 Arabidopsis thaliana RVE3 gene Proteins 0.000 description 5
- 102100032982 CCR4-NOT transcription complex subunit 9 Human genes 0.000 description 5
- 101000942590 Homo sapiens CCR4-NOT transcription complex subunit 9 Proteins 0.000 description 5
- 101001026582 Homo sapiens KAT8 regulatory NSL complex subunit 3 Proteins 0.000 description 5
- 101150067746 LCL3 gene Proteins 0.000 description 5
- 238000007596 consolidation process Methods 0.000 description 5
- 239000000470 constituent Substances 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 101100069205 Arabidopsis thaliana GDPDL4 gene Proteins 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 3
- 102100021710 Endonuclease III-like protein 1 Human genes 0.000 description 2
- 101000970385 Homo sapiens Endonuclease III-like protein 1 Proteins 0.000 description 2
- 101150040422 NTH2 gene Proteins 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 101100301148 Arabidopsis thaliana RCCR gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
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.
しかしながら、上記の従来技術では、検索に用いるグラフを適切に生成することが難しい場合がある。例えば、グラフを構成するノード(オブジェクト)の傾向等に関わらず、グラフの生成時においてノード間を連結するエッジ数が所定値に設定されている場合、効率的な検索を可能にするグラフが生成できるとは限らない。 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.
以下に、本願に係る情報処理装置、情報処理方法、及び情報処理プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法、及び情報処理プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。 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
また、ここでいうオブジェクトの追加は、オブジェクトの登録と読み換えてもよい。情報処理装置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
また、以下では、一のノードを追加する前のグラフを第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
以下では、このようにノード「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
また、このように「ノード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
ここから、図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
また、図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
まず、情報処理装置100は、ノードN1を新規追加する(ステップS11)。例えば、情報処理装置100は、ノードN1をグラフに追加する。図1の例では、情報処理装置100は、ノードN1が最初のノードであるため、ノードN1を含むグラフGR11を新規に生成する。また、情報処理装置100は、ステップS11後においてグラフGR11には、ノードがノードN1の1個のみであるため、グラフGR11にエッジを追加しない。
First, the
例えば、情報処理装置100は、検索対象として新たに追加されたオブジェクトを取得し、追加されたオブジェクトに対応するノードを新規追加する。例えば、情報処理装置100は、新たに追加されたオブジェクトをオブジェクト情報記憶部121(図4参照)に記憶し、新たに追加されたオブジェクトに対応付けたノードをグラフデータ記憶部124に記憶する。情報処理装置100は、オブジェクトID「OB1」により識別されるオブジェクト(図4参照)に対応するノードN1をグラフGR11に追加する。
For example, the
そして、情報処理装置100は、ノードN2を新規追加する(ステップS12)。図1の例では、例えば、情報処理装置100は、ノードN2をグラフGR11に追加する。情報処理装置100は、オブジェクトID「OB2」により識別されるオブジェクト(図4参照)に対応するノードN2をグラフGR11に追加する。
Then, the
そして、情報処理装置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
また、情報処理装置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
そして、情報処理装置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
そして、情報処理装置100は、ノードN3を新規追加する(ステップS14-1)。図1の例では、例えば、情報処理装置100は、追加されたオブジェクトに対応するノードN3をグラフGR11に追加する。
Then, the
そして、情報処理装置100は、グラフを探索する(ステップS14-2)。例えば、情報処理装置100は、図16に示すような処理手順により、追加ノードの近傍に位置するノード(近傍ノード)の探索(検索)を行う。例えば、情報処理装置100は、図16に示すような処理手順によりグラフを探索することにより、所定の個数(以下「選択数」ともいう)の近傍ノードを選択する。例えば、情報処理装置100は、入力閾値や出力閾値に応じて選択数を決定する。図1の例では、情報処理装置100は、より大きな値である入力閾値「2」を選択数に決定する。なお、情報処理装置100は、入力閾値や出力閾値よりも大きな値を選択数に決定してもよい。例えば、情報処理装置100は、「100」個等の種々の値を選択数に決定してもよい。例えば、情報処理装置100は、種々の情報を適宜用いて、選択数を決定してもよい。例えば、情報処理装置100は、生成後のグラフの検索の性能に基づいて、選択数(近傍ノード数)を決定してもよい。また、例えば、情報処理装置100は、グラフ生成中において動的に選択数を変更してもよい。例えば、情報処理装置100は、グラフ生成の途中で検索性能を確認して、選択数を増やしたり減らしたりしてもよい。例えば、情報処理装置100は、生成中のグラフの検索性能に基づいて、選択数を増減させてもよい。例えば、情報処理装置100は、生成中のグラフの検索性能を示す値と所定の閾値との比較に基づいて、選択数を増減させてもよい。このように、情報処理装置100は、選択数に関する条件を動的に変更させてもよい。
Then, the
情報処理装置100は、追加ノードであるノードN3をクエリとして、図16に示すような処理手順によりグラフGR11-1を探索し、ノードN3の近傍ノードとして、選択数「2」に対応する2個のノードN1、N2を選択する。また、図1の例では、ノードN1の方がノードN2よりもノードN3の近傍に位置する。このように、情報処理装置100は、生成中のグラフを用いて追加ノードの近傍ノードを選択することにより、より効率的に近傍ノードを選択し、効率的なグラフ生成を可能にすることができる。例えば、グラフに含まれるノード数が多くなった場合であっても、情報処理装置100は、生成中のグラフを追加ノードの近傍ノードの選択に利用することにより、近傍ノード選択の処理時間の増大を抑制し、より効率的に近傍ノードを選択し、効率的なグラフ生成を可能にすることができる。すなわち、情報処理装置100は、生成中のグラフを用いて追加ノードの近傍ノードを選択することにより、より高速にグラフを生成することができる。なお、情報処理装置100は、近傍ノードを選択できればどのような方法により、近傍ノードを選択してもよく、例えば生成中のグラフ内の各ノードと追加ノードとの間の距離を示す情報を用いて、距離が近い方から順に選択数の近傍ノードを選択してもよい。
The
なお、情報処理装置100は、処理の高速化のために、グラフGR11-1の各ノードN1、N2をリーフとする木構造の起点用情報を用いて、起点ノードを決定してもよいが、詳細は後述する。例えば、情報処理装置100は、図15に示すような木構造の起点情報を用いて、グラフGR11-1のノードN1、N2のうち、ノードN1を起点ノードに決定してもよい。このように、情報処理装置100は、生成中のグラフに対応する起点用情報を用いて起点ノードを決定することにより、効率的にグラフを探索することができるため、より効率的に近傍ノードを選択し、効率的なグラフ生成を可能にすることができる。例えば、グラフに含まれるノード数が多くなった場合であっても、情報処理装置100は、起点用情報を用いて起点ノードを決定することにより、起点ノードの選択の処理時間の増大を抑制し、より効率的に起点ノードを選択し、効率的なグラフ生成を可能にすることができる。
The
そして、情報処理装置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
情報処理装置100は、選択した近傍ノードのうち、距離が短い方から順に2個のノードにノードN3への入力エッジを連結する。情報処理装置100は、選択した近傍ノードであるノードN1、N2のうち、距離が最も短いノードN1にノードN3へ入力するエッジE3を連結する。これにより、情報処理装置100は、ノードN3の近傍ノードであるノードN1とノードN3とを連結する。
The
情報処理装置100は、選択した近傍ノードであるノードN1、N2のうち、距離が2番目に短いノードN2にノードN3へ入力するエッジE5を連結する。これにより、情報処理装置100は、ノードN3の近傍ノードであるノードN2とノードN3とを連結する。
The
また、情報処理装置100は、選択した近傍ノードのうち、距離が短い方から順に1個のノードにノードN3からの出力エッジを連結する。情報処理装置100は、選択した近傍ノードであるノードN1、N2のうち、距離が最も短いノードN1にノードN3から出力するエッジE4を連結する。これにより、情報処理装置100は、ノードN3とその近傍ノードであるノードN1とを連結する。これにより、情報処理装置100は、追加したノードN3に2本の入力エッジE3、E5及び1本の出力エッジE4が連結されたグラフGR11-2を生成する。
Further, the
また、情報処理装置100は、グラフGR11-2に基づいて、決定用情報一覧DFI2を生成する。例えば、情報処理装置100は、決定用情報一覧DFI1を更新することにより、決定用情報一覧DFI2を生成する。情報処理装置100は、グラフGR11-2に含まれるノード数が3個であることや、グラフGR11-2に含まれるエッジ数が5本であることを示す決定用情報一覧DFI2を生成する。例えば、情報処理装置100は、記憶部120(図3参照)に記憶された決定用情報一覧DFI1を決定用情報一覧DFI2に更新してもよい。
Further, the
そして、情報処理装置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
そして、情報処理装置100は、ノードN4、N5等を新規追加する(ステップS15-1)。例えば、情報処理装置100は、ノードN4、N5を含む97個のノードを順次グラフGR11-2に追加する。図1の例では、情報処理装置100は、グラフGR11-2にノードN4を追加した後、ノードN5等の96個のノードを順次グラフGR11に追加する。
Then, the
そして、情報処理装置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
そして、情報処理装置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
情報処理装置100は、選択した近傍ノードのうち、距離が短い方から順に2個のノードにノードN4への入力エッジを連結する。情報処理装置100は、選択した近傍ノードであるノードN1、N3のうち、距離が最も短いノードN3にノードN4へ入力するエッジE7を連結する。これにより、情報処理装置100は、ノードN4の近傍ノードであるノードN3とノードN4とを連結する。
The
情報処理装置100は、選択した近傍ノードであるノードN1、N3のうち、距離が2番目に短いノードN1にノードN4へ入力するエッジE6を連結する。これにより、情報処理装置100は、ノードN4の近傍ノードであるノードN1とノードN4とを連結する。
The
また、情報処理装置100は、選択した近傍ノードのうち、距離が短い方から順に1個のノードにノードN4からの出力エッジを連結する。情報処理装置100は、選択した近傍ノードであるノードN1、N3のうち、距離が最も短いノードN3にノードN4から出力するエッジE8を連結する。これにより、情報処理装置100は、ノードN4とその近傍ノードであるノードN3とを連結する。これにより、情報処理装置100は、追加したノードN4に2本の入力エッジE6、E7及び1本の出力エッジE8が連結されたグラフGR11-3を生成する。
Further, the
また、情報処理装置100は、ノードN5等の96個のノードについても、ノードN4と同様に、順次グラフGR11に追加することにより、グラフGR11-3を生成する。
Further, the
例えば、ノード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
また、情報処理装置100は、グラフGR11-3に基づいて、決定用情報一覧DFI3を生成する。例えば、情報処理装置100は、決定用情報一覧DFI2を更新することにより、決定用情報一覧DFI3を生成する。情報処理装置100は、グラフGR11-3に含まれるノード数が100個であることや、グラフGR11-3に含まれるエッジ数が200本であることを示す決定用情報一覧DFI3を生成する。例えば、情報処理装置100は、記憶部120(図3参照)に記憶された決定用情報一覧DFI2を決定用情報一覧DFI3に更新してもよい。
Further, the
そして、情報処理装置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
そのため、情報処理装置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
情報処理装置100は、ステップS16以後の処理においては、入力閾値を「3」として、処理を続行する。このように、情報処理装置100は、グラフの生成過程において動的に連結条件を変更することにより、グラフの生成具体等に応じて適切にグラフの生成条件を変更することができるため、適切なグラフ生成を行うことができる。また、情報処理装置100は、連結条件の変更に応じて、選択数を更新する。図1の例では、情報処理装置100は、より大きな値である入力閾値「3」を選択数に決定する。すなわち、情報処理装置100は、選択数を「2」から「3」に更新する。
In the processing after step S16, the
そして、情報処理装置100は、ノードN11等を新規追加する(ステップS17-1)。例えば、情報処理装置100は、ノードN11を含む多数(例えば1000個等)のノードを順次グラフGR11-3に追加する。図1の例では、情報処理装置100は、グラフGR11-3にノードN11を追加した後、残りの多数のノードを順次グラフGR11に追加する。
Then, the
そして、情報処理装置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
そして、情報処理装置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
情報処理装置100は、選択した近傍ノードのうち、距離が短い方から順に3個のノードにノードN11への入力エッジを連結する。情報処理装置100は、選択した近傍ノードであるノードN1、N4、N5のうち、距離が最も短いノードN5にノードN11へ入力するエッジE13を連結する。これにより、情報処理装置100は、ノードN11の近傍ノードであるノードN5とノードN11とを連結する。
The
情報処理装置100は、選択した近傍ノードであるノードN1、N4、N5のうち、距離が2番目に短いノードN1にノードN11へ入力するエッジE14を連結する。これにより、情報処理装置100は、ノードN11の近傍ノードであるノードN1とノードN11とを連結する。
The
情報処理装置100は、選択した近傍ノードであるノードN1、N4、N5のうち、距離が3番目に短いノードN4にノードN11へ入力するエッジE15を連結する。これにより、情報処理装置100は、ノードN11の近傍ノードであるノードN4とノードN11とを連結する。
The
また、情報処理装置100は、選択した近傍ノードのうち、距離が短い方から順に1個のノードにノードN11からの出力エッジを連結する。情報処理装置100は、選択した近傍ノードであるノードN1、N4、N5のうち、距離が最も短いノードN5にノードN11から出力するエッジE12を連結する。これにより、情報処理装置100は、ノードN11とその近傍ノードであるノードN5とを連結する。これにより、情報処理装置100は、追加したノードN11に3本の入力エッジE13、E14、及び1本の出力エッジE12が連結されたグラフGR11-4を生成する。
Further, the
また、情報処理装置100は、ノードN11以外の他のノードについても、ノードN11と同様に、順次グラフGR11に追加することにより、グラフGR11-4を生成する。
Further, the
また、情報処理装置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
そして、情報処理装置100は、グラフGR11-4が変更条件を満たすかどうかを判定する。例えば、情報処理装置100は、グラフGR11-4に含まれるノード数がノード数NNUM1個(10000個等)であり100より大きいため、変更条件一覧ACL1に示すノード数が100個であるという変更条件を満たさないと判定する。例えば、情報処理装置100は、決定用情報一覧DFI1中のノード数「NNUM1」と、変更条件一覧ACL1中のノード数「100」とを比較し、決定用情報一覧DFI4中のノード数「NNUM1」が変更条件一覧ACL1中のノード数「100」と異なるため、変更条件を満たさないと判定する。
Then, the
また、情報処理装置100は、グラフGR11-4において、入力エッジ数が多い上位20%のノードの等の入力エッジ数の平均値、すなわちエッジ統計値SVL1は「5」であり、閾値ETH1である「5」以上であるため、変更条件一覧ACL2に示すエッジの統計値が閾値ETH1以上という変更条件を満たすと判定する。このように、情報処理装置100は、グラフGR11-4が変更条件を満たすと判定する(ステップS17-4)。
Further, in the graph GR11-4, the
そのため、情報処理装置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
情報処理装置100は、ステップS18以後の処理においては、入力閾値を「4」、入力閾値を「6」として、処理を続行する。このように、情報処理装置100は、グラフの生成過程において動的に連結条件を変更することにより、グラフの生成具体等に応じて適切にグラフの生成条件を変更することができるため、適切なグラフ生成を行うことができる。また、情報処理装置100は、連結条件の変更に応じて、選択数を更新する。図1の例では、情報処理装置100は、より大きな値である出力閾値「6」を選択数に決定する。すなわち、情報処理装置100は、選択数を「3」から「6」に更新する。
In the processing after step S18, the
上述したように、情報処理装置100は、生成中のグラフにノードが追加された場合、生成中のグラフを探索し、追加されたノード(追加ノード)に対応する近傍ノードを高速に選択する。そして、情報処理装置100は、選択した近傍ノードのうち、生成中に動的に変更される連結条件に基づくノードと、追加ノードとの間に有効エッジを連結する。このように、情報処理装置100は、生成中のグラフの生成状況に応じて出力閾値や入力閾値等の連結条件を更新することにより、適切な連結条件に変更することができるため、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As described above, when a node is added to the graph being generated, the
〔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
例えば、情報処理装置100は、グラフの規模に応じて動的に連結条件を変更する。この場合、情報処理装置100は、第1グラフのノード数が第1閾値(例えば千個)までの第1段階では、追加ノードに3本のエッジ(1本の入力エッジ及び2本の出力エッジ等)を連結する。例えば、情報処理装置100は、グラフのノード数が千個に達するまで、3本のエッジ(1本の入力エッジ及び2本の出力エッジ等)を連結する連結条件に基づいて、グラフにエッジを追加する。
For example, the
そして、情報処理装置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
そして、情報処理装置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
このように、情報処理装置100は、段階的に連結するエッジ数を増加させることにより、エッジのばらつきを抑制することができるため、検索に用いるグラフを適切に生成することができる。
As described above, the
〔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
〔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
〔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
また、例えば、情報処理装置100は、グラフの生成時間に関する変更条件を用いてもよい。この場合、情報処理装置100は、生成処理に要する時間(生成時間)を推定する。例えば、情報処理装置100は、追加するノードの数など、グラフを構成するノード数(構成ノード数)を示す情報を取得した場合、その構成ノード数に基づいて、生成時間を推定してもよい。例えば、情報処理装置100は、グラフ生成開始時から所定数(例えば10や100等)のノードを追加時の処理時間(サンプル時間)を用いて、生成時間を推定してもよい。
Further, for example, the
例えば、情報処理装置100は、サンプル時間と、構成ノード数と、連結条件とを用いて、生成時間(推定生成時間)を推定してもよい。例えば、情報処理装置100は、過去のグラフ生成の履歴情報を用いて、推定生成時間を推定してもよい。例えば、情報処理装置100は、サンプル時間、構成ノード数及び連結条件の組合せと、過去のグラフ生成の履歴情報とを比較し、履歴情報のうち、サンプル時間、構成ノード数及び連結条件の組合せと類似する履歴に含まれる処理時間を、推定生成時間として推定してもよい。
For example, the
そして、情報処理装置100は、指定された生成時間(指定時間)を超過すると推定される場合、連結エッジ数を減少させるように連結条件を変更してもよい。例えば、情報処理装置100は、推定生成時間と指定時間とを比較し、推定生成時間が指定時間を超える場合、連結エッジ数を減少させるように連結条件を変更してもよい。
Then, when the
〔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
なお、起点用情報IND11のような起点用情報は、情報処理装置100が生成してもよいし、情報処理装置100は、起点用情報を情報提供装置50等の他の外部装置から取得してもよい。例えば、情報処理装置100は、起点用情報を生成する場合は、木構造に関する種々の従来技術を適宜用いて、グラフ(例えばグラフGR11)に含まれるノードをリーフとする木構造の起点用情報(例えば起点用情報IND11)を生成する。また、情報処理装置100は、新たなノードがグラフ(例えばグラフGR11)に追加された場合、新たに追加されたオブジェクトに対応するノード(「追加ノード」ともいう)をリーフとして木構造の起点用情報(例えば起点用情報IND11)に追加する。これにより、情報処理装置100は、新たなノードがグラフに追加された場合、起点用情報を更新する。すなわち、情報処理装置100は、新たなノードがグラフに追加された場合、新たなノードをリーフとして追加した起点用情報を生成する。
The
上記のように、情報処理装置100は、木構造に関する種々の従来技術を適宜用いて、起点用情報記憶部125(図8参照)に記憶された起点用情報IND11のような、起点用インデックスを生成する。例えば、情報処理装置100は、新たにオブジェクトが追加された場合、新たに追加されたオブジェクトに対応するノードをリーフとして追加することにより、起点用情報IND11を更新してもよい。図1の例では、情報処理装置100は、ノードN3やノードN4等が追加される毎に、ノードN3やノードN4等をリーフとして追加することにより、起点用情報IND11を更新してもよい。
As described above, the
また、情報処理装置100は、他の外部装置から起点用情報を取得する場合は、他の外部装置へグラフを提供する。そして、情報処理装置100は、グラフを受信した他の外部装置が生成した起点用情報を、他の外部装置から取得する。例えば、情報処理装置100は、情報提供装置50から起点用情報IND11を取得する場合は、情報提供装置50へグラフGR11を送信する。そして、情報処理装置100は、グラフGR11を受信した情報提供装置50が生成した起点用情報IND11を、情報提供装置50から取得する。例えば、情報処理装置100は、起点用情報IND11と追加ノードに関する情報とを情報提供装置50へ提供することにより、情報提供装置50から追加ノードにより更新された起点用情報IND11を取得してもよい。なお、上記は一例であり、情報提供装置50は、起点用情報IND11を取得可能であれば、どのような手段により起点用情報IND11を取得してもよい。
Further, when the
また、情報処理装置100は、図15中のインデックス情報群GINF11に示すような起点用情報IND11を用いて起点ノードを決定してもよい。図15の例では、情報処理装置100は、起点用情報IND11に基づいて、クエリQE1に対応する起点ノードを決定する。クエリQE1は、新たに追加するオブジェクトに対応するノードやグラフGR11を用いた検索を行う対象等であってもよい。すなわち、情報処理装置100は、グラフ生成時や検索時において、起点用情報IND11を用いて、起点ノードを決定する。
Further, the
具体的には、情報処理装置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
例えば、情報処理装置100は、図1中の起点用情報IND11に示すような木構造型の起点用インデックス情報を用いて、グラフGR11における起点ノードを決定する。図1の例では、情報処理装置100は、クエリQE1に基づいて、起点用情報IND11を上(ルートRT)から下へ辿ることにより、起点用情報IND11の近傍候補となる起点ノードを決定(特定)する。これにより、情報処理装置100は、効率的に検索クエリ(クエリQE1)に対応する起点ノードを決定することができる。例えば、情報処理装置100は、追加ノードであるクエリQE1に対応する適切な起点ノードを高速に決定することができる。
For example, the
なお、情報処理装置100は、上記に限らず、種々の起点用インデックスを用いてもよい。すなわち、図15の例に示す起点用情報(起点用インデックス)は一例であり、情報処理装置100は、種々の起点用情報を用いて、グラフ情報を検索してもよい。情報処理装置100は、検索時の起点ノードの決定に用いる起点用インデックスを生成してもよい。例えば、情報処理装置100は、高次元ベクトルを高速に検索するための検索インデックス(起点用情報)を生成する。ここでいう高次元ベクトルとは、例えば、数百次元から数千次元のベクトルであってもよいし、それ以上の次元のベクトルであってもよい。
The
例えば、情報処理装置100は、kd木(k-dimensional tree)に関する検索インデックスを起点用インデックスとして生成してもよい。例えば、情報処理装置100は、VP木(Vantage-Point tree)に関する検索インデックスを起点用インデックスとして生成してもよい。
For example, the
また、例えば、情報処理装置100は、その他の木構造を有する起点用インデックスとして生成してもよい。例えば、情報処理装置100は、木構造の起点用インデックスのリーフがグラフに接続する種々の起点用インデックスを生成してもよい。例えば、情報処理装置100は、木構造の起点用インデックスのリーフがグラフ中のノードに対応する種々の起点用インデックスを生成してもよい。また、情報処理装置100は、このような起点用インデックスを用いて検索を行う場合、起点用インデックスを辿って到達したリーフ(ノード)からグラフを探索してもよい。
Further, for example, the
なお、上述したような起点用インデックスは一例であり、情報処理装置100は、グラフ中のクエリを高速に特定することが可能であれば、どのようなデータ構造の起点用インデックスを生成してもよい。例えば、情報処理装置100は、クエリに対応するグラフ情報中のノードを高速に特定することが可能であれば、バイナリ空間分割に関する技術等の種々の従来技術を適宜用いて、起点用インデックスを生成してもよい。例えば、情報処理装置100は、高次元ベクトルの検索に対応可能な起点用インデックスであれば、どのようなデータ構造の起点用インデックスを生成してもよい。情報処理装置100は、上述のような起点用インデックスとグラフとを用いることにより、所定の対象に関してより効率的な検索を可能にすることができる。すなわち、情報処理装置100は、上述のような起点用インデックスとグラフとを用いることにより、所定の対象に関する検索をより高速に実行可能にすることができる。
The starting index as described above is an example, and the
〔2.情報処理システムの構成〕
図2に示すように、情報処理システム1は、端末装置10と、情報提供装置50と、情報処理装置100とが含まれる。端末装置10と、情報提供装置50と、情報処理装置100とは所定のネットワークNを介して、有線または無線により通信可能に接続される。図2は、実施形態に係る情報処理システムの構成例を示す図である。なお、図2に示した情報処理システム1には、複数台の端末装置10や、複数台の情報提供装置50や、複数台の情報処理装置100が含まれてもよい。
[2. Information processing system configuration]
As shown in FIG. 2, the
端末装置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
情報処理装置100は、データ検索の対象となる一のオブジェクトと、一のオブジェクトとは異なる他のオブジェクトの各々に対応する複数のノード、及びノード間を連結する有向エッジを含む第1グラフを用いて、第2グラフを生成する情報処理装置である。すなわち、情報処理装置100は、第1グラフを用いて、第2グラフを生成する生成装置である。例えば、情報処理装置100は、第1グラフ中の複数のノードのうち、一のオブジェクトに対応する一のノードの近傍に位置する近傍ノードを選択する。そして、情報処理装置100は、一のノードを第1グラフに追加し、有向エッジの連結に関し、所定の条件により変更される連結条件に基づいて、一のノードと近傍ノードとの間を有向エッジにより連結した第2グラフを生成する。
The
例えば、情報処理装置100は、端末装置からクエリ情報(以下、単に「クエリ」ともいう)を受信すると、クエリに類似する対象(ベクトル情報等)を検索し、検索結果を端末装置に提供する。また、例えば、情報処理装置100が端末装置に提供するデータは、画像情報等のデータ自体であってもよいし、URL(Uniform Resource Locator)等の対応するデータを参照するための情報であってもよい。また、クエリや検索対象のデータは、画像、音声、テキストデータなど、如何なる種類のデータであってもよい。本実施形態において、情報処理装置100が画像を検索する場合を一例として説明する。
For example, when the
〔3.情報処理装置の構成〕
次に、図3を用いて、実施形態に係る情報処理装置100の構成について説明する。図3は、実施形態に係る情報処理装置100の構成例を示す図である。図3に示すように、情報処理装置100は、通信部110と、記憶部120と、制御部130とを有する。なお、情報処理装置100は、情報処理装置100の管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(例えば、液晶ディスプレイ等)を有してもよい。
[3. Information processing device configuration]
Next, the configuration of the
(通信部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
(オブジェクト情報記憶部121)
実施形態に係るオブジェクト情報記憶部121は、オブジェクトに関する各種情報を記憶する。例えば、オブジェクト情報記憶部121は、オブジェクトIDやベクトルデータを記憶する。図4は、実施形態に係るオブジェクト情報記憶部の一例を示す図である。図4に示すオブジェクト情報記憶部121は、「オブジェクトID」、「ベクトル情報」といった項目が含まれる。
(Object information storage unit 121)
The object
「オブジェクト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
(連結条件情報記憶部122)
実施形態に係る連結条件情報記憶部122は、エッジの連結に関する連結条件に関する各種情報を記憶する。図5は、実施形態に係る連結条件情報記憶部の一例を示す図である。図5に示す連結条件情報記憶部122は、「連結条件ID」、「対象」、「閾値名」、「値」といった項目が含まれる。
(Consolidation condition information storage unit 122)
The connection condition
「連結条件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
(変更条件情報記憶部123)
実施形態に係る変更条件情報記憶部123は、連結条件の変更に関する変更条件に関する各種情報を記憶する。図6は、実施形態に係る変更条件情報記憶部の一例を示す図である。図6に示す変更条件情報記憶部123は、「変更条件ID」、「決定用情報」、「変更情報」といった項目を有する。
(Change condition information storage unit 123)
The change condition
「変更条件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
なお、変更条件情報記憶部123は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
The change condition
(グラフデータ記憶部124)
実施形態に係るグラフデータ記憶部124は、グラフデータに関する各種情報を記憶する。例えば、グラフデータ記憶部124は、生成したグラフデータを記憶する。図7は、実施形態に係るグラフデータ記憶部の一例を示す図である。図7に示すグラフデータ記憶部124は、「ノードID」、「オブジェクトID」、および「有向エッジ情報」といった項目を有する。また、「有向エッジ情報」には、「エッジID」や「参照先」といった情報が含まれる。
(Graph data storage unit 124)
The graph
「ノード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
また、グラフデータは、クエリを入力とし、グラフデータ中のエッジを辿ることによりノードを探索し、クエリに類似するノードを抽出し出力するプログラムモジュールを含んでもよい。すなわち、グラフデータは、グラフを用いて検索処理を行うプログラムモジュールとしての利用が想定されるものであってもよい。例えば、グラフデータ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階層」等が含まれてもよい。
(
The starting point
「ルート階層」は、インデックスを用いた起点ノードの決定の開始点となるルート(最上位)の階層を示す。「第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
また、起点用情報記憶部125は、節点VT2の直下の第2階層のノードが、節点VT2-1~VT2-4であることを示す。また、起点用情報記憶部125は、節点VT2-1の直下の第3階層のノードが、ノードN1、ノードN2のグラフGR11中のノード(ベクトル)であることを示す。起点用情報記憶部125は、節点VT2-2の直下の第3階層のノードが、ノードN3、ノードN4、ノードN5のグラフGR11中のノード(ベクトル)であることを示す。
Further, the
なお、起点用情報記憶部125は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
The starting
(再構築条件情報記憶部126)
実施形態に係る再構築条件情報記憶部126は、エッジを調整するグラフの再構築を行うかの決定に用いる条件に関する再構築条件に関する各種情報を記憶する。図9は、実施形態に係る再構築条件情報記憶部の一例を示す図である。図9に示す再構築条件情報記憶部126は、「再構築条件ID」、「決定用情報」といった項目を有する。
(Reconstruction condition information storage unit 126)
The reconstruction condition
「再構築条件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
なお、再構築条件情報記憶部126は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
The reconstruction condition
(再構築グラフデータ記憶部127)
実施形態に係る再構築グラフデータ記憶部127は、再構築されたグラフデータに関する各種情報を記憶する。図10は、実施形態に係る再構築グラフデータ記憶部の一例を示す図である。図10の例では、再構築グラフデータ記憶部127は、「ノードID」、「オブジェクトID」、および「有向エッジ情報」といった項目を有する。また、「有向エッジ情報」には、「エッジID」や「参照先」といった情報が含まれる。
(Reconstructed graph data storage unit 127)
The reconstructed graph
「ノード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
また、図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
(制御部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
図3に示すように、制御部130は、取得部131と、選択部132と、決定部133と、生成部134と、検索部135と、提供部136とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、図3に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
As shown in FIG. 3, the
(取得部131)
取得部131は、各種情報を取得する。例えば、取得部131は、記憶部120から各種情報を取得する。例えば、取得部131は、オブジェクト情報記憶部121や、連結条件情報記憶部122や、変更条件情報記憶部123や、グラフデータ記憶部124や、起点用情報記憶部125や、再構築条件情報記憶部126や、再構築グラフデータ記憶部127等から各種情報を取得する。また、取得部131は、各種情報を外部の情報処理装置から取得する。
(Acquisition unit 131)
The
取得部131は、データ検索の対象となる一のオブジェクトと、一のオブジェクトとは異なる他のオブジェクトの各々に対応する複数のノード、及びノード間を連結する有向エッジを含む第1グラフとを取得する。
The
取得部131は、新規に追加されたオブジェクト(新規追加オブジェクト)を取得する。例えば、情報処理装置100は、情報提供装置50等の外部装置から新規に追加されたオブジェクト(新規追加オブジェクト)を取得してもよい。取得部131は、新規追加オブジェクトを識別する情報(オブジェクトID)と、新規追加オブジェクトから生成されたベクトルとを対応付けた情報をオブジェクト情報として取得してもよい。この場合、取得部131は、取得したオブジェクト情報をオブジェクト情報記憶部121に記憶させてもよい。そして、取得部131は、新規追加オブジェクトを取得した場合、新規追加オブジェクトに対応するノードする。
The
また、取得部131は、グラフデータを取得してもよい。例えば、情報処理装置100は、図1中のグラフGR11-1を取得してもよい。例えば、情報処理装置100は、情報提供装置50等の外部装置からグラフデータを取得してもよい。
Further, the
例えば、取得部131は、検索クエリに関する情報を取得する。例えば、取得部131は、画像検索に関する検索クエリを取得する。例えば、取得部131は、利用する端末装置10からクエリを取得する。例えば、取得部131は、利用する端末装置10からクエリを受け付けた情報提供装置50からクエリを取得する。
For example, the
(選択部132)
選択部132は、各種情報を選択する。選択部132は、各種情報を抽出する。選択部132は、記憶部120に記憶された各種情報に基づいて、種々の情報を選択する。選択部132は、記憶部120に記憶された各種情報に基づいて、種々の情報を抽出する。
(Selection unit 132)
The
選択部132は、第1グラフに基づいて、複数のノードのうち、一のオブジェクトに対応する一のノードの近傍に位置する近傍ノードを選択する。選択部132は、入力閾値または出力閾値の数(選択数)の近傍ノードを選択する。選択部132は、入力閾値が出力閾値以上である場合、入力閾値の数を選択数として、選択数の近傍ノードを選択する。選択部132は、出力閾値が入力閾値より大きい場合、出力閾値の数を選択数として、選択数の近傍ノードを選択する。
The
選択部132は、第1グラフを探索することにより、近傍ノードを選択する。選択部132は、追加ノードをクエリとして、第1グラフを探索することにより、選択数の近傍ノードを選択する。選択部132は、図16に示すような検索処理により、第1グラフを探索することにより、近傍ノードを選択する。
The
選択部132は、暫定グラフを探索することにより、暫定グラフに含まれる各ノードに対応する近傍ノードを選択する。選択部132は、暫定グラフを探索することにより、選択数の近傍ノードを選択する。選択部132は、図16に示すような検索処理により、暫定グラフを探索することにより、近傍ノードを選択する。
The
なお、選択部132は、検索部135に要求することにより、検索部135に情報を探索させ、検索部135が探索した探索結果を用いてもよい。選択部132は、選択部132は、検索部135が探索した探索結果から情報を選択してもよい。選択部132は、第2グラフに含まれる各ノードの近傍ノードに関する情報を参照することにより、第2グラフに含まれる各ノードに対応する近傍ノードを選択する。
The
図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
(決定部133)
決定部133は、各種情報を決定する。決定部133は、各種情報を判定する。決定部133は、各種情報を変更する。決定部133は、各種情報を更新する。決定部133は、記憶部120に記憶された各種情報に基づいて、種々の情報を決定する。決定部133は、記憶部120に記憶された各種情報に基づいて、種々の情報を判定する。決定部133は、記憶部120に記憶された各種情報に基づいて、種々の情報を変更する。決定部133は、各種情報を更新する。
(Decision unit 133)
The
決定部133は、所定の条件である連結条件に関する変更条件に基づいて、連結条件を変更するかを決定する。決定部133は、第1グラフにおける複数のノードの数に関する変更条件に基づいて、連結条件を変更するかを決定する。決定部133は、第1グラフにおける複数のノードの数が所定の閾値以上である場合、連結条件を変更するかを決定する。決定部133は、第1グラフにおける複数のノードの数と所定の閾値とを比較し、その結果に応じて、連結条件を動的に変更する。
The
決定部133は、第1グラフにおける複数のノードのうち、所定の時点以後に追加されたノードである追加ノードの割合に関する変更条件に基づいて、連結条件を変更するかを決定する。決定部133は、第1グラフにおける複数のノードのうち、有向エッジの調整処理以後に追加された追加ノードの割合に関する変更条件に基づいて、連結条件を変更するかを決定する。
The
決定部133は、第1グラフにおける複数のノードのうち、追加ノードの割合が所定の閾値以上である場合、連結条件を変更するかを決定する。決定部133は、第1グラフにおける追加ノードの割合と所定の閾値とを比較し、その結果に応じて、連結条件を動的に変更する。決定部133は、第1グラフにおける有向エッジの数に関する変更条件に基づいて、連結条件を変更するかを決定する。決定部133は、第1グラフにおける有向エッジの統計的情報に関する変更条件に基づいて、連結条件を変更するかを決定する。
The
決定部133は、変更条件に基づいて、連結条件における有向エッジの数に関するエッジ数条件を変更する。決定部133は、第1グラフにおける複数のノードの数が多い程、エッジ数条件において指定される連結エッジ数を増加させる。決定部133は、指定された生成時間を超過すると推定される場合、エッジ数条件において指定される連結エッジ数を減少させる。
The
決定部133は、一のノードを起点とし他のノードを終点する出力エッジの数に関する出力数条件を含むエッジ数条件を変更する。決定部133は、他のノードを起点とし一のノードを終点とする入力エッジの数に関する入力数条件を含むエッジ数条件を変更する。
The
図1の例では、決定部133は、入力閾値「2」を選択数に決定する。決定部133は、生成中のグラフに対応する起点用情報を用いて起点ノードを決定する。また、決定部133は、連結条件の変更に応じて、選択数を更新する。決定部133は、入力閾値「3」を選択数に決定する。決定部133は、出力閾値「6」を選択数に決定する。決定部133は、選択数を「3」から「6」に更新する。
In the example of FIG. 1, the
(生成部134)
生成部134は、各種情報を生成する。例えば、生成部134は、記憶部120に記憶された情報(データ)から各種情報(データ)を生成する。例えば、生成部134は、オブジェクト情報記憶部121や、連結条件情報記憶部122や、変更条件情報記憶部123や、グラフデータ記憶部124や、起点用情報記憶部125や、再構築条件情報記憶部126や、再構築グラフデータ記憶部127等から各種情報を生成する。例えば、生成部134は、グラフデータから第1グラフデータを生成する。例えば、生成部134は、第1グラフデータに新たに追加されたノードを追加した第2グラフデータを生成する。
(Generation unit 134)
The
生成部134は、一のノードを第1グラフに追加し、所定の条件により変更される有向エッジの連結に関する連結条件に基づいて、一のノードと近傍ノードとの間を有向エッジにより連結した第2グラフを生成する。生成部134は、決定部133により連結条件を変更すると決定された場合、変更後の連結条件に基づいて、一のノードと近傍ノードとの間を有向エッジにより連結した第2グラフを生成する。
The
生成部134は、変更後のエッジ数条件に基づいて、一のノードと近傍ノードとの間を有向エッジにより連結した第2グラフを生成する。生成部134は、増加後の連結エッジ数に基づいて、一のノードと近傍ノードとの間を有向エッジにより連結した第2グラフを生成する。生成部134は、減少後の連結エッジ数に基づいて、一のノードと近傍ノードとの間を有向エッジにより連結した第2グラフを生成する。
The
生成部134は、変更後の出力数条件に基づいて、近傍ノードのうち、出力数条件に対応する数の出力先ノードに、一のノードを起点とする出力エッジを連結した第2グラフを生成する。生成部134は、変更後のエッジ数条件に基づいて、近傍ノードのうち、入力数条件に対応する数の入力元ノードに、一のノードを終点とする入力エッジを連結した第2グラフを生成する。
Based on the changed output number condition, the
生成部134は、第2グラフにおける有向エッジを更新することにより、第3グラフを生成する。生成部134は、第2グラフが、グラフの再構築に関する所定の条件を満たす場合、第3グラフを生成する。生成部134は、第2グラフの有向エッジを反転した反転エッジを追加した暫定グラフを生成し、生成した暫定グラフを用いて、第3グラフを生成する。生成部134は、連結条件に基づいて、各ノードと近傍ノードとの間を有向エッジにより連結した第3グラフを生成する。生成部134は、第2グラフに含まれる各ノードの近傍ノードに関する情報を用いて、第3グラフを生成する。
The
生成部134は、取得部131により新規に追加されたオブジェクトが取得された場合、新規に追加されたオブジェクトに対応するベクトルを生成してもよい。この場合、生成部134は、生成したベクトルをオブジェクトに対応付けてオブジェクト情報記憶部121に記憶させてもよい。
When the newly added object is acquired by the
図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
生成部134は、グラフGR11-1に基づいて、決定用情報一覧DFI1を生成する。生成部134は、追加したノードN3に2本の入力エッジE3、E5及び1本の出力エッジE4が連結されたグラフGR11-2を生成する。
The
生成部134は、グラフGR11-2に基づいて、決定用情報一覧DFI2を生成する。生成部134は、追加したノードN4に2本の入力エッジE6、E7及び1本の出力エッジE8が連結されたグラフGR11-3を生成する。生成部134は、ノードN5等の96個のノードについても、ノードN4と同様に、順次グラフGR11に追加することにより、グラフGR11-3を生成する。
The
生成部134は、グラフGR11-3に基づいて、決定用情報一覧DFI3を生成する。生成部134は、追加したノードN11に3本の入力エッジE13、E14、及び1本の出力エッジE12が連結されたグラフGR11-4を生成する。生成部134は、変更条件一覧ACL1中の変更内容に基づいて、連結条件一覧LCL2を生成する。
The
生成部134は、グラフGR11-4に基づいて、決定用情報一覧DFI4を生成する。生成部134は、変更条件一覧ACL2中の変更内容に基づいて、連結条件一覧LCL3を生成する。
The
(検索部135)
検索部135は、オブジェクトに関する検索サービスを提供する。検索部135は、各種情報を探索する。検索部135は、各種情報を検索する。例えば、検索部135は、グラフデータを探索することにより、オブジェクトを検索する。例えば、検索部135は、取得部131により取得されたクエリが取得された場合、グラフデータを探索することにより、クエリに類似するオブジェクトを検索する。例えば、検索部135は、グラフデータを探索することにより、クエリに類似するオブジェクトを抽出する。例えば、検索部135は、図16に示すような処理手順に基づいて、グラフデータを探索することにより、クエリに類似するオブジェクトを抽出する。なお、検索部135は、検索サービスを提供しない場合、検索部135を有しなくてもよい。
(Search unit 135)
The
(提供部136)
提供部136は、各種情報を提供する。例えば、提供部136は、端末装置10や情報提供装置50に各種情報を提供する。例えば、提供部136は、クエリに対応するオブジェクトIDを検索結果として提供する。例えば、提供部136は、検索部135により検索されたオブジェクトIDを情報提供装置50へ提供する。例えば、提供部136は、検索部135が検索により抽出したオブジェクトIDを情報提供装置50へ提供する。提供部136は、検索部135により抽出されたオブジェクトIDをクエリに対応するベクトルを示す情報として情報提供装置50に提供する。
(Providing Department 136)
The providing
また、提供部136は、生成部134により生成された第2グラフデータを外部の情報処理装置へ提供してもよい。例えば、提供部136は、生成部134により生成されたグラフGR11を情報提供装置50に送信してもよい。
Further, the providing
〔4.情報処理のフロー〕
次に、図11を用いて、実施形態に係る情報処理システム1による情報処理の手順について説明する。図11は、実施形態に係る情報処理の一例を示すフローチャートである。
[4. Information processing flow]
Next, the procedure of information processing by the
図11に示すように、情報処理装置100は、一のオブジェクトを取得する(ステップS101)。例えば、情報処理装置100は、情報提供装置50からグラフに新たに追加するオブジェクト情報を取得する。
As shown in FIG. 11, the
そして、情報処理装置100は、第1グラフを取得する(ステップS102)。例えば、情報処理装置100は、グラフデータ記憶部124(図7参照)に記憶されたグラフを第1グラフとして取得する。
Then, the
そして、情報処理装置100は、第1グラフに基づいて、複数のノードのうち、一のオブジェクトに対応する一のノードの近傍ノードを選択する(ステップS103)。例えば、情報処理装置100は、追加する一のノードをクエリとして、第1グラフを探索することにより、近傍ノードを選択する。
Then, the
そして、情報処理装置100は、一のノードを第1グラフに追加する(ステップS104)。そして、情報処理装置100は、有向エッジの連結に関する連結条件に基づいて、一のノードと近傍ノードとの間を有向エッジにより連結した第2グラフを生成する(ステップS105)。
Then, the
次に、図12を用いて、実施形態に係る情報処理システム1による情報処理の手順について説明する。図12は、実施形態に係る条件の変更処理の一例を示すフローチャートである。例えば、図12に示す条件の変更処理は、図11中のステップS101の前や、ステップS105の後に行われてもよい。
Next, the procedure of information processing by the
図12に示すように、情報処理装置100は、変更条件を満たすかどうかを判定する(ステップS201)。情報処理装置100は、変更条件を満たすと判定した場合(ステップS201:Yes)、変更条件に基づいて連結条件を変更する(ステップS202)。
As shown in FIG. 12, the
情報処理装置100は、変更条件を満たさないと判定した場合(ステップS201:No)、連結条件を変更せずに処理を終了する。
When the
〔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
図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
また、情報処理装置100は、グラフGR11-21に基づいて、決定用情報一覧DFI21を生成する。情報処理装置100は、グラフGR11-21に含まれるノード数が9999個であることや、グラフGR11-21に含まれる追加ノード数が99個であることを示す決定用情報一覧DFI21を生成する。例えば、情報処理装置100は、決定用情報一覧DFI21を記憶部120(図3参照)に記憶してもよい。
Further, the
そして、情報処理装置100は、グラフGR11-21が再構築条件を満たすかどうかを判定する。例えば、情報処理装置100は、グラフGR11-21に含まれるノード数が9999個であり、追加ノード数が99個であるため、追加ノード割合を「0.0099(=99/9999)」と算出する。情報処理装置100は、グラフGR11-21の追加ノード割合が「0.0099」であるため、再構築条件一覧RCL21に示す追加ノード割合の閾値「0.1」以上であるという再構築条件を満たさないと判定する。そのため、情報処理装置100は、再構築処理を実行せずに、処理を続行する。
Then, the
そして、情報処理装置100は、ノードN6を新規追加する(ステップS21-1)。例えば、情報処理装置100は、ノードN6をグラフGR11-21に追加する。
Then, the
そして、情報処理装置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
そして、情報処理装置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
情報処理装置100は、選択した近傍ノードのうち、距離が短い方から順に2個のノードにノードN6への入力エッジを連結する。情報処理装置100は、選択した近傍ノードであるノードN1、N3のうち、距離が最も短いノードN1にノードN6へ入力するエッジE13を連結する。これにより、情報処理装置100は、ノードN6の近傍ノードであるノードN1とノードN6とを連結する。
The
情報処理装置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
また、情報処理装置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
また、情報処理装置100は、グラフGR11-22に基づいて、決定用情報一覧DFI22を生成する。例えば、情報処理装置100は、決定用情報一覧DFI21を更新することにより、決定用情報一覧DFI22を生成する。情報処理装置100は、グラフGR11-22に含まれるノード数が10000個であることや、グラフGR11-22に含まれる追加ノード数が100個であることを示す決定用情報一覧DFI21を生成する。例えば、情報処理装置100は、記憶部120(図3参照)に記憶された決定用情報一覧DFI21を決定用情報一覧DFI22に更新してもよい。
Further, the
そして、情報処理装置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
そのため、情報処理装置100は、グラフに反転エッジを追加する(ステップS22)。情報処理装置100は、ノードN6を追加した第2グラフであるグラフGR11-22に反転エッジを追加する。情報処理装置100は、グラフGR11-22の各ノードについて、他のノードとの間に一方のエッジのみが連結されている場合、そのノード間に他方のエッジを連結する。すなわち、情報処理装置100は、1本のエッジのみで連結されているノード間に、その1本のエッジを反転したエッジ(反転エッジ)を追加する。
Therefore, the
図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
すなわち、情報処理装置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
そして、情報処理装置100は、グラフの再構築処理を実行し、再構築グラフを生成する(ステップS23)。情報処理装置100は、連結条件一覧LCL1に基づいて、グラフGR11に含まれるノードN1~N6等を含む10000個のノード間をエッジで連結した再構築グラフであるグラフGR21(再構築グラフGR21)を生成する。図13の例では、情報処理装置100は、連結条件一覧LCL1の入力閾値「2」を選択数に決定する。
Then, the
例えば、情報処理装置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
また、情報処理装置100は、近傍ノードデータGR20を参照して、エッジ連結処理の対象のノード(対象ノード)からの出力エッジが接続されるノードから近傍ノードを選択してもよい。情報処理装置100は、近傍ノードデータGR20において、対象ノードからの出力エッジが連結されているノードのうち、距離が近い方から選択数のノードを近傍ノードとして選択してもよい。また、情報処理装置100は、近傍ノードデータGR20において選択した近傍ノードに対応する再構築グラフGR21中のノードを近傍ノードとして選択してもよい。また、情報処理装置100は、再構築グラフGR21を生成する際に、グラフを探索することにより、近傍ノードを選択してもよい。例えば、情報処理装置100は、再構築グラフGR21を生成する際に、グラフGR11を探索することにより、近傍ノードを選択してもよい。この場合、情報処理装置100は、近傍ノードデータGR20や仮想的なK最近傍グラフを生成しなくてもよい。
Further, the
例えば、情報処理装置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
そして、情報処理装置100は、連結条件に基づいて、対象ノードと近傍ノードとの間を連結する有向エッジを再構築グラフGR21に追加する。図13の例では、情報処理装置100は、連結条件一覧LCL1に基づいて、再構築グラフGR21中のノードN1と近傍ノードであるノードN2、N6との間を連結する有向エッジを再構築グラフGR21に追加する。具体的には、情報処理装置100は、連結条件一覧LCL1に基づいて、再構築グラフGR21中のノードN1に2本の入力エッジ及び1本の出力エッジが連結されるように再構築グラフGR21を生成(更新)する。
Then, the
情報処理装置100は、選択した近傍ノードのうち、距離が短い方から順に2個のノードにノードN1への入力エッジを連結する。情報処理装置100は、選択した近傍ノードであるノードN2、N6のうち、再構築グラフGR21において、距離が最も短いノードN6にノードN1へ入力するエッジE12を連結する。また、情報処理装置100は、選択した近傍ノードであるノードN2、N6のうち、再構築グラフGR21において、距離が2番目に短いノードN2にノードN1へ入力するエッジE2を連結する。
The
また、情報処理装置100は、選択した近傍ノードのうち、距離が短い方から順に1個のノードにノードN1からの出力エッジを連結する。情報処理装置100は、選択した近傍ノードであるノードN2、N6のうち、再構築グラフGR21において、距離が最も短いノードN6にノードN1から出力するエッジE13を連結する。
Further, the
そして、情報処理装置100は、ノードN2~N6等を含む残りの9999個のノードについても同様に連結エッジを追加する処理を行うことにより、再構築グラフGR21を生成する。なお、情報処理装置100は、生成した再構築グラフGR21を第1グラフとして、図1に示すようなオブジェクト(ノード)の新規追加の処理を行ってもよい。例えば、情報処理装置100は、生成した再構築グラフGR21を第1グラフとして、追加されたオブジェクトに対応する追加ノードを再構築グラフGR21に追加することにより、第2グラフを生成してもよい。
Then, the
上述したように、情報処理装置100は、グラフが再構築の条件を満たす場合、再構築グラフを生成することにより、適切なタイミングでエッジのバランスを調整することができるため、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As described above, when the graph satisfies the reconstruction condition, the
〔6.再構築処理のフロー〕
次に、図14を用いて、実施形態に係る情報処理システム1によるグラフの再構築処理の手順について説明する。図14は、実施形態に係るグラフの再構築処理の一例を示すフローチャートである。
[6. Reconstruction process flow]
Next, with reference to FIG. 14, a procedure for graph reconstruction processing by the
図14に示すように、情報処理装置100は、再構築条件を満たすかどうかを判定する(ステップS501)。情報処理装置100は、再構築条件を満たさないと判定した場合(ステップS501:No)、再構築処理をせずに処理を終了する。
As shown in FIG. 14, the
情報処理装置100は、再構築条件を満たすと判定した場合(ステップS501:Yes)、第2グラフに含まれる各ノードの近傍ノードに関する情報を参照することにより、第2グラフに含まれる各ノードに対応する近傍ノードを選択する(ステップS502)。そして、情報処理装置100は、有向エッジの連結に関する連結条件に基づいて、各ノードと近傍ノードとの間を有向エッジにより連結した第3グラフを生成する(ステップS503)。
When the
〔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
ここでは、近傍オブジェクト集合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
例えば、情報処理装置100は、超球の半径rを∞(無限大)に設定し(ステップS300)、既存のオブジェクト集合から部分集合Sを抽出する(ステップS301)。例えば、情報処理装置100は、ルートノードとして選択されたオブジェクト(ノード)を部分集合Sとして抽出してもよい。また、例えば、超球とは、検索範囲を示す仮想的な球である。なお、ステップS301において抽出されたオブジェクト集合Sに含まれるオブジェクトは、同時に検索結果のオブジェクト集合Rの初期集合にも含められる。
For example, the
次に、情報処理装置100は、オブジェクト集合Sに含まれるオブジェクトの中で、検索クエリオブジェクトをyとするとオブジェクトyとの距離が最も短いオブジェクトを抽出し、オブジェクトsとする(ステップS302)。例えば、情報処理装置100は、ルートノードとして選択されたオブジェクト(ノード)のみがSの要素の場合には、結果的にルートノードがオブジェクトsとして抽出される。次に、情報処理装置100は、オブジェクトsをオブジェクト集合Sから除外する(ステップS303)。
Next, the
次に、情報処理装置100は、オブジェクトsとオブジェクトyとの距離d(s,y)がr(1+ε)を超えるか否かを判定する(ステップS304)。ここで、εは拡張要素であり、r(1+ε)は、探索範囲(この範囲内のノードのみを探索する。検索範囲よりも大きくすることで精度を高めることができる)の半径を示す値である。オブジェクトsとオブジェクトyとの距離d(s,y)がr(1+ε)を超える場合(ステップS304:Yes)、情報処理装置100は、オブジェクト集合Rをオブジェクトyの近傍オブジェクト集合として出力し(ステップS305)、処理を終了する。
Next, the
オブジェクトsと検索クエリオブジェクトyとの距離d(s,y)がr(1+ε)を超えない場合(ステップS304:No)、情報処理装置100は、オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトの中からオブジェクト集合Cに含まれないオブジェクトを一つ選択し、選択したオブジェクトuを、オブジェクト集合Cに格納する(ステップS306)。オブジェクト集合Cは、重複検索を回避するために便宜上設けられるものであり、処理開始時には空集合に設定される。
When the distance d (s, y) between the object s and the search query object y does not exceed r (1 + ε) (step S304: No), the
次に、情報処理装置100は、オブジェクトuとオブジェクトyとの距離d(u,y)がr(1+ε)以下であるか否かを判定する(ステップS307)。オブジェクトuとオブジェクトyとの距離d(u,y)がr(1+ε)以下である場合(ステップS307:Yes)、情報処理装置100は、オブジェクトuをオブジェクト集合Sに追加する(ステップS308)。また、オブジェクトuとオブジェクトyとの距離d(u,y)がr(1+ε)以下ではない場合(ステップS307:No)、情報処理装置100は、ステップS309の判定(処理)を行う。
Next, the
次に、情報処理装置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
オブジェクト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
オブジェクト集合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
次に、情報処理装置100は、オブジェクト集合Rに含まれるオブジェクト数がksと一致するか否かを判定する(ステップS313)。オブジェクト集合Rに含まれるオブジェクト数がksと一致しない場合(ステップS313:No)、情報処理装置100は、ステップS315の判定(処理)を行う。また、オブジェクト集合Rに含まれるオブジェクト数がksと一致する場合(ステップS313:Yes)、情報処理装置100は、オブジェクト集合Rに含まれるオブジェクトの中でオブジェクトyとの距離が最も長い(遠い)オブジェクトと、オブジェクトyとの距離を、新たなrに設定する(ステップS314)。
Next, the
そして、情報処理装置100は、オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えたか否かを判定する(ステップS315)。オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えていない場合(ステップS315:No)、情報処理装置100は、ステップS306に戻って処理を繰り返す。
Then, the
オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えた場合(ステップS315:Yes)、情報処理装置100は、オブジェクト集合Sが空集合であるか否かを判定する(ステップS316)。オブジェクト集合Sが空集合でない場合(ステップS316:No)、情報処理装置100は、ステップS302に戻って処理を繰り返す。また、オブジェクト集合Sが空集合である場合(ステップS316:Yes)、情報処理装置100は、オブジェクト集合Rを出力し、処理を終了する(ステップS317)。例えば、情報処理装置100は、オブジェクト集合Rに含まれるオブジェクト(ノード)を追加ノード(入力オブジェクトy)に対応する近傍ノードとして選択してもよい。例えば、情報処理装置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
〔8.効果〕
上述してきたように、実施形態に係る情報処理装置100は、取得部131と、選択部132と、生成部134とを有する。取得部131は、データ検索の対象となる一のオブジェクトと、一のオブジェクトとは異なる他のオブジェクトの各々に対応する複数のノード、及びノード間を連結する有向エッジを含む第1グラフとを取得する。選択部132は、第1グラフに基づいて、複数のノードのうち、一のオブジェクトに対応する一のノードの近傍に位置する近傍ノードを選択する。生成部134は、一のノードを第1グラフに追加し、有向エッジの連結に関し、所定の条件により変更される連結条件に基づいて、一のノードと近傍ノードとの間を有向エッジにより連結した第2グラフを生成する。
[8. effect〕
As described above, the
このように、実施形態に係る情報処理装置100は、一のオブジェクトに対応する一のノードを第1グラフに追加し、有向エッジの連結に関し、所定の条件により変更される連結条件に基づいて、一のノードと近傍ノードとの間を有向エッジにより連結した第2グラフを生成することにより、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As described above, the
また、実施形態に係る情報処理装置100は、決定部133を有する。決定部133は、所定の条件である連結条件に関する変更条件に基づいて、連結条件を変更するかを決定する。生成部134は、決定部133により連結条件を変更すると決定された場合、変更後の連結条件に基づいて、一のノードと近傍ノードとの間を有向エッジにより連結した第2グラフを生成する。
Further, the
これにより、実施形態に係る情報処理装置100は、変更条件に応じて連結条件を変更するかを決定することができるため、連結条件を動的に変更し、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As a result, the
また、実施形態に係る情報処理装置100において、決定部133は、第1グラフにおける複数のノードの数に関する変更条件に基づいて、連結条件を変更するかを決定する。
Further, in the
これにより、実施形態に係る情報処理装置100は、第1グラフにおけるノード数に応じて、連結条件を動的に変更し、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
Thereby, the
また、実施形態に係る情報処理装置100において、決定部133は、第1グラフにおける複数のノードの数が所定の閾値以上である場合、連結条件を変更するかを決定する。
Further, in the
これにより、実施形態に係る情報処理装置100は、第1グラフにおける複数のノードの数と所定の閾値とを比較し、その結果に応じて、連結条件を動的に変更し、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As a result, the
また、実施形態に係る情報処理装置100において、決定部133は、第1グラフにおける複数のノードのうち、所定の時点以後に追加されたノードである追加ノードの割合に関する変更条件に基づいて、連結条件を変更するかを決定する。
Further, in the
これにより、実施形態に係る情報処理装置100は、第1グラフにおける追加ノードの割合に応じて、連結条件を動的に変更し、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
Thereby, the
また、実施形態に係る情報処理装置100において、決定部133は、第1グラフにおける複数のノードのうち、追加ノードの割合が所定の閾値以上である場合、連結条件を変更するかを決定する。
Further, in the
これにより、実施形態に係る情報処理装置100は、第1グラフにおける追加ノードの割合と所定の閾値とを比較し、その結果に応じて、連結条件を動的に変更し、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As a result, the
また、実施形態に係る情報処理装置100において、決定部133は、第1グラフにおける有向エッジの数に関する変更条件に基づいて、連結条件を変更するかを決定する。
Further, in the
これにより、実施形態に係る情報処理装置100は、第1グラフにおける有向エッジの数に関する変更条件に応じて、連結条件を動的に変更し、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As a result, the
また、実施形態に係る情報処理装置100において、決定部133は、第1グラフにおける有向エッジの統計的情報に関する変更条件に基づいて、連結条件を変更するかを決定する。
Further, in the
これにより、実施形態に係る情報処理装置100は、第1グラフにおける有向エッジの数の統計的情報に応じて、連結条件を動的に変更し、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As a result, the
また、実施形態に係る情報処理装置100において、決定部133は、変更条件に基づいて、連結条件における有向エッジの数に関するエッジ数条件を変更する。生成部134は、変更後のエッジ数条件に基づいて、一のノードと近傍ノードとの間を有向エッジにより連結した第2グラフを生成する。
Further, in the
これにより、実施形態に係る情報処理装置100は、変更条件に基づいて、エッジ数条件を動的に変更し、変更後のエッジ数条件に基づいて第2グラフを生成し、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As a result, the
また、実施形態に係る情報処理装置100において、決定部133は、第1グラフにおける複数のノードの数が多い程、エッジ数条件において指定される連結エッジ数を増加させる。生成部134は、増加後の連結エッジ数に基づいて、一のノードと近傍ノードとの間を有向エッジにより連結した第2グラフを生成する。
Further, in the
これにより、実施形態に係る情報処理装置100は、ノードの数が多い程、エッジ数条件において指定される連結エッジ数を増加させ、増加後のエッジ数条件に基づいて第2グラフを生成することができるため、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As a result, the
また、実施形態に係る情報処理装置100において、決定部133は、指定された生成時間を超過すると推定される場合、エッジ数条件において指定される連結エッジ数を減少させる。生成部134は、減少後の連結エッジ数に基づいて、一のノードと近傍ノードとの間を有向エッジにより連結した第2グラフを生成する。
Further, in the
これにより、実施形態に係る情報処理装置100は、ノ生成時間を超過する場合エッジ数条件において指定される連結エッジ数を減少させ、減少後のエッジ数条件に基づいて第2グラフを生成し、指定された生成時間の超過を抑制しつつ、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As a result, the
また、実施形態に係る情報処理装置100において、決定部133は、一のノードを起点とし他のノードを終点する出力エッジの数に関する出力数条件を含むエッジ数条件を変更する。生成部134は、変更後の出力数条件に基づいて、近傍ノードのうち、出力数条件に対応する数の出力先ノードに、一のノードを起点とする出力エッジを連結した第2グラフを生成する。
Further, in the
これにより、実施形態に係る情報処理装置100は、出力数条件を含むエッジ数条件を動的に変更し、出力数条件に対応する数の出力先ノードに、一のノードを起点とする出力エッジを連結することができるため、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As a result, the
また、実施形態に係る情報処理装置100において、決定部133は、他のノードを起点とし一のノードを終点とする入力エッジの数に関する入力数条件を含むエッジ数条件を変更する。生成部134は、変更後のエッジ数条件に基づいて、近傍ノードのうち、入力数条件に対応する数の入力元ノードに、一のノードを終点とする入力エッジを連結した第2グラフを生成する。
Further, in the
これにより、実施形態に係る情報処理装置100は、入力数条件を含むエッジ数条件を動的に変更し、入力数条件に対応する数の入力元ノードに、一のノードを終点とする入力エッジを連結することができるため、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As a result, the
また、実施形態に係る情報処理装置100において、選択部132は、第1グラフを探索することにより、近傍ノードを選択する。
Further, in the
これにより、実施形態に係る情報処理装置100は、第1グラフを探索することにより、効率的に近傍ノードを選択するができるため、生成時間の増大を抑制しつつ、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As a result, the
また、実施形態に係る情報処理装置100において、生成部134は、第2グラフにおける有向エッジを更新することにより、第3グラフを生成する。
Further, in the
これにより、実施形態に係る情報処理装置100は、生成した第2グラフにおいて特定のノードに多数のエッジが連結されている等のエッジの連結にばらつきが生じている場合等、エッジの調整処理が必要な場合に、有向エッジを更新して第3グラフを生成することにより、エッジの連結のばらつき等が解消されたグラフを再構築することができるため、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As a result, the
また、実施形態に係る情報処理装置100において、生成部134は、第2グラフが、グラフの再構築に関する所定の条件を満たす場合、第3グラフを生成する。
Further, in the
これにより、実施形態に係る情報処理装置100は、生成した第2グラフにおけるエッジの連結にばらつきが生じている場合等、グラフの再構築に関する所定の条件を満たす場合等、エッジの調整処理が必要な場合に、有向エッジを更新して第3グラフを生成することにより、エッジの連結のばらつき等が解消されたグラフを再構築することができるため、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As a result, the
また、実施形態に係る情報処理装置100において、生成部134は、第2グラフに含まれる各ノードの近傍ノードに関する情報を用いて、第3グラフを生成する。
Further, in the
これにより、実施形態に係る情報処理装置100は、第2グラフに含まれる各ノードの近傍ノードに関する情報を用いて、第3グラフを生成することにより、例えば仮想的に近似K近傍グラフ状態とした第2グラフに含まれる各ノードの近傍ノードに関する情報を用いてグラフを生成することができるため、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As a result, the
また、実施形態に係る情報処理装置100において、選択部132は、第2グラフに含まれる各ノードの近傍ノードに関する情報を参照することにより、第2グラフに含まれる各ノードに対応する近傍ノードを選択する。生成部134は、連結条件に基づいて、各ノードと近傍ノードとの間を有向エッジにより連結した第3グラフを生成する。
Further, in the
これにより、実施形態に係る情報処理装置100は、第2グラフに含まれる各ノードの近傍ノードに関する情報を参照することにより、効率的に近傍ノードを選択するができるため、生成時間の増大を抑制しつつ、検索に用いるグラフを適切に生成することができる。したがって、情報処理装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。
As a result, the
〔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
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
The
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス1500は、ネットワークNを介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータをネットワークNを介して他の機器へ送信する。
The
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを入出力インターフェイス1600を介して出力装置へ出力する。
The
メディアインターフェイス1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
The
例えば、コンピュータ1000が実施形態に係る情報処理装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部130の機能を実現する。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置からネットワークNを介してこれらのプログラムを取得してもよい。
For example, when the
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の行に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。 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
Claims (20)
前記第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グラフに追加し、前記有向エッジの連結に関し、グラフを構成するノードまたはエッジの傾向に基づく条件である所定の条件により変更される連結条件に基づいて、前記一のノードと前記近傍ノードとの間を前記有向エッジにより連結した第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.
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)
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)
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)
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 |
-
2018
- 2018-11-19 JP JP2018216705A patent/JP7080803B2/en active Active
Patent Citations (2)
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)
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 |