JP5224537B2 - 局所性検知可能ハッシュの構築装置、類似近傍検索処理装置及びプログラム - Google Patents

局所性検知可能ハッシュの構築装置、類似近傍検索処理装置及びプログラム Download PDF

Info

Publication number
JP5224537B2
JP5224537B2 JP2009132236A JP2009132236A JP5224537B2 JP 5224537 B2 JP5224537 B2 JP 5224537B2 JP 2009132236 A JP2009132236 A JP 2009132236A JP 2009132236 A JP2009132236 A JP 2009132236A JP 5224537 B2 JP5224537 B2 JP 5224537B2
Authority
JP
Japan
Prior art keywords
locality
detectable
random number
hash
number table
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.)
Expired - Fee Related
Application number
JP2009132236A
Other languages
English (en)
Other versions
JP2010277522A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2009132236A priority Critical patent/JP5224537B2/ja
Publication of JP2010277522A publication Critical patent/JP2010277522A/ja
Application granted granted Critical
Publication of JP5224537B2 publication Critical patent/JP5224537B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、テキストや画像、動画といった高次元ベクトルとして表現できる情報から、高速で類似検索する技術に関する。
テキスト、写真、動画等、多数の特徴を持つ情報を、多次元ベクトルとして表現し、大量の多次元ベクトルデータの中から、類似検索を高速に行う技術は、非常に重要である。
特に、近年は、ウェブの爆発的普及や携帯電話の機能の発達等によって、一般ユーザが情報を記録し、公開する機会が急増している。爆発する情報の海に溺れないためには、大量の多次元ベクトルデータの中から、高速で類似検索することの重要性が高まっている。
これまで、数多くの多次元ベクトル検索の高速化技術が提案されている。1998年以前は、主に木構造を利用した多次元ベクトル検索技術が提案された。しかし、木構造を用いる多次元ベクトル検索技術は、次元数が高くなると、いわゆる「次元の呪い」問題が発生し、線形検索(Linear Search)と同等のコストが必要である。つまり、木構造を利用した高速化手法は、「次元の呪い」によって、次元数が10を越えると、問合せを高速で処理することができない(たとえば、非特許文献1参照)。
そこで、VA−fileと呼ばれるデータ構造を利用し、多次元ベクトル検索を高速化する技術が提案された(たとえば、非特許文献5参照)。このVA−fileは、空間を分割し、それぞれにビットシーケンスを割り振ることによって、多次元空間の検索をビットシーケンススキャンによって実現する。
しかし、上記VA−fileは、その性能が、ビットシーケンスの並びに影響を受け、ビットの全スキャンに近いコストがかかること等が、課題である。これらの課題を解決するために、局所性検知可能ハッシュ(LSH(Locality Sensitive Hashing))が提案されている(たとえば、非特許文献2参照)。この「局所性検知可能ハッシュ」は、多次元ベクトルを近似し、複数のハッシュを用いて索引付けを行う。これによって、検索精度を、確率的に保障しながら、検索の計算コストは、(ハッシュ個数)×(次元数)で済む。理論上、次元数に大きく依存せず、高速に類似検索が可能であるので、ウェブにおける情報推薦や画像検索等への応用が期待されている。
特許文献1記載の発明(木構造を利用した高速化手法)は、上記と同様に、近似近傍検索を実現しているが、精度の保障がなく、また、実データである文書ベクトルに対する検索の精度はそれほど高くない(たとえば、非特許文献4参照)。
高次元データに対する高速な類似検索技術としては、「局所性検知可能ハッシュ」(LSH)が最も有望である。この局所性検知可能ハッシュは、近似アルゴリズムであるものの、確率的に精度が保証され(たとえば、非特許文献2、3参照)、非常に高速に近傍(類似)検索を実現する。理論としてのフレームワークは、非特許文献2に提案され、非特許文献3において、L1ノルムが定義された多次元ベクトル空間を、ハミング空間に写像する局所性検知可能ハッシュが実装された。また、最近は、L1ノルムだけではなく、安定分布を利用するL2ノルム版や、コサイン類似度版、Jaccard係数版も提案されている。
特開2004−046612号公報
Kevin Beyer, Jonathan Goldstein, Raghu Ramakrishnan, Uri Shaft,「When Is "Nearest Neighbor" Meaningful?」ICDT 2005 Piotr Indyk, Rajeev Motwani,「Approximate nearest neighbors: towards removing the curse of dimensionality」,Annual ACM Symposium on Theory of Computing 1998 Aristides Gionis, Piotr Indyk, RajeevMotwani,「Similarity Search in High Dimensions via Hashing」,Very Large Data Bases 1999 北 研二,獅々堀 正幹「1次元自己組織化マップを用いた高次元データの高速近傍検索」、自然言語処理 150-5、2002.7.15 Roger Weber, Hans-J.Schek, Stephen Blott,「A Quantitative Analysis and Performance Study for Similarity-Search Methods in High-Dimensional Spaces」, Very Large Data Bases 1998
上記従来例において、局所性検知可能ハッシング処理の中心となる乱数表は、それぞれのハッシュ(乱数表を構成する乱数)毎にランダムにビット位置が決められている。
したがって、上記従来例では、局所性検知可能ハッシュの構築時と近似近傍検索処理時とに、入力となる多次元データを、その都度、スキャンする必要があり、つまり、複数回、スキャンする必要があり、または特殊な索引構造を要求する必要がある。このために、上記従来例では、局所性検知可能ハッシュの構築と近似近傍検索とが遅いという問題がある。
本発明は、局所性検知可能ハッシング処理において、入力となる多次元ベクトルを1回スキャンするだけで、局所性検知可能ハッシュの構築と近似近傍検索とを実行することができ、したがって、局所性検知可能ハッシュの構築と近似近傍検索とが高速である局所性検知可能ハッシュの構築装置、類似近傍検索処理装置を提供することを目的とする。
本発明は、局所性検知可能ハッシング処理において、乱数表を構成する複数の乱数をソートし、しかも、上記ソートされた複数の乱数を、昇順または降順に、複数の乱数表に割り当てる。
本発明によれば、局所性検知可能ハッシング処理は、入力となる多次元ベクトルに対して先頭から順番に1回スキャンするだけで、それぞれの乱数表が持つ乱数値(ビットの位置)を検出することができるので、入力ベクトルを複数回スキャンする必要がないという効果を奏する。
近傍検索のイメージを説明する図である。 図1に示す例に関して、近似近傍検索のイメージを説明する図である。 多次元ベクトルデータからの局所性検知可能ハッシュ構築と近似近傍検索処理の流れとを説明する図である。 局所性検知可能ハッシュのそれぞれのハッシュのバケットの構造を説明する図であり、図3について具体的なパケットの様子を示す図である。 局所性検知可能ハッシュを利用した近似近傍検索処理の流れを説明する図である。 L1距離による類似検索を実現する局所性検知可能ハッシュの詳細を説明する図である。 通常の局所性検知可能ハッシュで用いられる乱数表と多次元ベクトルのUNARY表現との関係を説明する図である。 実施例において、ソートされた乱数表による多次元ベクトルのUNARY表現との関係を説明する図である。 実施例において、類似近傍検索エンジンをバックエンドとして利用し、類似近傍検索アプリケーション100のシステム概略を示すブロック図である。 実施例1において、ソートされた乱数表構築処理(処理A)を示すフローチャートである。 本発明の実施例2であるソートされた乱数表の処理方法(処理B)を示すフローチャートである。 本発明の実施例3であるソートされた乱数表を用いた局所性検知可能ハッシュ構築方法を示すフローチャートである。 本発明の実施例4であるソートされた乱数表を用いた局所性検知可能ハッシュ構築方法を示すフローチャートである。 図9に示す実施例を別の表現で記載した図である。
発明を実施するための形態は、次の実施例である。
まず、実施例に使用されている各用語の説明について説明する。
「多次元ベクトル」は、物体の位置や形状、画像、動画、テキスト等の特徴をユークリッド空間のベクトルと見做して表現したものである。次元数は、計測機器やアプリケーションに依存して決められる。
「類似検索」は、大量の多次元ベクトルが格納されている多次元データベースから、与えられた検索クエリに近い(似た)ベクトルを取得する検索である。上記近さは、距離(類似度)によって決められる。
「距離」は、ある多次元ベクトルのうちの2つのベクトルの間に定義される尺度のうちで、距離の公理を満たすものである。ハミング距離、ユークリッド距離、L_1ノルム、等、本明細書においては、できるだけ、下記の類似度ではなく距離を用いて説明する。
「類似度」は、ある2つのベクトルが類似するほど高い値を示す尺度である。値が0以上1以下になるように正規化して定義することが多い。1に近いほど、2つの情報が類似し、0に近いほど、類似していないことを示す。例としては、コサイン類似度がある。一般には、距離とは反対の関係にあり、類似度が高いほど距離が小さく、類似度が小さいほど距離が大きい。たとえば、最大値を1に正規化した距離d(x、y)を用いて、1−d(x、y)を類似度と考えることができる。
「近傍検索」は、与えられた検索クエリの近傍を取得する検索である。類似検索が、より一般的に用いられる語であるのに対して、近傍検索は、主に下記の具体的な検索を指す。
図1は、近傍検索のイメージを説明する図である。
トップk近傍検索は、検索クエリに近いベクトルのうちで、上位k件を取得する検索である。k=1の場合、図1に示すように、最近傍検索である。
近傍検索する場合、中心の黒丸が検索キーであり、その周囲から近い点を取得する。たとえば、最近傍は、点P1であり、トップ3は、点P1、P2、P3の順である。範囲を問合せる場合、範囲の半径をrとすれば、この検索結果は、点P1、P2、P3、P4である。
図2は、図1に示す例に関して、近似近傍検索のイメージを説明する図である。
「近似近傍検索」は、近傍検索の結果において、必ずしも最近傍から取得したとは限らないベクトルを含む近傍検索である。フォーマルには、図2に示すように、「近似近傍検索」は、距離rに対して誤差係数εを含む(1+ε)rの範囲から、近傍を取得する検索として定義されている。
距離に誤差を含むが、その分、高速化の余地を残す。たとえば、中心の黒丸から点P2までの距離が、点P1までの距離と大差ない場合、検索結果として点P2を出力する可能性がある。点P2という誤差を含む形で返しても構わないという立場に立つのが、近似近傍検索である。
「ハッシュ」は、検索キーに対して、代数演算でアドレスを割り当て、定数時間での検索を可能にする索引構造であり、ハッシュテーブルとも呼ばれる。様々なプログラミング言語に標準のデータ構造として採用され、局所性検知可能ハッシュ(LSH(Locality Sensitive Hashing))も、上記ハッシュを利用して実装することができる。
「局所性検知可能ハッシュ(LSH(Locality Sensitive Hashing))」は、Indyk等によって提案された(関連文献2参照)、ハッシュを用いて、近似近傍検索を実現する方法である。ハミング距離、ユークリッド距離、L2ノルム、コサイン類似度に対応するハッシュ構成方法が提案されている。通常のハッシュは、完全一致検索しかサポートしないが、局所性検知可能ハッシュは、近似近傍を検索する。
「乱数表」は、局所性検知可能ハッシュにおいて、それぞれのハッシュの入力キーとなるビット位置の集合である。以下では、乱数の例として、「61355、64979、70985、78173、81890」を考える。
局所性検知可能ハッシュの構築と近似近傍検索とを高速処理するためには、乱数表自体をソートし、配列として保持する。
図3は、多次元ベクトルデータからの局所性検知可能ハッシュ構築と近似近傍検索処理の流れとを説明する図である。
多次元データから、一種の索引構造である局所性検知可能ハッシュを構築する処理と、検索クエリの処理とにおける流れは同じである。まず、入力となる多次元ベクトルに対して、局所性検知可能ハッシング処理を行い、パケットに格納する。局所性検知可能ハッシュは、複数のハッシュによって構築される(必要であれば、2段目のハッシングを行い、パケット数を減らす)。同一のパケットに入っている多次元ベクトル同士が近傍である可能性が高い。パケットの具体的な様子を図4に示す。
図4は、局所性検知可能ハッシュのそれぞれのハッシュのバケットの構造を説明する図であり、図3について具体的なパケットの様子を示す図である。
ハッシュL1では、点P1、P2、P3が同一のパケットに入っており、近傍である可能性が高いことを示している。ハッシュL2では、点P1、P2が同一のパケットに入っており、互いに近傍である可能性が高いことを示している。この2つのパケットの状況によって、点P1と点P2とは、互いに近傍である確率が高い。それぞれのハッシュのキーは、それぞれが持つ乱数表のビット位置のUNARY表現の値を結合したものである。
図5は、局所性検知可能ハッシュを利用した近似近傍検索処理の流れを説明する図である。
局所性検知可能ハッシング処理、パケットの集計処理までは、局所性検知可能ハッシュを一次記憶に予め読み込むことによって、高速に処理可能である。実データは大きいことが予想されるが、絞り込まれたデータのみを取得すれば良いので、二次記憶に格納することが可能である。これによって、局所性検知可能ハッシュが一次記憶に入る範囲であれば、近似近傍検索を高速に処理可能である。
図6は、L1距離による類似検索を実現する局所性検知可能ハッシュの詳細を説明する図である。
局所性検知可能ハッシングの内部では、正の整数値を扱うので、多次元ベクトルを予め変換する。多次元ベクトルのそれぞれの次元の値の最大値を求め、0番目からそれぞれの値までを1としそれ以降を0とするバイナリ表現であるUNARY表現を仮想的に用いる。
[UNARY表現とその結合の例]
今、最大値が10であるときに、ベクトル(3,1,5,8)のUNARY表現は、
(1110000000,1000000000,1111100000,1111111100)であり、この結合は、
111000000010000000001111100001111111100である。
[bit samplingの例]
乱数表が(10,23,38)であるときにおけるbit samplingした結果は、上記結合の10,23,38番目のビットを結合した011になる。このbit samplingし結合した値を、ハッシュのキーとして元のデータをパケットに格納する。
図7は、通常の局所性検知可能ハッシュで用いられる乱数表と多次元ベクトルのUNARY表現との関係を説明する図である。
UNARY表現を結合したものは非常に大きくなるので、その処理回数をできるだけ減らしたい。通常の局所性検知可能ハッシュでは、それぞれの乱数表間での乱数の値に対する制約が何もないので、図の矢印の交差が示すように、ビット位置の交差が発生する。この場合、局所性検知可能ハッシュ構築、近似近傍検索処理のいずれにおいても、UNARY表現を結合したものを何度も確認する必要があり効率的ではない。
図8は、実施例において、ソートされた乱数表による多次元ベクトルのUNARY表現との関係を説明する図である。
上記実施例は、図8に示すように、ステップS13、S14に特徴がある。つまり、S13で、整数乱数生成器randを用いて、ds個の乱数を生成し、S14で、ds個の乱数をソートして、最初の乱数表から、小さい順に埋めていく。その後に、S15で、D個の乱数表を出力する。
実施例では、図8に示すように、それぞれの乱数表内の乱数が、乱数全体で連続する順序を持つように乱数表を設計する。これによって、ビット位置の交差が無くなる。すなわち、1つの乱数表の処理は、連続する区間だけの処理で完結するので、乱数表を小さいほうから順番に処理することによって、UNARY表現を結合したもののスキャンは、1回で済む。
図9は、実施例において、類似近傍検索エンジンをバックエンドとして利用し、類似近傍検索アプリケーション100のシステム概略を示すブロック図である。
類似近傍検索アプリケーションの具体例は、お勧め商品を推薦するために購買履歴ベクトルから類似ベクトルを検索するレコメンデーションシステム、大量の画像データから、似た画像を検索する類似画像検索システム、似た内容を記述した特許文献を検索するための関連特許文献検索システム等である。
利用者PN1、PN2、PN3は、それぞれ、クライアントCL1、CL2,CL3を通してネットワーク越しに、類似近傍検索アプリケーション100を利用する。類似近傍検索アプリケーション100の内部では、利用者からのアクセスは、ルータR1、LAN101を介して、アプリケーションサーバSV1、データベースサーバSV2,SV3に渡される。アプリケーションサーバSV1は、ユーザインタフェースやアプリケーションのロジックを提供する。データベースサーバSV2、SV3には、ユーザ情報やコンテンツ情報、また、類似近傍検索エンジンE1によって構築された局所性検知可能ハッシュ索引や近傍情報のキャッシュ等が格納されている。
類似近傍検索エンジンE1は、乱数表構築エンジンE11、局所性検知可能ハッシュ構築エンジンE12、近似近傍検索エンジンE13を有する。乱数表構築エンジンE11は、乱数生成器を用いて、提案手法に要求される度に、乱数を生成する。局所性検知可能ハッシュ構築エンジンE12は、データ格納時に局所性検知可能ハッシング処理を行い、局所性検知可能ハッシュ索引を構築する。構築された局所性検知可能ハッシュ索引は、データベースサーバSV2、SV3に格納する。近似近傍検索エンジンE13は、ユーザのアクセスに応じてアプリケーションサーバSV1から渡される入力となる問合せに対して、局所性検知可能ハッシング処理を行い、類似近傍を取得する。
類似近傍検索システムは、様々なアプリケーションのバックエンドエンジンとして利用することができる。
類似近傍検索エンジンE1は、アプリケーションサーバSV1が利用し、乱数表構築エンジンE11と、局所性検知可能ハッシュ構築エンジンE12と、近似近傍検索エンジンE13とによって構成されている。これらの処理部を、単一のサーバ内で実現してもよく、複数台で分散して実現するようにしてもよい。
[ソートされた乱数表構築処理(処理A)]
従来の局所性検知可能ハッシュでは、乱数表間に特に関連性は規定されていない。実施例1である処理Aでは、全ての乱数をソートしたときに、図8に示すように、連続した乱数値によって、各乱数表が構成されているように、乱数表を構築している。
次に、ソートされた乱数表構築処理(処理A)について説明する。
図10は、実施例1において、ソートされた乱数表構築処理(処理A)を示すフローチャートである。
ステップA0で、局所性検知可能ハッシュ数を、nとし、局所性検知可能ハッシュのサンプル数を、d’とし、多次元ベクトル値の最大値を、maxとし、整数乱数生成器を、randとし、これを入力する。
ステップA2で、整数乱数生成器randが、1以上、多次元ベクトル値の最大値max以下であるn×d’個の乱数を作成する。そして、ステップA1で作成された乱数を昇順にソートする。
ステップA3で、リストLi(I=1,2,…,n)に、ステップA2でソートされた乱数列を、d’個ずつ詰める。ステップA4で、n個の乱数表Li(I=1,2,…,n)を出力する。
[ソートされた乱数表の処理方法(処理B)]
次に、ソートされた乱数表の処理方法(処理B)について説明する。
図11は、本発明の実施例2であるソートされた乱数表の処理方法(処理B)を示すフローチャートである。
ソートされた乱数表の処理方法(処理B)は、局所性検知可能ハッシュの構築と近似近傍検索処理時との両方において利用される処理であり、実施例の中心の処理である。ソートされた乱数表と、処理対象である多次元ベクトルとの双方を、先頭から一度だけスキャンする(取り込む)。この処理によって、あるハッシュに格納すべきビット値の列が、キューqkに構築される。最後に、これを、通常のハッシュを用いて、バケットに格納する。近似近傍検索処理時には、格納候補として計算されたバケット内に含まれているベクトルを、近傍候補として採用する。
ステップB1で、乱数表Riと、局所性検知可能ハッシュのサンプル数d’と、多次元ベクトルv(v1,v2,…,vd)と、多次元ベクトル値の最大値maxとを入力する。
ステップB2で、一時変数としてのベクトルカーソルk=0(カーソルはベクトル上の位置を表す)とし(k<=d)、次元カーソル:l=0(l<=d)、局所性検知可能ハッシュのキーである可変長リストqkを空で初期化する。それぞれのカーソルは、多次元ベクトルのUNARY表現を結合したものと、乱数表を順番に並べたリストの位置とを表し、両方のリストの先頭から最後まで、位置を一つずつ進めていく。最後に到達すると、UNARY表現を結合したものを一回スキャンしたことになり、それぞれの乱数表が示すビット位置の値を取得できる。すなわち局所性検知可能ハッシングが完了する。
ステップB3で、k<dと判断され、ステップB4で、I<d’かつRi(I)<(k+1)maxであると判断され、ステップB5で、Ri(I)<=vk+kmaxと判断されれば、ステップB6で、qk(I)=1とする。
ステップB5の条件を満たしていなければ、ステップB7で、qk(I)=0とする。そして、ステップB8で、次元カーソルIをインクリメントし、ステップB4に戻る。
ステップB4の条件を満たさなければ、ステップB9で、k=k+1とし、ステップB3に戻る。ステップB3の条件を満たさなければ(kがd以上であれば)、ステップB10で、ハッシュLiに、qkをキーとして、多次元ベクトルvを格納する。
[ソートされた乱数表を用いた局所性検知可能ハッシュ構築方法(処理C)]
次に、ソートされた乱数表を用いた局所性検知可能ハッシュ構築方法(処理C)について説明する。
図12は、本発明の実施例3であるソートされた乱数表を用いた局所性検知可能ハッシュ構築方法を示すフローチャートである。
ステップC1で、乱数表R1,R2,…,Rnを入力し、ステップC2で、多次元ベクトルデータベースDから最大値maxを取得する。
ステップC3で、多次元ベクトルデータベースDが空でないと判断されると、ステップC4で、一時変数v∈Dとし、ステップC5で、一時変数i∈1とする。
ステップC6で、i<=nであると判断されれば、ステップC7で、処理Bを実行し、ステップC8で、iを1インクリメントし、ステップC6に戻る。ステップC6でi>nであると判断されれば、ステップC9で、D=D−{v}とし、ステップC3に戻る。
そして、ステップC10で、局所性検知可能ハッシュ(L1,L2,…,Ln)を出力する。
[ソートされた乱数表を用いた近似近傍検索処理方法(処理D)]
次に、ソートされた乱数表を用いた近似近傍検索処理方法(処理D)について説明する。
図13は、本発明の実施例4であるソートされた乱数表を用いた局所性検知可能ハッシュ構築方法を示すフローチャートである。
近傍候補リストから出力する場合、
(1)必要な個数集まった時点で出力する仕方、
(2)登場回数の多い順に出力する仕方、
(3)候補集合内で線形検索をして近い順に出力する仕方
がある。
ステップD1で、乱数表R1,R2,…,Rnと、局所性検知可能ハッシュL1,L2,…,Lnと、多次元ベクトル値の最大値maxと、ベクトルクエリqとを入力する。ステップD2で、一時変数i=1とし、近傍候補リストAを空で初期化する。ステップD3で、i<=nであると判断されれば、上記処理Bを実行し、局所性検知可能ハッシュLiのバケットに含まれているベクトルをAに追加する。
ステップD5で、i=i+1とし、ステップD6で、近傍候補リストAの中から回数が多いもの、または厳密距離を計算して近いものを結果として出力する。
図14は、図9に示す実施例を別の表現で記載した図である。
図14において、クライアントとして、クライアントCL1のみを代表して記載し、類似近傍検索アプリケーション100に接続される入力装置400、出力装置500を記載してある。
クライアントCL1は、通信手段301と、記憶手段302と、データ処理手段303と、入力部、表示部を含むユーザインタフェース304とを有する。他のクライアントCL2、CL3等の構成も、クライアントCL1と同様である。
類似近傍検索アプリケーション100は、通信インタフェース210と、制御手段220と、記憶手段230とを有する。
制御手段220は、乱数表構築手段221と、乱数表処理手段222と、局所性検知可能ハッシュ構築手段223と、近似近傍検索手段224とを有する。
局所性検知可能ハッシュ構築手段223は、割り振られた乱数表を用いて、局所性検知可能ハッシングを行う局所性検知可能ハッシュの構築手段の例であり、この具体的処理内容は、図11に記載してある。
記憶手段230は、ROM231と、RAM232と、HDD233と、SSD224とを有する。
上記実施例によれば、局所性検知可能ハッシング処理する場合、入力ベクトルを、その先頭から順番に、1回スキャンする(取り込む)だけで、それぞれの乱数表が持つ乱数値が示す位置のビットの値を検出することができるので、入力ベクトルを複数回スキャンする必要がない。
また、上記実施例によれば、それぞれの乱数表内の乱数が、乱数全体で連続する順序を持つので、より単純な索引構造で、局所性検知可能ハッシング処理を実行できる。
上記実施例によれば、局所性検知可能ハッシュにおいて、局所性検知可能ハッシング処理を高速に処理できるので、局所性検知可能ハッシュの構築時だけではなく、近似近傍検索処理時にも、処理速度の向上を見込むことができる。
上記実施例によれば、局所性検知可能ハッシュは、データの種類によらず、多次元ベクトルデータに対して適用できるので、画像や動画、テキスト等、高次元多次元データを高速で類似検索することができる。
上記実施例は、局所性検知可能ハッシュにおけるそれぞれの乱数表において、乱数表内部での値のソートだけではなく、乱数表自体もソートして構築する装置である。
上記実施例において、乱数表の構築自体は、全体として必要な個数の互いに異なる乱数を生成し、それらをソートして先頭から乱数表に等分割して割り当てる。乱数表は、乱数値が全体としてソートされた状態で、乱数値に先頭からアクセスできるように保持する。
これによって、上記実施例では、局所性検知可能ハッシング処理は、入力となる多次元ベクトルに対して先頭から順番に、1回スキャンするだけで、それぞれの乱数表が持つ乱数値(ビットの位置)を検出することができるので、入力ベクトルを複数回スキャンする必要がない。
また、上記実施例では、乱数表自体がソートされているので、より単純な索引構造で、局所性検知可能ハッシング処理を実行することができ、分散環境での実現も容易であるというメリットがある。
上記実施例では、局所性検知可能ハッシュにおいて、局所性検知可能ハッシング処理を高速に処理できるので、局所性検知可能ハッシュの構築時だけではなく、近似近傍検索時の双方において、処理速度の向上を見込むことができる。
つまり、上記実施例は、画像や動画、テキスト等の多次元ベクトルとして表現されている多次元ベクトルデータベースを有する。また、乱数表構築エンジンE11は、多数の乱数をソートするソート手段の例であり、上記ソートされた複数の乱数を、昇順または降順に、複数の乱数表に割り当てる割り当て手段の例である。局所性検知可能ハッシュ構築エンジンE12は、上記割り振られた乱数表を用いて、局所性検知可能ハッシングを構築する局所性検知可能ハッシュの構築手段の例である。
この場合、必要な乱数を一度に構築することによって、上記乱数表を構築する。また、上記割り振られた乱数表を、上記乱数表の先頭から、1回のスキャンで、局所性検知可能ハッシング処理を実行する。
近似近傍検索エンジンE13は、上記割り振られた乱数表を用いて、近似近傍検索処理を実現する近似近傍検索処理手段の例である。
上記実施例を、コンピュータで使用可能なソフトウェアとして把握することができる。つまり、上記実施例は、請求項1〜請求項4のいずれか1項記載の装置を構成する各手段としてコンピュータを機能させるプログラムの例である。
また、上記プログラムを、ハードディスク、CD−ROM、光記憶装置または磁気記憶装置等の任意のコンピュータ可読媒体に記録するようにしてもよい。
100…類似近傍検索アプリケーション、
E1…類似近傍検索エンジン、
E11…乱数表構築エンジン、
E12…局所性検知可能ハッシュ構築エンジン、
E13…近似近傍検索エンジン。

