(57)【特許請求の範囲】
【請求項１】
登録データが有する第１の特徴を表す第１の登録特徴データと、前記登録データが有する第２の特徴を表す第２の登録特徴データとを記憶する記憶部と、
対象データが有する前記第１の特徴を表す第１の対象特徴データと、前記対象データが有する前記第２の特徴を表す第２の対象特徴データとを生成し、
２つの入力値の交換に対して演算結果が変化しない対称性を持つ演算処理であって前記２つの入力値の間の非類似度を計算する第１の演算処理により、前記第１の登録特徴データと前記第１の対象特徴データとの間の第１の非類似度を計算し、
２つの入力値の交換に対して演算結果が変化する反対称性を持つ演算処理であって前記２つの入力値の間の非類似度を計算する第２の演算処理により、前記第２の登録特徴データと前記第２の対象特徴データとの間の第２の非類似度を計算し、
前記第１の非類似度と前記第２の非類似度とに基づいて、前記対象データに類似する前記登録データを特定する演算部と
を有する、情報処理装置。
【請求項２】
前記演算部は、前記第１の非類似度と前記第２の非類似度との和が小さい順に前記登録データを特定する
請求項１に記載の情報処理装置。
【請求項３】
前記第１の登録特徴データ、前記第２の登録特徴データ、前記第１の対象特徴データ、及び前記第２の対象特徴データはビット列であり、
前記第１の演算処理は、前記２つの入力値のうち一の入力値と他の入力値との間の排他的論理和に含まれる１の数をカウントする演算処理であり、
前記第２の演算処理は、前記２つの入力値のうち一の入力値と、他の入力値を反転した反転値との間の論理積に含まれる１の数をカウントする演算処理である
請求項１又は２に記載の情報処理装置。
【請求項４】
前記第１の特徴は、同じ環境で採取された第１及び第２のデータを比較した際に前記第１のデータが有する前記第１の特徴と前記第２のデータが有する前記第１の特徴との類似度が高いほど前記第１の非類似度が小さくなる特徴であり、
前記第２の特徴は、異なる環境で採取された第３及び第４のデータを比較した際に前記第３のデータが有する前記第２の特徴と前記第４のデータが有する前記第２の特徴との類似度が高いほど前記第２の非類似度が小さくなる特徴である
請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
コンピュータが、
記憶部から、登録データが有する第１の特徴を表す第１の登録特徴データと、前記登録データが有する第２の特徴を表す第２の登録特徴データとを取得し、
対象データが有する前記第１の特徴を表す第１の対象特徴データと、前記対象データが有する前記第２の特徴を表す第２の対象特徴データとを生成し、
２つの入力値の交換に対して演算結果が変化しない対称性を持つ演算処理であって前記２つの入力値の間の非類似度を計算する第１の演算処理により、前記第１の登録特徴データと前記第１の対象特徴データとの間の第１の非類似度を計算し、
２つの入力値の交換に対して演算結果が変化する反対称性を持つ演算処理であって前記２つの入力値の間の非類似度を計算する第２の演算処理により、前記第２の登録特徴データと前記第２の対象特徴データとの間の第２の非類似度を計算し、
前記第１の非類似度と前記第２の非類似度とに基づいて、前記対象データに類似する前記登録データを特定する
類似データ検索方法。
【請求項６】
コンピュータに、
記憶部から、登録データが有する第１の特徴を表す第１の登録特徴データと、前記登録データが有する第２の特徴を表す第２の登録特徴データとを取得し、
対象データが有する前記第１の特徴を表す第１の対象特徴データと、前記対象データが有する前記第２の特徴を表す第２の対象特徴データとを生成し、
２つの入力値の交換に対して演算結果が変化しない対称性を持つ演算処理であって前記２つの入力値の間の非類似度を計算する第１の演算処理により、前記第１の登録特徴データと前記第１の対象特徴データとの間の第１の非類似度を計算し、
２つの入力値の交換に対して演算結果が変化する反対称性を持つ演算処理であって前記２つの入力値の間の非類似度を計算する第２の演算処理により、前記第２の登録特徴データと前記第２の対象特徴データとの間の第２の非類似度を計算し、
前記第１の非類似度と前記第２の非類似度とに基づいて、前記対象データに類似する前記登録データを特定する
処理を実行させる、類似データ検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、類似データ検索方法、及び類似データ検索プログラムに関する。
【背景技術】
【０００２】
ＲＤＢ（Relational Database）はデータを構造的に管理することができる。そのため、ＲＤＢに格納されているデータは構造化データと呼ばれることがある。これに対し、電話や会議の内容をそのままテキスト化したテキストデータや、その内容を録音した音声データは非構造化データと呼ばれる。非構造化データには、テキストデータや音声データの他、例えば、画像データや、各種センサから出力されるセンサデータなどがある。近年、こうした非構造化データを有効活用する技術に注目が集まっている。
【０００３】
非構造化データの類似検索技術は、大量の非構造化データを有効利用するために役立つ。例えば、現在ある多量の非構造化データから、過去に収集された特定の非構造化データに類似する非構造化データを抽出することができれば、ある特徴を持つ非構造化データの時系列分析が可能になる。また、非構造化データの類似検索技術は、個人認証を行う場面で指紋や静脈などのパターンを照合する際にも利用されるし、非構造化データのクラスタリングや分類、情報システムに対する不正アクセスの検知などにも用いられる。
【０００４】
例えば、指紋データによる個人認証サービスを提供する認証システムは、膨大な数の登録ユーザから採取された大量の指紋データから、入力された指紋データに類似する指紋データを検索して認証の成否を判断する。
【０００５】
非構造化データの類似検索には、非構造化データの特徴を表す特徴ベクトルが用いられる。例えば、認証システムは、特徴量空間における特徴ベクトル同士のユークリッド距離を指紋データ間の非類似度として計算し、非類似度が小さい特徴ベクトルに対応する指紋データを探索する。
【０００６】
指紋データなどの非構造化データから生成される特徴ベクトルは、多くの場合、１０から１０００程度の次元を有する高次元ベクトルとなる。そのため、認証に係る処理のうち、非類似度が小さい特徴ベクトルを特定する処理にかかる負荷は高い。このような負荷を減らすため、特徴ベクトルを所定長のバイナリデータ（所定ビットのビット列）に変換し、バイナリデータ間のハミング距離に基づいて非類似度が小さい特徴ベクトルを絞り込む方法が提案されている。
【０００７】
特徴ベクトルをバイナリデータに変換する方法としては、例えば、特徴量空間を二分する超平面を用意し、超平面で分けられた２つの部分空間のいずれに特徴ベクトルが位置するかに応じてビット値を決める方法がある。Ｎ個の超平面を利用することで、１つの特徴ベクトルからＮビットのバイナリデータが得られる。なお、Ｎは、特徴ベクトルの次元数より十分に小さい値に設定される。
【０００８】
特徴ベクトルをバイナリデータに変換する方法を用いて、クエリデータ（検索キーとなる非構造化データ）の近傍データ（非類似度が小さい非構造化データ）を探索する方法が提案されている。また、探索精度を高める方法として、バイナリデータにワイルドカード記号（同じ位置にある比較対象の記号が何であるかにかかわらず、同じ記号と判定される記号）を挿入した記号列を用いて近傍データの探索を行う方法が提案されている。
【０００９】
また、デジタルデータをＤ（Ｄ＞０）次元の実数値ベクトルによって表現した特徴量を生成し、その特徴量の近傍における相対的幾何関係に基づいてハッシュ関数を生成する方法が提案されている。
【００１０】
なお、類似関係の対称性に関し、非対称な類似関係に基づいて好適な予測器を選択する方法が提案されている。この方法では、予測器の選択に、訓練クラスタの特徴表現、及び特徴表現の変換に用いる変換行列が利用される。この変換行列は、訓練クラスタの組毎に、一の訓練クラスタの特徴表現と変換後の他の訓練クラスタの特徴表現との非対称類似度を最大化する。また、この方法では、非対称類似度として、カルバック・ライブラー・ダイバージェンス（ＫＬＤ：Kullback-Leibler Divergence）が利用される。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０１３−２０６１８７号公報
【特許文献２】特開２０１２−１７３７９３号公報
【特許文献３】特開２０１５−０７９１０１号公報
【非特許文献】
【００１２】
【非特許文献１】A.Torralba, R.Fergus, Y.Weiss, "Small codes and large image databases for recognition", 2008.
【発明の概要】
【発明が解決しようとする課題】
【００１３】
高次元の特徴ベクトルをバイナリデータに変換し、バイナリデータ間のハミング距離を利用して被検索及び照合の対象となる特徴ベクトルを絞り込むことで、非構造化データの類似検索を高速化できる。また、この技術を適用することで、指紋、静脈、声紋などの生体データ（非構造化データ）による認証システムなど、高速な処理が求められる様々な場面に非構造化データの類似検索技術を応用することが可能になる。
【００１４】
但し、生体データなどの採取環境に影響を受けやすい非構造化データを扱う場合には、その影響が類似検索の誤差として現われることがある。例えば、指紋データは乾燥状態に応じて変化する。声紋データは、周囲の騒音や湿度、喉の状態などに応じて変化する。顔認証や虹彩認証など、画像データを利用する生体認証の場合、体調による肌の変化や気分による表情の変化、照明条件の影響などが画像データに影響を与える。
【００１５】
環境の変化に影響を受ける要素を含まない特徴ベクトルを用いれば、環境変化による影響を抑制できるが、そのような特徴ベクトルを見つけることは現実的に困難である。そのため、環境変化に特徴ベクトルの要素が影響を受けることを前提に、環境変化による検索精度への影響を抑制する仕組みの開発が望まれる。
【００１６】
１つの側面によれば、本開示の目的は、類似検索の精度を高めることが可能な、情報処理装置、類似データ検索方法、及び類似データ検索プログラムを提供することにある。
【課題を解決するための手段】
【００１７】
一態様によれば、登録データが有する第１の特徴を表す第１の登録特徴データと、登録データが有する第２の特徴を表す第２の登録特徴データとを記憶する記憶部と、対象データが有する第１の特徴を表す第１の対象特徴データと、対象データが有する第２の特徴を表す第２の対象特徴データとを生成し、２つの入力値の交換に対して演算結果が変化しない対称性を持つ演算処理であって２つの入力値の間の非類似度を計算する第１の演算処理により、第１の登録特徴データと第１の対象特徴データとの間の第１の非類似度を計算し、２つの入力値の交換に対して演算結果が変化する反対称性を持つ演算処理であって２つの入力値の間の非類似度を計算する第２の演算処理により、第２の登録特徴データと第２の対象特徴データとの間の第２の非類似度を計算し、第１の非類似度と第２の非類似度とに基づいて、対象データに類似する登録データを特定する演算部とを有する、情報処理装置が提供される。
【発明の効果】
【００１８】
類似検索の精度を高めることができる。
【図面の簡単な説明】
【００１９】
【図１】第１実施形態に係る情報処理装置の一例を示した図である。
【図２】第２実施形態に係る情報処理装置の機能を実現可能なハードウェアの一例を示した図である。
【図３】第２実施形態に係る情報処理装置が有する機能の一例を示したブロック図である。
【図４】第２実施形態に係る超平面情報の一例を示した図である。
【図５】第２実施形態に係る登録情報の一例を示した図である。
【図６】第２実施形態に係るバイナリデータの生成方法について説明するための図である。
【図７】第２実施形態に係る非類似度の計算方法について説明するための図である。
【図８】第２実施形態に係る非類似度の反対称成分が有する特性を超平面の一方向性によって解釈する方法について説明するための図である。
【図９】第２実施形態に係る超平面の決定方法について説明するための図である。
【図１０】第２実施形態に係る登録処理の流れを示したフロー図である。
【図１１】第２実施形態に係る検索処理の流れを示した第１のフロー図である。
【図１２】第２実施形態に係る検索処理の流れを示した第２のフロー図である。
【発明を実施するための形態】
【００２０】
以下に添付図面を参照しながら、本発明の実施形態について説明する。なお、本明細書及び図面において実質的に同一の機能を有する要素については、同一の符号を付することにより重複説明を省略する場合がある。
【００２１】
＜１．第１実施形態＞
図１を参照しながら、第１実施形態について説明する。第１実施形態は、非構造化データの類似検索に関し、非構造化データの採取環境による検索結果への影響を抑制する仕組みを開示する。図１は、第１実施形態に係る情報処理装置の一例を示した図である。なお、図１に例示した情報処理装置１０は、第１実施形態に係る情報処理装置の一例である。
【００２２】
図１に示すように、情報処理装置１０は、記憶部１１及び演算部１２を有する。
なお、記憶部１１は、ＲＡＭ（Random Access Memory）などの揮発性記憶装置、或いは、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性記憶装置である。演算部１２は、ＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）などのプロセッサである。但し、演算部１２は、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などの電子回路であってもよい。演算部１２は、例えば、記憶部１１又は他のメモリに記憶されたプログラムを実行する。
【００２３】
記憶部１１は、登録データ２１が有する第１の特徴を表す第１の登録特徴データ２２ａを記憶する。また、記憶部１１は、登録データ２１が有する第２の特徴を表す第２の登録特徴データ２２ｂを記憶する。
【００２４】
例えば、第１の登録特徴データ２２ａは、特徴ベクトルを規定する特徴量空間を２つに分ける超平面の組を用い、登録データ２１の特徴ベクトルが超平面のいずれの側に位置するかによって決定されるビット値の組（バイナリデータ）で表現される。特徴ベクトルとしては、例えば、ＳＩＦＴ（Scale-Invariant Feature Transform）、ＳＵＲＦ（Speed-Upped Robust Feature）、ＯＲＢ（ORiented-BRIEF）などを適用できる。
【００２５】
第１の特徴は、超平面の組によって表現されうる。第１の特徴を表す超平面の組は、複数の特徴ベクトルのサンプルを利用して学習処理により決定される。例えば、超平面の組は、複数のサンプルのそれぞれについて、１つの対象サンプルの近傍にある他のサンプルの集合と、対象サンプルから決定されるバイナリデータの近傍にある他のサンプルのバイナリデータの集合とが許容可能な範囲で一致するように決定される。なお、第１の特徴を表現する超平面の組を決定する場合、バイナリデータ間の距離（非類似度）は、後述する第１の演算処理３３により算出される。
【００２６】
また、第２の登録特徴データ２２ｂは、特徴ベクトルを規定する特徴量空間を２つに分ける超平面の組を用い、登録データ２１の特徴ベクトルが超平面のいずれの側に位置するかによって決定されるビット値の組（バイナリデータ）で表現される。なお、第２の登録特徴データ２２ｂは、第１の登録特徴データ２２ａと同じ特徴ベクトルから得られる。
【００２７】
第２の特徴は、超平面の組によって表現されうる。第２の特徴を表す超平面の組は、２種類の特徴ベクトルのサンプルを利用して学習処理により決定される。１つ目の種類（第１の種類）の特徴ベクトルは、第１の特徴を表す超平面の組を決定する際に用いたサンプルに対応する元データと同じ環境（第１の環境）で採取されたデータの特徴ベクトルである。２つ目の種類（第２の種類）の特徴ベクトルは、第１の環境とは異なる環境（第２の環境）で採取された元データの特徴ベクトルである。
【００２８】
つまり、第１の環境で採取された元データの特徴ベクトルと、第２の環境で採取された元データの特徴ベクトルとがサンプルのペア（特徴ペア）として学習処理に利用される。なお、元データの採取元は同じであるが、環境が異なると元データの内容は異なる。例えば、指紋データの場合、同じ人の指紋を採取しても、通常湿度の環境で採取した指紋データ（第１の環境で採取された元データ）と、乾燥した環境で採取した指紋データ（第２の環境で採取された元データ）とは異なる内容のデータとなる。
【００２９】
第２の特徴を表現する超平面の組は、特徴ペアに対応する２つのバイナリデータが、後述する第２の演算処理３５により算出される非類似度（距離）を基準として近傍に位置し、特徴ペアに対応しない２つのバイナリデータは非近傍に位置するように決定される。
【００３０】
さて、演算部１２は、対象データ３１が有する第１の特徴を表す第１の対象特徴データ３２ａを生成する。対象データ３１は、例えば、認証のために入力される指紋データなどの入力データである。演算部１２は、登録データ２１から第１の登録特徴データ２２ａを生成する方法と同じ方法で対象データ３１から第１の対象特徴データ３２ａを生成する。例えば、演算部１２は、対象データ３１から特徴ベクトルを生成し、第１の特徴を表現する超平面の組を用いて、その特徴ベクトルから第１の対象特徴データ３２ａを生成する。
【００３１】
また、演算部１２は、対象データ３１が有する第２の特徴を表す第２の対象特徴データ３２ｂを生成する。演算部１２は、登録データ２１から第２の登録特徴データ２２ｂを生成する方法と同じ方法で対象データ３１から第２の対象特徴データ３２ｂを生成する。例えば、演算部１２は、第２の特徴を表現する超平面の組を用いて、対象データ３１の特徴ベクトルから第２の対象特徴データ３２ｂを生成する。なお、第１及び第２の特徴を表す情報（例えば、超平面の組を示す情報）は、記憶部１１に予め格納されている。
【００３２】
また、演算部１２は、２つの入力値の間の非類似度を計算する第１の演算処理３３により、第１の登録特徴データ２２ａと第１の対象特徴データ３２ａとの間の第１の非類似度３４を計算する。第１の演算処理３３は、２つの入力値の交換に対して演算結果が変化しない対称性を持つ演算処理である。例えば、第１の演算処理３３を関数Ｆ１、２つの入力値をＡ、Ｂとした場合、関数Ｆ１は、「Ｆ１（Ａ，Ｂ）＝Ｆ１（Ｂ，Ａ）」という性質（対称性）を有する。例えば、ハミング距離の演算処理は関数Ｆ１と同じ性質を有する。
【００３３】
また、演算部１２は、２つの入力値の間の非類似度を計算する第２の演算処理３５により、第２の登録特徴データ２２ｂと第２の対象特徴データ３２ｂとの間の第２の非類似度３６を計算する。第２の演算処理３５は、２つの入力値の交換に対して演算結果が変化する反対称性を持つ演算処理である。例えば、第２の演算処理３５を関数Ｆ２、２つの入力値をＣ、Ｄとした場合、関数Ｆ２は、「Ｆ２（Ｃ，Ｄ）≠Ｆ２（Ｄ，Ｃ）」という性質（反対称性）を有する。例えば、Ｃ、Ｄがビット列の場合、Ｃと、Ｄを反転した反転値Ｅとの論理積に含まれる１の数をカウントする演算処理は反対称性を持つ。
【００３４】
なお、第２の演算処理３５の１つ目の入力値（Ｃに相当）及び２つ目の入力値（Ｄに相当）には、それぞれ環境に関する条件が設定されている。例えば、１つ目の入力値には上述した第１の環境で採取された元データに対応するバイナリデータが入力され、２つ目の入力値には上述した第２の環境で採取された元データに対応するバイナリデータが入力される。登録データ２１が第１の環境で採取されたデータである場合、第２の登録特徴データ３２ｂは、第２の演算処理３５の中で１つ目の入力値として扱われる。
【００３５】
また、演算部１２は、第１の非類似度３４と第２の非類似度３６とに基づいて、対象データ３１に類似する登録データ２１を特定する。例えば、演算部１２は、第１の非類似度３４と第２の非類似度３６との合計値を対象データ３１と登録データ２１との非類似度３７とする。また、演算部１２は、様々な登録データ（例えば、Ｒｄ１、Ｒｄ２、…、Ｒｄ８）について計算済みの非類似度３７を比較し、非類似度３７が小さい順に所定数の登録データ（図１の例ではＲｄ１、Ｒｄ３、Ｒｄ７）を特定する。
【００３６】
上記のように、演算部１２は、反対称性を有する第２の演算処理３５を用いて非類似度を評価する。そのため、環境の変化による影響を考慮した評価が可能になる。
例えば、被採取者Ｘから第１の環境下で予め採取された指紋データＸ１（登録データ２１）と、被採取者Ｙから第２の環境下で採取された指紋データＹ２（対象データ３１）との間の第１の非類似度３４が小さい場合、ＹをＸと誤判定するリスクがある。しかし、Ｘ１、Ｙ２間の第２の非類似度３６は大きくなる一方、被採取者Ｙから第１の環境下で予め採取された指紋データＸ１（登録データ２１）と、指紋データＹ２との第２の非類似度３６は小さくなる。そのため、誤判定のリスクを抑圧することができる。
【００３７】
第１の特徴は、同じ被採取者から同じ環境で採取された第１及び第２のデータを比較した際に第１のデータが有する第１の特徴と第２のデータが有する第１の特徴との類似度が高いほど第１の非類似度３４が小さくなる特徴である。
【００３８】
一方、第２の特徴は、同じ被採取者から異なる環境で採取された第３及び第４のデータを比較した際に第３のデータが有する第２の特徴と第４のデータが有する第２の特徴との類似度が高いほど第２の非類似度３６が小さくなる特徴である。つまり、第２の特徴は、環境の変化に応じて変化する特徴変化の方向性を表現している。そのため、第１の非類似度３４と併せて第２の非類似度３６を利用することで、環境変化に起因する特徴変化の方向性を加味することができ、環境要因による誤りリスクを抑圧できるのである。
【００３９】
以上、第１実施形態について説明した。
＜２．第２実施形態＞
次に、第２実施形態について説明する。第２実施形態は、非構造化データの類似検索に関し、非構造化データの採取環境による検索結果への影響を抑制する仕組みを開示する。
【００４０】
［２−１．ハードウェア］
まず、図２を参照しながら、第２実施形態に係る仕組みを実現することが可能な情報処理装置１００のハードウェアについて説明する。図２は、第２実施形態に係る情報処理装置の機能を実現可能なハードウェアの一例を示した図である。なお、情報処理装置１００は、第２実施形態に係る情報処理装置の一例である。
【００４１】
情報処理装置１００が有する機能は、例えば、図２に示すハードウェア資源を用いて実現することが可能である。つまり、情報処理装置１００が有する機能は、コンピュータプログラムを用いて図２に示すハードウェアを制御することにより実現される。
【００４２】
図２に示すように、このハードウェアは、主に、ＣＰＵ９０２と、ＲＯＭ（Read Only Memory）９０４と、ＲＡＭ９０６と、ホストバス９０８と、ブリッジ９１０とを有する。さらに、このハードウェアは、外部バス９１２と、インターフェース９１４と、入力部９１６と、出力部９１８と、記憶部９２０と、ドライブ９２２と、接続ポート９２４と、通信部９２６とを有する。
【００４３】
ＣＰＵ９０２は、例えば、演算処理装置又は制御装置として機能し、ＲＯＭ９０４、ＲＡＭ９０６、記憶部９２０、又はリムーバブル記録媒体９２８に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ＲＯＭ９０４は、ＣＰＵ９０２に読み込まれるプログラムや演算に用いるデータなどを格納する記憶装置の一例である。ＲＡＭ９０６には、例えば、ＣＰＵ９０２に読み込まれるプログラムや、そのプログラムを実行する際に変化する各種パラメータなどが一時的又は永続的に格納される。
【００４４】
これらの要素は、例えば、高速なデータ伝送が可能なホストバス９０８を介して相互に接続される。一方、ホストバス９０８は、例えば、ブリッジ９１０を介して比較的データ伝送速度が低速な外部バス９１２に接続される。また、入力部９１６としては、例えば、マウス、キーボード、タッチパネル、タッチパッド、ボタン、スイッチ、及びレバーなどが用いられる。さらに、入力部９１６としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラが用いられることもある。
【００４５】
出力部９１８としては、例えば、ＣＲＴ（Cathode Ray Tube）、ＬＣＤ（Liquid Crystal Display）、ＰＤＰ（Plasma Display Panel）、又はＥＬＤ（Electro-Luminescence Display）などのディスプレイ装置が用いられる。また、出力部９１８として、スピーカやヘッドホンなどのオーディオ出力装置、又はプリンタなどが用いられることもある。つまり、出力部９１８は、情報を視覚的又は聴覚的に出力することが可能な装置である。
【００４６】
記憶部９２０は、各種のデータを格納するための装置である。記憶部９２０としては、例えば、ＨＤＤなどの磁気記憶デバイスが用いられる。また、記憶部９２０として、ＳＳＤ（Solid State Drive）やＲＡＭディスクなどの半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイスなどが用いられてもよい。
【００４７】
ドライブ９２２は、着脱可能な記録媒体であるリムーバブル記録媒体９２８に記録された情報を読み出し、又はリムーバブル記録媒体９２８に情報を書き込む装置である。リムーバブル記録媒体９２８としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどが用いられる。
【００４８】
接続ポート９２４は、例えば、ＵＳＢ（Universal Serial Bus）ポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ（Small Computer System Interface）、ＲＳ−２３２Ｃポート、又は光オーディオ端子など、外部接続機器９３０を接続するためのポートである。外部接続機器９３０としては、例えば、プリンタなどが用いられる。
【００４９】
通信部９２６は、ネットワーク９３２に接続するための通信デバイスである。通信部９２６としては、例えば、有線又は無線ＬＡＮ（Local Area Network）用の通信回路、ＷＵＳＢ（Wireless USB）用の通信回路、光通信用の通信回路やルータ、ＡＤＳＬ（Asymmetric Digital Subscriber Line）用の通信回路やルータ、携帯電話ネットワーク用の通信回路などが用いられる。通信部９２６に接続されるネットワーク９３２は、有線又は無線により接続されたネットワークであり、例えば、インターネット、ＬＡＮ、放送網、衛星通信回線などを含む。
【００５０】
以上、情報処理装置１００のハードウェアについて説明した。
［２−２．機能］
次に、図３を参照しながら、情報処理装置１００の機能について説明する。図３は、第２実施形態に係る情報処理装置が有する機能の一例を示したブロック図である。
【００５１】
図３に示すように、情報処理装置１００は、記憶部１０１、バイナリデータ生成部１０２、対称成分計算部１０３、反対称成分計算部１０４、及び類否判定部１０５を有する。
記憶部１０１の機能は、上述したＲＡＭ９０６や記憶部９２０などを用いて実現できる。バイナリデータ生成部１０２、対称成分計算部１０３、反対称成分計算部１０４、及び類否判定部１０５の機能は、上述したＣＰＵ９０２などを用いて実現できる。
【００５２】
記憶部１０１には、超平面情報１０１ａと、登録情報１０１ｂとが格納される。超平面情報１０１ａは、特徴ベクトルをバイナリデータに変換するために用いる超平面の組に関する情報である。登録情報１０１ｂは、入力された特徴ベクトル（クエリ）と照合される予め登録された特徴ベクトル（レコード）に関する情報である。
【００５３】
図４に示すように、超平面情報１０１ａは、特徴ベクトルから生成されるバイナリデータの種別と、超平面を識別するための識別情報（超平面ＩＤ）と、特徴量空間の中で超平面を規定するための法線ベクトル及びオフセットとを含む。図４は、第２実施形態に係る超平面情報の一例を示した図である。
【００５４】
バイナリデータの種別には、「対称成分用」と「反対称成分用」とがある。対称成分とは、特徴ベクトル間の非類似度のうち、距離の公理を満たす非類似度の成分を言う。例えば、特徴ベクトル間のユークリッド距離は、距離の公理を満たす非類似度の成分である。一方、反対称成分とは、準距離の公理を満たす非類似度の成分を言う。
【００５５】
関数ｄＱが準距離である場合、関数ｄＱは、ある空間の点を元とする集合Ｗ上において下記の式（１）から式（３）で表現される公理（準距離の公理）を満たす。なお、ｘ，ｙ，ｚ∈Ｗである。
【００５６】
ｄＱ（ｘ，ｙ）≧０
…（１）
ｄＱ（ｘ，ｙ）＝０ならばｘ＝ｙ
…（２）
ｄＱ（ｘ，ｙ）≦ｄＱ（ｘ，ｚ）＋ｄＱ（ｚ，ｙ）
…（３）
例えば、山の上にある家と谷にある駅とを移動する際に、行きと帰りとで移動する人が感じる距離が異なるように、準距離は、移動コストを考慮した距離を表す指標となる。つまり、準距離は、風や重力などに起因する移動コストを加味した距離と言える。このように、移動方向によって距離（準距離）が異なる性質を反対称性と呼ぶ。
【００５７】
超平面情報１０１ａに含まれる超平面ＩＤは、超平面を識別するための識別情報である。法線ベクトルは、特徴量空間において超平面に垂直な方向を向くベクトルである。なお、法線ベクトルは長さ１に正規化されていてもよい。オフセットは、特徴量空間の原点から超平面までの距離（ユークリッド距離）である。法線ベクトルとオフセットとの組は、特徴量空間における超平面を規定する（図６を参照）。図４の例では、対称成分の計算に用いるバイナリデータを生成するための超平面がｎ個、反対称成分の計算に用いるバイナリデータを生成するための超平面がｍ個設定されている。なお、ｎとｍは同じでもよい。
【００５８】
図５に示すように、登録情報１０１ｂは、登録されている非構造化データを識別するための識別情報（データＩＤ）と、その非構造化データから抽出された特徴ベクトルと、その特徴ベクトルから生成されたバイナリデータとを含む。図５は、第２実施形態に係る登録情報の一例を示した図である。
【００５９】
特徴ベクトルは、例えば、ＳＩＦＴ、ＳＵＲＦ、ＯＲＢなどを非構造化データに適用して得られる特徴量空間上のベクトルである。バイナリデータは、対称成分の計算用と、反対称成分の計算用とが用意される。対称成分の計算用に用意されるバイナリデータは、種別が「対称成分用」の超平面（図４を参照）を利用して特徴ベクトルから得られる。一方、反対称成分の計算用に用意されるバイナリデータは、種別が「反対称成分用」の超平面を利用して特徴ベクトルから得られる。
【００６０】
例えば、図６に示す方法により、特徴ベクトルからバイナリデータが生成される。図６は、第２実施形態に係るバイナリデータの生成方法について説明するための図である。なお、説明の都合上、ここではＸ１軸、Ｘ２軸で規定される２次元の特徴量空間を例に説明するが、実際には特徴ベクトルの次元数に応じた次元の特徴量空間で超平面が規定され、特徴ベクトルからバイナリデータの要素が決定される。
【００６１】
図６に示すように、超平面Ｓは、法線ベクトルＶｎと、オフセットＤとにより規定される。法線ベクトルＶｎは、特徴量空間において超平面Ｓに垂直なベクトルである。オフセットＤは、特徴量空間の原点Ｏと超平面Ｓとの間の距離（ユークリッド距離）である。超平面Ｓは特徴量空間を２つの部分空間に二分する。
【００６２】
特徴ベクトルＶが与えられると、特徴ベクトルＶが指す特徴点Ｐがいずれの部分空間に位置するかを特定することができる。図６の例では、ハッチングがかけられた一方の部分空間にビット値０が割り当てられ、他方の部分空間にビット値１が割り当てられている。また、特徴点Ｐは、ビット値１が割り当てられている部分空間に位置する。この場合、超平面Ｓについて、特徴ベクトルＶに対応するバイナリデータの要素（ビット値）は１に決定される。
【００６３】
上記のように、超平面情報１０１ａには複数の超平面に関する情報が含まれている。そのため、１つの特徴ベクトルについて、図６に示した方法で超平面の数と同じ数のビット値が得られる。例えば、対称成分用にｎ個の超平面が設定されていれば、１つの特徴ベクトルからｎビットのバイナリデータ（対称成分用）が得られる。また、反対称成分用にｍ個の超平面が設定されていれば、同じ特徴ベクトルからｍビットのバイナリデータ（反対称成分用）が得られる。上記の方法で特徴ベクトルからバイナリデータが生成される。
【００６４】
上記の方法を定式化すると次のようになる。
特徴ベクトルをＶ、法線ベクトルをＶｎ、オフセットをＤと表現すると、超平面Ｓの方程式は下記の式（４）で与えられる。なお、Ｖ、Ｖｎはベクトル量であり、Ｄはスカラー量である。また、・は内積を表す。そして、超平面Ｓを用いて特徴ベクトルＶから得られるビット値をｂＳ（Ｖ）と表現すると、ビット値ｂＳ（Ｖ）は下記の式（５）で与えられる。また、ｋ個の超平面Ｓ１、Ｓ２、…、Ｓｋが与えられた場合、特徴ベクトルＶに対応するバイナリデータ（ビット列）ｂ（Ｖ）は下記の式（６）により与えられる。
【００６５】
Ｖ・Ｖｎ＋Ｄ＝０
…（４）
【００６６】
【数１】
0006646216.tif 000002
【００６７】
ｂ（Ｖ）＝｛ｂＳ１（Ｖ），ｂＳ２（Ｖ），…，ｂＳｎ（Ｖ）｝
…（６）
再び図３を参照する。バイナリデータ生成部１０２は、入力装置２００から特徴ベクトル（クエリ）の入力を受け付ける。入力装置２００は、例えば、認証用に指紋や静脈パターンなどの画像データを採取し、採取した画像データから特徴ベクトルを抽出する装置である。生体認証機能を搭載したＡＴＭ（Automatic Teller Machine）や入退出管理システムなどは入力装置２００の一例である。なお、入力装置２００は情報処理装置１００と一体であってもよい。
【００６８】
バイナリデータ生成部１０２は、超平面情報１０１ａ（図４を参照）を用いて、入力を受け付けた特徴ベクトルからバイナリデータを生成する（図６を参照）。このとき、バイナリデータ生成部１０２は、対称成分用に設定された超平面の組を利用してバイナリデータ（対称成分用）を生成し、反対称成分用に設定された超平面の組を利用してバイナリデータ（反対称成分用）を生成する。
【００６９】
バイナリデータ生成部１０２により生成された対称成分用のバイナリデータは、対称成分計算部１０３に入力される。また、バイナリデータ生成部１０２により生成された反対称成分用のバイナリデータは、反対称成分計算部１０４に入力される。以下では、説明の都合上、バイナリデータ生成部１０２により生成されたバイナリデータをバイナリデータ（クエリ）と表現する場合がある。
【００７０】
対称成分計算部１０３は、対称成分用のバイナリデータ（クエリ）と、登録情報１０１ｂ（図５を参照）に含まれる対称成分用のバイナリデータとの非類似度（対称成分）を計算する。また、反対称成分計算部１０４は、反対称成分用のバイナリデータ（クエリ）と、登録情報１０１ｂに含まれる反対称成分用のバイナリデータとの非類似度（反対称成分）を計算する。以下では、説明の都合上、登録情報１０１ｂに含まれるバイナリデータをバイナリデータ（レコード）と表現する場合がある。
【００７１】
対称成分計算部１０３及び反対称成分計算部１０４により計算された非類似度（対称成分、反対称成分）は、類否判定部１０５に入力される。類否判定部１０５は、対称成分と反対称成分とを統合した非類似度（両成分の和）を計算する。対称成分計算部１０３、反対称成分計算部１０４、及び類否判定部１０５は、登録情報１０１ｂに登録されている各データＩＤについて上述した非類似度に関する計算を実行する。
【００７２】
また、類否判定部１０５は、統合した非類似度が小さい順に所定数のバイナリデータ（レコード）を特定し、特定したバイナリデータ（レコード）に対応するデータＩＤを抽出する。そして、類否判定部１０５は、抽出したデータＩＤに対応する特徴ベクトルと、入力装置２００から受け付けた特徴ベクトルとの類似度を計算し、最も類似度が高い特徴ベクトルに対応するデータＩＤを特定する。
【００７３】
また、類否判定部１０５は、特定したデータＩＤを出力装置３００に出力する。出力装置３００は、ディスプレイ装置や、類否判定部１０５から出力されたデータＩＤに基づく処理を実行する他の情報処理装置である。なお、出力装置３００は、入力装置２００と一体でもよいし、情報処理装置１００と一体でもよい。
【００７４】
ここで、図７を参照しながら、対称成分計算部１０３、反対称成分計算部１０４、及び類否判定部１０５による非類似度の計算について、さらに説明する。図７は、第２実施形態に係る非類似度の計算方法について説明するための図である。
【００７５】
図７（Ａ）の例は、バイナリデータ（クエリ）であるビット列Ｂ１ｑ（Ｂ１ｑ＝００１１１０１１）と、バイナリデータ（レコード）であるビット列Ｂ１ｒ（Ｂ１ｒ＝０１１０１１１０）との間の非類似度（対称成分）を計算する方法を示している。
【００７６】
図７（Ａ）に示すように、対称成分計算部１０３は、２つのビット列Ｂ１ｑ、Ｂ１ｒの排他的論理和（ＸＯＲ）演算を実行し、その演算結果（０１０１０１０１）に含まれる１の数をカウントする（Population Count）。図７（Ａ）の例では、ＸＯＲ演算の結果に含まれる１の数は４となる。この数が非類似度の対称成分Ｈａｍｍ（Ｂ１ｑ，Ｂ１ｒ）である。
【００７７】
上記のように、非類似度の対称成分Ｈａｍｍ（Ｂ１ｑ，Ｂ１ｒ）（ハミング距離）は、ビット列Ｂ１ｑ、Ｂ１ｒの入れ替えによって結果が変わらない「対称性」を有する。つまり、Ｈａｍｍ（・，・）を図７（Ａ）に示した演算を表す関数とすると、Ｈａｍｍ（Ｂ１ｑ，Ｂ１ｒ）＝Ｈａｍｍ（Ｂ１ｒ，Ｂ１ｑ）が成り立つ。
【００７８】
図７（Ｂ）の例は、バイナリデータ（クエリ）であるビット列Ｂ２ｑ（Ｂ２ｑ＝０１００１１１０）と、バイナリデータ（レコード）であるビット列Ｂ２ｒ（Ｂ２ｒ＝００１１１０１１）との間の非類似度（反対称成分）を計算する方法を示している。
【００７９】
図７（Ｂ）に示すように、反対称成分計算部１０４は、ビット列Ｂ２ｑを反転（ＮＯＴ）し、反転値（１０１１０００１）を計算する。そして、反対称成分計算部１０４は、計算した反転値とビット列Ｂ２ｒとの論理積（ＡＮＤ）演算を実行し、その演算結果（００１１０００１）に含まれる１の数をカウントする（Population Count）。図７（Ｂ）の例では、ＡＮＤ演算の結果に含まれる１の数は３となる。この数が非類似度の反対称成分ＱＨａｍｍ（Ｂ２ｑ，Ｂ２ｒ）である。
【００８０】
上述したＨａｍｍ（・，・）とは異なり、非類似度の反対称成分ＱＨａｍｍ（Ｂ２ｑ，Ｂ２ｒ）は、ビット列Ｂ２ｑ、Ｂ２ｒの入れ替えによって結果が変わりうる「反対称性」を有する。つまり、ＱＨａｍｍ（・，・）を図７（Ｂ）に示した演算を表す関数とすると、ＱＨａｍｍ（Ｂ２ｑ，Ｂ２ｒ）≠ＱＨａｍｍ（Ｂ２ｒ，Ｂ２ｑ）が成り立つ（ＱＨａｍｍ（Ｂ２ｒ，Ｂ２ｑ）は１となる）。
【００８１】
類否判定部１０５は、対称成分計算部１０３が計算した非類似度の対称成分Ｈａｍｍ（Ｂ１ｑ，Ｂ１ｒ）と、反対称成分計算部１０４が計算した非類似度の反対称成分ＱＨａｍｍ（Ｂ２ｑ，Ｂ２ｒ）とを加算し、加算値を統合した非類似度ＸＨａｍｍとする。図７の例では、ＸＨａｍｍが７となる。
【００８２】
なお、Ｂ１ｑ、Ｂ１ｒ、Ｂ２ｑ、Ｂ２ｒは同じ特徴ベクトルから得られたバイナリデータである。また、対称成分計算部１０３、反対称成分計算部１０４、及び類否判定部１０５は、複数の超平面を利用して同じ特徴ベクトルから得られた複数のバイナリデータについて、それぞれ図７に示した非類似度ＸＨａｍｍの計算を実行する。
【００８３】
（反対称成分の特性）
ここで、図８を参照しながら、非類似度の反対称成分が有する特性（反対称性）について、さらに説明する。図８は、第２実施形態に係る非類似度の反対称成分が有する特性を超平面の一方向性によって解釈する方法について説明するための図である。
【００８４】
図８（Ａ）に示すように、Ｘ１、Ｘ２軸で規定される特徴量空間に４つの特徴点Ａ１、Ａ２、Ｂ１、Ｂ２と、超平面Ｓとが与えられた場合、超平面Ｓの左側にある特徴点Ａ１、Ｂ１はビット値０、右側にある特徴点Ａ２、Ｂ２はビット値１に対応付けられる。
【００８５】
非類似度の対称成分を「距離」とすると、特徴点Ｂ１、Ａ２の距離（Ｂ１  ＸＯＲ  Ａ２）は１、特徴点Ａ１、Ｂ２の距離（Ａ１  ＸＯＲ  Ｂ２）は１となる。つまり、超平面Ｓを跨ぐ特徴点間の移動には、距離１の移動コストがかかると解釈できる。また、超平面Ｓを跨ぐ方向によって移動コストは変化しない。
【００８６】
一方、非類似度の反対称成分を「距離」とすると、特徴点Ｂ１からＡ２へ向かう際の距離（ＮＯＴ（Ｂ１）  ＡＮＤ  Ａ２）は１、特徴点Ａ２からＢ１へ向かう際の距離（ＮＯＴ（Ａ２）  ＡＮＤ  Ｂ１）は０となる。また、特徴点Ｂ２からＡ１へ向かう際の距離（ＮＯＴ（Ｂ２）  ＡＮＤ  Ａ１）は０、特徴点Ａ１からＢ２へ向かう際の距離（ＮＯＴ（Ａ１）  ＡＮＤ  Ｂ２）は１となる。つまり、超平面Ｓの右側から左側へと向かう際の移動コストは０で済むが、逆向きに向かう際の移動コストは１かかると解釈できる。
【００８７】
上記のように、非類似度の反対称成分ＱＨａｍｍは、超平面Ｓの一方向性（距離０で移動できる方向を制限する性質）を表現していると理解できる。この一方向性は、例えば、重力により坂の上りと下りとで移動にかかる労力が異なることや、追い風と向かい風とで同じ距離を進むのにかかるエネルギーが異なることを表現するのに役立つ。第２実施形態では、非構造化データの採取環境が異なることで影響を受けやすい特徴ベクトルと、影響を受けにくい特徴ベクトルとの違いが上記の一方向性で表現されている。
【００８８】
（学習による超平面の決定方法）
ここで、図９を参照しながら、第２実施形態に係る超平面の決定方法について説明する。図９は、第２実施形態に係る超平面の決定方法について説明するための図である。
【００８９】
図９の例は、採取環境による影響を超平面の一方向性に反映させる方法として、非類似度の反対称成分ＱＨａｍｍを利用し、異なる採取環境で得た非構造化データのサンプルに基づいてバイナリデータの生成に用いる超平面の組を学習で決定する方法を開示する。なお、図９の例は、対称成分用のバイナリデータを生成する際に用いる超平面の組を学習で決定する方法も併せて開示している。以下、対称成分に関する超平面の組を超平面Ｓｅｔ＃１、反対称成分に関する超平面の組を超平面Ｓｅｔ＃２と表記する場合がある。
【００９０】
超平面Ｓｅｔ＃１、＃２を決定する際、図９（Ａ）に示すように、異なる環境で採取された多数の非構造化データから得られる特徴ベクトルが学習用サンプルとして利用される。例えば、指紋データなどの湿度条件に依存する非構造化データを対象とする場合、通常湿度（環境＝「通常」）の条件で採取された非構造化データと、乾燥状態（環境＝「乾燥」）で採取された非構造化データとに関する特徴ベクトルが利用される。
【００９１】
（Ａ）同じ提供者から異なる環境で複数の非構造化データが採取され、各非構造化データから特徴ベクトルが抽出される。（Ｂ、Ｃ）通常環境に対応する特徴ベクトルは、初期設定された超平面Ｓｅｔ＃１を用いてバイナリデータに変換される。また、通常環境に対応する特徴ベクトルは、初期設定された超平面Ｓｅｔ＃２を用いてバイナリデータに変換される。また、乾燥環境に対応する特徴ベクトルは、同じ超平面Ｓｅｔ＃２を用いてバイナリデータに変換される。
【００９２】
（Ｄ）超平面Ｓｅｔ＃１を用いて変換されたバイナリデータから、相互に非類似度の対称成分Ｈａｍｍ（対称距離）が計算され、その対称距離に基づいて、ある特徴ベクトルの近傍に位置する特徴ベクトルの集合が特定される（近傍探索）。（Ｆ）一方、通常環境に対応する特徴ベクトルについて特徴量空間上の類似度に基づく近傍探索が実施される。（Ｈ）そして、上記（Ｄ）の近傍探索による結果と、上記（Ｆ）の近傍探索による結果とが許容可能な範囲で一致するかが評価され、その評価の結果に応じて超平面Ｓｅｔ＃１が更新される。
【００９３】
（Ｅ）超平面Ｓｅｔ＃２を用いて変換されたバイナリデータのうち、通常環境に対応するバイナリデータと、乾燥環境に対応するバイナリデータとの間の非類似度の反対称成分ＱＨａｍｍ（反対称距離）が計算される。このとき、ＱＨａｍｍ（Ｂｑ，Ｂｒ）の第１入力値Ｂｑには乾燥環境に対応するバイナリデータが入力され、第２入力値Ｂｒには通常環境に対応するバイナリデータが入力される。つまり、第１入力値と第２入力値とにそれぞれ特定の環境が設定されている。
【００９４】
（Ｇ）一方、同一提供者から通常環境と乾燥環境とで提供された非構造化データに対応する特徴ベクトルのペアを示す情報が特定される。（Ｈ）そして、同一提供者に対応するバイナリデータ間の反対称距離が近く、異なる提供者に対応するバイナリデータ間の反対称距離が遠くなるほど高い評価となる評価基準を用いて超平面Ｓｅｔ＃２が評価される。そして、その評価の結果に応じて超平面Ｓｅｔ＃２が更新される。
【００９５】
なお、超平面Ｓｅｔ＃１の評価は、例えば、ある特徴ベクトルから近い所定数Ｎの特徴ベクトルについて、上記（Ｆ）の近傍探索の結果と、上記（Ｄ）の対称距離に基づく近傍探索の結果とが一致するかを基準とする。一方、超平面Ｓｅｔ＃２の評価は、上記（Ｅ）の反対称距離が閾値Ｔｈ以下の範囲に他の提供者に対応するバイナリデータが入らないことを基準とする。超平面Ｓｅｔ＃１、＃２を更新しながら、上記（Ｂ）から（Ｈ）の処理を繰り返し実行することで、上述したバイナリデータの生成に好適な超平面の組み合わせが得られる。
【００９６】
以上、情報処理装置１００の機能について説明した。
［２−３．処理の流れ］
次に、バイナリデータの登録処理、及び入力された非構造化データの特徴ベクトル（クエリ）に類似する特徴ベクトル（レコード）の検索処理について処理の流れを説明する。
【００９７】
（登録処理）
まず、図１０を参照しながら、バイナリデータの登録処理の流れについて説明する。図１０は、第２実施形態に係る登録処理の流れを示したフロー図である。
【００９８】
（Ｓ１０１）バイナリデータ生成部１０２は、入力装置２００から登録情報１０１ｂ（図５を参照）に登録される特徴ベクトルを取得する。
（Ｓ１０２）バイナリデータ生成部１０２は、超平面情報１０１ａ（図４を参照）を参照し、対称成分用の超平面に関する法線ベクトル及びオフセットの情報を用いて、Ｓ１０１で取得した特徴ベクトルからバイナリデータＢ１ｒを生成する（図６を参照）。
【００９９】
なお、特徴ベクトルをＶ、法線ベクトルをＶｎ、オフセットをＤと表現すると、超平面Ｓの方程式は上記の式（４）で与えられる。また、超平面Ｓを用いて特徴ベクトルＶから得られるビット値をｂＳ（Ｖ）と表現すると、ビット値ｂＳ（Ｖ）は上記の式（５）で与えられる。また、超平面Ｓ１、Ｓ２、…、Ｓｎが与えられると、特徴ベクトルＶに対応するバイナリデータｂ（Ｖ）は、上記の式（６）で与えられる。
【０１００】
（Ｓ１０３）バイナリデータ生成部１０２は、超平面情報１０１ａを参照し、反対称成分用の超平面に関する法線ベクトル及びオフセットの情報を用いて、Ｓ１０１で取得した特徴ベクトルからバイナリデータＢ２ｒを生成する（図６を参照）。
【０１０１】
（Ｓ１０４）バイナリデータ生成部１０２は、Ｓ１０２で生成した対称成分用のバイナリデータと、Ｓ１０３で生成した反対称成分用のバイナリデータとを登録情報１０１ｂに追加する。このとき、バイナリデータ生成部１０２は、Ｓ１０１で取得した特徴ベクトルの元データを示すデータＩＤと、その特徴ベクトルと、Ｓ１０２及びＳ１０３で生成したバイナリデータとを対応付けて登録情報１０１ｂに追加する。
【０１０２】
（Ｓ１０５）バイナリデータ生成部１０２は、登録処理を終了するかを判定する。登録対象の特徴ベクトルについて処理が完了し、登録処理を終了する場合、図１０に示した一連の処理は終了する。一方、未登録の特徴ベクトルがある場合、処理はＳ１０１へと進む。
【０１０３】
（検索処理）
次に、図１１及び図１２を参照しながら、検索処理の流れについて説明する。図１１は、第２実施形態に係る検索処理の流れを示した第１のフロー図である。図１２は、第２実施形態に係る検索処理の流れを示した第２のフロー図である。
【０１０４】
（Ｓ１１１）バイナリデータ生成部１０２は、検索キーとなる特徴ベクトルＶｑ（クエリ）を入力装置２００から取得する。
（Ｓ１１２）バイナリデータ生成部１０２は、超平面情報１０１ａ（図４を参照）を参照し、対称成分用の超平面に関する法線ベクトル及びオフセットの情報を用いて、Ｓ１１１で取得した特徴ベクトルＶｑからバイナリデータＢ１ｑを生成する（図６を参照）。
【０１０５】
（Ｓ１１３）バイナリデータ生成部１０２は、超平面情報１０１ａを参照し、反対称成分用の超平面に関する法線ベクトル及びオフセットの情報を用いて、Ｓ１１１で取得した特徴ベクトルＶｑからバイナリデータＢ２ｑを生成する（図６を参照）。
【０１０６】
（Ｓ１１４）対称成分計算部１０３及び反対称成分計算部１０４は、登録情報１０１ｂに登録されているバイナリデータＢ１ｒ、Ｂ２ｒの組の中から、未選択のバイナリデータＢ１ｒ、Ｂ２ｒの組を選択する。
【０１０７】
（Ｓ１１５）対称成分計算部１０３は、Ｓ１１２で生成されたバイナリデータＢ１ｑと、Ｓ１１４で選択されたバイナリデータＢ１ｒとの間の非類似度Ｈａｍｍ（Ｂ１ｑ，Ｂ１ｒ）（対称成分：図７（Ａ）を参照）を計算する。
【０１０８】
（Ｓ１１６）反対称成分計算部１０４は、Ｓ１１３で生成されたバイナリデータＢ２ｑと、Ｓ１１４で選択されたバイナリデータＢ２ｒとの間の非類似度ＱＨａｍｍ（Ｂ２ｑ，Ｂ２ｒ）（反対称成分：図７（Ｂ）を参照）を計算する。
【０１０９】
（Ｓ１１７）類否判定部１０５は、Ｓ１１５で計算された対称成分と、Ｓ１１６で計算された反対称成分の和（非類似度ＸＨａｍｍ）を計算する。
（Ｓ１１８）類否判定部１０５は、全てのバイナリデータＢ１ｒ、Ｂ２ｒを選択したか否かを判定する。全てのバイナリデータＢ１ｒ、Ｂ２ｒを選択し終えている場合、処理はＳ１１９へと進む。一方、未選択のバイナリデータＢ１ｒ、Ｂ２ｒがある場合、処理はＳ１１４へと進む。
【０１１０】
（Ｓ１１９）類否判定部１０５は、非類似度ＸＨａｍｍが小さい順にｋ個（ｋは１以上の所定数）のデータＩＤを特定する。つまり、類否判定部１０５は、登録情報１０１ｂを参照し、非類似度ＸＨａｍｍが小さい順に抽出したバイナリデータＢ１ｒ、Ｂ２ｒに対応するｋ個のデータＩＤを特定する。
【０１１１】
（Ｓ１２０）類否判定部１０５は、Ｓ１１９で特定したデータＩＤに対応する特徴ベクトルＶｒを登録情報１０１ｂから１つ取得する。
（Ｓ１２１）類否判定部１０５は、特徴ベクトルＶｑ、Ｖｒの類似度を計算する。
【０１１２】
（Ｓ１２２）類否判定部１０５は、Ｓ１１９で特定した全てのデータＩＤに対応する特徴ベクトルを取得し終えたか否かを判定する。全てのデータＩＤに対応する特徴ベクトルを取得し終えた場合、処理はＳ１２３へと進む。一方、未取得の特徴ベクトルがある場合、処理はＳ１２０へと進む。
【０１１３】
（Ｓ１２３）類否判定部１０５は、Ｓ１２１で計算した類似度の中から最大の類似度を特定し、最大の類似度に対応するデータＩＤを出力装置３００に出力する。Ｓ１２３の処理が完了すると、図１１及び図１２に示した一連の処理は終了する。
【０１１４】
以上、情報処理装置１００が実行する処理の流れについて説明した。
上記のように、超平面の一方向性に環境の変化による影響を反映させ、反対称性を有する非類似度の評価を通じて環境変化による影響を類似検索に加味することで、環境変化に起因する検索誤差を抑制することが可能になる。
【０１１５】
以上、第２実施形態について説明した。
【符号の説明】
【０１１６】
１０  情報処理装置
１１  記憶部
１２  演算部
２１  登録データ
２２ａ  第１の登録特徴データ
２２ｂ  第２の登録特徴データ
３１  対象データ
３２ａ  第１の対象特徴データ
３２ｂ  第２の対象特徴データ
３３  第１の演算処理
３４  第１の非類似度
３５  第２の演算処理
３６  第２の非類似度
３７  非類似度
【図１】
0006646216.tif 000003
【図２】
0006646216.tif 000004
【図３】
0006646216.tif 000005
【図４】
0006646216.tif 000006
【図５】
0006646216.tif 000007
【図６】
0006646216.tif 000008
【図７】
0006646216.tif 000009
【図８】
0006646216.tif 000010
【図９】
0006646216.tif 000011
【図１０】
0006646216.tif 000012
【図１１】
0006646216.tif 000013
【図１２】
0006646216.tif 000014