JP4516071B2 - ビットベクトルインデックスを使用した多次元データオブジェクト検索 - Google Patents

ビットベクトルインデックスを使用した多次元データオブジェクト検索 Download PDF

Info

Publication number
JP4516071B2
JP4516071B2 JP2006517105A JP2006517105A JP4516071B2 JP 4516071 B2 JP4516071 B2 JP 4516071B2 JP 2006517105 A JP2006517105 A JP 2006517105A JP 2006517105 A JP2006517105 A JP 2006517105A JP 4516071 B2 JP4516071 B2 JP 4516071B2
Authority
JP
Japan
Prior art keywords
dimension
computer
feature space
bit vector
section
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
JP2006517105A
Other languages
English (en)
Other versions
JP2007521565A (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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2007521565A publication Critical patent/JP2007521565A/ja
Application granted granted Critical
Publication of JP4516071B2 publication Critical patent/JP4516071B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2264Multidimensional index structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/43Querying
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/953Organization of data
    • Y10S707/957Multidimensional
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99948Application of database or data structure, e.g. distributed, multimedia, or image

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Image Analysis (AREA)

Description

データベースに記憶されたマルチメディアデータオブジェクトを識別して取り出すために、いくつかの戦略が提案されてきた。これらの各戦略の核心には検索問題があり、検索問題においては、クエリポイントがデータベース中の多次元(MD)オブジェクトの集合と比較される。例えば、複数の特性(次元)を有する歌のサンプルを、データベースに記憶されたいくつかの歌と比較して、同じ特性または類似する特性を有する1つまたは複数の歌を見つけることができる。検索の結果、データベース中のオブジェクトの集合中で、1つまたは複数のマッチが見つかるか、あるいはマッチが存在しないかのどちらかとなる。これらの検索問題は普通、何らかの形の高次元検索として形作られ、この検索では、データポイントとクエリポイントが、同じ高次元特徴空間にマッピングされる。特定のクエリポイントに対して、マッチと見なされるほど十分にこのクエリポイントに近いデータポイントを特徴空間中で見つけることによって、マッチが見つかる。より具体的には、これらの近似マッチング問題は、普通、何らかのLメトリックを使用するイプシロン距離クエリとして形作られ、使用されるイプシロンは、平均ポイント間距離よりもずっと小さい。
このような問題を解決するための従来のクエリ処理戦略(例えば最近傍、イプシロン範囲検索)は、高次元性に関連する内在的な困難のせいで、低い性能のものとなる。これらの従来のクエリ処理戦略は、異なるデータポイントに異なるマッチング距離が使用されるときはさらに問題になるが、これは、オーディオフィンガプリンティングなど複雑な高次元検索では非常に重要なケースになる。この結果、このような問題を解決するための最も直接的な手法、すなわち線形走査の方が、通常、より精巧な手法よりも性能が優れていた。残念ながら、単純な線形走査は通常、複雑な高次元検索に関して、より複雑なクエリ処理戦略よりもよい性能を達成するが、線形走査は非常に時間集約的なプロセスである。
本明細書では、MD特徴空間中のMDデータオブジェクトの高速検索を容易にする様々なシステムおよび方法について述べる。一実施形態によれば、検索の前に、MD特徴空間中の各次元がいくつかの区間に分割される。クエリポイントが受け取られると、このクエリポイントに重なる単一の区間が各次元から選択される。次いで、選択された区間に重なるMDデータオブジェクトだけを含む、削減されたMDデータオブジェクト集合が選択される。次いで、特徴空間中のMDデータオブジェクトの集合全体ではなく、この削減されたMDデータオブジェクト集合を使用して、クエリポイントに対するマッチが決定され、それにより、検索プロセスの効率が大きく向上する。
概して、本明細書に述べるシステムおよび方法は、複数の多次元(MD)データオブジェクトを検索して、どの1つまたは複数のMDデータオブジェクトが所与のクエリポイントに重なるかを決定することに関するものであり、あるいはこの決定と連動して使用できるものである。様々な実施形態によれば、MDデータオブジェクトは、特徴空間中の超矩形として表される。検索されるMDデータオブジェクトが超矩形でない場合は、MDデータオブジェクトは最初に、特徴空間中の超矩形にマッピングされる。超矩形の高速検索を容易にするために、最初に特徴空間中の各次元がいくつかの所定の区間に分割される。次いで、各次元の各区間につき、ビットベクトルインデックスが作成される。各ビットベクトルインデックスは、特徴空間中の各超矩形が、そのビットベクトルに関連する区間に重なるか否かを指示する。
クエリポイントが受け取られると、このクエリポイントに重なる単一の区間が各次元から選択される。次いで、選択された各区間に関連するビットベクトルインデックスの論理積がとられて、単一の結果ビットベクトルインデックスが形成される。結果ビットベクトルインデックスは、特徴空間内の超矩形の、削減された集合を識別する。次いで、この削減された超矩形集合、すなわち、削減された集合中の超矩形によって近似されるMDデータオブジェクトを、線形走査を使用して高速検索して、クエリポイントに対する1つまたは複数のマッチを決定することができる。
ここで図1に目を向けると、図1には、例示的なデータマッピングおよび検索システム100の一実施形態が示されている。図示のように、検索システム100は、データストア102、マッピングモジュール104、検索モジュール106、形状近似機構モジュール108、およびMD特徴空間110を含む。データストア102には、いくつかのデータアイテム112(DからD)が含まれる。MD特徴空間110には、第1のタイプのいくつかのMDデータオブジェクト114(SからS)と、第2のタイプのいくつかのデータオブジェクト116(RからR)が結合されている。
一実装形態によれば、MD特徴空間110は、コンピューティングシステムまたはコンピュータプロセス中で、MDデータポイントまたはオブジェクトのマッピング、操作、記憶、および/またはアクセスを行うのに使用されるタイプのものである。この実装形態によれば、MD特徴空間110中のMDデータポイントは、値のベクトルである。これらのベクトルは、MD特徴空間中の次元の数と等しい長さを有する。これらのベクトル中の各インデックスの厳密な形および意味は、MD特徴空間の形に応じて異なる場合がある。この実装形態によれば、MDデータオブジェクト114および116は、MDデータポイントの集合である。MDデータオブジェクト114および115は、MDデータポイントが、MDオブジェクトによって定義されるデータポイントの集合のメンバであるかどうかを判定する関数またはアルゴリズムとして定義することができる。本明細書では、MDデータオブジェクトを定義する基礎的な関数またはアルゴリズムがMD特徴空間に対応するタイプのベクトルを扱うとき、このMDオブジェクトはMD特徴空間に「結合されている」と言われる。
MDデータポイントおよびオブジェクトを幾何学の観点で記述または定義できることは、当業者なら理解されよう。この幾何学的定義によれば、MDデータポイントベクトルは、高次元空間中の座標と考えられる。MDデータオブジェクトはMDデータポイントの集合であり、したがって、この高次元空間中の形状または領域と考えることができる。そのようなものとして、MDデータポイントまたはオブジェクトは、本明細書では、MD特徴空間の「中」または「内」にあるか、あるいはMD特徴空間に「結合されている」と言われる。MD特徴空間は、MDデータポイントまたはオブジェクトを「含む」と言われる。
MD特徴空間112中での検索に関して、検索を受けるMDデータポイントは、本明細書ではクエリポイントと呼ばれる。クエリポイントが、MDデータオブジェクトを構成するMDデータポイントの集合のメンバである場合、MDデータオブジェクトはクエリポイントに重なると言われる。この集合メンバシップは、MDオブジェクトの基礎的な関数またはアルゴリズムをクエリポイントに適用することによって決定することができる。さらに、MDデータオブジェクトがクエリポイントに重なる可能性が高い場合、MDデータオブジェクトはクエリポイントにマッチすると言われる。したがって、マッチングは、重なりの近似である。「特徴空間の検索」という句は、本明細書では、MD特徴空間に結合されたMDデータポイントおよびオブジェクトのマッチング操作および重なり操作を実施することを述べるのに使用される。
概して、検索モジュール106は、データストア102中のどのデータアイテム112が所与のクエリポイント122にマッチするかを決定するように動作可能である。しかし、後で詳細に述べるように、検索モジュール106は、データストア102中のデータアイテム112を直接に検索することはしない。そうではなく、データアイテム112はまず、マッピングモジュール104によって特徴空間110中のMDデータオブジェクトにマッピングされる。次いで、検索モジュール106は、クエリポイントと特徴空間110中のMDデータオブジェクトとを評価して、どのMDデータオブジェクトがクエリポイント122にマッチするかを決定する。
一実装形態によれば、マッピングモジュール104は、データアイテム112を直接に第2のタイプのMDデータオブジェクト116にマッピングする。次いで検索モジュール106は、第2のタイプのMDデータオブジェクト116について、検索を実施する。別の実装形態によれば、マッピングモジュール104は、データアイテム112を第1のタイプのMDデータオブジェクト114にマッピングする。この実施形態では、次いで形状近似機構モジュール108が、第1のタイプのMDデータオブジェクト114を第2のタイプのMDデータオブジェクト116に変換またはマッピングする。この場合、検索モジュール106は、第2のタイプのMDデータオブジェクト116および/または第1のタイプのMDデータオブジェクト114について、検索を実施する。
一実施形態によれば、データストア102は、コンピュータ可読媒体で構成されるかまたはコンピュータ可読媒体を含む。限定ではないが例えば、一実装形態によれば、データストア102は、データオブジェクトが磁気媒体や光媒体などのコンピュータ可読媒体に記憶されたデータベースである。本明細書では、コンピュータ可読媒体は、データおよび/または実行可能命令を記憶することおよび/または具体化することができ、コンピューティングシステムまたはコンピューティングプロセスによってアクセスすることのできる、任意の利用可能な媒体であってよい。限定ではないが、コンピュータ可読媒体には、揮発性と不揮発性の媒体、取外し可能と取外し不可能の媒体の両方、および非変調データ信号を含めることができる。用語「被変調データ信号」は、信号中の情報が符号化されるようにして1つまたは複数の特性が設定または変更された信号を指す。
一実装形態によれば、データストア102中の各データアイテム112は、データサンプルまたはファイルである。限定ではないが例えば、一実装形態によれば、各データアイテム112は、オーディオまたはビデオのサンプルまたはファイルなど、メディアサンプルまたはファイルである。他の実装形態によれば、データアイテム112は、その他のタイプのサンプルまたはファイルであってもよい。
概して、マッピングモジュール104は、データストア中のデータアイテム112を特徴空間108中のMDデータオブジェクトにマッピングするように動作可能である。前述のように、データアイテム112は、第1のタイプのMDデータオブジェクト114、または第2のタイプのMDデータオブジェクト116としてマッピングすることができる。しかし、後でより詳細に述べるように、マッピングモジュール104は通常、データアイテム112を第1のタイプのMDデータオブジェクト114にマッピングすることになる。
多くの様々なタイプ(形状)およびサイズのMDデータオブジェクトがあることは、当業者なら理解されよう。MDデータオブジェクトの一般的な2つのタイプは、超球および超矩形である。その他のタイプのMDデータオブジェクトは、限定ではないが超楕円や多面体である。
後でより詳細に述べるように、本明細書に述べる様々な実施形態によれば、第1のタイプのMDデータオブジェクト114は超球であり、第2のタイプのMDデータオブジェクト116は超矩形である。したがって、簡単にするために、第1のタイプのMDデータオブジェクト114を本明細書では超球と呼び、第2のタイプのMDデータオブジェクト116を本明細書では超矩形と呼ぶ。しかし、本明細書に述べる様々な方法およびシステムは、第1のタイプのMDデータオブジェクトがその他のMDデータオブジェクトの変形である場合でも等しく適用可能であってよいことを理解されたい。
超矩形は、各ポイントが特徴空間中の各次元で値を有する、MD特徴空間中のすべてのポイントの集合として定義することができ、この値は、次元ごとの最小値と最大値の間にある。超球は、各ポイントから固定点までのユークリッド距離がしきい値以下である、MD特徴空間中のすべてのポイントの集合として定義することができる。固定点は、超球の中心として知られる。
図2に移ると、図2には、いくつかの超矩形214〜222を含む特徴空間110の、一般化された例示的な表現が示されている。提示を簡単にするために、2次元の超矩形を含む2次元の特徴空間が示されている。しかし、特徴空間110およびそれに含まれる超矩形は、任意の正の次元数を有することができることを理解されたい。
図2に示すように、特徴空間110は、第1の次元(dim1)210、および第2の次元(dim2)212を有する。前述のように、特徴空間110中の各次元は、可能な値の範囲を達成することができる。この可能な値の範囲が、各次元に沿って示されている。図2には、次元210および212に沿って正の整数値しか示されていないが、各次元は、負の値および浮動小数点の値を含んでもよいことは理解されよう。同様に、図2には、正の整数値の範囲を有する超矩形しか示されていないが、負の値に延びる値範囲を有する超矩形、負の値範囲だけを有する超矩形、または浮動小数点の値範囲を有する超矩形も可能であることを理解されたい。
特徴空間110中の超矩形のサイズおよび位置を指定する際に、いくつかの異なる仕様を使用することができる。図2は、特徴空間110中の超矩形のサイズおよび位置を指定する際に使用することのできる例示的な仕様の1つを示している。具体的には、特徴空間110中の各超矩形は、識別子(R1,R2,...,等)と、2つの座標対とを含む。図示のように、特徴空間110に関して、第1の座標対は、超矩形の左下の隅の位置を特定し、第2の座標対は、超矩形の右上の隅を示す。例えば、特徴空間中で一番左下にある超矩形214は、R1{1,1}‐{4,2}として示されている。この例で、R1は超矩形識別子を示し、{1,1}は超矩形214の左下の隅を示し、{4,2}は超矩形214の右上の隅を示す。理解されるように、次元1および2に沿った超矩形R1からR5の属性の範囲を、これらの順序付けられた対から決定することができる。
ここで図1に戻るが、一実装形態によれば、検索モジュール106、マッピングモジュール104、および形状近似機構モジュール108はそれぞれ、コンピュータ実行可能命令で構成されるかまたはコンピュータ実行可能命令を含む。一実装形態によれば、これらのコンピュータ実行可能命令は、1つまたは複数のタイプのコンピュータ可読媒体に記憶されるかまたは具体化され、後で図7に関して図示および記述するような1つまたは複数のコンピューティングプロセスまたはデバイスによって実行される。
検索モジュール106、マッピングモジュール104、および形状近似機構モジュール108は、本明細書では、コンピュータ可読媒体に具体化されたコンピュータ実行可能命令で構成されるかまたはコンピュータ実行可能命令を含むものとして述べるが、検索モジュール106、マッピングモジュール104、形状近似機構モジュール108、およびこれらによって実施される機能または操作のいずれかまたはすべては、さらに、コンピューティングデバイス内の相互接続された機械論理回路または回路モジュールとしてそのすべてまたは一部が具体化されてもよいことを理解されたい。言い換えれば、検索モジュール106、マッピングモジュール104、形状近似機構モジュール108、およびこれらの操作および機能は、ハードウェア、ソフトウェア、ファームウェアとして、あるいはハードウェア、ソフトウェア、および/またはファームウェアの様々な組合せとして実現できることが意図されている。
概して、前述のように、形状近似機構モジュール108は、特徴空間110中で超球114を超矩形116にマッピングまたは変換するように動作可能である。このマッピングが形状近似機構モジュール108によって達成される方式は、マッピングまたは変換される超球114のタイプに基づいて異なる場合がある。限定ではないが例えば、一実装形態によれば、各超球114は、その超球114を完全に囲むサイズを有する超矩形116にマッピングされる。例えば、超球114が超矩形116の中心に配置された場合に超球114が完全に超矩形116内に含まれることになるような寸法を有する超矩形116に、超球114をマッピングすることができる。したがって、超矩形の全体的なサイズまたはボリュームは、そのマッピング元である超球の全体的なサイズまたはボリュームに依存することになるのは理解されるであろう。
一実装形態では、各超矩形116は、そのマッピング元である超球114を完全に囲むことになる最小の可能な超矩形となる。他の実装形態では、誤った負の検索結果が許容される場合、各超矩形116は、そのマッピング元である超球114を完全に囲むことになる最小の可能な超矩形よりも小さくてよい。
超矩形116は、形状近似機構モジュール108を使用して特徴空間110中の超球からマッピングされるものとして述べてきたが、他の実施形態によれば、特徴空間中の超矩形116は、他のモジュールまたはシステムあるいはマッピング技法を使用して、特徴空間110中で作成するかまたは特徴空間110中にマッピングすることもできることを理解されたい。
概して、検索モジュール106は、特徴空間110の検索を実施して、所与のクエリポイント122に重なる超矩形を識別する。超矩形がMDデータオブジェクトである場合、超矩形に重なることおよびマッチすることの定義は前述のとおりである。一実装形態によれば、検索モジュール106は、次に述べるように、図3、4、5、および/または6に示す操作を実施する。
最初に図3に目を向けると、図3には、特徴空間110を検索する前に検索モジュールによって実施することのできる操作300を含む例示的な操作フローが示されている。一実装形態によれば、特徴空間110に超矩形116が投入されると、操作300が実施される。後でより詳細に述べるように、操作300は、検索プロセス中に使用されるビットベクトルインデックスの集合を作成する。操作300は、様々なときに実施することができる。しかし典型的には、操作300は、各検索操作の前に実施されるのではない。そうではなく、操作300は通常、多数の超矩形116が特徴空間110に追加されたとき、または特徴空間110から除去されたときに実施されることになる。例えば、操作300は、ビットベクトルインデックスに関する所与の数の修正が行われた後でのみ実施することができる。
図3に示すように、操作フロー300の開始時、区分化操作310が、特徴空間110中の各次元を、互いに素ないくつかの区間に区分化する。例えば、図2に示すように、次元210と212は両方とも、互いに素な3つの区間に区分化されている。図示のように、次元1 210は、次元1 210中の値4未満の値すべてを含む区間1と、次元1中の値4と8の間の値すべてを含む区間2 226と、次元1中の値8よりも大きい値すべてを含む区間3 228とに区分化されている。特に示されていないが、次元2、および特徴空間110中の他のどんな次元も、同様にして区分化されることになる。
区間の開始点と終了点が決定される厳密な方式は、様々である場合があり、超矩形の分布および/または超矩形のサイズなどに依存する場合がある。限定ではないが例えば、一実装形態によれば、m個の区間が望まれるとき、区間と区間の間でm−1個の隔壁または区間仕切りが選択される。例えば、図2に示すように、3つの区間ならば2つの区間仕切りを選択する必要がある(3−1=2)。この実装形態によれば、各次元の最初と最後の区間は、片側には境界がないことになる。例えば、図2に示すように、区間1 210は、片側は値4を境界とするが、その他方の側には境界がないままである。同様に、区間2 212は、片側は値8を境界とするが、その他方の側には境界がないままである。
一実装形態によれば、各区間仕切りの位置は、特徴空間中の超矩形の1つの、値範囲の最初と最後(境界)のどちらかにくるように選択される。例えば、図2に示すように、区間1 224と区間2 226の間の仕切り230は、次元1 210に沿ったR1 214の値範囲の最後で発生する。同様に、区間2 225と区間3 228の間の仕切り232は、次元1 210に沿ったR2 216の値範囲の最後で発生する。
一実装形態によれば、区間仕切りの位置は、次のようにして決定される。|S|は特徴空間中の超矩形の数に等しく、mは所望の区間数であり、a/bは、aをbで割り整数で切り捨てる除算を表すのに使用され、a%bは、除算a/bの剰余を表し、k=(2*|S|)%mであると仮定する。
式(1)FirstIDs=j*[(2*|S|)/m]+j 1≦j≦k
式(2)RemainingIDs=j*[(2*|S|)/m]+k k+1≦j≦m
式(1)は、最小境界IDに対し、昇順でソートされた、m個の仕切りのうちの第1のk[j=1からk]のIDをもたらす(ID=nは、軸に沿ってn番目に小さい超矩形境界である)。式(2)は、残りの仕切りのIDをもたらす。例えば、FirstIDs=5の場合、第1の仕切りは、軸に沿って5番目に小さい超矩形境界にある。この実装形態での考えは、ほぼ等しい数のMDデータオブジェクトを各区間に割り振るというものである。というのは、この結果として最終的に、より効率的な検索になるからである。
図2に示す特徴空間および超矩形について式(1)を使用すると、k=(2*5)%3=1であることがわかる。したがって、FirstIDS=1*[(2*5)/3]+1=4である。この場合、第1の隔壁は、4番目の矩形境界にある(境界が昇順でソートされた場合)。図2に示す特徴空間および超矩形について式(2)を使用すると、RemainingIDs=2*[(2*5)/3]+1=7であることがわかる。したがって、第2の隔壁は、7番目の矩形境界にある。4番目および7番目の境界はそれぞれ4および8にあるので、ここが仕切りの位置する場所である。一実施形態によれば、クエリポイント分布に関する予備知識に基づいて、矩形境界の限定的な集合が使用される。この限定的な境界集合も、次いで前述と同一の方式で使用されることになる。
区分化操作310に続いて、次いでビットベクトルインデックス構築操作が、各次元の各区間に対応するビットベクトルインデックスを構築する。具体的には、各区間につき、特徴空間110中の各超矩形116がその区間に重なるか否かを指定するビットベクトルインデックスが作成される。超矩形116の値範囲のすべてまたは一部が、次元中の区間によって指定される値範囲内にある場合、超矩形116はその区間に重なると言うことができる。例えば図2に関して、超矩形R1 214、R4 220、R5 222はそれぞれ区間1 224に重なり、超矩形R2 216、R4 220、R5 222はそれぞれ区間2 226に重なり、超矩形R3 218およびR5 222はそれぞれ区間3 224に重なる。
一実施形態によれば、各ビットベクトルインデックスは、特徴空間中にある超矩形と同数のビットを含む。さらに、ビットベクトルインデックス中の各ビットは、特徴空間中の超矩形のうちの単一の超矩形に関連する。別の実施形態によれば、ビットベクトルは、超矩形よりも多数のビットを含むことができる。例えば一実施形態では、超矩形が特徴空間から除去されたとき、それに関連するビットは、ビットベクトルインデックスから除去されるのではなく、単に「0」に設定されればよい。
ビットベクトルインデックス中の各ビットは、関連する超矩形が、ビットベクトルインデックスに関連する区間に重なるか否かを指示する。例えば、値「1」を有するビットは、それに関連する超矩形が、ビットベクトルインデックスに関連する区間に重なることを指示することができ、値「0」を有するビットは、それに関連する超矩形が、ビットベクトルインデックスに関連する区間に重ならないことを指示することができる。例えば図2に関して、区間1 224に関連する第1のビットベクトルインデックスは、5つのビットを含むが、これは[1 0 0 1 1]と書くことができ、第1のビット(1)は、R1が区間1に重なることを指示し、第2のビット(0)は、R2が区間1に重ならないことを指示し、第3のビット(0)は、R3が区間1に重ならないことを指示し、第4のビット(1)は、R4が区間1に重なることを指示し、第5のビット(1)は、R5が区間1に重なることを指示する。この規則を使用すると、区間2 226に関連するビットベクトルインデックスは[0 1 0 1 1]であり、区間3 228に関連するビットベクトルインデックスは[0 0 1 0 1]である。
次に図4に移ると、図4には、特徴空間110に関するビットベクトルインデックスを構築するのに使用することのできる操作を含む詳しい例示的な操作フロー400が示されている。操作フロー400は、特徴空間110中の任意の次元数、および任意の次元区間数の場合の、ビットベクトルインデックスの構築を処理するように動作可能であることは、理解されよう。
図示のように、操作フロー400の開始時、次元設定操作410が、次元変数(dim)を値1に設定または初期化する。次元設定操作410に続いて、次元区分化操作412が、前述のように次元「dimension(dim)」を区間に区分化する。理解されるように、現在、次元変数dimは1に設定されているので、次元区分化操作412は、所与の特徴空間の第1の次元を区分化することになる。次元区分化操作412に続いて、区間設定操作414が、区間変数intvlを値1に設定または初期化する。次に、超矩形設定操作416が、超矩形変数rectを値1に設定または初期化する。
超矩形設定操作416に続いて、ビット設定操作418は、超矩形変数rectで指定された超矩形が、次元変数dimで指定された次元の、区間変数intvlで指定された区間に重なるかどうか判定する。指定された超矩形が指定された次元の指定区間に重なると判定された場合は、ビット設定操作418は、指定された次元の指定区間に関連するビットベクトルインデックス中の、指定された超矩形に関連するビットを1に設定する。しかし、指定された超矩形が指定された次元の指定区間に重ならないと判定された場合は、ビット設定操作418は、指定された次元の指定区間に関連するビットベクトルインデックス中の、指定された超矩形に関連するビットを0に設定する。
次に、超矩形インクリメント操作420が、超矩形変数rectをインクリメントする。次いで、矩形数判定操作422が、超矩形変数rectが特徴空間中の超矩形の数+1に等しいかどうか判定する。超矩形変数rectが特徴空間中の超矩形の数に等しくない場合は、操作フロー400はビット設定操作418に戻る。しかし、超矩形変数rectが特徴空間中の超矩形の数+1に等しい場合は、操作フロー400は区間インクリメント操作424に進み、区間変数intvlがインクリメントされる。
区間インクリメント操作424に続いて、区間判定操作426は、区間変数intvlが、次元変数dimで指定された次元の区間の数+1に等しいかどうか判定する。区間変数intvlが、次元変数dimで指定された次元の区間の数+1に等しくない場合は、操作フローは超矩形設定操作416に戻る。しかし、区間変数intvlが、次元変数dimで指定された次元の区間の数+1に等しい場合は、操作フローは次元インクリメント操作428に進み、次元変数dimがインクリメントされる。
次元インクリメント操作428に続いて、次元判定操作430が、次元変数dimが特徴空間中の次元の数+1に等しいかどうか判定する。次元変数dimが特徴空間中の次元の数+1に等しくない場合は、操作フロー400は次元区分化操作412に戻る。しかし、次元変数dimが特徴空間中の次元の数+1に等しい場合は、操作フロー400は終了する。
次に図5に移ると、図5には、特徴空間110を検索する際に使用することのできる例示的な操作フロー500が示されている。より具体的には、操作フロー500は、前述のように操作フロー300および/または400に従って、あるいは他の何らかの操作によって、特徴空間110中の各区間につきビットベクトルインデックスが作成された後で、特徴空間110を検索する際に使用することができる。図示のように、操作フロー500の最初に、クエリ受領操作514がクエリアイテムを受け取る。次に、クエリマッピング操作515が、このクエリアイテムをMD特徴空間中のクエリポイントにマッピングする。
クエリマッピング操作515に続いて、区間選択操作516が、クエリポイントに重なる区間を各次元から選択する。次元中のクエリポイントの値が、次元中の区間によって指定される値範囲内にある場合、この区間はクエリポイントに重なると言うことができる。次に、論理積操作518が、区間選択操作516で選択された区間に対応するすべてのビットベクトルインデックスの論理積をとる。この、ビットベクトルインデックスの論理積をとることは、受け取られたクエリポイントにマッチする超矩形の集合を指定する単一の結果ビットベクトルインデックスを生み出す。理解されるように、結果ビットベクトルインデックスによって指定される超矩形の集合は、大抵の場合、特徴空間110内にあるすべての超矩形の集合よりもずっと小さいことになる。
論理積操作518に続いて、マッチング操作520が、受け取られたクエリポイントを、結果ビットベクトルインデックス中で1に索引付けされた各超矩形と比較して、これらの超矩形のうちどれが受け取られたクエリポイントに重なるかを決定する。各超矩形が関連のMDデータオブジェクトからマッピングされる場合は、受け取られたクエリポイントを結果ビットベクトルインデックスによって指定された各超矩形と比較するのではなく、受け取られたクエリポイントを直接に、結果ビットベクトルインデックス中で1に索引付けされた超矩形に関連するMDデータオブジェクトと比較することができる。
次に図6に移ると、図6には、特徴空間110を検索するのに使用することのできる操作を含む、より詳しい別の例示的な操作フロー600が示されている。操作フローと同様、操作フロー600は、前述のように操作フロー300および/または400に従って、あるいは他の何らかの操作によって、特徴空間110中の各区間につきビットベクトルインデックスが作成された後で、実施することができる。図示のように、操作フロー600の最初に、クエリ受領操作610がクエリポイントを受け取る。クエリポイントが受け取られた後、次元設定操作612が、次元変数dimを1に等しく設定する。次に、区間決定操作614が、次元変数dimで指定された次元で、クエリポイントを含む区間を決定する。言い換えれば、区間操作614は、次元変数dimで指定された次元で、クエリポイントに重なる区間を決定する。次いで、ビットベクトルインデックス選択操作616が、区間決定操作614で決定された区間に対応するビットベクトルインデックスを選択する。
ビットベクトルインデックス選択操作616に続いて、次元判定操作618が、次元変数dimが1に等しいかどうか判定する。次元dimが1に等しい場合は、結果ビットベクトルインデックス設定操作620が、結果ビットベクトルインデックスを、ビットベクトルインデックス選択操作616で選択されたビットベクトルインデックスに等しく設定し、操作フローは次元変数インクリメント操作624に進む。しかし、次元判定操作618が、次元変数dimが1に等しくないと判定した場合は、操作フロー600は論理積操作622に進み、ビットベクトルインデックス選択操作616で選択されたビットベクトルインデックスは、結果ビットベクトルとの論理積がとられる。すなわち、論理積がとられて結果ビットベクトルになる。次に、次元変数インクリメント操作624が、次元変数dimをインクリメントする。
次元変数インクリメント操作624に続いて、次元判定操作626が、次元変数dimが特徴空間中の次元の数に等しいかどうか判定する。次元変数dimが特徴空間中の次元の数に等しくない場合は、操作フロー600は区間決定操作614に戻る。しかし、次元変数dimが特徴空間中の次元の数に等しい場合は、操作フローは超矩形発見操作628に進み、結果ビットベクトル中の各「1」に対応する超矩形が見つけられる。次に、データオブジェクト比較操作630が、受け取られたクエリポイントを、超矩形発見操作628によって見つけられた超矩形に関連するすべてのMDデータオブジェクトと比較する。次いで、データオブジェクト返却操作630が、受け取られたクエリポイントにマッチするすべてのMDデータオブジェクトを返し、操作フロー600は終了する。
図7に、本明細書に述べた様々なシステム、方法、およびデータ構造を実施することのできる一動作環境710を示す。図7の例示的な動作環境710は、コンピュータ720の形態の汎用コンピューティングデバイスを含み、コンピュータ720は、処理ユニット721と、システムメモリ722と、システムメモリを含めた様々なシステムコンポーネントを処理ユニット721に動作可能に結合するシステムバス723とを備える。処理ユニット721は1つだけあっても複数あってもよく、したがってコンピュータ720のプロセッサは、単一の中央処理装置(CPU)で構成されるか、あるいは、並列処理環境と一般に呼ばれる複数の処理ユニットで構成される。コンピュータ720は、従来型のコンピュータ、分散コンピュータ、またはその他いずれかのタイプのコンピュータとすることができる。
システムバス723は、様々なバスアーキテクチャのいずれかを用いた、メモリバスまたはメモリコントローラ、周辺バス、ローカルバスを含めて、いくつかのタイプのバス構造のいずれかとすることができる。システムメモリは単にメモリと呼ばれることもあり、読出し専用メモリ(ROM)724およびランダムアクセスメモリ(RAM)725を含む。ROM724には、起動中などにコンピュータ720内の要素間で情報を転送するのを助ける基本ルーチンを含むBIOS(basic input/output system)726が記憶されている。コンピュータ720はさらに、ハードディスク(図示せず)に対して読み書きするためのハードディスクドライブ727と、取外し可能な磁気ディスク729に対して読取りまたは書込みするための磁気ディスクドライブ728と、CD ROMやその他の光媒体など、取外し可能な光ディスク731に対して読取りまたは書込みするための光ディスクドライブ730とを備える。
ハードディスクドライブ727、磁気ディスクドライブ728、および光ディスクドライブ730は、それぞれハードディスクドライブインタフェース732、磁気ディスクドライブインタフェース733、および光ディスクドライブインタフェース734によって、システムバス723に接続される。ドライブおよびそれらに関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータの不揮発性記憶域をコンピュータ720に提供する。この例示的な動作環境では、磁気カセット、フラッシュメモリカード、ディジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)など、コンピュータによってアクセス可能なデータを記憶することのできる任意のタイプのコンピュータ可読媒体を使用することができることを当業者なら理解されたい。
ハードディスク、磁気ディスク729、光ディスク731、ROM724、またはRAM725には、いくつかのプログラムモジュールを記憶することができ、これらにはオペレーティングシステム735、1つまたは複数のアプリケーションプログラム736、その他のプログラムモジュール737、およびプログラム データ738が含まれる。ユーザは、キーボード40やポインティングデバイス742などの入力デバイスを介して、コマンドおよび情報をパーソナルコンピュータ720に入力することができる。その他の入力デバイス(図示せず)には、マイクロホン、ジョイスティック、ゲームパッド、衛星受信アンテナ、スキャナなどを含めることができる。これらおよび他の入力デバイスは、システムバスに結合されたシリアルポートインタフェース746を介して処理ユニット721に接続されることが多いが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)など、その他のインタフェースで接続されてもよい。モニタ747および他のタイプの表示デバイスも、ビデオアダプタ748などのインタフェースを介してシステムバス723に接続される。モニタに加えて、コンピュータは通常、スピーカやプリンタなど、その他の周辺出力デバイス(図示せず)も備える。
コンピュータ720は、リモートコンピュータ749など1つまたは複数のリモートコンピュータへの論理接続を用いて、ネットワーク化された環境で動作することができる。これらの論理接続は、コンピュータ720に接続されているかまたはその一部である通信デバイスによって、あるいは他の方式で達成することができる。リモートコンピュータ749は、別のコンピュータ、サーバ、ルータ、ネットワークPC、クライアント、ピアデバイス、またはその他の一般的なネットワークノードとすることができ、図7にはメモリ記憶デバイス750だけしか示されていないが、通常はコンピュータ720に関して上述した要素の多くまたはすべてを備える。図7に示す論理接続は、ローカルエリアネットワーク(LAN)751およびワイドエリアネットワーク(WAN)752を含む。このようなネットワーキング環境は、オフィスネットワーク、企業全体のコンピュータネットワーク、イントラネット、インターネットでよくみられ、これらはすべてネットワークのタイプである。
LANネットワーキング環境で使用されるときは、コンピュータ720は、通信デバイスの一種であるネットワークインタフェースまたはアダプタ753を介して、ローカルネットワーク751に接続される。WANネットワーキング環境で使用されるときは、コンピュータ720は通常、通信デバイスの一種であるモデム754を備えるか、または、ワイドエリアネットワーク752を介して通信を確立するための他の任意の種類の通信デバイスを備える。モデム754は内蔵でも外付けでもよく、シリアルポートインタフェース746を介してシステムバス723に接続される。ネットワーク化された環境では、パーソナルコンピュータ720に関して示したプログラムモジュールまたはその一部を、リモートのメモリ記憶デバイスに記憶することができる。図示のネットワーク接続は例であり、コンピュータ間で通信リンクを確立するための他の手段および通信デバイスを使用してもよいことは理解される。
超矩形およびビットベクトルインデックスを使用した様々な検索方法で使用できる、またはこれらの検索方法に関連して使用できる、様々なシステムおよび方法について示した。これらのシステム、方法、およびデータ構造は、添付の特許請求の範囲に記載した様々な要素または操作を組み込むものとして述べた。しかし、以上の記述は、本特許の範囲を限定することを意図したものではないことを理解されたい。そうではなく、発明者らは、特許請求されたシステム、方法、およびデータ構造が他の方法で実施されて、現在または将来の他の技術に関連する、述べた操作または要素に類似する種々の操作または要素、あるいは操作または要素の組合せが含まれてもよいことを意図している。
例示的なデータマッピングおよび検索システムを示す図である。 図1のデータマッピングおよび検索システムの例示的な特徴空間を示す図である。 図2の特徴空間を検索するための準備で実行することのできる様々な操作を示す例示的な操作フロー図である。 図2の特徴空間を検索するための準備で実行することのできる様々な操作を示す別の例示的な操作フロー図である。 図2の特徴空間を検索する際に実行することのできる様々な操作を示す例示的な操作フロー図である。 図2の特徴空間を検索する際に実行することのできる様々な操作を示す別の例示的な操作フロー図である。 図1のデータマッピングおよび検索システムと図4〜6の操作フローとを実施することのできるコンピューティングシステムの一実施形態を示す図である。

Claims (15)

  1. プロセッサとメモリを有するコンピュータ装置により実行されるデータ・マッピング方法であって、
    前記プロセッサが多次元(MD)特徴空間中の各次元を複数の区間に区分化すること、
    前記プロセッサがクエリポイントに重なる区間を各次元で識別すること、
    前記プロセッサが前記識別された区間すべてにマッチする、前記MD特徴空間に結合された1つまたは複数のMDデータオブジェクトを見つけること、および、
    前記プロセッサが前記識別された区間すべてにマッチする第1のMDデータオブジェクトを評価して、前記第1のMDデータオブジェクトが前記クエリポイントに重なるかどうか判定することを備え、
    前記見つける動作は、
    前記プロセッサが各区間につき、前記区間にマッチするMDデータオブジェクトを指示する、関連するデータ構造を形成すること、および、
    前記プロセッサが識別された区間に関連する各データ構造を処理してMDデータオブジェクトの集合を作成することであって、前記集合の中の各MDデータオブジェクトが、前記識別された区間それぞれにマッチすること
    を含むことを特徴とする方法。
  2. 各データ構造はビットベクトルインデックスを含むことを特徴とする請求項に記載の方法。
  3. 各ビットベクトルインデックスは複数のビットを含み、ビットベクトル中の各ビットは単一のMDデータオブジェクトに対応することを特徴とする請求項に記載の方法。
  4. 超矩形が各MDデータオブジェクトに関連し、ビットベクトルインデックス中の各ビットは、それに対応する超矩形が前記対応する区間に重なるかどうかを指示することを特徴とする請求項に記載の方法。
  5. 前記処理する動作は、選択されたすべての区間に関連する前記ビットベクトルインデックスの論理積をとることを含むことを特徴とする請求項に記載の方法。
  6. コンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記コンピュータ実行可能命令は、プロセッサとメモリを有するコンピュータ装置により実行されると、前記コンピュータ装置上で
    多次元(MD)特徴空間中の複数の次元それぞれを複数の区間に区分化すること、
    各区間につき、前記MD特徴空間に結合された複数のMDデータオブジェクトのどれが前記区間にマッチするかを指示する、関連するデータ構造を形成すること、
    クエリポイントを受け取り、前記クエリポイントが重なる区間を各次元で選択すること、
    選択された区間に関連する各データ構造を処理してMDデータオブジェクトの集合を決定すること、および、
    前記クエリポイントに重なる、前記MDデータオブジェクトの部分集合を決定することを含む動作を実行するためのものであることを特徴とするコンピュータ可読記憶媒体。
  7. 各データ構造はビットベクトルインデックスを含むことを特徴とする請求項に記載のコンピュータ可読記憶媒体。
  8. 前記処理する動作は、前記ビットベクトルインデックスすべての論理積をとって前記MDデータオブジェクトの集合を決定することを含むことを特徴とする請求項に記載のコンピュータ可読記憶媒体。
  9. 各ビットベクトルインデックスは複数のビットを含み、ビットベクトル中の各ビットは、前記MD特徴空間に結合されたMDデータオブジェクトに対応することを特徴とする請求項に記載のコンピュータ可読記憶媒体。
  10. 各ビットベクトルインデックスは複数のビットを含み、ビットベクトル中の各ビットは、単一の超矩形に対応し、前記対応する超矩形が前記データ構造に関連する区間に重なるかどうかを指示することを特徴とする請求項7に記載のコンピュータ可読記憶媒体。
  11. 前記区分化する動作は、各次元を互いに素ないくつかの区間に区分化することを含むことを特徴とする請求項に記載のコンピュータ可読記憶媒体。
  12. 少なくとも1つの区間は2つの区間仕切りを境界とすることを特徴とする請求項に記載のコンピュータ可読記憶媒体。
  13. 少なくとも1つの区間は次元に沿った一方向に境界がないことを特徴とする請求項に記載のコンピュータ可読記憶媒体。
  14. 前記複数の次元のうちの第1の次元の少なくとも1つの区間は区間仕切りを境界とし、および、前記少なくとも1つの区間仕切りは、FirstIDs=j*[(2*|S|)/m]+jに従って選択され、ただし、FirstIDsは、前記第1の次元に沿った前記少なくとも1つの区間仕切りの位置を表し、mは、前記第1の次元に沿った区間仕切りの選択された数であり、1≦j≦(2*|S|)%mであり、|S|は、前記MD特徴空間に結合された超矩形の数に等しいことを特徴とする請求項に記載のコンピュータ可読記憶媒体。
  15. 前記複数の次元のうちの第1の次元の少なくとも1つの区間は区間仕切りを境界とし、および、前記少なくとも1つの区間仕切りは、RemainingIDs=j*[(2*|S|)/m]+(2*|S|)%mに従って選択され、ただし、RemainingIDsは、前記第1の次元に沿った前記区間仕切りの位置を表し、mは、前記第1の次元に沿った区間仕切りの選択された数であり、(2*|S|)%m+1≦j≦mであり、|S|は、前記MD特徴空間に結合された超矩形の数に等しいことを特徴とする請求項に記載のコンピュータ可読記憶媒体。
