JP7130019B2 - Information processing device, information processing method, and information processing program - Google Patents
Information processing device, information processing method, and information processing program Download PDFInfo
- Publication number
- JP7130019B2 JP7130019B2 JP2020139656A JP2020139656A JP7130019B2 JP 7130019 B2 JP7130019 B2 JP 7130019B2 JP 2020139656 A JP2020139656 A JP 2020139656A JP 2020139656 A JP2020139656 A JP 2020139656A JP 7130019 B2 JP7130019 B2 JP 7130019B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- information processing
- objects
- graph
- search
- 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 365
- 238000003672 processing method Methods 0.000 title claims description 7
- 238000000034 method Methods 0.000 claims description 95
- 238000012545 processing Methods 0.000 claims description 82
- 230000008569 process Effects 0.000 claims description 76
- 238000012986 modification Methods 0.000 description 47
- 230000004048 modification Effects 0.000 description 47
- 239000013598 vector Substances 0.000 description 39
- 238000010586 diagram Methods 0.000 description 26
- 238000013500 data storage Methods 0.000 description 16
- 239000000284 extract Substances 0.000 description 11
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 239000002151 riboflavin Substances 0.000 description 7
- 230000002457 bidirectional effect Effects 0.000 description 5
- 238000007796 conventional method Methods 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 239000004149 tartrazine Substances 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000009795 derivation Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、情報処理装置、情報処理方法、及び情報処理プログラムに関する。 The present invention relates to an information processing device, an information processing method, and an information processing program.
従来、種々の情報を探索(検索)する技術が提供されている。例えば、所定の対象に関する検索を行うために、検索対象に対応するノードがエッジにより連結されたグラフデータを生成する技術が提供されている。また、このような技術は、例えば画像検索等に用いられる。 Conventionally, techniques for searching (retrieving) various types of information have been provided. For example, in order to perform a search for a predetermined target, a technique is provided for generating graph data in which nodes corresponding to a search target are connected by edges. Also, such a technique is used, for example, for image retrieval.
しかしながら、上記の従来技術では、適切なグラフを生成することが難しい場合がある。例えば、上記の従来技術では、生成したグラフを用いた検索結果については考慮されておらず、生成したグラフを用いた検索が所望の結果とならず、適切なグラフの生成となっていない場合がある。そのため、適切なグラフを生成することが望まれている。 However, with the conventional techniques described above, it may be difficult to generate an appropriate graph. For example, in the above conventional technology, search results using generated graphs are not taken into consideration, and searches using generated graphs may not produce desired results and appropriate graphs may not be generated. be. Therefore, it is desired to generate an appropriate graph.
本願は、上記に鑑みてなされたものであって、エッジの追加により適切なグラフを生成する情報処理装置、情報処理方法、及び情報処理プログラムを提供することを目的とする。 The present application has been made in view of the above, and aims to provide an information processing apparatus, an information processing method, and an information processing program that generate an appropriate graph by adding edges.
本願に係る情報処理装置は、複数のオブジェクトのうち、前記複数のオブジェクトの各々に対応する複数のノードがエッジで連結されたグラフの検索に用いるクエリに近い正解オブジェクトを示す正解データを取得する取得部と、前記正解データが示す前記正解オブジェクトのうち、前記クエリを用いた前記グラフの検索処理により検索された検索結果オブジェクトに含まれない対象オブジェクトに対応する対象ノードに連結する追加エッジを追加することにより、前記グラフを更新する更新部と、を備えたことを特徴とする。 An information processing apparatus according to the present application acquires correct data indicating a correct object close to a query used for searching a graph in which a plurality of nodes corresponding to each of the plurality of objects are connected by edges from among a plurality of objects. and adding an additional edge connected to a target node corresponding to a target object not included in the search result objects retrieved by the search processing of the graph using the query, among the correct objects indicated by the correct data. and an updating unit that updates the graph.
実施形態の一態様によれば、エッジの追加により適切なグラフを生成することができるという効果を奏する。 According to one aspect of the embodiment, there is an effect that an appropriate graph can be generated by adding edges.
以下に、本願に係る情報処理装置、情報処理方法、及び情報処理プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法、及び情報処理プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。 Hereinafter, modes for implementing an information processing apparatus, an information processing method, and an information processing program (hereinafter referred to as "embodiments") according to the present application will be described in detail with reference to the drawings. The information processing apparatus, information processing method, and information processing program according to the present application are not limited to this embodiment. Also, in each of the following embodiments, the same parts are denoted by the same reference numerals, and overlapping descriptions are omitted.
(実施形態)
〔1.情報処理〕
図1を用いて、実施形態に係る情報処理の一例について説明する。図1は、実施形態に係る情報処理の一例を示す図である。図1では、情報処理装置100(図4参照)が新たなエッジ(「追加エッジ」ともいう)を追加する対象となるグラフデータ(単に「グラフ」ともいう)を取得し、そのグラフにエッジを追加する処理(以下「更新処理」ともいう)を行う場合を示す。なお、更新処理は、情報処理装置100が生成中のグラフを対象として行ってもよいし、情報提供装置50(図3参照)等から取得したk最近傍グラフ等のグラフを対象として行ってもよい。
(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 illustrating an example of information processing according to an embodiment. In FIG. 1, the information processing apparatus 100 (see FIG. 4) acquires graph data (simply referred to as “graph”) to which a new edge (also referred to as “additional edge”) is to be added, and adds an edge to the graph. A case of performing an adding process (hereinafter also referred to as an "update process") is shown. Note that the update process may be performed on a graph being generated by the information processing apparatus 100, or may be performed on a graph such as the k-nearest neighbor graph acquired from the information providing apparatus 50 (see FIG. 3) or the like. good.
図1の例では、対象とする情報(オブジェクト)がベクトル化され、ベクトル化されたオブジェクトを対象とするグラフ(グラフインデックス)を生成(更新)する場合を示す。すなわち、図1の例では、情報処理装置100がベクトルをオブジェクトに対応するオブジェクト値として処理を行う場合を示す。なお、情報処理装置100が用いる情報は、ベクトルに限らず、各対象の類似性を表現可能な情報であれば、どのような形式の情報であってもよい。例えば、情報処理装置100は、各対象に対応する所定のデータや値を用いてもよい。例えば、情報処理装置100は、各対象から生成された所定の数値(例えば2進数の値や16進数の値)を用いてもよい。例えば、情報処理装置100は、ベクトルに限らず、データ間の距離(類似度)が定義されていれば任意の形態のデータを用いてもよい。また、以下では、画像情報をオブジェクトとした場合を一例として説明するが、オブジェクトは、動画情報や音声情報等の種々の対象であってもよい。 The example of FIG. 1 shows a case where target information (object) is vectorized and a graph (graph index) for the vectorized object is generated (updated). That is, the example of FIG. 1 shows a case where the information processing apparatus 100 performs processing using a vector as an object value corresponding to an object. The information used by the information processing apparatus 100 is not limited to vectors, and may be information in any format as long as the information can express the similarity of each target. For example, the information processing apparatus 100 may use predetermined data or values corresponding to each target. For example, the information processing apparatus 100 may use a predetermined numerical value (for example, a binary value or a hexadecimal value) generated from each target. For example, the information processing apparatus 100 is not limited to vectors, and may use any form of data as long as the distance (similarity) between data is defined. In the following description, a case where image information is used as an object will be described as an example, but the object may be various objects such as moving image information and audio information.
情報処理装置100は、例えば情報処理装置100が処理可能な範囲で(例えば数百万~数億等)の膨大な画像情報に対応するノードを含むグラフを対象に処理を行うが、図面においてはその一部のみを図示する。図1の例では、説明を簡単にするために、7個のノードを図示して処理の概要を説明する。具体的には図1の例では、ノードN1、N2、N3等やエッジE1等を含むグラフGR11を対象として処理を行う場合を示す。このように「ノードN*(*は任意の数値)」と記載した場合、そのノードはノードID「N*」により識別されるノードであることを示す。例えば、「ノードN1」と記載した場合、そのノードはノードID「N1」により識別されるノードである。 The information processing apparatus 100 processes, for example, a graph including nodes corresponding to a huge amount of image information (for example, millions to hundreds of millions) within the range that the information processing apparatus 100 can process. Only part of it is illustrated. In the example of FIG. 1, seven nodes are illustrated to explain the outline of the processing in order to simplify the explanation. Specifically, the example of FIG. 1 shows the case where the graph GR11 including the nodes N1, N2, N3, etc. and the edge E1, etc. is processed. When "node N* (* is an arbitrary number)" is described in this way, it indicates that the node is identified by the node ID "N*". For example, when "node N1" is described, the node is identified by the node ID "N1".
また、上記のように「エッジE*(*は任意の数値)」と記載した場合、そのエッジはエッジID「E*」により識別されるエッジであることを示す。例えば、「エッジE1」と記載した場合、そのエッジはエッジID「E1」により識別されるエッジである。図1の例では、説明を簡単にするために、エッジが無向エッジである場合を一例として示すが、エッジは有向エッジであってもよい。なお、ここでいう無向エッジとは、連結されたノード間を双方向にデータを辿ることができるエッジ(双方向エッジ)を意味する。以下では、無向エッジ(双方向エッジ)を単に「エッジ」と記載する場合がある。例えば、ノードN1とノードN2とを連結するエッジE1により、ノードN1とノードN2との間を双方向に辿ることが可能となる。すなわち、エッジE1により、ノードN1からノードN2へ辿ることができ、かつエッジE1により、ノードN2からノードN1へ辿ることができる。 Moreover, when "edge E* (* is an arbitrary numerical value)" is described as above, it indicates that the edge is identified by the edge ID "E*". For example, when "edge E1" is described, the edge is identified by the edge ID "E1". In the example of FIG. 1, the edge is an undirected edge to simplify the explanation, but the edge may be a directed edge. The undirected edge here means an edge (bidirectional edge) that allows data to be traced in both directions between connected nodes. An undirected edge (bidirectional edge) may be simply referred to as an "edge" below. For example, the edge E1 connecting the node N1 and the node N2 enables bidirectional tracing between the node N1 and the node N2. That is, edge E1 allows tracing from node N1 to node N2, and edge E1 allows tracing from node N2 to node N1.
また、図1に示すグラフGR11-1、GR11-2は、グラフの生成(更新)過程を模式的に示す図であり、グラフGR11-1、GR11-2は、情報処理により生成される同一のグラフデータである。また、以下では、グラフGR11-1、GR11-2について、特に区別なく説明する場合には、グラフGR11と記載する。 Graphs GR11-1 and GR11-2 shown in FIG. 1 are diagrams schematically showing the generation (update) process of the graphs. Graph data. Further, hereinafter, the graphs GR11-1 and GR11-2 will be referred to as the graph GR11 when they are not distinguished from each other.
また、図1に示すグラフGR11は、各ベクトル間の距離等の説明のための概念的な図であり、グラフGR11は、多次元空間である。例えば、図1に示すグラフGR11は、平面上に図示するため2次元の態様にて図示されるが、例えば100次元や1000次元等の多次元空間であるものとする。なお、各ノードに対応するベクトルデータは、N次元の実数値ベクトルであってもよい。 Graph GR11 shown in FIG. 1 is a conceptual diagram for explaining distances between vectors, etc., and graph GR11 is a multidimensional space. For example, the graph GR11 shown in FIG. 1 is illustrated in a two-dimensional manner because it is illustrated on a plane, but it is assumed to be a multi-dimensional space such as 100-dimensional space or 1000-dimensional space. The vector data corresponding to each node may be an N-dimensional real-valued vector.
ここで、各ノード間の距離は、ノード(画像情報)の類似性を示し、距離が近いほど類似している。本実施形態においては、グラフGR11における各ノードの距離を対応する各オブジェクト間の類似度とする。例えば、各ノードに対応する画像情報の類似性が、グラフGR11内におけるノード間の距離として写像されているものとする。例えば、各ノードに対応する概念間の類似度が各ノード間の距離に写像されているものとする。ここで、図1の例では、グラフGR11における各ノード間の距離が短いオブジェクト同士の類似度が高く、グラフGR11における各ノード間の距離が長いオブジェクト同士の類似度が低い。 Here, the distance between each node indicates the similarity of the node (image information), and the closer the distance, the more similar. In this embodiment, the distance of each node in the graph GR11 is used as the degree of similarity between corresponding objects. For example, it is assumed that the similarity of image information corresponding to each node is mapped as the distance between nodes in graph GR11. For example, it is assumed that the similarity between concepts corresponding to each node is mapped to the distance between each node. Here, in the example of FIG. 1, the similarity between objects with short distances between nodes in the graph GR11 is high, and the similarity between objects with long distances between nodes in the graph GR11 is low.
例えば、図1中のグラフGR11において、ノードN43とノードN2とは近接している、すなわち距離が短い(近い)。そのため、ノードN43に対応するオブジェクトと、ノードN2に対応するオブジェクトとは類似度が高いことを示す。また、図1中のグラフGR11において、ノードN43とノードN53とは遠隔にある、すなわち距離が長い(遠い)。そのため、ノードN43に対応するオブジェクトと、ノードN53に対応するオブジェクトとは類似度が低いことを示す。なお、類似度を示す指標としての距離は、ベクトル(N次元ベクトル)間の距離として適用可能であれば、どのような距離であってもよく、例えば、ユークリッド距離やマハラノビス距離やコサイン距離等の種々の距離が用いられてもよい。 For example, in graph GR11 in FIG. 1, node N43 and node N2 are close to each other, that is, the distance is short (close). Therefore, it indicates that the object corresponding to the node N43 and the object corresponding to the node N2 have a high degree of similarity. Also, in the graph GR11 in FIG. 1, the node N43 and the node N53 are remote, that is, the distance is long (far). Therefore, it indicates that the object corresponding to the node N43 and the object corresponding to the node N53 have a low degree of similarity. Note that the distance as an index indicating similarity may be any distance as long as it can be applied as the distance between vectors (N-dimensional vectors). Various distances may be used.
ここから、図1を用いて情報処理装置100がグラフGR11にエッジを追加する処理について具体的に説明する。 From here, the processing of adding an edge to the graph GR11 by the information processing apparatus 100 will be specifically described with reference to FIG.
まず、情報処理装置100は、データ検索の対象(オブジェクト)に各々対応する複数のノードがエッジにより連結されたグラフを取得する(ステップS11)。図1の例では、情報処理装置100は、ノードN1、N2、N3、N38、N43、N53、N99等やエッジE1~E3等を含むグラフGR11-1を取得する。例えば、情報処理装置100は、グラフ情報記憶部123(図7参照)からグラフGR11を取得する。なお、情報処理装置100は、種々の従来技術を適宜用いてグラフGR11を生成してもよい。 First, the information processing apparatus 100 acquires a graph in which a plurality of nodes corresponding to data search targets (objects) are connected by edges (step S11). In the example of FIG. 1, the information processing apparatus 100 acquires a graph GR11-1 including nodes N1, N2, N3, N38, N43, N53, N99, etc. and edges E1 to E3, etc. FIG. For example, the information processing apparatus 100 acquires the graph GR11 from the graph information storage unit 123 (see FIG. 7). Note that the information processing apparatus 100 may generate the graph GR11 using various conventional techniques as appropriate.
情報処理装置100は、複数のクエリを生成する(ステップS12)。例えば、情報処理装置100は、グラフGR11中にノードとして登録されているオブジェクトを基にクエリを生成してもよい。情報処理装置100は、グラフGR11中にノードとして登録されている複数のオブジェクトの平均をクエリとしてもよい。情報処理装置100は、グラフGR11中にノードとして登録されている各オブジェクトを選択し、選択したオブジェクト(「第1オブジェクト」ともいう)と、第1オブジェクトとは異なる第2オブジェクトとを用いてクエリを生成してもよい。例えば、情報処理装置100は、グラフGR11において第1オブジェクトに対応するノード(「第1ノード」ともいう)からのエッジが連結されたノードに対応する第2オブジェクト用いて、クエリを生成してもよい。 The information processing device 100 generates a plurality of queries (step S12). For example, the information processing apparatus 100 may generate a query based on objects registered as nodes in the graph GR11. The information processing apparatus 100 may use the average of a plurality of objects registered as nodes in the graph GR11 as a query. The information processing apparatus 100 selects each object registered as a node in the graph GR11, and performs a query using the selected object (also referred to as a "first object") and a second object different from the first object. may be generated. For example, the information processing apparatus 100 may generate a query using a second object corresponding to a node to which edges from a node corresponding to the first object (also referred to as a “first node”) are connected in the graph GR11. good.
例えば、情報処理装置100は、第1ノードからのエッジが連結されたノード群のうち、第1ノードから最遠のノードまたは最近のノードに対応する第2オブジェクト用いて、クエリを生成する。また、情報処理装置100は、第1ノードからのエッジが連結されたノード群からランダムに選択されたノードに対応する第2オブジェクト用いて、クエリを生成してもよい。情報処理装置100は、グラフGR11中にノードとして含まれるオブジェクトの各々を第1オブジェクトとして選択し、その第1オブジェクトに対応する第2オブジェクトを用いて、複数のクエリを生成する。例えば、情報処理装置100は、グラフGR11に1000万のノードがある場合、1000万のクエリを生成してもよいし、所定数(例えば100万等)のオブジェクトを第1オブジェクトとして選択し、所定数のクエリを生成してもよい。 For example, the information processing apparatus 100 generates a query using a second object corresponding to the farthest node or the nearest node from the first node in the node group to which edges from the first node are connected. Also, the information processing apparatus 100 may generate a query using a second object corresponding to a node randomly selected from a node group to which edges from the first node are connected. The information processing apparatus 100 selects each object included as a node in the graph GR11 as a first object, and uses a second object corresponding to the first object to generate a plurality of queries. For example, if the graph GR11 has 10 million nodes, the information processing apparatus 100 may generate 10 million queries, select a predetermined number (for example, 1 million) of objects as first objects, number of queries may be generated.
なお、上記は一例に過ぎず、情報処理装置100は、上記に限らず、種々の方法によりクエリを生成してもよい。例えば、情報処理装置100は、グラフGR11に登録されていない同系統のオブジェクトをクエリとして使っても良い。例えば、情報処理装置100は、グラフGR11を用いた検索サービスが既にユーザに提供されている場合、ユーザが検索に用いたクエリを用いてもよい。例えば、情報処理装置100は、グラフGR11中にノードとして登録されているオブジェクトをクエリとしても用いてもよい。この場合の処理については後述する。 Note that the above is merely an example, and the information processing apparatus 100 may generate a query by various methods without being limited to the above. For example, the information processing apparatus 100 may use, as a query, objects of the same system that are not registered in the graph GR11. For example, the information processing apparatus 100 may use the query used for the search by the user when a search service using the graph GR11 has already been provided to the user. For example, the information processing apparatus 100 may use an object registered as a node in the graph GR11 as a query. Processing in this case will be described later.
例えば、情報処理装置100は、第1オブジェクトの第1ノードからのエッジが連結されたノード群のうち、第1ノードから最遠のノードに対応する第2オブジェクトを用いて、クエリを生成する。例えば、ノードN1に対応するオブジェクトOB1を第1オブジェクトとして選択した場合、情報処理装置100は、ノードN1からのエッジが連結されたノード群のうち、ノードN1から最遠のノードであるノードN99に対応するオブジェクトOB99を第2オブジェクトとして、クエリを生成する。なお、図1の例では、説明のため、情報処理装置100は、第1オブジェクトとグラフGR11上のすべてのノードからランダムに選択したノードに対応する第2オブジェクトとの平均を算出(生成)し、その平均をクエリとする場合を示す。以下では、情報処理装置100がオブジェクトOB1を第1オブジェクトとし、ランダムに選択したオブジェクトOB43を第2オブジェクトとして、オブジェクトOB1とオブジェクトOB43との平均であるクエリQE1を対象とした処理を一例として説明する。 For example, the information processing apparatus 100 generates a query using the second object corresponding to the farthest node from the first node in the node group to which the edges from the first node of the first object are connected. For example, when the object OB1 corresponding to the node N1 is selected as the first object, the information processing apparatus 100 selects the node N99, which is the farthest node from the node N1, among the nodes to which edges from the node N1 are connected. A query is generated with the corresponding object OB99 as the second object. In the example of FIG. 1, for the sake of explanation, the information processing apparatus 100 calculates (generates) the average of the first object and the second object corresponding to the node randomly selected from all the nodes on the graph GR11. , the average of which is the query. In the following, the information processing apparatus 100 treats the object OB1 as the first object, the randomly selected object OB43 as the second object, and processes the query QE1, which is the average of the objects OB1 and OB43, as an example. .
情報処理装置100は、各クエリの正解データを取得する(ステップS13)。情報処理装置100は、各クエリを対象とした場合のk個(kは任意の数)のノードを近傍ノードとして抽出した結果を示す正解データを取得する。情報処理装置100は、正解データを生成してもよいし、情報提供装置50から取得してもよい。例えば、情報処理装置100は、グラフGR11にノードとして含まれる各オブジェクトとクエリQE1とを比較することにより、クエリQE1に対応するk個の近傍ノード(近傍オブジェクト)を示す正解データRD1を生成してもよい。なお、情報処理装置100は、近傍の正解データを用いてもよいが、この点については後述する。 The information processing apparatus 100 acquires correct data for each query (step S13). The information processing apparatus 100 acquires correct data indicating the result of extracting k (k is an arbitrary number) nodes as neighboring nodes for each query. The information processing apparatus 100 may generate correct answer data, or may acquire the correct answer data from the information providing apparatus 50 . For example, the information processing device 100 compares each object included as a node in the graph GR11 with the query QE1 to generate correct data RD1 indicating k neighboring nodes (neighboring objects) corresponding to the query QE1. good too. The information processing apparatus 100 may use nearby correct data, but this point will be described later.
図1の例では、情報処理装置100は、クエリQE1に対応する正解データRD1を取得する。正解データRD1に示すように、クエリQE1に対応する近傍正解情報は、Noが「1」である、すなわち最も近傍のノードがオブジェクトOB2に対応するノードであることを示す。また、クエリQE1に対応する正解データは、Noが「6」である、すなわち6番目に近いノード(オブジェクト)がオブジェクトOB38に対応するノードであることを示す。また、クエリQE1に対応する正解データは、Noが「k」である、すなわち最も遠いノード(最遠オブジェクト)がオブジェクトOB55に対応するノードであることを示す。 In the example of FIG. 1, the information processing apparatus 100 acquires correct data RD1 corresponding to the query QE1. As shown in the correct answer data RD1, the neighboring correct answer information corresponding to the query QE1 has a No of "1", which indicates that the closest node is the node corresponding to the object OB2. Further, the correct answer data corresponding to the query QE1 has a No of "6", which means that the sixth closest node (object) is the node corresponding to the object OB38. Also, the correct answer data corresponding to the query QE1 indicates that No is "k", that is, the farthest node (farthest object) is the node corresponding to the object OB55.
また、情報処理装置100は、各クエリを用いて検索処理を行い、検索結果を取得する(ステップS14)。情報処理装置100は、検索範囲係数「ε」の値を「0」とし、グラフGR11に含まれるすべてのエッジを利用した検索処理(「第1検索処理」ともいう)を、各クエリに対して行うことにより、各クエリの検索結果を得る。情報処理装置100は、検索範囲係数「ε」の値を「0」に設定し、各クエリを対象として、グラフGR11を用いた図10に示すような検索処理を行うことにより、各クエリの検索結果を得る。 Further, the information processing apparatus 100 performs search processing using each query and acquires search results (step S14). The information processing apparatus 100 sets the value of the search range coefficient “ε” to “0” and performs search processing (also referred to as “first search processing”) using all edges included in the graph GR11 for each query. to get search results for each query. The information processing apparatus 100 sets the value of the search range coefficient “ε” to “0” and performs the search processing as shown in FIG. 10 using the graph GR11 for each query, thereby searching each query. Get results.
ここで、検索範囲係数「ε」の概念について簡単に説明する。例えば、情報処理装置100は、クエリQE1を中心とする半径r内の第1範囲と、クエリQE1を中心とする半径r(1+ε)内の第2範囲とを用いて、グラフGR11を検索し、近傍ノードを抽出する。このように、情報処理装置100は、検索範囲係数「ε」を適用した処理により、近傍ノードを抽出する処理を行うが、検索範囲係数「ε」を用いた処理の詳細は図10において説明する。 Here, the concept of the search range coefficient "ε" will be briefly explained. For example, the information processing device 100 searches the graph GR11 using a first range within a radius r centered on the query QE1 and a second range within a radius r (1+ε) centered on the query QE1, Extract neighboring nodes. In this way, the information processing apparatus 100 performs processing for extracting neighboring nodes by applying the search range coefficient “ε”. Details of the processing using the search range coefficient “ε” will be described with reference to FIG. 10 . .
図1の例では、情報処理装置100は、検索範囲係数「ε」の値を「0」に設定し、クエリQE1を対象として、グラフGR11を用いた図10に示すような検索処理により、検索結果RS1を取得する。検索結果RS1に示すように、クエリQE1に対応する近傍正解情報は、Noが「1」である、すなわち最も近傍のノードがオブジェクトOB2に対応するノードであることを示す。また、クエリQE1に対応する検索結果は、Noが「6」である、すなわち6番目に近いノード(オブジェクト)がオブジェクトOB53に対応するノードであることを示す。また、クエリQE1に対応する検索結果は、Noが「k」である、すなわち最も遠いノード(最遠オブジェクト)がオブジェクトOB168に対応するノードであることを示す。このように、図1の例では、情報処理装置100は、検索範囲係数「ε」の値を「0」とした場合、クエリQE1を用いた検索処理では、正解データRD1に含まれるオブジェクトOB38に対応するノードが近傍ノードとして抽出できない。 In the example of FIG. 1 , the information processing apparatus 100 sets the value of the search range coefficient “ε” to “0”, and executes the search processing as shown in FIG. 10 using the graph GR11 for the query QE1. Get the result RS1. As shown in the search result RS1, the neighborhood correct information corresponding to the query QE1 has a No of "1", indicating that the nearest node is the node corresponding to the object OB2. Also, the search result corresponding to query QE1 indicates that No is "6", that is, the sixth closest node (object) is the node corresponding to object OB53. Also, the search result corresponding to query QE1 indicates that No is "k", that is, the farthest node (farthest object) is the node corresponding to object OB168. As described above, in the example of FIG. 1 , when the value of the search range coefficient “ε” is set to “0”, the information processing apparatus 100 performs the search process using the query QE1 on the object OB38 included in the correct data RD1. The corresponding node cannot be extracted as a neighbor node.
情報処理装置100は、正解データが示す正解オブジェクトのうち、クエリを用いたグラフの検索処理により検索された検索結果オブジェクトに含まれないオブジェクトを対象オブジェクトとして特定する。図1の例では、情報処理装置100は、正解データRD1と検索結果RS1とを比較し、正解データRD1に含まれる正解オブジェクトのうち、検索結果RS1に含まれないオブジェクトOB38を対象オブジェクトとして特定する。これにより、情報処理装置100は、対象オブジェクトであるオブジェクトOB38に対応するノードN38を対象ノードとして追加エッジを追加する。すなわち、情報処理装置100は、検索漏れのオブジェクトに繋がるエッジを追加エッジとして追加する。 The information processing apparatus 100 specifies, as a target object, an object that is not included in the search result objects searched by the graph search process using the query, among the correct objects indicated by the correct answer data. In the example of FIG. 1, the information processing apparatus 100 compares the correct data RD1 and the search result RS1, and identifies, among the correct objects included in the correct data RD1, an object OB38 that is not included in the search result RS1 as a target object. . Accordingly, the information processing apparatus 100 adds an additional edge with the node N38 corresponding to the object OB38, which is the target object, as the target node. That is, the information processing apparatus 100 adds an edge connected to the missing object as an additional edge.
また、情報処理装置100は、対象ノードとの間を連結するノードを選択する(ステップS15)。そして、情報処理装置100は、選択したノードと対象ノードとの間に追加エッジを追加することにより、グラフを更新する(ステップS16)。情報処理装置100は、検索結果オブジェクトからオブジェクト(選択オブジェクト)を選択し、選択した選択オブジェクトに対応するノード(選択ノード)と対象ノードとの間に追加エッジを追加する。例えば、情報処理装置100は、検索結果オブジェクトのうち、対象オブジェクトに最も近いオブジェクトを選択オブジェクトとして選択し、選択した選択オブジェクトに対応するノード(選択ノード)と対象ノードとの間に追加エッジを追加する。 The information processing apparatus 100 also selects a node that connects with the target node (step S15). The information processing apparatus 100 then updates the graph by adding additional edges between the selected node and the target node (step S16). The information processing apparatus 100 selects an object (selection object) from the search result objects and adds an additional edge between the node (selection node) corresponding to the selected selection object and the target node. For example, the information processing apparatus 100 selects an object closest to the target object from among the search result objects as a selection object, and adds an additional edge between the node (selection node) corresponding to the selected selection object and the target node. do.
図1の例では、情報処理装置100は、検索結果RS1中のオブジェクト(検索結果オブジェクト)のうち、オブジェクトOB38に最も近いオブジェクトOB1を選択オブジェクトとして選択する。そして、情報処理装置100は、オブジェクトOB1に対応するノードN1と、オブジェクトOB38に対応するノードN38との間を連結する追加エッジであるエッジE11を追加することにより、グラフGR11-2を生成する。これにより、情報処理装置100は、グラフGR11を更新する。情報処理装置100は、各クエリについて、すべての検索漏れのオブジェクトに対応するノードに対して上記の追加エッジを追加する処理を行う。なお、有向エッジの場合、情報処理装置100は、選択オブジェクトに対応する選択ノードから検索漏れのオブジェクト(対象オブジェクト)に対応する対象ノードへの有向エッジ(選択ノードを始点とし対象ノードを終点とする出力エッジ)を付与する。 In the example of FIG. 1, the information processing apparatus 100 selects the object OB1 closest to the object OB38 among the objects (search result objects) in the search result RS1 as the selected object. Then, the information processing apparatus 100 generates the graph GR11-2 by adding an additional edge E11 connecting the node N1 corresponding to the object OB1 and the node N38 corresponding to the object OB38. Accordingly, the information processing apparatus 100 updates the graph GR11. For each query, the information processing apparatus 100 performs a process of adding the above-described additional edges to nodes corresponding to all search-missing objects. In the case of a directed edge, the information processing apparatus 100 creates a directed edge (starting at the selected node and ending at the target node) from the selected node corresponding to the selected object to the target node corresponding to the missing object (target object). ) is given.
上述したように、情報処理装置100は、正解データが示す正解オブジェクトのうち、検索結果オブジェクトに含まれないオブジェクトを対象オブジェクトとして、その対象オブジェクトに対応する対象ノードに連結する追加エッジを追加する。このように、情報処理装置100は、検索漏れのオブジェクトに対応するノードに連結する追加エッジを追加することにより、適切にグラフを生成することができる。 As described above, the information processing apparatus 100 adds an additional edge connected to the target node corresponding to the target object, which is not included in the search result object among the correct objects indicated by the correct data, as the target object. In this way, the information processing apparatus 100 can appropriately generate a graph by adding additional edges that connect to nodes corresponding to objects that have not been searched.
例えば、グラフを用いた検索では検索範囲(例えばk最近傍検索でも内部的に検索範囲を用いている)を拡大係数である検索範囲係数「ε」で拡大して検索することで検索精度を高めることができる。一方で、検索範囲係数「ε」を大きくすると探索するノードが増えるので検索時間が増大する。また、理想的には検索範囲内のノードが連結範囲内で連結グラフになっていれば良い。そこで、あるクエリを用いて検索範囲係数「ε」を0(範囲の拡大なし)で検索した結果、検索漏れとなったノードと検索されたノードを接続すれば、検索範囲係数「ε」が0でも検索漏れがなく検索できるようになり、かつ、検索範囲の拡大がないので検索時間の増大を抑えることができる。そのため、上述したように、情報処理装置100は、ベースのグラフ(図1ではGR11-1)に対して多数のクエリを用いて、この処理を行うことで、グラフ(図1ではGR11)の構造を改善することができる。 For example, in a search using a graph, the search range (for example, the search range is also used internally in k-nearest neighbor search) is expanded by a search range coefficient "ε", which is an expansion coefficient, to improve search accuracy. be able to. On the other hand, if the search range coefficient "ε" is increased, the number of nodes to be searched increases, resulting in an increase in search time. Also, ideally, the nodes within the search range should form a connected graph within the connected range. Therefore, as a result of searching with a search range coefficient “ε” of 0 (no range expansion) using a certain query, if a node that was not searched and a node that was searched are connected, the search range coefficient “ε” will be 0. However, since the search can be performed without omission of search and the search range is not expanded, the increase in search time can be suppressed. Therefore, as described above, the information processing apparatus 100 performs this processing using a large number of queries for the base graph (GR11-1 in FIG. 1), thereby obtaining the structure of the graph (GR11 in FIG. 1). can be improved.
〔1-1-1.近傍正解データ〕
上述したように、正解データは、近傍の正解データ(近傍正解データ)であってもよい。例えば、情報処理装置100は、グラフGR11を用いた検索処理により、近傍正解データを生成してもよい。
[1-1-1. Nearby Correct Data]
As described above, the correct data may be neighboring correct data (neighboring correct data). For example, the information processing apparatus 100 may generate neighborhood correct data by performing a search process using the graph GR11.
例えば、精確な正解データを生成するには、すべてのオブジェクトとの距離を計算する必要があり、大規模なデータセットの場合には処理時間を要する。そのため、情報処理装置100が正解データを生成する場合、クエリに対して正解データを得る代わりに、何らかの評価対象のインデックスを用いて近傍検索結果(近傍正解データ)を事前に取得してもよい。図1の例では、情報処理装置100は、近傍検索(近傍検索)に関する種々の技術を適宜用いて、クエリQE1に対応する近傍正解データを生成する。 For example, to generate accurate correct data, it is necessary to calculate the distances to all objects, which requires processing time for large data sets. Therefore, when the information processing apparatus 100 generates correct data, instead of obtaining correct data for a query, a neighborhood search result (neighborhood correct data) may be obtained in advance using some evaluation target index. In the example of FIG. 1, the information processing apparatus 100 appropriately uses various techniques related to neighborhood search (nearby search) to generate neighborhood correct data corresponding to query QE1.
例えば、情報処理装置100は、図10に示すような処理により、クエリQE1に対応する近傍正解データを生成する。この場合、情報処理装置100は、後述する検索範囲係数「ε」の値を所定値以上大きくした値(「正解生成用値」とする)に設定して、図10に示すような検索処理(第2検索処理)を、グラフGR11を用いて行うことにより、クエリQE1に対応する近傍正解データを生成する。このように、情報処理装置100は、検索範囲係数「ε」の値が前記第1検索処理よりも大きく設定された第2検索処理により近傍正解データを生成する。これにより、情報処理装置100は、すべてのオブジェクトとの距離を計算して正解データを生成する場合に比べて、処理時間を短くすることができる。 For example, the information processing apparatus 100 generates near-correct data corresponding to the query QE1 through the process illustrated in FIG. 10 . In this case, the information processing apparatus 100 sets the value of a search range coefficient “ε” described later to a value (called “value for correct answer generation”) that is greater than a predetermined value, and performs search processing as shown in FIG. Second search processing) is performed using the graph GR11 to generate neighborhood correct data corresponding to the query QE1. In this way, the information processing apparatus 100 generates neighborhood correct data by the second search process in which the value of the search range coefficient "ε" is set larger than that of the first search process. Thereby, the information processing apparatus 100 can shorten the processing time compared to the case of calculating the distances to all the objects and generating the correct answer data.
情報処理装置100は、生成した近傍正解データを正解データとして用いて、図1の処理を行ってもよい。これにより、情報処理装置100は、処理時間の増大を抑制することができる。なお、上記は一例であり、すべてのオブジェクトとの距離を計算して正解データを生成するよりも短い処理時間で、近傍正解データを生成することができれば、情報処理装置100は、どのような処理により、近傍正解データを生成してもよい。 The information processing apparatus 100 may perform the processing of FIG. 1 using the generated neighborhood correct data as correct data. Accordingly, the information processing apparatus 100 can suppress an increase in processing time. Note that the above is just an example, and if the information processing apparatus 100 can generate neighborhood correct data in a shorter processing time than calculating distances to all objects and generating correct data, what kind of processing can be performed? may generate neighborhood correct data.
上述した係数「ε」の正解生成用値の導出の点について記載する。まず、近傍正解データと正解データとして利用する場合、検索範囲係数「ε」を所定値以上に大きくした正解生成用値に設定することが望ましいが、検索範囲係数「ε」を大きくすると処理時間が増大する。そのため、十分な精度を得られ、かつ値ができ限り小さい検索範囲係数「ε」を求める必要がある。そこで、情報処理装置100は、検索範囲係数「ε」を徐々に大きくして、検索結果に新たなオブジェクトを出現しなくなった時点の検索範囲係数「ε」の値を、正解データを得るための検索範囲係数「ε」の値とする。例えば、情報処理装置100は、検索範囲係数の値を第1値(例えば0や0.05等)から所定の間隔(例えば0.05や0.1等)で増加させ、近傍検索の結果に新たなオブジェクトが出現しなくなった時点の第2値を、近傍正解データを生成する際の検索範囲係数の値として用いる。なお、検索範囲係数「ε」の正解生成用値の導出は、近傍正解データ(正解データ)の生成前であればいずれの時点で行われてもよく、情報処理装置100以外の装置が行ってもよい。 The derivation of the correct answer generating value of the above-mentioned coefficient "ε" will be described. First, when using the neighborhood correct data and the correct data, it is desirable to set the search range coefficient "ε" to a value for generating correct answers that is greater than a predetermined value. increase. Therefore, it is necessary to obtain a search range coefficient "ε" that can obtain sufficient accuracy and that has the smallest possible value. Therefore, the information processing apparatus 100 gradually increases the search range coefficient "ε", and sets the value of the search range coefficient "ε" at the time when no new object appears in the search results as a value for obtaining correct data. It is the value of the search range coefficient "ε". For example, the information processing apparatus 100 increases the value of the search range coefficient from the first value (for example, 0, 0.05, etc.) at a predetermined interval (for example, 0.05, 0.1, etc.), and the result of the neighborhood search is The second value at the time when no new objects appear is used as the value of the search range coefficient when generating neighborhood correct data. It should be noted that the derivation of the correct answer generation value of the search range coefficient "ε" may be performed at any time before the neighborhood correct data (correct answer data) is generated. good too.
〔1-1-2.ノード自体をクエリとした場合〕
また、上述したように、情報処理装置100は、グラフGR11中にノードとして登録されているオブジェクト自体をクエリとしても用いてもよい。この場合、情報処理装置100は、処理対象となっている対象クエリ(ノード)ごとに以下の処理を行う。
[1-1-2. When the node itself is used as a query]
Further, as described above, the information processing apparatus 100 may use the object itself registered as a node in the graph GR11 as a query. In this case, the information processing apparatus 100 performs the following process for each target query (node) to be processed.
まず、情報処理装置100は、対象クエリ(ノード)ごとに接続されたエッジを削除する。例えば、情報処理装置100は、ノードN1がクエリとして用いられる処理においては、グラフG11からノードN1に接続されたエッジ(エッジE1、E2、E3)を削除する。そして、情報処理装置100は、ノードN1に接続されたエッジが削除されたグラフG11を用いて図1の処理を行う。 First, the information processing apparatus 100 deletes edges connected to each target query (node). For example, the information processing apparatus 100 deletes edges (edges E1, E2, and E3) connected to the node N1 from the graph G11 in a process using the node N1 as a query. Then, the information processing apparatus 100 performs the processing of FIG. 1 using the graph G11 from which the edge connected to the node N1 has been deleted.
そして、情報処理装置100は、ノードをクエリとして追加エッジを追加する処理が終了した後、削除したエッジをそのノードに付け戻す。情報処理装置100は、ノードN1をクエリとして追加エッジを追加する処理が終了した後、削除したエッジ(エッジE1、E2、E3)を付け戻す。情報処理装置100は、上述した処理をすべてのクエリに対して行う。このように、情報処理装置100は、すべてのクエリを対象とした処理が終了するまで、クエリごとに上述した処理を繰り返す。 Then, the information processing apparatus 100 attaches the deleted edge back to the node after completing the process of adding the additional edge using the node as a query. The information processing apparatus 100 adds back the deleted edges (edges E1, E2, and E3) after completing the process of adding additional edges using the node N1 as a query. The information processing apparatus 100 performs the above-described processing on all queries. In this manner, the information processing apparatus 100 repeats the above-described process for each query until the process for all queries is completed.
〔1-1-3.クエリの生成方法〕
上述したように、情報処理装置100は、種々の情報を適宜用いてクエリを生成してもよい。例えば、情報処理装置100は、一のノードとその一のノードに接続された近傍ノードの中で最も近い、または、最も遠いノードとの平均を算出(生成)し、その平均をクエリとしてもよい。また、情報処理装置100は、一のノードとその一のノードに接続された近傍ノードからランダムに選択したノードとの平均を算出(生成)し、その平均をクエリとしてもよい。また、図1に示すように、情報処理装置100は、一のノードとグラフ上のすべてのノードからランダムに選択したノードとの平均を算出(生成)し、その平均をクエリとしてもよい。
[1-1-3. Query generation method]
As described above, the information processing apparatus 100 may generate queries using various types of information as appropriate. For example, the information processing apparatus 100 may calculate (generate) an average between one node and the nearest or farthest node among neighboring nodes connected to the one node, and use the average as a query. . Further, the information processing apparatus 100 may calculate (generate) an average between one node and a node randomly selected from neighboring nodes connected to the one node, and use the average as a query. Further, as shown in FIG. 1, the information processing apparatus 100 may calculate (generate) an average of one node and nodes randomly selected from all nodes on the graph, and use the average as a query.
〔1-2.ツリー情報〕
上述した例では、グラフ(グラフ情報)のみを生成する場合を示したが、情報処理装置100は、生成したグラフに対応するツリー情報を生成してもよい。例えば、情報処理装置100は、ツリーに関する種々の技術を適宜用いて、生成したグラフに対応するツリー情報を生成する。例えば、情報処理装置100は、図2中の情報群GINF11に示すようなツリー情報IND11を生成してもよい。そして、情報処理装置100は、生成したツリー情報など、各種のインデックスを用いて、処理を高速化してもよい。例えば、情報処理装置100は、図2中の情報群GINF11に示すようなツリー情報IND11を用いて、検索の起点となるノード(以下「起点ノード」ともいう)を決定してもよい。図2は、実施形態に係る情報処理に用いるツリーの一例を示す図である。なお、ツリー情報IND11は、情報処理装置100が生成してもよいし、情報処理装置100は、ツリー情報IND11を情報提供装置50等の他の外部装置から取得してもよい。
[1-2. tree information]
In the example described above, only the graph (graph information) is generated, but the information processing apparatus 100 may generate tree information corresponding to the generated graph. For example, the information processing apparatus 100 appropriately uses various tree-related techniques to generate tree information corresponding to the generated graph. For example, the information processing apparatus 100 may generate tree information IND11 as indicated by information group GINF11 in FIG. Then, the information processing apparatus 100 may speed up processing by using various indexes such as the generated tree information. For example, the information processing apparatus 100 may use tree information IND11 as shown in the information group GINF11 in FIG. 2 to determine a node that serves as the starting point of the search (hereinafter also referred to as "starting node"). FIG. 2 is a diagram showing an example of a tree used for information processing according to the embodiment. The tree information IND11 may be generated by the information processing device 100, or the information processing device 100 may acquire the tree information IND11 from another external device such as the information providing device 50. FIG.
例えば、情報処理装置100は、ツリー情報IND11に基づいて、クエリQE1に対応する起点ノードを決定してもよい。情報処理装置100は、ツリー情報記憶部122(図6参照)に記憶されたツリー情報IND11を用いて、起点ノードを決定する。例えば、ツリー情報IND11は、グラフGR11中のいくつかのノードに到達可能なツリー構造を有するツリーである。図2の例では説明を簡単にするために、ツリー情報IND11は、ノードN1~N5の5個のノードに到達するルートのみを図示するが、多数(例えば500や1000等)の他のノードへ到達するルートが含まれてもよい。 For example, the information processing apparatus 100 may determine the origin node corresponding to the query QE1 based on the tree information IND11. The information processing apparatus 100 determines the starting node using the tree information IND11 stored in the tree information storage unit 122 (see FIG. 6). For example, tree information IND11 is a tree with a tree structure that can reach some nodes in graph GR11. In the example of FIG. 2, in order to simplify the explanation, the tree information IND11 shows only routes that reach five nodes N1 to N5, but there are many routes (eg, 500, 1000, etc.) to other nodes. The route to reach may be included.
例えば、情報処理装置100は、図2中のツリー情報IND11に示すような木構造型のツリー情報を用いて、グラフGR11における起点ノードを決定する。図1の例では、情報処理装置100は、クエリQE1に基づいて、ツリー情報IND11を上(ルートRT)から下へ辿ることにより、ツリー情報IND11の近傍候補となる起点ノードを決定(特定)する。これにより、情報処理装置100は、効率的に検索クエリ(クエリQE1)に対応する起点ノードを決定することができる。 For example, the information processing apparatus 100 determines the starting node in the graph GR11 using tree structure type tree information such as tree information IND11 in FIG. In the example of FIG. 1, the information processing apparatus 100 determines (identifies) the origin node that is a neighborhood candidate of the tree information IND11 by tracing the tree information IND11 from the top (root RT) to the bottom based on the query QE1. . Thereby, the information processing apparatus 100 can efficiently determine the origin node corresponding to the search query (query QE1).
例えば、情報処理装置100は、ツリー情報IND11をルートRTからリーフノード(グラフGR11中のノード)まで辿ることにより、クエリQE1に対応する起点ノードを決定してもよい。例えば、情報処理装置100は、木構造に関する種々の従来技術を適宜用いて、ツリー情報IND11をルートRTからリーフノードまで辿ることにより、辿りついたリーフノードを起点ノードとして決定してもよい。例えば、情報処理装置100は、クエリQE1との類似度に基づいて、ツリー情報IND11を下へ辿ることにより、起点ノードを決定してもよい。例えば、情報処理装置100は、ルートRTから節点VT1、VT2等のいずれの節点に辿るかを、クエリQE1と節点VT1、VT2との類似度に基づいて決定してもよい。例えば、情報処理装置100は、ルートRTから節点VT1、VT2等のうち、クエリQE1との類似度が最も高い節点VT2へ辿ると決定してもよい。また、例えば、情報処理装置100は、節点VT2から節点VT2-1~VT2-4等のうち、クエリQE1との類似度が最も高い節点VT2-2へ辿ると決定してもよい。 For example, the information processing apparatus 100 may determine the origin node corresponding to the query QE1 by tracing the tree information IND11 from the root RT to leaf nodes (nodes in the graph GR11). For example, the information processing apparatus 100 may determine the reached leaf node as the origin node by tracing the tree information IND11 from the root RT to the leaf node using various conventional techniques related to the tree structure. For example, the information processing apparatus 100 may determine the starting node by tracing the tree information IND11 downward based on the degree of similarity with the query QE1. For example, the information processing apparatus 100 may determine which of the nodes VT1, VT2, etc. is to be traced from the root RT based on the degree of similarity between the query QE1 and the nodes VT1, VT2. For example, the information processing apparatus 100 may determine to trace from the root RT to the node VT2 having the highest similarity with the query QE1 among the nodes VT1, VT2, and the like. Further, for example, the information processing apparatus 100 may determine to trace from the node VT2 to the node VT2-2 having the highest degree of similarity with the query QE1 among the nodes VT2-1 to VT2-4.
図2の例に示すツリー情報(ツリーデータ)は一例であり、情報処理装置100は、種々のツリー情報を用いて、グラフ情報を検索してもよい。情報処理装置100は、検索時の起点ノードの決定に用いるツリーを生成してもよい。なお、ツリーを用いることは一例であり、情報処理装置100は、検索時の起点ノードの決定の高速化が可能であれば、ツリーに限らず種々の情報を用いてもよい。例えば、情報処理装置100は、高次元ベクトルを高速に検索するための検索ツリー(ツリー情報)を生成する。ここでいう高次元ベクトルとは、例えば、数百次元から数千次元のベクトルであってもよいし、それ以上の次元のベクトルであってもよい。 The tree information (tree data) illustrated in the example of FIG. 2 is an example, and the information processing apparatus 100 may search for graph information using various types of tree information. The information processing apparatus 100 may generate a tree that is used to determine the starting node at the time of searching. Note that the use of a tree is merely an example, and the information processing apparatus 100 may use various types of information other than the tree as long as it is possible to speed up the determination of the starting node at the time of searching. For example, the information processing apparatus 100 generates a search tree (tree information) for searching high-dimensional vectors at high speed. The high-dimensional vector referred to here may be, for example, a vector with several hundred to several thousand dimensions, or a vector with more dimensions.
例えば、情報処理装置100は、図2に示すようなツリー構造(木構造)に関するツリー情報IND11を生成してもよい。例えば、情報処理装置100は、kd木(k-dimensional tree)に関する検索ツリーを生成してもよい。例えば、情報処理装置100は、VP木(Vantage-Point tree)に関する検索ツリーを生成してもよい。 For example, the information processing apparatus 100 may generate tree information IND11 regarding a tree structure (tree structure) as shown in FIG. For example, the information processing apparatus 100 may generate a search tree for a kd-tree (k-dimensional tree). For example, the information processing apparatus 100 may generate a search tree related to a VP tree (Vantage-Point tree).
また、例えば、情報処理装置100は、その他の木構造を有するツリーを生成してもよい。例えば、情報処理装置100は、木構造のツリーのリーフがグラフに接続する種々のツリーを生成してもよい。例えば、情報処理装置100は、木構造のツリーのリーフがグラフ中のノードに対応する種々のツリーを生成してもよい。また、情報処理装置100は、このようなツリーを用いて検索を行う場合、ツリーを辿って到達したリーフ(ノード)からグラフを探索してもよい。 Also, for example, the information processing apparatus 100 may generate a tree having another tree structure. For example, the information processing apparatus 100 may generate various trees in which leaves of a tree structure are connected to a graph. For example, the information processing apparatus 100 may generate various trees in which the leaves of the trees in the tree structure correspond to the nodes in the graph. Further, when performing a search using such a tree, the information processing apparatus 100 may search the graph from leaves (nodes) reached by following the tree.
なお、上述したようなツリーは一例であり、情報処理装置100は、グラフ中のクエリを高速に特定することが可能であれば、どのようなデータ構造のツリーを生成してもよい。例えば、情報処理装置100は、クエリに対応するグラフ情報中のノードを高速に特定することが可能であれば、バイナリ空間分割に関する技術等の種々の従来技術を適宜用いて、ツリーを生成してもよい。例えば、情報処理装置100は、高次元ベクトルの検索に対応可能なツリーであれば、どのようなデータ構造のツリーを生成してもよい。情報処理装置100は、上述のようなツリーとグラフとを用いることにより、所定の対象に関してより効率的な検索を可能にすることができる。すなわち、情報処理装置100は、上述のようなツリーとグラフとを用いることにより、所定の対象に関してより高速な検索を可能にすることができる。 Note that the tree as described above is merely an example, and the information processing apparatus 100 may generate a tree with any data structure as long as the query in the graph can be identified at high speed. For example, the information processing apparatus 100 can generate a tree by appropriately using various conventional techniques such as a technique related to binary space division, as long as the node in the graph information corresponding to the query can be identified at high speed. good too. For example, the information processing apparatus 100 may generate a tree with any data structure as long as the tree can support high-dimensional vector searches. The information processing apparatus 100 can perform a more efficient search for a predetermined target by using the tree and graph as described above. That is, the information processing apparatus 100 can perform a faster search for a predetermined target by using the tree and graph as described above.
〔2.情報処理システムの構成〕
次に、図3を用いて、実施形態に係る情報処理システム1の構成について説明する。図3は、実施形態に係る情報処理システムの構成例を示す図である。図3に示すように、情報処理システム1には、端末装置10と、情報提供装置50と、情報処理装置100とが含まれる。端末装置10と、情報提供装置50と、情報処理装置100とは所定のネットワークNを介して、有線または無線により通信可能に接続される。なお、図3に示した情報処理システム1には、複数台の端末装置10や、複数台の情報提供装置50や、複数台の情報処理装置100が含まれてもよい。
[2. Configuration of information processing system]
Next, the configuration of 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 a user. The terminal device 10 accepts various operations by the user. In addition, below, the terminal device 10 may be described as a user. That is, hereinafter, the user can also be read as the terminal device 10 . The terminal device 10 described above is implemented by, for example, a smart phone, 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 that stores information for providing various information to users and the like. For example, the information providing device 50 stores object IDs based on character information and the like collected from various external devices such as web servers. For example, the information providing device 50 is an information processing device that provides an image search service to a user or the like. For example, the information providing device 50 stores each information for providing an image search service. For example, the information providing device 50 provides the information processing device 100 with vector information corresponding to images for which an image search service is to be performed. Further, by transmitting a query to the information processing device 100 , the information providing device 50 receives an object ID or the like indicating an image corresponding to the query from the information processing device 100 .
情報処理装置100は、複数のオブジェクトの各々に対応するノードが近傍ノードにエッジで連結されるグラフを生成する生成装置である。また、情報処理装置100は、複数のオブジェクトを対象とし、生成中のグラフを用いた検索処理を含むグラフの生成処理時において、基準値に基づき前記グラフの生成に用いるパラメータの値を調整する調整処理により、パラメータの値を決定する決定装置である。 The information processing device 100 is a generation device that generates a graph in which nodes corresponding to each of a plurality of objects are connected to neighboring nodes by edges. Further, the information processing apparatus 100 targets a plurality of objects and adjusts the values of the parameters used for generating the graph based on the reference value at the time of the graph generation processing including the search processing using the graph being generated. A decision device for determining a value of a parameter by processing.
情報処理装置100は、クエリに類似するオブジェクトを抽出する検索装置である。例えば、情報処理装置100は、端末装置10からクエリ情報(クエリ)を受信すると、クエリに類似する対象(ベクトル情報等)を検索し、検索結果を端末装置10に提供する。また、例えば、情報処理装置100が端末装置10に提供するデータは、画像情報等のデータ自体であってもよいし、URL(Uniform Resource Locator)等の対応するデータを参照するための情報であってもよい。また、クエリや検索対象のデータは、画像、音声、テキストデータなど、如何なる種類のデータであってもよい。本実施形態において、情報処理装置100が画像を検索する場合を一例として説明する。 The information processing device 100 is a search device that extracts objects similar to a query. For example, upon receiving query information (query) from the terminal device 10 , the information processing device 100 searches for objects (eg, vector information) similar to the query, and provides the terminal device 10 with search results. Further, for example, the data provided by the information processing device 100 to the terminal device 10 may be data itself such as image information, or information for referring to corresponding data such as a URL (Uniform Resource Locator). may Data to be searched or queried may be any type of data such as image, voice, and text data. In this embodiment, a case where the information processing apparatus 100 searches for images will be described as an example.
〔3.情報処理装置の構成〕
次に、図4を用いて、実施形態に係る情報処理装置100の構成について説明する。図4は、実施形態に係る情報処理装置100の構成例を示す図である。図4に示すように、情報処理装置100は、通信部110と、記憶部120と、制御部130とを有する。なお、情報処理装置100は、情報処理装置100の管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(例えば、液晶ディスプレイ等)を有してもよい。
[3. Configuration of Information Processing Device]
Next, the configuration of the information processing apparatus 100 according to the embodiment will be described using FIG. FIG. 4 is a diagram illustrating a configuration example of the information processing apparatus 100 according to the embodiment. As shown in FIG. 4, the information processing apparatus 100 has a communication section 110, a storage section 120, and a control section . The information processing apparatus 100 includes an input unit (for example, a keyboard, a mouse, etc.) that receives various operations from an administrator of the information processing apparatus 100, and a display unit (for example, a liquid crystal display, etc.) for displaying various information. may have.
(通信部110)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部110は、ネットワーク(例えば図3中のネットワークN)と有線または無線で接続され、端末装置10や情報提供装置50との間で情報の送受信を行う。
(Communication unit 110)
The communication unit 110 is realized by, for example, a NIC (Network Interface Card) or the like. The communication unit 110 is connected to a network (for example, network N in FIG. 3) by wire or wirelessly, and transmits and receives information to and from the terminal device 10 and the information providing device 50 .
(記憶部120)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。実施形態に係る記憶部120は、図4に示すように、オブジェクト情報記憶部121と、ツリー情報記憶部122と、グラフ情報記憶部123と、正解データ記憶部124とを有する。
(storage unit 120)
The storage unit 120 is realized by, for example, a semiconductor memory device such as a RAM (Random Access Memory) or a flash memory, or a storage device such as a hard disk or an optical disk. The storage unit 120 according to the embodiment has an object
(オブジェクト情報記憶部121)
実施形態に係るオブジェクト情報記憶部121は、オブジェクトに関する各種情報を記憶する。例えば、オブジェクト情報記憶部121は、データセットごとにオブジェクトIDやベクトルデータを記憶する。図5は、実施形態に係るオブジェクト情報記憶部の一例を示す図である。図5に示すオブジェクト情報記憶部121には、「データセットID」、「オブジェクトID」、「ベクトル情報」といった項目が含まれる。
(Object information storage unit 121)
The object
「データセットID」は、データセットを識別するための識別情報を示す。「オブジェクトID」は、オブジェクトを識別するための識別情報を示す。また、「ベクトル情報」は、オブジェクトIDにより識別されるオブジェクトに対応するベクトル情報を示す。すなわち、図5の例では、オブジェクトを識別するオブジェクトIDに対して、オブジェクトに対応するベクトルデータ(ベクトル情報)が対応付けられて登録されている。 "Dataset ID" indicates identification information for identifying a data set. "Object ID" indicates identification information for identifying an object. "Vector information" indicates vector information corresponding to the object identified by the object ID. That is, in the example of FIG. 5, vector data (vector information) corresponding to an object is registered in association with an object ID that identifies the object.
図5の例では、データセットID「DS1」により識別されるデータセット(データセットDS1)には、オブジェクトID「OB1」、「OB2」、「OB3」等により識別される複数のオブジェクト(対象)が含まれることを示す。オブジェクトID「OB1」により識別されるオブジェクト(オブジェクトOB1)は、「10,24,54,2...」の多次元のベクトル情報が対応付けられることを示す。また、オブジェクトID「OB2」により識別されるオブジェクト(オブジェクトOB2)は、「32,1,120,31...」の多次元のベクトル情報が対応付けられることを示す。 In the example of FIG. 5, the data set (data set DS1) identified by the data set ID "DS1" includes a plurality of objects (objects) identified by the object IDs "OB1", "OB2", "OB3", etc. is included. The object (object OB1) identified by the object ID "OB1" is associated with multidimensional vector information "10, 24, 54, 2...". The object (object OB2) identified by the object ID "OB2" is associated with multidimensional vector information "32, 1, 120, 31...".
なお、オブジェクト情報記憶部121は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
It should be noted that the object
(ツリー情報記憶部122)
実施形態に係るツリー情報記憶部122は、ツリーに関する各種情報を記憶する。図6は、実施形態に係るツリー情報記憶部の一例を示す図である。具体的には、図6の例では、ツリー情報記憶部122は、ツリー構造のツリー情報を示す。図6の例では、ツリー情報記憶部122には、「ルート階層」、「第1階層」、「第2階層」、「第3階層」等といった項目が含まれる。なお、「第1階層」~「第3階層」に限らず、ツリーの階層数に応じて、「第4階層」、「第5階層」、「第6階層」等が含まれてもよい。
(Tree information storage unit 122)
The tree
「ルート階層」は、ツリーを用いた起点ノードの決定の開始点となるルート(最上位)の階層を示す。「第1階層」は、ツリーの第1階層に属するノード(節点またはグラフ情報中のベクトル)を識別(特定)する情報が格納される。「第1階層」に格納されるノードは、ツリーの根(ルート)に直接結ばれる階層に対応するノードとなる。 The “root hierarchy” indicates the root (top) hierarchy that is the starting point for determining the origin node using the tree. "First layer" stores information for identifying (specifying) a node (node or vector in graph information) belonging to the first layer of the tree. A node stored in the "first layer" is a node corresponding to a layer directly connected to the root of the tree.
「第2階層」は、ツリーの第2階層に属するノード(節点またはグラフ情報中のベクトル)を識別(特定)する情報が格納される。「第2階層」に格納されるノードは、第1階層のノードに結ばれる直下の階層に対応するノードとなる。「第3階層」は、ツリーの第3階層に属するノード(節点またはグラフ情報中のベクトル)を識別(特定)する情報が格納される。「第3階層」に格納されるノードは、第2階層のノードに結ばれる直下の階層に対応するノードとなる。 "Second layer" stores information that identifies (specifies) a node (node or vector in graph information) belonging to the second layer of the tree. A node stored in the "second layer" is a node corresponding to the immediately lower layer connected to a node in the first layer. "Third layer" stores information for identifying (specifying) a node (node or vector in graph information) belonging to the third layer of the tree. A node stored in the "third layer" is a node corresponding to the immediately lower layer linked to a node in the second layer.
図6に示す例においては、ツリー情報記憶部122には、図1中のツリー情報IND11に対応する情報が記憶される。例えば、ツリー情報記憶部122は、第1階層のノードが、節点VT1~VT3等であることを示す。また、各節点の下の括弧内の数値は、各節点に対応するベクトルの値を示す。
In the example shown in FIG. 6, the tree
また、ツリー情報記憶部122は、節点VT2の直下の第2階層のノードが、節点VT2-1~VT2-4であることを示す。また、ツリー情報記憶部122は、節点VT2-1の直下の第3階層のノードが、ノードN1、ノードN2のグラフGR11中のノード(ベクトル)であることを示す。ツリー情報記憶部122は、節点VT2-2の直下の第3階層のノードが、ノードN3、ノードN4、ノードN5のグラフGR11中のノード(ベクトル)であることを示す。
Also, the tree
なお、ツリー情報記憶部122は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
Note that the tree
(グラフ情報記憶部123)
実施形態に係るグラフ情報記憶部123は、グラフに関する各種情報を記憶する。例えば、グラフ情報記憶部123は、検索処理等の情報処理に用いられるグラフ情報を記憶する。図7の例では、グラフ情報記憶部123は、近傍グラフデータを記憶する。図7は、実施形態に係るグラフ情報記憶部の一例を示す図である。図7に示すグラフ情報記憶部123は、「ノードID」、「オブジェクトID」、および「エッジ情報」といった項目を有する。また、「エッジ情報」には、「エッジID」や「参照先」といった情報が含まれる。
(Graph information storage unit 123)
The graph
「ノードID」は、グラフデータにおける各ノード(対象)を識別するための識別情報を示す。また、「オブジェクトID」は、オブジェクトを識別するための識別情報を示す。 “Node ID” indicates identification information for identifying each node (object) in graph data. "Object ID" indicates identification information for identifying an object.
また、「エッジ情報」は、対応するノードに接続されるエッジに関する情報を示す。図7の例では、「エッジ情報」は、対応するノードに連結される無向エッジ(双方向エッジ)に関する情報を示す。また、「エッジID」は、ノード間を連結するエッジを識別するための識別情報を示す。また、「参照先」は、エッジにより連結された参照先(ノード)を示す情報を示す。すなわち、図7の例では、ノードを識別するノードIDに対して、そのノードに対応するオブジェクト(対象)を識別する情報やそのノードからのエッジが連結される参照先(ノード)が対応付けられて登録されている。 "Edge information" indicates information about edges connected to the corresponding node. In the example of FIG. 7, "edge information" indicates information about undirected edges (bidirectional edges) connected to the corresponding node. "Edge ID" indicates identification information for identifying an edge connecting nodes. "Reference destination" indicates information indicating a reference destination (node) connected by an edge. That is, in the example of FIG. 7, a node ID identifying a node is associated with information identifying an object (target) corresponding to the node and a reference destination (node) to which an edge from the node is connected. registered with
図7の例では、ノードID「N1」により識別されるノード(ノードN1)は、オブジェクトID「OB1」により識別されるオブジェクト(対象)に対応することを示す。また、ノードN1からは、エッジID「E1」により識別されるエッジ(エッジE1)が、ノードID「N2」により識別されるノード(ノードN2)に連結されることを示す。すなわち、図7の例では、グラフ情報におけるノードN1からはエッジE1によりノードN2へ辿ることができることを示す。また、ノードN1からは、エッジID「E2」により識別されるエッジ(エッジE2)が、ノードID「N53」により識別されるノード(ノードN53)に連結されることを示す。すなわち、図7の例では、グラフ情報におけるノードN1からはエッジE2によりノードN53へ辿ることができることを示す。 The example of FIG. 7 indicates that the node (node N1) identified by the node ID "N1" corresponds to the object (target) identified by the object ID "OB1". Further, from node N1, an edge (edge E1) identified by edge ID "E1" is connected to a node (node N2) identified by node ID "N2". That is, the example of FIG. 7 indicates that the node N2 can be traced from the node N1 in the graph information by the edge E1. Also, from node N1, an edge (edge E2) identified by edge ID "E2" is connected to a node (node N53) identified by node ID "N53". That is, the example of FIG. 7 indicates that the node N53 can be traced from the node N1 in the graph information through the edge E2.
また、図7の例では、ノードID「N2」により識別されるノード(ノードN2)は、オブジェクトID「OB2」により識別されるオブジェクト(対象)に対応することを示す。また、ノードN2からは、エッジID「E1」により識別されるエッジ(エッジE1)が、ノードID「N1」により識別されるノード(ノードN1)に連結されることを示す。すなわち、図7の例では、グラフ情報におけるノードN2からはエッジE1によりノードN1へ辿ることができることを示す。 Also, the example of FIG. 7 indicates that the node (node N2) identified by the node ID "N2" corresponds to the object (target) identified by the object ID "OB2". Further, from the node N2, the edge (edge E1) identified by the edge ID "E1" is connected to the node (node N1) identified by the node ID "N1". That is, the example of FIG. 7 indicates that the node N1 can be traced from the node N2 by the edge E1 in the graph information.
なお、グラフ情報記憶部123は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、グラフ情報記憶部123は、各ノード(ベクトル)間を連結するエッジの長さが記憶されてもよい。すなわち、グラフ情報記憶部123は、各ノード(ベクトル)間の距離を示す情報が記憶されてもよい。グラフ情報記憶部123には、無向エッジにより連結されたグラフ情報に限らず、種々のグラフ情報が記憶されてもよい。グラフ情報記憶部123には、有向エッジにより連結されたグラフ情報が記憶されてもよい。
It should be noted that the graph
(正解データ記憶部124)
実施形態に係る正解データ記憶部124は、正解データに関する各種情報を記憶する。正解データ記憶部124は、各クエリを用いた場合の検索処理の精度を測定するために用いる正解データを記憶する。例えば、正解データ記憶部124は、各クエリに対応付けてそのクエリのk個の近傍ノードを正解オブジェクトとして記憶する。図8は、実施形態に係る閾値記憶部の一例を示す図である。図8に示す正解データ記憶部124は、「クエリID」、「ベクトル情報」、「正解オブジェクト」といった項目を有する。また、「正解オブジェクト」には、「No」や「オブジェクト」といった項目が含まれる。
(Correct answer data storage unit 124)
The correct
「クエリID」は、クエリを識別するための識別情報を示す。例えば、「クエリID」は、評価用クエリを識別するための識別情報を示す。また、「ベクトル情報」は、対応するクエリのベクトル情報を示す。「正解オブジェクト」は、対応するクエリの正解データとして用いる正解オブジェクトが記憶される。「No」は、対応するクエリの各近傍ノードの順位を示す。「オブジェクト」は、対応する順位の近傍ノード(オブジェクト)を示す。 “Query ID” indicates identification information for identifying a query. For example, "query ID" indicates identification information for identifying an evaluation query. "Vector information" indicates vector information of the corresponding query. The "correct answer object" stores a correct answer object used as correct answer data for the corresponding query. "No" indicates the rank of each neighboring node of the corresponding query. "Object" indicates a neighboring node (object) of corresponding rank.
図8の例では、クエリID「QE1」により識別されるクエリ(クエリQE1)は、「7,35,13,93...」の多次元のベクトル情報であることを示す。クエリQE1に対応する正解データは、Noが「1」である、すなわち最も近傍のノードがオブジェクトOB2に対応するノードであることを示す。また、クエリQE1に対応する正解データは、Noが「6」である、すなわち6番目に近いノード(オブジェクト)がオブジェクトOB38に対応するノードであることを示す。また、クエリQE1に対応する正解データは、Noが「k」である、すなわち最も遠いノード(最遠オブジェクト)がオブジェクトOB55に対応するノードであることを示す。 The example of FIG. 8 indicates that the query (query QE1) identified by the query ID "QE1" is multidimensional vector information of "7, 35, 13, 93...". The correct answer data corresponding to the query QE1 has No of "1", which means that the nearest node is the node corresponding to the object OB2. Further, the correct answer data corresponding to the query QE1 has a No of "6", which means that the sixth closest node (object) is the node corresponding to the object OB38. Also, the correct answer data corresponding to the query QE1 indicates that No is "k", that is, the farthest node (farthest object) is the node corresponding to the object OB55.
なお、正解データ記憶部124は、上記に限らず、目的に応じて種々の情報を記憶してもよい。正解データ記憶部124は、複数のグラフ情報を使い分ける場合、閾値に、その閾値が用いられるグラフ情報を対応付けて記憶してもよい。例えば、正解データ記憶部124は、グラフGR11以外のグラフ情報が用いられる場合、各閾値が用いられるグラフ情報と、対応する閾値とを対応付けて記憶してもよい。また、正解データ記憶部124は、上述した近傍正解データを記憶してもよい。
Note that the correct
(制御部130)
図4の説明に戻って、制御部130は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、情報処理装置100内部の記憶装置に記憶されている各種プログラム(情報処理プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部130は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
(control unit 130)
Returning to the description of FIG. 4, the control unit 130 is a controller, and is stored in a storage device inside the information processing apparatus 100 by, for example, a CPU (Central Processing Unit) or MPU (Micro Processing Unit). Various programs (corresponding to an example of an information processing program) are executed by using the RAM as a work area. Also, the control unit 130 is a controller, and is implemented by an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).
図4に示すように、制御部130は、取得部131と、生成部132と、選択部133と、更新部134と、提供部135とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、図4に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
As shown in FIG. 4, the control unit 130 includes an
(取得部131)
取得部131は、各種情報を取得する。取得部131は、記憶部120から各種情報を取得する。取得部131は、オブジェクト情報記憶部121や、ツリー情報記憶部122や、グラフ情報記憶部123や、正解データ記憶部124等から各種情報を取得する。また、取得部131は、各種情報を外部の情報処理装置から取得する。取得部131は、端末装置10等の外部装置から各種情報を取得する。取得部131は、グラフ情報記憶部123からグラフ情報を取得する。取得部131は、ツリー情報記憶部122からツリー情報を取得する。
(Acquisition unit 131)
取得部131は、複数のオブジェクトのうち、複数のオブジェクトの各々に対応する複数のノードがエッジで連結されたグラフの検索に用いるクエリに近い正解オブジェクトを示す正解データを取得する。取得部131は、検索処理である第1検索処理とは異なる第2検索処理により検索された正解オブジェクトを示す正解データを取得する。
The acquiring
取得部131は、探索範囲を決定するための係数である検索範囲係数の値が第1検索処理よりも大きく設定された第2検索処理により検索された正解オブジェクトを示す正解データを取得する。取得部131は、クエリと、複数のオブジェクトの各々との比較により検索された正解オブジェクトを示す正解データを取得する。
The
取得部131は、検索クエリに関する情報を取得する。取得部131は、画像検索に関する検索クエリを取得する。取得部131は、ユーザが利用する端末装置10からクエリを取得する。取得部131は、端末装置10からクエリを受け付けた情報提供装置50からクエリを取得してもよい。
図1の例では、取得部131は、グラフ情報記憶部123からグラフGR11を取得する。取得部131は、ノードN1、N2、N3、N38、N43、N53、N99等やエッジE1~E3等を含むグラフGR11-1を取得する。取得部131は、ツリー情報記憶部122からツリー情報IND11を取得する。
In the example of FIG. 1 , the
(生成部132)
生成部132は、各種情報を生成する。生成部132は、記憶部120に記憶された各種情報に基づいて、種々の情報を生成する。生成部132は、オブジェクト情報記憶部121や、ツリー情報記憶部122や、グラフ情報記憶部123や、正解データ記憶部124等に基づいて、各種情報を生成する。
(Generating unit 132)
The
生成部132は、取得部131により取得された各種情報に基づいて、種々の情報を生成する。生成部132は、選択部133により選択された各種情報に基づいて、種々の情報を生成する。生成部132は、更新部134により更新された各種情報に基づいて、種々の情報を生成する。生成部132は、グラフ情報を生成してもよい。
The
生成部132は、複数のオブジェクトから選択されたオブジェクトに基づいてクエリを生成する。生成部132は、複数のオブジェクトから選択されたオブジェクト群を用いてクエリを生成する。生成部132は、複数のオブジェクトから選択されたオブジェクト群の平均を算出することにより、クエリを生成する。
The
生成部132は、複数のオブジェクトから選択された第1オブジェクトと、複数のオブジェクトのうち、第1オブジェクトとは異なる第2オブジェクトと用いて、クエリを生成する。生成部132は、グラフにおいて第1オブジェクトに対応する第1ノードからのエッジが連結されたノードに対応する第2オブジェクト用いて、クエリを生成する。生成部132は、第1ノードからのエッジが連結されたノード群のうち、第1ノードから最遠のノードまたは最近のノードに対応する第2オブジェクト用いて、クエリを生成する。生成部132は、第1ノードからのエッジが連結されたノード群からランダムに選択されたノードに対応する第2オブジェクト用いて、クエリを生成する。
The generating
生成部132は、複数のクエリを生成する。生成部132は、グラフGR11中にノードとして登録されているオブジェクトを基にクエリを生成してもよい。生成部132は、グラフGR11にノードとして含まれる各オブジェクトとクエリQE1とを比較することにより、クエリQE1に対応するk個の近傍ノード(オブジェクト)を示す正解データRD1を生成する。生成部132は、近傍正解データを正解データとして生成する。
The generating
(選択部133)
選択部133は、各種情報を選択する。選択部133は、各種情報を決定する。選択部133は、各種情報を判定する。選択部133は、記憶部120に記憶された各種情報に基づいて、種々の情報を選択する。
(Selection unit 133)
The
選択部133は、取得部131により取得された各種情報に基づいて、種々の情報を選択する。選択部133は、取得部131により取得された各種情報に基づいて、種々の情報を判定する。選択部133は、更新部134により更新された各種情報に基づいて、種々の情報を選択する。
The
選択部133は、所定の基準に基づいて、検索結果オブジェクトから選択オブジェクトを選択する。選択部133は、検索結果オブジェクトのうち、対象オブジェクトに最も近いオブジェクトを選択オブジェクトとして選択する。
The
選択部133は、検索結果RS1中のオブジェクト(検索結果オブジェクト)のうち、オブジェクトOB38に最も近いオブジェクトOB1を選択オブジェクトとして選択する。
The
(更新部134)
更新部134は、各種情報を更新する。更新部134は、記憶部120に記憶された各種情報に基づいて、種々の情報を更新する。更新部134は、グラフ情報記憶部123に記憶されたグラフを更新する。
(Update unit 134)
The updating
更新部134は、検索クエリに類似するノードである類似ノードを抽出する。更新部134は、グラフを用いた検索処理を実行する検索部としても機能する。
The updating
更新部134は、正解データが示す正解オブジェクトのうち、クエリを用いたグラフの検索処理により検索された検索結果オブジェクトに含まれない対象オブジェクトに対応する対象ノードに連結する追加エッジを追加することにより、グラフを更新する。更新部134は、生成部132により生成されたクエリを用いた検索処理を実行する。更新部134は、第1ノードから他のノードへのエッジを削除したグラフを用いた検索処理を実行する。
The
更新部134は、検索結果オブジェクトから選択される選択オブジェクトに対応するノードである選択ノードと、対象ノードとの間を連結する追加エッジを追加する。更新部134は、検索範囲係数が第2検索処理よりも小さい値に設定された第1検索処理により検索された検索結果オブジェクトに含まれない対象オブジェクトに対応する対象ノードに連結する追加エッジを追加する。更新部134は、検索範囲係数の値が0に設定された第1検索処理により検索された検索結果オブジェクトに含まれない対象オブジェクトに対応する対象ノードに連結する追加エッジを追加する。
The updating
更新部134は、オブジェクトOB1に対応するノードN1と、オブジェクトOB38に対応するノードN38との間を連結する追加エッジであるエッジE11を追加することにより、グラフGR11-2を生成する。
The
(提供部135)
提供部135は、各種情報を提供する。提供部135は、端末装置10や情報提供装置50に各種情報を提供する。提供部135は、端末装置10や情報提供装置50に各種情報を送信する。
(Providing unit 135)
The providing unit 135 provides various information. The providing unit 135 provides various types of information to the terminal device 10 and the information providing device 50 . The providing unit 135 transmits various types of information to the terminal device 10 and the information providing device 50 .
提供部135は、クエリに対応するオブジェクトIDを検索結果として提供する。提供部135は、選択部133により決定された類似ノードに関する情報を提供する。提供部135は、選択部133により決定された類似ノードを示すオブジェクトIDを端末装置10や情報提供装置50へ提供する。
The providing unit 135 provides the object ID corresponding to the query as a search result. The providing unit 135 provides information on similar nodes determined by the selecting
提供部135は、更新部134により抽出された類似ノードに関する情報を提供する。提供部135は、類似ノードに関する情報を所定のユーザが利用する端末装置10に送信する。提供部135は、クエリの送信元へ検索結果を提供する。
The providing unit 135 provides information on similar nodes extracted by the updating
〔4.情報処理のフロー〕
次に、図9を用いて、実施形態に係る情報処理システム1による情報処理の手順について説明する。図9は、実施形態に係る情報処理の一例を示すフローチャートである。
[4. Information processing flow]
Next, the procedure of information processing by the
図9に示すように、情報処理装置100は、複数のオブジェクトのうち、複数のオブジェクトの各々に対応する複数のノードがエッジで連結されたグラフの検索に用いるクエリに近い正解オブジェクトを示す正解データを取得する(ステップS101)。例えば、情報処理装置100は、正解データ記憶部124(図8参照)から、正解データRD1を取得する。 As shown in FIG. 9, the information processing apparatus 100 collects correct data indicating correct objects close to a query used for searching a graph in which a plurality of nodes corresponding to each of the plurality of objects are connected by edges, out of the plurality of objects. (step S101). For example, the information processing apparatus 100 acquires correct data RD1 from the correct data storage unit 124 (see FIG. 8).
そして、情報処理装置100は、正解データが示す正解オブジェクトのうち、クエリを用いたグラフの検索処理により検索されたオブジェクトに含まれない対象オブジェクトに対応する対象ノードに連結する追加エッジを追加する(ステップS102)。例えば、情報処理装置100は、正解データRD1のうち、検索処理により検索されたオブジェクトに含まれない対象オブジェクトOB38に対応する対象ノードN38に連結する追加エッジE11を追加する。 Then, the information processing apparatus 100 adds an additional edge connected to the target node corresponding to the target object not included in the objects retrieved by the graph retrieval process using the query among the correct objects indicated by the correct data ( step S102). For example, the information processing apparatus 100 adds an additional edge E11 connected to the target node N38 corresponding to the target object OB38, which is not included in the objects searched by the search processing, from the correct data RD1.
〔5.検索処理のフロー〕
次に、情報処理装置100による検索処理のフローについて、図10を一例として説明する。図10は、実施形態に係る検索処理の一例を示すフローチャートである。具体的には、図10は、グラフデータを用いた検索処理の一例を示すフローチャートである。なお、図10に示す検索処理には、選択処理も含まれる。以下に説明する検索処理は、情報処理装置100によって行われる。また、以下でいうオブジェクトは、ノードと読み替えてもよい。なお、情報処理装置100によるグラフデータを用いた検索は下記に限らず、種々の手順により行われてもよい。
[5. Flow of search processing]
Next, the flow of search processing by the information processing apparatus 100 will be described with reference to FIG. 10 as an example. FIG. 10 is a flowchart illustrating an example of search processing according to the embodiment. Specifically, FIG. 10 is a flowchart showing an example of search processing using graph data. Note that the search processing shown in FIG. 10 also includes selection processing. The search processing described below is performed by the information processing apparatus 100 . Also, the object referred to below may be read as a node. Note that the search using the graph data by the information processing apparatus 100 is not limited to the following, and may be performed by various procedures.
ここでは、近傍集合N(G,y)は、ノードyに付与されているエッジにより関連付けられている近傍のオブジェクトの集合である。例えば、近傍集合N(G,y)は、ノードyとの間にエッジが連結されたオブジェクト(ノード)の集合である。また、グラフのノード間が有向エッジで連結される場合、近傍集合N(G,y)は、ノードyからの出力エッジが連結されたオブジェクト(ノード)の集合である。「G」は、所定のグラフデータ(例えば、グラフGR11等)であってもよい。例えば、情報処理装置100は、k近傍検索処理を実行する。 Here, the neighborhood set N(G,y) is the set of neighborhood objects that are related by the edges attached to node y. For example, a neighborhood set N(G, y) is a set of objects (nodes) to which edges are connected with node y. Also, when the nodes of the graph are connected by directed edges, the neighborhood set N(G, y) is a set of objects (nodes) to which output edges from node y are connected. "G" may be predetermined graph data (for example, graph GR11, etc.). For example, the information processing apparatus 100 executes k-nearest neighbor search processing.
例えば、情報処理装置100は、超球の半径rを∞(無限大)に設定し(ステップS201)、既存のオブジェクト集合から集合Sを抽出する(ステップS202)。例えば、情報処理装置100は、起点ノードとして決定(選択)されたオブジェクト(ノード)を集合Sとして抽出してもよい。また、例えば、超球とは、検索範囲を示す仮想的な球である。なお、ステップS202において抽出された集合Sに含まれるオブジェクト(ノード)は、検索結果(抽出候補)の集合Rの初期集合にも含められる。また、ステップS202において抽出された集合Sに含まれるオブジェクト(ノード)は、集合Cに含められてもよい。集合Cは、重複検索を回避するために便宜上設けられるものであり、処理開始時には空集合に設定されてもよい。 For example, the information processing apparatus 100 sets the radius r of the hypersphere to ∞ (infinity) (step S201), and extracts the set S from the existing object set (step S202). For example, the information processing apparatus 100 may extract, as a set S, objects (nodes) determined (selected) as origin nodes. Also, for example, a hypersphere is a virtual sphere that indicates a search range. Note that the objects (nodes) included in the set S extracted in step S202 are also included in the initial set of the set R of the search results (extraction candidates). Also, the objects (nodes) included in the set S extracted in step S202 may be included in the set C. FIG. Set C is provided for convenience in order to avoid duplicate searches, and may be set to an empty set at the start of processing.
次に、情報処理装置100は、集合Sに含まれるオブジェクトの中で、検索クエリオブジェクトをyとするとオブジェクトyとの距離が最も短いオブジェクトを抽出し、オブジェクトsとする(ステップS203)。例えば、図1の例では、情報処理装置100は、オブジェクトyであるクエリQE1に対応する起点ノードであるノードN2等が含まれる集合Sから、一のノードをオブジェクトs(対象ノード)として抽出する。次に、情報処理装置100は、オブジェクトsを集合Sから除外する(ステップS204)。例えば、図1の例では、情報処理装置100は、起点ノードであるノードN2を集合Sから除外する。 Next, the information processing apparatus 100 extracts an object having the shortest distance from the object y, where y is the search query object, among the objects included in the set S, and sets it as an object s (step S203). For example, in the example of FIG. 1, the information processing apparatus 100 extracts one node as the object s (target node) from the set S including the node N2, which is the origin node corresponding to the query QE1, which is the object y. . Next, the information processing apparatus 100 excludes the object s from the set S (step S204). For example, in the example of FIG. 1, the information processing apparatus 100 excludes from the set S the node N2, which is the starting node.
次に、情報処理装置100は、オブジェクトsとオブジェクトyとの距離d(s,y)がr(1+ε)を超えるか否かを判定する(ステップS205)。ここで、εは拡張要素であり、r(1+ε)は、探索範囲(この範囲内のノードのみを探索する。検索範囲よりも大きくすることで精度を高めることができる)の半径を示す値である。オブジェクトsとオブジェクトyとの距離d(s,y)がr(1+ε)を超える場合(ステップS205:Yes)、情報処理装置100は、集合Rをオブジェクトyの近傍集合として出力し(ステップS206)、処理を終了する。 Next, the information processing apparatus 100 determines whether or not the distance d(s, y) between the object s and the object y exceeds r(1+ε) (step S205). Here, ε is an expansion factor, and r(1+ε) is a value that indicates the radius of the search range (only nodes within this range are searched; making it larger than the search range increases the accuracy). be. If the distance d(s, y) between object s and object y exceeds r(1+ε) (step S205: Yes), information processing apparatus 100 outputs set R as a neighborhood set of object y (step S206). , terminate the process.
オブジェクトsと検索クエリオブジェクトyとの距離d(s,y)がr(1+ε)を超えない場合(ステップS205:No)、情報処理装置100は、オブジェクトsの近傍集合N(G,s)の要素であるオブジェクトの中から集合Cに含まれないオブジェクトを、所定の基準に基づいて一つ選択し、選択したオブジェクトuを、集合Cに格納する(ステップS207)。例えば、図1の例では、情報処理装置100は、ノードN2の連結ノードであるノードN1、N43等のうち、クエリQE1と最も近いノード(例えばノードN43)をオブジェクトuとして選択する。 When the distance d(s, y) between the object s and the search query object y does not exceed r(1+ε) (step S205: No), the information processing apparatus 100 determines the neighborhood set N(G, s) of the object s. One object that is not included in set C is selected from the element objects based on a predetermined criterion, and the selected object u is stored in set C (step S207). For example, in the example of FIG. 1, the information processing apparatus 100 selects the node (for example, node N43) closest to the query QE1 among the nodes N1, N43, etc., which are the connecting nodes of the node N2, as the object u.
次に、情報処理装置100は、オブジェクトuとオブジェクトyとの距離d(u,y)がr(1+ε)以下であるか否かを判定する(ステップS208)。オブジェクトuとオブジェクトyとの距離d(u,y)がr(1+ε)以下である場合(ステップS208:Yes)、情報処理装置100は、オブジェクトuを集合Sに追加する(ステップS209)。また、オブジェクトuとオブジェクトyとの距離d(u,y)がr(1+ε)以下ではない場合(ステップS208:No)、情報処理装置100は、ステップS210の判定(処理)を行う。 Next, the information processing apparatus 100 determines whether or not the distance d(u, y) between the object u and the object y is r(1+ε) or less (step S208). If the distance d(u, y) between the object u and the object y is less than or equal to r(1+ε) (step S208: Yes), the information processing apparatus 100 adds the object u to the set S (step S209). If the distance d(u, y) between the object u and the object y is not less than r(1+ε) (step S208: No), the information processing apparatus 100 performs determination (processing) in step S210.
次に、情報処理装置100は、オブジェクトuとオブジェクトyとの距離d(u,y)がr以下であるか否かを判定する(ステップS210)。オブジェクトuとオブジェクトyとの距離d(u,y)がrを超える場合、情報処理装置100は、ステップS216の判定(処理)を行う。また、オブジェクトuとオブジェクトyとの距離d(u,y)がr以下ではない場合(ステップS210:No)、情報処理装置100は、ステップS216の判定(処理)を行う。 Next, the information processing apparatus 100 determines whether or not the distance d(u, y) between the object u and the object y is less than or equal to r (step S210). When the distance d(u, y) between the object u and the object y exceeds r, the information processing apparatus 100 performs determination (processing) in step S216. If the distance d(u, y) between the object u and the object y is not equal to or less than r (step S210: No), the information processing apparatus 100 performs determination (processing) in step S216.
オブジェクトuとオブジェクトyとの距離d(u,y)がr以下である場合(ステップS210:Yes)、情報処理装置100は、オブジェクトuを集合Rに追加する(ステップS211)。そして、情報処理装置100は、集合Rに含まれるオブジェクト数がksを超えるか否かを判定する(ステップS212)。所定数ksは、任意に定められる自然数である。例えば、ksは、検索における抽出数を示し、「3」や「20」や「100」等の任意の値であってもよい。集合Rに含まれるオブジェクト数がksを超えない場合(ステップS212:No)、情報処理装置100は、ステップS214の判定(処理)を行う。 When the distance d(u, y) between the object u and the object y is less than or equal to r (step S210: Yes), the information processing apparatus 100 adds the object u to the set R (step S211). The information processing apparatus 100 then determines whether or not the number of objects included in the set R exceeds ks (step S212). The predetermined number ks is an arbitrarily determined natural number. For example, ks indicates the number of extractions in a search, and may be any value such as "3", "20", or "100". When the number of objects included in the set R does not exceed ks (step S212: No), the information processing apparatus 100 performs determination (processing) in step S214.
集合Rに含まれるオブジェクト数がksを超える場合(ステップS212:Yes)、情報処理装置100は、集合Rに含まれるオブジェクトの中でオブジェクトyとの距離が最も長い(遠い)オブジェクトを、集合Rから除外する(ステップS213)。 When the number of objects included in the set R exceeds ks (step S212: Yes), the information processing apparatus 100 selects an object having the longest (farthest) distance from the object y among the objects included in the set R. (step S213).
次に、情報処理装置100は、集合Rに含まれるオブジェクト数がksと一致するか否かを判定する(ステップS214)。集合Rに含まれるオブジェクト数がksと一致しない場合(ステップS214:No)、情報処理装置100は、ステップS216の判定(処理)を行う。また、集合Rに含まれるオブジェクト数がksと一致する場合(ステップS214:Yes)、情報処理装置100は、集合Rに含まれるオブジェクトの中でオブジェクトyとの距離が最も長い(遠い)オブジェクトと、オブジェクトyとの距離を、新たなrに設定する(ステップS215)。 Next, the information processing apparatus 100 determines whether or not the number of objects included in the set R matches ks (step S214). If the number of objects included in the set R does not match ks (step S214: No), the information processing apparatus 100 performs determination (processing) in step S216. If the number of objects included in the set R matches ks (step S214: Yes), the information processing apparatus 100 selects the object with the longest (farthest) distance from the object y among the objects included in the set R. , to the object y is set to a new r (step S215).
そして、情報処理装置100は、オブジェクトsの近傍集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択したか否かを判定する(ステップS216)。オブジェクトsの近傍集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択していない場合(ステップS216:No)、情報処理装置100は、ステップS207に戻って処理を繰り返す。なお、情報処理装置100は、オブジェクトsの近傍集合N(G,s)の要素であるオブジェクトから全てを選択する場合に限らず、所定の閾値を設定し、その閾値に対応する個数までオブジェクトを選択してもよい。 Then, the information processing apparatus 100 determines whether or not all objects have been selected from objects that are elements of the neighborhood set N(G, s) of the object s (step S216). If all the objects that are elements of the neighborhood set N(G, s) of the object s have not been selected (step S216: No), the information processing apparatus 100 returns to step S207 and repeats the process. Note that the information processing apparatus 100 is not limited to selecting all of the objects that are elements of the neighborhood set N(G, s) of the object s. You may choose.
オブジェクトsの近傍集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択した場合(ステップS216:Yes)、情報処理装置100は、集合Sが空集合であるか否かを判定する(ステップS217)。集合Sが空集合でない場合(ステップS217:No)、情報処理装置100は、ステップS203に戻って処理を繰り返す。また、集合Sが空集合である場合(ステップS217:Yes)、情報処理装置100は、集合Rを出力し、処理を終了する(ステップS218)。例えば、情報処理装置100は、オブジェクト集合Rに含まれるオブジェクト(ノード)を対象ノード(入力オブジェクトy)に対応する近傍ノードとして選択してもよい。例えば、図1の例では、情報処理装置100は、集合Rに含まれるノードN2、N43、N1等をクエリQE1(入力オブジェクトy)に対応する検索結果として出力する。また、例えば、情報処理装置100は、集合Rに含まれるオブジェクト(ノード)を検索クエリ(入力オブジェクトy)に対応する検索結果として、検索を行った端末装置10等へ提供してもよい。 When all objects are selected from the objects that are elements of the neighborhood set N(G, s) of the object s (step S216: Yes), the information processing apparatus 100 determines whether the set S is an empty set. (Step S217). If the set S is not an empty set (step S217: No), the information processing apparatus 100 returns to step S203 and repeats the process. If the set S is an empty set (step S217: Yes), the information processing apparatus 100 outputs the set R and ends the process (step S218). For example, the information processing apparatus 100 may select objects (nodes) included in the object set R as neighboring nodes corresponding to the target node (input object y). For example, in the example of FIG. 1, the information processing apparatus 100 outputs nodes N2, N43, N1, etc. included in the set R as search results corresponding to the query QE1 (input object y). Further, for example, the information processing apparatus 100 may provide objects (nodes) included in the set R as search results corresponding to the search query (input object y) to the terminal apparatus 10 or the like that performed the search.
〔6.変形例〕
上述した実施形態に係る情報処理システム1は、上記実施形態以外にも種々の異なる態様にて実施されてもよい。例えば、検索対象となるオブジェクトのいずれとも対応付けられていないノード(以下「仮想ノード」ともいう)を追加する処理が行われてもよい。そこで、以下では、上記の情報処理システム1の他の実施形態について説明する。なお、上述した実施形態と同様の点については同様の符号を付す等して適宜説明を省略する。例えば、実施形態に係る情報処理システム1と変形例における情報処理システムとは、情報処理装置100と情報処理装置100Aとの相違以外は同様の構成である。以下、情報処理装置100Aによる情報処理について説明する。
[6. Modification]
The
〔6-1.情報処理〕
まず、図11を用いて、変形例に係る情報処理システムにおける情報処理について説明する。図11は、変形例に係る情報処理の一例を示す図である。具体的には、図11は、仮想ノードを追加する処理の一例について説明する。
[6-1. information processing]
First, information processing in the information processing system according to the modification will be described with reference to FIG. 11 . FIG. 11 is a diagram illustrating an example of information processing according to the modification. Specifically, FIG. 11 describes an example of processing for adding a virtual node.
なお、図11において図1と同様の点は同様の符号を付すなどにより適宜説明を省略する。図11中のステップS11~S14については図1と同様の処理であるため説明を省略する。図11では、情報処理装置100Aは、対象オブジェクトであるオブジェクトOB38に対応するノードN38を対象ノードとして、仮想ノード及び追加エッジを追加する。
11 that are the same as those in FIG. 1 are denoted by the same reference numerals, and description thereof will be omitted as appropriate. Steps S11 to S14 in FIG. 11 are the same processing as in FIG. 1, so description thereof will be omitted. In FIG. 11, the
情報処理装置100Aは、対象ノードに連結される仮想ノードとの間を連結するノードを選択する(ステップS25)。そして、情報処理装置100Aは、選択したノードと対象ノードとの間に仮想ノードを配置し、対象ノードと仮想ノードとの間に追加エッジを追加し、選択したノードと仮想ノードとの間にエッジを追加することにより、グラフを更新する(ステップS26)。
The
図11の例では、情報処理装置100Aは、検索結果RS1中のオブジェクト(検索結果オブジェクト)のうち、オブジェクトOB38に最も近いオブジェクトOB1を選択オブジェクトとして選択する。情報処理装置100Aは、オブジェクトOB1に対応するノードN1と、オブジェクトOB38に対応するノードN38との間に仮想ノードを配置する。情報処理装置100Aは、オブジェクトOB1とオブジェクトOB38との平均のベクトルに対応する位置に仮想ノードを配置する。図11の例では、情報処理装置100Aは、グラフGR11-3に示すように、ノードN1とノードN38との中間点に仮想ノードVN1を追加する。
In the example of FIG. 11, the
そして、情報処理装置100Aは、オブジェクトOB38に対応するノードN38と、仮想ノードVN1との間を連結する追加エッジであるエッジE101を追加する。また、情報処理装置100Aは、仮想ノードVN1と、オブジェクトOB1に対応するノードN1との間を連結するエッジE102を追加する。このように、情報処理装置100Aは、仮想ノードVN1、エッジE101、及びエッジE102を追加することにより、グラフGR11-3を生成する。これにより、情報処理装置100Aは、グラフGR11を更新する。
The
なお、仮想ノードの追加方法については上記に限らず、種々の方法により仮想ノードを追加してもよい。例えば、情報処理装置100Aは、選択ノードと対象ノードとの中間点に限らず、仮想ノードを適宜の位置に配置してもよい。また、情報処理装置100Aは、エッジE101及びエッジE102のみに限らず、仮想ノードVN1にエッジを連結してもよい。例えば、情報処理装置100Aは、仮想ノードVN1をクエリとして、グラフGR11を検索して、仮想ノードVN1に近似するノードと仮想ノードVN1との間にエッジを追加してもよい。
Note that the method of adding virtual nodes is not limited to the above, and virtual nodes may be added by various methods. For example, the
上述したように、情報処理装置100Aは、正解データが示す正解オブジェクトのうち、検索結果オブジェクトに含まれないオブジェクトを対象オブジェクトとして、その対象オブジェクトに対応する対象ノードに連結する追加エッジや仮想ノードを追加する。このように、情報処理装置100Aは、検索漏れのオブジェクトに対応するノードに連結するための仮想ノードや追加エッジを追加することにより、適切にグラフを生成することができる。
As described above, the
〔6-2.情報処理装置の構成〕
次に、図12を用いて、変形例に係る情報処理装置100Aの構成について説明する。図12は、変形例に係る情報処理装置の構成例を示す図である。図12に示すように、情報処理装置100Aは、通信部110と、記憶部120Aと、制御部130Aとを有する。なお、情報処理装置100Aについては、実施形態に係る情報処理装置100と同様の点については、適宜説明を省略する。
[6-2. Configuration of Information Processing Device]
Next, the configuration of the
(記憶部120A)
記憶部120Aは、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。実施形態に係る記憶部120Aは、図12に示すように、オブジェクト情報記憶部121と、ツリー情報記憶部122と、グラフ情報記憶部123AAと、正解データ記憶部124とを有する。
(
The
(グラフ情報記憶部123A)
実施形態に係るグラフ情報記憶部123Aは、グラフに関する各種情報を記憶する。例えば、グラフ情報記憶部123Aは、検索処理等の情報処理に用いられるグラフ情報を記憶する。図13の例では、グラフ情報記憶部123Aは、仮想ノードを含むグラフデータを記憶する。図13は、変形例に係るグラフ情報記憶部の一例を示す図である。図13に示すグラフ情報記憶部123Aは、「ノードID」、「オブジェクトID」、「エッジ情報」、および「実ノードフラグ」といった項目を有する。また、「エッジ情報」には、「エッジID」や「参照先」といった情報が含まれる。
(Graph
123 A of graph information storage parts which concern on embodiment memorize|store various information regarding a graph. For example, the graph
「ノードID」は、グラフデータにおける各ノード(対象)を識別するための識別情報を示す。また、「オブジェクトID」は、オブジェクトを識別するための識別情報を示す。 “Node ID” indicates identification information for identifying each node (object) in graph data. "Object ID" indicates identification information for identifying an object.
また、「エッジ情報」は、対応するノードに接続されるエッジに関する情報を示す。図13の例では、「エッジ情報」は、対応するノードに連結される無向エッジ(双方向エッジ)に関する情報を示す。また、「エッジID」は、ノード間を連結するエッジを識別するための識別情報を示す。また、「参照先」は、エッジにより連結された参照先(ノード)を示す情報を示す。すなわち、図13の例では、ノードを識別するノードIDに対して、そのノードに対応するオブジェクト(対象)を識別する情報やそのノードからのエッジが連結される参照先(ノード)が対応付けられて登録されている。 "Edge information" indicates information about edges connected to the corresponding node. In the example of FIG. 13, "edge information" indicates information about undirected edges (bidirectional edges) connected to the corresponding node. "Edge ID" indicates identification information for identifying an edge connecting nodes. "Reference destination" indicates information indicating a reference destination (node) connected by an edge. That is, in the example of FIG. 13, a node ID identifying a node is associated with information identifying an object (object) corresponding to the node and a reference destination (node) to which an edge from the node is connected. registered with
「実ノードフラグ」は、ノードが仮想ノードであるか否かを示す。すなわち、「実ノードフラグ」は、ノードがオブジェクトに対応付けられているか否かを示す。なお、オブジェクトに対応付けられているノード、すなわち仮想ノードではないノードを「実ノード」と記載する場合がある。「実ノードフラグ」は、値が「0」である場合、そのノードが仮想ノードであることを示し、値が「1」である場合、そのノードが仮想ノードではないことを示す。すなわち、「実ノードフラグ」が「1」である場合、そのノードはオブジェクトに対応付けられており、対応するオブジェクトがあるノードであることを示す。また、「実ノードフラグ」が「0」である場合、そのノードはオブジェクトに対応付けられておらず、対応するオブジェクトがないノードであることを示す。 "Real node flag" indicates whether or not the node is a virtual node. That is, the "real node flag" indicates whether or not the node is associated with an object. A node associated with an object, that is, a node that is not a virtual node may be referred to as a "real node". The "real node flag" indicates that the node is a virtual node when the value is "0", and indicates that the node is not a virtual node when the value is "1". That is, when the "real node flag" is "1", it indicates that the node is associated with an object and has a corresponding object. Also, when the "real node flag" is "0", it indicates that the node is not associated with any object and has no corresponding object.
図13の例では、ノードID「N1」~「N3」の各々により識別されるノード(ノードN1~N3)は、実ノードフラグが「1」であり、仮想ノードではなく、オブジェクトが対応付けられている実ノードであることを示す。 In the example of FIG. 13, the nodes (nodes N1 to N3) identified by the node IDs "N1" to "N3" each have a real node flag of "1" and are associated with objects instead of virtual nodes. indicates that it is a real node with
また、図13の例では、ノードID「VN1」により識別されるノード(ノードVN1)は、オブジェクトIDが「null」であり、対応付けられているオブジェクトが無いことを示す。また、ノードVN1からは、エッジID「E101」により識別されるエッジ(エッジE101)が、ノードID「N38」により識別されるノード(ノードN38)に連結されることを示す。すなわち、図13の例では、グラフ情報におけるノードVN1からはエッジE101によりノードN38へ辿ることができることを示す。ノードVN1は、実ノードフラグが「0」であり、仮想ノードであることを示す。 Also, in the example of FIG. 13, the node (node VN1) identified by the node ID "VN1" has an object ID of "null", indicating that there is no associated object. Also, from the node VN1, an edge (edge E101) identified by the edge ID "E101" is connected to a node (node N38) identified by the node ID "N38". That is, the example of FIG. 13 indicates that the node N38 can be traced from the node VN1 in the graph information through the edge E101. The node VN1 has a real node flag of "0", indicating that it is a virtual node.
なお、グラフ情報記憶部123Aは、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、グラフ情報記憶部123Aは、各ノード(ベクトル)間を連結するエッジの長さが記憶されてもよい。すなわち、グラフ情報記憶部123Aは、各ノード(ベクトル)間の距離を示す情報が記憶されてもよい。グラフ情報記憶部123Aには、無向エッジにより連結されたグラフ情報に限らず、種々のグラフ情報が記憶されてもよい。グラフ情報記憶部123Aには、有向エッジにより連結されたグラフ情報が記憶されてもよい。
It should be noted that the graph
(制御部130A)
図12の説明に戻って、制御部130Aは、コントローラであり、例えば、CPUやMPU等によって、情報処理装置100内部の記憶装置に記憶されている各種プログラム(情報処理プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部130Aは、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
(Control section 130A)
Returning to the description of FIG. 12, the control unit 130A is a controller, and various programs (corresponding to an example of an information processing program) stored in a storage device inside the information processing apparatus 100 are executed by, for example, a CPU, an MPU, or the like. It is realized by being executed using RAM as a work area. Also, the control unit 130A is a controller, and is implemented by an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).
図12に示すように、制御部130Aは、取得部131と、生成部132と、選択部133Aと、更新部134Aと、提供部135とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130Aの内部構成は、図12に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
As shown in FIG. 12, the control unit 130A includes an
(選択部133A)
変形例に係る選択部133Aは、実施形態に係る選択部133と同様の処理を行う。選択部133Aは、所定の基準に基づいて、検索結果オブジェクトから選択オブジェクトを選択する。選択部133Aは、検索結果オブジェクトのうち、対象オブジェクトに最も近いオブジェクトを選択オブジェクトとして選択する。
(
133 A of selection parts which concern on a modification perform the same process as the
選択部133Aは、対象ノードに連結される仮想ノードとの間を連結するノードを選択する。選択部133Aは、検索結果RS1中のオブジェクト(検索結果オブジェクト)のうち、オブジェクトOB38に最も近いオブジェクトOB1を選択オブジェクトとして選択する。
The
(更新部134A)
変形例に係る更新部134Aは、実施形態に係る更新部134と同様の処理を行う。更新部134Aは、複数のオブジェクトに対応付けられていないノードである仮想ノードをグラフに追加し、仮想ノードと対象ノードとの間を連結する追加エッジを追加する。更新部134Aは、検索結果オブジェクトから選択される選択オブジェクトに対応するノードである選択ノードと、仮想ノードとの間を連結するエッジを追加する。
(Update unit 134A)
The updating unit 134A according to the modification performs the same processing as the updating
更新部134Aは、オブジェクトOB1に対応するノードN1と、オブジェクトOB38に対応するノードN38との間に仮想ノードを配置する。更新部134Aは、オブジェクトOB1とオブジェクトOB38との平均のベクトルに対応する位置に仮想ノードを配置する。更新部134Aは、グラフGR11-3に示すように、ノードN1とノードN38との中間点に仮想ノードVN1を追加する。更新部134Aは、オブジェクトOB38に対応するノードN38と、仮想ノードVN1との間を連結する追加エッジであるエッジE101を追加する。更新部134Aは、仮想ノードVN1と、オブジェクトOB1に対応するノードN1との間を連結するエッジE102を追加する。更新部134Aは、図10に示す検索処理により、追加エッジを追加する処理を行う。また、更新部134Aは、仮想ノードを含むグラフを用いて検索サービスを行う場合、図14に示す検索処理により、検索結果としてユーザに提供するオブジェクトを抽出する。 The updating unit 134A arranges a virtual node between the node N1 corresponding to the object OB1 and the node N38 corresponding to the object OB38. The updating unit 134A arranges the virtual node at the position corresponding to the average vector of the object OB1 and the object OB38. The updating unit 134A adds the virtual node VN1 to the midpoint between the node N1 and the node N38, as shown in the graph GR11-3. The updating unit 134A adds an edge E101, which is an additional edge connecting between the node N38 corresponding to the object OB38 and the virtual node VN1. The updating unit 134A adds an edge E102 connecting the virtual node VN1 and the node N1 corresponding to the object OB1. The update unit 134A performs processing for adding additional edges by the search processing shown in FIG. Further, when performing a search service using a graph including virtual nodes, the update unit 134A extracts objects to be provided to the user as search results by the search processing shown in FIG.
〔6-3.検索処理のフロー〕
なお、上記のように仮想ノードを追加したグラフを用いて、検索サービスを提供する場合、情報処理装置100Aは、図14に示すような検索処理のフローにより検索を行う。この点について図14を用いて説明する。図14は、変形例に係る検索処理の一例を示すフローチャートである。図14は、変形例に係る情報処理装置100Aによって実行される、仮想ノードを含むグラフを使用して実ノードを検索するための処理手順を示すフローチャートである。以下でいうオブジェクトは、ノードと読み替えてもよい。なお、情報処理装置100Aによる仮想ノードを有するグラフデータを用いた実ノードの検索は下記に限らず、種々の手順により行われてもよい。
[6-3. Flow of search processing]
When providing a search service using a graph to which virtual nodes are added as described above, the
ここでは、近傍集合N(G,y)は、ノードyに付与されているエッジにより関連付けられている近傍のオブジェクトの集合である。例えば、近傍集合N(G,y)は、ノードyとの間にエッジが連結されたオブジェクト(ノード)の集合である。また、グラフのノード間が有向エッジで連結される場合、近傍集合N(G,y)は、ノードyからの出力エッジが連結されたオブジェクト(ノード)の集合である。「G」は、所定のグラフデータ(例えば、グラフG1、グラフG2)であってもよい。例えば、情報処理装置100Aは、k近傍検索処理を実行する。
Here, the neighborhood set N(G,y) is the set of neighborhood objects that are related by the edges attached to node y. For example, a neighborhood set N(G, y) is a set of objects (nodes) to which edges are connected with node y. Also, when the nodes of the graph are connected by directed edges, the neighborhood set N(G, y) is a set of objects (nodes) to which output edges from node y are connected. "G" may be predetermined graph data (for example, graph G1, graph G2). For example, the
例えば、情報処理装置100Aは、超球の半径rを∞(無限大)に設定し(ステップS301)、既存のオブジェクト集合から集合Sを抽出する(ステップS302)。例えば、情報処理装置100Aは、起点ノードとして決定(選択)されたオブジェクト(ノード)を集合Sとして抽出してもよい。また、例えば、超球とは、検索範囲を示す仮想的な球である。なお、ステップS302において抽出された集合Sに含まれるオブジェクト(ノード)は、検索結果(抽出候補)の集合Rの初期集合にも含められる。また、ステップS302において抽出された集合Sに含まれるオブジェクト(ノード)は、集合Cに含められてもよい。集合Cは、重複検索を回避するために便宜上設けられるものであり、処理開始時には空集合に設定されてもよい。
For example, the
次に、情報処理装置100Aは、集合Sに含まれるオブジェクトの中で、検索クエリオブジェクトをyとするとオブジェクトyとの距離が最も短いオブジェクトを抽出し、オブジェクトsとする(ステップS303)。図1を参照して上述した特定の例示においては、検索クエリオブジェクトは、花柄浴衣の画像の画像特徴量である。次に、情報処理装置100Aは、オブジェクトsを集合Sから除外する(ステップS304)。
Next, the
次に、情報処理装置100Aは、オブジェクトsとオブジェクトyとの距離d(s,y)がr(1+ε)を超えるか否かを判定する(ステップS305)。ここで、εは拡張要素であり、r(1+ε)は、探索範囲(この範囲内のノードのみを探索する。検索範囲よりも大きくすることで精度を高めることができる)の半径を示す値である。オブジェクトsとオブジェクトyとの距離d(s,y)がr(1+ε)を超える場合(ステップS305:Yes)、情報処理装置100Aは、集合Rをオブジェクトyの近傍集合として出力し(ステップS306)、処理を終了する。図1を参照して上述した特定の例示においては、近傍集合は、画像に描写された花柄浴衣と見た目が似ているファッション商品に対応するノードの集合である。
Next, the
オブジェクトsと検索クエリオブジェクトyとの距離d(s,y)がr(1+ε)を超えない場合(ステップS305:No)、情報処理装置100Aは、オブジェクトsの近傍集合N(G,s)の要素であるオブジェクトの中から集合Cに含まれないオブジェクトを、所定の基準に基づいて一つ選択し、選択したオブジェクトuを、集合Cに格納する(ステップS307)。
When the distance d(s, y) between the object s and the search query object y does not exceed r(1+ε) (step S305: No), the
次に、情報処理装置100Aは、オブジェクトuとオブジェクトyとの距離d(u,y)がr(1+ε)以下であるか否かを判定する(ステップS308)。オブジェクトuとオブジェクトyとの距離d(u,y)がr(1+ε)以下である場合(ステップS308:Yes)、情報処理装置100Aは、オブジェクトuを集合Sに追加する(ステップS309)。また、オブジェクトuとオブジェクトyとの距離d(u,y)がr(1+ε)以下ではない場合(ステップS308:No)、情報処理装置100Aは、ステップS310の判定(処理)を行う。
Next, the
次に、情報処理装置100Aは、オブジェクトuが実ノード(すなわち、オブジェクトuが仮想ノードでない)であるか否かを判定する(ステップS310)。オブジェクトuが実ノードではない場合(ステップS310:No)、情報処理装置100Aは、ステップS317の判定(処理)を行う。
Next, the
オブジェクトuが実ノードである場合(ステップS310:Yes)、情報処理装置100Aは、オブジェクトuとオブジェクトyとの距離d(u,y)がr以下であるか否かを判定する(ステップS311)。オブジェクトuとオブジェクトyとの距離d(u,y)がrを超える場合、情報処理装置100Aは、ステップS317の判定(処理)を行う。また、オブジェクトuとオブジェクトyとの距離d(u,y)がr以下ではない場合(ステップS311:No)、情報処理装置100Aは、ステップS317の判定(処理)を行う。
If the object u is a real node (step S310: Yes), the
オブジェクトuとオブジェクトyとの距離d(u,y)がr以下である場合(ステップS311:Yes)、情報処理装置100Aは、オブジェクトuを集合Rに追加する(ステップS312)。そして、情報処理装置100Aは、集合Rに含まれるオブジェクト数がksを超えるか否かを判定する(ステップS313)。所定数ksは、任意に定められる自然数である。例えば、ksは、検索における抽出数を示し、「3」や「20」や「100」等の任意の値であってもよい。集合Rに含まれるオブジェクト数がksを超えない場合(ステップS313:No)、情報処理装置100Aは、ステップS315の判定(処理)を行う。
If the distance d(u, y) between the object u and the object y is less than or equal to r (step S311: Yes), the
集合Rに含まれるオブジェクト数がksを超える場合(ステップS313:Yes)、情報処理装置100Aは、集合Rに含まれるオブジェクトの中でオブジェクトyとの距離が最も長い(遠い)オブジェクトを、集合Rから除外する(ステップS314)。
When the number of objects included in the set R exceeds ks (step S313: Yes), the
次に、情報処理装置100Aは、集合Rに含まれるオブジェクト数がksと一致するか否かを判定する(ステップS315)。集合Rに含まれるオブジェクト数がksと一致しない場合(ステップS315:No)、情報処理装置100Aは、ステップS317の判定(処理)を行う。また、集合Rに含まれるオブジェクト数がksと一致する場合(ステップS315:Yes)、情報処理装置100Aは、集合Rに含まれるオブジェクトの中でオブジェクトyとの距離が最も長い(遠い)オブジェクトと、オブジェクトyとの距離を、新たなrに設定する(ステップS316)。
Next, the
そして、情報処理装置100Aは、オブジェクトsの近傍集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択したか否かを判定する(ステップS317)。オブジェクトsの近傍集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択していない場合(ステップS317:No)、情報処理装置100Aは、ステップS307に戻って処理を繰り返す。なお、情報処理装置100Aは、オブジェクトsの近傍集合N(G,s)の要素であるオブジェクトから全てを選択する場合に限らず、所定の閾値を設定し、その閾値に対応する個数までオブジェクトを選択してもよい。
Then, the
オブジェクトsの近傍集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択した場合(ステップS317:Yes)、情報処理装置100Aは、集合Sが空集合であるか否かを判定する(ステップS318)。集合Sが空集合でない場合(ステップS318:No)、情報処理装置100Aは、ステップS303に戻って処理を繰り返す。また、集合Sが空集合である場合(ステップS318:Yes)、情報処理装置100Aは、集合Rを出力し、処理を終了する(ステップS319)。例えば、情報処理装置100Aは、オブジェクト集合Rに含まれるオブジェクト(ノード)を対象ノード(入力オブジェクトy)に対応する近傍ノードとして選択してもよい。例えば、情報処理装置100Aは、集合Rに含まれるオブジェクト(ノード)を検索クエリ(入力オブジェクトy)に対応する検索結果として、検索を要求した端末装置10等へ提供してもよい。
When all objects are selected from the objects that are elements of the neighborhood set N(G, s) of the object s (step S317: Yes), the
〔7.効果〕
上述してきたように、実施形態または変形例に係る情報処理装置100、100Aは、取得部131と、更新部134、134Aとを有する。取得部131は、複数のオブジェクトのうち、複数のオブジェクトの各々に対応する複数のノードがエッジで連結されたグラフの検索に用いるクエリに近い正解オブジェクトを示す正解データを取得する。更新部134、134Aは、正解データが示す正解オブジェクトのうち、クエリを用いたグラフの検索処理により検索された検索結果オブジェクトに含まれない対象オブジェクトに対応する対象ノードに連結する追加エッジを追加することにより、グラフを更新する。
[7. effect〕
As described above, the
このように、実施形態または変形例に係る情報処理装置100、100Aは、検索処理を行い、正解オブジェクトのうち、検索された検索結果オブジェクトに含まれない対象オブジェクトに対応する対象ノードに連結する追加エッジを追加することにより、対象ノードへ辿るエッジを追加することで適切にグラフを更新することができる。したがって、情報処理装置100、100Aは、エッジの追加により適切なグラフを生成することができる。
As described above, the
また、実施形態または変形例に係る情報処理装置100、100Aは、生成部132を有する。生成部132は、複数のオブジェクトから選択されたオブジェクトに基づいてクエリを生成する。更新部134、134Aは、生成部132により生成されたクエリを用いた検索処理を実行する。
Further, the
このように、実施形態または変形例に係る情報処理装置100、100Aは、生成したクエリを用いた検索結果を基に追加エッジを追加することで、エッジの追加により適切なグラフを生成することができる。
As described above, the
また、実施形態または変形例に係る情報処理装置100、100Aにおいて、生成部132は、複数のオブジェクトから選択されたオブジェクト群を用いてクエリを生成する。
In addition, in the
このように、実施形態または変形例に係る情報処理装置100、100Aは、複数のオブジェクトを用いてクエリを生成することで、適切にクエリを生成することができる。
In this way, the
また、実施形態または変形例に係る情報処理装置100、100Aにおいて、生成部132は、複数のオブジェクトから選択されたオブジェクト群の平均を算出することにより、クエリを生成する。
In addition, in the
このように、実施形態または変形例に係る情報処理装置100、100Aは、複数のオブジェクトの平均を用いてクエリを生成することで、適切にクエリを生成することができる。
In this way, the
また、実施形態または変形例に係る情報処理装置100、100Aにおいて、生成部132は、複数のオブジェクトから選択された第1オブジェクトと、複数のオブジェクトのうち、第1オブジェクトとは異なる第2オブジェクトと用いて、クエリを生成する。
Further, in the
このように、実施形態または変形例に係る情報処理装置100、100Aは、複数のオブジェクトから選択した第1オブジェクトと、第1オブジェクトとは異なる第2オブジェクトと用いて、クエリを生成することで、適切にクエリを生成することができる。
In this way, the
また、実施形態または変形例に係る情報処理装置100、100Aにおいて、生成部132は、グラフにおいて第1オブジェクトに対応する第1ノードからのエッジが連結されたノードに対応する第2オブジェクト用いて、クエリを生成する。
Further, in the
このように、実施形態または変形例に係る情報処理装置100、100Aは、複数のオブジェクトから選択した第1オブジェクトと、第1オブジェクトに対応する第1ノードからのエッジが連結されたノードに対応する第2オブジェクトと用いて、クエリを生成することで、適切にクエリを生成することができる。
In this way, the
また、実施形態または変形例に係る情報処理装置100、100Aにおいて、生成部132は、第1ノードからのエッジが連結されたノード群のうち、第1ノードから最遠のノードまたは最近のノードに対応する第2オブジェクト用いて、クエリを生成する。
Further, in the
このように、実施形態または変形例に係る情報処理装置100、100Aは、第1オブジェクトからのエッジが連結されたノード群のうち最遠または最近のノードに対応する第2オブジェクト用いて、クエリを生成することで、適切にクエリを生成することができる。
In this way, the
また、実施形態または変形例に係る情報処理装置100、100Aにおいて、生成部132は、第1ノードからのエッジが連結されたノード群からランダムに選択されたノードに対応する第2オブジェクト用いて、クエリを生成する。
Further, in the
このように、実施形態または変形例に係る情報処理装置100、100Aは、第1オブジェクトからのエッジが連結されたノード群からランダムに選択したノードに対応する第2オブジェクト用いて、クエリを生成することで、適切にクエリを生成することができる。
In this way, the
また、実施形態または変形例に係る情報処理装置100、100Aにおいて、更新部134、134Aは、第1ノードから他のノードへのエッジを削除したグラフを用いた検索処理を実行する。
In addition, in the
このように、実施形態または変形例に係る情報処理装置100、100Aは、クエリに用いる第1オブジェクトに対応する第1ノードからのエッジを削除したグラフで検索処理を行うことで、適切な検索結果を得ることができ、エッジの追加により適切なグラフを生成することができる。
As described above, the
また、実施形態に係る情報処理装置100において、更新部134は、検索結果オブジェクトから選択される選択オブジェクトに対応するノードである選択ノードと、対象ノードとの間を連結する追加エッジを追加する。
Further, in the information processing apparatus 100 according to the embodiment, the
このように、実施形態に係る情報処理装置100は、検索結果オブジェクトから選択した選択オブジェクトに対応する選択ノードと、対象ノードとを追加エッジで連結することにより、適切なグラフを生成することができる。 As described above, the information processing apparatus 100 according to the embodiment can generate an appropriate graph by connecting the selected node corresponding to the selection object selected from the search result objects and the target node with the additional edge. .
また、実施形態に係る情報処理装置100は、選択部133を有する。選択部133は、所定の基準に基づいて、検索結果オブジェクトから選択オブジェクトを選択する。
The information processing apparatus 100 according to the embodiment also has a
このように、実施形態に係る情報処理装置100は、検索結果オブジェクトから所定の基準で選択オブジェクトを選択することにより、適切なノード間を追加エッジで連結することができ、適切なグラフを生成することができる。 As described above, the information processing apparatus 100 according to the embodiment can connect appropriate nodes with additional edges by selecting selected objects from search result objects based on a predetermined criterion, and generates an appropriate graph. be able to.
また、実施形態に係る情報処理装置100において、選択部133は、検索結果オブジェクトのうち、対象オブジェクトに最も近いオブジェクトを選択オブジェクトとして選択する。
Further, in the information processing apparatus 100 according to the embodiment, the
このように、実施形態に係る情報処理装置100は、検索結果オブジェクトのうち対象オブジェクトに最も近いオブジェクトを選択オブジェクトとして選択することにより、適切なノード間を追加エッジで連結することができ、適切なグラフを生成することができる。 As described above, the information processing apparatus 100 according to the embodiment selects an object closest to the target object from among the search result objects as a selected object, thereby connecting appropriate nodes with additional edges. Graphs can be generated.
また、変形例に係る情報処理装置100Aにおいて、更新部134Aは、複数のオブジェクトに対応付けられていないノードである仮想ノードをグラフに追加し、仮想ノードと対象ノードとの間を連結する追加エッジを追加する。
Further, in the
このように、変形例に係る情報処理装置100Aは、複数のオブジェクトに対応付けられていないノードである仮想ノードを追加し、その仮想ノードと、対象ノードとを追加エッジで連結することにより、適切なグラフを生成することができる。
As described above, the
また、変形例に係る情報処理装置100Aにおいて、更新部134Aは、検索結果オブジェクトから選択される選択オブジェクトに対応するノードである選択ノードと、仮想ノードとの間を連結するエッジを追加する。
Further, in the
このように、変形例に係る情報処理装置100Aは、検索結果オブジェクトから選択される選択オブジェクトに対応する選択ノードと、仮想ノードとをエッジで連結することにより、適切なグラフを生成することができる。
In this way, the
また、変形例に係る情報処理装置100Aは、選択部133Aを有する。選択部133Aは、所定の基準に基づいて、検索結果オブジェクトから選択オブジェクトを選択する。
Further, the
このように、変形例に係る情報処理装置100Aは、検索結果オブジェクトから所定の基準で選択オブジェクトを選択することにより、適切なノード間を追加エッジで連結することができ、適切なグラフを生成することができる。
In this way, the
また、変形例に係る情報処理装置100Aにおいて、選択部133Aは、検索結果オブジェクトのうち、対象オブジェクトに最も近いオブジェクトを選択オブジェクトとして選択する。
Further, in the
このように、実施形態に係る情報処理装置100Aは、検索結果オブジェクトのうち対象オブジェクトに最も近いオブジェクトを選択オブジェクトとして選択することにより、適切なノード間を追加エッジで連結することができ、適切なグラフを生成することができる。
As described above, the
また、実施形態または変形例に係る情報処理装置100、100Aにおいて、取得部131は、検索処理である第1検索処理とは異なる第2検索処理により検索された正解オブジェクトを示す正解データを取得する。
In addition, in the
このように、実施形態または変形例に係る情報処理装置100、100Aは、所定の検索処理で検索した正解オブジェクトを用いて、グラフを更新することにより、適切にグラフを生成することができる。
In this manner, the
また、実施形態または変形例に係る情報処理装置100、100Aにおいて、取得部131は、探索範囲を決定するための係数である検索範囲係数の値が第1検索処理よりも大きく設定された第2検索処理により検索された正解オブジェクトを示す正解データを取得する。更新部134、134Aは、検索範囲係数が第2検索処理よりも小さい値に設定された第1検索処理により検索された検索結果オブジェクトに含まれない対象オブジェクトに対応する対象ノードに連結する追加エッジを追加する。
Further, in the
このように、実施形態または変形例に係る情報処理装置100、100Aは、第1検索処理よりも検索範囲係数の値を大きくした第2検索処理で正解データを生成し、第1検索処理の検索結果との比較に用いることで、検索範囲係数が小さい場合に検索から漏れるノードに対してエッジを追加することができる。したがって、実施形態または変形例に係る情報処理装置100、100Aは、エッジの追加により適切なグラフを生成することができる。
As described above, the
また、実施形態または変形例に係る情報処理装置100、100Aにおいて、更新部134、134Aは、検索範囲係数の値が0に設定された第1検索処理により検索された検索結果オブジェクトに含まれない対象オブジェクトに対応する対象ノードに連結する追加エッジを追加する。
In addition, in the
このように、実施形態または変形例に係る情報処理装置100、100Aは、検索範囲係数の値が0に設定した場合に検索から漏れるノードに対してエッジを追加することができる。したがって、実施形態または変形例に係る情報処理装置100、100Aは、エッジの追加により適切なグラフを生成することができる。
In this way, the
また、実施形態または変形例に係る情報処理装置100、100Aにおいて、取得部131は、クエリと、複数のオブジェクトの各々との比較により検索された正解オブジェクトを示す正解データを取得する。
In addition, in the
このように、実施形態または変形例に係る情報処理装置100、100Aは、クエリと、複数のオブジェクトの各々との比較により検索された正解データを用いて、グラフを更新することにより、適切にグラフを生成することができる。
In this way, the
また、実施形態または変形例に係る情報処理装置100、100Aにおいて、更新部134、134Aは、探索範囲を決定するための係数である検索範囲係数の値が0に設定された検索処理により検索された検索結果オブジェクトに含まれない対象オブジェクトに対応する対象ノードに連結する追加エッジを追加する。
Further, in the
このように、実施形態または変形例に係る情報処理装置100、100Aは、検索範囲係数の値が0に設定した場合に検索から漏れるノードに対してエッジを追加することができる。したがって、実施形態または変形例に係る情報処理装置100、100Aは、エッジの追加により適切なグラフを生成することができる。
In this way, the
〔8.ハードウェア構成〕
上述してきた実施形態に係る情報処理装置100は、例えば図15に示すような構成のコンピュータ1000によって実現される。図15は、情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM(Read Only Memory)1300、HDD(Hard Disk Drive)1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を有する。
[8. Hardware configuration]
The information processing apparatus 100 according to the embodiments described above is implemented by a
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
The CPU 1100 operates based on programs stored in the
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス1500は、ネットワークNを介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータをネットワークNを介して他の機器へ送信する。
The
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを入出力インターフェイス1600を介して出力装置へ出力する。
The CPU 1100 controls output devices such as displays and printers, and input devices such as keyboards and mice, through an input/
メディアインターフェイス1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
例えば、コンピュータ1000が実施形態に係る情報処理装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部130の機能を実現する。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置からネットワークNを介してこれらのプログラムを取得してもよい。
For example, when the
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の行に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。 As described above, some of the embodiments of the present application have been described in detail based on the drawings, but these are merely examples, and various modifications, It is possible to carry out the invention in other forms with modifications.
〔9.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
[9. others〕
Further, among the processes described in the above embodiments, all or part of the processes described as being automatically performed can be manually performed, or the processes described as being performed manually can be performed manually. All or part of this can also be done automatically by known methods. 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 drawing is not limited to the illustrated information.
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。 Also, each component of each device illustrated is functionally conceptual, and does not necessarily need to be physically configured as illustrated. In other words, the specific form of distribution and integration of each device is not limited to the one shown in the figure, and all or part of them can be functionally or physically distributed and integrated in arbitrary units according to various loads and usage conditions. Can be integrated and configured.
また、上述してきた各実施形態に記載された各処理は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。 Further, each process described in each embodiment described above can be appropriately combined within a range in which the contents of the process are not inconsistent.
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。 Also, the above-mentioned "section, module, unit" can be read as "means" or "circuit". For example, the acquisition unit can be read as acquisition means or an acquisition circuit.
1 情報処理システム
100、100A 情報処理装置
120、120A 記憶部
121 オブジェクト情報記憶部
122 ツリー情報記憶部
123、123A グラフ情報記憶部
124 正解データ記憶部
130、130A 制御部
131 取得部
132 生成部
133、133A 選択部
134、134A 更新部
135 提供部
10 端末装置
50 情報提供装置
N ネットワーク
1
Claims (18)
前記正解データが示す前記正解オブジェクトのうち、前記クエリを用いた前記グラフの検索処理により検索された検索結果オブジェクトに含まれない対象オブジェクトに対応する対象ノードに連結する追加エッジを追加することにより、前記グラフを更新する更新部と、
を備え、
前記更新部は、
前記検索結果オブジェクトから選択される選択オブジェクトに対応するノードである選択ノードと、前記対象ノードとの間を連結する前記追加エッジを追加する第1の処理、または前記複数のオブジェクトに対応付けられていないノードである仮想ノードを前記グラフに追加し、前記仮想ノードと前記対象ノードとの間を連結する前記追加エッジを追加し、前記検索結果オブジェクトから選択される選択オブジェクトに対応するノードである選択ノードと、前記仮想ノードとの間を連結するエッジを追加する第2の処理のうち少なくとも1つの処理を実行する
ことを特徴とする情報処理装置。 an acquisition unit that acquires correct data indicating a correct object close to a query used for searching a graph in which a plurality of nodes corresponding to each of the plurality of objects are connected by edges, from among a plurality of objects;
By adding an additional edge connected to a target node corresponding to a target object not included in the search result objects searched by the search processing of the graph using the query, among the correct objects indicated by the correct data, an updating unit that updates the graph;
with
The updating unit
a first process of adding the additional edge connecting between a selected node, which is a node corresponding to a selected object selected from the search result object, and the target node, or a process associated with the plurality of objects; adding to the graph a virtual node that is a non-existent node; adding the additional edge connecting between the virtual node and the target node; An information processing apparatus, characterized by executing at least one of a second process of adding an edge connecting between a node and the virtual node .
をさらに備え、
前記更新部は、
前記生成部により生成された前記クエリを用いた前記検索処理を実行する
ことを特徴とする請求項1に記載の情報処理装置。 a generator that generates the query based on an object selected from the plurality of objects;
further comprising
The updating unit
The information processing apparatus according to claim 1, wherein the search processing is executed using the query generated by the generation unit.
前記複数のオブジェクトから選択されたオブジェクト群を用いて前記クエリを生成する
ことを特徴とする請求項2に記載の情報処理装置。 The generating unit
The information processing apparatus according to claim 2, wherein the query is generated using an object group selected from the plurality of objects.
前記複数のオブジェクトから選択されたオブジェクト群の平均を算出することにより、前記クエリを生成する
ことを特徴とする請求項3に記載の情報処理装置。 The generating unit
The information processing apparatus according to claim 3, wherein the query is generated by calculating an average of an object group selected from the plurality of objects.
前記複数のオブジェクトから選択された第1オブジェクトと、前記複数のオブジェクトのうち、前記第1オブジェクトとは異なる第2オブジェクトと用いて、前記クエリを生成する
ことを特徴とする請求項3または請求項4に記載の情報処理装置。 The generating unit
3. The query is generated using a first object selected from the plurality of objects and a second object different from the first object among the plurality of objects. 5. The information processing device according to 4.
前記グラフにおいて前記第1オブジェクトに対応する第1ノードからのエッジが連結されたノードに対応する前記第2オブジェクトを用いて、前記クエリを生成する
ことを特徴とする請求項5に記載の情報処理装置。 The generating unit
6. The information processing according to claim 5, wherein said query is generated using said second object corresponding to a node to which edges from a first node corresponding to said first object are connected in said graph. Device.
前記第1ノードからのエッジが連結されたノード群のうち、前記第1ノードから最遠のノードまたは最近のノードに対応する前記第2オブジェクトを用いて、前記クエリを生成する
ことを特徴とする請求項6に記載の情報処理装置。 The generating unit
generating the query by using the second object corresponding to the farthest node or the nearest node from the first node among the nodes to which edges from the first node are connected; The information processing device according to claim 6 .
前記第1ノードからのエッジが連結されたノード群からランダムに選択されたノードに対応する前記第2オブジェクトを用いて、前記クエリを生成する
ことを特徴とする請求項6に記載の情報処理装置。 The generating unit
7. The information processing apparatus according to claim 6, wherein said query is generated using said second object corresponding to a node randomly selected from a group of nodes to which edges from said first node are connected. .
前記第1ノードから他のノードへのエッジを削除した前記グラフを用いた前記検索処理を実行する
ことを特徴とする請求項6~8のいずれか1項に記載の情報処理装置。 The updating unit
9. The information processing apparatus according to any one of claims 6 to 8, wherein said search processing is executed using said graph in which edges from said first node to other nodes are deleted.
をさらに備えることを特徴とする請求項1~9のいずれか1項に記載の情報処理装置。 a selection unit that selects the selected object from the search result objects based on a predetermined criterion;
The information processing apparatus according to any one of claims 1 to 9, further comprising:
前記検索結果オブジェクトのうち、前記対象オブジェクトに最も近いオブジェクトを前記選択オブジェクトとして選択する
ことを特徴とする請求項10に記載の情報処理装置。 The selection unit
11. The information processing apparatus according to claim 10 , wherein an object closest to the target object is selected from among the search result objects as the selected object.
前記検索処理である第1検索処理とは異なる第2検索処理により検索された前記正解オブジェクトを示す前記正解データを取得する
ことを特徴とする請求項1~11のいずれか1項に記載の情報処理装置。 The acquisition unit
The information according to any one of claims 1 to 11 , wherein the correct data indicating the correct object searched by a second search process different from the first search process, which is the search process, is obtained. processing equipment.
探索範囲を決定するための係数である検索範囲係数の値が前記第1検索処理よりも大きく設定された前記第2検索処理により検索された前記正解オブジェクトを示す前記正解データを取得し、
前記更新部は、
前記検索範囲係数が前記第2検索処理よりも小さい値に設定された前記第1検索処理により検索された検索結果オブジェクトに含まれない前記対象オブジェクトに対応する前記対象ノードに連結する前記追加エッジを追加する
ことを特徴とする請求項12に記載の情報処理装置。 The acquisition unit
obtaining the correct data indicating the correct object searched by the second search process in which the value of the search range coefficient, which is a coefficient for determining the search range, is set larger than that of the first search process;
The updating unit
The additional edge connected to the target node corresponding to the target object not included in the search result objects searched by the first search process with the search range coefficient set to a value smaller than that of the second search process. The information processing apparatus according to claim 12 , characterized by adding.
前記検索範囲係数の値が0に設定された前記第1検索処理により検索された検索結果オブジェクトに含まれない前記対象オブジェクトに対応する前記対象ノードに連結する前記追加エッジを追加する
ことを特徴とする請求項13に記載の情報処理装置。 The updating unit
adding the additional edge connected to the target node corresponding to the target object not included in the search result objects searched by the first search process in which the value of the search range coefficient is set to 0. 14. The information processing apparatus according to claim 13 .
前記クエリと、前記複数のオブジェクトの各々との比較により検索された前記正解オブジェクトを示す前記正解データを取得する
ことを特徴とする請求項1~14のいずれか1項に記載の情報処理装置。 The acquisition unit
The information processing apparatus according to any one of claims 1 to 14 , wherein the correct data indicating the correct object retrieved by comparing the query with each of the plurality of objects is obtained.
探索範囲を決定するための係数である検索範囲係数の値が0に設定された前記検索処理により検索された検索結果オブジェクトに含まれない前記対象オブジェクトに対応する前記対象ノードに連結する前記追加エッジを追加する
ことを特徴とする請求項15に記載の情報処理装置。 The updating unit
The additional edge connected to the target node corresponding to the target object not included in the search result objects searched by the search processing with a search range coefficient value set to 0, which is a coefficient for determining the search range. The information processing apparatus according to claim 15 , further comprising:
複数のオブジェクトのうち、前記複数のオブジェクトの各々に対応する複数のノードがエッジで連結されたグラフの検索に用いるクエリに近い正解オブジェクトを示す正解データを取得する取得工程と、
前記正解データが示す前記正解オブジェクトのうち、前記クエリを用いた前記グラフの検索処理により検索された検索結果オブジェクトに含まれない対象オブジェクトに対応する対象ノードに連結する追加エッジを追加することにより、前記グラフを更新する更新工程と、
を含み、
前記更新工程は、
前記検索結果オブジェクトから選択される選択オブジェクトに対応するノードである選択ノードと、前記対象ノードとの間を連結する前記追加エッジを追加する第1の処理、または前記複数のオブジェクトに対応付けられていないノードである仮想ノードを前記グラフに追加し、前記仮想ノードと前記対象ノードとの間を連結する前記追加エッジを追加し、前記検索結果オブジェクトから選択される選択オブジェクトに対応するノードである選択ノードと、前記仮想ノードとの間を連結するエッジを追加する第2の処理のうち少なくとも1つの処理を実行する
ことを特徴とする情報処理方法。 A computer-executed information processing method comprising:
an obtaining step of obtaining correct data indicating a correct object close to a query used for searching a graph in which a plurality of nodes corresponding to each of the plurality of objects are connected by edges among a plurality of objects;
By adding an additional edge connected to a target node corresponding to a target object not included in the search result objects searched by the search processing of the graph using the query, among the correct objects indicated by the correct data, an updating step of updating the graph;
including
The updating step includes:
a first process of adding the additional edge connecting between a selected node, which is a node corresponding to a selected object selected from the search result object, and the target node, or a process associated with the plurality of objects; adding to the graph a virtual node that is a non-existent node; adding the additional edge connecting between the virtual node and the target node; performing at least one of a second process of adding an edge connecting between a node and the virtual node
An information processing method characterized by:
前記正解データが示す前記正解オブジェクトのうち、前記クエリを用いた前記グラフの検索処理により検索された検索結果オブジェクトに含まれない対象オブジェクトに対応する対象ノードに連結する追加エッジを追加することにより、前記グラフを更新する更新手順と、
をコンピュータに実行させ、
前記更新手順は、
前記検索結果オブジェクトから選択される選択オブジェクトに対応するノードである選択ノードと、前記対象ノードとの間を連結する前記追加エッジを追加する第1の処理、または前記複数のオブジェクトに対応付けられていないノードである仮想ノードを前記グラフに追加し、前記仮想ノードと前記対象ノードとの間を連結する前記追加エッジを追加し、前記検索結果オブジェクトから選択される選択オブジェクトに対応するノードである選択ノードと、前記仮想ノードとの間を連結するエッジを追加する第2の処理のうち少なくとも1つの処理を実行する
ことを特徴とする情報処理プログラム。 an acquisition procedure for acquiring correct data indicating a correct object close to a query used for searching a graph in which a plurality of nodes corresponding to each of the plurality of objects are connected by edges among a plurality of objects;
By adding an additional edge connected to a target node corresponding to a target object not included in the search result objects searched by the search processing of the graph using the query, among the correct objects indicated by the correct data, an update procedure for updating the graph;
on the computer, and
The update procedure includes:
a first process of adding the additional edge connecting between a selected node, which is a node corresponding to a selected object selected from the search result object, and the target node, or a process associated with the plurality of objects; adding to the graph a virtual node that is a non-existent node; adding the additional edge connecting between the virtual node and the target node; An information processing program, characterized by executing at least one of a second process of adding an edge connecting between a node and the virtual node .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020139656A JP7130019B2 (en) | 2020-08-20 | 2020-08-20 | Information processing device, information processing method, and information processing program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020139656A JP7130019B2 (en) | 2020-08-20 | 2020-08-20 | Information processing device, information processing method, and information processing program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022035382A JP2022035382A (en) | 2022-03-04 |
JP7130019B2 true JP7130019B2 (en) | 2022-09-02 |
Family
ID=80443372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020139656A Active JP7130019B2 (en) | 2020-08-20 | 2020-08-20 | Information processing device, information processing method, and information processing program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7130019B2 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012098845A (en) | 2010-10-29 | 2012-05-24 | Rakuten Inc | Information processing apparatus, information processing system, information processing program, computer readable recording medium with information processing program recorded thereon and information processing method |
JP2019160064A (en) | 2018-03-15 | 2019-09-19 | ヤフー株式会社 | Information processor, information processing method and program |
-
2020
- 2020-08-20 JP JP2020139656A patent/JP7130019B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012098845A (en) | 2010-10-29 | 2012-05-24 | Rakuten Inc | Information processing apparatus, information processing system, information processing program, computer readable recording medium with information processing program recorded thereon and information processing method |
JP2019160064A (en) | 2018-03-15 | 2019-09-19 | ヤフー株式会社 | Information processor, information processing method and program |
Also Published As
Publication number | Publication date |
---|---|
JP2022035382A (en) | 2022-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6183376B2 (en) | Index generation apparatus and method, search apparatus, and search method | |
JP6311000B1 (en) | Generating device, generating method, and generating program | |
JP7354014B2 (en) | Information processing device, information processing method, and information processing program | |
JP7080803B2 (en) | Information processing equipment, information processing methods, and information processing programs | |
JP6976178B2 (en) | Extractor, extraction method, and extraction program | |
JP7353737B2 (en) | Information processing device, information processing method, and information processing program | |
JP6959164B2 (en) | Generation device, generation method, and generation program | |
JP5552981B2 (en) | Index method, search method, and storage medium thereof | |
JP7130019B2 (en) | Information processing device, information processing method, and information processing program | |
JP7121706B2 (en) | Information processing device, information processing method, and information processing program | |
JP7414906B2 (en) | Information processing device, information processing method, and information processing program | |
JP2018195156A (en) | Generation device, generation method, and generation program | |
JP7330756B2 (en) | Information processing device, information processing method, and information processing program | |
JP6498266B2 (en) | Generating device, generating method, and generating program | |
JP6974248B2 (en) | Information processing equipment, information processing methods, and information processing programs | |
JP7122293B2 (en) | Information processing device, information processing method, and information processing program | |
JP6933636B2 (en) | Information processing equipment, information processing methods, and information processing programs | |
JP7388661B2 (en) | Information processing device, information processing method, and information processing program | |
JP7239433B2 (en) | Information processing device, information processing method, and information processing program | |
JP7208955B2 (en) | Information processing device, information processing method, information processing program, information retrieval device, information retrieval method, and information retrieval program | |
JP2024071095A (en) | Information processing apparatus, information processing method, and information processing program | |
JP2020161089A (en) | Information processing device, information processing method, and program | |
JP6856567B2 (en) | Information processing equipment, information processing methods, and information processing programs | |
JP2019159965A (en) | Information processor, information processing method and program | |
JP6562984B2 (en) | Generating device, generating method, and generating program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210317 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220524 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220725 |
|
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: 20220809 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220823 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7130019 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 |