"コンテンツを1つ以上のバイナリ値に変換するコンテンツ変換方法において、コンピュータにより、記憶手段からコンテンツを読み出して、複数のコンテンツの各特徴量をそれぞれ抽出する抽出ステップと、前記各特徴量を特徴量空間上に特徴点として分布させ少なくとも2つの群に分類し、各郡の全特徴点からの垂直距離が等しい直線又は超平面を求め、前記特徴点が当該図形によって二分されたいずれの空間側にあるかに基づいて前記コンテンツをバイナリ値に変換するハッシュ関数を生成する生成ステップと、を有することを特徴とするコンテンツ変換方法。前記生成ステップは、前記2つの群の群間分散値Sbと郡内分散値Swを変数に用いたtrace{wTSb-Sww}但し、wTw=1の演算値が最大となるwの値を傾きとして前記図形を求めることを特徴とする請求項1記載のコンテンツ変換方法。前記生成ステップは、前記ハッシュ関数を複数生成する際に、他のハッシュ関数との相関度が低くなるように前記特徴点の分布状態を変化させることを特徴とする請求項1又は2記載のコンテンツ変換方法。前記ハッシュ関数を1つ以上用いて前記コンテンツを1つ以上のバイナリ値に変換する変換ステップを更に有することを特徴とする請求項1乃至3のいずれかに記載のコンテンツ変換方法。コンテンツを1つ以上のバイナリ値に変換するコンテンツ変換装置において、記憶手段からコンテンツを読み出して、複数のコンテンツの各特徴量をそれぞれ抽出する抽出手段と、前記各特徴量を特徴量空間上に特徴点として分布させ少なくとも2つの群に分類し、各郡の全特徴点からの垂直距離が等しい直線又は超平面を求め、前記特徴点が当該図形によって二分されたいずれの空間側にあるかに基づいて前記コンテンツをバイナリ値に変換するハッシュ関数を生成する生成手段と、を有することを特徴とするコンテンツ変換装置。前記生成手段は、前記2つの群の群間分散値Sbと郡内分散値Swを変数に用いたtrace{wTSb-Sww}但し、wTw=1の演算値が最大となるwの値を傾きとして前記図形を求めることを特徴とする請求項5記載のコンテンツ変換装置。前記生成手段は、前記ハッシュ関数を複数生成する際に、他のハッシュ関数との相関度が低くなるように前記特徴点の分布状態を変化させることを特徴とする請求項5又は6記載のコンテンツ変換装置。請求項1乃至4のいずれかに記載のコンテンツ変換方法をコンピュータに実行させることを特徴とするコンテンツ変換プログラム。上記の特許文献1に記載の技術は、特徴量を圧縮表現するものの、圧縮された特徴量間の類似度をユークリッド距離で求める必要があるため、大幅な計算時間の削減を実現できなかった。非特許文献1、2に開示されている技術では、ハッシュ関数超平面の生成はランダムであるため、コンテンツの類似度を反映するようなハッシュ関数を生成するには、ハッシュ数を十分に大きく取り、多数のハッシュ関数を生成する必要があった。本発明は、この課題を鑑みてなされたものであり、大量のマルチメディアコンテンツから、高速、省メモリでありながら、高精度で類似するコンテンツを発見することのできるコンテンツ変換方法、コンテンツ変換装置及びコンテンツ変換プログラムを提供することを課題とする。第1の本発明に係るコンテンツ変換方法は、コンテンツを1つ以上のバイナリ値に変換するコンテンツ変換方法において、コンピュータにより、記憶手段からコンテンツを読み出して、複数のコンテンツの各特徴量をそれぞれ抽出する抽出ステップと、前記各特徴量を特徴量空間上に特徴点として分布させ少なくとも2つの群に分類し、各郡の全特徴点からの垂直距離が等しい直線又は超平面を求め、前記特徴点が当該図形によって二分されたいずれの空間側にあるかに基づいて前記コンテンツをバイナリ値に変換するハッシュ関数を生成する生成ステップと、を有することを特徴とする。第2の本発明に係るコンテンツ変換方法は、前記生成ステップが、前記2つの群の群間分散値Sbと郡内分散値Swを変数に用いたtrace{wTSb-Sww}但し、wTw=1の演算値が最大となるwの値を傾きとして前記図形を求めることを特徴とする。第3の本発明に係るコンテンツ変換方法は、前記生成ステップが、前記ハッシュ関数を複数生成する際に、他のハッシュ関数との相関度が低くなるように前記特徴点の分布状態を変化させることを特徴とする。第4の本発明に係るコンテンツ変換方法は、前記ハッシュ関数を1つ以上用いて前記コンテンツを1つ以上のバイナリ値に変換する変換ステップを更に有することを特徴とする。第5の本発明に係るコンテンツ変換装置は、コンテンツを1つ以上のバイナリ値に変換するコンテンツ変換装置において、記憶手段からコンテンツを読み出して、複数のコンテンツの各特徴量をそれぞれ抽出する抽出手段と、前記各特徴量を特徴量空間上に特徴点として分布させ少なくとも2つの群に分類し、各郡の全特徴点からの垂直距離が等しい直線又は超平面を求め、前記特徴点が当該図形によって二分されたいずれの空間側にあるかに基づいて前記コンテンツをバイナリ値に変換するハッシュ関数を生成する生成手段と、を有することを特徴とする。第6の本発明に係るコンテンツ変換装置は、前記生成手段が、前記2つの群の群間分散値Sbと郡内分散値Swを変数に用いたtrace{wTSb-Sww}但し、wTw=1の演算値が最大となるwの値を傾きとして前記図形を求めることを特徴とする。第7の本発明に係るコンテンツ変換装置は、前記生成手段が、前記ハッシュ関数を複数生成する際に、他のハッシュ関数との相関度が低くなるように前記特徴点の分布状態を変化させることを特徴とする。第8の本発明に係るコンテンツ変換プログラムは、第1から第4の発明におけるコンテンツ変換方法をコンピュータに実行させることを特徴とする。以上より、本発明によれば、複数のコンテンツの各特徴量を特徴量空間上に特徴点として分布させ少なくとも2つの群に分類し、各郡の全特徴点からの垂直距離が等しい直線又は超平面を求め、特徴点が当該図形によって二分されたいずれの空間側にあるかに基づいてコンテンツをバイナリ値に変換するハッシュ関数を生成するため、揺らぎに頑健なハッシュ関数を生成できることから、結果として、大量のマルチメディアコンテンツから、高速、省メモリでありながら、高精度で類似するコンテンツを発見することのできるコンテンツ変換方法、コンテンツ変換装置及びコンテンツ変換プログラムを提供できる。また、本発明によれば、ハッシュ関数を複数生成する際に、他のハッシュ関数との相関度が低くなるように特徴点の分布状態を変化させるため、互いに相関の低いハッシュ関数を生成できることから、結果として、より少ないハッシュ関数の数ビット数で、高精度な類似コンテンツ検索を実施することができるコンテンツ変換方法、コンテンツ変換装置及びコンテンツ変換プログラムを提供できる。本発明によれば、大量のマルチメディアコンテンツから、高速、省メモリでありながら、高精度で類似するコンテンツを発見することのできるコンテンツ変換方法、コンテンツ変換装置及びコンテンツ変換プログラムを提供できる。以下、本発明の実施の形態について図面を用いて説明する。情報処理装置の構成図1は、本実施の形態に係る情報処理装置の機能ブロック構成を示す図である。同図に示す情報処理装置1は、コンテンツを1つ以上のバイナリ値に変換するコンテンツ変換装置であって、入力部11と、特徴抽出部12と、ハッシュ関数生成部13と、ハッシュ関数記憶部14と、ハッシュ化部15と、出力部16とで主に構成される。情報処理装置1は、通信手段を介してコンテンツデータベース2に接続され、入力部11と出力部16を介して相互に情報通信し、コンテンツデータベース2に登録されたコンテンツに基づいてハッシュ関数を生成するハッシュ関数生成処理と、生成したハッシュ関数を用いてコンテンツを1つ以上のバイナリ値に変換するハッシュ化処理を行う。情報処理装置1が備える各部は、演算処理装置や記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムは、情報処理装置1が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、通信ネットワークを通して提供することも可能である。コンテンツデータベース2は、情報処理装置1の内部にあっても外部にあっても構わない。また、通信手段は、任意の公知のものを用いることができるが、本実施の形態においては、外部にあるものとして、インターネット、TCP/IPにより通信するよう接続されているものとする。また、コンテンツデータベース2は、いわゆるRDBMSRelationalDatabaseManagementSystemなどで構成されているものとしてもよい。コンテンツデータベース2には、少なくともコンテンツそのもののデータ以降、コンテンツデータ、あるいは、当該データの所在を一意に示すアドレスが格納されている。コンテンツデータは、例えば、文書であれば文書ファイル、画像であれば画像ファイル、音であれば音ファイル、映像であれば映像ファイルなどである。好ましくは、コンテンツデータベース2には、各コンテンツを一意に識別可能な識別子が含まれているものとする。その他、メタデータとして、例えば、コンテンツの内容を表現するもの例えば、コンテンツのタイトル、概要文、キーワードなど、コンテンツのフォーマットに関するもの例えば、コンテンツのデータ量、サムネイル等のサイズなどを含んでいても構わない。情報処理装置の各部の機能引き続き、情報処理装置1の各部の機能について説明する。入力部11は、コンテンツデータベース2からコンテンツデータを取得して特徴抽出部12に送信する。特徴抽出部12は、入力部11より得たコンテンツデータを解析し、コンテンツを特徴的に表す特徴量を抽出する。抽出された特徴量は、ハッシュ関数生成処理時にはハッシュ関数生成部13に送信され、ハッシュ化処理時にはハッシュ化部15に送信される。ハッシュ関数生成部13は、特徴抽出部12から送信された特徴量に基づいて1つ以上のハッシュ関数を生成し、ハッシュ関数記憶部14に記憶する。ハッシュ関数記憶部14は、ハッシュ関数生成部13により生成された1つ以上のハッシュ関数を記憶する。ハッシュ化部15は、ハッシュ関数記憶部14に格納されている1つ以上のハッシュ関数に基づいて、特徴抽出部12から送信されたコンテンツの特徴量を1つ以上のバイナリ値であるハッシュ値に変換し、出力部16に送信する。出力部16は、ハッシュ化部15によって変換されたハッシュ値をコンテンツデータベース2に送信し、格納する。情報処理装置の処理動作次に、情報処理装置1の処理動作について説明する。情報処理装置1は、ハッシュ関数を生成するハッシュ関数生成処理と、コンテンツの特徴量をハッシュ化するハッシュ化処理を実行する。以下、これら2つの処理について説明する。最初に、ハッシュ関数生成処理について説明する。図2は、ハッシュ関数生成処理の流れを示すフローチャートである。ハッシュ関数生成処理は、実際にコンテンツデータをハッシュ化する前に、少なくとも1度実施しておく処理である。まず、入力部11が、コンテンツデータベース2からコンテンツデータを取得して、これを特徴抽出部12に送信するステップS101。続いて、特徴抽出部12が、そのコンテンツデータから特徴量を抽出してハッシュ関数生成部13に送信するステップS102。最後に、ハッシュ関数生成部13が、その特徴量に基づいて1つ以上のハッシュ関数を生成し、ハッシュ関数記憶部14に格納するステップS103。以上の処理により、コンテンツデータベース2に格納された各コンテンツデータから1つ以上のハッシュ関数を生成することができる。なお、特徴量の抽出処理、ハッシュ関数の生成処理の詳細については後述する。次に、ハッシュ化処理について説明する。図3は、ハッシュ化処理の流れを示すフローチャートである。ハッシュ化処理は、ハッシュ関数記憶部14に格納されたハッシュ関数を用いてコンテンツの特徴量をハッシュ化する処理である。まず、入力部11が、コンテンツデータベース2からコンテンツデータを取得して、これを特徴抽出部12に送信するステップS201。続いて、特徴抽出部12が、そのコンテンツデータから特徴量を抽出してハッシュ化部15に送信するステップS202。ステップS201,S202の処理は、それぞれ、ハッシュ関数生成処理のステップS101,S102と同じである。そして、ハッシュ化部15が、ハッシュ関数記憶部14に格納された1つ以上のハッシュ関数を用いてコンテンツの特徴量をハッシュ値に変換し、出力部16に送信するステップS203。1つのハッシュ関数につき1bitのハッシュ値に変換されるので、ハッシュ関数記憶部14にB個のハッシュ関数が格納されている場合、コンテンツはBbitのハッシュ値に変換される。最後に、出力部16が、そのハッシュ値をコンテンツデータベース2に送信し、格納するステップS204。以上の処理により、コンテンツデータベースに登録されているコンテンツのハッシュ値を求めることができる。特徴量の抽出処理次に、特徴量の抽出処理について説明する。コンテンツの特徴量を抽出する処理は、コンテンツの種類に依存する。例えば、コンテンツが文書であるか、画像であるか、音であるか、映像であるかによって、抽出する又は抽出できる特徴量は変化する。ここで、どのような特徴量を抽出するかは、本発明の要件として重要ではなく、一般に知られた公知の特徴抽出処理を用いて構わない。したがって、ここでは、本実施の形態の一例に適する、各種コンテンツに対する特徴抽出処理の例を説明する。コンテンツが文書である場合には、文書中に出現する単語の出現頻度を用いることができる。例えば、公知の形態素解析を用いて、名詞、形容詞等に相当する単語ごとに、その出現頻度を計数すればよい。コンテンツが画像である場合には、例えば、明るさ特徴、色特徴、テクスチャ特徴、コンセプト特徴、景観特徴などを抽出する。明るさ特徴は、HSV色空間におけるV値を数え上げることで、ヒストグラムとして抽出することができる。色特徴は、Lab色空間における各軸L、a、bの値を数え上げることで、ヒストグラムとして抽出することができる。各軸のヒストグラムのビンの数は、例えば、Lに対して4、aに対して14、bに対して14などとすればよく、この場合、3軸の合計ビン数は、4×14×14=784となる。テクスチャ特徴としては、濃淡ヒストグラムの統計量コントラストやパワースペクトルなどを求めればよい。あるいは、局所特徴量を用いると、色や動きなどと同様、ヒストグラムの形式で抽出することができるようになるため好適である。局所特徴としては、例えば、下記の参考文献1に記載されるSIFTScaleInvariantFeatureTransformや、下記の参考文献2に記載されるSURFSpeededUpRobustFeaturesなどを用いることができる。[参考文献1]DGLowe、DistinctiveImageFeaturesfromScaleInvariantKeypoints、InternationalJournalofComputerVision、pp91110、2004年[参考文献2]HBay、TTuytelaars、LVGool、SURFSpeededUpRobustFeatures、LectureNotesinComputerScience、vol3951、pp404417、2006年これらによって抽出される局所特徴は、例えば、128次元の実数値ベクトルとなる。このベクトルを、予め学習して生成しておいた符号長を参照して、符号に変換し、その符号の数を数え上げることでヒストグラムを生成することができる。この場合、ヒストグラムのビンの数は、符号長の符号数と一致する。符号数は任意のものを用いてよいが、例えば、512あるいは1024などとしてもよい。コンセプト特徴とは、画像中に含まれる物体や、画像が捉えているイベントのことである。任意のものを用いてよいが、例を挙げれば、海、山、ボールなどのようなものである。もし、ある画像に海が映っていた場合、その画像は海コンセプトに帰属する画像であるという。その画像が、各コンセプトに帰属するか否かは、コンセプト識別器を用いて判断することができる。通常、コンセプト識別器はコンセプト毎に一つ用意され、画像の特徴量を入力として、その画像があるコンセプトに帰属しているか否かを帰属レベルとして出力する。コンセプト識別器は、予め学習して獲得しておくものであり、決められた画像特徴、例えば、先に述べた局所特徴と、予め人手によって、その画像がどのコンセプトに帰属しているかを表した正解ラベルとの関係を学習することによって獲得する。学習器としては、例えば、サポートベクターマシンなどを用いればよい。コンセプト特徴は、各コンセプトへの帰属レベルをまとめてベクトルとして表現することで得ることができる。景観特徴は、画像の風景や場面を表現した特徴量である。例えば、下記の参考文献3に記載のGIST記述子を用いることができる。[参考文献3]AOliva、ATorralba、Buildingthegistofascenetheroleofglobalimagefeaturesinrecognition、ProgressinBrainResearch155、pp2336、2006年コンテンツが音である場合には、音高特徴、音圧特徴、スペクトル特徴、リズム特徴、発話特徴、音楽特徴、音イベント特徴などを抽出する。音高特徴は、例えば、ピッチを取るものとすればよく、下記の参考文献4に記載される方法などを用いて抽出することができる。[参考文献4]古井貞熙、ディジタル音声処理49ピッチ抽出、pp5759、1985年音圧特徴としては、音声波形データの振幅値を用いるものとしてもよいし、短時間パワースペクトルを求め、任意の帯域の平均パワーを計算して用いるものとしてもよい。スペクトル特徴としては、例えば、メル尺度ケプストラム係数MFCC:MelFrequencyCepstralCoefficientsを用いることができる。リズム特徴としては、例えば、テンポを抽出すればよい。テンポを抽出するには、例えば、下記の参考文献5に記載される方法などを用いることができる。[参考文献5]EDScheirer、TempoandBeatAnalysisofAcousticMusicalSignals、JournalofAcousticSocietyAmerica、Vol103、Issue1、pp588601、1998年発話特徴、音楽特徴は、それぞれ、発話の有無、音楽の有無を表す。発話音楽の存在する区間を発見するには、例えば、下記の参考文献6に記載される方法などを用いればよい。[参考文献6]KMinami、AAkutsu、HHamada、YTonomura、VideoHandlingwithMusicandSpeechDetection、IEEEMultimedia、vol5、no3、pp1725、1998年音イベント特徴としては、例えば、笑い声や大声などの感情的な音声、あるいは、銃声や爆発音などの環境音の生起などを用いるものとすればよい。このような音イベントを検出するには、例えば、下記の参考文献7に記載される方法などを用いればよい。[参考文献7]国際公開第2008/032787号コンテンツが映像である場合、映像は、一般に画像と音のストリームであるから、上記説明した画像特徴と音特徴を用いることができる。映像中のどの画像、音情報を分析するかについては、例えば、予め映像をいくつかの区間に分割し、その区間ごとに1つの画像、音から特徴抽出を実施する。映像を区間に分割するには、予め決定しておいた一定の間隔で分割するものとしてもよいし、例えば、下記の参考文献8に記載される方法などを用いて、映像が不連続に切れる点であるカット点によって分割するものとしてもよい。[参考文献8]YTonomura、AAkutsu、YTaniguchi、GSuzuki、StructuredVideoComputing、IEEEMultimedia、pp3443、1994年望ましくは、後者の方法を採用する。映像区間分割処理の結果として、区間の開始点開始時刻と終了点終了時刻が得られるが、この時刻毎に別々の特徴量として扱えばよい。以上のように抽出した特徴量は、一つあるいは複数を利用してもよいし、その他の公知の特徴量を用いるものとしてもよい。ハッシュ関数の生成処理次に、ハッシュ関数の生成処理について説明する。コンテンツii=1,2,...,Nから抽出された特徴量をxiとし、その特徴量xiは特徴量空間Rdに属するとするxi∈Rd。このとき、前述したステップS103では、h:Rd→{0,1}となるハッシュ関数hの集合を求める。特徴量xiは、各hにより0または1をとるバイナリ値に写像されるので、ハッシュ関数集合H={h1,h2,...,hB}によってB個のバイナリ値、すなわち、Bbitのハッシュ値に変換されることになる。本発明の目的は、このハッシュ値によって、時間のかかるコンテンツ間の類似度計算を省略可能にすることである。したがって、ハッシュ関数は、元の特徴量xi間の類似度s:Rd×Rd→Rと関連したハッシュ値への写像であることが要請され、高い類似度を持つコンテンツほど、ハッシュ値の距離ハミング距離が近くなることが好ましい。以下、ハッシュ関数の生成処理について詳述する。まず、ハッシュ関数生成部13によって生成されるハッシュ関数hkk=1,2,...,Bとして、式1,2に示すような線形関数に基づくハッシュ関数を考える。ここで、signxは、wk∈Rd、bk∈Rをパラメータに持ち、x≧0のとき1、x<0のとき-1をとる符号関数である。このような符号関数に基づくハッシュ関数であることから、コンテンツiの特徴量xiは、0または1のバイナリ値に変換されることになる。このハッシュ関数hkにおいて、未知のパラメータは、wkとbkの二つだけである。ここで、仮に、コンテンツiの特徴量xiが平均0に正規化されているとき、bk=0としても一般性を失うことはない。特徴量xiを0に正規化するには、特徴量xiの平均mを各特徴量xiから減算すればよいのであり、これはxi∈Rdにおいて可能であることから、bk=0と決定できる。したがって、以降、特徴量xiの平均は0に正規化されているとし、式2を式3のように定義しなおして説明する。式1,3のハッシュ関数hkにおいて、wkk=1,2,...,Bのパラメータを定めることが、本ハッシュ関数の生成処理の目的となる。ここで、式1,3のように表現されるハッシュ関数hkの意味は、図4を用いて幾何的に説明できる。同図には、特徴量空間Rd上に、各コンテンツiからそれぞれ抽出された特徴量xiが特徴点として分布している。なお、同図では、便宜上2次元のように図示しているが、実際にはd次元の空間である。ここで、ハッシュ関数hkを構成するφkxiは、この特徴量空間Rd上の原点を通る直線実際は、d-1次元の超平面を表している。ハッシュ関数hkxiは、前述したように本質的には符号関数であるから、特徴量xiを示す特徴点がこの直線φkxiによって2分割されたいずれの空間側にあるかによって、1または0をとる。すなわち、式1,3によって定義されるハッシュ関数hkxiは、特徴量空間Rdを直線φkxiによって1と0の2つの領域に分割する関数である。パラメータwkは、この直線φkxiの傾きに対応し、そのwkの値が変化すれば、分割する角度が変化することになる。したがい、本実施の形態によれば、コンテンツiの特徴量xiの分布に基づいて、パラメータwkを合理的に決定するハッシュ関数hkの生成方法を提供することができる。以下、その原理と処理内容について説明する。前述した目的に合うハッシュ関数となるように、パラメータwkを求めるもっとも合理的な方法の一つは、類似したコンテンツ群が、先の図4の例における直線の片側に集まるように直線を引くすなわち、パラメータwkを決めることである。ここで、わかりやすく図5を用いて説明する。同図では、白丸○で表されている特徴量xiと、黒丸●で表されている特徴量xiが存在する。また、これらとは別に、二重丸◎で表されている特徴量xiが存在するが、ひとまずこれは無視してよい。今、白丸と黒丸で表されている特徴量xiは、同色であれば互いに類似したコンテンツの特徴量であるとする。このとき、これらの類似したコンテンツ群が直線の片側に集まるように直線を引けばよい。このような直線は、2群の間を通るような直線であり、実際には無限に存在するが、例えば、直線51のようなものがある。しかしながら、そのような直線51は、頑健性ロバスト性に欠けるものである。ここで、先ほど無視した二重丸の特徴量xiについて考える。これは、どちらかといえば白丸の群の周辺にあり、本来、白丸の群に属すべきコンテンツの特徴量であることが一目して見て取れる。しかしながら、この二重丸の特徴量xiは、直線51によって黒丸の群の方に分類されてしまっており、誤った分類を与えられてしまっている。もし、この二重丸の特徴量xiを持つコンテンツiがノイズによる揺らぎによって発生してしまった場合には、正しい分類を与えることができない。通常、コンテンツiの特徴量xiは揺らぎを伴って得られることが普通であるから、任意に引いた直線51では、このような揺らぎに対して頑健性がなく、精度の低下を招いてしまう。これに対して本実施の形態では、無限にある直線の中から、頑健性の高い直線を求めることができる。頑健性の高い直線とは、マージンを最大化する直線、すなわち、それら両群のすべての特徴量xi特徴点からの垂線距離が等しくなるような直線である、直線52を選べばよい。このようにして選ばれた直線52は、互いの群から平等に最も遠い位置にある直線である。このため、両群の周辺に揺らいで発生するような二重丸のような特徴量xiがあったとしても、正しい分類ができる。すなわち、ハッシュ関数生成部13は、複数のコンテンツiの各特徴量xiを特徴量空間Rd上に特徴点として分布させて少なくとも2つの群に分類し、各郡の全ての特徴点からの垂直距離が等しい直線を計算し、特徴点が当該直線によって2分割されたいずれの空間側にあるかに基づいて、コンテンツiをバイナリ値に変換するハッシュ関数を生成する。このような直線52は、例えば、それら両群の群間分散値Sbと郡内分散値Swを変数に用いた式4の目的関数の演算値を最大化するwの値を求めることにより、得ることができる。なお、traceトレースとは、{}内のn次正方行列の対角成分の和を計算するものであり、線形代数学分野などにおいて一般に利用される。なお、群間分散値Sb、郡内分散値Swは、それぞれ、式5,6を用いて計算すればよい。ただし、mjは群jj=0,1の平均ベクトル、mは全体の平均ベクトル、Njは群jに属する特徴量xiの数、Nは全体の特徴量xiの数である。先に述べたように、全体の平均が0になるよう正規化されている場合、理論的にはm=0となる。なお、式4を最大化するwは、例えば、ラグランジュ未定乗数法によって、下記の固有値問題の解固有ベクトルとして求めることができる。この固有値問題を解いてwを求める方法については、例えば、反復法など、種々の公知の方法を用いればよい。以上は、予めコンテンツiの特徴量xiがどちらの群に属しているかが既知である必要がある。以降、この情報を群指示情報と呼ぶ。一方で、現実の問題においては、群指示情報は未知である。つまり、このままでは現実にある多くの問題において、上記手法を取ることができない。そこで、本実施の形態では、群指示情報が未知の場合においても、同様のハッシュ関数を生成できる処理をとる。以降、この処理の一例について詳述する。まず、特徴量xi間の類似度を格納した類似度行列Vを求める。この類似度行列Vは、どのようなものでも構わないが、例えば、式8を利用して求めればよい。また、その類似度行列Vに基づいて対角行列Dを計算する。そして、式4に対して、群指示情報に依存しない正則化項を導入する。式10の第2項がその正則化項であり、群間分散値Sbや郡内分散値Swが含まれていないので、群指示情報がなくとも計算可能な項である。この式10の演算値を最大化するwの値は、ラグランジュ未定乗数法によって下記の固有値問題の解として求めることができる。なお、ηはパラメータであり、Xはハッシュ関数を求めた際の特徴量xiの集合である。このような固有値問題の解は、前述の通り、反復法などの公知の方法によって計算できるので、仮に、群間分散値Sbや郡内分散値Swがゼロ行列要素がすべて0である行列とすれば、群指示情報が全くなかったとしても、式11を満たすwを求めることができる。こうして求めたwを、w1とする。ハッシュ関数が1つすなわち、各特徴量xiを1ビットのハッシュ値に変換するでよければ、以上の手続きを以てハッシュ関数の生成処理を終了して構わない。しかしながら、通常は複数のハッシュ関数を用意し、複数ビットのハッシュ値に変換する。ここでは、以下の手続きにより、B個のハッシュ関数を用意するとして、w1から順次w2,w3,...,wBを求める。今、k個のハッシュ関数hkが求まっているとしたとき、k1個目のハッシュ関数hk1を求めることを考える。本実施の形態では、k個目までのハッシュ関数hkを用いて、各特徴量xiに疑似的な群指示情報を決定する。この付与方法は任意の方法で構わないが、例えば、k個目のハッシュ関数hkを用いて、次の規則に基づいて疑似群指示情報を与える。ここで、δはパラメータである。このように決定された疑似群指示情報を群指示情報であるとみなすことによって、式5,6を用いて群間分散値Sbや郡内分散値Swを計算することができ、式11を満たすwk1を得ることができる。基本的には、上記の処理をk=1,2,...,Bと繰り返すことにより、ハッシュ関数hkを逐次求めていけばよい。一方で、そのようにk個目までのハッシュ関数hkを用いて、各特徴量xiに疑似的な群指示情報を決定する場合、k個目までのハッシュ関数hkとk1個目のハッシュ関数hk1が互いに相関の高いもの類似したものになってしまう確率が高く、非効率的である。そこで、本実施の形態では、より少ないハッシュ関数数でも高精度なハッシュ関数生成が実現できるよう、複数のハッシュ関数を生成する際に、互いに相関の低いハッシュ関数を生成する補正処理を導入する。例えば、k個目のハッシュ関数hkを用いて、k個目のハッシュ関数hkを求めた際の特徴量xiの集合Xk={x1,x2,...,xN}を、次のように補正する。すなわち、ハッシュ関数間の相関度が低くなるように特徴点の分布状態を変化させる。この補正により、特徴量の分布から、wkTXkが示す方向成分が縮退されるので、その結果、既に得られているハッシュ関数と相関の低い特徴量分布へと変化する。この補正により、互いに相関の小さいハッシュ関数が生成されるようになる。以上の処理を繰り返すことにより、B個のハッシュ関数を得ることができる。処理の一例をまとめると、下記のように表現することができる。手順1最初に、k=1とし、Sbk=1=0、Swk=1=0、Xk=1=Xとする。手順2次に、下記の固有値問題を解き、最大の固有値に対応する固有ベクトルをwkとする。手順3次に、式12を用いて疑似群指示情報を計算する。手順4次に、k=Bなら処理を終了し、それ以外なら手順5に進む。なお、Bは任意に設定できる。手順5次に、式15~式17を用いて、Sbk1、Swk1、Xk1を求める。手順6手順2に戻る。上記の処理手続きによって生成されたハッシュ関数hk、すなわち、具体的には、パラメータwkk=1,2,...,Bは、ハッシュ関数記憶部14に格納される。ハッシュ化処理前述のハッシュ関数生成処理が済んでいれば、ハッシュ関数記憶部14には、B個のハッシュ関数が格納されている。これを用いることにより、特徴量xiで表現された任意のコンテンツiを、Bビット以下のハッシュ値で表現することができる。実施例ここでは、画像データベースを対象に、本実施の形態で実施したハッシュ値に基づいて類似画像を検索する一実施例について説明する。この実施例の画像データベースには、約20,000の画像が登録されている。各画像は、10種類の異なるオブジェクトが示されている。この実施例では、同じオブジェクトを示す画像を、画像データベースに登録された画像の中から探し出すことを目的とした。従来の手法であれば、画像データベースに登録された全ての画像から特徴量を抽出しておき、閲覧画像の特徴量と類似度の高い画像データベース中の画像を推薦結果として出力する。一方、本実施例では、これをハッシュ値によって実施する。特徴量は任意のものを用いて構わないが、本実施例では画像を28ピクセル×28ピクセル=784ピクセルに縮小し、各ピクセルの輝度値256諧調をそのまま用いた。すなわち、784次元の整数ベクトルであり、6,272bitに相当する。これは予め、画像データベース中の全ての画像からこの特徴量を抽出しておく。さらに、本実施の形態によって、コンテンツの特徴量からハッシュ値を生成し、これを画像データベースに登録しておく。この実施例では、本実施の形態によって生成したハッシュ値による類似検索精度と、非特許文献1、2の技術によって生成したハッシュ値による類似検索精度とを比較した。図6に、ハッシュ値のビット数ハッシュ関数の数を変化させたときの検索精度を示す。いずれのビット数においても、本実施例の方が高い精度を得ている。本実施例によれば、通常1コンテンツあたり6,272bitが必要であったところを、8bit~32bitといった非常に小さい情報量で表現した場合であっても、高い精度を実現できている。このことから、本実施例による技術の高い効果が確認できる。以上説明したように、本実施の形態によれば、複数のコンテンツiの各特徴量xiを特徴量空間Rd上に特徴点として分布させ少なくとも2つの群に分類し、各郡の全特徴点からの垂直距離が等しい直線を求め、特徴点が当該直線によって2分割されたいずれの空間側にあるかに基づいてコンテンツiをバイナリ値に変換するハッシュ関数hkを生成する、より具体的には、特徴量xiの群間距離と群内距離に基づいてハッシュ関数hkを生成するので、揺らぎに頑健なハッシュ関数を生成することができることから、結果として、大量のマルチメディアコンテンツから、高速、省メモリでありながら、高精度で類似するコンテンツを発見することのできるコンテンツ変換方法、コンテンツ変換装置及びコンテンツ変換プログラムを提供できる。また、本実施の形態によれば、複数のハッシュ関数hkを生成する際に、特徴量xiの分布を逐次補正しながらハッシュ関数を生成するので、互いに相関の低いハッシュ関数を生成できることから、結果として、より少ないハッシュ関数の数ビット数で、高精度な類似コンテンツ検索を実施することができる。"