JP6300982B2 - SEARCH DATA MANAGEMENT DEVICE, SEARCH DATA MANAGEMENT METHOD, AND SEARCH DATA MANAGEMENT PROGRAM - Google Patents
SEARCH DATA MANAGEMENT DEVICE, SEARCH DATA MANAGEMENT METHOD, AND SEARCH DATA MANAGEMENT PROGRAM Download PDFInfo
- Publication number
- JP6300982B2 JP6300982B2 JP2017075781A JP2017075781A JP6300982B2 JP 6300982 B2 JP6300982 B2 JP 6300982B2 JP 2017075781 A JP2017075781 A JP 2017075781A JP 2017075781 A JP2017075781 A JP 2017075781A JP 6300982 B2 JP6300982 B2 JP 6300982B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- graph
- search
- distance
- transposed
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、検索データ管理装置、検索データ管理方法、および検索データ管理プログラムに関する。 The present invention relates to a search data management device, a search data management method, and a search data management program.
画像検索などのデータ検索の分野において、検索対象のデータ同士を仮想的に接続要素によって接続したグラフ構造のデータを構築しておき、接続要素を辿ることで、データ検索が行われている。接続要素とは、二つのデータが接続されていることを示す情報であり、エッジ、リンクなどと称される(以下ではエッジと称する)。エッジの設定は、まず検索対象のデータのオブジェクトを求め、オブジェクトが近いデータ同士を接続するといった規則に従って行われる。オブジェクトとは、距離が定義可能なデータである。オブジェクトは、典型的には多次元ベクトルデータで表され、オブジェクトが近いとは、例えば、多次元ベクトルデータ間の距離が短いことと定義される。多次元ベクトルデータ同士の距離としては、例えば、ベクトル要素間の差分についてLpノルムを求めたものが使用される(p=1、2、…)。 In the field of data search such as image search, data search is performed by constructing data having a graph structure in which search target data is virtually connected by connection elements and tracing the connection elements. The connection element is information indicating that two pieces of data are connected, and is referred to as an edge or a link (hereinafter referred to as an edge). The setting of the edge is performed according to a rule such that an object of data to be searched is first obtained and data close to each other is connected. An object is data whose distance can be defined. An object is typically represented by multidimensional vector data, and being close to an object is defined, for example, as a short distance between multidimensional vector data. As the distance between the multidimensional vector data, for example, the Lp norm obtained for the difference between the vector elements is used (p = 1, 2,...).
また、エッジには、有向エッジと無向エッジが存在する。有向エッジとは、一方向にしかデータを辿れないエッジであり、無向エッジとは、双方向にデータを辿ることができるエッジである。無向エッジによって表現されたグラフ構造のデータ(無向グラフ)を用いて検索を行う技術が開示されている(特許文献1参照)。 In addition, there are directed edges and undirected edges. A directed edge is an edge that can trace data in only one direction, and an undirected edge is an edge that can trace data in both directions. A technique for performing a search using graph structure data (undirected graph) expressed by an undirected edge is disclosed (see Patent Document 1).
無向グラフを使用する場合、検索経路のパターンが多くなるため、より網羅的な検索を行うことができる。反面、無駄な経路で検索を行ってしまう機会も多くなるため、時間辺りの検索精度が、有向グラフを用いた場合よりも高くなるとは限らない。 When an undirected graph is used, since there are many patterns of search paths, a more comprehensive search can be performed. On the other hand, since there are many opportunities to perform a search using a useless route, the search accuracy over time is not always higher than when a directed graph is used.
一方で、有向グラフを使用する場合、そのグラフの作り方によっては、他のデータから参照されないデータが出現する可能性がある。この場合、検索処理において、そのデータに辿り着かない可能性が高くなり、網羅的な検索を行うことができなくなる場合がある。 On the other hand, when a directed graph is used, data that is not referred to by other data may appear depending on how the graph is created. In this case, in the search process, there is a high possibility that the data cannot be reached, and an exhaustive search may not be performed.
本発明は、このような事情を考慮してなされたものであり、高速かつ高精度な検索を可能にする有向グラフを生成することができる検索データ管理装置、検索データ管理方法、および検索データ管理プログラムを提供することを目的の一つとする。 The present invention has been made in consideration of such circumstances, and a search data management device, a search data management method, and a search data management program capable of generating a directed graph that enables high-speed and high-precision search Is one of the purposes.
本発明の一態様は、データ検索の対象となる複数のノードを記憶する記憶部と、前記記憶部に記憶された各ノードから近傍ノードに対して有向エッジが設定されたグラフ構造のデータである一次グラフを生成する一次グラフ生成部と、前記記憶部に記憶された一次グラフにおける前記有向エッジの向きを逆にしたグラフ構造のデータである転置グラフを、データ検索のためのデータとして生成する転置グラフ生成部と、を備える検索データ管理装置である。 One aspect of the present invention is a storage unit that stores a plurality of nodes to be searched for data, and data having a graph structure in which a directed edge is set for each neighboring node from each node stored in the storage unit. A primary graph generation unit that generates a certain primary graph and a transposed graph that is data of a graph structure in which the direction of the directed edge in the primary graph stored in the storage unit is reversed is generated as data for data search And a transposed graph generation unit.
本発明の一態様によれば、高速かつ高精度な検索を可能にする有向グラフを生成することができる検索データ管理装置、検索データ管理方法、および検索データ管理プログラムを提供することができる。 According to one embodiment of the present invention, it is possible to provide a search data management device, a search data management method, and a search data management program that can generate a directed graph that enables high-speed and highly accurate search.
以下、図面を参照し、本発明の検索データ管理装置、検索データ管理方法、および検索データ管理プログラムの実施形態について説明する。 Hereinafter, embodiments of a search data management device, a search data management method, and a search data management program according to the present invention will be described with reference to the drawings.
<第1実施形態>
以下、第1実施形態について説明する。
[全体構成]
図1は、実施形態の検索データ管理装置1を中心とした構成図である。検索データ管理装置1は、一以上のクライアント端末CLとネットワークNWを介して接続される。クライアント端末は、パーソナルコンピュータ、スマートフォンなどの携帯電話、タブレット端末、その他の端末装置である。ネットワークNWは、無線基地局、公衆回線、専用回線、プロバイダ端末、インターネットなどを含む。検索データ管理装置1は、クライアント端末CLからクエリデータを受信すると、クエリデータに類似するデータを検索し、検索結果をクライアント端末CLに返信する。検索データ管理装置1が返信するデータは、データそのもの(例えばjpgなどで生成された画像データ)であってもよいし、データを参照するための識別子(URLなど)であってもよい。また、クエリデータや検索対象のデータは、画像、音声、テキストデータなど、如何なる種類のデータであってもよい。以下の説明では、検索データ管理装置1が画像を検索するものとして説明する。
<First Embodiment>
The first embodiment will be described below.
[overall structure]
FIG. 1 is a configuration diagram centering on a search
検索データ管理装置1は、例えば、ネットワークインターフェース10と、制御部20と、入出力装置30と、データサーバ40とを備える。ネットワークインターフェース10は、例えば、NIC(Network Interface Card)である。
The search
制御部20は、例えば、データオブジェクト生成部22と、インデックス検索部24と、グラフインデックス編集部26とを備える。グラフインデックス編集部26は、一次グラフ生成部26Aと、転置グラフ生成部26Bとを備える。これらの制御部20の構成要素は、例えば、CPU(Central Processing Unit)などのプロセッサがプログラムを実行することにより実現される。また、これらの機能部のうち一部または全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)などのハードウェアによって実現されてもよいし、ソフトウェアとハードウェアが協働して実現されてもよい。これらの機能部による処理の内容については後述する。
The
図2は、制御部20のハードウェア構成の一例を示す図である。制御部20は、例えば、CPU20Aと、RAM(Random Access Memory)20Bと、プログラムメモリ20Cとが内部バスによって接続された構成を有する。内部バスには、ネットワークインターフェース10、入出力インターフェース、メモリインターフェースなどの各種インターフェースが接続される。RAM20Bには、CPU20Aによる処理対象のデータ、或いは処理結果のデータなどが格納される。プログラムメモリ20Cは、ROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリなどの記憶装置のうち一部または全部を含む。プログラムメモリ20Cには、データオブジェクト生成プログラム20Ca、インデックス検索プログラム20Cb、グラフインデックス編集プログラム20Ccなどのプログラムが格納される。これらのプログラムは明確に分離されている必要はなく、一部または全部が共通化されてもよい。
FIG. 2 is a diagram illustrating an example of a hardware configuration of the
図1に戻り、入出力装置30は、検索データ管理装置1の管理者による入力操作を受け付けるマウスやキーボード、タッチパネルなどの入力装置と、LCD(Liquid Crystal Display)や有機EL(Electroluminescence)表示装置、スピーカなどの出力装置とを含む。
Returning to FIG. 1, the input /
データサーバ40は、HDDやフラッシュメモリなどの記憶装置により実現される。データサーバ40は、制御部20のプログラムメモリ20Cと共通化されてもよいし、プログラムメモリ20Cとは別体の記憶装置により実現されてもよい。また、データサーバ40は、検索データ管理装置1から各種ネットワークを介してアクセス可能なNAS(Network Attached Storage)装置などの外部記憶装置により実現されてもよい。この場合、特許請求の範囲における「記憶部」は、データサーバ40から取得したデータが一時的に格納されるRAM20Bを指すものと解釈してもよい。
The
[制御部]
以下、制御部20の各機能部による処理の内容について説明する。なお、制御部20は、一つのプロセッサにより実現される必要はなく、機能ごとに分散処理を行ってもよい。例えば、データオブジェクト生成部22およびインデックス検索部24と、グラフインデックス編集部26とは、それぞれ別体のプロセッサにより実現されてもよい。
[Control unit]
Hereinafter, the contents of processing by each functional unit of the
データオブジェクト生成部22は、クライアント端末CLなどから受信した入力データに基づいて、入力データのオブジェクトを生成する。入力データが画像である場合、オブジェクトは、例えば、局所特徴量やBoF(Bag of Features)、色のヒストグラムなど、或いはこれらの組み合わせである。また、入力データがテキストデータである場合、オブジェクトは、例えば、単語の出現頻度のベクトルデータ、ニューラルネットワークを用いて抽出した意味ベクトル、或いは、他の単語と共に出現する頻度その他の相対関係に基づくベクトルなどである。オブジェクトは、データ検索の対象となる「ノード」の一例である。
The data object
インデックス検索部24は、データオブジェクト生成部22により生成されたオブジェクト(以下、新規オブジェクトと称する)をクエリデータとしてデータサーバ40を検索し、新規オブジェクトに類似するオブジェクトを、既存データオブジェクト42から抽出する。データサーバ40には、例えば、既存データオブジェクト42と、グラフインデックス44とが格納される。
The
既存データオブジェクト42は、検索対象となるデータから予め生成されたオブジェクトのデータである。既存データオブジェクト42には、その既存データオブジェクト42を生成する元となったデータ、或いはデータを参照する識別子が対応付けられている。検索データ管理装置1は、新規オブジェクトをクエリとして得られた既存オブジェクト、すなわち新規オブジェクトに類似するオブジェクトに対応付けられたデータ、或いはそのデータを参照する識別子をクライアント端末CLに送信する。図3は、既存データオブジェクト42の内容の一例を示す図である。図示するように、既存データオブジェクト42は、オブジェクトの識別情報(図中、オブジェクトID)に対して、オブジェクト(図ではベクトルデータ)、およびそのオブジェクトを生成する元となったデータ、或いはデータを参照する識別子が対応付けられたデータである。
The existing data object 42 is data of an object generated in advance from data to be searched. The existing data object 42 is associated with data used to generate the existing data object 42 or an identifier that refers to the data. The search
グラフインデックス44は、複数のオブジェクトを接続するエッジに関する情報であり、参照元のオブジェクトと参照先のオブジェクトとを接続する有向エッジの集合により形成されるグラフ構造のデータである。図4は、グラフインデックス44の内容の一例を示す図である。
The
グラフインデックス44は、例えば、参照元のオブジェクトの識別情報である参照元オブジェクトIDに対し、参照先のオブジェクトの識別情報である参照先オブジェクトID、それらを接続する有向エッジの識別情報であるエッジID、および参照元のオブジェクトと参照先のオブジェクトとの距離などの情報が対応付けられたものである。オブジェクトがベクトルである場合、それらの距離は、例えば、ベクトル要素間の差分についてLpノルムを求めたものと定義される(p=1、2、…)。なお、図3および図4に示すデータ構造は、あくまで一例であり、他のデータ構造が採用されてもよい。例えば、グラフインデックス44は、エッジIDに対してその他の情報が対応付けられたものであってもよい。すなわち、本実施形態においてデータ構造の形式は本質的な問題ではなく、距離が定義されている限り、如何なるデータ構造のデータがデータサーバ40に格納されてもよい。なお、本来距離とは距離の公理を満たすことを意味するが、距離の公理を満たさない擬似的な距離であっても構わない。擬似的な距離の場合には検索性能が低下するが、処理上扱いやすいなどのメリットがあれば疑似的な距離を使用してもよい。
The
インデックス検索部24は、グラフインデックス44により規定されたエッジによって、参照元のオブジェクトから参照先のオブジェクトへの向きに従って辿ることのできるオブジェクトのうち、新規オブジェクトに対して既定の距離以内にあるオブジェクトを、新規オブジェクトに類似するオブジェクトとして抽出する。また、インデックス検索部24は、グラフインデックス44により規定されたエッジによって、参照元のオブジェクトから参照先のオブジェクトへの向きに従って辿ることのできるオブジェクトのうち、新規オブジェクトに対する距離が短いものから順に所定数のオブジェクトを、新規オブジェクトに類似するオブジェクトとして抽出してもよい。そして、インデックス検索部24は、既存データオブジェクト42において、抽出したオブジェクトに対応付けられているデータまたはその識別子を、ネットワークインターフェース10およびネットワークNWを介してクライアント端末CLに送信する。
Of the objects that can be traced according to the direction from the reference source object to the reference destination object by the edge defined by the
なお、インデックス検索部24による検索処理は、例えば、後述する図13のフローチャートの処理を用いて実現される。図13のフローチャートにおいて、新規オブジェクトをオブジェクトyとして得られるオブジェクト集合Rが、インデックス検索部24による検索結果の一例である。この場合、所定数ksを所望の値に調整することで、検索結果に含まれるオブジェクトの数を調整することができる。
Note that the search processing by the
データオブジェクト生成部22およびインデックス検索部24の機能によって、クライアント端末CLは、送信したデータに類似するデータを検索データ管理装置1から取得することができる。なお、検索データ管理装置1の役割は、新規オブジェクトに類似するオブジェクトを抽出するところまでであってもよく、その場合、抽出したオブジェクトに対応したデータ、或いはデータを参照する識別子をクライアント端末CLに送信する機能は、検索データ管理装置1とは異なる装置が有してもよい。
With the functions of the data object
グラフインデックス編集部26の一次グラフ生成部26Aは、グラフインデックス44の元となる有向グラフ(一次グラフ)Gを生成する。一次グラフ生成部26Aは、一次グラフをRAM20Bまたはデータサーバ40などの記憶部に記憶させる。なお、以下の説明において「オブジェクト間の距離が短い」と「オブジェクト同士が近い」、および「オブジェクト間の距離が長い」と「オブジェクトが遠い」は同じ意味である。
The primary
図5は、一次グラフ生成部26Aによる処理の流れの一例を示すフローチャートである。本フローチャートの処理の前提として、既存データオブジェクト42に含まれるオブジェクトには、1からnまでのオブジェクトIDが付与されているものとする。フローチャートの中で使用する引数iおよびjは、1からnまで順に選択されて処理が実行される。すなわち、一次グラフ生成部26Aは、まず、引数iを1に設定すると共に、引数jを1から一つずつインクリメントしながら引数jがnに至るまで繰り返しS100〜S106の処理を行う。次に、一次グラフ生成部26Aは、引数iを2に設定すると共に、引数jを1から一つずつインクリメントしながら引数jがnに至るまで繰り返しS100〜S106の処理を行う。これを、引数iがnに至るまで繰り返し実行する。
FIG. 5 is a flowchart illustrating an example of a flow of processing by the primary graph generation unit 26A. As a premise of the processing of this flowchart, it is assumed that
まず、一次グラフ生成部26Aは、オブジェクトi(オブジェクトIDがiであるオブジェクト;以下同様)が、オブジェクトjの近傍オブジェクト集合N(G,j)の要素である、またはi=jであるか否かを判定する(S100)。オブジェクトjの近傍オブジェクト集合N(G,j)とは、オブジェクトj(着目ノードの一例)から見て距離が短い方から順に所定数kpだけ選択されるオブジェクトの集合であり、オブジェクトjを参照元とする参照先のオブジェクトの集合である。以下、オブジェクトjを参照元とし、近傍オブジェクト集合N(G,j)に含まれるオブジェクトを参照先とするエッジを、「オブジェクトjに付与されたエッジ」と称することがある。「G」は、グラフ構造のデータを示す符号である。オブジェクトjの近傍オブジェクト集合N(G,j)の要素であるオブジェクトのそれぞれと、オブジェクトjとの間は、有向エッジによって接続される。従って、少なくともオブジェクトjの近傍オブジェクト集合N(G,j)の要素であるオブジェクトは、オブジェクトjから一つのエッジを介して辿ることのできるオブジェクトである。なお、オブジェクトjが、オブジェクトjの近傍オブジェクト集合N(G,j)の要素でない他のオブジェクト(例えばu)の近傍オブジェクト集合N(G,u)の要素である場合もある。以下、このことを前提として説明する。オブジェクトiがオブジェクトjの近傍オブジェクト集合N(G,j)の要素である場合、またはi=jである場合、S102〜S106の処理がスキップされる。 First, the primary graph generation unit 26A determines whether the object i (the object whose object ID is i; hereinafter the same) is an element of the neighborhood object set N (G, j) of the object j or i = j. Is determined (S100). The neighborhood object set N (G, j) of the object j is a set of objects that are selected by a predetermined number kp in order from the shortest distance when viewed from the object j (an example of the target node). Is a set of reference destination objects. Hereinafter, an edge having the object j as a reference source and an object included in the neighborhood object set N (G, j) as a reference destination may be referred to as an “edge given to the object j”. “G” is a code indicating data having a graph structure. Each of the objects that are elements of the neighborhood object set N (G, j) of the object j and the object j are connected by a directed edge. Therefore, at least an object that is an element of the neighborhood object set N (G, j) of the object j is an object that can be traced from the object j through one edge. Note that the object j may be an element of a neighboring object set N (G, u) of another object (for example, u) that is not an element of the neighboring object set N (G, j) of the object j. Hereinafter, this will be described on the assumption. When the object i is an element of the neighborhood object set N (G, j) of the object j, or when i = j, the processing of S102 to S106 is skipped.
オブジェクトiがオブジェクトjの近傍オブジェクト集合N(G,j)の要素でなく、且つi=jでない場合、一次グラフ生成部26Aは、オブジェクトiをオブジェクトjの近傍オブジェクト集合N(G,j)の要素に追加する(S102)。次に、一次グラフ生成部26Aは、オブジェクトjの近傍オブジェクト集合N(G,j)の要素であるオブジェクトの数が所定数kpを超えるか否かを判定する(S104)。所定数kpは、任意に定められる自然数である。例えば、kp=40である。オブジェクトjの近傍オブジェクト集合N(G,j)の要素であるオブジェクトの数が所定数kpを超える場合、一次グラフ生成部26Aは、オブジェクトjの近傍オブジェクト集合N(G,j)から、オブジェクトjとの距離が最も長い(オブジェクトjから最も遠い)オブジェクトを除外する(S106)。 If the object i is not an element of the neighboring object set N (G, j) of the object j and i = j is not satisfied, the primary graph generation unit 26A sets the object i to the neighboring object set N (G, j) of the object j. It adds to an element (S102). Next, the primary graph generation unit 26A determines whether or not the number of objects that are elements of the neighborhood object set N (G, j) of the object j exceeds a predetermined number kp (S104). The predetermined number kp is an arbitrary natural number. For example, kp = 40. When the number of objects that are elements of the neighborhood object set N (G, j) of the object j exceeds the predetermined number kp, the primary graph generation unit 26A determines that the object j from the neighborhood object set N (G, j) of the object j Are excluded (S106).
図6は、近傍オブジェクト集合が更新される様子を示す図である。図示の例では、元々、オブジェクトjの近傍オブジェクト集合N(G,j)にオブジェクト(1)〜(3)が設定されていたところ、オブジェクトiが追加されると共にオブジェクト(3)が除外された。この結果、オブジェクトjの近傍オブジェクト集合N(G,j)がN(G,j)*に更新された。このような処理を繰り返すことで、オブジェクトx=1〜nの全てについて、近傍オブジェクト集合N(G,x)が設定される。これによって、グラフインデックス44の元となる有向グラフ(一次グラフ)Gが生成される。
FIG. 6 is a diagram illustrating a state in which the neighborhood object set is updated. In the illustrated example, when the objects (1) to (3) were originally set in the neighborhood object set N (G, j) of the object j, the object i was added and the object (3) was excluded. . As a result, the neighborhood object set N (G, j) of the object j is updated to N (G, j) *. By repeating such processing, the neighborhood object set N (G, x) is set for all of the objects x = 1 to n. As a result, a directed graph (primary graph) G that is the basis of the
転置グラフ生成部26Bは、一次グラフ生成部26Aにより生成された一次グラフGに対して、エッジの向きを逆にした(すなわち参照元のデータと参照先のデータを入れ替えた)転置グラフGrを生成する。図7は、一次グラフGに基づいて転置グラフGrが生成される様子を示す図である。
The transposed
ここで、一次グラフGにおいては、「他のデータから参照されない、或いは参照元のデータが極めて少ないデータ」が存在する可能性がある。これに対し、転置グラフGrにおいては、各データは、所定数kpのデータから参照されることが保証されている。この結果、検索漏れを無くすことができる。 Here, in the primary graph G, there is a possibility that “data that is not referred to by other data or that has very little reference source data” exists. On the other hand, in the transposed graph Gr, each data is guaranteed to be referred to from a predetermined number kp of data. As a result, search omissions can be eliminated.
また、転置グラフ生成部26Bは、転置グラフに対し、各オブジェクトに付与されたエッジに対して、逆向きのエッジを所定数kr(または所定割合)加えてもよい。所定数krは、所定数kpよりも小さい数であり、一例として、kr=20である。以下、逆向きのエッジを所定数kr加えたものを転置グラフGr+と称する。図8は、転置グラフGrに基づいて転置グラフGr+が生成される様子を示す図である。図中、AEは転置グラフGrに対して追加されたエッジである。
Further, the transposed
更に、転置グラフ生成部26Bは、逆向きのエッジを所定数kr加えた転置グラフGr+に対し、各オブジェクトに付与されたエッジを長さ順にソートし、短い順に所定数km(または所定割合)のエッジを残して長いエッジを削除してもよい。一例として、km=60である。以下、短い順に所定数kmのエッジを残して長いエッジを削除したものを転置グラフGr++と称する。図9は、転置グラフGr+に基づいて転置グラフGr++が生成される様子を示す図である。図中、破線で示す矢印は、転置グラフGr+から削除されたエッジである。なお、転置グラフ生成部26Bは、転置グラフGr+を生成せず、転置グラフGrにおいて、各オブジェクトに付与されたエッジを長さ順にソートし、短い順に所定数kmのエッジを残して長いエッジを削除して転置グラフGr++を生成してもよい。
Further, the transposed
図1に示すグラフインデックス44は、例えば、転置グラフGr、転置グラフGr+、または転置グラフGr++のうちいずれかである。
The
図10は、転置グラフ生成部26Bにより実行される処理の流れの一例を示すフローチャートである。なお、本フローチャートの処理は、図8に示す処理と、図9に示す処理とを明確に分離せず、これらの処理をオブジェクト毎の処理に包含させたものであるが、結果として得られる転置グラフGr++は同じになる。
FIG. 10 is a flowchart illustrating an example of a flow of processing executed by the transposed
まず、転置グラフ生成部26Bは、RAM20Bまたはデータサーバ40に記憶された一次グラフからエッジを一つ選択し(S200)、参照元と参照先を入れ替える(S202)。次に、転置グラフ生成部26Bは、S200において全てのエッジを選択したか否かを判定する(S204)。全てのエッジを選択していない場合、S200に戻り、次のエッジを選択する。全てのエッジを選択した場合、S206に処理が進められる。これによって、転置グラフGrが生成される。転置グラフGは、RAM20Bまたはデータサーバ40に格納される。
First, the transposed
転置グラフ生成部26Bは、転置グラフGにおけるオブジェクトを一つ選択する(S206)。以下、S206で選択されたオブジェクトを選択オブジェクトと称する。次に、転置グラフ生成部26Bは、選択オブジェクトに付与されたエッジが無いかどうかを判定する(S208)。選択オブジェクトに付与されたエッジとは、前述したように、選択オブジェクトを参照元とするエッジである。選択オブジェクトに付与されたエッジが無い場合、転置グラフ生成部26Bは、選択オブジェクトに所定数kaのエッジを付与する(S210)。例えば、転置グラフ生成部26Bは、選択オブジェクトを参照先とするエッジのうち短い方から順に所定数kaのエッジを選択し、これらと逆向きのエッジを選択オブジェクトに付与する。なお、S208およびS210の処理は必須でなく、付与されたエッジの無いオブジェクトが生じる可能性が低い場合、省略されてもよい。
The transposed
次に、転置グラフ生成部26Bは、選択オブジェクトに付与されたエッジを長さ順にソートし(S212)、最も短いエッジから順に所定数kr分、逆向きのエッジを転置グラフGに追加する(S214)。また、転置グラフ生成部26Bは、最も長いエッジから順に、所定数kmのエッジを残すように削除を行う(S216)。
Next, the transposed
そして、転置グラフ生成部26Bは、S206において全てのオブジェクトを選択したか否かを判定する(S218)。全てのオブジェクトを選択していない場合、S206に戻り、次のオブジェクトを選択する。全てのオブジェクトを選択した場合、本フローチャートの処理が終了する。これによって、転置グラフGr++が生成される。転置グラフGr++は、グラフインデックス44としてデータサーバ40に格納される。
Then, the transposed
図11は、上記各グラフを用いて検索を行うシミュレーションの結果を示す図である。本シミュレーションは、画像の局所特徴量SIFTをオブジェクトとし、上記説明した各種グラフを用いて、SIFT1000万件から20件の近傍オブジェクトを検索するシミュレーションである。このシミュレーションは、前述のように、kp=40、kr=20、km=60として行った。図11は、そのシミュレーション結果としての検索時間に対する精度の関係を示している。図中、縦軸は精度(20件中の正解数の割合)を、横軸は検索時間を示している。このため、特性線が左上に偏しているほどシミュレーション結果が良好であったことになる。図示するように、転置グラフGr++を用いた場合に最も良好なシミュレーション結果が得られ、次いで転置グラフGr+、転置グラフGr、一次グラフGの順であった。 FIG. 11 is a diagram showing the results of a simulation for performing a search using each of the above graphs. This simulation is a simulation in which the local feature amount SIFT of an image is an object, and 20 neighboring objects are searched from 10 million SIFTs using the various graphs described above. As described above, this simulation was performed with kp = 40, kr = 20, and km = 60. FIG. 11 shows the relationship of accuracy with respect to search time as the simulation result. In the figure, the vertical axis represents accuracy (ratio of the number of correct answers in 20 cases), and the horizontal axis represents search time. For this reason, the simulation result is better as the characteristic line is biased to the upper left. As shown in the figure, the best simulation result was obtained when the transposed graph Gr ++ was used, and then the transposed graph Gr + , the transposed graph Gr, and the primary graph G were in this order.
以上説明した第1実施形態の検索データ管理装置1によれば、一次グラフGにおける有向エッジの向きを逆にしたグラフ構造のデータである転置グラフGrを、データ検索のためのデータとして生成するため、高速かつ高精度な検索を可能にする有向グラフを生成することができる。
According to the search
また、第1実施形態の検索データ管理装置1によれば、転置グラフGrにおいて、各オブジェクトに付与されたエッジに対して、逆向きのエッジを所定数kr加えた転置グラフGr+を生成することにより、より高速かつ高精度な検索を可能にする有向グラフを生成することができる。
Further, according to the search
また、第1実施形態の検索データ管理装置1によれば、転置グラフGr+において、各オブジェクトに付与されたエッジを長さ順にソートし、短い順に所定数kmのエッジを残して長いエッジを削除した転置グラフGr++を生成することにより、更に高速かつ高精度な検索を可能にする有向グラフを生成することができる。
Further, according to the search
第1実施形態において(或いは後述する第2実施形態において)、一次グラフGは、図5で説明したフローチャートの処理ではなく、以下に説明する処理によって生成される無向グラフGaに対し、無向エッジを二本の有向エッジとみなし、各オブジェクトに付与されるエッジに上限を設けて、上限を超える分を距離の長いエッジから削減したものであってもよい。 In the first embodiment (or in the second embodiment described later), the primary graph G is not directed to the undirected graph Ga generated by the processing described below, instead of the processing of the flowchart described in FIG. The edge may be regarded as two directed edges, and an upper limit is provided for the edge given to each object, and the portion exceeding the upper limit is reduced from the edge having a long distance.
図12および図13は、無向グラフGaを生成する処理の一例を示すフローチャートである。本フローチャートの処理の前提として、既存データオブジェクト42において、1からmまでのオブジェクトIDが付与されているものとする。フローチャートの中で使用する引数yは、1からmまで順に選択されて処理が実行される。ここでは、近傍オブジェクト集合N(G,y)は、オブジェクトyに対して相互に参照し合うオブジェクトの集合である。
12 and 13 are flowcharts illustrating an example of processing for generating the undirected graph Ga. As a premise of the processing of this flowchart, it is assumed that
一次グラフ生成部26Aは、K近傍検索処理を実行する(S300)。K近傍検索処理については図13を用いて説明する。図13に示すように、一次グラフ生成部26Aは、超球の半径rを∞(無限大)に設定し(S400)、既存のオブジェクト集合から部分集合Sを抽出する(S402)。超球とは、検索範囲(その範囲に入っていれば入力オブジェクトyの近傍オブジェクト集合N(G,y)の要素に含められる可能性がある範囲)を示す仮想的な球である。なお、S402で抽出されたオブジェクト集合Sに含まれるオブジェクトは、同時にオブジェクト集合Rの初期集合にも含められてもよい。 The primary graph generation unit 26A executes a K neighborhood search process (S300). The K neighborhood search process will be described with reference to FIG. As shown in FIG. 13, the primary graph generation unit 26A sets the radius r of the hypersphere to ∞ (infinity) (S400), and extracts the subset S from the existing object set (S402). The hypersphere is a virtual sphere indicating a search range (a range that can be included in the elements of the neighborhood object set N (G, y) of the input object y if the range is included). Note that the objects included in the object set S extracted in S402 may be included in the initial set of the object set R at the same time.
次に、一次グラフ生成部26Aは、オブジェクト集合Sに含まれるオブジェクトの中で、オブジェクトyとの距離が最も短いオブジェクトを抽出し、オブジェクトsとする(S404)。次に、一次グラフ生成部26Aは、オブジェクトsをオブジェクト集合Sから除外する(S406)。 Next, the primary graph generation unit 26A extracts the object having the shortest distance from the object y from the objects included in the object set S and sets it as the object s (S404). Next, the primary graph generation unit 26A excludes the object s from the object set S (S406).
次に、一次グラフ生成部26Aは、オブジェクトsとオブジェクトyとの距離d(s,y)がr(1+ε)を超えるか否かを判定する(S408)。ここで、εは拡張要素であり、r(1+ε)は、探索範囲(その範囲にあるオブジェクトの近傍オブジェクトについて、入力オブジェクトyの近傍オブジェクト集合N(G,y)の要素に含められるか否かを判定する範囲)の半径を示す値である。オブジェクトsとオブジェクトyとの距離d(s,y)がr(1+ε)を超える場合、一次グラフ生成部26Aは、オブジェクト集合Rをオブジェクトyの近傍オブジェクト集合N(G,y)として出力し(S410)、図13のフローチャートの処理を終了する。 Next, the primary graph generation unit 26A determines whether or not the distance d (s, y) between the object s and the object y exceeds r (1 + ε) (S408). Here, ε is an expansion element, and r (1 + ε) is a search range (whether it is included in the elements of the neighborhood object set N (G, y) of the input object y for the neighborhood objects of the objects in the range) This is a value indicating the radius of the range in which to determine. When the distance d (s, y) between the object s and the object y exceeds r (1 + ε), the primary graph generation unit 26A outputs the object set R as a neighborhood object set N (G, y) of the object y ( S410), the process of the flowchart of FIG.
オブジェクトsとオブジェクトyとの距離d(s,y)がr(1+ε)を超えない場合、一次グラフ生成部26Aは、オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトの中からオブジェクト集合Cに含まれないオブジェクトを一つ選択し、選択したオブジェクトuを、オブジェクト集合Cに格納する(S412)。オブジェクト集合Cは、重複検索を回避するために便宜上設けられるものであり、図13のフローチャートが開始されるときにリセットされて空集合とされる。 When the distance d (s, y) between the object s and the object y does not exceed r (1 + ε), the primary graph generation unit 26A selects the object that is an element of the neighboring object set N (G, s) of the object s. Then, one object not included in the object set C is selected, and the selected object u is stored in the object set C (S412). The object set C is provided for convenience in order to avoid duplicate search, and is reset to an empty set when the flowchart of FIG. 13 is started.
次に、一次グラフ生成部26Aは、オブジェクトuとオブジェクトyとの距離d(u,y)がr(1+ε)以下であるか否かを判定する(S414)。オブジェクトuとオブジェクトyとの距離d(u,y)がr(1+ε)以下である場合、一次グラフ生成部26Aは、オブジェクトuをオブジェクト集合Sに追加する(S416)。 Next, the primary graph generation unit 26A determines whether or not the distance d (u, y) between the object u and the object y is equal to or less than r (1 + ε) (S414). When the distance d (u, y) between the object u and the object y is equal to or less than r (1 + ε), the primary graph generation unit 26A adds the object u to the object set S (S416).
次に、一次グラフ生成部26Aは、オブジェクトuとオブジェクトyとの距離d(u,y)がr以下であるか否かを判定する(S418)。オブジェクトuとオブジェクトyとの距離d(u,y)がrを超える場合、S430に処理が進められる。 Next, the primary graph generation unit 26A determines whether or not the distance d (u, y) between the object u and the object y is equal to or less than r (S418). If the distance d (u, y) between the object u and the object y exceeds r, the process proceeds to S430.
オブジェクトuとオブジェクトyとの距離d(u,y)がr以下である場合、一次グラフ生成部26Aは、オブジェクトuをオブジェクト集合Rに追加する(S420)。 When the distance d (u, y) between the object u and the object y is equal to or less than r, the primary graph generation unit 26A adds the object u to the object set R (S420).
そして、一次グラフ生成部26Aは、オブジェクト集合Rに含まれるオブジェクト数がksを超えるか否かを判定する(S422)。所定数ksは、任意に定められる自然数である。例えば、ks=3である。 Then, the primary graph generation unit 26A determines whether or not the number of objects included in the object set R exceeds ks (S422). The predetermined number ks is a natural number that is arbitrarily determined. For example, ks = 3.
オブジェクト集合Rに含まれるオブジェクト数がksを超える場合、一次グラフ生成部26Aは、オブジェクト集合Rに含まれるオブジェクトの中でオブジェクトyとの距離が最も長いオブジェクトを、オブジェクト集合Rから除外する(S424)。 When the number of objects included in the object set R exceeds ks, the primary graph generation unit 26A excludes the object having the longest distance from the object y from the object set R among the objects included in the object set R (S424). ).
次に、一次グラフ生成部26Aは、オブジェクト集合Rに含まれるオブジェクト数がksと一致するか否かを判定する(S426)。オブジェクト集合Rに含まれるオブジェクト数がksと一致する場合、一次グラフ生成部26Aは、オブジェクト集合Rに含まれるオブジェクトの中でオブジェクトyとの距離が最も長いオブジェクトと、オブジェクトyとの距離を、新たなrに設定する(S428)。 Next, the primary graph generation unit 26A determines whether or not the number of objects included in the object set R matches ks (S426). When the number of objects included in the object set R coincides with ks, the primary graph generation unit 26A determines the distance between the object with the longest distance from the object y and the object y among the objects included in the object set R. A new r is set (S428).
そして、一次グラフ生成部26Aは、オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えたか否かを判定する(S430)。オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えていない場合、S412に処理が戻される。 Then, the primary graph generation unit 26A determines whether all objects have been selected from the objects that are elements of the neighboring object set N (G, s) of the object s and stored in the object set C (S430). . If all objects have not been selected from the objects that are elements of the neighboring object set N (G, s) of the object s and stored in the object set C, the process returns to S412.
オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えた場合、一次グラフ生成部26Aは、オブジェクト集合Sが空集合であるか否かを判定する(S432)。オブジェクト集合Sが空集合でない場合、S404に処理が戻され、オブジェクト集合Sが空集合である場合、一次グラフ生成部26Aは、オブジェクト集合Rをオブジェクトyの近傍オブジェクト集合N(G,y)として出力し、図13のフローチャートの処理を終了する(S434)。 When all the objects are selected from the objects that are elements of the neighboring object set N (G, s) of the object s and stored in the object set C, the primary graph generation unit 26A determines that the object set S is an empty set. Is determined (S432). When the object set S is not an empty set, the process is returned to S404. When the object set S is an empty set, the primary graph generation unit 26A sets the object set R as a neighboring object set N (G, y) of the object y. To output the processing of the flowchart in FIG. 13 (S434).
図12に戻る。オブジェクトyの近傍オブジェクト集合N(G,y)が求められると、一次グラフ生成部26Aは、オブジェクトyの近傍オブジェクト集合N(G,y)の要素であるオブジェクトを一つ選択し、オブジェクトzとする(S302)。次に、一次グラフ生成部26Aは、オブジェクトzの近傍オブジェクト集合N(G,z)の要素としてオブジェクトyを追加する(S304)。 Returning to FIG. When the neighborhood object set N (G, y) of the object y is obtained, the primary graph generation unit 26A selects one object that is an element of the neighborhood object set N (G, y) of the object y, and the object z and (S302). Next, the primary graph generation unit 26A adds the object y as an element of the neighborhood object set N (G, z) of the object z (S304).
次に、一次グラフ生成部26Aは、オブジェクトzの近傍オブジェクト集合N(G,z)の要素であるオブジェクトの数がkpを超えるか否かを判定する(S306)。オブジェクトzの近傍オブジェクト集合N(G,z)の要素であるオブジェクトの数が所定数kpを超える場合、一次グラフ生成部26Aは、オブジェクトzの近傍オブジェクト集合N(G,z)から、オブジェクトzとの距離が最も長い(オブジェクトjから最も遠い)オブジェクトを除外する(S308)。 Next, the primary graph generation unit 26A determines whether or not the number of objects that are elements of the neighborhood object set N (G, z) of the object z exceeds kp (S306). When the number of objects that are elements of the neighborhood object set N (G, z) of the object z exceeds the predetermined number kp, the primary graph generation unit 26A determines from the neighborhood object set N (G, z) of the object z that the object z Are excluded (S308).
そして、一次グラフ生成部26Aは、オブジェクトyの近傍オブジェクト集合N(G,y)の要素であるオブジェクトzを全て選択したか否かを判定する(S310)。オブジェクトyの近傍オブジェクト集合N(G,y)の要素であるオブジェクトzを全て選択していない場合はS302に処理が戻され、オブジェクトyの近傍オブジェクト集合N(G,y)の要素であるオブジェクトzを全て選択した場合はS300〜S308のループ処理の1回分が終了する。これによって、無向グラフGaが生成される。 Then, the primary graph generation unit 26A determines whether or not all the objects z that are elements of the neighborhood object set N (G, y) of the object y have been selected (S310). If all the objects z that are elements of the neighboring object set N (G, y) of the object y have not been selected, the process returns to S302, and the objects that are elements of the neighboring object set N (G, y) of the object y If all z are selected, one loop of S300 to S308 is completed. Thereby, the undirected graph Ga is generated.
<第2実施形態>
以下、第2実施形態について説明する。第2実施形態において、インデックス検索部24は、下記のような処理を行うことで、検索対象のオブジェクトの数を低減し、より高速な検索処理を実現する。
Second Embodiment
Hereinafter, a second embodiment will be described. In the second embodiment, the
図14は、第2実施形態に係るインデックス検索部24の処理の内容を説明するための図である。これについて、インデックス検索部24の処理としても採用される図13の処理を参照しながら説明する。図中Qはクエリデータに対応するオブジェクトであり、O1は、検索処理(図13に示す処理)の中のS412で選択されたオブジェクトuに相当する。オブジェクトuとオブジェクトQの距離D1は、S412の時点で既に算出されている。一方、オブジェクトO2、O3、およびO4は、オブジェクトuの近傍オブジェクト集合N(G,u)の要素である。また、D0はオブジェクトQを基準とした検索範囲の仮想的な半径(S418のr)、または探索範囲の仮想的な半径(S414のr(1+ε))である。図13の説明と同様に、検索範囲とは、その範囲内に無ければクエリデータと類似しないと判定される範囲であり、探索範囲とは、オブジェクトを辿る過程で、その範囲内に無いオブジェクトは参照されない範囲である。本来、オブジェクトQと、オブジェクトO2、O3、およびO4のそれぞれとの間の距離を算出して、S414またはS418の判定処理を行うのであるが、この距離を算出せずにS414またはS418の判定処理を行うことが可能な状態が存在する。
FIG. 14 is a diagram for explaining the processing contents of the
図14に示す状態において、まず、オブジェクトQとオブジェクトO1との距離が算出される。距離D1>距離D0であるので、オブジェクトO1で表されるデータは、オブジェクトQで表されるデータとは類似しないと判定される。ここで、オブジェクトO2、O3、O4のそれぞれについて、オブジェクトQとの距離は未だ算出されていないが、オブジェクトO1とオブジェクトQとの距離は算出されている。 In the state shown in FIG. 14, first, the distance between the object Q and the object O1 is calculated. Since distance D1> distance D0, it is determined that the data represented by the object O1 is not similar to the data represented by the object Q. Here, for each of the objects O2, O3, and O4, the distance from the object Q has not yet been calculated, but the distance between the object O1 and the object Q has been calculated.
この場合、オブジェクトO2に関しては、[D2<(D1−D0)]であるため、検索範囲または探索範囲の中には入らないことが明らかである。従って、オブジェクトQとオブジェクトO2の距離を算出するまでもなく、オブジェクトO2で表されるデータは、オブジェクトQで表されるクエリデータと類似しないと判定される。 In this case, it is clear that the object O2 does not fall within the search range or the search range because [D2 <(D1-D0)]. Therefore, it is not necessary to calculate the distance between the object Q and the object O2, and it is determined that the data represented by the object O2 is not similar to the query data represented by the object Q.
オブジェクトO3に関しては、[D3>(D1−D0)]であるため、検索範囲または探索範囲の中に入る可能性がある。従って、オブジェクトQとオブジェクトO3の距離が算出され、オブジェクトO3で表されるデータが、オブジェクトQで表されるクエリデータと類似するか否かが判定される。 Since the object O3 is [D3> (D1-D0)], there is a possibility of entering the search range or the search range. Accordingly, the distance between the object Q and the object O3 is calculated, and it is determined whether or not the data represented by the object O3 is similar to the query data represented by the object Q.
オブジェクトO4に関しては、[D4>(D1+D0)]であるため、検索範囲または探索範囲の中には入らないことが明らかである。従って、オブジェクトQとオブジェクトO4の距離を算出するまでもなく、オブジェクトO4で表されるデータは、オブジェクトQで表されるクエリデータと類似しないと判定される。 It is clear that the object O4 does not fall within the search range or the search range because [D4> (D1 + D0)]. Accordingly, without calculating the distance between the object Q and the object O4, it is determined that the data represented by the object O4 is not similar to the query data represented by the object Q.
このように、第2実施形態に係るインデックス検索部24は、あるオブジェクト(図14ではO1)についてクエリデータを表すオブジェクトとの距離を算出し、検索範囲または探索範囲の中には入らないことが判明した場合には、図中の範囲A0またはA1に含まれるオブジェクトのみを距離算出の対象とし、A2またはA3に含まれることが明らかなオブジェクトに関しては、距離算出の対象とせず棄却する。これによって、より高速な検索処理を実現することができる。
As described above, the
以上説明した第2実施形態の検索データ管理装置1によれば、より高速な検索処理を実現することができる。
According to the search
なお、第2実施形態の処理を実行する場合、転置グラフGr+を求めることで、第1実施形態における転置グラフGr++と同程度の性能を発揮することができる。 In the case of executing the processing of the second embodiment, by obtaining the transposed graph Gr +, it can exert transposed graph Gr ++ and comparable performance in the first embodiment.
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。 As mentioned above, although the form for implementing this invention was demonstrated using embodiment, this invention is not limited to such embodiment at all, In the range which does not deviate from the summary of this invention, various deformation | transformation and substitution Can be added.
1…検索データ管理装置、10…ネットワークインターフェース、20…制御部、22…データオブジェクト生成部、24…インデックス検索部、26…グラフインデックス編集部、26A…一次グラフ生成部、26B…転置グラフ生成部、30…入出力装置、40…データサーバ、42…既存データオブジェクト、44…グラフインデックス
DESCRIPTION OF
Claims (10)
前記記憶部に記憶された各ノードから近傍ノードに対して有向エッジが設定されたグラフ構造のデータである一次グラフを生成する一次グラフ生成部と、
前記記憶部に記憶された一次グラフにおける前記有向エッジの向きを逆にしたグラフ構造のデータである転置グラフを、データ検索のためのデータとして生成する転置グラフ生成部と、
を備える検索データ管理装置。 A storage unit for storing a plurality of nodes to be searched;
A primary graph generating unit that generates a primary graph that is data of a graph structure in which a directed edge is set with respect to neighboring nodes from each node stored in the storage unit;
A transposed graph generating unit that generates a transposed graph, which is data of a graph structure in which the direction of the directed edge in the primary graph stored in the storage unit is reversed, as data for data search;
A search data management device comprising:
請求項1記載の検索データ管理装置。 The primary graph generation unit selects data of a graph structure in which a predetermined number of nodes are selected in order of short distance from the target node, and directed edges are set for the predetermined number of selected nodes from the target node. Generating as the primary graph,
The search data management device according to claim 1.
請求項1記載の検索データ管理装置。 The primary graph generation unit regards undirected edges as two directed edges for data having a graph structure in which undirected edges are set for a plurality of nodes, and determines the edges from each node toward another node . Each of the numbers has an upper limit, and the linear graph is generated by reducing the amount exceeding the upper limit in order from the edge having a long distance,
The search data management device according to claim 1.
請求項1から3のうちいずれか1項記載の検索データ管理装置。 The transposed graph generation unit generates a graph obtained by adding a predetermined number or a predetermined ratio of edges opposite to the edge for each node to which an edge is given as the transposed graph that is data for data search. ,
The search data management device according to any one of claims 1 to 3.
請求項1から4のうちいずれか1項記載の検索データ管理装置。 The transposition graph generation unit for each node that has been granted edges, the graph deleting the granted edges as Tokoro constant or a predetermined ratio of the edge remains in the ascending order is the data for data retrieval Generating as the transposed graph ,
The search data management device according to any one of claims 1 to 4.
前記クエリオブジェクトを基準とした検索範囲または探索範囲の仮想半径と、前記転置グラフに含まれる第1のノードに対応する第1のオブジェクトと前記クエリオブジェクトとの間の第1の距離と、前記第1のオブジェクトと前記転置グラフに含まれる第2のノードに対応する第2のオブジェクトとの間の第2の距離との関係に基づいて、前記第2のノードと前記クエリデータとの類似を判定するか否かを決定する検索部を更に備える、
請求項1から5のうちいずれか1項記載の検索データ管理装置。 A search unit that searches for data similar to the query data by calculating a distance between a query object obtained from query data and an object corresponding to a node included in the transposed graph;
A search range based on the query object or a virtual radius of the search range; a first distance between the first object corresponding to the first node included in the transposed graph and the query object; The similarity between the second node and the query data is determined based on the relationship between the second object and the second distance corresponding to the second node included in the transposed graph. A search unit for determining whether or not to
The search data management device according to any one of claims 1 to 5.
請求項6記載の検索データ管理装置。 In the case where the first object is not similar to the query object, the search unit determines that the second distance when the distance obtained by subtracting the virtual radius from the first distance is larger than the second distance. Decide not to determine the similarity between the node and the query data;
The search data management apparatus according to claim 6.
請求項6または7記載の検索データ管理装置。 In the case where the first object is not similar to the query object, the search unit adds the first radius to the first distance and the second distance is smaller than the second distance. Decide not to determine the similarity between the node and the query data;
The search data management device according to claim 6 or 7.
データ検索の対象となる複数のノードに含まれる各ノードから近傍ノードに対して有向エッジが設定されたグラフ構造のデータである一次グラフを生成し、
前記生成した一次グラフにおける前記有向エッジの向きを逆にしたグラフ構造のデータである転置グラフを、データ検索のためのデータとして生成する、
検索データ管理方法。 Computer
Generate a primary graph that is data of a graph structure in which a directed edge is set for a neighboring node from each node included in a plurality of nodes to be searched for data,
Generating a transposed graph, which is data of a graph structure in which the direction of the directed edge in the generated primary graph is reversed, as data for data search;
Search data management method.
データ検索の対象となる複数のノードに含まれる各ノードから近傍ノードに対して有向エッジが設定されたグラフ構造のデータである一次グラフを生成させ、
前記生成させた一次グラフにおける前記有向エッジの向きを逆にしたグラフ構造のデータである転置グラフを、データ検索のためのデータとして生成させる、
検索データ管理プログラム。 On the computer,
Generate a primary graph that is data of a graph structure in which a directed edge is set for a neighboring node from each node included in a plurality of nodes to be searched for data,
Generating a transposed graph, which is data of a graph structure in which the direction of the directed edge in the generated primary graph is reversed, as data for data search;
Search data management program.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016159946 | 2016-08-17 | ||
| JP2016159946 | 2016-08-17 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2018032374A JP2018032374A (en) | 2018-03-01 |
| JP6300982B2 true JP6300982B2 (en) | 2018-03-28 |
Family
ID=61304334
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2017075781A Active JP6300982B2 (en) | 2016-08-17 | 2017-04-06 | SEARCH DATA MANAGEMENT DEVICE, SEARCH DATA MANAGEMENT METHOD, AND SEARCH DATA MANAGEMENT PROGRAM |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP6300982B2 (en) |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7493320B2 (en) * | 2004-08-16 | 2009-02-17 | Telenor Asa | Method, system, and computer program product for ranking of documents using link analysis, with remedies for sinks |
| JP5014398B2 (en) * | 2009-10-20 | 2012-08-29 | ヤフー株式会社 | Search data management device |
| US8705870B2 (en) * | 2012-03-02 | 2014-04-22 | Microsoft Corporation | Image searching by approximate κ-NN graph |
-
2017
- 2017-04-06 JP JP2017075781A patent/JP6300982B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2018032374A (en) | 2018-03-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN107944629B (en) | A recommendation method and device based on heterogeneous information network representation | |
| TWI497325B (en) | Method for classification of objects in a graph data stream | |
| JP5265656B2 (en) | Clustering apparatus and clustering method | |
| CN113902061A (en) | Point cloud completion method and device | |
| CN104063383A (en) | Information recommendation method and device | |
| US9262555B2 (en) | Machine for recognizing or generating Jabba-type sequences | |
| CN105956148A (en) | Resource information recommendation method and apparatus | |
| CN111858613B (en) | Service data retrieval method | |
| CN113010769A (en) | Knowledge graph-based article recommendation method and device, electronic equipment and medium | |
| JP6300982B2 (en) | SEARCH DATA MANAGEMENT DEVICE, SEARCH DATA MANAGEMENT METHOD, AND SEARCH DATA MANAGEMENT PROGRAM | |
| CN113987345A (en) | Data processing method, device, equipment, storage medium and program product | |
| US9195940B2 (en) | Jabba-type override for correcting or improving output of a model | |
| CN105991400B (en) | Group searching method and device | |
| CN111626044A (en) | Text generation method and device, electronic equipment and computer readable storage medium | |
| CN115983379B (en) | Reachable path query method and system of MDATA knowledge graph | |
| JP2018156458A (en) | Generating device, generating method, and generating program | |
| CN115114360B (en) | Data comparison method, device, computer equipment, and storage medium | |
| CN114461718B (en) | Data fusion method, search method, device, electronic equipment and storage medium | |
| CN119848250A (en) | Text classification, clustering and retrieval method, device and computer equipment | |
| CN113780827B (en) | Article screening method and device, electronic equipment and computer readable medium | |
| JP6333306B2 (en) | SEARCH DATA MANAGEMENT DEVICE, SEARCH DATA MANAGEMENT METHOD, AND SEARCH DATA MANAGEMENT PROGRAM | |
| CN120372096B (en) | Conversation recommendation method, system, electronic device and storage medium | |
| CN115809365A (en) | A resource recommendation method, device, electronic equipment and storage medium | |
| CN112101399A (en) | Data processing method and device | |
| CN109145160A (en) | Key side is chosen in probability graph and optimizes the method and storage medium of key side |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20171205 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180118 |
|
| 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: 20180130 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180227 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6300982 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| 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 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |