JP2013206187A - 情報変換装置、情報検索装置、情報変換方法、情報検索方法、情報変換プログラム、情報検索プログラム - Google Patents
情報変換装置、情報検索装置、情報変換方法、情報検索方法、情報変換プログラム、情報検索プログラム Download PDFInfo
- Publication number
- JP2013206187A JP2013206187A JP2012075189A JP2012075189A JP2013206187A JP 2013206187 A JP2013206187 A JP 2013206187A JP 2012075189 A JP2012075189 A JP 2012075189A JP 2012075189 A JP2012075189 A JP 2012075189A JP 2013206187 A JP2013206187 A JP 2013206187A
- Authority
- JP
- Japan
- Prior art keywords
- symbol
- data
- hamming distance
- conversion
- vector
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Collating Specific Patterns (AREA)
Abstract
【課題】特徴量ベクトルをバイナリ列に変換した際の検索精度を向上する。
【解決手段】情報検索装置1は、ハミング距離を用いた検索処理の対象となるデータの特徴量ベクトルを、バイナリ記号とのハミング距離を0とするワイルドカード記号と前記バイナリ記号とを含む記号列に変換する。そして、情報検索装置1は、クエリデータをバイナリ化し、バイナリ化したクエリデータとのハミング距離が所定の値以下となる記号列を検索することで、クエリデータの近傍データを検索する。
【選択図】図1
【解決手段】情報検索装置1は、ハミング距離を用いた検索処理の対象となるデータの特徴量ベクトルを、バイナリ記号とのハミング距離を0とするワイルドカード記号と前記バイナリ記号とを含む記号列に変換する。そして、情報検索装置1は、クエリデータをバイナリ化し、バイナリ化したクエリデータとのハミング距離が所定の値以下となる記号列を検索することで、クエリデータの近傍データを検索する。
【選択図】図1
Description
本発明は、情報変換装置、情報検索装置、情報変換方法、情報検索方法、情報変換プログラム、情報検索プログラムに関する。
従来、データベースに登録された複数のデータから、入力されたクエリデータとの類似度や関連の強さが所定の条件を満たすデータを検索する技術が知られている。このような技術の一例として、各データ間の類似度や関連の強さを特徴量ベクトルの多次元空間における距離で示し、クエリデータとの距離が閾値以内となるデータや、クエリデータに近い方から所定の数のデータを選択する近傍検索の技術が知られている。
図12は、従来の近傍検索を説明するための図である。例えば、近傍検索を実行する情報処理装置は、図12中の白丸で示すように、検索対象となるデータの特徴量ベクトルを記憶する。そして、情報処理装置は、図12中(A)で示すクエリデータを取得すると、クエリデータと特徴量ベクトルとの距離を算出し、図12中(B)に示すように、クエリデータとの距離が所定の範囲内となるデータをクエリデータの近傍データとする。
ここで、データベースに多数のデータが登録されている際に、データベースに登録された全てのデータとクエリデータとの距離を算出した場合は、近傍検索に要する計算コストが増大する。このため、特徴量ベクトル空間のインデックスをあらかじめ作成したり、特定の特徴量ベクトルからの距離を利用したインデックスを用いて、検索対象とするデータを限定することで、近傍検索を実行するための計算コストを削減する技術が知られている。しかし、これらの方法は、特徴量ベクトルの次元数が増大すると、計算コストを削減することができなくなる。
そこで、検索処理における計算コストを削減するため、検索結果の厳密性を緩和し、クエリデータに対して近似的な類似データの集合を取得することで、検索処理を高速化する方法が知られている。例えば、バイナリ列同士の一致検索やハミング距離の計算は、ベクトル間の距離の計算よりも高速に行える。そこで、特徴量ベクトル間の距離関係を保ちつつ特徴量ベクトルをバイナリ列に変換し、クエリデータを変換したバイナリ列との一致検索やハミング距離を計算することで、計算コストを削減する方法が知られている。
ここで、特徴量ベクトルをバイナリ列に変換する方法としては、ランダムな射影関数を適用してデータベースの特徴量ベクトルをバイナリ化する方法が知られている。また、元の特徴量ベクトル同士の距離関係を保存したまま変換するため、予め得られる登録データを利用して、データの分布を考慮した射影関数を決定し、決定した射影関数で特徴量ベクトルをバイナリ化する方法が知られている。
以下、このような特徴量ベクトルをバイナリ列に変換し、クエリデータに類似するデータを検索する方法の一例について説明する。図13は、バイナリ化による検索処理を説明するための図である。なお、図13に示す例では、図13中の白丸で示す特徴量ベクトルを、2桁のバイナリ列に変換する方法について説明する。
例えば、情報処理装置は、図13中の白丸で示す特徴量ベクトルを記憶する。ここで、情報処理装置は、射影関数を適用し、図13中の点線よりも上の範囲に含まれる特徴量ベクトルについては、バイナリ列の1桁目を「1」とし、点線よりも下の範囲に含まれる特徴量ベクトルについては、バイナリ列の1桁目を「0」とする。また、情報処理装置は、図13中の実線よりも右の範囲に含まれる特徴量ベクトルについては、バイナリ列の2桁目を「1」とし、実線よりも左の範囲に含まれる特徴量ベクトルについては、バイナリ列の2桁目を「0」とする。
この結果、各特徴量ベクトルは、「01」、「11」、「00」、「10」のいずれかに変換される。そして、情報処理装置は、図13中(C)に示すように、クエリデータを変換したバイナリ列が「11」となる場合は、ハミング距離が「0」となるバイナリ列、すなわちバイナリ列が「11」となる特徴量ベクトルをクエリデータの近傍データとする。
M. Datar, N. Immorlica, P. Indyk, V. S. Mirrokni: Locality-Sensitive Hashing Scheme Based on p-Stable Distributions, Proceedings of the twentieth annual symposium on Computational geometry (SCG) 2004
Y. Weiss, A. Torralba, R. Fergus: Spectral Hashing, Advances in Neural Information Processing Systems (NIPS) 2008
B. Kulis, T. Darrell: Learning to Hash with Binary Reconstructive Embeddings, Advances in Neural Information Processing Systems (NIPS) 2009
Norouzi, D. Fleet: Minimal Loss Hashing for Compact Binary Codes, International Conference in Machine Learning (ICML) 2011
しかし、上述した特徴量ベクトルをバイナリ列に変換する技術では、1つの特徴量ベクトルを1つのバイナリ列にマッピングするので、類似する特徴量ベクトルについてのバイナリ列の距離が離れてしまい、検索漏れが発生するという問題がある。
図14は、従来の問題を説明するための図である。例えば、情報処理装置は、図14中(D)に示すクエリデータが入力された場合は、図14中右側の斜線で示すように、バイナリ列が「11」となる特徴量ベクトルのデータを抽出する。しかし、情報処理装置は、図14中右側の白丸で示すように、クエリデータの近傍となる特徴量ベクトルであって、バイナリ列が「11」にならない特徴量ベクトルを抽出しない。この結果、情報処理装置は、検索漏れを生じさせてしまう。
本発明は、1つの側面では、特徴量ベクトルをバイナリ列に変換した際の検索精度を向上させる。
1つの側面では、ハミング距離を用いた検索処理の対象となるデータの特徴量ベクトルを、バイナリ記号とのハミング距離を0とするワイルドカード記号と前記バイナリ記号とを含む記号列に変換する情報変換装置である。
1つの側面では、特徴量ベクトルをバイナリ列に変換した際の検索精度を向上させる。
以下に添付図面を参照して本願に係る情報変換装置、情報検索装置、情報変換方法、情報検索方法、情報変換プログラム、情報検索プログラムについて説明する。
以下の実施例1では、図1を用いて、バイナリ化した特徴量ベクトルを用いて、クエリデータの近傍データを検索する情報検索装置について説明する。図1は、実施例1に係る情報検索装置の機能構成を説明するための図である。図1に示す例では、情報検索装置1は、特徴量ベクトル記憶部10、記号列データインデックス記憶部11、変換関数学習部12、特徴量変換部13、検索部14を有する。
また、情報検索装置1は、クエリデータを入力するクライアント装置2と接続されている。そして、情報検索装置1は、クライアント装置2からクエリデータを受信すると、受信したクエリデータの近傍データを検索し、検索した近傍データをクライアント装置2へ送信する。ここで、情報検索装置1が検索対象とするデータは、例えば、画像や音声などのデータであり、指紋のパターンや静脈のパターンを用いた生体認証における生体データである。
図2は、生体認証の一例を説明するための図である。なお、図2に示す例では、利用者のID(Identification)等の情報が入力されず、検索対象となる生体データの絞込みを行わないIDレスの1:N認証における処理を示す。図2に示すように、情報検索装置1は、複数の利用者が登録した登録生体データを複数記憶する。
そして、情報検索装置1は、クライアント装置2からクエリデータとして、生体データが入力されると、入力された生体データの特徴量を示す特徴量ベクトルを抽出し、抽出した特徴量ベクトルと類似する特徴量ベクトルを有する登録生体データを検索する。すなわち、情報検索装置1は、クエリデータを入力した利用者の登録生体データが登録されているか否かを判別する。
また、情報検索装置1は、登録生体データの特徴量ベクトルを変換した記号列と、クエリデータとして入力された生体データにおける特徴量ベクトルをバイナリ化した記号列とのハミング距離を算出する。そして、情報検索装置1は、ハミング距離が所定の閾値以下となる登録生体データを検索対象の候補として抽出する。その後、情報検索装置1は、検索した登録生体データとクエリデータとして入力された生体データとの厳密なマッチング処理を実行し、実行結果を出力する。
このように、情報検索装置1は、検索対象となる登録生体データの特徴を示す特徴量ベクトルを記号列に変換し、クエリデータの記号列とのハミング距離を算出することにより、検索対象とするデータの絞込みを行う。そして、情報検索装置1は、絞り込んだデータとクエリデータとのマッチングを行うことで、生体認証におけるマッチングを行う。
なお、入力された生体データや登録生体データが画像である場合には、特徴量ベクトルは、例えば、画像中の特定領域における隆線の方向や長さ、勾配、隆線の終端や分岐などの特徴的な点の密度や座標の数値をベクトル化したものとなる。また、入力された生体データや登録生体データが音声である場合には、特徴量ベクトルは、例えば、周波数成分の分布、強度、ピーク値などの数値をベクトル化したものとなる。
ここで、検索対象となる登録生体データを「0」または「1」からなるバイナリ列に変換した場合には、特徴量ベクトル同士の距離関係が反映されない場合がある。そこで、情報検索装置1は、バイナリ記号とのハミング距離が「0」となるワイルドカード記号とバイナリ記号とを含む記号列に変換する。そして、情報検索装置1は、バイナリ記号とワイルドカード記号とを含む記号列と、クエリデータの特徴量ベクトルを変換した記号列とのハミング距離が、所定の閾値以下となる登録生体データを検索対象の候補として検索することで、検索精度を向上させる。
以下、図1に示す情報検索装置1が実行する処理について具体的に説明する。特徴量ベクトル記憶部10は、登録生体データの特徴量ベクトルを記憶する。具体的には、特徴量ベクトル記憶部10は、登録生体データの特徴量ベクトルと、登録生体データを登録した利用者の識別子であるデータIDとを対応付けて記憶する。
ここで、図3を用いて、特徴量ベクトル記憶部10が記憶する情報の一例について説明する。図3は、特徴量ベクトル記憶部が記憶する情報の一例を説明するための図である。例えば、図3に示す例では、特徴量ベクトル記憶部10は、データID「1」と複数の特徴量ベクトルとして、太字の「a」、「b」、「c」を対応付けて記憶する。なお、図3では省略したが、特徴量ベクトル記憶部10は、データID「1」と対応付けて、他の特徴量ベクトルを記憶する。また、特徴量ベクトル記憶部10は、他のデータIDと対応付けた特徴量ベクトルを記憶する。
このように、特徴量ベクトル記憶部10は、複数の登録生体データの特徴量ベクトルを、データIDごと、すなわち、登録生体データを登録した利用者ごとに記憶する。以下の説明では、同一のデータIDに対応付けられた特徴量ベクトル、すなわち、同一の利用者が登録した登録生体データの特徴量ベクトルを、同一のクラスに属する特徴量ベクトルと記載する。
図1に戻って、記号列データインデックス記憶部11は、所定の変換関数を用いて特徴量ベクトルを変換した記号列であって、バイナリ記号とワイルドカード記号とを含む記号列とデータIDとを対応付けて記憶する。以下、図4を用いて、記号列データインデックス記憶部11が記憶する情報の一例について説明する。
図4は、記号列データインデックス記憶部が記憶する情報の一例を説明するための図である。例えば、図4に示す例では、記号列データインデックス記憶部11は、データID「1」と対応付けて、記号列「01*101*0110…」を記憶する。ここで、記号列中の「*」は、ワイルドカード記号である。
なお、図4では記載を省略したが、記号列データインデックス記憶部11は、データID「1」と対応付けて、他にも複数の記号列を記憶する。すなわち、記号列データインデックス記憶部11は、特徴量ベクトル記憶部10がデータIDと対応付けて記憶する特徴量ベクトルを、ぞれぞれ変換した複数の記号列を、データIDごとに記憶する。
図1に戻って、変換関数学習部12は、特徴量ベクトル記憶部10が記憶する特徴量ベクトルをバイナリ記号とワイルドカード記号とを含む記号列に変換し、変換後の記号列を記号列データインデックス記憶部11に格納する。
具体的には、変換関数学習部12は、あるクラスに属する特徴量ベクトルのある成分が、異なるクラスの特徴量ベクトルとの境界から所定の範囲内に収まる場合は、この成分をワイルドカード記号に変換する変換関数を生成する。また、変換関数学習部12は、あるクラスに属する特徴量ベクトルのある成分が、異なるクラスの特徴量ベクトルとの境界から所定の範囲内に収まらない場合は、この成分の値に応じたバイナリ記号に変換する変換関数を生成する。
詳細には、変換関数学習部12は、特徴量ベクトルと所定の変換行列との積を算出し、算出した積のある成分が所定の範囲内に含まれる場合には、この成分をワイルドカード記号に変換する変換関数を生成する。また、変換関数学習部12は、特徴量ベクトルと所定の変換行列との積を算出し、算出した積のある成分が所定の範囲内に含まれない場合には、この成分の値に応じたバイナリ記号に変換する変換関数を生成する。
そして、変換関数学習部12は、生成した変換関数を用いて、特徴量ベクトル記憶部10が記憶する特徴量ベクトルを記号列に変換し、変換後の記号列を記号列データインデックス記憶部11に格納する。
なお、変換関数学習部12は、特徴量ベクトル記憶部10が予め記憶する特徴量ベクトルを用いて、変換関数の生成を行う。具体的には、変換関数学習部12は、特徴量ベクトル記憶部10が記憶する特徴量ベクトルを2つ抽出し、一方をクエリデータとみなし、もう一方を検索対象となるデータの特徴量ベクトルとみなす。
そして、変換関数学習部12は、抽出した2つの特徴量ベクトル同士のユークリッド距離(ノルム)を算出する。また、変換関数学習部12は、所定の変換関数を用いて、抽出した物理量ベクトルを記号列に変換し、変換後の記号列におけるハミング距離を算出する。そして、変換関数学習部12は、算出したユークリッド距離とハミング距離とに基づいて、物理量ベクトルを変換した変換関数を評価する。その後、変換関数学習部12は、変換関数の評価結果に基づいて、変換関数が有するパラメータを変更する。
また、変換関数学習部12は、再度2つの特徴量ベクトルを抽出し、パラメータを変更した変換関数を用いて、抽出した特徴量ベクトルを記号列に変換する。また、変換関数学習部12は、再度抽出した物理量ベクトルのユークリッド距離と記号列におけるハミング距離とに基づいて、変換関数を評価し、評価結果に基づいて、変換関数が有するパラメータを変更する。
そして、上述した処理を複数回繰り返すことにより、変換関数学習部12は、変換関数が有するパラメータを最適化する。その後、変換関数学習部12は、パラメータを最適化した変換関数を用いて、特徴量ベクトル記憶部10が記憶する特徴量ベクトルを記号列に変換し、変換後の記号列を記号列データインデックス記憶部11に格納する。
次に、図5、図6を用いて、変換関数学習部12が生成する変換関数について説明する。まず、図5を用いて、変換関数がワイルドカード記号に変換する特徴量ベクトルの成分について説明する。
図5は、変換関数がワイルドカード記号に変換する成分を説明するための図である。なお、図5に示す例では、2次元の特徴量ベクトルを記号列に変換する例を記載した。また、図5に示す例では、それぞれ異なるクラスに属する特徴量ベクトルを異なる斜線で示した。また、図5中では、変換行列Wと特徴量ベクトルxとの積が「0」となる境界線を直線で示した。
例えば、従来の方法では、図5中の直線よりも右側の範囲に含まれる特徴量ベクトルを記号列「0」に変換し、図5中の直線よりも左側の範囲に含まれる特徴量ベクトルを記号列「1」に変換する。しかし、このような閾値による画一的な変換を行った場合には、異なるクラスの特徴量ベクトルとの境界に存在する特徴量ベクトル、すなわち境界線の近傍に存在する特徴量ベクトルを、同一クラスの特徴量ベクトルとは異なる記号列に変換してしまう。この結果、従来の方法では、異なるクラスの特徴量ベクトルとの境界に存在する特徴量ベクトルの検索漏れが発生する。
そこで、情報検索装置1は、変換行列Wと特徴量ベクトルxとの積が「0」となる境界線から所定の範囲内に含まれる特徴量ベクトルを、ワイルドカード記号「*」に変換する。ここで、ワイルドカード記号「*」は、ハミング距離の算出において、バイナリ記号「1」または「0」との距離が「0」であると判断される。このため、情報検索装置10は、変換行列Wと特徴量ベクトルxとの積が「0」となる境界線の近傍となる特徴量ベクトルを検索結果に含めるため、検索漏れを防ぐことができる。
例えば、図5中の薄い網掛けで示す特徴量ベクトルをクラスAの特徴量ベクトルとし、濃い網掛けで示す特徴量ベクトルをクラスBの特徴量ベクトルとする。すると、クラスAの特徴量ベクトルの多くは、記号列「0」に変換され、クラスBの特徴量ベクトルとの境界に近い特徴量ベクトルは、ワイルドカード記号「*」に変換される。このため、情報検索装置10は、クエリデータを変換した記号列が「0」である際に、記号列「0」に変換された特徴量ベクトルだけではなく、記号列「*」に変換した特徴量ベクトルも検索結果に含める。この結果、情報検索装置10は、クラスAに属する特徴量ベクトルの検索漏れを防ぐことができる。
次に、図6を用いて、変換関数学習部12が変換関数を繰り返し評価し、パラメータを変更することによって、変換関数を最適化する処理について説明する。図6は、記号列間の距離関係が保たれるように変換関数を更新する処理を説明するための図である。図6に示す例では、図5と同様に、それぞれ異なるクラスに属する2次元の特徴量ベクトルを異なる斜線で示した。また、図6に示す例では、3つの閾値を用いて、2次元の特徴量ベクトルを3桁の記号列に変換する例について記載した。
図6に示すように、初期状態の変換関数は、各クラスに属する特徴量ベクトルを記号列に変換する境界線が各クラスの特徴量ベクトルを上手く分割することができない。そこで、変換関数学習部12は、任意の2つの特徴量ベクトルを抽出し、抽出した特徴量ベクトルのユークリッド距離と、特徴量ベクトルを変換した記号列のハミング距離とに応じて、変換関数を評価する。
具体的には、変換関数学習部12は、特徴量ベクトル同士のユークリッド距離が短い際に、変換後の記号列におけるハミング距離を短くし、特徴量ベクトル同士のユークリッド距離が長い際に、変換後の記号列におけるハミング距離が長くなるように変換関数を更新する。また、抽出した特徴量ベクトルが同一のクラスに属する場合は、特徴量ベクトル同士のユークリッド距離が短くなる。このため、変換関数学習部12は、特徴量ベクトル同士のユークリッド距離が短い場合に、記号列におけるハミング距離を短くした場合は、同一クラスに属する特徴量ベクトルを変換した記号列におけるハミング距離を短くできる。
この結果、変換関数学習部12は、図6の右側に示すように、各クラスに属する特徴量ベクトルが境界線によって上手く分割できるように、変換関数を更新する。さらに、変換関数学習部12は、変換関数を更新する際に、ワイルドカード記号「*」に変換する範囲の更新も行う。この結果、変換関数学習部12は、特徴量ベクトルを記号列に変換し、クエリデータを変換した記号列とのハミング距離を算出する際の検索漏れを防ぐことができる。
また、変換関数学習部12は、特徴量ベクトル記憶部10が記憶する特徴量ベクトルを用いて、変換関数を更新する。このため、変換関数学習部12は、検索対象となるデータに対して最適化された変換関数を求めることができる。なお、変換関数学習部12は、抽出した特徴量ベクトル同士のユークリッド距離や、抽出した特徴量ベクトルを変換した記号列のハミング距離だけではなく、抽出した特徴量ベクトルが属するクラスを考慮して、変換関数の最適化を行ってもよい。
次に、変換関数学習部12が所定の変換関数を更新し、最適化した変換関数を生成する処理の具体例について説明する。なお、以下の説明では、変換関数学習部12が生成する変換関数について説明し、その後、変換関数の評価結果に基づいて、変換関数の各パラメータを変更し、変換関数を最適化する処理について説明する。
まず、変換関数隔週部12が生成する変換関数について説明する。例えば、変換関数学習部12は、特徴量ベクトルをバイナリ記号とワイルドカード記号とを有する記号列に変換する場合は、変換後の記号列cは、以下の式(1)で表せる。なお、式(1)中のpは、記号列の記号数(次元数)である。
次に、記号列ciとcjの記号列間のハミング距離mijを以下の式(2)のように定義する。ここで、式(2)中のs(ck i,ck j)は、以下の式(3)で表される値であり、ckとは、記号列cにおけるk番目の記号である。また、以下の式においては、記号列cを太字で示した。
ここで、変換関数には、様々なバリエーションが考えられるが、例えば、変換関数学習部12は、以下の式(4)に示す変換関数を設定する。ここで、ukは、記号列uにおけるk番目の値である。なお、以下の式においては、記号列uを太字で示した。
また、記号列uは、以下の式(5)で定義される記号列である。なお、式(5)中の太字のxはn次元の特徴量ベクトルであり、太字のWは行数n、列数pで表される変換行列である。また、式(5)中の太字のa1、a2、b1、b2は、p次元のベクトルである。なお、a1、a2、b1、b2は、ワイルドカード記号に変換する範囲を定める変換関数のパラメータであり、各要素が「0」以上の値を有するものとする。また、太字のh+、h−は、各要素が「0」または「1」となるp次元のベクトルであり、太字のg+、g−は、各要素が「0」または「−1」となるp次元のベクトルである。
すなわち、変換関数学習部12は、式(5)における各項において、変換行列と特徴量ベクトルとの積に各パラメータを考慮した値が最大となるh+、h−、g+、g−を求め、求めたh+、h−、g+、g−を用いてベクトルuを算出する。
ここで、図7は、変換関数の一例を説明するための図である。なお、図7には、式(5)で示される記号列uを式(4)で示す変換関数で変換した際に、2次元の特徴量ベクトルが「0」、「1」、「*」のいずれに変換されるかを示した。詳細には、式(5)中における特徴量ベクトルと変換行列との積が定めるバイナリ記号と、式(5)中における各パラメータa1、a2、b1、b2が定めるワイルドカード記号に変換する範囲について記載した。
例えば、図7に示すように、−Wx−a1+b1=0を満たす範囲からWx+a1+b1=0を満たす範囲に含まれる特徴量ベクトルは、バイナリ記号「1」に変換される。また、Wx+a1+b1=0を満たす範囲からWx−a2−b2=0を満たす範囲に含まれる特徴量ベクトルは、ワイルドカード記号「*」に変換される。すなわち、特徴量ベクトルと変換行列との積であるWxが0となる境界から所定の範囲に含まれる特徴量ベクトルをワイルドカード記号「*」に変換する。
また、Wx−a2−b2=0を満たす範囲から−Wx+a2−b2=0を満たす範囲に含まれる特徴量ベクトルは、バイナリ記号「0」に変換される。また、−Wx−a1+b1が0以下となる範囲や、−Wx+a2−b2が0以上となる範囲に含まれる特徴量ベクトルは、ワイルドカード記号「*」に変換される。
次に、変換関数学習部12が変換関数の評価結果に基づいて、変換関数の各パラメータa1、a2、b1、b2を変更し、変換関数を最適化する処理について説明する。例えば、情報検索装置1が用いる変換関数は、元の特徴量ベクトル空間における距離関係をできるだけ保存したまま、特徴量ベクトルを記号列に変換する変換関数が望ましい。
そこで、例えば、変換関数学習部12は、以下の式(6)で示す評価関数を用いて、変換関数を評価することができる。ここで、式(6)中のdijは、特徴量ベクトルiと特徴量ベクトルjとのユークリッド距離である。また、式(6)中のSは、特徴量ベクトル記憶部10が記憶する特徴量ベクトルのデータ集合である。
つまり、変換関数学習部12は、式(6)を用いて、特徴量空間でのユークリッド距離の関係と記号列間の距離の関係とが似ているほどよいと変換関数を評価する。また、他の例として、変換関数学習部12は、以下の式(7)を用いて、変換関数を評価する。ここで、式(7)中のl2(mij,tij)は、以下の式(8)で表される値である。また、式(7)、式(8)中のtは特徴量ベクトルiと特徴量ベクトルjとが同一のクラスに属する特徴量ベクトルである場合は、「1」となり、異なるクラスであれば「0」となる変数である。
つまり、変換関数学習部12は、式(7)および式(8)を用いて、同一クラスの特徴量ベクトルについては記号列間のハミング距離が「ρ」以内となるようにし、異なるクラスの特徴量ベクトルについては、記号列間のハミング距離が「ρ」以上となるようにする。以下の説明では、変換関数学習部12が式(7)および式(8)を用いて変換関数を評価する例について説明する。
ここで、式(7)および式(8)は、同一クラスの特徴量ベクトルについては記号列間のハミング距離が「ρ」以内となるようにし、異なるクラスの特徴量ベクトルについては、記号列間のハミング距離が「ρ」以上となる変換関数に対して、より低い値となる。このため、変換関数学習部12は、評価関数である式(7)の値が小さくなるように、変換行列Wおよび変換関数のパラメータa1、a2、b1、b2を最適化すればよい。
ここで、評価関数である式(7)は、不連続な関数である。このため、式(7)の上限値を最小化する場合について考える。例えば、変換関数学習部12は、特徴量ベクトルiを登録データとし、特徴量ベクトルjをクエリデータと考える。ここで、クエリデータをバイナリ列に変換する変換式を以下の式(9)で定義する。なお、式(9)中のxqは、クエリデータとなる特徴量ベクトルである。
すると、評価関数である式(7)の上限値は、以下の式(10)で表すことができる。
ここで、式(10)の第1項目について考えると、l2(mij,tij)は、hi +、hi −、hj、gi +、gi −とは無関係な値であるので、以下の式(11)のように書くことができる。
ここで、式(11)に示す演算を満たすhi +、hi −、hj、gi +、gi −をそれぞれの記号上に波線を付した記号で表すと、式(10)の右辺は、以下の式(12)で表すことができる。
ただし、hi +、hi −、hj、gi +、gi −のmax演算については、以下の式(13)〜式(17)で示す変換を行った。
続いて、変換関数学習部12が確率的勾配降下法を用いて、式(12)の変換行列と各パラメータを最適化する。具体的には、変換関数学習部12は、以下の式(18)〜式(22)を用いて、変換行列Wおよび変換関数のパラメータa1、a2、b1、b2を順次更新し、式(7)の上限値を最小化する。なお、式(18)〜式(22)中のηは、学習率を示すパラメータである。
上述したように、変換関数学習部12は、特徴量ベクトル記憶部10から特徴量ベクトルを抽出し、式(18)〜式(22)を計算する処理を所定の回数だけ繰り返す。そして、変換関数学習部12は、変換行列Wおよび変換関数のパラメータa1、a2、b1、b2を順次更新することで、式(7)の上限値を最小化する変換行列およびパラメータを算出する。すなわち、変換関数学習部12は、変換行列Wおよび変換関数のパラメータa1、a2、b1、b2を最適化する。
その後、変換関数学習部12は、最適化した変換行列Wおよび変換関数のパラメータa1、a2、b1、b2を用いて、特徴量ベクトル記憶部10が記憶する特徴量ベクトルを記号列に変換し、変換した記号列を記号列データインデックス記憶部11に格納する。また、変換関数学習部12は、最適化した変換行列Wを特徴量変換部13に通知する。
なお、上述した説明では、確率的勾配降下法を用いて変換行列Wおよび変換関数のパラメータa1、a2、b1、b2を最適化する例について説明したが、変換関数学習部12は、他の最適化アルゴリズムを用いて、式(7)の上限値を最小化してもよい。
また、変換関数学習部12は、上述した処理を所定の回数だけ繰り返すことにより、変換行列Wおよび変換関数のパラメータa1、a2、b1、b2を最適化した。しかしながら、変換関数学習部12は、所定の条件を満たした際に、変換行列Wおよび変換関数のパラメータa1、a2、b1、b2を最適化したと判別してもよい。例えば、変換関数学習部12は、式(7)で示される評価関数の値が所定の閾値以下となった際に、変換行列Wおよび変換関数のパラメータa1、a2、b1、b2を最適化したと判別してもよい。
図1に戻って、特徴量変換部13は、クライアント装置2からクエリデータを受信すると、受信したクエリデータから特徴量ベクトルを生成する。また、特徴量変換部13は、変換関数学習部12から受信した変換行列Wと、式(9)とを用いて、クエリデータをバイナリ列bqに変換する。そして、特徴量変換部13は、特徴量ベクトルとバイナリ列bqとを検索部14に送信する。
検索部14は、特徴量変換部13から特徴量ベクトルとバイナリ列bqとを受信した場合には、以下の処理を実行する。まず、検索部14は、受信したバイナリ列bqと記号列データインデックス記憶部11が記憶する各記号列とのハミング距離を算出する。例えば、検索部14は、受信したバイナリ列bqが「110100」であり、記号列が「110110」である場合には、ハミング距離「1」を算出する。また、検索部14は、ワイルドカード記号とバイナリ記号とのハミング距離を「0」とするので、受信したバイナリ列bqが「110100」であり、記号列が「1001*0」である場合には、ハミング距離「1」を算出する。
そして、検索部14は、ハミング距離が所定の値以下となる記号列、すなわち、クエリデータの近傍候補となる特徴量ベクトルの記号列を抽出する。また、検索部14は、抽出した記号列の元となる特徴量ベクトルを特徴量ベクトル記憶部10から取得し、抽出した特徴量ベクトルと、特徴量ベクトル記憶部10から取得した特徴量ベクトルとを比較する。
その後、検索部14は、特徴量ベクトル記憶部10から取得した特徴量ベクトルに、特徴量変換部13から取得した特徴量ベクトルと一致する特徴量ベクトルや、ユークリッド距離が所定の閾値以下となる特徴量ベクトルが存在する場合は、以下の処理を実行する。すなわち、検索部14は、クエリデータが登録生体データに一致する旨をクライアント装置2へ送信する。
一方、検索部14は、特徴量ベクトル記憶部10から取得した特徴量ベクトルに、特徴量変換部13から取得した特徴量ベクトルと一致する特徴量ベクトルや、ユークリッド距離が所定の閾値以下となる特徴量ベクトルが存在しない場合は、以下の処理を実行する。すなわち、検索部14は、クエリデータが登録生体データに一致しない旨をクライアント装置2へ送信する。この結果、クライアント装置2は、クエリデータを入力した利用者の生体認証を行うことができる。
ここで、図8を用いて、検索部14がクエリデータの近傍候補となる特徴量ベクトルの記号列を抽出する処理について説明する。図8は、クエリデータの近傍候補となる特徴量ベクトルの記号列を抽出する処理を説明するための図である。なお、図8に示す例では、情報検索装置1は、特徴量ベクトルを「11」、「10」、「00」、「01」のいずれかの記号列に変換するとともに、図8中の網掛け部分に位置する特徴量ベクトルについては、ワイルドカード記号を含む記号列に変換する。
すなわち、情報検索装置1は、記号列に変換する際の閾値の境界から所定の範囲内にある特徴量ベクトルについては、ワイルドカード記号を含む記号列に変換する。例えば、検索部14は、特徴量変換部13から、図8中(E)に示す特徴量ベクトルを受信した場合には、記号列が「11」に変換される特徴量ベクトルを抽出する。さらに、検索部14は、ワイルドカード記号とバイナリ記号とのハミング距離を「0」とするので、図8中の網掛けで示す範囲に含まれる特徴量ベクトルを抽出する。
この結果、検索部14は、図8の下側に白丸で示す特徴量ベクトルについては、クエリデータの近傍候補から除外し、図8の下方に網掛け入りの丸で示す特徴量ベクトルについては、クエリデータの近傍候補とする。この結果、情報検索装置1は、検索漏れを防ぐことができる。
また、検索部14は、クエリデータを変換したバイナリ列と、特徴量ベクトルを変換した記号列とのハミング距離を算出することで、クエリデータの近傍候補となる特徴量ベクトルを抽出する。そして、検索部14は、抽出した特徴量ベクトルとクエリデータの特徴量ベクトルとのユークリッド距離を算出する。この結果、検索部14は、検索処理に要する検索コストを削減できる。
なお、検索部14は、ハッシュテーブルを用いて検索処理をさらに高速化してもよい。そこで、図9を用いて、検索部14がハッシュテーブルを用いて検索処理を行う例について説明する。
図9は、検索部が記憶するハッシュテーブルの一例を説明するための図である。例えば、図9に示す例では、検索部14は、各記号列と対応付けて、対応付けられた記号列の元となる特徴量ベクトルの近傍に存在する特徴量ベクトルのデータIDを記憶する。例えば、検索部14は、記号列データインデックス記憶部11に格納された記号列cを取得する。また、検索部14は、記号列cに含まれるr個のワイルドカード記号「*」をバイナリ記号「1」または「0」に変換した2r通りのバイナリ列を生成する。
また、検索部14は、生成したバイナリ列に対して、元となる記号列の変換元である特徴量ベクトルの近傍に存在する特徴量ベクトルのデータIDを対応付けたハッシュテーブルを生成する。そして、検索部14は、クエリデータの特徴量ベクトルを変換したバイナリ列を受信した場合には、受信したバイナリ列と対応付けられたデータIDをハッシュテーブルから取得する。その後、検索部14は、ハッシュテーブルから取得したデータIDと対応付けられた特徴量ベクトルを特徴量ベクトル記憶部10から取得し、クエリデータの特徴量ベクトルとのユークリッド距離を算出する。
このように、検索部14は、記号列と記号列の元となる特徴量ベクトルの近傍に存在する特徴量ベクトルのデータIDとを対応付けたハッシュテーブルを記憶する。この結果、検索部14は、さらに高速に検索処理を実行することができる。
例えば、変換関数学習部12、特徴量変換部13、検索部14とは、電子回路である。ここで、電子回路の例として、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路、またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)などを適用する。
また、特徴量ベクトル記憶部10、記号列データインデックス記憶部11とは、RAM(Random Access Memory)、フラッシュメモリ(flash memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。
次に、図10を用いて、情報検索装置1が、変換関数を生成する処理の流れについて説明する。図10は、変換関数を生成する処理の流れについて説明するためのフローチャートである。なお、情報検索装置1は、図1では図示しなかった外部装置から特徴量ベクトル記憶部10に新たな特徴量ベクトルが登録されたことをトリガとして、処理を開始する。
まず、情報検索装置1は、特徴量ベクトル記憶部10から、任意の2つの特徴量ベクトルを学習用データとして抽出する(ステップS101)。次に、情報検索装置1は、変換関数を初期化する(ステップS102)。すなわち、情報検索装置1は、変換関数の変換行列Wおよび変換関数のパラメータa1、a2、b1、b2の値を所定の初期値に設定する。そして、情報検索装置1は、現在の変換関数の評価を行う(ステップS103)。すなわち、情報検索装置1は、抽出した学習用データを現在の変換関数を用いて記号列に変換し、変換後の記号列同士のハミング距離と、学習用データのユークリッド距離とを用いて、現在の変換関数の評価を行う。
そして、情報検索装置1は、ステップS103における評価結果を用いて、現在の変換関数の変換行列Wおよび変換関数のパラメータa1、a2、b1、b2の値を更新する(ステップS104)。次に、情報検索装置1は、終了条件を満足しているか否かを判別する(ステップS105)。例えば、情報検索装置1は、所定の回数だけ、ステップS103〜ステップS104の処理を実行したか否か、または、式(7)が示す評価値が所定の閾値以下となったか否かを判別する。
そして、情報検索装置1は、終了条件を満足している場合は(ステップS105肯定)、更新後の変換関数を用いて特徴量ベクトルを変換し(ステップS106)、処理を終了する。一方、情報検索装置1は、終了条件を満足していない場合は(ステップS105否定)、ステップS103の処理を実行する。
[実施例1の効果]
上述したように、情報検索装置1は、ハミング距離を用いた検索処理の対象となるデータの特徴量ベクトルを、ワイルドカード記号とバイナリ記号とを含む記号列に変換する。このため、情報検索装置1は、記号列に変換する際の閾値の近傍に存在する特徴量ベクトルを検索候補に含めるので、検索漏れを防げる。
上述したように、情報検索装置1は、ハミング距離を用いた検索処理の対象となるデータの特徴量ベクトルを、ワイルドカード記号とバイナリ記号とを含む記号列に変換する。このため、情報検索装置1は、記号列に変換する際の閾値の近傍に存在する特徴量ベクトルを検索候補に含めるので、検索漏れを防げる。
また、情報検索装置1は、特徴量ベクトルのある成分が異なるクラスの特徴量ベクトルとの境界から所定の範囲内に収まる場合は、この成分をワイルドカード記号「*」に変換する。また、情報検索装置1は、特徴量ベクトルのある成分が異なるクラスの特徴量ベクトルとの境界から所定の範囲内に収まらない場合は、この成分をバイナリ記号に変換する。このため、情報検索装置1は、検索漏れが発生しないように、特徴量ベクトルを記号列に変換できる。
また、情報検索装置1は、変換行列と特徴量ベクトルとの積について、ある成分が所定の範囲内に含まれる場合は、この成分をワイルドカード記号「*」に変換し、この成分が所定の範囲内に含まれない場合は、この成分の値に応じたバイナリ記号に変換する。このため、情報検索装置1は、特徴量ベクトルの分布に応じた変換行列を選択した際に、検索漏れを防ぎつつ、特徴量ベクトルの位置関係を保持したままで特徴量ベクトルを記号列に変換できる。
また、情報検索装置1は、特徴量ベクトル記憶部10から2つの特徴量ベクトルを抽出し、抽出した特徴量ベクトル同士のユークリッド距離と、特徴量ベクトルを所定の変換関数で変換した記号列同士のハミング距離とに基づいて、所定の変換関数を評価する。そして、情報検索装置1は、評価結果に基づいて、所定の変換関数が有する変換行列Wおよび変換関数のパラメータa1、a2、b1、b2の値を更新する。このため、情報検索装置1は、特徴量ベクトル記憶部10に記憶された特徴量ベクトルの分布ごとに最適な変換関数を用いて、特徴量ベクトルを記号列に変換できる。
また、情報検索装置1は、変換関数を評価する際に、特徴量ベクトル記憶部10から抽出した特徴量ベクトルが同一クラスの特徴量ベクトルであり、かつ、変換後の記号列同士のハミング距離が所定の値以下となる場合は、変換関数の評価値を下げる。また、情報検索装置1は、変換関数を評価する際に、特徴量ベクトル記憶部10から抽出した特徴量ベクトルが異なるクラスの特徴量ベクトルであり、かつ、変換後の記号列同士のハミング距離が所定の値以上となる場合は、変換関数の評価値を下げる。
すなわち、情報検索装置1は、同一利用者が登録した特徴量ベクトルを記号列に変換した際に、ハミング距離が所定の値以下となる場合は、変換関数の評価値を下げる。また、情報検索装置1は、異なる利用者が登録した特徴量ベクトルを記号列に変換した際に、ハミング距離が所定の値以上となる場合は、変換関数の評価値を下げる。そして、情報検索装置1は、評価値の上限が下がるように、所定の変換関数が有する変換行列Wおよび変換関数のパラメータa1、a2、b1、b2の値を更新する。このため、情報検索装置1は、特徴量ベクトル記憶部10が記憶する特徴量ベクトルの分布に応じて、最適な変換関数を自動で生成することができる。
また、情報検索装置1は、特徴量ベクトルと変換後の記号列とを対応付けて記憶する。具体的には、情報検索装置1は、特徴量ベクトルと変換後の記号列とに同一のデータIDを対応付けて、特徴量ベクトル記憶部10および記号列データインデックス記憶部11に格納する。そして、情報検索装置1は、クエリデータを変換したバイナリ列とのハミング距離が所定の値以下となる記号列と対応付けられた特徴量ベクトルを検索する。このため、情報検索装置1は、クエリデータの近傍に位置する特徴量ベクトルを検索する際の計算コストを削減することができる。
これまで本発明の実施例について説明したが、実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例2として本発明に含まれる他の実施例を説明する。
(1)数式について
上述した情報検索装置1は、式(1)〜(22)を用いて、特徴量ベクトルの変換、クエリデータの変換、変換関数の評価、変換行列Wおよび変換関数のパラメータa1、a2、b1、b2の最適化を行った。しかし、実施例はこれに限定されるものではない。
上述した情報検索装置1は、式(1)〜(22)を用いて、特徴量ベクトルの変換、クエリデータの変換、変換関数の評価、変換行列Wおよび変換関数のパラメータa1、a2、b1、b2の最適化を行った。しかし、実施例はこれに限定されるものではない。
すなわち、情報検索装置1は、特徴量ベクトルの変換時において、適切にワイルドカード記号を含む記号列に変換する変換関数を採用してよい。また、情報検索装置1は、最適化した変換行列Wを用いてクエリデータの特徴量ベクトルを変換する必要はなく、任意の変換行列を用いて、クエリデータの特徴量ベクトルをバイナリ列に変換してもよい。
また、情報検索装置1は、確率的勾配降下法を用いて、評価関数の上限値を下げ、変換行列Wおよび変換関数のパラメータa1、a2、b1、b2の最適化を行った。しかし、実施例はこれに限定されるものではなく、情報検索装置1は、任意の手法を用いて、変換行列Wおよび変換関数のパラメータa1、a2、b1、b2の最適化を行ってよい。
例えば、情報検索装置1は、評価関数の上限値を下げるように、変換行列Wおよび変換関数のパラメータa1、a2、b1、b2の最適化を行う都合上、同一利用者の特徴量ベクトルのハミング距離が所定の値以下となる場合は、変換関数の評価値を下げた。つまり、情報検索装置1は、より適切に特徴量ベクトルを記号列に変換する変換関数については、評価値を下げることで、変換行列Wおよび変換関数のパラメータa1、a2、b1、b2の最適化を行った。しかし、例えば、情報検索装置1は、より適切に特徴量ベクトルを記号列に変換する変換関数の評価値を上げ、評価値が所定の閾値を超えた際に、変換関数を採用することとしてもよい。
(2)変換関数の評価について
上述した情報検索装置1は、変換関数を評価する際に、特徴量ベクトル記憶部10から特徴量ベクトルを2つ抽出し、抽出した2つの特徴量ベクトルの一方をクエリデータとし、もう一方を登録された特徴量ベクトルとみなして、変換関数を評価した。しかし、実施例はこれに限定されるものではない。例えば、情報検索装置1は、複数の特徴量ベクトルを抽出し、1つをクエリデータとし、残りを登録された特徴量ベクトルとみなして、変換関数を評価してもよい。
上述した情報検索装置1は、変換関数を評価する際に、特徴量ベクトル記憶部10から特徴量ベクトルを2つ抽出し、抽出した2つの特徴量ベクトルの一方をクエリデータとし、もう一方を登録された特徴量ベクトルとみなして、変換関数を評価した。しかし、実施例はこれに限定されるものではない。例えば、情報検索装置1は、複数の特徴量ベクトルを抽出し、1つをクエリデータとし、残りを登録された特徴量ベクトルとみなして、変換関数を評価してもよい。
(3)発明の実施形態について
上述した情報検索装置1は、クエリデータの特徴量ベクトルの近傍に位置する特徴量ベクトルの候補をハミング距離で抽出し、抽出した特徴量ベクトルの候補に、クエリデータの特徴用ベクトルと類似するデータが存在するか否かを判別した。しかし、本発明の実施形態はこれに限定されるものではない。
上述した情報検索装置1は、クエリデータの特徴量ベクトルの近傍に位置する特徴量ベクトルの候補をハミング距離で抽出し、抽出した特徴量ベクトルの候補に、クエリデータの特徴用ベクトルと類似するデータが存在するか否かを判別した。しかし、本発明の実施形態はこれに限定されるものではない。
すなわち、クエリデータと類似するデータが存在するか否かの判別については、従来の情報検索装置も可能である。そこで、登録された特徴量ベクトルをワイルドカード記号「*」とバイナリ記号とを含む記号列に変換する情報変換プログラム、もしくは、情報変換装置として本発明を実施し、特徴量ベクトルの検索については、従来の情報検索装置が担うこととしてもよい。なお、このような実施を行う場合は、従来の情報検索装置がワイルドカード記号とバイナリ記号とのハミング距離を「0」として扱うようにする。
また、情報検索装置1は、クエリデータの特徴用ベクトルと類似するデータが存在するか否かをクライアント装置2に送信した。しかし、実施例はこれに限定されるものではない。例えば、情報検索装置1は、ハミング距離を用いて、クエリデータの特徴量ベクトルの近傍に位置する特徴量ベクトルの候補を抽出し、抽出した特徴量ベクトルをクライアント装置2に送信することとしてもよい。また、情報検索装置1は、クエリデータの特徴量ベクトルのバイナリ列とのハミング距離が、所定の閾値以下となる記号列の元となる特徴量ベクトルをクライアント装置2に送信してもよい。また、情報検索装置1は、ハミング距離が小さい順に、特徴量ベクトルをクライアント装置2に送信してもよい。
(4)特徴量ベクトルについて
上述した情報検索装置1は、生体データの特徴量ベクトルを記憶した。しかし、実施例はこれに限定されるものではなく、情報検索装置1は、任意の情報についての特徴量ベクトルを記憶し、クエリデータの特徴量ベクトルと類似する特徴量ベクトルを記憶しているか否かを判別してもよい。
上述した情報検索装置1は、生体データの特徴量ベクトルを記憶した。しかし、実施例はこれに限定されるものではなく、情報検索装置1は、任意の情報についての特徴量ベクトルを記憶し、クエリデータの特徴量ベクトルと類似する特徴量ベクトルを記憶しているか否かを判別してもよい。
(5)プログラム
ところで、実施例1に係る情報検索装置1は、ハードウェアを利用して各種の処理を実現する場合を説明した。しかし、実施例はこれに限定されるものではなく、あらかじめ用意されたプログラムを情報検索装置1が有するコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図11を用いて、実施例1に示した情報検索装置1と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図11は、情報変換プログラムを実行するコンピュータの一例を説明するための図である。
ところで、実施例1に係る情報検索装置1は、ハードウェアを利用して各種の処理を実現する場合を説明した。しかし、実施例はこれに限定されるものではなく、あらかじめ用意されたプログラムを情報検索装置1が有するコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図11を用いて、実施例1に示した情報検索装置1と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図11は、情報変換プログラムを実行するコンピュータの一例を説明するための図である。
図11に例示されたコンピュータ100は、ROM(Read Only Memory)110、HDD(Hard Disk Drive)120、RAM(Random Access Memory)130、CPU(Central Processing Unit)140がバス160で接続される。また、図11に例示されたコンピュータ100は、パケットを送受信するためのI/O(Input Output)150を有する。
HDD120は、特徴量ベクトル記憶部10が記憶する情報と同一の情報が格納された特徴量ベクトルテーブル121と、記号列データインデックス記憶部11が記憶する情報と同一の情報が格納された記号列テーブル122とを記憶する。また、RAM130には、情報変換プログラム131があらかじめ保持される。CPU140が情報変換プログラム131をRAM130から読み出して実行することによって、図11に示す例では、情報変換プログラム131は、情報変換プロセス141として機能するようになる。なお、情報変換プロセス141は、図1に示した変換関数学習部12、特徴量変換部13、検索部14と同様の機能を発揮する。
なお、本実施例で説明した情報変換プログラムは、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM(Compact Disc Read Only Memory)、MO(Magneto Optical Disc)、DVD(Digital Versatile Disc)などのコンピュータで読取可能な記録媒体に記録される。また、このプログラムは、コンピュータによって記録媒体から読み出されることによって実行することもできる。
1 情報検索装置
2 クライアント装置
10 特徴量ベクトル記憶部
11 記号列データインデックス記憶部
12 変換関数学習部
13 特徴量変換部
14 検索部
2 クライアント装置
10 特徴量ベクトル記憶部
11 記号列データインデックス記憶部
12 変換関数学習部
13 特徴量変換部
14 検索部
Claims (11)
- ハミング距離を用いた検索処理の対象となるデータの特徴量ベクトルを、バイナリ記号とのハミング距離を0とするワイルドカード記号と前記バイナリ記号とを含む記号列に変換する変換部を有することを特徴とする情報変換装置。
- 前記変換部は、ハミング距離を用いた検索処理の対象となるデータの特徴量ベクトルのある成分が、異なるクラスの特徴量ベクトルとの境界から所定の範囲内に収まる場合には、バイナリ記号とのハミング距離を0とするワイルドカード記号に当該成分を変換し、異なるクラスの特徴量ベクトルとの境界から所定の範囲内に収まらない場合には、当該成分をバイナリ記号に変換することで、前記特徴量ベクトルを記号列に変換することを特徴とする請求項1に記載の情報変換装置。
- 前記変換部は、所定の変換行列と前記特徴量ベクトルとの積を算出し、算出した積のある成分が所定の範囲内に含まれる場合は、当該成分を前記ワイルドカード記号に変換し、前記成分が所定の範囲内に含まれない場合には、当該成分の値に応じたバイナリ記号に変換することを特徴とする請求項1または2に記載の情報変換装置。
- 前記データから複数のデータを抽出する抽出部と、
前記抽出部が抽出したデータの特徴量ベクトル同士の距離と、当該特徴量ベクトルを所定の変換関数で変換した記号列同士のハミング距離とに基づいて、前記所定の変換関数を評価する評価部と、
前記評価部による評価に基づいて、前記所定の変換関数が有するパラメータを最適化する最適化部と
を有し、
前記変換部は、前記最適化部が最適化したパラメータを有する変換関数を用いて、前記データの特徴量ベクトルを前記記号列に変換することを特徴とする請求項1−3のいずれか1つに記載の情報変換装置。 - 前記評価部は、前記抽出部が抽出したデータが同一のクラスに属し、かつ、前記記号列同士のハミング距離が所定の値以下となる場合、または、前記抽出部が抽出したデータが異なるクラスに属し、かつ、前記記号列同士のハミング距離が所定の値以上となる場合は、前記変換関数の評価値を下げ、
前記最適化部は、前記評価値の上限が下がるように前記パラメータを最適化することを特徴とする請求項4に記載の情報変換装置。 - 前記データと、当該データの特徴量ベクトルから前記変換部が変換した記号列とを対応付けて記憶する記憶部と、
前記記憶部に記憶されたデータのうち、クエリデータを変換したバイナリ列とのハミング距離が所定の値以下となる記号列と対応付けられたデータを検索する検索部と
を有することを特徴とする請求項1−5のいずれか1つに記載の情報変換装置。 - ハミング距離を用いた検索処理の対象となるデータの特徴量ベクトルを、バイナリ記号とのハミング距離を0とするワイルドカード記号と前記バイナリ記号とを含む記号列に変換する変換部と
前記データのうち、前記変換部が変換した記号列と、クエリデータを変換したバイナリ列とのハミング距離が所定の値以下となるデータを検索する検索部と
を有することを特徴とする情報検索装置。 - ハミング距離を用いた検索処理の対象となるデータを管理する情報変換装置が
前記データの特徴量ベクトルを、バイナリ記号とのハミング距離を0とするワイルドカード記号と前記バイナリ記号とを含む記号列に変換する処理を実行することを特徴とする情報変換方法。 - ハミング距離を用いた検索処理を行う情報検索装置が、
前記検索処理の対象となるデータの特徴量ベクトルを、バイナリ記号とのハミング距離を0とするワイルドカード記号と前記バイナリ記号とを含む記号列に変換し
前記変換した記号列と、クエリデータを変換したバイナリ列とのハミング距離が所定の値以下となるデータを検索する
処理を実行することを特徴とする情報検索方法。 - ハミング距離を用いた検索処理の対象となるデータを管理するコンピュータに
前記データの特徴量ベクトルを、バイナリ記号とのハミング距離を0とするワイルドカード記号と前記バイナリ記号とを含む記号列に変換する処理を実行させることを特徴とする情報変換プログラム。 - ハミング距離を用いた検索処理を行うコンピュータに、
前記検索処理の対象となるデータの特徴量ベクトルを、バイナリ記号とのハミング距離を0とするワイルドカード記号と前記バイナリ記号とを含む記号列に変換し
前記変換した記号列と、クエリデータを変換したバイナリ列とのハミング距離が所定の値以下となるデータを検索する
処理を実行させることを特徴とする情報検索プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012075189A JP2013206187A (ja) | 2012-03-28 | 2012-03-28 | 情報変換装置、情報検索装置、情報変換方法、情報検索方法、情報変換プログラム、情報検索プログラム |
US13/718,146 US20130262489A1 (en) | 2012-03-28 | 2012-12-18 | Information conversion device and information search device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012075189A JP2013206187A (ja) | 2012-03-28 | 2012-03-28 | 情報変換装置、情報検索装置、情報変換方法、情報検索方法、情報変換プログラム、情報検索プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013206187A true JP2013206187A (ja) | 2013-10-07 |
Family
ID=49236472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012075189A Pending JP2013206187A (ja) | 2012-03-28 | 2012-03-28 | 情報変換装置、情報検索装置、情報変換方法、情報検索方法、情報変換プログラム、情報検索プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20130262489A1 (ja) |
JP (1) | JP2013206187A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015185990A (ja) * | 2014-03-24 | 2015-10-22 | 富士通株式会社 | 1対多認証システム、認証方法、および認証プログラム |
JP2017162230A (ja) * | 2016-03-10 | 2017-09-14 | 富士通株式会社 | 情報処理装置、類似データ検索方法、及び類似データ検索プログラム |
US9779062B2 (en) | 2014-11-12 | 2017-10-03 | Kabushiki Kaisha Toshiba | Apparatus, method, and computer program product for computing occurrence probability of vector |
JP2019532445A (ja) * | 2016-09-07 | 2019-11-07 | フェイスブック,インク. | 多義コードを使用した類似度検索 |
US10783152B2 (en) | 2016-02-05 | 2020-09-22 | Fujitsu Limited | Information processing apparatus and data comparison method |
JP2021197156A (ja) * | 2020-06-17 | 2021-12-27 | ペキン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッドBeijing Baidu Netcom Science And Technology Co., Ltd. | 事前トレーニングのセマンティックモデルに基づくモデル改良方法及び装置 |
WO2022074786A1 (ja) * | 2020-10-08 | 2022-04-14 | 富士通株式会社 | データ生成方法、情報処理装置およびデータ生成プログラム |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9953065B2 (en) * | 2015-02-13 | 2018-04-24 | International Business Machines Corporation | Method for processing a database query |
US10089353B2 (en) | 2015-10-29 | 2018-10-02 | International Business Machines Corporation | Approximate string matching optimization for a database |
US10311057B2 (en) | 2016-08-08 | 2019-06-04 | International Business Machines Corporation | Attribute value information for a data extent |
US10360240B2 (en) | 2016-08-08 | 2019-07-23 | International Business Machines Corporation | Providing multidimensional attribute value information |
JP6721832B2 (ja) * | 2016-08-24 | 2020-07-15 | 富士通株式会社 | データ変換プログラム、データ変換装置及びデータ変換方法 |
KR102289419B1 (ko) * | 2017-06-26 | 2021-08-12 | 한국전자통신연구원 | 바이오메트릭을 이용한 사용자의 인증 방법 및 장치 |
JP7011152B2 (ja) * | 2017-08-30 | 2022-01-26 | 富士通株式会社 | 生体画像処理装置、生体画像処理方法、及び生体画像処理プログラム |
US11616797B2 (en) * | 2020-04-30 | 2023-03-28 | Mcafee, Llc | Large scale malware sample identification |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7805388B2 (en) * | 1998-05-01 | 2010-09-28 | Health Discovery Corporation | Method for feature selection in a support vector machine using feature ranking |
JP5206218B2 (ja) * | 2008-08-20 | 2013-06-12 | 富士通株式会社 | 指紋画像取得装置、指紋認証装置、指紋画像取得方法及び指紋認証方法 |
JP5271669B2 (ja) * | 2008-10-31 | 2013-08-21 | 株式会社日立製作所 | 生体認証方法およびシステム |
JP2010113458A (ja) * | 2008-11-05 | 2010-05-20 | Konica Minolta Business Technologies Inc | プログラム、画像処理システムおよび画像処理装置 |
US8375165B2 (en) * | 2010-01-08 | 2013-02-12 | Board Of Trustees Of Michigan State University | Bit weaving technique for compressing packet classifiers |
US8897151B2 (en) * | 2010-07-16 | 2014-11-25 | Board Of Trustees Of Michigan State University | Systematic framework for application protocol field extraction |
JP5862413B2 (ja) * | 2012-03-28 | 2016-02-16 | 富士通株式会社 | 情報変換規則生成プログラム、情報変換規則生成装置および情報変換規則生成方法 |
-
2012
- 2012-03-28 JP JP2012075189A patent/JP2013206187A/ja active Pending
- 2012-12-18 US US13/718,146 patent/US20130262489A1/en not_active Abandoned
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015185990A (ja) * | 2014-03-24 | 2015-10-22 | 富士通株式会社 | 1対多認証システム、認証方法、および認証プログラム |
US9779062B2 (en) | 2014-11-12 | 2017-10-03 | Kabushiki Kaisha Toshiba | Apparatus, method, and computer program product for computing occurrence probability of vector |
US10783152B2 (en) | 2016-02-05 | 2020-09-22 | Fujitsu Limited | Information processing apparatus and data comparison method |
JP2017162230A (ja) * | 2016-03-10 | 2017-09-14 | 富士通株式会社 | 情報処理装置、類似データ検索方法、及び類似データ検索プログラム |
US10121085B2 (en) | 2016-03-10 | 2018-11-06 | Fujitsu Limited | Information processing apparatus and method of searching for similar data |
JP2019532445A (ja) * | 2016-09-07 | 2019-11-07 | フェイスブック,インク. | 多義コードを使用した類似度検索 |
JP2021197156A (ja) * | 2020-06-17 | 2021-12-27 | ペキン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッドBeijing Baidu Netcom Science And Technology Co., Ltd. | 事前トレーニングのセマンティックモデルに基づくモデル改良方法及び装置 |
JP7269972B2 (ja) | 2020-06-17 | 2023-05-09 | ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド | 事前トレーニングのセマンティックモデルに基づくモデル改良方法及び装置 |
US11775766B2 (en) | 2020-06-17 | 2023-10-03 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method and apparatus for improving model based on pre-trained semantic model |
WO2022074786A1 (ja) * | 2020-10-08 | 2022-04-14 | 富士通株式会社 | データ生成方法、情報処理装置およびデータ生成プログラム |
Also Published As
Publication number | Publication date |
---|---|
US20130262489A1 (en) | 2013-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2013206187A (ja) | 情報変換装置、情報検索装置、情報変換方法、情報検索方法、情報変換プログラム、情報検索プログラム | |
US9704100B2 (en) | Authentication method, authentication device, and recording medium | |
JP5862413B2 (ja) | 情報変換規則生成プログラム、情報変換規則生成装置および情報変換規則生成方法 | |
JP6203077B2 (ja) | 学習装置、密度計測装置、学習方法、学習プログラム、及び密度計測システム | |
JP6004015B2 (ja) | 学習方法、情報処理装置および学習プログラム | |
WO2014109127A1 (ja) | インデックス生成装置及び方法並びに検索装置及び検索方法 | |
US20220414131A1 (en) | Text search method, device, server, and storage medium | |
US10373028B2 (en) | Pattern recognition device, pattern recognition method, and computer program product | |
KR20200020107A (ko) | 기계학습을 이용한 획 기반 수기 서명 인증 방법 및 시스템 | |
US9792561B2 (en) | Learning method, information conversion device, and recording medium | |
US10121085B2 (en) | Information processing apparatus and method of searching for similar data | |
CN112257689A (zh) | 人脸识别模型的训练和识别方法、存储介质及相关设备 | |
CN111783088A (zh) | 一种恶意代码家族聚类方法、装置和计算机设备 | |
WO2019171537A1 (ja) | 意味推定システム、方法およびプログラム | |
JP6601965B2 (ja) | 探索木を用いて量子化するプログラム、装置及び方法 | |
JP6988991B2 (ja) | 意味推定システム、方法およびプログラム | |
JP5824429B2 (ja) | スパムアカウントスコア算出装置、スパムアカウントスコア算出方法、及びプログラム | |
JP2017054438A (ja) | 画像認識装置、方法、及びプログラム | |
Rungta et al. | Two-phase multimodal neural network for app categorization using APK resources | |
JP6973733B2 (ja) | 特許情報処理装置、特許情報処理方法およびプログラム | |
JP6235368B2 (ja) | パターン認識装置、パターン認識方法およびプログラム | |
JP2011150404A (ja) | 情報検索装置、情報検索方法 | |
JP6368688B2 (ja) | 画像認識装置、画像認識方法、及び画像認識プログラム | |
JP4215385B2 (ja) | パターン認識装置、パターン認識方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
Singh et al. | Database Knowledge Discovery Combining Cluster Analysis and Classification Using Data Mining |