(57)【要約】  【課題】  高速なバイナリエンコーディングを行うことができる特徴ベクトル変換装置を提供する。  【解決手段】  特徴ベクトル変換装置１０は、学習用特徴ベクトルの分散共分散行列を算出する分散共分散行列算出部１１と、分散共分散行列算出部１１にて算出された分散共分散行列に基づいて、変換行列を生成する変換行列生成部１２と、変換行列生成部１２にて生成された変換行列を用いて、入力された特徴ベクトルをバイナリベクトルに変換する特徴ベクトル変換部１３とを備えている。変換行列生成部１２は、学習用特徴ベクトルの１からｎまでの各次元の２つずつを組み合わせて１個以上の次元のペアを生成し、各次元ペアに対応する２次元分散共分散行列を回転変換する各２次元回転行列の要素を含むｎ×ｎの対回転行列を、分散共分散行列を更新しながら繰り返し算出して、変換行列を生成する。【選択図】  図１
2015228083.tif 000002
【特許請求の範囲】
【請求項１】
特徴ベクトルをバイナリベクトルに変換する特徴ベクトル変換装置であって、
ｎ次元の学習用特徴ベクトルの分散共分散行列を算出する分散共分散行列算出部と、
前記分散共分散行列算出部にて算出された前記分散共分散行列に基づいて、変換行列を生成する変換行列生成部と、
前記変換行列生成部にて生成された変換行列を用いて、入力された特徴ベクトルをバイナリベクトルに変換する特徴ベクトル変換部と
を備え、
前記変換行列生成部は、前記学習用特徴ベクトルの１からｎまでの各次元の２つずつを組み合わせて１個以上の次元のペアを生成し、各次元ペアに対応する２次元分散共分散行列を回転変換する各２次元回転行列の要素を含むｎ×ｎの対回転行列を、前記分散共分散行列を更新しながら繰り返し算出して、前記変換行列を生成する特徴ベクトル変換装置。
【請求項２】
特徴ベクトルをバイナリベクトルに変換する特徴ベクトル変換装置であって、
ｎ次元の学習用特徴ベクトルの分散共分散行列を算出する分散共分散行列算出部と、
前記分散共分散行列を更新する分散共分散行列更新部と、
前記分散共分散行列算出部にて算出され、または前記分散共分散行列更新部にて更新された分散共分散行列の対角成分である各分散値をランダムに、または、所定の順序でソートする置換行列であるソート行列を生成するソート行列生成部と、
前記学習用特徴ベクトルの１からｎまでの次元のうち、前記ソート行列に基づいて決定される２つの次元のペアに対応する２次元分散共分散行列を回転変換する２次元回転行列を、ｎ／２または（ｎ−１）／２個の各ペアについて算出する２次元回転行列算出部と、
前記２次元回転行列生成部にて生成された各前記２次元回転行列の要素を、前記ソート行列によるソート結果に対応するように並べたｎ×ｎの対回転行列を生成する対回転行列生成部と、
前記ソート行列及び前記対回転行列を所定個数組み合わせた変換行列を用いて、入力された特徴ベクトルをバイナリベクトルに変換する特徴ベクトル変換部と
を備え、
前記分散共分散行列更新部は、前記ソート行列と前記対回転行列が１つずつ生成されるたびに、前記ソート行列と前記対回転行列を用いて、前記分散共分散行列を繰り返し更新する特徴ベクトル変換装置。
【請求項３】
前記２次元回転行列における回転角度は、当該２つの次元の分散値が等しくなる角度である等分散角度、および／または、前記２次元分散共分散行列の主成分軸の傾き角度に基づいて算出される請求項１または２に記載の特徴ベクトル変換装置。
【請求項４】
前記２次元回転行列における回転角度は、前記等分散角度θiso、前記主成分軸の傾き角度θpca、０以上１以下の設定値λを用いて、θiso＋λ（θpca−θiso）により算出される請求項３に記載の特徴ベクトル変換装置。
【請求項５】
前記２次元回転行列における回転角度が、前記２次元分散共分散行列の主成分軸の傾き角度、または、当該２つの次元の分散値が等しくなる角度である等分散角度のいずれかである請求項１または２に記載の特徴ベクトル変換装置。
【請求項６】
前記２つの次元のペアは、前記各分散値を降順または昇順でソートした場合における順序に基づき、ｎが偶数のとき、（１番目の分散値、ｎ番目の分散値）、（２番目の分散値、ｎ−１番目の分散値）、・・・（ｎ／２番目の分散値、（ｎ＋２）／２番目の分散値）であり、ｎが奇数のとき、（１番目の分散値、ｎ番目の分散値）、（２番目の分散値、ｎ−１番目の分散値）、・・・（（ｎ−１）／２番目の分散値、（ｎ＋３）／２番目の分散値）のペアである、請求項１から５のいずれかに記載の特徴ベクトル変換装置。
【請求項７】
クエリコンテンツと類似のコンテンツを検索するコンテンツ検索装置であって、
ｎ次元の学習用特徴ベクトルの分散共分散行列を算出する分散共分散行列算出部と、
前記分散共分散行列算出部にて算出された前記分散共分散行列に基づいて、変換行列を生成する変換行列生成部と、
前記変換行列生成部にて生成された変換行列を用いて、入力された特徴ベクトルをバイナリベクトルに変換する特徴ベクトル変換部と、
前記特徴ベクトル変換部にて変換された、前記クエリコンテンツに対応するバイナリベクトルと、検索対象コンテンツに対応するバイナリベクトルとのハミング距離に基づき、類似コンテンツを検索するコンテンツ検索部と
を備え、
前記変換行列生成部は、前記学習用特徴ベクトルの１からｎまでの各次元の２つずつを組み合わせて１個以上の次元のペアを生成し、各次元ペアに対応する分散共分散行列を回転変換する各２次元回転行列の要素を並べたｎ×ｎの対回転行列を、前記分散共分散行列を更新しながら繰り返し算出して、前記変換行列を生成するコンテンツ検索装置。
【請求項８】
特徴ベクトルをバイナリベクトルに変換する特徴ベクトル変換装置が実行する特徴ベクトル変換方法であって、
ｎ次元の学習用特徴ベクトルの分散共分散行列を算出するステップと、
前記分散共分散行列算出部にて算出された前記分散共分散行列に基づいて、変換行列を生成するステップと、
前記変換行列生成部にて生成された変換行列を用いて、入力された特徴ベクトルをバイナリベクトルに変換するステップと
を備え、
前記変換行列を生成するステップにおいては、前記学習用特徴ベクトルの１からｎまでの各次元の２つずつを組み合わせて１個以上の次元のペアを生成し、各次元ペアに対応する分散共分散行列を回転変換する各２次元回転行列の要素を並べたｎ×ｎの対回転行列を、前記分散共分散行列を更新しながら繰り返し算出して、前記変換行列を生成する特徴ベクトル変換方法。
【請求項９】
特徴ベクトルをバイナリベクトルに変換するためのプログラムであって、コンピュータに、
ｎ次元の学習用特徴ベクトルの分散共分散行列を算出するステップと、
前記分散共分散行列算出部にて算出された前記分散共分散行列に基づいて、変換行列を生成するステップと、
前記変換行列生成部にて生成された変換行列を用いて、入力された特徴ベクトルをバイナリベクトルに変換するステップと
を実行させ、
前記変換行列を生成するステップにおいては、前記学習用特徴ベクトルの１からｎまでの各次元の２つずつを組み合わせて１個以上の次元のペアを生成し、各次元ペアに対応する分散共分散行列を回転変換する各２次元回転行列の要素を並べたｎ×ｎの対回転行列を、前記分散共分散行列を更新しながら繰り返し算出して、前記変換行列を生成するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツの特徴ベクトルをバイナリベクトルに変換する特徴ベクトル変換装置等に関するものである。
【背景技術】
【０００２】
従来、画像や文章などの情報検索分野で、各情報を示す特徴ベクトルの距離に基づいて、クエリベクトルに最も近い特徴ベクトルを検索する技術である最近傍探索技術が知られている。最近傍探索技術の中でも、計算負荷を軽減するための技術として、近年盛んに研究されているのが、近似最近傍探索である。
【０００３】
近似最近傍探索によれば、クエリベクトルと検索対象となる特徴ベクトルとのユークリッド距離の算出等、負荷の高い計算を相当程度省略することができる。中でも、線形バイナリハッシングを行った上で近似最近傍探索を行う手法は、高速処理が可能で、メモリを節約できる手法として知られている（例えば、非特許文献１を参照）。この手法は、例えば、まず、データベースに含まれる各点を次式によりバイナリベクトルに変換する。
【数１】
2015228083.tif 000003
そして、検索対象となる各バイナリベクトルのうち、バイナリコード化したクエリベクトルとのハミング距離（２つのバイナリコードの対応する位置にある異なるビットの個数）が小さいバイナリベクトルを複数抽出した上で、それらのバイナリベクトルに対応する特徴ベクトルとクエリベクトルとのユークリッド距離等に基づき、類似のコンテンツを特定する。なお、式（１）において、Ａは、変換行列、ｘは特徴ベクトル、ｔは平行移動ベクトルである。
【先行技術文献】
【特許文献】
【０００４】
【非特許文献１】Ｇｏｎｇ，Ｙ．，Ｌａｚｅｂｎｉｋ，Ｓ．，Ｇｏｒｄｏ，Ａ．，Ｐｅｒｒｏｎｎｉｎ，Ｆ．：  Ｉｔｅｒａｔｉｖｅ  ａｕａｎｔｉｚａｔｉｏｎ：  Ａ  ｐｒｏｃｒｕｓｔｅａｎ  ａｐｐｒｏａｃｈ  ｔｏ  ｌｅａｒｎｉｎｇ  ｂｉｎａｒｙ  ｃｏｄｅｓ  ｆｏｒ  ｌａｒｇｅ−ｓｃａｌｅ  ｉｍａｇｅ  ｒｅｔｒｉｅｖａｌ．  ＴＰＡＭＩ  ３５（１２）（Ｄｅｃｅｍｂｅｒ  ２０１３）  ２９１６−２９２９
【非特許文献２】Ｇｏｎｇ，Ｙ．，Ｋｕｍａｒ，Ｓ．，Ｒｏｗｌｅｙ，Ｈ．Ａ．，Ｌａｚｅｂｎｉｋ，Ｓ．：  Ｌｅａｒｎｉｎｇ  Ｂｉｎａｒｙ  Ｃｏｄｅｓ  ｆｏｒ  Ｈｉｇｈ−Ｄｉｍｅｎｔｉｏｎａｌ  Ｄａｔａ  Ｕｓｉｎｇ  Ｂｉｌｉｎｅａｒ  Ｐｒｏｊｅｃｔｉｏｎｓ．  Ｉｎ：  ＣＶＰＲ．  （２０１３）  ４８４−４９１
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところが、従前の線形バイナリハッシングにおいては、ｎ次の特徴ベクトルについて、式（１）の変換行列は、ｎ×ｎの密行列となるため、特徴ベクトルをバイナリ化するだけでもｎ2回の積和演算が必要となり、ｎが１万次元以上の高次元になると、極めて大きな計算負荷がかかる。したがって、線形バイナリハッシングが高次元の特徴ベクトルの検索に適用されることはほとんどなかった。これに対して、近時、高次元の特徴ベクトルの変換・検索に適用可能な手法として、双線形なバイナリハッシング法である、ＢＰＢＣ（Ｂｉｌｉｎｅａｒ  Ｐｒｏｊｅｃｔｉｏｎ  Ｂｉｎａｒｙ  Ｃｏｄｅｓ）が提案されている（非特許文献２を参照）。しかしながら、ＢＰＢＣは、典型的には、図１０に示すように、ｎ次元の特徴ベクトルを１２８×（ｎ／１２８）の行列型に折り畳み、１２８×１２８及び（ｎ／１２８）×（ｎ／１２８）の２つの変換行列を掛け合わせた上でサイン関数を適用する手法である。したがって、この手法によっても、エンコーディングに要する計算量はＯ（ｎ2）となるから、特徴ベクトルが高次元になると、相当の計算負荷がかかることに変わりはない。
【０００６】
本発明は、上記の問題に鑑みてなされたものであり、特徴ベクトルが高次元の場合でも、高速なバイナリエンコーディングを行うことができる特徴変換装置等を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の特徴ベクトル変換装置は、特徴ベクトルをバイナリベクトルに変換する特徴ベクトル変換装置であって、ｎ次元の学習用特徴ベクトルの分散共分散行列を算出する分散共分散行列算出部と、前記分散共分散行列算出部にて算出された前記分散共分散行列に基づいて、変換行列を生成する変換行列生成部と、前記変換行列生成部にて生成された変換行列を用いて、入力された特徴ベクトルをバイナリベクトルに変換する特徴ベクトル変換部とを備え、前記変換行列生成部は、前記学習用特徴ベクトルの１からｎまでの各次元の２つずつを組み合わせて１個以上の次元のペアを生成し、各次元ペアに対応する２次元分散共分散行列を回転変換する各２次元回転行列の要素を含むｎ×ｎの対回転行列を、前記分散共分散行列を更新しながら繰り返し算出して、前記変換行列を生成する構成を有している。
【０００８】
この構成によれば、２次元回転行列の要素を２つ次元のペアの数だけ含む複数個の対回転行列を含む、バイナリコーディングのための変換行列が生成される。対回転行列は、特徴ベクトルがｎ次元の場合、高々４個の非ゼロ要素からなる２次元回転行列を次元のペアの数だけ含む行列であり、非ゼロ要素の数は、高々２ｎまたは２（ｎ―１）となる。また、ｌｏｇｎ個程度の対回転行列による操作を行なえば、十分な精度を得られることが分かっている。したがって、変換行列全体でも、非ゼロ要素は合計Ｏ（ｎｌｏｇｎ）であり、特徴ベクトルが高次元では極めて疎となるので、特徴ベクトルが高次元でも、高速なバイナリコーディングが可能となる。
【０００９】
本発明の特徴ベクトル変換装置は、特徴ベクトルをバイナリベクトルに変換する特徴ベクトル変換装置であって、ｎ次元の学習用特徴ベクトルの分散共分散行列を算出する分散共分散行列算出部と、前記分散共分散行列を更新する分散共分散行列更新部と、前記分散共分散行列算出部にて算出され、または前記分散共分散行列更新部にて更新された分散共分散行列の対角成分である各分散値をランダムに、または、所定の順序でソートする置換行列であるソート行列を生成するソート行列生成部と、前記学習用特徴ベクトルの１からｎまでの次元のうち、前記ソート行列に基づいて決定される２つの次元のペアに対応する２次元分散共分散行列を回転変換する２次元回転行列を、ｎ／２または（ｎ−１）／２個の各ペアについて算出する２次元回転行列算出部と、前記２次元回転行列生成部にて生成された各前記２次元回転行列の要素を、前記ソート行列によるソート結果に対応するように並べたｎ×ｎの対回転行列を生成する対回転行列生成部と、前記ソート行列及び前記対回転行列を所定個数組み合わせた変換行列を用いて、入力された特徴ベクトルをバイナリベクトルに変換する特徴ベクトル変換部とを備え、前記分散共分散行列更新部は、前記ソート行列と前記対回転行列が１つずつ生成されるたびに、前記ソート行列と前記対回転行列を用いて、前記分散共分散行列を繰り返し更新する構成を有している。
【００１０】
この構成によれば、置換行列であるソート行列と、２次元回転行列の要素を２つ次元のペアの数だけ並べた対回転行列を所定個数組み合わせた、バイナリコーディングのための変換行列が生成される。置換行列は、各行・各列の成分の１つが１で、他が全て０となる行列であり、他の行列との乗算の前後で非ゼロの数を増加させないという性質を有する。また、生成される対回転行列は、特徴ベクトルがｎ次元の場合、高々４個の非ゼロ要素からなる２次元回転行列を次元のペアの数（ｎ／２または（ｎ−１）／２）だけ並べた行列であり、非ゼロ要素の数は、高々２ｎまたは２（ｎ―１）となる。すなわち、この構成によれば、１個のソート行列と１個の対回転行列の組み合わせに含まれる非ゼロ要素は高々２ｎである。また、ｌｏｇｎ個程度の対回転行列による操作を行なえば、十分な精度を得られることが分かっている。したがって、変換行列全体でも、非ゼロ要素は合計Ｏ（ｎｌｏｇｎ）であり、特徴ベクトルが高次元では極めて疎となるので、特徴ベクトルが高次元でも、高速なバイナリコーディングが可能となる。
【００１１】
本発明の特徴ベクトル変換装置において、前記２次元回転行列における回転角度は、当該２つの次元の分散値が等しくなる角度である等分散角度、および／または、前記２次元分散共分散行列の主成分軸の傾き角度に基づいて算出されてよい。
【００１２】
データが正規分布に従っているとき、各２次元回転行列に対応する、各次元ペアについて、２つの次元の分散値が等しくなる角度である等分散角度においては、バイナリコーディングの量子化誤差が最小化される。また、ペアを構成する２つの次元を座標軸とした場合において、第１主成分軸または第２主成分軸の、いずれかの座標軸に対する傾き角度が０°となるとき、バイナリコードのエントロピーは最大となる。そして、量子化誤差が小さいほど、また、バイナリコードのエントロピーは大きいほど、精度の良いコーディングであるとされる。したがって、この構成によれば、等分散角度、主成分軸の傾き角度の少なくともいずれか一方が考慮されて変換行列が生成され、精度よくバイナリコーディングを行うことができる。これは、データ分布が正規分布でない場合も同様である。
【００１３】
本発明の特徴ベクトル変換装置において、前記２次元回転行列における回転角度は、前記等分散角度θiso、前記主成分軸の傾き角度θpca、０以上１以下の設定値λを用いて、θiso＋λ（θpca−θiso）により算出されてよい。
【００１４】
本願発明者の分析によれば、データが正規分布に従っているとき、等分散角度まで２次元分散共分散行列を回転すると量子化誤差もエントロピーも最小となり、第１主成分軸または第２主成分軸の、いずれかの座標軸に対する傾き角度が０°である場合、量子化誤差もエントロピーも最大となる。上述のように、量子化誤差が小さいほど、また、バイナリコードのエントロピーは大きいほど、精度の良いコーディングであるとされる。すなわち、量子化誤差とエントロピーは、バイナリコーディングの精度に関して、トレードオフの関係にある。したがって、この構成によれば、量子化誤差とエントロピーのバランスが考慮されて変換行列が生成され、精度よくバイナリコーディングを行うことができる。これは、データ分布が正規分布でない場合も同様である。
【００１５】
本発明の特徴ベクトル変換装置において、前記２次元回転行列における回転角度が、前記２次元分散共分散行列の主成分軸の傾き角度、または、当該２つの次元の分散値が等しくなる角度である等分散角度のいずれかであってよい。
【００１６】
この構成によれば、変換行列は、量子化誤差の最小化を考慮した、ソート行列と対回転行列の組み合わせからなる第１のグループと、エントロピーの最大化を考慮した、ソート行列と対回転行列の組み合わせからなる第２グループとにより構成されることになる。このような構成により、量子化誤差とエントロピーとのバランスがとれた変換行列が生成されるため、精度よくバイナリコーディングを行うことができる。
【００１７】
本発明の特徴ベクトル変換装置において、前記２つの次元のペアは、前記各分散値を降順または昇順でソートした場合における順序に基づき、ｎが偶数のとき、（１番目の分散値、ｎ番目の分散値）、（２番目の分散値、ｎ−１番目の分散値）、・・・（ｎ／２番目の分散値、（ｎ＋２）／２番目の分散値）であり、ｎが奇数のとき、（１番目の分散値、ｎ番目の分散値）、（２番目の分散値、ｎ−１番目の分散値）、・・・（（ｎ−１）／２番目の分散値、（ｎ＋３）／２番目の分散値）のペアであってよい。
【００１８】
この構成によれば、１回の対回転行列による操作で、各ペア間で分散値の差はより小さくなり、少ない回数でより等分散な状態とすることができるので、変換行列に含まれる対回転行列の数を少なくすることもできる。したがって、精度良いバイナリコーディングを、さらに高速に行うことができる。
【００１９】
本発明のコンテンツ検索装置は、クエリコンテンツと類似のコンテンツを検索するコンテンツ検索装置であって、ｎ次元の学習用特徴ベクトルの分散共分散行列を算出する分散共分散行列算出部と、前記分散共分散行列算出部にて算出された前記分散共分散行列に基づいて、変換行列を生成する変換行列生成部と、前記変換行列生成部にて生成された変換行列を用いて、入力された特徴ベクトルをバイナリベクトルに変換する特徴ベクトル変換部と、前記特徴ベクトル変換部にて変換された、前記クエリコンテンツに対応するバイナリベクトルと、検索対象コンテンツに対応するバイナリベクトルとのハミング距離に基づき、類似コンテンツを検索するコンテンツ検索部とを備え、前記変換行列生成部は、前記学習用特徴ベクトルの１からｎまでの各次元の２つずつを組み合わせて１個以上の次元のペアを生成し、各前記学習用特徴ベクトルを、前記ペアを構成する２つの次元を座標軸とする各平面内において回転変換する各２次元回転行列の要素を含むｎ×ｎの対回転行列を、前記分散共分散行列を更新しながら繰り返し算出して、前記変換行列を生成する構成を有している。
【００２０】
本発明の特徴ベクトル変換方法は、特徴ベクトルをバイナリベクトルに変換する特徴ベクトル変換装置が実行する特徴ベクトル変換方法であって、ｎ次元の学習用特徴ベクトルの分散共分散行列を算出するステップと、前記分散共分散行列算出部にて算出された前記分散共分散行列に基づいて、変換行列を生成するステップと、前記変換行列生成部にて生成された変換行列を用いて、入力された特徴ベクトルをバイナリベクトルに変換するステップとを備え、前記変換行列を生成するステップにおいては、前記学習用特徴ベクトルの１からｎまでの各次元の２つずつを組み合わせて１個以上の次元のペアを生成し、各前記学習用特徴ベクトルを、前記ペアを構成する２つの次元を座標軸とする各平面内において回転変換する各２次元回転行列の要素を含むｎ×ｎの対回転行列を、前記分散共分散行列を更新しながら繰り返し算出して、前記変換行列を生成する。
【００２１】
本発明のプログラムは、特徴ベクトルをバイナリベクトルに変換するためのプログラムであって、コンピュータに、ｎ次元の学習用特徴ベクトルの分散共分散行列を算出するステップと、前記分散共分散行列算出部にて算出された前記分散共分散行列に基づいて、変換行列を生成するステップと、前記変換行列生成部にて生成された変換行列を用いて、入力された特徴ベクトルをバイナリベクトルに変換するステップとを実行させ、前記変換行列を生成するステップにおいては、前記学習用特徴ベクトルの１からｎまでの各次元の２つずつを組み合わせて１個以上の次元のペアを生成し、各前記学習用特徴ベクトルを、前記ペアを構成する２つの次元を座標軸とする各平面内において回転変換する各２次元回転行列の要素を含むｎ×ｎの対回転行列を、前記分散共分散行列を更新しながら繰り返し算出して、前記変換行列を生成する。
【発明の効果】
【００２２】
本発明によれば、非ゼロ要素の極めて少ない変換行列が生成されるので、特徴ベクトルが高次元でも、高速なバイナリエンコーディングを行うことができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施の形態における特徴ベクトル変換装置及びコンテンツ検索装置の構成を示すブロック図
【図２】本発明の第１の実施の形態の特徴ベクトル変換装置により生成された変換行列の一例を示す図
【図３】（ａ）、（ｂ）  ２次元回転行列の概念を説明するための図
【図４】（ａ）〜（ｅ）  対回転行列の概念を説明するための図
【図５】本発明の実施の形態におけるコンテンツ検索装置の動作フロー図
【図６】本発明の第１の実施の形態における特徴ベクトル変換装置の変換行列生成までの動作フロー図
【図７】量子化誤差とエントロピーとの関係を説明するための図
【図８】本発明の第２の実施の形態の特徴ベクトル変換装置により生成された変換行列の一例を示す図
【図９】本発明の第２の実施の形態における特徴ベクトル変換装置の変換行列生成までの動作フロー図
【図１０】従来技術によるバイナリハッシングの一例を説明するための図
【発明を実施するための形態】
【００２４】
以下、本発明の実施の形態の特徴ベクトル変換装置及びコンテンツ検索装置について、図面を参照しながら説明する。
【００２５】
（第１の実施の形態）
図１は、本発明の第１の実施の形態のコンテンツ検索装置の構成を示すブロック図である。図１に示すように、第１の実施の形態のコンテンツ検索装置１は、特徴ベクトル変換装置１０と、コンテンツベクトル記憶部２０と、コンテンツ検索部３０とを備える。特徴ベクトル変換装置１０は、学習用特徴ベクトルから、以下の式（２）における変換行列Ａを算出する。そして、入力されたクエリベクトルを式（２）を用いてバイナリベクトルに変換する。式（２）において、ｘはクエリベクトル、ｔは平行移動ベクトルであり、本実施の形態においては、特徴ベクトルの平均データである。また、Ｙは、得られるバイナリベクトルである。
【数２】
2015228083.tif 000004
【００２６】
コンテンツベクトル記憶部２０は、多数のコンテンツの特徴ベクトル及びそのバイナリベクトルが記憶されるデータベースである。各コンテンツの特徴ベクトルは、特徴ベクトル変換装置１０にて生成された変換行列Ａを用いてバイナリベクトルに変換されている。なお、各コンテンツの特徴ベクトルは、学習用特徴ベクトルの少なくとも一部と同一であってもよい。コンテンツ検索部３０は、特徴ベクトル変換装置１０にてバイナリコード化されたクエリベクトルと、コンテンツベクトル記憶部２０に記憶されるコンテンツのバイナリベクトルとのハミング距離を算出する。そして、ハミング距離が近い所定数のコンテンツバイナリベクトルを抽出し、これらのバイナリベクトルに対応する特徴ベクトルとクエリベクトルとのユークリッド距離に基づいて、クエリベクトルに最も近いコンテンツベクトルを特定し、検索結果として出力する。
【００２７】
特徴ベクトル変換装置１０は、分散共分散行列算出部１１と、変換行列生成部１２と、特徴ベクトル変換部１３とを備える。分散共分散行列算出部１１は、学習用特徴ベクトルから、分散共分散行列Ｃを算出する。分散共分散行列とは、ベクトルの要素間の共分散値（対角成分を構成する同一要素同士については分散値）を要素とする行列であり、対角成分に関して対称となる。例えば、学習用特徴ベクトルの次数が４であるとすると、分散共分散行列Ｃも４×４となり、以下の（３）式のように表現できる。
【数３】
2015228083.tif 000005
なお、分散共分散行列は、学習用特徴ベクトルの個数をｍ個、平均ベクトルをｔとすると、次式により求められる。
【数４】
2015228083.tif 000006
【００２８】
変換行列生成部１２は、式（２）における変換行列Ａを生成する。特徴ベクトル変換部１３は、生成された変換行列Ａを用いて、入力されたクエリベクトルをバイナリベクトルに変換する。図２は、特徴ベクトル変換装置１０にて生成された、変換行列の一例を示す模式図である。図２に示すように、第１の実施の形態において、変換行列Ａは、ソート行列Ｓと対回転行列Ｒを組み合わせたベーシックローテーションを複数個組み合わせて構成される。ソート行列Ｓは、クエリベクトルｘの各次元を並び替えるための置換行列である。対回転行列Ｒは、ソート行列Ｓによる並び替え後のクエリベクトルｘを回転変換する行列であり、後述のように、クエリベクトルｘを２次元ずつ回転変換する２次元回転行列を組み合わせて構成される。図２において、黒い部分は非ゼロ要素、白い部分は、ゼロ要素であることを示す。後に詳述するが、特徴ベクトル変換装置１０にて生成される変換行列Ａは、非ゼロ要素の少ない、極めて疎な行列である。
【００２９】
図１に戻り、変換行列生成部１２は、ソート行列生成部１２１と、２次元回転行列算出部１２２と、対回転行列生成部１２３と、分散共分散行列更新部１２４とを備える。ソート行列生成部１２１は、分散共分散行列算出部１１にて算出された分散共分散行列Ｃの対角成分を降順でソートする。ソート行列生成部１２１は、また、当該ソート結果に基づいて、特徴ベクトルに対する乗算により、特徴ベクトルの要素を降順にソートするソート行列Ｓを算出する。ソート行列Ｓは、各行・各列の成分の１つが１で、他が全て０となる置換行列である。したがって、例えば、（３）式において、４つの分散値σ11、σ22、σ33、σ44の大きさが、σ22＞σ33＞σ11＞σ44であり、この順に分散値がソートされる場合、次式のように、特徴ベクトル（ｘ１、ｘ２、ｘ３、ｘ４）を、（ｘ２、ｘ３、ｘ１、ｘ４）と並べ替えるソート行列Ｓ（４行×４列）が一意に決まる。図２に示すように、変換行列Ａには、ソート行列が複数個含まれ、ソート行列生成部１２は、ソート行列の生成を繰り返し行う。
【数５】
2015228083.tif 000007
【００３０】
２次元回転行列算出部１２２は、ソート行列によるソート結果に基づいて決定される次元ペアに対応する２次元分散共分散行列を所定の角度回転させる２次元回転行列ｒを算出する。次元ペアは、具体的には、以下のようにして決定される。例えば、（３）式においては、４つの分散値σ11、σ22、σ33、σ44は、それぞれ、特徴ベクトルの１番目の次元、２番目の次元、３番目の次元、４番目の次元の分散値にそれぞれ対応している。そして、（３）式において、σ22＞σ33＞σ11＞σ44であるとすると、最も大きいσ22に対応する２番目の次元と、最も小さいσ44に対応する４番目の次元とが１つのペアとなり、２番目に大きいσ33に対応する３番目の次元と、２番目に小さいσ11に対応する１番目の次元が１つのペアとなる。
【００３１】
２次元回転行列算出部１２２は、このように決定された次元ペアを構成する２つの次元について、分散共分散行列Ｃを角度θ（λ）だけ回転させる回転行列を算出する。この２次元回転行列ｒは、次元ペアの数（次元数ｎが偶数の場合はｎ／２、奇数の場合は（ｎ−１）／２）だけ生成される。上述の例では、２番目の次元と４番目の次元のペア及び３番目の次元と１番目の次元のペアが生成されている。そこで、この例の場合には、これら２つのペアに対応して、２つの２次元分散共分散行列を、それぞれ、角度θ2、4（λ）、角度θ3、1（λ）だけ回転変換する２つの２次元回転行列ｒ2、4及びｒ3、1が生成されることになる。まずは、それぞれの次元ペアに対応する２×２の分散共分散行列Ｃ2、4及びＣ3、1を、（３）式から次のように求める。
【数６】
2015228083.tif 000008
一方、２次元回転行列ｒ2、4及びｒ3、1は、回転角度θ2、4（λ）、角度θ3、1（λ）を用いて、以下のように表すことができる。
【数７】
2015228083.tif 000009
【数８】
2015228083.tif 000010
【００３２】
ところで、２次元のデータの分布が正規分布（ガウス分布）に従っているとき、データ分布は、２次元平面上で楕円形状で表すことができ、その輪郭線（２次元ガウス楕円）は、もとのデータの分散共分散行列により定義されることが知られている。つまり、２次元回転行列ｒ2、4及びｒ3、1により、２次元分散共分散行列Ｃ2、4及びＣ3、1を、それぞれ、角度θ2、4（λ）、角度θ3、1（λ）回転変換することは、分散共分散行列Ｃ2、4及びＣ3、1により定義されるガウス楕円を各２次元平面上で角度θ2、4（λ）、角度θ3、1（λ）回転させることを意味する。そして、ガウス分布の分散共分散行列が定義する楕円の長軸が、横軸に対して４５°の角度をなす場合、２次元平面の横軸及び縦軸に相当する２つの次元の分散値が等しくなる（Ｉｓｏｔｒｏｐｉｃ＝等分散状態となる）ことが知られている。つまり、分散共分散行列Ｃ2、4及びＣ3、1により定義される楕円が図３（ａ）、（ｂ）に示すようなものであった場合、これらの楕円を、それぞれ、θiso_2、4、θiso_3、1だけ回転すれば、σ22＝σ44、σ33＝σ11となる。後に詳述するが、本願の発明者は、分散共分散行列における全ての分散値が等しくなる場合、バイナリ化による量子化誤差が最小となることを見出した。したがって、次元ペアに対応する楕円を４５°の角度まで２次元回転して２つの値を均一化する処理を、学習用データから算出された分散共分散行列における全分散値が全て均一になるまで繰り返し行えば、量子化誤差を最小化し、精度よくバイナリコーディングを行うことができる。
【００３３】
さらに、本願の発明者は、データが正規分布に従っているとき、バイナリ化による量子化誤差を最小化する角度において、バイナリコードのエントロピーは最小となること、及び、楕円の長軸（２次元分散共分散行列の第１主成分）または短軸（２次元分散共分散行列の第２主成分）が、横軸または縦軸に対して０°の角度をなすとき、エントロピーが最大となること、を見出した。一般に、バイナリコードのエントロピーが大きいほど、つまり、バイナリコードの独立性が高いほど、精度の良いコーディングであるとされているため、コーディング精度に関し、量子化誤差とエントロピーとは、いわゆるトレードオフの関係にあることを意味する。したがって、例えば、図３に示す楕円を回転する角度を、量子化誤差とエントロピーのバランスがとれるような角度に設定すれば、精度よくバイナリコーディングを行うことができる変換行列Ａを生成することができる。そこで、第１の実施の形態では、角度θ（λ）を、θiso及びθpca（楕円で示されるガウス分布の第１主成分軸の傾き角度）を用いて、以下の式（４）により決定する。なお、λは、ユーザにより設定されるパラメータであり、０≦λ≦１の間の値をとる。
【数９】
2015228083.tif 000011
【００３４】
θiso_2、4、θpca_2、4、θiso_3、1、θpca_3、1は、分散値を用いて以下のように求めることができ、この値を用いて、θ2、4（λ）、θ3、1（λ）を求めることができる。
【数１０】
2015228083.tif 000012
【数１１】
2015228083.tif 000013
したがって、λを設定すれば、２次元回転行列ｒ2、4及びｒ3、1も、それぞれ、具体的に求めることができる。
【００３５】
図１に戻り、対回転行列生成部１２３は、２次元回転行列算出部１２２にて算出された２次元回転行列の要素及び０要素を、ソート行列Ｓによるソート結果に対応するように並べた、ｎ×ｎの対回転行列Ｒを生成する。上述の例では、２次元回転行列算出部１２２にて算出されたｒ2、4及びｒ3、1は、それぞれ、特徴ベクトルを、ペアになった２つの次元（２、４）、（３、１）に着目して、別個に回転させる行列である。対回転行列生成部１２３にて生成される対回転行列Ｒは、これらの２次元回転行列ｒを組み合わせて１回のソーティングで生成された全ての次元ペアについて一度に回転を行う行列である。
【００３６】
ただし、前述のように、最終的に生成される変換行列は、ソート行列Ｓと、対回転行列Ｒを、所定個組み合わせて構成される。そして、変換される特徴ベクトルには、先にソート行列Ｓが乗算されることになる。したがって、対回転行列Ｒは、２次元回転行列ｒの各要素が、ソート行列Ｓによるソート後の特徴ベクトルに対応するように決定される。上述の例では、ソート行列Ｓにより、特徴ベクトルは、（ｘ２、ｘ３、ｘ１、ｘ４）とソートされるので、回転行列Ｒは、以下のとおりとなる。図２に示すように、変換行列Ａは、複数の対回転行列Ｒを含むので、対回転行列生成部１２３は、対回転行列の生成を繰り返し行う。
【数１２】
2015228083.tif 000014
【００３７】
分散共分散行列更新部１２４は、ソート行列Ｓと対回転行列Ｒが１つずつ生成されるたびに、ソート行列Ｓと対回転行列Ｒを用いて、分散共分散行列Ｃを繰り返し更新する。これは、対回転行列Ｒの乗算により、各分散値の具体的値は変化するため、ソート行列生成部１２１にて、２回目以降、分散値の降順ソートを行う場合には、直前のベーシック・ローテーション適用後の分散共分散行列の分散値を用いる必要があるからである。具体的には、１個目のソート行列Ｓ１、１個目の対回転行列Ｒ１が生成されたとすると、分散共分散行列更新部１２４は、Ｃ´＝Ｒ１×Ｓ１×Ｃ×Ｓ１T×Ｒ１Tとして、分散共分散行列を更新する。そして、ソート行列生成部１２１は、この更新された分散共分散行列Ｃ´の分散値ソートを行い、２個目のソート行列を生成する。このようにして、分散共分散行列更新部１２４は、分散共分散行列の更新を繰り返し行う。
【００３８】
図２を用いて説明したように、変換行列Ａは、ソート行列Ｓと対回転行列Ｒの１個ずつのペア（ベーシック・ローテーション）からなり、本実施の形態では、変換行列Ａには、このベーシック・ローテーションがｌｏｇ2ｎ個含まれる。図４（ａ）から（ｄ）は、分散共分散行列算出部１１にて算出された分散共分散行列Ｃの対角成分である各分散値を模式的に示す図である。上述の例においては、ソート行列生成部１２１により、分散値は、図４（ａ）に示された状態から、図４（ｂ）に示す状態にソートされた。そして、対回転行列生成部１２３にて生成された対回転行列Ｒ（ここでは、λ＝０とする。）を用いた回転により、σ22＝σ44、σ33＝σ11となるので、分散値は図４（ｂ）の状態から図４（ｃ）の状態となる。図４（ｃ）の状態からもう一回、ソート行列生成部１２１における分散値のソート及び対回転行列生成部１２３にて生成された対回転行列Ｒによる回転を施すと、図４（ｄ）の状態となり、分散共分散行列Ｃの全分散値は等しくなる。このように、１回のベーシック・ローテーションの操作で、２次元ずつ分散値が均一になるので、特徴ベクトル及び分散共分散行列がｎ次元（ｎ＝２k）であれば、ｌｏｇ2ｎ回操作を繰り返すことで、全分散値が等しくなる。このとき、量子化誤差が最小となることは上述のとおりである。また、ｎ≠２kのとき、さらには、λ≠０のときにも、本願発明者の実験によれば、ｌｏｇ2ｎ回の操作で、十分な等分散性を確保することができ、精度よくバイナリコーディングを行うことができる変換行列Ａを生成できることが分かっている。このため、本実施の形態では、ベーシック・ローテーションをｌｏｇ2ｎ個組み合わせて変換行列Ａを生成している。
【００３９】
なお、図４において、仮に、σ22とσ33、σ11とσ44のペアを生成したとすると、図４（ｂ）の状態からベーシック・ローテーションを１回適用すると、図４（ｅ）の状態になる。図４（ｃ）においては、図４（ｅ）と比べて、次元ペア相互間で、より等分散な状態となっている。すなわち、図４（ｃ）のように、最大分散値と最小分散値、２番目に大きい分散値と２番目に小さい分散値・・・を組み合わせて次元ペアを生成することで、より速く等分散性を確保することができる。これにより、例えば、変換行列Ａに含まれるベーシック・ローテーションの数を減らすこともでき、さらに高速にバイナリコーディングを行うことができる。
【００４０】
上述した４次元の場合の例からも明らかなように、ベーシック・ローテーション１回の操作の非ゼロ要素は、高々２ｎ、ベーシック・ローテーションの個数はｌｏｇｎ個であり、変換行列全体でも、非ゼロ要素数は、合計Ｏ（ｎｌｏｇｎ）にすぎないから、特徴ベクトルが１万次元以上の高次元の場合には、変換行列Ａは極めて疎となる。したがって、特徴ベクトル変換部１３における変換時の積和演算の回数が極めて少ない、高速なエンコードが可能となる。従来技術（ＢＰＢＣ）では、非ゼロ要素数は、Ｏ（ｎ2）程度であるから、例えば、６５５３６次元の場合、本実施の形態の特徴ベクトル変換装置１０によれば、２５倍程度高速に、特徴ベクトルの変換を行うことができる。
【００４１】
次に、本実施の形態の特徴ベクトル変換装置１０及びコンテンツ検索装置１の動作フローについて説明する。図５は、コンテンツ検索装置１の動作フロー図である。まず、変換行列Ａが生成され（ステップＳ１）、クエリベクトルが変換行列Ａを用いて変換され、クエリバイナリベクトルが生成される（ステップＳ２）。このクエリバイナリベクトルとコンテンツバイナリベクトルの代表ベクトルとのハミング距離が算出され（ステップＳ３）、このハミング距離に基づいてクエリベクトルに近い複数のベクトルが抽出され、それらの検索候補とクエリベクトルとのユークリッド距離に基づいて、最も近い特徴ベクトルをもつコンテンツが特定される（ステップＳ４）。
【００４２】
図６は、特徴ベクトル変換装置１０による変換行列の生成までの動作フロー図である。まず、学習用特徴ベクトルから、分散共分散行列Ｃが算出される（ステップＳ１１）。次に、分散値がソートされて、ソート行列が生成され（ステップＳ１２）、さらに、次元ペアが生成され（ステップＳ１３）、２次元回転行列ｒが生成される（ステップＳ１４）。続いて、ステップＳ１３にて生成された全ての次元ペア（特徴ベクトルの次元が偶数のときはｎ／２個、奇数のときは（ｎ−１）／２個）について、２次元回転行列ｒが算出されたか否かが判定される（ステップＳ１５）。全ての次元ペアについて２次元回転行列ｒが算出された場合には（ステップＳ１５にてＹｅｓ）、対回転行列Ｒを生成する（ステップＳ１６）。ステップＳ１７では、分散共分散行列Ｃが更新される。そして、ベーシック・ローテーションがｌｏｇ2ｎ個生成されたか否かが判定され（ステップＳ１８）、ｌｏｇ2ｎ個生成されるまで、ステップＳ１２からの処理が繰り返される。
【００４３】
以上、説明したように、第１の実施の形態の特徴ベクトル変換装置１０によれば、学習用特徴ベクトル（ｎ次）から分散共分散行列Ｃが算出される。このＣの分散値を降順にソートして、ソート行列Ｓが算出されるとともに、２つの次元のペアが生成される。また、次元ペアについての２×２の分散共分散行列から算出された２次元回転行列ｒを組み合わせた対回転行列Ｒが生成される。そして、１つのソート行列Ｓと１つの対回転行列Ｒをベーシック・ローテーションとし、ｌｏｇ2ｎ個のベーシック・ローテーションからなる変換行列Ａが生成される。各ソート行列Ｓ、各対回転行列Ｒとも疎行列であり、しかも、ソート行列Ｓは、他の行列との乗算の前後で非ゼロ要素が増加しない置換行列であるため、このようにして生成される変換行列Ａは、非ゼロ要素が極めて少ない。したがって、特徴ベクトルが非常に高次元となっても、高速に特徴ベクトルをバイナリベクトルに変換することができる。
【００４４】
さらに、第１の実施の形態の特徴ベクトル変換装置は、対回転行列Ｒを生成する際、トレードオフの関係にある量子化誤差とエントロピーのバランスがとれるような回転角度を決定することができるため、このような対回転行列Ｒを含む変換行列Ａを用いて、精度よくバイナリコーディングを行うことができる。
【００４５】
（理論的背景）
上述のように、第１の実施の形態では、量子化誤差はアイソトロピック（分散均一）の状態で最小化されるとの前提の下、変換行列Ａを構成する１つのベーシック・ローテーションの中で、量子化誤差とエントロピーとのバランスをとるように回転角度を決定した。以下では、その理論的背景について説明する。
【００４６】
バイナリ変換前後の量子化誤差は、変換前の特徴ベクトルをｘ、変換後の特徴ベクトルをｂ（ｘ）、データの個数をＮ個とすると、以下のように定義される。
【数１３】
2015228083.tif 000015
データが２次元であると仮定し、データ分布が任意分布関数ｐ（ｘ）で表されるとき、平均量子化誤差は、以下のように記述することができる。
【数１４】
2015228083.tif 000016
これは、一般的には、次のように計算することができる。
【数１５】
2015228083.tif 000017
ここで、ｐ1（・）、ｐ2（・）は、それぞれ、ｘ１、ｘ２についての周辺分布である。
【００４７】
データ分布がガウス分布であると仮定すると、量子化誤差は、さらに次のように記述することができる。
【数１６】
2015228083.tif 000018
上式において、Σは分散共分散行列である。回転変換の下で、上式を最小化すると、アイソトロピック解（σ11＝σ22）が得られる。したがって、データがガウス分布に従っているとき、アイソトロピックになるような変換は、量子化誤差を最小化することが分かる。ここではデータが２次元であると仮定しているが、このような結果は、データがより高次元である場合にも、そのまま当てはまる。
【００４８】
他方で、コーディング精度の他の指標の１つである、バイナリコードのエントロピーも、データがガウス分布に従うと仮定すると、２次元の場合については、解析的に計算可能である。ガウス分布の対称性から、（１、１）及び（−１、１）のバイナリコードの確率のみ算出すれば十分であり、これらは、それぞれ、以下のとおりである。
【数１７】
2015228083.tif 000019
なお、λ1、λ2は、分散共分散行列の固有値であり、λ1≧λ2である。また、θは、２次元ガウス楕円の第１主成分軸の横軸に対する角度である。２次元バイナリコードのエントロピーは、次のように表すことができる。
【数１８】
2015228083.tif 000020
【００４９】
図７（ａ）、（ｂ）は、それぞれ、以上のようにして得られた量子化誤差及びエントロピーと角度θとの関係を示すグラフである。図７に示すように、量子化誤差が最小化されるとき（θ＝π／４）、エントロピーも最小化され、量子化誤差が最大化されるとき（θ＝０）、エントロピーも最大化されることが分かる。すなわち、量子化誤差とエントロピーとは、トレードオフの関係にある。本発明の第１の実施の形態及び後述する第２の実施の形態の特徴ベクトル変換装置は、このような解析結果に基づき、変換行列の生成を行うものである。なお、実際のデータ分布が正規分布であるとは限らないが、上記の理論は、近似的に、あらゆるデータ分布の性質を表すものとして解釈可能である。したがって、上記の理論に基づいた、本発明の第１及び第２の実施の形態の特徴ベクトル変換装置も、データが正規分布であるか否かにかかわらず利用可能であり、また、精度よくバイナリコーディングを行うことができる。
【００５０】
（第２の実施の形態）
次に、本発明の第２の実施の形態の特徴ベクトル変換装置及びコンテンツ検索装置について説明する。第１の実施の形態の特徴ベクトル変換装置は、１つのベーシック・ローテーションの中で、量子化誤差とエントロピーとのバランスを考慮して、変換行列Ａを生成した。これに対し、第２の実施の形態の特徴ベクトル変換装置は、変換行列Ａを構成するベーシック・ローテーションを、量子化誤差の最小化を考慮した第１グループと、エントロピーの最大化を考慮した第２グループに分け、これらの２種のベーシック・ローテーションを組み合わせることにより、全体で量子化誤差とエントロピーとのバランスをとるものである。
【００５１】
第２の実施の形態の特徴ベクトル変換装置及びコンテンツ検索装置の構成は、図１に示す、第１の実施の形態の特徴ベクトル変換装置及びコンテンツ検索装置と同様である。そこで、以下では、各構成について、第１の実施の形態と同じ番号を用いて説明する。
【００５２】
ソート行列生成部１２１は、第１のグループのベーシック・ローテーションについては、第１の実施の形態と同様に、降順で分散共分散行列Ｃの分散値をソートし、ソート行列Ｓを算出する。一方、第２のグループのベーシック・ローテーションについては、分散共分散行列Ｃの分散値のランダムソートを行い、ソート行列Ｓを算出する。
【００５３】
２次元回転行列算出部１２２は、第１のグループのベーシック・ローテーションについては、次元ペアに対応する２次元ガウス楕円の回転後の長軸の傾き角度が４５°となるように、回転角度を決定し、２次元回転行列ｒを算出する。この回転角度は、図２のθisoであり、上述したように、分散が均一となる角度である。一方、２次元回転行列算出部１２２は、第２のグループのベーシック・ローテーションについては、次元ペアに対応する２次元ガウス楕円の回転後の長軸の傾き角度が０°となるように、回転角度を決定し、２次元回転行列ｒを算出する。この回転角度は、図２のθpcaであり、上述したように、エントロピーが最大になる角度である。なお、上述のように、第２の実施の形態では、分散値の降順ソートとランダムソートが行われる。このため、分散値の降順ソートが行われる第１のグループのベーシック・ローテーションについては、第１の実施の形態と同様に、分散値の最大値と最小の分散値に対応する次元ペア、２番目に大きい分散値と２番目に小さい分散値に対応する次元ペア・・・が生成される。一方、分散値のランダムソートが行われる第２のグループのベーシック・ローテーションについては、ランダムソートの結果に基づき、ランダムにペアが生成される。
【００５４】
対回転行列生成部１２３は、第１の実施の形態と同様に、２次元回転行列ｒから対回転行列Ｒを生成する。このようにして、第２の実施の形態では、変換行列生成部１２は、第１のグループ、第２のグループ、それぞれについて、ソート行列Ｓと対回転行列Ｒを組み合わせ、変換行列Ａを生成する。なお、生成された変換行列は、図８に示すように、式（２）において、特徴ベクトルｘに先に乗算される側に第１のグループのベーシックローテーションが、後に乗算される側に第２のグループのベーシック・ローテーションが配置される。
【００５５】
第２の実施の形態では、変換行列Ａは、第１のグループのベーシック・ローテーションをｌｏｇ2ｎ個と、第２のベーシックローテーションをｋ個組み合わせて構成される。すなわち、第１の実施の形態に比べて、ｋ回だけ、ベーシックローテーションの適用回数が増加する。ｋは、学習により、精度や他の基準を最大化するように決定されるが、典型的には、Ｏ（ｌｏｇ2ｎ）回程度でも、十分高精度な変換を行うことができる。したがって、ｋ個のベーシック・ローテーションの追加に伴う非ゼロ要素の増加は極めて小さく、第１の実施の形態と同様に、極めて高速にバイナリコーディングを行うことができる。
【００５６】
図９は、第２の実施の形態の特徴ベクトル変換装置１０の動作フロー図である。図９に示すステップのうち、ステップＳ２０１からＳ２０８までが第１のグループのベーシック・ローテーションの生成に相当し、ステップＳ２０９からステップＳ２１５までが第２のグループのベーシック・ローテーションの生成に対応する。ステップＳ２０１からステップＳ２０８まで、及びステップＳ２０９からステップＳ２１５までのフローは、第１の実施の形態の特徴ベクトル変換装置１０の動作フローと概略同様である。ただし、ステップＳ２０２では、分散値のソートは降順で行い、ステップＳ２０９では、分散値のランダムソートを行う。また、ステップＳ２０４にて算出される２次元回転行列の回転角度は、θisoであり、ステップＳ２１１にて算出される２次元回転行列の回転角度は、θpcaである。
【００５７】
以上、説明したように、第２の実施の形態の特徴ベクトル変換装置によっても、１つのソート行列Ｓと１つの対回転行列Ｒをベーシック・ローテーションとし、ｌｏｇ2ｎ＋ｋ個のベーシック・ローテーションからなる変換行列Ａが生成される。このようにして生成される変換行列Ａは、ＳもＲも疎行列であり、また、置換行列であるＳをＲに乗じても非ゼロ要素数は増えないため、非ゼロ要素が極めて少ない。したがって、特徴ベクトルが非常に高次元となっても、高速に特徴ベクトルをバイナリベクトルに変換することができる。
【００５８】
さらに、第２の実施の形態の特徴ベクトル変換装置は、変換行列Ａを構成するベーシック・ローテーションを、量子化誤差の最小化を考慮した第１グループと、エントロピーの最大化を考慮した第２グループに分け、これらの２種のベーシック・ローテーションを組み合わせることにより、全体で量子化誤差とエントロピーとのバランスをとることができるため、精度よくバイナリコーディングを行うことができる。
【００５９】
（変形例）
上記第１及び第２の実施の形態では、分散値を所定の順序でソートする場合の一例として、降順ソートする場合について説明したが、昇順でソートしてもよいし、他の基準にしたがってソートしてもよい。また、上記の実施の形態では、分散共分散行列の算出の一例を挙げて説明したが、他の手法により分散共分散行列を算出してもよい。さらに、第１及び第２の実施の形態では、コンテンツ検索装置が式（２）の平行移動ベクトルｔが、特徴ベクトルの平均データである場合について説明したが、中央値等その他のデータを用いてもよい。
【００６０】
上記第１及び第２の実施の形態では、ソート行列Ｓを生成し、ソート結果に基づいて次元のペアを生成したが、ソート行列を生成せずに、次元のペアを任意の基準に従い、決定してもよい。この場合でも、２次元回転行列ｒの各要素は、対応する次元ペアに応じて、対回転行列Ｒにおける位置が一意に決まる。また、第１及び第２の実施の形態において、θpcaとして、２次元ガウス楕円の第１主成分軸と横軸に対する傾き角を用いたが、これに限らず、いずれかの主成分軸と縦軸または横軸のなす角であればよい。
【００６１】
第１の実施の形態では、次元数ｎが４の場合を具体例に挙げて説明したが、第１及び第２の実施の形態において、それ以外の次元数を適用可能であることは言うまでもない。なお、次元数ｎが奇数の場合には、次元のペアは（ｎ−１）／２個生成され、対回転行列における、ペアを構成しない残り１個の次元に対応する対角成分として、「１」、非対角成分として「０」が挿入されてよい。すなわち、当該ベーシック・ローテションにおいては、その残りの１個の次元について回転を行わない。具体的には、例えば、次元数が５で、次元２と４、次元１と５でペアが生成された場合、対回転行列において、ソート行列によるソート結果に対応して３行３列の位置の値は「１」であり、３行１、２、４、５列の値は、それぞれ０となる。
【００６２】
また、生成された次元ペアについて、回転変換を行う必要のない場合（例えば、第２の実施の形態の第１のベーシック・ローテーションのグループを生成する場合において、ペアを構成する２つの次元の分散値がもともと同一であった場合等）、当該ペアに対応する２次元回転行列は、単位行列となり、当該ペアに対応する対角成分に「１」、当該ペアに対応する非対角成分に「０」が挿入される。さらに、次元のペアの数は、ｎ／２個あるいは（ｎ−１）／２個に限られない。２次元回転行列を生成する次元のペアの数はこれより少なくてもよく、ペアを構成しない次元については、当該ベーシック・ローテーションにおいて、回転を行わずに、対応する対角成分に「１」、対応する非対角成分に「０」を挿入してよい。この場合において、ベーシック・ローテーションの生成回数を増やすことにより、等分散性を高めてもよい。
【００６３】
第２の実施の形態では、エントロピーの最大化を考慮した第２のグループについて、ランダムソートを行い、ランダムにペアを生成する場合について説明したが、ソートは他の手法で行われてもよい。また、第１のグループにおいて、ランダムソートを行い、ランダムペアを生成してもよい。
【産業上の利用可能性】
【００６４】
本発明は高速なバイナリエンコーディングを行うことができるという効果を有し、特徴ベクトル変換装置等として有用である。
【符号の説明】
【００６５】
１  コンテンツ検索装置
１０  特徴ベクトル変換装置
１１  分散共分散行列生成部
１２  変換行列生成部
１２１  ソート行列生成部
１２２  ２次元回転行列算出部
１２３  対回転行列生成部
１２４  分散共分散行列更新部
１３  特徴ベクトル変換部
２０  コンテンツベクトル記憶部
３０  コンテンツ検索部
【図１】
2015228083.tif 000021
【図２】
2015228083.tif 000022
【図３】
2015228083.tif 000023
【図４】
2015228083.tif 000024
【図５】
2015228083.tif 000025
【図６】
2015228083.tif 000026
【図７】
2015228083.tif 000027
【図８】
2015228083.tif 000028
【図９】
2015228083.tif 000029
【図１０】
2015228083.tif 000030