JP2017211846A - Retrieval data management device, retrieval data management method, and retrieval data management program - Google Patents
Retrieval data management device, retrieval data management method, and retrieval data management program Download PDFInfo
- Publication number
- JP2017211846A JP2017211846A JP2016104827A JP2016104827A JP2017211846A JP 2017211846 A JP2017211846 A JP 2017211846A JP 2016104827 A JP2016104827 A JP 2016104827A JP 2016104827 A JP2016104827 A JP 2016104827A JP 2017211846 A JP2017211846 A JP 2017211846A
- Authority
- JP
- Japan
- Prior art keywords
- data
- vector
- search
- vector data
- multidimensional vector
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000013523 data management Methods 0.000 title claims abstract description 36
- 239000013598 vector Substances 0.000 claims abstract description 413
- 238000012217 deletion Methods 0.000 claims abstract description 23
- 230000037430 deletion Effects 0.000 claims abstract description 23
- 239000000284 extract Substances 0.000 claims description 6
- 238000000547 structure data Methods 0.000 claims description 4
- 230000001174 ascending effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 15
- 238000010187 selection method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000005401 electroluminescence Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
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 having a graph structure in which search target data is virtually connected by connection elements is constructed, and data search is performed by 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 a feature amount of data to be searched is first obtained and data having similar feature amounts are connected. The feature amount is typically represented by multidimensional vector data, and that the feature amount is close is defined, for example, as a short distance between the 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,...).
また、エッジには、有向エッジと無向エッジが存在する。有向エッジとは、一方向にしかデータを辿れないエッジであり、無向エッジとは、双方向にデータを辿ることができるエッジである。無向エッジを設定した方が検索経路のパターンが多くなるため、高速かつ高精度に検索を行うことができる場合がある。ところが、例えば有向エッジを設定したグラフ構造に対して機械的に無向エッジに変更した場合、特定のデータに対して多くのエッジが設定されることがある。エッジの数が過剰になると、検索処理の工数が増加し、かえって性能が低下する場合もある。 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. Since there are more search path patterns when the undirected edge is set, there are cases where the search can be performed at high speed and with high accuracy. However, for example, when a graph structure in which a directed edge is set is mechanically changed to an undirected edge, many edges may be set for specific data. When the number of edges becomes excessive, the number of man-hours for the search process increases, and the performance may be deteriorated.
こうした点に鑑み、ある着目データに接続されているデータのうち、着目データとの距離が短いものから所定数のデータを残し、残りのデータとの接続を解除する技術が開示されている(例えば、特許文献1参照)。 In view of these points, a technique is disclosed in which a predetermined number of data is left out of data connected to certain data of interest and the distance from the data of interest is short, and the connection with the remaining data is released (for example, , See Patent Document 1).
しかしながら、従来の技術では、エッジを効果的に削減可能である反面、探索性能(検索時間)を考慮していないために探索性能が低下する傾向がある。
本発明は、このような事情を考慮してなされたものであり、探索性能を考慮したエッジの削減が可能な検索データ管理装置、検索データ管理方法、および検索データ管理プログラムを提供することを目的の一つとする。
However, while the conventional technique can effectively reduce the edges, the search performance tends to decrease because the search performance (search time) is not taken into consideration.
The present invention has been made in view of such circumstances, and an object of the present invention is to provide a search data management device, a search data management method, and a search data management program capable of reducing edges in consideration of search performance. One of them.
本発明の一態様は、検索対象の多次元ベクトルデータがエッジにより接続されたグラフ構造のデータを記憶する記憶部と、前記記憶部に記憶されたグラフ構造のデータから、所定条件を満たすエッジである被抽出エッジを抽出し、前記被抽出エッジと同じ多次元ベクトルデータ同士を、前記被抽出エッジとは異なる経路で接続すると共に、エッジ数が所定数以下である代替パスが存在するか否かを判定し、存在すると判定した場合に、前記被抽出エッジを前記グラフ構造のデータから削除する削除処理部と、を備える検索データ管理装置である。 One aspect of the present invention is a storage unit that stores graph structure data in which multidimensional vector data to be searched is connected by an edge, and an edge that satisfies a predetermined condition from the graph structure data stored in the storage unit. Whether a certain extracted edge is extracted, and the same multidimensional vector data as the extracted edge is connected by a route different from the extracted edge, and whether there is an alternative path having a predetermined number of edges or less And a deletion processing unit that deletes the extracted edge from the data of the graph structure when it is determined that the extracted edge exists.
本発明の一態様によれば、探索性能を考慮したエッジの削減をすることができる。 According to one embodiment of the present invention, edges can be reduced in consideration of search performance.
以下、図面を参照し、本発明の検索データ管理装置、検索データ管理方法、および検索データ管理プログラムの実施形態について説明する。なお、以下の説明において「ベクトル間の距離が短い」と「ベクトル同士が近い」、および「ベクトル間の距離が長い」と「ベクトルが遠い」は同じ意味である。 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. In the following description, “the distance between the vectors is short” and “the vectors are close”, and “the distance between the vectors is long” and “the vector is far” have the same meaning.
[全体構成]
図1は、実施形態の検索データ管理装置1を中心とした構成図である。検索データ管理装置1は、一以上のクライアント端末CLとネットワークNWを介して接続される。クライアント端末は、パーソナルコンピュータ、スマートフォンなどの携帯電話、タブレット端末、その他の端末装置である。ネットワークNWは、無線基地局、公衆回線、専用回線、プロバイダ端末、インターネットなどを含む。検索データ管理装置1は、クライアント端末CLからクエリデータを受信すると、クエリデータに類似するデータを検索し、検索結果をクライアント端末CLに返信する。検索データ管理装置1が返信するデータは、データそのもの(例えばjpgなどで生成された画像データ)であってもよいし、データを参照するための識別子(URLなど)であってもよい。また、クエリデータや検索対象のデータは、画像、音声、テキストデータなど、如何なる種類のデータであってもよい。以下の説明では、検索データ管理装置1が画像を検索するものとして説明する。
[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 vector
インデックス検索部24は、ベクトルデータ生成部22により生成された多次元ベクトルデータ(以下、新規ベクトルデータと称する)をクエリとしてデータサーバ40を検索し、新規ベクトルデータに類似する既存ベクトルデータ42を抽出する。データサーバ40には、例えば、既存ベクトルデータ42と、グラフインデックス44とが格納される。
The
既存ベクトルデータ42は、検索対象となるデータから生成された多次元ベクトルデータである。既存ベクトルデータ42には、その既存ベクトルデータ42を生成する元となったデータ、或いはデータを参照する識別子が対応付けられている。検索データ管理装置1は、新規ベクトルデータをクエリとして得られた既存ベクトルデータ42、すなわち新規ベクトルデータに類似する既存ベクトルデータ42に対応付けられたデータ、或いはデータを参照する識別子をクライアント端末CLに送信する。図3は、既存ベクトルデータ42の内容の一例を示す図である。図示するように、既存ベクトルデータ42は、多次元ベクトルデータの識別情報(図中、ベクトルID)に対して、多次元ベクトルデータ、およびその多次元ベクトルデータを生成する元となったデータ、或いはデータを参照する識別子が対応付けられたデータである。
The existing
グラフインデックス44は、複数の既存ベクトルデータ42を接続するエッジに関する情報であり、既存ベクトルデータ42のうち任意の二つを接続する複数のエッジにより形成されるグラフ構造のデータである。本実施例におけるグラフインデックス44に含まれるエッジは、双方向のエッジである。図4は、グラフインデックス44の内容の一例を示す図である。図示するように、グラフインデックス44は、各エッジの識別情報であるエッジIDに対して、そのエッジが接続する両端の既存ベクトルデータのベクトルIDが対応付けられたデータである。なお、図3および図4に示すデータ構造は、あくまで一例であり、例えば、ベクトルIDに対して、接続されているエッジのエッジIDが対応付けられたデータが、グラフインデックス44としてデータサーバ40に格納されてもよい。すなわち、本実施形態においてデータ構造の形式は本質的な問題ではなく、要求される性質を満たす限り、如何なるデータ構造のデータがデータサーバ40に格納されてもよい。
The
インデックス検索部24は、グラフインデックス44により規定されたエッジによって辿ることのできる既存ベクトルデータ42のうち、新規ベクトルデータに対して既定の距離以内にある既存ベクトルデータ42を、新規ベクトルデータに類似する既存ベクトルデータとして抽出する。ベクトル間の距離とは、例えば、ベクトル要素間の差分についてLpノルムを求めたものと定義される(p=1、2、…)。また、インデックス検索部24は、グラフインデックス44により規定されたエッジによって辿ることのできる既存ベクトルデータ42のうち、新規ベクトルデータに対する距離が短いものから順に所定数の既存ベクトルデータ42を、新規ベクトルデータに類似する既存ベクトルデータとして抽出してもよい。そして、インデックス検索部24は、抽出した既存ベクトルデータ42を、ネットワークインターフェース10およびネットワークNWを介してクライアント端末CLに送信する。
The
なお、インデックス検索部24による検索処理は、例えば、後述する図8のフローチャートの処理を用いて実現される。図8のフローチャートにおいて、新規ベクトルデータをベクトルyとして得られるベクトル集合Rが、インデックス検索部24による検索結果の一例である。この場合、所定数ksを所望の値に調整することで、検索結果に含まれるベクトルの数を調整することができる。
Note that the search processing by the
ベクトルデータ生成部22およびインデックス検索部24の機能によって、クライアント端末CLは、送信したデータに類似するデータを検索データ管理装置1から取得することができる。なお、検索データ管理装置1の役割は、新規ベクトルデータに類似する既存ベクトルデータ42を抽出するところまでであってもよく、その場合、抽出した既存ベクトルデータ42に対応したデータ、或いはデータを参照する識別子をクライアント端末CLに送信する機能は、検索データ管理装置1とは異なる装置が有してもよい。
With the functions of the vector
グラフインデックス編集部26の新規作成・追加処理部26Aは、グラフインデックス44を新規作成し、または追加処理する。この処理について、例えば以下に説明する二つの手法のうちいずれかを採用することができる。以下の説明では、多次元ベクトルを単にベクトルと称することがある。
The new creation / addition processing unit 26A of the graph
(新規作成・追加手法1)
図5は、新規作成・追加処理部26Aによる処理の流れの一例を示すフローチャートである。このフローチャートの処理は、グラフインデックス44を新規に作成する場合に使用可能であると共に、新たな多次元ベクトルデータが追加された場合に、既にグラフインデックス44に対応付けられた多次元ベクトルデータと新たな多次元ベクトルデータとに対して実行することで、新たな多次元ベクトルデータを追加する処理にも使用することができる。本フローチャートの処理の前提として、既存ベクトルデータ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に至るまで繰り返し実行する。
(New creation / addition method 1)
FIG. 5 is a flowchart showing an example of the flow of processing by the new creation / addition processing unit 26A. The process of this flowchart can be used when a
新規作成・追加処理部26Aは、ベクトルi(ベクトルIDがiであるベクトル;以下同様)が、ベクトルjの近傍ベクトルN(G,j)の要素である、またはi=jであるか否かを判定する(S100)。ベクトルjの近傍ベクトルN(G,j)とは、ベクトルjから見て距離が短い方から順に所定数kpだけ選択されるベクトルの集合である。「G」は、グラフ構造のデータを示す符号である。ベクトルjの近傍ベクトルN(G,j)の要素であるベクトルのそれぞれと、ベクトルjとの間は、エッジによって接続される。従って、少なくともベクトルjの近傍ベクトルN(G,j)の要素であるベクトルは、ベクトルjから一つのエッジを介して辿ることのできるベクトルである。なお、ベクトルjが、ベクトルjの近傍ベクトルN(G,j)の要素でない他のベクトルの近傍ベクトルの要素である場合もある。以下、このことを前提として説明する。ベクトルiがベクトルjの近傍ベクトルN(G,j)の要素である場合、またはi=jである場合、S102〜S106の処理がスキップされる。 The new creation / addition processing unit 26A determines whether the vector i (the vector with the vector ID i; the same applies hereinafter) is an element of the neighborhood vector N (G, j) of the vector j or i = j. Is determined (S100). The neighborhood vector N (G, j) of the vector j is a set of vectors selected by a predetermined number kp in order from the shortest distance when viewed from the vector j. “G” is a code indicating data having a graph structure. Each vector that is an element of the neighborhood vector N (G, j) of the vector j and the vector j are connected by an edge. Accordingly, at least a vector that is an element of the neighborhood vector N (G, j) of the vector j is a vector that can be traced from the vector j through one edge. Note that the vector j may be an element of a neighborhood vector of another vector that is not an element of the neighborhood vector N (G, j) of the vector j. Hereinafter, this will be described on the assumption. When the vector i is an element of the neighborhood vector N (G, j) of the vector 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=3である。ベクトルjの近傍ベクトルN(G,j)の要素であるベクトルの数が所定数kpを超える場合、新規作成・追加処理部26Aは、ベクトルjの近傍ベクトルN(G,j)から、ベクトルjとの距離が最も長い(ベクトルjから最も遠い)ベクトルを除外する(S106)。 When the vector i is not an element of the neighborhood vector N (G, j) of the vector j and i = j, the new creation / addition processing unit 26A converts the vector i to the neighborhood vector N (G, j) of the vector j. It adds to an element (S102). Next, the new creation / addition processing unit 26A determines whether or not the number of vectors that are elements of the neighborhood vector N (G, j) of the vector j exceeds a predetermined number kp (S104). The predetermined number kp is an arbitrary natural number. For example, kp = 3. When the number of vectors that are elements of the neighborhood vector N (G, j) of the vector j exceeds the predetermined number kp, the new creation / addition processing unit 26A calculates the vector j from the neighborhood vector N (G, j) of the vector j. The vector having the longest distance from (the farthest from the vector j) is 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が作成される。
FIG. 6 is a diagram illustrating how the neighborhood vector is updated. In the illustrated example, when vectors (1) to (3) were originally set in the neighborhood vector N (G, j) of the vector j, the vector i was added and the vector (3) was excluded. As a result, the neighborhood vector N (G, j) of the vector j is updated to N (G, j) *. By repeating such processing, the neighborhood vector N (G, x) is set for all the vectors x = 1 to n. Thereby, the
(新規作成・追加手法2)
図7および図8は、新規作成・追加処理部26Aによる処理の流れの他の一例を示すフローチャートである。本フローチャートの処理の前提として、既存ベクトルデータ42において1からnまでのベクトルIDが付与され、グラフインデックス44が作成されたn個の多次元ベクトルデータが既に存在し、新たにm−n個の多次元ベクトルデータが追加されたものとする(m>n)。フローチャートの中で使用する引数yは、(n+1)からmまで順に選択されて処理が実行される。
(New creation / addition method 2)
7 and 8 are flowcharts showing another example of the processing flow by the new creation / addition processing unit 26A. As a premise of the processing of this flowchart, n-dimensional vector data having a vector ID from 1 to n assigned to the existing
新規作成・追加処理部26Aは、K近傍検索処理を実行する(S200)。K近傍検索処理については図8を用いて説明する。図8に示すように、新規作成・追加処理部26Aは、超球の半径rを∞(無限大)に設定し(S300)、既存のベクトル集合からベクトル集合Sを抽出する(S302)。超球とは、検索範囲(その範囲に入っていれば入力ベクトルyの近傍ベクトルN(G,y)の要素に含められる可能性がある範囲)を示す仮想的な球である。なお、ステップS302で抽出されたベクトル集合Sに含まれるベクトルは、同時にベクトル集合Rの初期集合にも含められてもよい。 The new creation / addition processing unit 26A executes a K neighborhood search process (S200). The K neighborhood search process will be described with reference to FIG. As shown in FIG. 8, the new creation / addition processing unit 26A sets the radius r of the hypersphere to ∞ (infinity) (S300), and extracts the vector set S from the existing vector set (S302). The hypersphere is a virtual sphere indicating a search range (a range that can be included in the elements of the neighborhood vector N (G, y) of the input vector y if it is within the range). Note that the vectors included in the vector set S extracted in step S302 may be included in the initial set of the vector set R at the same time.
次に、新規作成・追加処理部26Aは、ベクトル集合Sに含まれるベクトルの中で、ベクトルyとの距離が最も短いベクトルを抽出し、ベクトルsとする(S304)。次に、新規作成・追加処理部26Aは、ベクトルsをベクトル集合Sから除外する(S306)。図9は、ベクトル集合Sから、ベクトルyとの距離が最も短いベクトルが抽出され、ベクトル集合Sから除外される様子を概念的に示す図である。 Next, the new creation / addition processing unit 26A extracts a vector having the shortest distance from the vector y among the vectors included in the vector set S and sets it as a vector s (S304). Next, the new creation / addition processing unit 26A excludes the vector s from the vector set S (S306). FIG. 9 is a diagram conceptually illustrating how a vector having the shortest distance from the vector y is extracted from the vector set S and excluded from the vector set S.
次に、新規作成・追加処理部26Aは、ベクトルsとベクトルyとの距離d(s,y)がr(1+ε)を超えるか否かを判定する(S308)。ここで、εは拡張要素であり、r(1+ε)は、探索範囲(その範囲にあるベクトルの近傍ベクトルについて、入力ベクトルyの近傍ベクトルN(G,y)の要素に含められるか否かを判定する範囲)の半径を示す値である。ベクトルsとベクトルyとの距離d(s,y)がr(1+ε)を超える場合、新規作成・追加処理部26Aは、ベクトル集合Rをベクトルyの近傍ベクトルN(G,y)として出力し、図8のフローチャートの処理を終了する。 Next, the new creation / addition processing unit 26A determines whether the distance d (s, y) between the vector s and the vector y exceeds r (1 + ε) (S308). Here, ε is an expansion element, and r (1 + ε) indicates whether or not the search range (a neighborhood vector of a vector in the range is included in the neighborhood vector N (G, y) of the input vector y). This is a value indicating the radius of the range to be determined. When the distance d (s, y) between the vector s and the vector y exceeds r (1 + ε), the new creation / addition processing unit 26A outputs the vector set R as a neighborhood vector N (G, y) of the vector y. Then, the process of the flowchart of FIG.
ベクトルsとベクトルyとの距離d(s,y)がr(1+ε)を超えない場合、新規作成・追加処理部26Aは、ベクトルsの近傍ベクトルN(G,s)の要素であるベクトルの中からベクトル集合Cに含まれないベクトルを一つ選択し、選択したベクトルuを、ベクトル集合Cに格納する(S312)。図10は、ベクトルsの近傍ベクトルN(G,s)を概念的に示す図である。ベクトル集合Cは、重複検索を回避するために便宜上設けられるものであり、図8のフローチャートが開始されるときにリセットされて空集合とされる。 When the distance d (s, y) between the vector s and the vector y does not exceed r (1 + ε), the new creation / addition processing unit 26A determines the vector that is an element of the neighborhood vector N (G, s) of the vector s. One vector that is not included in the vector set C is selected from them, and the selected vector u is stored in the vector set C (S312). FIG. 10 is a diagram conceptually showing the neighborhood vector N (G, s) of the vector s. The vector set C is provided for convenience in order to avoid duplicate search, and is reset to an empty set when the flowchart of FIG. 8 is started.
次に、新規作成・追加処理部26Aは、ベクトルuとベクトルyとの距離d(u,y)がr(1+ε)以下であるか否かを判定する(S314)。ベクトルuとベクトルyとの距離d(u,y)がr(1+ε)以下である場合、新規作成・追加処理部26Aは、ベクトルuをベクトル集合Sに追加する(S316)。 Next, the new creation / addition processing unit 26A determines whether or not the distance d (u, y) between the vector u and the vector y is equal to or less than r (1 + ε) (S314). When the distance d (u, y) between the vector u and the vector y is equal to or less than r (1 + ε), the new creation / addition processing unit 26A adds the vector u to the vector set S (S316).
次に、新規作成・追加処理部26Aは、ベクトルuとベクトルyとの距離d(u,y)がr以下であるか否かを判定する(S318)。ベクトルuとベクトルyとの距離d(u,y)がrを超える場合、S330に処理が進められる。 Next, the new creation / addition processing unit 26A determines whether the distance d (u, y) between the vector u and the vector y is equal to or less than r (S318). If the distance d (u, y) between the vector u and the vector y exceeds r, the process proceeds to S330.
ベクトルuとベクトルyとの距離d(u,y)がr以下である場合、新規作成・追加処理部26Aは、ベクトルuをベクトル集合Rに追加する(S320)。図11は、ベクトルがベクトル集合Sまたはベクトル集合Rに追加される様子を概念的に示す図である。図示の例では、ベクトルyとの距離がr以下であるベクトル(4)および(5)がベクトル集合Rに追加され、ベクトルyとの距離がrを超えr(1+ε)以下であるベクトル(6)がベクトル集合Sに追加される。 When the distance d (u, y) between the vector u and the vector y is equal to or less than r, the new creation / addition processing unit 26A adds the vector u to the vector set R (S320). FIG. 11 is a diagram conceptually illustrating how a vector is added to the vector set S or the vector set R. In the illustrated example, vectors (4) and (5) whose distance from the vector y is equal to or less than r are added to the vector set R, and the vector (6) whose distance from the vector y exceeds r and is equal to or less than r (1 + ε). ) Is added to the vector set S.
そして、新規作成・追加処理部26Aは、ベクトル集合Rに含まれるベクトル数がksを超えるか否かを判定する(S322)。所定数ksは、任意に定められる自然数である。例えば、ks=3である。 Then, the new creation / addition processing unit 26A determines whether or not the number of vectors included in the vector set R exceeds ks (S322). The predetermined number ks is a natural number that is arbitrarily determined. For example, ks = 3.
ベクトル集合Rに含まれるベクトル数がksを超える場合、新規作成・追加処理部26Aは、ベクトル集合Rに含まれるベクトルの中でベクトルyとの距離が最も長いベクトルを、ベクトル集合Rから除外する(S324)。 When the number of vectors included in the vector set R exceeds ks, the new creation / addition processing unit 26A excludes the vector having the longest distance from the vector y among the vectors included in the vector set R from the vector set R. (S324).
次に、新規作成・追加処理部26Aは、ベクトル集合Rに含まれるベクトル数がksと一致するか否かを判定する(S326)。ベクトル集合Rに含まれるベクトル数がksと一致する場合、新規作成・追加処理部26Aは、ベクトル集合Rに含まれるベクトルの中でベクトルyとの距離が最も長いベクトルと、ベクトルyとの距離を、新たなrに設定する(S328)。 Next, the new creation / addition processing unit 26A determines whether or not the number of vectors included in the vector set R matches ks (S326). When the number of vectors included in the vector set R matches ks, the new creation / addition processing unit 26A determines the distance between the vector having the longest distance from the vector y among the vectors included in the vector set R and the vector y. Is set to a new r (S328).
図12は、ベクトル集合Rに含まれるベクトルから、ベクトルyとの距離が最も長いベクトルが除外され、rが再設定される様子を概念的に示す図である。図12の例では、図11でRに追加されたベクトルs、(4)、および(5)の他、前回以前のループ処理の結果、ベクトル(7)がRに含まれていたものとする。この場合、ベクトルyとの距離が最も長いベクトル(5)がRから除外され、残ったベクトルの中でベクトルyとの距離が最も長いベクトル(7)とベクトルyとの距離が、rに設定される。 FIG. 12 is a diagram conceptually illustrating a state in which a vector having the longest distance from the vector y is excluded from vectors included in the vector set R, and r is reset. In the example of FIG. 12, in addition to the vector s, (4), and (5) added to R in FIG. 11, the vector (7) is included in R as a result of the previous loop processing. . In this case, the vector (5) having the longest distance from the vector y is excluded from R, and the distance between the vector (7) having the longest distance from the vector y and the vector y among the remaining vectors is set to r. Is done.
そして、新規作成・追加処理部26Aは、ベクトルsの近傍ベクトルN(G,s)の要素であるベクトルから全てのベクトルを選択してベクトル集合Cに格納し終えたか否かを判定する(S330)。ベクトルsの近傍ベクトルN(G,s)の要素であるベクトルから全てのベクトルを選択してベクトル集合Cに格納し終えていない場合、S312に処理が戻される。 Then, the new creation / addition processing unit 26A determines whether all vectors have been selected from the vectors that are elements of the neighborhood vector N (G, s) of the vector s and stored in the vector set C (S330). ). If all vectors have not been selected from the vectors that are elements of the neighborhood vector N (G, s) of the vector s and stored in the vector set C, the process returns to S312.
ベクトルsの近傍ベクトルN(G,s)の要素であるベクトルから全てのベクトルを選択してベクトル集合Cに格納し終えた場合、新規作成・追加処理部26Aは、ベクトル集合Sが空集合であるか否かを判定する(S330)。ベクトル集合Sが空集合でない場合、S304に処理が戻され、ベクトル集合Sが空集合である場合、新規作成・追加処理部26Aは、ベクトル集合Rをベクトルyの近傍ベクトルN(G,y)として出力し、図8のフローチャートの処理を終了する(S332)。 When all the vectors are selected from the vectors that are elements of the neighborhood vector N (G, s) of the vector s and stored in the vector set C, the new creation / addition processing unit 26A indicates that the vector set S is an empty set. It is determined whether or not there is (S330). When the vector set S is not an empty set, the process is returned to S304. When the vector set S is an empty set, the new creation / addition processing unit 26A converts the vector set R into a neighborhood vector N (G, y) of the vector y. And the process of the flowchart of FIG. 8 ends (S332).
図8に示す処理を行うことで、全てのベクトルを網羅的に処理する場合に比して、メモリ領域の消費を抑制しつつ、高速処理を実現することができる。すなわち、図8に示す処理は、主としてグラフインデックス44により規定されるエッジを辿ることで進行するため、既存ベクトルデータ42を網羅的に検索するよりも処理工数が少なくて済む。また、既存のベクトル群に必要なメモリ領域の他、シードとなるベクトル集合S、重複検索を回避するためのベクトル集合C、および、最大のベクトル数がksに制限されるベクトル集合Rに関するデータを管理すればよいため、メモリ領域の消費を抑制することができる。更に、入力データであるベクトルyから十分に遠いベクトルは、処理によってベクトル集合Sに追加される可能性が低く、仮にS302でベクトル集合Sに含められたとしても、探索順位が低いことにより処理対象とされない可能性が高くなるため、処理工数を更に低減することができる。
By performing the processing shown in FIG. 8, it is possible to realize high-speed processing while suppressing consumption of the memory area as compared to the case of exhaustively processing all vectors. That is, the process shown in FIG. 8 proceeds mainly by following an edge defined by the
図7に戻る。ベクトルyの近傍ベクトルN(G,y)が求められると、新規作成・追加処理部26Aは、ベクトルyの近傍ベクトルN(G,y)の要素であるベクトルを一つ選択し、ベクトルzとする(S202)。次に、新規作成・追加処理部26Aは、ベクトルzの近傍ベクトルN(G,z)の要素としてベクトルyを追加する(S204)。 Returning to FIG. When the neighborhood vector N (G, y) of the vector y is obtained, the new creation / addition processing unit 26A selects one vector that is an element of the neighborhood vector N (G, y) of the vector y, (S202). Next, the new creation / addition processing unit 26A adds the vector y as an element of the neighborhood vector N (G, z) of the vector z (S204).
次に、新規作成・追加処理部26Aは、ベクトルzの近傍ベクトルN(G,z)の要素であるベクトルの数がkpを超えるか否かを判定する(S206)。ベクトルzの近傍ベクトルN(G,z)の要素であるベクトルの数が所定数kpを超える場合、新規作成・追加処理部26Aは、ベクトルzの近傍ベクトルN(G,z)から、ベクトルzとの距離が最も長い(ベクトルjから最も遠い)ベクトルを除外する(S208)。 Next, the new creation / addition processing unit 26A determines whether or not the number of vectors that are elements of the neighborhood vector N (G, z) of the vector z exceeds kp (S206). When the number of vectors that are elements of the neighborhood vector N (G, z) of the vector z exceeds a predetermined number kp, the new creation / addition processing unit 26A calculates the vector z from the neighborhood vector N (G, z) of the vector z. The vector having the longest distance from (the furthest from the vector j) is excluded (S208).
そして、新規作成・追加処理部26Aは、ベクトルyの近傍ベクトルN(G,y)の要素であるベクトルzを全て選択したか否かを判定する(S210)。ベクトルyの近傍ベクトルN(G,y)の要素であるベクトルzを全て選択していない場合はS202に処理が戻され、ベクトルyの近傍ベクトルN(G,y)の要素であるベクトルzを全て選択した場合はS200〜S208のループ処理の1回分が終了する。これによって、グラフインデックス44が作成される。
Then, the new creation / addition processing unit 26A determines whether or not all vectors z that are elements of the neighborhood vector N (G, y) of the vector y have been selected (S210). When all the vectors z that are elements of the neighborhood vector N (G, y) of the vector y are not selected, the process returns to S202, and the vector z that is an element of the neighborhood vector N (G, y) of the vector y is obtained. If all of them are selected, the loop processing of S200 to S208 ends. Thereby, the
ここで、(新規作成・追加手法1)と(新規作成・追加手法2)の処理は、組み合わせて使用されてもよい。すなわち、最初にベクトル群が与えられてグラフインデックス44を作成する際に(新規作成・追加手法1)の処理を行い、その後、ベクトル群が追加される際に(新規作成・追加手法2)の処理を行ってもよい。その場合、kpとksは同じでもよいし、異なってもよい。また、ベクトル群が追加される度に(新規作成・追加手法1)の処理を行うものとしてもよい。
Here, the processes of (new creation / addition method 1) and (new creation / addition method 2) may be used in combination. That is, when the vector group is first given and the
(削除処理)
削除処理部26Bは、新規作成・追加処理部26Aによって作成されたグラフインデックス44から、所定条件を満たすエッジを抽出し、抽出したエッジ(被抽出エッジ)と同じベクトルを異なる経路で接続する代替パスであって、エッジ数が所定数p以下の代替パスが存在する場合に、抽出したエッジを削除する処理を行う。所定条件とは、例えば、以下に説明する図13のS402の判定条件である。
(Deletion process)
The
図13は、削除処理部26Bにより実行される処理の流れの一例を示すフローチャートである。本フローチャートの処理の前提として、既存ベクトルデータ42に含まれる多次元ベクトルデータには、1からnまでのベクトルIDが付与されているものとする(図7および図8のフローチャートが実行された後であれば、1〜mまでのベクトルIDが付与されてもよい)。フローチャートの中で使用する引数eは、1からnまで順に選択されて処理が実行される。
FIG. 13 is a flowchart illustrating an example of the flow of processing executed by the
まず、削除処理部26Bは、ベクトルeの近傍ベクトルN(G,e)の要素であるベクトルの中からベクトルを一つ選択し、ベクトルfとする(S400)。次に、削除処理部26Bは、Rank{N(G,e),f}が所定数krを超えるか否かを判定する(S402)。Rank{N(G,e),f}とは、ベクトルfが、ベクトルeの近傍ベクトルN(G,e)の要素であるベクトルの中で、何番目にベクトルeに近いかを示す指標値である。また、所定数krは、例えば、所定数kp未満の値である。従って、「Rank{N(G,e),f}が所定数krを超えるか否かを判定する」処理は、ベクトルeの近傍ベクトルN(G,e)の要素であるベクトルから、ベクトルeとの距離が他のベクトルとの比較において長いベクトルを抽出する処理である。Rank{N(G,e),f}が所定数krを超えない場合、S404〜S410の処理がスキップされる。
First, the
Rank{N(G,e),f}が所定数krを超える場合、削除処理部26Bは、代替パスの探索開始ベクトルを選択し(S404)、探索開始ベクトルから先のパスを探索する(S406)。
When Rank {N (G, e), f} exceeds a predetermined number kr, the
次に、削除処理部26Bは、エッジ数がp以下の代替パスが存在するか否かを判定する(S408)。エッジ数がp以下の代替パスが存在する場合、削除処理部26Bは、ベクトルeとベクトルfを接続するエッジ(e,f)をグラフインデックス44から削除する(S410)。
Next, the
図14は、エッジ数がp以下の代替パスが削除される様子を概念的に示す図である。図示の例では、ベクトルeとf(1)を接続するエッジ(e,f(1))、および、ベクトルeとf(2)を接続するエッジ(e,f(2))には、共に代替パスが存在する。エッジ(e,f(1))の代替パスのエッジ数は3であるのに対し、エッジ(e,f(2))の代替パスのエッジ数は4である。ここで、p=3とすると、エッジ(e,f(1))は削除可能、エッジ(e,f(2))は削除不可として扱われる。 FIG. 14 is a diagram conceptually illustrating a state where an alternative path having the number of edges of p or less is deleted. In the illustrated example, both the edge (e, f (1)) connecting the vectors e and f (1) and the edge (e, f (2)) connecting the vectors e and f (2) are both There is an alternate path. The number of edges of the alternative path of edge (e, f (1)) is 3, whereas the number of edges of the alternative path of edge (e, f (2)) is 4. Here, when p = 3, the edge (e, f (1)) is treated as erasable, and the edge (e, f (2)) is treated as irremovable.
次に、削除処理部26Bは、ベクトルeの近傍ベクトルN(G,e)の要素であるベクトルから全てのベクトルを選択したか否かを判定する(S412)。ベクトルeの近傍ベクトルN(G,e)の要素であるベクトルから全てのベクトルを選択していない場合、S400に処理が戻される。一方、ベクトルeの近傍ベクトルN(G,e)の要素であるベクトルから全てのベクトルを選択した場合、図13のフローチャートの処理が終了する。
Next, the
係る処理によって、探索性能を考慮したエッジの削減をすることができる。この種の技術では、ベクトルにエッジが大量に付与されていると、かえって検索性能が低下してしまう。従って、比較的距離の長いエッジを優先的に削除することで、局所的な検索回数を低減し、検索処理を効率化することができる。ところが、距離の長いエッジを無制限に削除すると、迂回する経路が長くなることで、むしろ検索処理が非効率になってしまう場合がある。また、迂回する経路が存在しなくなり、検索できないベクトルが生じる場合もある。 With such processing, it is possible to reduce edges in consideration of search performance. In this type of technique, if a large number of edges are added to a vector, the search performance is rather degraded. Therefore, by preferentially deleting edges with a relatively long distance, the number of local searches can be reduced and the search process can be made more efficient. However, if an edge with a long distance is deleted indefinitely, the path to be detoured becomes long, and the search process may rather become inefficient. In addition, there is a case where there is no detour path and a vector that cannot be searched for is generated.
係る事情に鑑み、本実施形態の検索データ管理装置1では、そのエッジを削除した後に、同じベクトルに対して比較的少ないエッジ数で到達することができる場合にのみ、エッジを削除することとした。これによって、探索性能を考慮したエッジの削減をすることができ、エッジの数を適度に維持することができる。
In view of such circumstances, in the search
ここで、図13のフローチャートにおけるS404の処理において、探索開始ベクトルを選択する手法としては、以下のような手法が挙げられる。 Here, in the process of S <b> 404 in the flowchart of FIG. 13, as a technique for selecting a search start vector, the following technique may be mentioned.
(探索対象ノード選択手法1)
削除処理部26Bは、ベクトルeにエッジを介して接続されている全てのベクトルを、探索開始ベクトルとして網羅的に選択してもよい。これによって、エッジ数がp以下の代替パスを確実に発見することができる。
(Search target node selection method 1)
The
(探索対象ノード選択手法2)
削除処理部26Bは、ベクトルeにエッジを介して接続されているベクトルのうち、ベクトルfに最も近いベクトルを探索開始ベクトルとして、代替パスの探索を開始してもよい。これによって、代替パスの探索処理の負荷を最も軽減することができる。
(Search target node selection method 2)
The
(探索対象ノード選択手法3)
削除処理部26Bは、ベクトルeにエッジを介して接続されているベクトルのうち、そのベクトルとベクトルfとの距離が、ベクトルeとベクトルfとの距離よりも短いベクトルを探索開始ベクトルとして、代替パスの探索を開始してもよい。これによって、代替パスの探索処理の負荷を軽減すると共に、(探索対象ノード選択手法2)よりも確実にエッジ数がp以下の代替パスを確実に発見することができる。
(Search target node selection method 3)
The
なお、いずれの手法においても、ベクトルeに付与されているエッジの中で、短いものから順にランクkrまでのエッジのみを使用してグラフの探索を行う(短いものから順にランクkrまでのエッジのみを探索開始ベクトルとする)。なぜなら、ランクkrよりも大きいエッジを含む代替パスが見つかったとしても、それ以降の削除処理により代替パス上の当該エッジが削除されてしまう可能性があるからである。 In any of the methods, the graph search is performed using only edges from the shortest one to the rank kr among the edges assigned to the vector e (only edges from the shortest to the rank kr in order). As a search start vector). This is because even if an alternative path including an edge larger than the rank kr is found, the edge on the alternative path may be deleted by subsequent deletion processing.
図15は、探索開始ベクトルを選択する手法を例示した図である。本図において、(探索対象ノード選択手法2)を採用する場合、ベクトル(8)のみが探索開始ベクトルとして選択される。一方、(探索対象ノード選択手法3)を採用する場合、ベクトル(8)、(9)、(10)が探索開始ベクトルとして選択される。 FIG. 15 is a diagram illustrating a method for selecting a search start vector. In this figure, when the (search target node selection method 2) is adopted, only the vector (8) is selected as the search start vector. On the other hand, when (search target node selection method 3) is adopted, vectors (8), (9), and (10) are selected as search start vectors.
いずれの場合にも、エッジ数がpに至った時点で、その経路の探索を終了することにより、処理負荷の増大を抑制することができる。削除処理部26Bは、探索開始ベクトルを起点として、その先のベクトルを網羅的に探索し、エッジ数がpに至るまでにベクトルfに到達できなかった場合、その探索開始ベクトルを起点としてエッジ数がp以下の代替パスを発見できなかったと判断し、その探索開始ベクトルからの探索を終了する。
In any case, when the number of edges reaches p, the search for the route is terminated, thereby suppressing an increase in processing load. The
以上説明した実施形態の検索データ管理装置1によれば、検索対象の多次元ベクトルデータがエッジにより接続されたグラフ構造のデータ(42、44)を記憶する記憶部(40)と、記憶部に記憶されたグラフ構造のデータから所定条件を満たす被抽出エッジを抽出し(図13のS402;エッジ(e,f))、被抽出エッジと同じ多次元ベクトルデータ同士(e、f)を、被抽出エッジとは異なる経路で接続すると共に、エッジ数が所定数(p)以下である代替パスが存在するか否かを判定し、存在すると判定した場合に、被抽出エッジをグラフ構造のデータから削除する削除処理部(26B)と、を備えることにより、探索性能を考慮したエッジの削減をすることができる。
According to the search
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。 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 (9)
前記記憶部に記憶されたグラフ構造のデータから、所定条件を満たすエッジである被抽出エッジを抽出し、
前記被抽出エッジと同じ多次元ベクトルデータ同士を、前記被抽出エッジとは異なる経路で接続すると共に、エッジ数が所定数以下である代替パスが存在するか否かを判定し、
存在すると判定した場合に、前記被抽出エッジを前記グラフ構造のデータから削除する削除処理部と、
を備える検索データ管理装置。 A storage unit for storing data of a graph structure in which multidimensional vector data to be searched is connected by edges;
Extracting the extracted edge that is an edge satisfying a predetermined condition from the data of the graph structure stored in the storage unit,
Connecting the same multi-dimensional vector data as the extracted edge with a path different from the extracted edge, and determining whether there is an alternative path having a predetermined number of edges or less,
A deletion processing unit for deleting the extracted edge from the data of the graph structure when it is determined that it exists,
A search data management device comprising:
請求項1記載の検索データ管理装置。 The predetermined condition is that, among a plurality of edges connected to certain multidimensional vector data, a distance between connected multidimensional vector data is long in comparison with other edges.
The search data management device according to claim 1.
請求項1または2記載の検索データ管理装置。 The predetermined condition is that, when a plurality of edges connected to certain multidimensional vector data are ranked in ascending order of distance between connected multidimensional vector data, the predetermined condition is lower than a predetermined order.
The search data management device according to claim 1 or 2.
請求項1から3のうちいずれか1項記載の検索データ管理装置。 The deletion processing unit, when searching for the alternative path, among the multidimensional vector data connected to one multidimensional vector data among the multidimensional vector data connected by the extracted edge, The multidimensional vector data closest to the other multidimensional vector data among the multidimensional vector data connected by the edge is set as a search start vector.
The search data management device according to any one of claims 1 to 3.
請求項1から3のうちいずれか1項記載の検索データ管理装置。 The deletion processing unit, when searching for the alternative path, among the multidimensional vector data connected to one multidimensional vector data among the multidimensional vector data connected by the extracted edge, The multidimensional vector data closer to the other multidimensional vector data among the multidimensional vector data connected by the extracted edge than the multidimensional vector data is set as a search start vector.
The search data management device according to any one of claims 1 to 3.
請求項1から5のうちいずれか1項記載の検索データ管理装置。 Creation of the graph structure data based on the distance between multiple multidimensional vectors, by limiting the number of other multidimensional vectors connected to the target multidimensional vector via edges to a predetermined number Further comprising
The search data management device according to any one of claims 1 to 5.
前記生成部により生成された多次元ベクトルデータと、前記グラフ構造のデータとに基づいて、前記生成部により生成された多次元ベクトルデータに類似する多次元ベクトルデータを抽出し、前記他装置に返信する検索部を更に備える、
請求項1から6のうちいずれか1項記載の検索データ管理装置。 A generating unit that generates multidimensional vector data as feature data of query data received from another device;
Based on the multidimensional vector data generated by the generation unit and the data of the graph structure, multidimensional vector data similar to the multidimensional vector data generated by the generation unit is extracted and returned to the other device Further comprising a search unit for
The search data management device according to any one of claims 1 to 6.
前記被抽出エッジと同じ多次元ベクトルデータ同士を、前記被抽出エッジとは異なる経路で接続すると共に、エッジ数が所定数以下である代替パスが存在するか否かを判定し、
存在すると判定した場合に、前記被抽出エッジを前記グラフ構造のデータから削除する、
検索データ管理方法。 Extract the extracted edge, which is the edge that satisfies the predetermined condition, from the data of the graph structure in which the multidimensional vector data to be searched is connected by the edge,
Connecting the same multi-dimensional vector data as the extracted edge with a path different from the extracted edge, and determining whether there is an alternative path having a predetermined number of edges or less,
If it is determined that it exists, the extracted edge is deleted from the data of the graph structure;
Search data management method.
検索対象の多次元ベクトルデータがエッジにより接続されたグラフ構造のデータから、所定条件を満たすエッジである被抽出エッジを抽出させ、
前記被抽出エッジと同じ多次元ベクトルデータ同士を、前記被抽出エッジとは異なる経路で接続すると共に、エッジ数が所定数以下である代替パスが存在するか否かを判定させ、
存在すると判定した場合に、前記被抽出エッジを前記グラフ構造のデータから削除させる、
検索データ管理プログラム。 On the computer,
From the data of the graph structure in which the multidimensional vector data to be searched is connected by the edge, the extracted edge that is an edge satisfying a predetermined condition is extracted,
Connecting the same multi-dimensional vector data as the extracted edge with a route different from the extracted edge, and determining whether there is an alternative path having a predetermined number of edges or less,
When it is determined that it exists, the extracted edge is deleted from the data of the graph structure.
Search data management program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016104827A JP6333306B2 (en) | 2016-05-26 | 2016-05-26 | SEARCH DATA MANAGEMENT DEVICE, SEARCH DATA MANAGEMENT METHOD, AND SEARCH DATA MANAGEMENT PROGRAM |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016104827A JP6333306B2 (en) | 2016-05-26 | 2016-05-26 | SEARCH DATA MANAGEMENT DEVICE, SEARCH DATA MANAGEMENT METHOD, AND SEARCH DATA MANAGEMENT PROGRAM |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017211846A true JP2017211846A (en) | 2017-11-30 |
JP6333306B2 JP6333306B2 (en) | 2018-05-30 |
Family
ID=60475800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016104827A Active JP6333306B2 (en) | 2016-05-26 | 2016-05-26 | SEARCH DATA MANAGEMENT DEVICE, SEARCH DATA MANAGEMENT METHOD, AND SEARCH DATA MANAGEMENT PROGRAM |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6333306B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019125078A (en) * | 2018-01-15 | 2019-07-25 | ヤフー株式会社 | Information processor and information processing method and program |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011090351A (en) * | 2009-10-20 | 2011-05-06 | Yahoo Japan Corp | Retrieval data management device |
JP2011090352A (en) * | 2009-10-20 | 2011-05-06 | Yahoo Japan Corp | Retrieval data management device |
JP2012133522A (en) * | 2010-12-21 | 2012-07-12 | Yahoo Japan Corp | Graph index reconstruction device |
US20130230255A1 (en) * | 2012-03-02 | 2013-09-05 | Microsoft Corporation | Image Searching By Approximate k-NN Graph |
JP2014146280A (en) * | 2013-01-30 | 2014-08-14 | Nippon Telegr & Teleph Corp <Ntt> | Association calculation device, association calculation system, association calculation method, and association calculation program |
US20160117413A1 (en) * | 2014-10-22 | 2016-04-28 | International Business Machines Corporation | Node relevance scoring in linked data graphs |
-
2016
- 2016-05-26 JP JP2016104827A patent/JP6333306B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011090351A (en) * | 2009-10-20 | 2011-05-06 | Yahoo Japan Corp | Retrieval data management device |
JP2011090352A (en) * | 2009-10-20 | 2011-05-06 | Yahoo Japan Corp | Retrieval data management device |
JP2012133522A (en) * | 2010-12-21 | 2012-07-12 | Yahoo Japan Corp | Graph index reconstruction device |
US20130230255A1 (en) * | 2012-03-02 | 2013-09-05 | Microsoft Corporation | Image Searching By Approximate k-NN Graph |
JP2014146280A (en) * | 2013-01-30 | 2014-08-14 | Nippon Telegr & Teleph Corp <Ntt> | Association calculation device, association calculation system, association calculation method, and association calculation program |
US20160117413A1 (en) * | 2014-10-22 | 2016-04-28 | International Business Machines Corporation | Node relevance scoring in linked data graphs |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019125078A (en) * | 2018-01-15 | 2019-07-25 | ヤフー株式会社 | Information processor and information processing method and program |
Also Published As
Publication number | Publication date |
---|---|
JP6333306B2 (en) | 2018-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10102227B2 (en) | Image-based faceted system and method | |
JP5226401B2 (en) | Apparatus and method for supporting retrieval of document data | |
US8577881B2 (en) | Content searching and configuration of search results | |
US20150234927A1 (en) | Application search method, apparatus, and terminal | |
US20100169326A1 (en) | Method, apparatus and computer program product for providing analysis and visualization of content items association | |
CN109471838B (en) | Directory document operation method and device, electronic equipment and readable storage medium | |
US10268655B2 (en) | Method, device, server and storage medium of searching a group based on social network | |
WO2015026667A1 (en) | Generating cache query requests | |
WO2017181866A1 (en) | Making graph pattern queries bounded in big graphs | |
WO2019057191A1 (en) | Content retrieval method, terminal and server, electronic device and storage medium | |
CN108319628B (en) | User interest determination method and device | |
WO2017095413A1 (en) | Incremental automatic update of ranked neighbor lists based on k-th nearest neighbors | |
CN109213972B (en) | Method, device, equipment and computer storage medium for determining document similarity | |
WO2017065795A1 (en) | Incremental update of a neighbor graph via an orthogonal transform based indexing | |
JP6333306B2 (en) | SEARCH DATA MANAGEMENT DEVICE, SEARCH DATA MANAGEMENT METHOD, AND SEARCH DATA MANAGEMENT PROGRAM | |
JP2018156458A (en) | Creation device, creation method, and creation program | |
CN114897666B (en) | Graph data storage, access, processing method, training method, device and medium | |
CN115827280A (en) | Message processing method and device, electronic equipment and storage medium | |
JP2006338508A (en) | Relevant content searching device and method | |
CN113934637A (en) | Test method, device, equipment and storage medium | |
WO2017095421A1 (en) | Automatic selection of neighbor lists to be incrementally updated | |
US20150134671A1 (en) | Method and apparatus for data distribution and concurrence | |
US20140108420A1 (en) | Index creation method and system | |
CN112364246B (en) | Data searching method, device, computer equipment and storage medium | |
JP6300982B2 (en) | SEARCH DATA MANAGEMENT DEVICE, SEARCH DATA MANAGEMENT METHOD, AND SEARCH DATA MANAGEMENT PROGRAM |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171013 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20171013 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20171108 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180115 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180123 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180312 |
|
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: 20180327 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180424 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6333306 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 |