JP2006517105A 2003-06-23 2004-05-06 ビットベクトルインデックスを使用した多次元データオブジェクト検索 Expired - Fee Related JP4516071B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/602,438 US6941315B2 (en) 2003-06-23 2003-06-23 Multidimensional data object searching using bit vector indices
PCT/US2004/014115 WO2005002243A2 (en) 2003-06-23 2004-05-06 Multidimensional data object searching using bit vector indices

Publications (2)

Publication Number Publication Date
JP2007521565A JP2007521565A (ja) 2007-08-02
JP4516071B2 true JP4516071B2 (ja) 2010-08-04

Family

ID=33518093

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006517105A Expired - Fee Related JP4516071B2 (ja) 2003-06-23 2004-05-06 ビットベクトルインデックスを使用した多次元データオブジェクト検索

Country Status (7)

Country Link
US (3) US6941315B2 (ja)
EP (1) EP1629397A4 (ja)
JP (1) JP4516071B2 (ja)
KR (1) KR101015324B1 (ja)
CN (1) CN1809826A (ja)
TW (1) TWI360756B (ja)
WO (1) WO2005002243A2 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7082394B2 (en) * 2002-06-25 2006-07-25 Microsoft Corporation Noise-robust feature extraction using multi-layer principal component analysis
US20080015870A1 (en) * 2003-05-30 2008-01-17 Lawrence Benjamin Elowitz Apparatus and method for facilitating a search for gems
US7831615B2 (en) * 2003-10-17 2010-11-09 Sas Institute Inc. Computer-implemented multidimensional database processing method and system
US20070198494A1 (en) * 2005-07-08 2007-08-23 Vadon Mark C Apparatus and method for facilitating a search for sets of gems
US8271521B2 (en) * 2006-03-20 2012-09-18 Blue Nile, Inc. Computerized search technique, such as an internet-based gemstone search technique
US20070239675A1 (en) * 2006-03-29 2007-10-11 Microsoft Corporation Web search media service
US20080086493A1 (en) * 2006-10-09 2008-04-10 Board Of Regents Of University Of Nebraska Apparatus and method for organization, segmentation, characterization, and discrimination of complex data sets from multi-heterogeneous sources
US20080263010A1 (en) * 2006-12-12 2008-10-23 Microsoft Corporation Techniques to selectively access meeting content
CN101861579A (zh) * 2007-11-17 2010-10-13 潘世爵 后续地联络人际关系的装置、方法及系统
US8688723B2 (en) * 2007-12-21 2014-04-01 Hewlett-Packard Development Company, L.P. Methods and apparatus using range queries for multi-dimensional data in a database
US8024288B2 (en) * 2008-08-27 2011-09-20 Oracle International Corporation Block compression using a value-bit format for storing block-cell values
US8055687B2 (en) * 2009-01-20 2011-11-08 Hewlett-Packard Development Company, L.P. System and method for determining intervals of a space filling curve in a query box
US8738354B2 (en) * 2009-06-19 2014-05-27 Microsoft Corporation Trans-lingual representation of text documents
US8229716B2 (en) * 2010-01-05 2012-07-24 The United States Of America As Represented By The Secretary Of The Navy Fast tracking methods and systems for air traffic modeling using a Monotonic Lagrangian Grid
CN102255788B (zh) * 2010-05-19 2014-08-20 北京启明星辰信息技术股份有限公司 报文分类决策构建系统及方法、报文分类系统及方法
CN101866358B (zh) * 2010-06-12 2012-09-05 中国科学院计算技术研究所 一种多维区间查询方法及系统
US20120102453A1 (en) * 2010-10-21 2012-04-26 Microsoft Corporation Multi-dimensional objects
US8676801B2 (en) 2011-08-29 2014-03-18 Sas Institute Inc. Computer-implemented systems and methods for processing a multi-dimensional data structure
JP2014006613A (ja) * 2012-06-22 2014-01-16 Dainippon Screen Mfg Co Ltd 近傍探索方法および類似画像探索方法
CN103049296B (zh) * 2012-12-28 2016-01-20 北界创想(北京)软件有限公司 为下载设备自动匹配目标应用的方法和装置
US9298757B1 (en) * 2013-03-13 2016-03-29 International Business Machines Corporation Determining similarity of linguistic objects
CN104935504B (zh) * 2014-03-17 2018-05-22 中国移动通信集团河北有限公司 一种确定数据包对应的数据规则的方法及装置
US11392568B2 (en) 2015-06-23 2022-07-19 Microsoft Technology Licensing, Llc Reducing matching documents for a search query
US10733164B2 (en) 2015-06-23 2020-08-04 Microsoft Technology Licensing, Llc Updating a bit vector search index
US10467215B2 (en) 2015-06-23 2019-11-05 Microsoft Technology Licensing, Llc Matching documents using a bit vector search index
US10565198B2 (en) 2015-06-23 2020-02-18 Microsoft Technology Licensing, Llc Bit vector search index using shards
US10242071B2 (en) 2015-06-23 2019-03-26 Microsoft Technology Licensing, Llc Preliminary ranker for scoring matching documents
US10229143B2 (en) 2015-06-23 2019-03-12 Microsoft Technology Licensing, Llc Storage and retrieval of data from a bit vector search index
US11281639B2 (en) 2015-06-23 2022-03-22 Microsoft Technology Licensing, Llc Match fix-up to remove matching documents
JP6638484B2 (ja) * 2016-03-10 2020-01-29 富士通株式会社 情報処理装置、類似検索プログラム、及び類似検索方法
US10650012B1 (en) * 2016-07-13 2020-05-12 United States Of America As Represented By Secretary Of The Navy Multi-dimensional range-index searching using search box approximation and splitting
CN107992503B (zh) * 2016-10-26 2022-05-24 微软技术许可有限责任公司 数据分析中的查询处理
JP6666312B2 (ja) 2017-08-03 2020-03-13 株式会社日立製作所 多次元データ管理システム及び多次元データ管理方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1647992A (en) * 1923-10-08 1927-11-08 Walter F Stimpson Adjustable leveling foot for scale bases
US1690408A (en) * 1926-10-25 1928-11-06 Champion Hardware Company Hasp
US2583806A (en) * 1950-11-08 1952-01-29 Joseph H Batzle Garment carrying rack for automobiles
JPS4823376Y1 (ja) * 1969-10-04 1973-07-07
US3912315A (en) * 1972-12-13 1975-10-14 Aisin Seiki Door latch device
DE8715925U1 (de) * 1987-12-02 1988-02-11 Kiekert AG, 42579 Heiligenhaus Kraftfahrzeugtürverschluß mit Schließkeil und Schloß
US5499360A (en) * 1994-02-28 1996-03-12 Panasonic Technolgies, Inc. Method for proximity searching with range testing and range adjustment
US5761652A (en) * 1996-03-20 1998-06-02 International Business Machines Corporation Constructing balanced multidimensional range-based bitmap indices
US5781906A (en) * 1996-06-06 1998-07-14 International Business Machines Corporation System and method for construction of a data structure for indexing multidimensional objects
US6134541A (en) * 1997-10-31 2000-10-17 International Business Machines Corporation Searching multidimensional indexes using associated clustering and dimension reduction information
US6122628A (en) * 1997-10-31 2000-09-19 International Business Machines Corporation Multidimensional data clustering and dimension reduction for indexing and searching
US6490532B1 (en) * 1999-01-25 2002-12-03 Mount Sinai Hospital Method to construct protein structures
US6871201B2 (en) * 2001-07-31 2005-03-22 International Business Machines Corporation Method for building space-splitting decision tree
KR100483321B1 (ko) * 2001-10-17 2005-04-15 한국과학기술원 하이퍼사각형 기반의 다차원 데이터 세그먼테이션을이용한 유사성 검색 장치와 그 방법
JP2003330943A (ja) * 2002-05-17 2003-11-21 Fujitsu Ltd 多次元インデクス生成装置、多次元インデクス生成方法、近似情報作成装置、近似情報作成方法、及び検索装置
US6928445B2 (en) * 2002-06-25 2005-08-09 International Business Machines Corporation Cost conversant classification of objects

Also Published As

Publication number Publication date
TWI360756B (en) 2012-03-21
US7325001B2 (en) 2008-01-29
WO2005002243A3 (en) 2005-06-30
EP1629397A4 (en) 2012-03-21
CN1809826A (zh) 2006-07-26
KR20060033733A (ko) 2006-04-19
US6941315B2 (en) 2005-09-06
JP2007521565A (ja) 2007-08-02
TW200508911A (en) 2005-03-01
WO2005002243A2 (en) 2005-01-06
US7430567B2 (en) 2008-09-30
US20050171972A1 (en) 2005-08-04
EP1629397A2 (en) 2006-03-01
KR101015324B1 (ko) 2011-02-15
US20040260727A1 (en) 2004-12-23
US20060041541A1 (en) 2006-02-23

Similar Documents

Publication Publication Date Title
JP4516071B2 (ja) ビットベクトルインデックスを使用した多次元データオブジェクト検索
Harwood et al. Fanng: Fast approximate nearest neighbour graphs
Iwasaki et al. Optimization of indexing based on k-nearest neighbor graph for proximity search in high-dimensional data
Liu et al. An investigation of practical approximate nearest neighbor algorithms
US7966327B2 (en) Similarity search system with compact data structures
Wang et al. Trinary-projection trees for approximate nearest neighbor search
US11106708B2 (en) Layered locality sensitive hashing (LSH) partition indexing for big data applications
Iwasaki Pruned bi-directed k-nearest neighbor graph for proximity search
Van Leuken et al. Selecting vantage objects for similarity indexing
Novak et al. PPP-codes for large-scale similarity searching
Novak et al. Rank aggregation of candidate sets for efficient similarity search
Pedronette et al. Using contextual spaces for image re-ranking and rank aggregation
KR100786675B1 (ko) 멀티미디어 데이터베이스내에서 계층적 비트맵 색인을기반으로 한 고차원 벡터 집합에서의 데이터 인덱싱 및유사 벡터 검색 방법
CN115408545A (zh) 一种结合硬盘与内存的近邻图向量检索方法及装置
Schuh et al. Improving the Performance of High-Dimensional k NN Retrieval through Localized Dataspace Segmentation and Hybrid Indexing
JP2000035965A (ja) 類似特徴量の検索方法及び装置及び類似特徴量の検索プログラムを格納した記憶媒体
Mohamed et al. Quantized ranking for permutation-based indexing
Egas et al. Adapting kd trees to visual retrieval
Antaris et al. Similarity search over the cloud based on image descriptors' dimensions value cardinalities
Novak et al. Performance study of independent anchor spaces for similarity searching
Güting et al. Voronoi-Partitioned Metric Space: The N-tree
JP2001052024A (ja) 類似特徴量の検索方法及び装置及び類似特徴量の検索プログラムを格納した記憶媒体
Lakemond et al. Fast Exact Nearest Neighbour Matching in High Dimensions Using d‐D Sort
Chávez et al. Distal dynamic spatial approximation forest
Kurasawa et al. Optimal pivot selection method based on the partition and the pruning effect for metric space indexes

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100401

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100513

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130521

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130521

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees