(57)【特許請求の範囲】
【請求項１】
索引構築・管理手段と検索手段とを備える類似データ検索装置により，各データの特徴量が多次元空間における多次元ベクトルである特徴量ベクトルとして記憶手段内で表現され，検索キーが表現する特徴量ベクトルとの距離の近い順に上位ｋ件の検索結果を返す類似データ検索方法において，
前記索引構築・管理手段が，検索対象となるデータの特徴量ベクトルを記憶手段に記憶する過程と，
前記索引構築・管理手段が，前記多次元空間の各次元軸を次元軸毎に２以上の任意の数に分割し，分割された該次元軸の各区間をビット列で表現し，また，該ビット列を連結することにより，分割された多次元空間の部分空間であるセル空間をビット列で表現し，前記セル空間を，さらに各次元軸について分割することにより該セル空間を全体空間とした部分空間をビット列表現することを順に繰り返し，特徴量ベクトルが示す多次元空間内の点を含むセル空間を階層的にビット列で表現する情報を生成し，これらのビット列で表現されたセル空間の情報と前記検索対象となる特徴量ベクトルとの対応情報を記憶手段に記憶する過程と，
前記検索手段が，検索キーの特徴量ベクトルが示す多次元空間内の点と前記ビット列で表現されたセル空間との距離を算出し，前記検索キーの特徴量ベクトルが示す多次元空間内の点に近い検索結果の候補となる特徴量ベクトルを含むセル空間を特定する過程と，
前記検索手段が，前記検索キーの特徴量ベクトルと前記特定されたセル空間に含まれる特徴量ベクトルとの距離計算により，検索キーに類似したデータを出力する過程とを有する
ことを特徴とする類似データ検索方法。
【請求項２】
索引構築・管理手段と検索手段とを備える類似データ検索装置により，各データの特徴量が多次元空間における多次元ベクトルである特徴量ベクトルとして記憶手段内で表現され，検索キーが表現する特徴量ベクトルとの距離の近い順に上位ｋ件の検索結果を返す類似データ検索方法において，
索引構築・管理手段が，前記特徴量ベクトルを管理するための索引の構築時に，
前記多次元空間の各次元軸を次元軸毎に２以上の任意の数に分割したときに構成される部分空間であるセル空間を階層的に構築するための，各階層における各次元軸毎のセル空間の幅を管理するセル幅管理過程と，
前記特徴量ベクトルが示す多次元空間内の点が，各階層においてどのセル空間に含まれるかを判定し，該セル空間を表現するビット列を構築するビット列構築過程と，
前記ビット列構築過程により各階層毎に構築されたセル空間を表現するビット列を該セル空間の包含関係により木状に管理するととともに，最下層のセル空間が示すビット列と該セル空間が含む特徴量ベクトルとの対応を管理するセル空間管理過程とを有し，
前記検索手段が，検索キーが表現する特徴量ベクトルに類似する特徴量ベクトルの検索時に，
セル空間を表現するビット列を，前記セル幅管理過程が管理する各次元のセル幅を用いて該セル空間に復元するセル空間復元過程と，
検索キーの特徴量ベクトルが示す多次元空間内の点とセル空間との距離，および検索キーの特徴量ベクトルが示す多次元空間内の点と前記特徴量ベクトル管理過程によって管理される各特徴量ベクトルが示す多次元空間内の点との距離を算出する距離計算過程と，
前記距離計算過程が算出する検索キーの特徴量ベクトルが示す多次元空間内の点とセル空間との距離をもとに，検索結果の候補となる特徴量ベクトルを含むセル空間を絞り込んで管理する候補セル空間管理過程と，
前記候補セル空間管理過程によって管理されるセル空間に含まれる特徴量ベクトルを読み出し，検索キーの特徴量ベクトルが示す多次元空間内の点と，前記読み出された特徴量ベクトルが示す多次元空間内の点との距離をもとに，最終的な検索結果を管理する検索結果管理過程とを有し，
前記多次元空間を分割するセル空間を階層的に構築し，階層化された各セル空間を表現するビット列を用いて特徴量ベクトルを管理し，類似したデータを検索する
ことを特徴とする類似データ検索方法。
【請求項３】
前記セル幅管理過程において，予め各階層におけるセル空間の次元軸毎の幅を算出し格納する
ことを特徴とする請求項２に記載の類似データ検索方法。
【請求項４】
前記セル幅管理過程において，予めすべての階層のセル幅を算出しておくのではなく，ビット列構築時に，ビット化に必要な階層のセル幅情報が保持されていないときに，該階層のセル幅を算出し格納することにより，動的にセル幅の情報を追加する
ことを特徴とする請求項２に記載の類似データ検索方法。
【請求項５】
前記ビット列構築過程において，セル空間を表現するビット列内の各次元軸を表現する部分ビット列の開始位置と必要ビット数を管理する
ことを特徴とする請求項２に記載の類似データ検索方法。
【請求項６】
前記セル空間復元過程において，ある階層の上位階層のビット列から復元されるセル空間を，該階層のビット列が示すセル空間の全体空間とすることにより，該階層の上位階層のセル空間の位置と，該階層のビット列と，前記セル幅管理過程によって管理される該階層のセル空間の幅とを用いて該階層のセル空間を復元する
ことを特徴とする請求項２に記載の類似データ検索方法。
【請求項７】
前記候補セル空間管理過程において，候補となるセル空間について，前記セル空間復元過程により復元されるセル空間を保持する
ことを特徴とする請求項２に記載の類似データ検索方法。
【請求項８】
各データの特徴量が多次元空間における多次元ベクトルである特徴量ベクトルとして表現され，検索キーが表現する特徴量ベクトルとの距離の近い順に上位ｋ件の検索結果を返す類似データ検索装置において，
検索対象となるデータの特徴量ベクトルを記憶する手段と，
前記多次元空間の各次元軸を次元軸毎に２以上の任意の数に分割し，分割された該次元軸の各区間をビット列で表現し，また，該ビット列を連結することにより，分割された多次元空間の部分空間であるセル空間をビット列で表現し，前記セル空間を，さらに各次元軸について分割することにより該セル空間を全体空間とした部分空間をビット列表現することを順に繰り返し，特徴量ベクトルが示す多次元空間内の点を含むセル空間を階層的にビット列で表現する情報を生成し，これらのビット列で表現されたセル空間の情報と前記検索対象となる特徴量ベクトルとの対応情報を記憶する手段と，
検索キーの特徴量ベクトルが示す多次元空間内の点と前記ビット列で表現されたセル空間との距離を算出し，前記検索キーの特徴量ベクトルが示す多次元空間内の点に近い検索結果の候補となる特徴量ベクトルを含むセル空間を特定する手段と，
前記検索キーの特徴量ベクトルと前記特定されたセル空間に含まれる特徴量ベクトルとの距離計算により，検索キーに類似したデータを出力する手段とを備える
ことを特徴とする類似データ検索装置。
【請求項９】
各データの特徴量が多次元空間における多次元ベクトルである特徴量ベクトルとして表現され，検索キーが表現する特徴量ベクトルとの距離の近い順に上位ｋ件の検索結果を返す類似データ検索装置において，
特徴量ベクトルを管理する特徴量ベクトル管理手段と，
前記多次元空間の各次元軸を次元軸毎に２以上の任意の数に分割したときに構成される部分空間であるセル空間を階層的に構築するための，各階層における各次元軸毎のセル空間の幅を管理するセル幅管理手段と，
前記特徴量ベクトルが示す多次元空間内の点が，各階層においてどのセル空間に含まれるかを判定し，該セル空間を表現するビット列を構築するビット列構築手段と，
前記ビット列構築手段により各階層毎に構築されたセル空間を表現するビット列を該セル空間の包含関係により木状に管理するととともに，最下層のセル空間が示すビット列と該セル空間が含む特徴量ベクトルとの対応を管理するセル空間管理手段と，
セル空間を表現するビット列を，前記セル幅管理手段が管理する各次元のセル幅を用いて該セル空間に復元するセル空間復元手段と，
検索キーの特徴量ベクトルが示す多次元空間内の点とセル空間との距離，および検索キーの特徴量ベクトルが示す多次元空間内の点と前記特徴量ベクトル管理手段が管理する各特徴量ベクトルが示す多次元空間内の点との距離を算出する距離計算手段と，
前記距離計算手段が算出する検索キーの特徴量ベクトルが示す多次元空間内の点とセル空間との距離をもとに，検索結果の候補となる特徴量ベクトルを含むセル空間を絞り込んで管理する候補セル空間管理手段と，
前記候補セル空間管理手段が管理するセル空間に含まれる特徴量ベクトルを前記特徴量ベクトル管理手段より読み出し，検索キーの特徴量ベクトルが示す多次元空間内の点と該特徴量ベクトル管理手段より読み出された特徴量ベクトルが示す多次元空間内の点との距離をもとに，最終的な検索結果を管理する検索結果管理手段とを備え，
前記多次元空間を分割するセル空間を階層的に構築し，階層化された各セル空間を表現するビット列を用いて特徴量ベクトルを管理し，類似したデータを検索する
ことを特徴とする類似データ検索装置。
【請求項１０】
各データの特徴量が多次元空間における多次元ベクトルである特徴量ベクトルとして表現され，検索キーが表現する特徴量ベクトルとの距離の近い順に上位ｋ件の検索結果を返す類似データ検索装置をコンピュータによって実現するためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって，
前記コンピュータを，
検索対象となるデータの特徴量ベクトルを記憶する手段と，
前記多次元空間の各次元軸を次元軸毎に２以上の任意の数に分割し，分割された該次元軸の各区間をビット列で表現し，また，該ビット列を連結することにより，分割された多次元空間の部分空間であるセル空間をビット列で表現し，前記セル空間を，さらに各次元軸について分割することにより該セル空間を全体空間とした部分空間をビット列表現することを順に繰り返し，特徴量ベクトルが示す多次元空間内の点を含むセル空間を階層的にビット列で表現する情報を生成し，これらのビット列で表現されたセル空間の情報と前記検索対象となる特徴量ベクトルとの対応情報を記憶する手段と，
検索キーの特徴量ベクトルが示す多次元空間内の点と前記ビット列で表現されたセル空間との距離を算出し，前記検索キーの特徴量ベクトルが示す多次元空間内の点に近い検索結果の候補となる特徴量ベクトルを含むセル空間を特定する手段と，
前記検索キーの特徴量ベクトルと前記特定されたセル空間に含まれる特徴量ベクトルとの距離計算により，検索キーに類似したデータを出力する手段として
機能させるためのプログラムを記録した
ことを特徴とする類似データ検索用プログラム記録媒体。
【請求項１１】
各データの特徴量が多次元空間における多次元ベクトルである特徴量ベクトルとして表現され，検索キーが表現する特徴量ベクトルとの距離の近い順に上位ｋ件の検索結果を返す類似データ検索装置をコンピュータによって構成するためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって，
前記コンピュータを，
特徴量ベクトルを管理する特徴量ベクトル管理手段と，
前記多次元空間の各次元軸を次元軸毎に２以上の任意の数に分割したときに構成される部分空間であるセル空間を階層的に構築するための，各階層における各次元軸毎のセル空間の幅を管理するセル幅管理手段と，
前記特徴量ベクトルが示す多次元空間内の点が，各階層においてどのセル空間に含まれるかを判定し，該セル空間を表現するビット列を構築するビット列構築手段と，
前記ビット列構築手段により各階層毎に構築されたセル空間を表現するビット列を該セル空間の包含関係により木状に管理するととともに，最下層のセル空間が示すビット列と該セル空間が含む特徴量ベクトルとの対応を管理するセル空間管理手段と，
セル空間を表現するビット列を，前記セル幅管理手段が管理する各次元のセル幅を用いて該セル空間に復元するセル空間復元手段と，
検索キーの特徴量ベクトルが示す多次元空間内の点とセル空間との距離，および検索キーの特徴量ベクトルが示す多次元空間内の点と特徴量ベクトル管理手段が管理する各特徴量ベクトルが示す多次元空間内の点との距離を算出する距離計算手段と，
前記距離計算手段で算出する検索キーの特徴量ベクトルが示す多次元空間内の点とセル空間との距離をもとに，検索結果の候補となる特徴量ベクトルを含むセル空間を絞り込んで管理する候補セル空間管理手段と，
前記候補セル空間管理手段で管理するセル空間に含まれる特徴量ベクトルを，前記特徴量ベクトル管理手段によって読み出し，検索キーの特徴量ベクトルが示す多次元空間内の点と前記特徴量ベクトル管理手段によって読み出された該特徴量ベクトルが示す多次元空間内の点との距離をもとに，最終的な検索結果を管理する検索結果管理手段として
機能させるためのプログラムを記録した
ことを特徴とする類似データ検索用プログラム記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は，検索キーを与えると，類似度の高いものからｋ件の類似データを高速に返却するような類似データ検索技術に関するものである。
【０００２】
【従来の技術】
例えば，情報処理学会論文誌：データベース，Vol.40,No.SIG3(TOD1),pp.171-184,「色や形状等の表層的特徴量にもとづく画像内容検索技術」では，各画像データから抽出される色や形状の特徴量を多次元空間におけるベクトル（多次元ベクトル）として表現し，画像データの特徴量ベクトルとしてデータベースに格納している。検索時においては，与えられた検索キー画像より抽出される該検索キー画像の特徴量ベクトルと，データベース中に格納されている各画像の特徴量ベクトルとの距離を計算し，距離の近い画像を類似画像とすることにより，画像データの検索を実現している。
【０００３】
このようなシステムでは，一般に検索キーを表現する特徴量ベクトルと，格納している各データを表現する特徴量ベクトルとの距離が類似尺度となるが，距離計算の計算量が多くなることから，距離計算量を削減する手法が多く提案されている。
【０００４】
その一つに，第２４回ＶＬＤＢ（Very Large Database ）国際会議（"A Quantitative Analysis and Performance Study for Similarity-Search Methods in High-Dimensional Spaces"，Proc. Of the 24th VLDB Conference,1998. ）で提案されているＶＡ‐Ｆｉｌｅ法がある。
【０００５】
一般に，特徴量ベクトルはディスクに格納され，また多次元ベクトルの各次元の値は整数値または浮動小数点値で表現される。特に，高次元の多次元空間では，このようなベクトルを表現するためのデータ量が多くなり，さらにデータ数が多くなると，多数のディスクＩ／Ｏを生じることになって検索効率が悪くなるという問題がある。
【０００６】
ＶＡ‐Ｆｉｌｅ法では，多次元ベクトルの各次元軸を定数個に等分割することにより多次元空間をメッシュ状に分割し，分割されてできた一つ一つの空間（セル空間と呼ぶ）をビット列で表現する。例えば，２次元（ｘ軸，ｙ軸）の多次元空間があり，各次元軸を２分割（０，１）するとすると，分割されてできた（ｘ，ｙ）空間はそれぞれ，００，０１，１０，１１のビット列で表現される。
【０００７】
多次元空間における特徴量ベクトルは，多次元空間中の点の位置と等価と考えられる。このため，ＶＡ‐Ｆｉｌｅ法では，次に，整数値または浮動小数点値で表現される特徴量ベクトルで表現される点が，多次元空間中のどのセル空間に含まれるかを計算し，その特徴量ベクトルを該特徴量ベクトルが表現される点を含むセル空間を表現するビット列で表現する。ＶＡ‐Ｆｉｌｅ法では，特徴量ベクトルを格納するファイルのほかに，各特徴量ベクトルが示す多次元空間内の点を含むセル空間を示すビット列からなるファイル（ＶＡ‐Ｆｉｌｅと呼ぶ）を持つ。
【０００８】
検索の際には，まず，ＶＡ‐Ｆｉｌｅを対象として，特徴量ベクトルが示す多次元空間内の点を含むセル空間を表現するビット列をもとに，該セル空間を復元する。一般に，類似検索は与えられる検索キーと類似しているデータを類似度が高い順にｋ件検索するために，ｋ近傍検索と呼ばれている。
【０００９】
ＶＡ‐Ｆｉｌｅ法では，特徴量ベクトルが示す多次元空間内の点を含むセル空間と，検索キーの特徴量ベクトルが示す多次元空間内の点との距離を計算することにより，おおまかに類似度を計算してｋ件の候補特徴量ベクトルを絞り込む。次に，絞り込まれた候補特徴量ベクトルに対して実際の特徴量ベクトルを読み出し，実際の類似度を算出し，類似度の高い順にｋ件検索を行う。したがって，高圧縮されたＶＡ‐Ｆｉｌｅを順次読み出すことと，ＶＡ‐Ｆｉｌｅを用いての候補絞り込みによって，特徴量ベクトルを格納するファイルヘのアクセスを削滅することにより，ディスクＩ／Ｏを抑制できる効果がある。
【００１０】
しかしながら，ＶＡ‐Ｆｉｌｅ法では，検索時に，検索キーの特徴量ベクトルと，予め格納された特徴量ベクトルが示す多次元空間内の点を含むセル空間に対して，総当たりに距離計算を行うために，データ数に比例して距離計算量が増加してしまう問題点がある。
【００１１】
【発明が解決しようとする課題】
本発明の目的は，上記のようなデータ数が増加すると比例数的に距離計算回数が増加し検索性能が悪化するという問題を解決した高速な類似データ検索方法を提供することにある。
【００１２】
【課題を解決するための手段】
本発明は，上記課題を解決するために，各データの特徴量が多次元空間における多次元ベクトル（特徴量ベクトルと呼ぶ）として表現され，検索キーが表現する特徴量ベクトルとの距離の近い順に上位ｋ件（ｋは１以上の整数）の検索結果を返すような類似データの検索技術において，多次元空間の各次元軸を次元軸毎に２以上の任意の数に等分割し，分割された該次元軸の各区間をビット列で表現し，また，該ビット列を連結することにより，該多次元空間を等分割した部分空間（セル空間と呼ぶ）をビット列で表現し，等分割されたセル空間を，さらに各次元軸に対し次元軸毎に該セル空間の分割時と同じ数に等分割することにより該セル空間を全体空間とした部分空間をビット列表現することを順に繰り返し，特徴量ベクトルが示す多次元空間内の点を含むセル空間を階層的にビット列で表現し，これらのビット列で表現された情報を用いて特徴量ベクトルを管理し，類似したデータを検索することを最も主要な特徴とする。
【００１３】
本発明は，さらに詳しくは，
特徴量ベクトルを管理する特徴量ベクトル管理手段と，
多次元空間の各次元軸を次元軸毎に２以上の任意の数に分割したときに構成される部分空間（セル空間）を階層的に構築するための，各階層における各次元軸毎のセル空間の幅を管理するセル幅管理手段と，
特徴量ベクトルが示す多次元空間内の点が各階層においてどのセル空間に含まれるかを判定し，該セル空間を表現するビット列を構築するビット列構築手段と，
ビット列構築手段により各階層毎に構築されたセル空間を表現するビット列を，該セル空間の包含関係にもとづいて木状に管理するととともに，最下層のセル空間が示すビット列と該セル空間が含む特徴量ベクトルとの対応を管理するセル空間管理手段と，
セル空間を表現するビット列を，セル幅管理手段が管理する各次元のセル幅を用いて該セル空間に復元するセル空間復元手段と，
検索キーの特徴量ベクトルが示す多次元空間内の点とセル空間との距離，および検索キーの特徴量ベクトルが示す多次元空間内の点と特徴量ベクトル管理手段が管理する各特徴量ベクトルが示す多次元空間内の点との距離を算出する距離計算手段と，
距離計算手段が算出する検索キーの特徴量ベクトルが示す多次元空間内の点とセル空間の距離をもとに検索結果の候補となるセル空間を絞り込んで管理する候補セル空間管理手段と，
候補セル空間管理手段が管理するセル空間に含まれる特徴量ベクトルを特徴量管理手段より読み出し，検索キーの特徴量ベクトルが示す多次元空間内の点と特徴量管理手段より読み出された該特徴量ベクトルが示す多次元空間内の点との距離をもとに，最終的な検索結果を管理する検索結果管理手段とを用いて，
多次元空間を分割するセル空間を階層的に構築し，階層化された各セル空間を表現するビット列を用いて特徴量ベクトルを管理し，類似検索を行うことを特徴とする。
【００１４】
以上の処理をコンピュータによって実現するためのプログラムは，コンピュータが読み取り可能な可搬媒体メモリ，半導体メモリ，ハードディスクなどの適当な記録媒体に格納することができる。
【００１５】
従来の技術とは，特徴量ベクトルを該特徴量ベクトルが示す多次元空間内の点を含むセル空間を表現するビット列を用いて１階層で管理するのではなく，多次元空間内のデータ全体の偏りに応じて複数階層で管理する手段を持つ点が異なる。
【００１６】
本発明は，以下のように作用する。
【００１７】
特徴量ベクトル管理手段は，多次元空間内に存在する特徴量ベクトルを一意な識別子により管理している。このため，同一点を含めたすべてのデータを一意に特定することが可能となる。
【００１８】
セル幅管理手段は，各階層毎に多次元空間の各次元軸に対応したセルの幅を管理している。このため，セル空間をビット列化する際の基準となる数値や，ビット列からセル空間を復元する際の基準となる数値を高速に提供することが可能となる。
【００１９】
ビット列構築手段は，まず１番目の階層について，特徴量ベクトルを各次元軸単位にセル幅管理手段が管理するセル幅に従って何番目の区間に含まれるかを判定し，該区間をビット列で表現し，次に，各次元軸毎に構築されたビット列を連結することにより，該特徴量ベクトルが示す多次元空間内の点を含むセル空間を表現するビット列を構築する。２番目の階層以降については，上位階層のセル空間を全体空間として，１番目の階層と同様にビット列を構築する。このため，各階層内に応じたセル幅をもとにビット列を構築することが可能となる。
【００２０】
セル空間管理手段は，ビット列構築手段により構築されたセル空間を表現するビット列を，重複を排除して階層的に管理する。このため，同一セル空間に含まれる複数の特徴量ベクトルは該セル空間の階層では一つのビット列として表現される。したがって，各階層のセル幅に従って構築されたビット列を一意に正確に復元することが可能となり，また，ある階層における，検索キーの特徴量ベクトルが示す多次元空間内の点とセル空間との距離計算回数を抑制することが可能となる。
【００２１】
以上のことより，多次元空間を分割するセル空間を階層的に構築し，階層化された該各セル空間を表現するビット列を用いて特徴量ベクトルを管理することが可能となる。
【００２２】
一方，セル空間復元手段は，セル空間管理手段が管理するビット列を，セル幅管理手段が管埋する各階層の幅をもとにセル空間を復元する。
【００２３】
距離計算手段は，検索キーの特徴量ベクトルが示す多次元空間内の点とセル空間，および特徴量ベクトル管理手段が管理する特徴量ベクトルが示す多次元空間内の点との距離計算を行う。このため，検索結果の類似度となる基準値を作成することが可能となる。
【００２４】
候補セル空間管理手段は，距離計算手段が算出する検索キーの特徴量ベクトルが示す多次元空間内の点と，セル空間復元手段により復元されたセル空間との距離を用いて，候補セル空間の絞り込みを行う。絞り込みは上位の階層より行われるが，各階層のセル空間は，セル空間管理手段により，重複を排除して管理されているために，距離計算回数を抑制することが可能となる。また，候補セル空間の絞り込みにより，特徴量ベクトル管理手段が管理する特徴量ベクトルの参照回数を抑制できる。
【００２５】
検索結果管理手段は，候補セル空間管理手段が管理する，検索結果の候補となる特徴量ベクトルを含むセル空間に含まれる特徴量ベクトルを，特徴量ベクトル管理手段より読み出し，距離計算手段が算出する検索キーの特徴量ベクトルが示す多次元空間内の点と該特徴量ベクトル管理手段より読み出された特徴量ベクトルが示す多次元空間内の点との距離を用いて検索結果を構築する。
【００２６】
したがって，検索キーの特徴量ベクトルと類似した特徴量ベクトルを，類似した順に示す検索結果を構築することが可能となり，本発明の目的である高速な類似データ検索方法を提供することが可能となる。
【００２７】
【発明の実施の形態】
以下，本発明の実施の形態を図面を用いて説明する。図１は，本発明に係る装置の構成図である。図１において，類似データ検索装置１は，ＣＰＵおよびメモリを備え，これらとソフトウェア・プログラムによって実現される索引構築・管理部２と，検索部３とからなる。索引構築・管理部２は，特徴量ベクトルの検索を高速に行うための索引を構築し管理する手段であり，特徴量ベクトル管理手段１１，セル幅管理手段１２，ビット列構築手段１３，セル空間管理手段１４を備える。検索部３は，索引構築・管理部２が構築した索引を用いて，検索キーが表現する特徴量ベクトルとの距離が近い順に上位ｋ件の類似データを検索する手段であり，セル空間復元手段１５，距離計算手段１６，候補セル空間管理手段１７，検索結果管理手段１８を備える。
【００２８】
図２は，多次元空間の各次元をビット化する際の規則を模式的に示した図である。データを２次元（ｘ，ｙ）の特徴量ベクトルとし，各次元が（0.0 ，1.0 ）の範囲の浮動小数点値で表現されるとし，３つのデータ，Ａ（0.2 ，0.7 ），Ｂ（0.7 ，0.3 ），Ｃ（0.8 ，0.1 ）があるものとする。
【００２９】
各次元を２分割（各次元を１ビットで表現）するとすると，１番目の階層においては，各次元において，0 〜0.5 の数値はビット値０に，0.5 〜1.0 はビット値１に対応することになる。したがって，Ａ，Ｂ，Ｃの各特徴量ベクトルは，それぞれ０１，１０，１０の２ビットのビット列で表現される。なお，各次元は必ずしも同じビット数（セル幅）である必要はないが，ここでは簡単のため各次元を２等分割することとしている。また，特徴量ベクトルＢ，Ｃは，１番目の階層において同じセル空間に含まれているが，２番目の階層においては，１番目の階層のセル空間内をさらに分割することにより，１番目の階層のセル空間を全体空間として，１番目の階層と同様に分割される。したがって，２番目の階層における特徴量ベクトルＢ，Ｃのビット列は，それぞれ０１，１０となる。
【００３０】
図１に示す特徴量ベクトル管理手段１１において，例えば，各特徴量ベクトルはファイルに格納されており，特徴量ベクトル管理手段１１は，該特徴量ベクトルを一意の識別子により管理している。この識別子としては，例えば特徴量ベクトルの格納場所を示すファイル管理名とオフセットが用いられる。
【００３１】
セル幅管理手段１２は，図３に示すような各階層の各次元軸のセルの幅を保持している。このため，ビット列構築手段１３における特徴量ベクトルが示す多次元空間内の点が含まれるセル空間の特定，およびセル空間復元手段１５におけるビット列からのセル空間の復元を高速化している。
【００３２】
ビット列構築手段１３は，ビット列構築前にセル空間を表現するビット数が判明しているために，図４に示すようなセル空間を表現するビット列内の，各次元軸を表現する部分ビット列の開始位置と必要ビット数とを保持している。ビット列構築手段１３は，例えば，特徴量ベクトルＡが与えられると，セル幅管理手段１２を用いて，ｘ軸，ｙ軸についてそれぞれ，０，１の部分ビット列（本例では，各次元軸を１ビットで表現するために単一ビット）を構築した後，該開始位置と該必要ビット数の情報を用いて，ｘ軸，ｙ軸のビット列を連結し，該セル空間を表現するビット列（本例では，０１）を構築する。
【００３３】
セル空間管理手段１４は，ビット列構築手段１３が構築するセル空間を表現するビット列と，該セル空間内に存在する特徴量ベクトルとの対応を，特徴量ベクトル管理手段１１の管理する該特徴量ベクトルを示す一意の識別子を用いて管理する。セル空間を表現するビット列は，入力する特徴量ベクトルをもとに作成されるが，一つの階層における同一のビット列の重複は排除される。
【００３４】
重複排除の一つの方法は，セル空間に含まれる複数の特徴量ベクトルをリスト化し，このリスト（同一セル空間内特徴量ベクトル管理リスト）を一意に識別するリスト識別子（例えば，メモリオフセット）を用いて，ビット列（セル空間）と特徴量ベクトルの対応を，特徴量ベクトル管理手段１１の管理する識別子を用いる代わりに該リスト識別子を用いることである。なお，同一点についても同じ機構（同一特徴量ベクトル管理リスト）で管理できる。
【００３５】
もう一つの重複排除の方法が，セル空間の階層化である。これを特徴量ベクトルＢ，Ｃを用いて説明する。特徴量ベクトルＢ，Ｃについては，１番目の階層においては同じビット列（１０）となる。このとき，１番目の階層のセル空間を全体空間とみなして１番目の階層同様，２番目の階層のセル空間を構築して該セル空間を示すビット列を構築する。１番目の階層においては，ビット列（セル空間）と特徴量ベクトルの対応を，特徴量ベクトル管理手段１１の管理する識別子を用いる代わりに，下位の階層におけるセル空間を管理する識別子（例えば，メモリオフセット）を用いる。また，２番目の階層では，１番目の階層における特徴量ベクトルＡの管理方法と同じ方法で管理する。
【００３６】
このとき，セル幅管理手段１２は，２番目の階層のためのセル幅情報を予め作成しておく方法と，ビット列作成を契機として該セル幅情報を作成する方法がある。なお，同一セル空間内特徴量ベクトル管理リストで管理可能な特徴量ベクトル数の閾値を設けて，閾値を越えた場合に階層化するといったことが可能である。
【００３７】
以上のようなある階層における特徴量ベクトルの登録の処理の流れを，図５に示す。
【００３８】
特徴量ベクトルを入力し（ステップＳ１），セル分割情報が定義されていない階層の場合には定義をして，特徴量ベクトルをビット列化する（ステップＳ２）。同じビット列があるかどうかを調べ（ステップＳ３），同じビット列がなければビット列および特徴量ベクトルの識別子を登録して処理を終了する（ステップＳ４）。同じビット列があるときは，同一点かどうかを調べ（ステップＳ５），同一点の場合には，単一特徴量ベクトルであれば，同一特徴量ベクトル管理リスト化してリストに登録し，既にリスト化されていれば，リストに追加登録して処理を終了する（ステップＳ６）。同一点でなければ，閾値以内かどうかを調べ（ステップＳ７），閾値以内であればステップＳ８へ，閾値以内でなければステップＳ９へ進む。
【００３９】
ステップＳ８では，単一特徴量または同一特徴量ベクトル管理リストであれば，同一セル空間内特徴量ベクトル管理リスト化してリストに登録し，既にリスト化されていれば，リストに追加登録して処理を終了する。ステップＳ９では，下位のセル空間を作成し，同一セル空間内特徴量ベクトル管理リストで管理される特徴量および追加挿入特徴量を本アルゴリズムにより下位のセル空間に登録して処理を終了する。
【００４０】
以上のような処理により構成されたセル空間管理の例を，図６に示す。図６では，２番目の階層におけるセル空間管理の識別子をメモリオフセットとしている。
【００４１】
検索処理時においては，まず，セル空間管理手段１４が管理する１番目の階層のすべてのビット列について，セル幅管理手段１２が管理する各次元のセル空間の幅を用いてセル空間復元手段１５が復元する該ビット列のセル空間と，検索キーの特徴量ベクトルとの距離を計算する。この距離計算には，距離計算手段１６が用いられる。
【００４２】
候補セル空間管理手段１７は，検索結果の候補となる特徴量ベクトルを含む候補セル空間をソートしながら管理する。このとき，類似度の高い上位ｋ件の特徴量ベクトル検索するとすると，ｋ件目の特徴量ベクトルを含むセル空間と該検索キーの特徴量ベクトルとの最遠距離より遠い距離にあるセル空間は候補対象から外される（候補の絞り込み）。
【００４３】
以上のような候補の絞り込みのための検索の処理の流れを図７に示す。ビット列を入力し（ステップＳ１０），セル空間を復元して（ステップＳ１１），セル空間の検索キーからの最近距離を算出する（ステップＳ１２）。候補がｋ件あるかどうかを調べ（ステップＳ１３），候補がｋ件なければ，ステップＳ１５へ進む。候補がｋ件あれば，さらにステップＳ１２で算出した最近距離が，ｋ件目の候補を含むセル空間の最遠距離より小さいかどうかを調べる（ステップＳ１４）。小さい場合にはステップＳ１５へ進み，小さくない場合にはそのまま処理を終了する。
【００４４】
ステップＳ１５では，算出した最近距離のセル空間を候補セル空間リストに登録する（ステップＳ１５）。次に，ｋ件目の候補を含むセル空間の最遠距離が設定済みかどうか，または候補がｋ件に満たないかどうかを調べ（ステップＳ１６），最遠距離が設定済みか，または候補がｋ件に満たない場合には，処理を終了する。ｋ件目の候補を含むセル空間の最遠距離が設定済みでなく，かつ，候補がｋ件になったならば，検索キーからｋ件目の候補を含むセル空間の最遠距離を設定し，その後処理を終了する（ステップＳ１７）。
【００４５】
候補セル空間管理手段１７は，以上のような候補セル空間の絞り込み処理を下位の階層がなくなるまで行う。
【００４６】
検索結果管理手段１８は，候補セル空間管理手段１７により絞り込まれた候補セル空間について，特徴量ベクトル管理手段１１より実際の特徴量ベクトルを読み出し，距離計算手段１６が算出する該特徴量ベクトルと検索キーの特徴量ベクトルとの距離に従って，検索結果となる特徴量ベクトルをソートしながら管理する。このとき，候補セル空間管理手段１７の絞り込み同様，ｋ件目の特徴量ベクトルとの距離より遠い距離にあるセル空間については上記の処理対象から外される。
【００４７】
このようにして，最終的に上位ｋ件の類似特徴量の検索結果が求められる。
【００４８】
【発明の効果】
以上説明したように，本発明によれば，距離計算回数の増加を抑制して高速な類似データ検索を実現することが可能となる。
【図面の簡単な説明】
【図１】本発明装置の構成図である。
【図２】多次元空間の部分空間であるセル空間をビット列化する方法を模式的に示した図である。
【図３】セル幅管理手段が保持するデータの例を示す図である。
【図４】ビット列構築手段が保持するデータの例を示す図である。
【図５】ある階層における特徴量ベクトルの登録の処理の流れを示す図である。
【図６】図２に示す特徴量ベクトルＡ，Ｂ，Ｃに対し，本発明を適用した結果構築される管理結果を模式的に示した図である。
【図７】検索の処理の流れを示す図である。
【符号の説明】
１    類似データ検索装置
２    索引構築・管理部
３    検索部
１１  特徴量ベクトル管理手段
１２  セル幅管理手段
１３  ビット列構築手段
１４  セル空間管理手段
１５  セル空間復元手段
１６  距離計算手段
１７  候補セル空間管理手段
１８  検索結果管理手段
【図１】
0003639480.tif 000002
【図２】
0003639480.tif 000003
【図３】
0003639480.tif 000004
【図４】
0003639480.tif 000005
【図５】
0003639480.tif 000006
【図６】
0003639480.tif 000007
【図７】
0003639480.tif 000008