JP6352958B2 - グラフインデックス探索装置及びグラフインデックス探索装置の動作方法 - Google Patents

グラフインデックス探索装置及びグラフインデックス探索装置の動作方法 Download PDF

Info

Publication number
JP6352958B2
JP6352958B2 JP2016013381A JP2016013381A JP6352958B2 JP 6352958 B2 JP6352958 B2 JP 6352958B2 JP 2016013381 A JP2016013381 A JP 2016013381A JP 2016013381 A JP2016013381 A JP 2016013381A JP 6352958 B2 JP6352958 B2 JP 6352958B2
Authority
JP
Japan
Prior art keywords
node
unsearched
nodes
query
graph index
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016013381A
Other languages
English (en)
Other versions
JP2017134582A (ja
Inventor
岩崎 雅二郎
雅二郎 岩崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yahoo Japan Corp
Original Assignee
Yahoo Japan Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yahoo Japan Corp filed Critical Yahoo Japan Corp
Priority to JP2016013381A priority Critical patent/JP6352958B2/ja
Publication of JP2017134582A publication Critical patent/JP2017134582A/ja
Application granted granted Critical
Publication of JP6352958B2 publication Critical patent/JP6352958B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、グラフ構造のインデックスを用いて新規ベクトルデータと類似する既存ベクトルデータを検索するための技術に関する。
ベクトルデータの検索の例として画像認識がある。画像認識は、認識対象画像における特徴領域から多次元のベクトルデータ(局所特徴量)を抽出し、多数の学習画像から抽出した多次元のベクトルデータとの距離などに基づき、それらの学習画像のなかから類似画像を抽出するものである。
類似画像の検索において、学習画像の数が多い場合において、認識対象画像と各学習画像とのベクトルデータ間の距離を逐一計算すると多くの時間が検索にかかってしまう。そこで、検索速度を高めるために何らかのインデックスが用いられる。
例えば、特許文献1においては、グラフ構造のインデックスを用いて高速な検索を実現している。
特許第5308001号公報
グラフ構造のインデックスは、例えば画像における局所特徴量などの多次元ベクトルデータと対応付けたノードをエッジによって互いに接続して構成されるインデックスである。このようなグラフ構造のインデックスを用いた検索は、いずれかに選択された検索開始点となるノードからエッジを介して接続されるノードを辿ることにより、クエリ(認識対象画像)と近接する学習画像を抽出する。
ここで、エッジにより接続されるノードの数は一つに限られず複数に及ぶため、エッジを介してノードを辿る経路は多岐にわたる。すなわち、接続される複数のノードのうちいずれのノードを選択して辿るのか、あるいは検索開始点をどのように規定するのかなどにより、その経路は多岐にわたり、そのノードの辿り方は検索の精度や速度に影響を及ぼすという問題がある。
本発明は、精度や速度といった検索に求められる性能をより向上させるためのノードの辿り方などを示すことを課題とする。
そこで、上記課題を解決するために本発明において、以下のグラフインデックス探索装置などを提供する。すなわち、複数のベクトルデータをノードとし、近傍にあるノード間をエッジにより接続してなるグラフインデックスを保持するグラフインデックス保持部と、未探索ノードを保持するための未探索ノード保持部と、前記グラフインデックスのノードから起点を選択して未探索ノードに追加する起点選択部と、クエリとなるベクトルデータを取得するクエリ取得部と、前記未探索ノードから順次ノードを選択し、選択されたノードとクエリとの関係が所定の関係にあるか判断する判断部と、判断結果が所定の関係であると判断された場合には前記選択されたノードに接続されている近傍ノードを前記未探索ノードに追加する未探索ノード追加部と、を有するグラフインデックス探索装置などを提供する。
上記のような構成を採用するグラフインデックス探索装置により、ベクトルデータの検索における速度や精度の向上を図ることができる。
実施形態1のグラフインデックス探索装置の機能ブロックの一例を示す図 グラフインデックスを用いた探索処理について説明するための概念図 優先度を付けたキュー構造にてノードを保持する未探索ノード保持部の概念図 検索処理のアルゴリズムを疑似コードで表わしたプログラムの一例 実施形態1のグラフインデックス探索装置のハードウェア構成の一例を表す概略図 実施形態1のグラフインデックス探索装置の処理の一例を表すフロー図
以下、本発明の実施の形態について、添付図面を用いて説明する。なお、本発明は、これら実施形態に何ら限定されるべきものではなく、その要旨を逸脱しない範囲において、種々なる態様で実施し得る。
<実施形態1>
<構成>
図1は、本実施形態のグラフインデックス生成装置の機能ブロックの一例を示すブロック図である。なお、以下に記載する本装置の機能ブロックは、ハードウェア及びソフトウェアの組み合わせとして実現され得る。具体的には、コンピュータを利用するものであれば、CPU(中央演算装置)や主メモリ、システムバス、あるいは二次記憶装置(ハードディスクドライブや不揮発性メモリ、CDやDVDなどの記憶メディアとそれらメディアの読取ドライブなど)、情報入力に利用される入力デバイス、表示装置、その他の外部周辺装置などのハードウェア構成部、またその外部周辺装置用のインターフェース、通信用インターフェース、それらハードウェアを制御するためのドライバプログラムやその他アプリケーションプログラム、ユーザ・インターフェース用アプリケーションなどが挙げられる。そして主メモリ上に展開したプログラムに従ったCPUの演算処理によって、入力デバイスやその他インターフェースなどから入力され、メモリやハードディスク上に保持されているデータなどが加工、蓄積されたり、上記各ハードウェアやソフトウェアを制御するための命令が生成されたりする。あるいは本装置の機能ブロックは専用ハードウェアによって実現されてもよい。また、本装置は一つのハードウェアやソフトウェアにより構成される場合に限られず、複数のハードウェアやソフトウェアの組み合わせによって構成されてもよく、ネットワークを介在したサーバ装置を含んで構成されてもよい。
また、この発明は装置として実現できるのみでなく、方法としても実現可能である。また、このような発明の一部をソフトウェアとして構成することができる。さらに、そのようなソフトウェアをコンピュータに実行させるために用いるプログラム、及びプログラムを固定した記録媒体も、当然にこの発明の技術的な範囲に含まれる(本明細書の全体を通じて同様である)。
図1に示すように、本実施形態のグラフインデックス探索装置0100は、グラフインデックス保持部0101と、未探索ノード保持部0102と、起点選択部0103と、クエリ取得部0104と、判断部0105と、未探索ノード追加部0106と、を有する。
グラフインデックス保持部0101は、複数のベクトルデータをノードとし、近傍にあるノード間をエッジにより接続してなるグラフインデックスを保持する機能を有する。ベクトルデータは前述した画像や音声から抽出した特徴量などがある。また、水位や潮位、地震動(地面の動き)、大気中のCOやPM2.5の濃度分布など数値で表現されるものすべてである。
近傍とは、ベクトル空間におけるノード間の距離における近傍である。近傍であるか否かは種々定めることができる。例えば、あるノードと他のすべてのノードとの距離に基づき近い順にソートした上位X個に該当するノードを近傍のノードとすることができる。また、あるノードから規定の距離範囲内に位置するノードを近傍ノードとしてもよい。なお、ここでいう距離は、例えばユークリッド距離などである。
ノード間に接続されるエッジはリンクと称される場合もある、また、エッジは単方向を有するものであってもよいし、双方向を有するものであってもよい。ここでいう方向とは、グラフインデックを用いて検索を行う際に、ノード間に張られたエッジにより辿ることのできる方向を意味する。
未探索ノード保持部0102は、未探索ノードを保持するための機能を有する。保持するための機能とは、保持することができるという意味である。
本装置においては、後述するクエリを取得し、グラフインデックスを構成するいずれかのノードからエッジにより接続されているノードを辿り、辿ったノードについての情報(例えば、クエリとの距離や接続されているエッジ数など)の取得などを行いながら、クエリに近い距離にある(類似する)ノードを検索するものである。このようにノードを辿ることを探索という。
未探索ノードとは、前述の通り、未だ辿られていないノードであり、例えば当該ノードについての情報を取得したり、当該ノードに何らかの処理を施すといったことがなされていないノードである。後述する未探索ノード追加部により未探索ノード保持部に保持されているノードや、すでに未探索ノード保持部に保持されているノードとエッジにより接続しているノードであって未だ未探索ノード保持部に保持されていないノードでもある。
未探索ノードの保持にあたり、保持する未探索ノードに何らかの情報を付随させて保持することもできる。例えば、探索における経路として辿られたことを示すフラグを立てたり、辿られることによる処理履歴を付したりすることができる。また、未探索ノードのIDを配列や集合(set, priority queue)といったデータ格納形式で管理することができる。
起点選択部0103は、前記グラフインデックスのノードから起点を選択して未探索ノードに追加する機能を有する。起点とは前述の探索を行うときの起点である。起点の選択はランダムに行ってもよいし、何らかのインデックスを用いて行ってもよい。未探索ノードに追加するとは、未探索ノード保持部による保持対象となることを意味する。すなわち、起点として選択されたノードは未探索ノード保持部に保持されることになる。
本装置は、ベクトル空間分割によりグラフインデックスが保持するグラフインデックスを構成するノードに対応するベクトルデータをリーフノードとする木構造型インデックスを保持する構成としてもよい。
係る木構造型インデックスを保持する場合には、起点選択部は木構造型インデックスに基づいて、後述するクエリが属するベクトル空間にあるベクトルデータから未探索ノードとしての起点を選択することができる。これにより、クエリと近傍にあるノードを起点として探索をすることができ、効率よく探索を行うことが可能となる。ここでの木構造型インデックスによる検索を近似近傍検索とすることで、高速に近傍ノードを取得できる。
クエリ取得部0104は、クエリとなるベクトルデータを取得する機能を有する。クエリとは、例えば、類似画像検索においては、学習画像から類似する画像を見つけようとする画像のこと(検索元)をいう。クエリの取得は、例えばネットワークを介してクライアント端末などから取得する。また、クエリとなるベクトルデータとは、検索元となる画像から抽出した特徴量のように、クエリをベクトルデータで表わしたものとなる。
判断部0105は、前記未探索ノードから順次ノードを選択し、選択されたノードがまだ後述する範囲判定を行っていないノードの場合にのみ、選択されたノードにエッジで接続された近傍ノードとクエリとの関係が所定の関係にあるか判断する(範囲判定)機能を有する。当該近傍ノードとクエリとの関係とは、例えば、クエリとなるベクトルデータを中心として所定の距離(ベクトル空間における距離)範囲内に当該近傍ノードが存在するか否かといった関係である。このように規定される範囲を検索範囲という。この検索範囲内か否かは、クエリと当該近傍ノードとの距離によって判断できる。
また、前述の検索範囲をα倍した範囲(探索範囲)内に当該近傍ノードが存在するか否かといった関係である。この判断も、クエリとなるベクトルデータと当該近傍ノードとの距離によって判断できる。なお、具体的な検索の処理については後述するが、αの値を1より大きな値に設定することにより、検索速度が相対的に遅くなるものの検索漏れの少ない高精度の検索を行うことが可能となる。また、αの値を1より小さな値に設定することにより、検索精度が相対的に低下するものの高速な検索を行うことができる。
判断部は未探索ノードから順次ノードを選択するが、ここで選択の対象となる未探索ノードは、未探索ノード保持部に保持されているノードである。
未探索ノード保持部に保持されるノードを順次選択する態様は種々考えられ、例えば、保持される複数の未探索ノードからランダムに一の未探索ノードを選択するようにしてもよい。ランダムに選択する場合には、広範囲に探索するためローカルミニマムに落ち込みにくい。また、ソート処理がないため高速な検索が可能になるが、広範囲に検索することにより速度が低下する。
また、保持される未探索ノードから各ノードとクエリとの距離が近い順に選択してもよい。この場合、近傍ノードを効果的に探索できる反面、ローカルミニマムに落ち込みやすい。また、距離の近い順にソートする処理を要するため時間がかかる。
また、ノードの選択は、未探索ノード保持部におけるノード保持の態様に応じたものであってもよい。例えば、プライオリティキュー(優先度付きキュー)構造で保持する場合であって、クエリとなるベクトルデータとの距離の近い順や遠い順に優先度を付して保持する場合には、その付された優先度に基づいて(近い順又は遠い順)選択される。
この場合には、ソート処理がないもののソートした場合と同じ効果を得ることができ、近い順に優先度を付して保持した場合には、近接ノードを効果的に探索することができる。また、遠い順に優先度を付して保持した場合には、広範囲に探索することができローカルミニマムに落ち込みにくい。
また、未探索ノード保持部がスタック構造により未探索ノードを保持する場合には、複数保持されている未探索ノードのうち最後に保持された未探索ノードが選択される。この場合については後述する。
本装置における探索の初期段階、すなわち、起点のみが未探索ノード保持部に保持されている段階では、その起点として選択されたノードが判断部により判断される。
未探索ノード追加部0106は、判断部による判断結果が所定の関係であると判断された場合には前記選択されたノードに接続されている近傍ノードを前記未探索ノードに追加する機能を有する。
図2を用いて本機能について検索処理と併せて説明する。図2は、グラフインデックスを用いて探索を行う処理について説明するための概念図である。図中の符号0201で示すのがクエリとなるベクトルデータ(以下、単にクエリという)である。また、符号0202で示すのは起点として選択されたノードである。起点となったノードは未探索ノードとして保持される。なお、起点を選択した時点で未探索ノード保持部に保持されるノードは、起点となったノードのみである。起点は複数のノードから構成されてもよい。
判断部は、未探索ノード保持部に保持されるノードを選択する。起点が複数存在する場合には、それぞれの起点から順次検索処理を行う。まず、選択された起点ノードが上述した探索範囲内にあるか判断する。検索の初期段階において検索範囲は無限大に設定されているため、起点となったノードは探索範囲内にあると判断することができる。この判断結果により起点となったノードに接続されている近傍ノード追加される。追加される近傍ノードは、図中のノードa(0203)、ノードb(0204)及びノードc(0205)である。これら複数の近傍ノードを未探索ノードに追加するにあたり所定の順に追加する態様については後述する。ここで、判断部により判断された起点ノードは未探索ノードではなくなる。
判断部は、上述の通り未探索ノードに追加されたノードa、ノードb及びノードcを順次選択し、それぞれのノードが探索範囲内(0211)にあるかの判断をする。なお、この探索範囲はクエリと起点との距離を検索範囲(0210)とし、これをα倍したものである。具体的には、検索範囲rに(1+ε)を乗じたものが探索範囲である(εは探索範囲係数という)。図示するように、各ノードは探索範囲内にあるので未探索ノード保持部に追加して保持する。
ここでは、クエリとの距離の近い順に優先度を付けたキュー構造で保持するものとする。この場合における未探索ノード保持部の保持態様の概念を図3に示す。図示するように、クエリとの距離に基づき優先度が各ノードに付される。ここでは、最もクエリに近いノードaの優先度が「1」で、次に近いノードbに優先度「2」が付され、最もクエリから遠いノードcに優先度「3」が付される。
ここで、起点はすでに判断部により判断が済んでいるため優先度は付されない。このようなノードを未探索ノード保持部の保持対象から外してもよいし、本図に示すように探索済のフラグを付して保持していてもよい。
このように未探索ノード保持部にノードが追加されると、判断部はさらに追加されたノードに接続されている近傍ノードについて所定の関係にあるかの判断をする。ここで、図3に示したように、未探索ノード保持部は優先度を付けたキュー構造にてノードを保持しているので、判断部は、優先度「1」が付されているノードaを選択して判断を行う。ノードaについて前述のような判断を行った後に、優先度に従いノードb、ノードcと順次選択して同様に判断する。そして、判断がなされたノードa、ノードb及びノードcに探索済のフラグを立てる。
また、ノードa、ノードb及びノードcのそれぞれについて、検索範囲内にあるか判断し、検索範囲内にあるノードについては検索結果として保持する。そして検索結果として保持されるノードとクエリとの距離に基づき検索範囲を狭めていく。すなわち検索結果として保持するノードの数(検索数)の上限を予め定めておき(k個)、前述の検索数がkを超えた場合にはクエリからの距離が遠い順に超過分のノードを検索結果としての保持対象から外し、そのうえで検索結果として保持されるノードのうちクエリから最遠のノードまでの距離を新たな検索範囲とする。このように検索範囲を狭めながら探索を進めていくことで効率よくクエリに近づいていくことができる。
以降も、上述した処理を行いながらノードを辿ることによりクエリに類似するノードを検索する。検索の終了は、例えば、検索範囲を狭めていき、探索範囲内に対象となる未探索ノードが存在しなくなったことを条件とするなどして終了する。
図4は、上述したような検索処理のアルゴリズムを疑似コードで表わしたプログラムの一例である。なお、図示する疑似コードにおいては、保持される未探索ノードとクエリとの距離を計算し、最も距離の近いノードを判断対象として選択する処理を行っている。判断対象とする未探索ノードの選択の態様は上述の通り種々考えられ、検索処理のアルゴリズムもその態様に応じたものとなる。
上記プログラムにおいて、Sはグラフインデックスを構成するノードであって、未だ辿られていない(クエリとの距離判断などがなされていない)ノードの集合である。また、qはクエリである。sは集合Sから選択される判断対象となるノードである。rは検索範囲である。また、εは、検索限界範囲を規定する探索範囲係数である。また、oは、sに接続するノードである。また、Cは探索済のノードの集合であり、Rは検索結果としてほじされるノードの集合である。
<ハードウェア構成>
図5は、上記機能的な各構成要件をハードウェアとして実現した際の、グラフインデックス探索装置の構成の一例を表す概略図である。この図を利用してグラフインデックス探索装置に係るそれぞれのハードウェア構成の働きについて説明する。
この図にあるように、グラフインデックス探索装置は、各種演算処理を実行するための「CPU」(0501)と、「主メモリ」(0502)と、「二次記憶装置」(0503)と、「通信インターフェース」(0504)」などを備える。記憶装置にはベクトルデータ、グラフインデックス、クエリ、所定の関係、規定数k、検索終了条件、起点選択プログラムなどの各種プログラムなどが格納されている。CPUはこれら各種プログラムを主メモリに展開したうえで実行する。前記の各ハードウェア構成は「システムバス」(0505)などのデータ通信経路によって相互に接続され、情報の送受信や処理を行う。
まず、CPUは、クエリ取得プログラムを実行し、クエリとなるベクトルデータを取得する。そして、起点選択プログラムを実行し、グラフインデックスのノードから起点を選択する。そして、選択した起点を未探索ノードとして所定の領域に格納する。そして、判断プログラムを実行し、格納された未探索ノードとクエリとの関係が所定の関係にあるか判断する。判断結果は所定の領域に格納する。そして、未探索ノード追加プログラムを実行し、格納されている判断結果が所定の関係にあるとの結果である場合に格納されている未探索ノードと接続されているノードを未探索ノードとして所定領域に格納する。また、判断プログラムの実行により判断された未探索ノードについては判断済のフラグをその未探索ノードに付して格納する。そして、検索終了条件が満たされたか判断し、満たされたとの判断結果が得られるまで、上記各プログラム及び処理を繰り返し実行する。
<処理の流れ>
図6は、本実施形態のグラフインデックス探索装置における処理の流れの一例を表すフロー図である。なお、以下に示すステップは、上記のような計算機の各ハードウェア構成によって実行されるステップであっても良いし、媒体に記録され計算機を制御するためのプログラムを構成する処理ステップであっても構わない。
図示するように、まず、クエリとなるベクトルデータを取得する(クエリ取得ステップ:S0601)。そして、グラフインデックスのノードから起点を選択して未探索ノードに追加する(起点選択ステップ:S0602)。そして、未探索ノードから順次ノードを選択し、選択されたノードとクエリとの関係が所定の関係にあるか判断する(判断ステップ:S0603)。そして、判断結果が所定の関係であると判断された場合には前記選択されたノードに接続されている近傍ノードを前記未探索ノードに追加する(未探索ノード追加ステップ:S0604)。
<効果>
未探索ノードの保持をプライオリティキュー構造で行ったり、未探索ノードから判断対象とするノードをランダムに選択することなどにより、所望の検索精度や検索速度などに応え得るグラフインデックス探索装置を提供することができる。
<実施形態2>
本実施形態は、実施形態1におけるグラフインデックス探索装置を基本とし、未探索ノード保持部がスタック構造により未探索ノードを保持することを特徴とする。
スタック構造による保持データの処理は、いわゆる後入れ先出しの構造である。そして、このような未探索ノード保持部に対して、一つの態様としては、未探索ノード追加部は、接続される近傍ノードをクエリから距離の遠い順に追加する。
この場合、次に判断部により判断されるノードは追加されたノードのうち最もクエリに近いノードから取り出されるためクエリに近いノードを辿ることができる。しかしクエリに近い順であっても局所的な近い順であるのでローカルミニマムに落ち込むリスクは高くない。また、ソートを行わないので高速で検索することができる。
また、他の態様として、未探索ノード追加部は、接続される近傍ノードをクエリから距離の近い順に追加する。次に判断部により判断されるノードは追加されたノードのうち最もクエリに遠いノードから選択され。そのため広範囲に探索することができ、ローカルミニマムに落ち込みにくくなる。
本装置においては、実施形態1及び2において、種々の未探索ノード保持部と未探索ノード追加部の構成を示してきた。それぞれの態様に応じて、検索の傾向(検索速度、検索範囲、ローカルミニマムの生じにくさ、など)を付与することができる。とくに、未探索ノード保持部をスタック構造とし、未探索ノード追加部を接続される近傍ノードをクエリからの距離順(遠い順又は近い順)に追加するという制御により、ソートや優先度を付与することなく未探索ノード保持部をシンプルな構成にしつつ、未探索ノード保持部から判断対象となる未探索ノードの選択において一定の傾向を付与することができる。そして、そのような傾向が付与されることにより、検索処理自体の傾向を付与することが可能となる。
本装置においては、前述種々なる態様の未探索ノード保持部と未探索ノード追加部を選択可能に構成してもよい。これにより、本装置による検索を要求する者のニーズ(検索速度、検索精度など)に応じた検索を行うことが可能となる。
本実施形態のグラフインデックス探索装置は、実施形態1のグラフインデックス探索装置に係るハードウェア構成に準じて構成することができる。例えば、上述したように未探索ノード保持部をスタック構造にて構成し、近傍ノードから近い順または遠い順に未探索ノードを追加する未探索ノード追加プログラムをCPUが実行することなどにより構成される。
また、本実施形態のグラフインデックス探索装置における処理についても、実施形態1のグラフインデックス探索装置における処理の流れに準じたものとなり、前述の通り、本実施形態に特有の未探索ノードの追加を行う処理を含むものとなる。
<効果>
本実施形態のグラフインデックス探索装置により、未探索ノード保持部をスタック構造とすることで、ソートなどの処理を排除することで検索速度の向上を実現するとともに、未探索ノードの追加において所定の順序付けをすることで、それに応じた検索の傾向を付与することができる。
0100 グラフインデックス探索装置
0101 グラフインデックス保持部
0102 未探索ノード保持部
0103 起点選択部
0104 クエリ取得部
0105 判断部
0106 未探索ノード追加部

Claims (11)

  1. 複数のベクトルデータをノードとし、近傍にあるノード間をエッジにより接続してなるグラフインデックスを保持するグラフインデックス保持部と、
    未探索ノードを保持するための未探索ノード保持部と、
    前記グラフインデックスのノードから起点を選択して未探索ノードに追加する起点選択部と、
    クエリとなるベクトルデータを取得するクエリ取得部と、
    前記未探索ノードから順次ノードを選択し、選択されたノードとクエリとの距離が所定の距離範囲内である関係にあるか判断する判断部と、
    判断結果が前記関係であると判断された場合には前記選択されたノードに接続されている近傍ノードを前記未探索ノードに追加する未探索ノード追加部と、
    を有するグラフインデックス探索装置。
  2. 前記未探索ノード保持部は、前記クエリから最も近い未探索ノードを選択可能に保持する請求項1に記載のグラフインデックス探索装置。
  3. 前記未探索ノード保持部は、スタック構造を有し、
    前記未探索ノード追加部は、前記近傍ノードを前記クエリから距離の遠い順に追加する請求項1に記載のグラフインデックス探索装置。
  4. 前記未探索ノード保持部は、前記クエリから最も遠い未探索ノードを選択可能に保持する請求項1に記載のグラフインデックス探索装置。
  5. 前記未探索ノード保持部は、スタック構造を有し、
    前記未探索ノード追加部は、前記近傍ノードを前記クエリから距離の近い順に追加する請求項1に記載のグラフインデックス探索装置。
  6. 前記判断部は、前記未探索ノードからランダムにノードを選択する請求項1から5のいずれか一に記載のグラフインデックス探索装置。
  7. 前記起点選択部は、
    未探索ノードとしての起点をグラフインデックス中の複数のノードからランダムに選択するランダム選択手段を有することを特徴とする請求項1から6のいずれか一に記載のグラフインデックス探索装置。
  8. ベクトル空間分割により前記複数のベクトルデータを木構造型インデックスで保持する木構造インデックス保持部を更に備え、
    前記起点選択部は、
    前記木構造インデックスに基づいて前記クエリが属するベクトル空間にあるベクトルデータから未探索ノードとしての起点を選択する木構造インデックス選択手段を有することを特徴とする請求項1から6のいずれか一に記載のグラフインデックス探索装置。
  9. 判断部により前記関係にあると判断されたノードであって、検索範囲内にあるノードを検索結果として保持する検索結果保持部をさらに有する請求項1から8のいずれか一に記載のグラフインデックス探索装置。
  10. 複数のベクトルデータをノードとし、近傍にあるノード間をエッジにより接続してなるグラフインデックスを保持するグラフインデックス保持部と、
    未探索ノードを保持するための未探索ノード保持部と、を有するグラフインデックス探索装置の動作方法であって、
    前記グラフインデックスのノードから起点を選択して未探索ノードに追加する起点選択ステップと、
    クエリとなるベクトルデータを取得するクエリ取得ステップと、
    前記未探索ノードから順次ノードを選択し、選択されたノードとクエリとの距離が所定の距離範囲内である関係にあるか判断する判断ステップと、
    判断結果が前記関係であると判断された場合には前記選択されたノードに接続されている近傍ノードを前記未探索ノードに追加する未探索ノード追加ステップと、
    を有するグラフインデックス探索装置の動作方法。
  11. 複数のベクトルデータをノードとし、近傍にあるノード間をエッジにより接続してなるグラフインデックスを保持するグラフインデックス保持部と、
    未探索ノードを保持するための未探索ノード保持部と、を有するグラフインデックス探索装置を動作させるプログラムであって、
    前記グラフインデックスのノードから起点を選択して未探索ノードに追加する起点選択ステップと、
    クエリとなるベクトルデータを取得するクエリ取得ステップと、
    前記未探索ノードから順次ノードを選択し、選択されたノードとクエリとの距離が所定の距離範囲内である関係にあるか判断する判断ステップと、
    判断結果が前記関係であると判断された場合には前記選択されたノードに接続されている近傍ノードを前記未探索ノードに追加する未探索ノード追加ステップと、
    を計算機に実行させるプログラム。
JP2016013381A 2016-01-27 2016-01-27 グラフインデックス探索装置及びグラフインデックス探索装置の動作方法 Active JP6352958B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016013381A JP6352958B2 (ja) 2016-01-27 2016-01-27 グラフインデックス探索装置及びグラフインデックス探索装置の動作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016013381A JP6352958B2 (ja) 2016-01-27 2016-01-27 グラフインデックス探索装置及びグラフインデックス探索装置の動作方法

Publications (2)

Publication Number Publication Date
JP2017134582A JP2017134582A (ja) 2017-08-03
JP6352958B2 true JP6352958B2 (ja) 2018-07-04

Family

ID=59504893

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016013381A Active JP6352958B2 (ja) 2016-01-27 2016-01-27 グラフインデックス探索装置及びグラフインデックス探索装置の動作方法

Country Status (1)

Country Link
JP (1) JP6352958B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7221590B2 (ja) * 2017-11-16 2023-02-14 ヤフー株式会社 抽出装置、抽出方法、及び抽出プログラム
JP6967462B2 (ja) * 2018-01-18 2021-11-17 ヤフー株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
JP7122120B2 (ja) * 2018-02-27 2022-08-19 ヤフー株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
JP6976202B2 (ja) * 2018-03-14 2021-12-08 ヤフー株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
US11354587B2 (en) * 2019-02-01 2022-06-07 System Inc. Systems and methods for organizing and finding data
CN110990638B (zh) * 2019-10-28 2023-04-28 北京大学 基于fpga-cpu异构环境的大规模数据查询加速装置及方法
JP7208955B2 (ja) * 2020-08-06 2023-01-19 ヤフー株式会社 情報処理装置、情報処理方法、情報処理プログラム、情報検索装置、情報検索方法、及び情報検索プログラム
JP7119154B2 (ja) * 2021-03-18 2022-08-16 ヤフー株式会社 情報処理装置、情報処理方法、及び情報処理プログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5208001B2 (ja) * 2008-06-09 2013-06-12 ヤフー株式会社 ベクトルデータ検索装置

Also Published As

Publication number Publication date
JP2017134582A (ja) 2017-08-03

Similar Documents

Publication Publication Date Title
JP6352958B2 (ja) グラフインデックス探索装置及びグラフインデックス探索装置の動作方法
US11423082B2 (en) Methods and apparatus for subgraph matching in big data analysis
US8824337B1 (en) Alternate directions in hierarchical road networks
JP6068568B1 (ja) 改変k最近傍グラフ生成装置及び改変k最近傍グラフ生成装置の動作方法
JP6004016B2 (ja) 情報変換方法、情報変換装置および情報変換プログラム
WO2016177279A1 (zh) 数据处理的方法及系统
JP2012529704A (ja) 検索負荷に応じて平衡化されたフィンガープリントのデータベースを有するメディア識別システム
CN112085644B (zh) 多列数据排序方法、装置、可读存储介质和电子设备
US20150120637A1 (en) Apparatus and method for analyzing bottlenecks in data distributed data processing system
JP6004015B2 (ja) 学習方法、情報処理装置および学習プログラム
JP6589639B2 (ja) 検索システム、検索方法およびプログラム
JP6311000B1 (ja) 生成装置、生成方法、及び生成プログラム
CN113918807A (zh) 数据推荐方法、装置、计算设备及计算机可读存储介质
JP5678691B2 (ja) 検索制御装置、検索制御プログラムおよび検索制御方法
JP2010277329A (ja) 近傍探索装置
WO2017065795A1 (en) Incremental update of a neighbor graph via an orthogonal transform based indexing
JP2019144780A (ja) 生成装置、生成方法、及び生成プログラム
US9298505B2 (en) Time and space-deterministic task scheduling apparatus and method using multi-dimensional scheme
JP4440246B2 (ja) 空間インデックス方法
JP6393982B2 (ja) 空間分割方法、空間分割装置および空間分割プログラム
CN110019295B (zh) 数据库检索方法、装置、系统以及存储介质
JP6203313B2 (ja) 特徴選択装置、特徴選択方法およびプログラム
CN112100446B (zh) 搜索方法、可读存储介质和电子设备
JP6974248B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP6333306B2 (ja) 検索データ管理装置、検索データ管理方法、および検索データ管理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171017

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20171017

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20171018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171221

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180216

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180607

R150 Certificate of patent or registration of utility model

Ref document number: 6352958

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