Claims (5)

  1. 画像や動画、テキスト等の多次元ベクトルとして表現されている多次元ベクトルデータベースにおいて、
    多数の乱数をソートするソート手段と;
    上記ソートされた複数の乱数を、昇順または降順に、複数の乱数表に割り当てる割り当て手段と;
    上記割り振られた乱数表を用いて、局所性検知可能ハッシングを行う局所性検知可能ハッシュの構築手段と;
    を有することを特徴とする局所性検知可能ハッシュの構築装置。
  2. 請求項1において、
    必要な乱数を一度に構築することによって、上記乱数表を構築することを特徴とする局所性検知可能ハッシュの構築装置。
  3. 請求項1において、
    上記割り振られた乱数表を、上記乱数表の先頭から、1回のスキャンで、局所性検知可能ハッシング処理を実行することを特徴とする局所性検知可能ハッシュの構築装置。
  4. 画像や動画、テキスト等の多次元ベクトルとして表現されている多次元ベクトルデータベースにおいて、
    多数の乱数をソートするソート手段と;
    上記ソートされた複数の乱数を、昇順または降順に、複数の乱数表に割り当てる割り当て手段と;
    上記割り振られた乱数表を用いて、局所性検知可能ハッシングを構築する局所性検知可能ハッシュの構築手段と;
    上記割り振られた乱数表を用いて、近似近傍検索処理を実現する近似近傍検索処理手段と;
    を有することを特徴とする類似近傍検索処理装置。
  5. 請求項1〜請求項4のいずれか1項記載の装置を構成する各手段としてコンピュータを機能させるプログラム。
JP2009132236A 2009-06-01 2009-06-01 局所性検知可能ハッシュの構築装置、類似近傍検索処理装置及びプログラム Expired - Fee Related JP5224537B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009132236A JP5224537B2 (ja) 2009-06-01 2009-06-01 局所性検知可能ハッシュの構築装置、類似近傍検索処理装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009132236A JP5224537B2 (ja) 2009-06-01 2009-06-01 局所性検知可能ハッシュの構築装置、類似近傍検索処理装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2010277522A JP2010277522A (ja) 2010-12-09
JP5224537B2 true JP5224537B2 (ja) 2013-07-03

Family

ID=43424394

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009132236A Expired - Fee Related JP5224537B2 (ja) 2009-06-01 2009-06-01 局所性検知可能ハッシュの構築装置、類似近傍検索処理装置及びプログラム

Country Status (1)

Country Link
JP (1) JP5224537B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5971722B2 (ja) * 2010-12-10 2016-08-17 国立大学法人豊橋技術科学大学 ハッシュ関数の変換行列を定める方法、該ハッシュ関数を利用するハッシュ型近似最近傍探索方法、その装置及びそのコンピュータプログラム
CN102622366B (zh) * 2011-01-28 2014-07-30 阿里巴巴集团控股有限公司 相似图像的识别方法和装置
JP5601277B2 (ja) * 2011-05-06 2014-10-08 富士通株式会社 情報処理装置、情報処理システムおよび検索方法
CN103581224B (zh) * 2012-07-25 2018-05-22 腾讯科技(深圳)有限公司 推送信息的方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06103127A (ja) * 1992-09-22 1994-04-15 Kanebo Ltd ハッシュファイルデータ管理装置およびハッシュファイルデータ管理方法

Also Published As

Publication number Publication date
JP2010277522A (ja) 2010-12-09

Similar Documents

Publication Publication Date Title
US8533203B2 (en) Identifying synonyms of entities using a document collection
US9087111B2 (en) Personalized tag ranking
Stupar et al. Rankreduce–processing k-nearest neighbor queries on top of mapreduce
US9053386B2 (en) Method and apparatus of identifying similar images
KR101732754B1 (ko) 콘텐츠 기반 이미지 검색
Fu et al. Privacy-preserving smart similarity search based on simhash over encrypted data in cloud computing
US12013899B2 (en) Building a graph index and searching a corresponding dataset
Li et al. Learning label preserving binary codes for multimedia retrieval: A general approach
Adamu et al. A survey on big data indexing strategies
US7765204B2 (en) Method of finding candidate sub-queries from longer queries
JP5224537B2 (ja) 局所性検知可能ハッシュの構築装置、類似近傍検索処理装置及びプログラム
Diwate et al. Study of different algorithms for pattern matching
Le et al. Efficient retrieval of matrix factorization-based top-k recommendations: A survey of recent approaches
CN113918807A (zh) 数据推荐方法、装置、计算设备及计算机可读存储介质
JP5194856B2 (ja) コンパクトな決定図を用いた効率的インデックス付け
Wei et al. Heterogeneous translated hashing: A scalable solution towards multi-modal similarity search
Mathew et al. Efficient information retrieval using Lucene, LIndex and HIndex in Hadoop
WO2016059787A1 (ja) 情報処理装置、情報処理方法、及び、記録媒体
KR102062139B1 (ko) 지능형 자료구조 기반의 데이터 처리 방법 및 그를 위한 장치
CN114911826A (zh) 一种关联数据检索方法和系统
JP2011159100A (ja) 逐次類似文書検索装置、逐次類似文書検索方法およびプログラム
Dourado et al. Fusion vectors: Embedding graph fusions for efficient unsupervised rank aggregation
Forman et al. Scaling up text classification for large file systems
Roy et al. Locality sensitive hashing in fourier frequency domain for soft set containment search
US20230153338A1 (en) Sparse embedding index for search

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111012

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130301

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130308

R150 Certificate of patent or registration of utility model

Ref document number: 5224537

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160322

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees