(57)【要約】【課題】異なる種別のコンテンツ間の意味の相関を考慮したハッシュ関数を生成することができるようにする。【解決手段】特徴抽出部３０が、コンテンツの各々について、種別に応じた特徴量を抽出する。意味ラベル相関計算部３２が、種別が異なるコンテンツ間の組み合わせの各々に対し、当該組み合わせのコンテンツの各々について付与されたコンテンツの意味概念を表す意味ラベルに基づいて、当該組み合わせの意味ラベルの相関を計算する。ハッシュ関数生成部３４が、コンテンツの各々についての特徴量と、意味ラベル相関計算部３２によって計算された組み合わせの各々の意味ラベルの相関とに基づいて、当該組み合わせの意味ラベルの相関が高いほど、当該組み合わせのコンテンツの各々から抽出された特徴量に対応するハッシュ値の間の距離が小さくなるように、コンテンツの種別毎の特徴量に対応するハッシュ値を求めるためのハッシュ関数を生成する。【選択図】図１
2016066012.tif 000002
【特許請求の範囲】
【請求項１】
特徴抽出手段、意味ラベル相関計算手段、及びハッシュ関数生成手段を含むハッシュ関数生成装置におけるハッシュ関数生成方法であって、
前記特徴抽出手段が、コンテンツの種別毎に、前記種別のコンテンツの各々について、前記コンテンツから前記種別に応じた特徴量を抽出するステップと、
前記意味ラベル相関計算手段が、種別が異なるコンテンツ間の組み合わせの各々に対し、前記組み合わせのコンテンツの各々について付与された前記コンテンツの意味概念を表す意味ラベルに基づいて、前記組み合わせの意味ラベルの相関を計算するステップと、
前記ハッシュ関数生成手段が、前記特徴抽出手段によって前記コンテンツの種別毎に抽出された前記コンテンツの各々についての前記特徴量と、前記意味ラベル相関計算手段によって計算された前記組み合わせの各々の意味ラベルの相関とに基づいて、前記組み合わせの各々について、前記組み合わせの意味ラベルの相関が高いほど、前記組み合わせのコンテンツの各々から抽出された前記特徴量に対応するハッシュ値の間の距離が小さくなるように、コンテンツの種別毎の前記特徴量に対応するハッシュ値を求めるためのハッシュ関数を生成するステップと、
を含むハッシュ関数生成方法。
【請求項２】
前記特徴抽出手段が特徴量を抽出するステップは、前記コンテンツの種別毎に、前記種別の複数のコンテンツの各々について、前記コンテンツから前記種別に応じた特徴量を抽出し、
前記ハッシュ関数生成手段が前記ハッシュ関数を生成するステップは、
前記特徴抽出手段によって前記コンテンツの種別毎に抽出された前記複数のコンテンツの各々についての前記特徴量と、前記意味ラベル相関計算手段によって計算された前記組み合わせの各々の意味ラベルの相関とに基づいて、前記コンテンツの種別毎に、前記種別の複数のコンテンツの各々について、前記種別に応じた特徴量が存在する空間である特徴量空間において、前記種別に応じた特徴量を、前記種別に応じた特徴量の近傍に存在する他のコンテンツの前記種別に応じた特徴量に対応するハッシュ値の線形結合で表した多様体構造に基づいて求められる前記種別に応じた特徴量に対応するハッシュ値と、前記コンテンツから抽出された前記種別に応じた特徴量に対応するハッシュ値との距離が小さくなり、かつ、前記組み合わせの各々について、前記組み合わせの意味ラベルの相関が高いほど、前記組み合わせのコンテンツの各々から抽出された前記特徴量に対応するハッシュ値の間の距離が小さくなるように、コンテンツの種別毎の前記特徴量に対応するハッシュ値を求めるためのハッシュ関数を生成する
請求項１記載のハッシュ関数生成方法。
【請求項３】
前記ハッシュ関数は、前記特徴抽出手段によって抽出された前記コンテンツの前記特徴量と、前記ハッシュ関数のパラメータとの内積に基づいて、前記特徴量に対応するハッシュ値を出力する関数である
請求項１又は請求項２記載のハッシュ関数生成方法。
【請求項４】
前記ハッシュ値をバイナリ値とした請求項１〜請求項３の何れか１項記載のハッシュ関数生成方法。
【請求項５】
特徴抽出手段、及びハッシュ値生成手段を含むハッシュ値生成装置におけるハッシュ値生成方法であって、
前記特徴抽出手段が、コンテンツから前記コンテンツの種別に応じた特徴量を抽出するステップと、
前記ハッシュ値生成手段が、前記特徴抽出手段によって抽出された前記コンテンツの前記特徴量と、請求項１〜請求項４の何れか１項記載のハッシュ関数生成方法によって生成された前記コンテンツの種別に応じた特徴量に対応するハッシュ値を求めるための前記ハッシュ関数とに基づいて、前記コンテンツの前記特徴量に対応するハッシュ値を生成するステップと、
を含むハッシュ値生成方法。
【請求項６】
コンテンツの種別毎に、前記種別のコンテンツの各々について、前記コンテンツから前記種別に応じた特徴量を抽出する特徴抽出手段と、
種別が異なるコンテンツ間の組み合わせの各々に対し、前記組み合わせのコンテンツの各々について付与された前記コンテンツの意味概念を表す意味ラベルに基づいて、前記組み合わせの意味ラベルの相関を計算する意味ラベル相関計算手段と、
前記特徴抽出手段によって前記コンテンツの種別毎に抽出された前記コンテンツの各々についての前記特徴量と、前記意味ラベル相関計算手段によって計算された前記組み合わせの各々の意味ラベルの相関とに基づいて、前記組み合わせの各々について、前記組み合わせの意味ラベルの相関が高いほど、前記組み合わせのコンテンツの各々から抽出された前記特徴量に対応するハッシュ値の間の距離が小さくなるように、コンテンツの種別毎の前記特徴量に対応するハッシュ値を求めるためのハッシュ関数を生成するハッシュ関数生成手段と、
を含むハッシュ関数生成装置。
【請求項７】
コンテンツから前記コンテンツの種別に応じた特徴量を抽出する特徴抽出手段と、
前記特徴抽出手段によって抽出された前記コンテンツの前記特徴量と、請求項６記載のハッシュ関数生成装置によって生成された前記コンテンツの種別に応じた特徴量に対応するハッシュ値を求めるための前記ハッシュ関数とに基づいて、前記コンテンツの前記特徴量に対応するハッシュ値を生成するハッシュ値生成手段と、
を含むハッシュ値生成装置。
【請求項８】
請求項１〜請求項４の何れか１項記載のハッシュ関数生成方法、又は請求項５記載のハッシュ値生成方法の各ステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハッシュ関数生成方法、ハッシュ値生成方法、装置、及びプログラムに係り、特に、ハッシュ関数を生成するハッシュ関数生成方法、ハッシュ値生成方法、装置、及びプログラムに関する。
【背景技術】
【０００２】
通信環境やコンピュータ、分散処理基盤技術の高度・高品質化により、ネットワークに流通するコンテンツ（画像・映像・音声・文書等）の数は膨大なものとなっている。例えば、ある検索エンジンがインデクシングしているウェブページの数は数兆にのぼるといわれている。また、あるサイトでは、日々３．５億の画像がアップロードされていると報告されており、また、あるサイトでは、１分当たり６４時間分の映像が新規に公開されているとの報告もある。
【０００３】
このような膨大な量のコンテンツは、利用者にとっては豊富な情報源となる一方で、閲覧したいコンテンツに素早くアクセスすることがますます困難になっているという課題ももたらしている。このような流れの中、閲覧・視聴したいコンテンツを効率的に探し出すためのメディア解析技術への要望がますます高まってきている。
【０００４】
コンテンツの解析においては、類似したコンテンツの発見が重要な役割を果たす。例えば、コンテンツを分類する場合は、同じようなコンテンツは同じカテゴリに分類する。あるいは検索の場合、あるコンテンツをクエリとして与えたとき、このコンテンツに類似したコンテンツを検索することが基本的な要件となる。そのほか、コンテンツ推薦においても利用者がこれまでに閲覧した／閲覧しているコンテンツと類似したコンテンツを発見してこれを推薦するし、コンテンツ要約の場合においても、類似したコンテンツを提示することは冗長であるため、これを発見して省くような処理が必要となる。
【０００５】
ここで、類似コンテンツを発見する典型的な手続きについて説明する。まず、コンテンツをある特徴量によって表現する。次に、特徴量同士の近さを測ることで類似度を計算し、この類似度に基づいて類似コンテンツを発見する。単純な例を挙げれば、コンテンツが画像や映像であれば、画像（映像フレーム）の色ヒストグラムを特徴量としてその類似度を測ることができる。コンテンツが文書であれば、単語の出現頻度をヒストグラム化したもの（Ｂａｇ−ｏｆ−Ｗｏｒｄｓヒストグラムなどと呼ぶ）を特徴量として類似度を測ることができる。いうまでもなく、仮にコンテンツの数が１０００あれば、１０００のコンテンツそれぞれに対して類似度を計算し、結果類似度の高いコンテンツを類似コンテンツとして拾い上げる必要がある。
【０００６】
しかしながら、前述のように、膨大な量のコンテンツを対象にした場合、下記２つの重要な課題がある。
【０００７】
（１）計算時間とメモリを大量に消費する。
（２）同一種別の類似コンテンツしか発見できない。
【０００８】
通常、コンテンツの特徴量（ベクトル）の次元は高次元になることが多く、その類似度の計算には膨大な時間を要する。一般に、文書のＢａｇ−ｏｆ−Ｗｏｒｄｓヒストグラムの次元は、単語の種類（語彙）と同次元になる。画像の色ヒストグラムのような単純な特徴量であっても、一般に数百〜数千次元の実数値ベクトルとなるし、最近用いられるスパース表現やフィッシャーカーネルに基づく特徴表現では、数十万〜数百万次元のベクトルとなることもあり得る。さらに、全てのコンテンツの組に対してその類似度を計算する必要があるため、どのような類似度計算手段を用いようとも、特徴量の次元がＤ、コンテンツがＮ個あったとするとＯ（ＤＮ）の計算量を要する。また、即時検索を実行するためには、特徴量あるいはその類似度をメモリに蓄積しておくことが好ましいが、これを行うためにはＯ（Ｎ２）のメモリが必要となる。このように、億を超えるオーダのコンテンツを扱う必要がある昨今においては、非現実的な時間とメモリを要するのである。
【０００９】
さらに、昨今のコンテンツは、単一種別のみで流通することは稀である。例えば、通常ウェブページには文書や画像が混在しているし、映像や音声が付加されていることも少なくない。これらのコンテンツは、メディアの種別こそ異なるものの、あるコンテキストに即しながら相互に関連した内容を持つことが多い。然るに、例えば文書に類似した文書だけでなく、関連する画像や映像、音声に至るまで、メディアの隔たり無く類似したコンテンツを発見できることが好ましい。しかしながら、これは上記通常のやり方では不可能である。コンテンツの類似度を測るためには、コンテンツを表現する特徴量が同一である必要があるが、メディアの種別が異なる以上、同一の特徴量で記述することが不可能であるためである。検索エンジンなどにおいては、キーワード検索によって画像や映像などを検索することができるが、これは「同一ウェブページに共起している単語と画像なら類似している」といったごく単純な仮定に基づくものであって、文書の内容と画像の内容を評価しているわけではない。
【００１０】
このような問題を解決するために、従来からいくつかの発明がなされ、開示されている。
【００１１】
例えば、特許文献１に開示されている技術では、コンテンツの特徴量と、異なる２つのコンテンツを関連付けるべきか否かを示す関連情報（正解データ）に基づいてハッシュ関数を求め、このハッシュ関数を基に特徴量を低ビットなハッシュ値に変換する。
【００１２】
また、非特許文献１に開示されている技術では、近接する任意の２つのコンテンツ（特徴量）において、元の特徴量の類似度と衝突確率が等しくなるようなハッシュ関数群を生成する。典型的な類似度としてコサイン類似度を考えており、その場合のハッシュ関数生成の基本的な手続きは、特徴量空間にランダムな超平面を複数生成することによる（ｒａｎｄｏｍ  ｐｒｏｊｅｃｔｉｏｎと呼ばれる）。各超平面のどちら側に特徴量が存在するかによって特徴量をハッシュ化し、全てのコンテンツ間で類似度を求めることなく、近似的に類似コンテンツを発見することができる。
【００１３】
また、非特許文献２に開示されている技術は、特徴量の分布を捉え、その分布に対して最適なハッシュ値を構成する。具体的には、特徴量空間における多様体構造を捉え、その多様体構造を最適に保存するバイナリ空間（ハッシュ空間）への非線形な埋め込みを求めることで、元の高次元な特徴量を、低ビットなハッシュ値に変換する。そのハッシュ値の類似性を評価することで、高速な類似コンテンツの発見を実現することができる。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２０１３−６８８８４号公報
【非特許文献】
【００１５】
【非特許文献１】M. Datar, N. Immorlica, P. Indyk, V.S. Mirrokni，“Locality-Sensitive Hashing Scheme based on p-Stable Distributions”，In Proceedings of the Twentieth Annual Symposium on Computational Geometry，2004，p.253-262.
【非特許文献２】入江  豪、Ｚｈｅｎｇｕｏ  Ｌｉ、Ｓｈｉｈ−Ｆｕ  Ｃｈａｎｇ、「構造を保存するハッシング」、画像の認識・理解シンポジウム、２０１３．
【発明の概要】
【発明が解決しようとする課題】
【００１６】
特許文献１及び非特許文献１、２に開示されている技術では、元のコンテンツをコンパクトなハッシュ値に変換することで、非常に高精度かつ高速な類似コンテンツの発見を可能にしていた。しかしながら、いずれの技術も、異なるメディアの類似コンテンツを相互に発見することのできるものではなく、現在に至るまで、いずれの技術によっても、高精度でありながら、高速かつ省メモリであるような技術は実現されていないのが実状である。
【００１７】
本発明は、上記の事情を鑑みてなされたもので、異なる種別のコンテンツ間の意味の相関を考慮したハッシュ関数を生成することができるハッシュ関数生成方法、ハッシュ値生成方法、装置、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１８】
上記の目的を達成するために本発明に係るハッシュ関数生成方法は、特徴抽出手段、意味ラベル相関計算手段、及びハッシュ関数生成手段を含むハッシュ関数生成装置におけるハッシュ関数生成方法であって、前記特徴抽出手段が、コンテンツの種別毎に、前記種別のコンテンツの各々について、前記コンテンツから前記種別に応じた特徴量を抽出するステップと、前記意味ラベル相関計算手段が、種別が異なるコンテンツ間の組み合わせの各々に対し、前記組み合わせのコンテンツの各々について付与された前記コンテンツの意味概念を表す意味ラベルに基づいて、前記組み合わせの意味ラベルの相関を計算するステップと、前記ハッシュ関数生成手段が、前記特徴抽出手段によって前記コンテンツの種別毎に抽出された前記コンテンツの各々についての前記特徴量と、前記意味ラベル相関計算手段によって計算された前記組み合わせの各々の意味ラベルの相関とに基づいて、前記組み合わせの各々について、前記組み合わせの意味ラベルの相関が高いほど、前記組み合わせのコンテンツの各々から抽出された前記特徴量に対応するハッシュ値の間の距離が小さくなるように、コンテンツの種別毎の前記特徴量に対応するハッシュ値を求めるためのハッシュ関数を生成するステップと、を含んで構成されている。
【００１９】
本発明に係るハッシュ関数生成装置は、コンテンツの種別毎に、前記種別のコンテンツの各々について、前記コンテンツから前記種別に応じた特徴量を抽出する特徴抽出手段と、種別が異なるコンテンツ間の組み合わせの各々に対し、前記組み合わせのコンテンツの各々について付与された前記コンテンツの意味概念を表す意味ラベルに基づいて、前記組み合わせの意味ラベルの相関を計算する意味ラベル相関計算手段と、前記特徴抽出手段によって前記コンテンツの種別毎に抽出された前記コンテンツの各々についての前記特徴量と、前記意味ラベル相関計算手段によって計算された前記組み合わせの各々の意味ラベルの相関とに基づいて、前記組み合わせの各々について、前記組み合わせの意味ラベルの相関が高いほど、前記組み合わせのコンテンツの各々から抽出された前記特徴量に対応するハッシュ値の間の距離が小さくなるように、コンテンツの種別毎の前記特徴量に対応するハッシュ値を求めるためのハッシュ関数を生成するハッシュ関数生成手段と、を含んで構成されている。
【００２０】
上記ハッシュ関数生成方法及び上記ハッシュ関数生成装置における、前記特徴抽出手段は、前記コンテンツの種別毎に、前記種別の複数のコンテンツの各々について、前記コンテンツから前記種別に応じた特徴量を抽出し、前記ハッシュ関数生成手段は、前記特徴抽出手段によって前記コンテンツの種別毎に抽出された前記複数のコンテンツの各々についての前記特徴量と、前記意味ラベル相関計算手段によって計算された前記組み合わせの各々の意味ラベルの相関とに基づいて、前記コンテンツの種別毎に、前記種別の複数のコンテンツの各々について、前記種別に応じた特徴量が存在する空間である特徴量空間において、前記種別に応じた特徴量を、前記種別に応じた特徴量の近傍に存在する他のコンテンツの前記種別に応じた特徴量に対応するハッシュ値の線形結合で表した多様体構造に基づいて求められる前記種別に応じた特徴量に対応するハッシュ値と、前記コンテンツから抽出された前記種別に応じた特徴量に対応するハッシュ値との距離が小さくなり、かつ、前記組み合わせの各々について、前記組み合わせの意味ラベルの相関が高いほど、前記組み合わせのコンテンツの各々から抽出された前記特徴量に対応するハッシュ値の間の距離が小さくなるように、コンテンツの種別毎の前記特徴量に対応するハッシュ値を求めるためのハッシュ関数を生成するようにすることができる。
【００２１】
本発明における前記ハッシュ関数は、前記特徴抽出手段によって抽出された前記コンテンツの前記特徴量と、前記ハッシュ関数のパラメータとの内積に基づいて、前記特徴量に対応するハッシュ値を出力する関数であるようにすることができる。
【００２２】
本発明における前記ハッシュ値を、バイナリ値とすることができる。
【００２３】
本発明に係るハッシュ値生成方法は、特徴抽出手段、及びハッシュ値生成手段を含むハッシュ値生成装置におけるハッシュ値生成方法であって、前記特徴抽出手段が、コンテンツから前記コンテンツの種別に応じた特徴量を抽出するステップと、前記ハッシュ値生成手段が、前記特徴抽出手段によって抽出された前記コンテンツの前記特徴量と、請求項１又は請求項２記載のハッシュ関数生成方法によって生成された前記コンテンツの種別に応じた特徴量に対応するハッシュ値を求めるための前記ハッシュ関数とに基づいて、前記コンテンツの前記特徴量に対応するハッシュ値を生成するステップと、を含んで構成されている。
【００２４】
本発明に係るハッシュ値生成装置は、コンテンツから前記コンテンツの種別に応じた特徴量を抽出する特徴抽出手段と、前記特徴抽出手段によって抽出された前記コンテンツの前記特徴量と、請求項５記載のハッシュ関数生成装置によって生成された前記コンテンツの種別に応じた特徴量に対応するハッシュ値を求めるための前記ハッシュ関数とに基づいて、前記コンテンツの前記特徴量に対応するハッシュ値を生成するハッシュ値生成手段と、を含んで構成されている。
【００２５】
本発明のプログラムは、本発明のハッシュ関数生成方法、又は本発明のハッシュ値生成方法の各ステップをコンピュータに実行させるためのプログラムである。
【発明の効果】
【００２６】
以上説明したように、本発明のハッシュ関数生成方法、装置、及びプログラムによれば、種別が異なるコンテンツ間の組み合わせの各々に対し、当該組み合わせのコンテンツの各々について付与されたコンテンツの意味概念を表す意味ラベルに基づいて、当該組み合わせの意味ラベルの相関を計算し、コンテンツの種別毎に抽出されたコンテンツの各々についての特徴量と、組み合わせの各々の意味ラベルの相関とに基づいて、組み合わせの各々について、組み合わせの意味ラベルの相関が高いほど、当該組み合わせのコンテンツの各々から抽出された特徴量に対応するハッシュ値の間の距離が小さくなるように、コンテンツの種別毎の特徴量に対応するハッシュ値を求めるためのハッシュ関数を生成することにより、異なる種別のコンテンツ間の意味の相関を考慮したハッシュ関数を生成することができる、という効果が得られる。
【００２７】
また、本発明のハッシュ値生成方法、装置、及びプログラムによれば、異なる種別のコンテンツ間の意味の相関を考慮したハッシュ関数を用いて、ハッシュ値を生成することにより、検索クエリとしてのコンテンツと類似するコンテンツを、異なる種別のコンテンツからも発見することができる、という効果が得られる。
【図面の簡単な説明】
【００２８】
【図１】本発明の第１の実施の形態に係る情報処理装置の構成を示す概略図である。
【図２】ハッシュ関数を説明するための説明図である。
【図３】特徴量空間における多様体構造を説明するための説明図である。
【図４】特徴量空間における多様体構造を考慮したハッシュ関数を説明するための説明図である。
【図５】画像特徴量空間における特徴量と文書特徴空間における特徴量との相関関係を説明するための説明図である。
【図６】本発明の第１の実施の形態に係る情報処理装置におけるハッシュ関数生成処理ルーチンの内容を示すフローチャートである。
【図７】本発明の第１の実施の形態に係る情報処理装置におけるハッシュ値生成処理ルーチンの内容を示すフローチャートである。
【図８】本発明の第３の実施の形態に係る情報処理システムの構成を示す概略図である。
【図９】ハッシュ値によって対応付けられたコンテンツの一例を示す図である。
【発明を実施するための形態】
【００２９】
＜概要＞
本発明の実施の形態では、画像同士、文書同士などといった、同一のメディア種別（以下、単に種別と称する。）のコンテンツのみならず、画像から文書、画像から音声などのように、関連する異なる種別のコンテンツ同士を、高速かつ省メモリでありながらも高精度に発見するためのハッシュ関数の生成及びハッシュ値の生成を行う情報処理装置に、本発明を適用した場合を例に説明する。
【００３０】
本発明の実施の形態は、コンテンツ間の種別が異なり、かつコンテンツ間の関係が未知であるような場合であっても、意味ラベルに基づいて相互関係を取り扱うことができ、次のような利点がある。
【００３１】
（１）異種の種別間のコンテンツ間の関係を直接与える場合、コンテンツ数がＮであれば、Ｎ２通りの組み合わせを与えなければならないが、これは大規模なデータベースを扱う場合には非現実的な量となってしまう。本発明の実施の形態では、コンテンツのそれぞれに対して意味ラベルさえ付与しておけばよいため、コンテンツ数Ｎに比例する手間で済むという利点がある。
【００３２】
（２）種別の異なるコンテンツ間の関係を与える場合には、関係のある／なしの２値によって与えるのが通常であった。仮に、関係の強さを与える場合であっても、その強度の判断は主観的にならざるを得ず、合理的な関係の強度を定めることは困難であった。本発明の実施の形態では、コンテンツ間の関係の強度は意味ラベルの相関として自動的に求めることが可能であるため、このような主観によるずれの影響を受けないという利点がある。具体的には、例えば、ある４つのコンテンツが下記の通りの意味ラベルを持つとする。
【００３３】
コンテンツ１：「サッカー」「ボール」
コンテンツ２：「犬」「ボール」
コンテンツ３：「犬」「ボール」
コンテンツ４：「犬」「猫」
【００３４】
仮に、従来のように関係のある／なしによる基準を考えた場合、上記のような４つのコンテンツを考えると、「１つでも意味ラベルが一致しているものは関係があるとみなす」か、「全ての意味ラベルが一致していない限り関係がないとみなす」かのいずれかが考えられる。前者の場合はコンテンツ１〜４全てが関連していることになってしまうため、直感にそぐわないし、後者の場合はコンテンツ２と３のみにしか関連性が規定されず、部分的な意味ラベルの一致は考慮されない。本発明の実施の形態による方法では、コンテンツ２と３の関係の強さは１、それ以外のコンテンツの関係の強さは０．５となり、より直感に合った関係の表現が可能となる。この特徴によって、単純な関係のある／なしを考える場合よりも、より高精度に関連するコンテンツを発見することができる。
【００３５】
これらの効果を活用した具体的な産業応用上の利用シーンとして、街中を歩いているときに気になる場所や商品をモバイル端末で写真撮影し、類似した場所・商品を検索することが可能になるという利点がある。ｅコマースサイトにある各商品は、ある商品カテゴリ（例えば「パソコン」、「衣類」など）に属しており、また、商品説明文が付与されていることが常である。また、特定のランドマーク（「東京タワー」）などであれば、例えばＷｉｋｉｐｅｄｉａ（登録商標）等のウェブ上に記事があることが多く、そのランドマークを写した画像の他、ランドマーク種別（例えば「ビル」、「モニュメント」など）や、そのランドマークを説明する文書が手に入る。本発明の実施の形態によれば、画像から抽出された特徴量、これに付随する説明文に加え、商品カテゴリやランドマーク種別を意味ラベルとして定めることにより、これらの関係を相補的に利用したハッシュ関数を生成することが可能になる。このように生成されたハッシュ関数によるハッシュ値は、単純に画像のみ、あるいは画像と文書のみなどの情報を用いて生成したハッシュ値よりも意味的な情報を含んだものとなる。結果として、高速・省メモリでありながら、従来の発明では達成できない検索精度を実現することが可能になる。
【００３６】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００３７】
＜第１の実施の形態＞
＜システム構成＞
本発明の第１の実施の形態に係る情報処理装置１は、ハッシュ関数を生成し、生成されたハッシュ関数を用いてハッシュ値を生成する。この情報処理装置１は、ＣＰＵと、ＲＡＭと、後述するハッシュ関数生成処理ルーチン及びハッシュ値生成処理ルーチンを実行するためのプログラムを記憶したＲＯＭとを備えたコンピュータで構成され、機能的には次に示すように構成されている。図１に示すように、情報処理装置１は、入力部２と、演算部３と、出力部４とを備えている。
【００３８】
また、図１に示すコンテンツデータベース５には、複数のコンテンツが格納されている。コンテンツデータベース５には、少なくともコンテンツ自体、あるいは、当該コンテンツデータの所在を一意に示すアドレスが格納されている。コンテンツは、例えば、文書であれば文書ファイル、画像であれば画像ファイル、音であれば音ファイル、映像であれば映像ファイルなどであり、好ましくは、コンテンツデータベース５には、更に、各コンテンツの種別とそれ自体を一意に識別可能な識別子が格納されているものとする。
【００３９】
さらに、コンテンツデータベース５には、異なる種別のメディアが含まれているものとし（例えば、画像と文書等）、各コンテンツに対して意味ラベルが関連づけて付与されているものとする。意味ラベルは、各コンテンツが特定の意味概念に属するか否かを表す情報である。ここでいう意味概念は、コンテンツがその概念に帰属するか否かを判定できる概念であればなんでもよい。例えば画像であれば、当該画像の被写体やその風景などを考えればよく（例えば、画像に犬が撮影されていれば「犬」、山を撮影した画像であれば「山」などを意味概念とするのでもよい）、文書であればその文書の主たるトピックなどを意味概念としてもよい（例えば、犬について説明した記事であれば「犬」などを意味概念とするのでもよい）。
【００４０】
意味ラベルは、各コンテンツが属する意味概念を集合として記述することによって表現される。例えば、ある画像１が、被写体として「ボール」にじゃれる「犬」を撮影した画像であるような場合、
【００４１】
画像１：「犬」、「ボール」
【００４２】
として記述すればよい。また、同様に、文書２が「犬」や「猫」などのペットについて説明した文書である場合、
【００４３】
文書２：「犬」、「猫」
【００４４】
として記述することができる。なお、このように表現された意味ラベルは、容易にバイナリベクトルとして表現できることは言うまでもない。仮に、意味ラベルの種類が「猫」、「犬」、「家」、「ボール」の４つで定義されているとする。このとき、４次元のベクトルの要素が順に「猫」、「犬」、「家」、「ボール」に対応すると考えれば、画像１は、
【００４５】
画像１：０１０１
【００４６】
文書２は、
【００４７】
文書２：１１００
【００４８】
と表すことができる。
【００４９】
意味ラベルを与える手段は問わないが、好ましくは人手によって与える。
【００５０】
ここで、意味ラベルは、必ずしもコンテンツデータベース５に格納されている全てのコンテンツに対して与えられている必要はなく、コンテンツデータベース５に格納されている一部のコンテンツに対して与えられていてもよい。
【００５１】
その他、メタデータとして、例えばコンテンツの内容を表現するもの（コンテンツのタイトル、概要文、キーワード）、コンテンツのフォーマットに関するもの（コンテンツのデータ量、サムネイル等のサイズ）などを含んでいてもよい。
【００５２】
情報処理装置１は、コンテンツデータベース５と通信手段を介して接続され、入力部２、出力部４を介して相互に情報通信し、コンテンツデータベース５に登録されたコンテンツに基づいてハッシュ関数を生成するハッシュ関数生成処理と、生成したハッシュ関数を用いてコンテンツを複数のバイナリ値に変換するハッシュ値生成処理を行う。
【００５３】
また、コンテンツデータベース５は、情報処理装置１の内部にあっても外部にあっても構わず、通信手段は任意の公知のものを用いることができるが、本実施の形態においては、外部にあるものとして、通信手段は、インターネット、ＴＣＰ／ＩＰにより通信するよう接続されているものとする。コンテンツデータベース５は、いわゆるＲＤＢＭＳ（Relational Database Management System）などで構成されているものとしてもよい。
【００５４】
情報処理装置１の各部、及びコンテンツデータベース５は、演算処理装置、記憶装置等を備えたコンピュータやサーバ等により構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムは情報処理装置１が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。もちろん、その他いかなる構成要素についても、単一のコンピュータやサーバによって実現しなければならないものではなく、ネットワークによって接続された複数のコンピュータに分散して実現してもよい。
【００５５】
次に、図１に示す情報処理装置１の各部について説明する。
【００５６】
入力部２は、コンテンツデータベース５から、複数のコンテンツと、複数のコンテンツ各々についての種別と、複数のコンテンツ各々に付与された意味ラベルとを取得する。また、入力部２は、検索クエリとしてのコンテンツと、当該コンテンツの種別との入力を受け付ける。
【００５７】
演算部３は、特徴抽出部３０と、意味ラベル相関計算部３２と、ハッシュ関数生成部３４と、ハッシュ関数記憶部３６と、ハッシュ値生成部３８とを備えている。
【００５８】
特徴抽出部３０は、入力部２によって取得したコンテンツの種別毎に、当該種別の複数のコンテンツの各々について、コンテンツから種別に応じた特徴量を抽出する。
また、特徴抽出部３０は、入力部２によって受け付けた検索クエリとしてのコンテンツから種別に応じた特徴量を抽出する。
【００５９】
特徴抽出部３０における特徴量を抽出する処理は、コンテンツの種別に依存する。例えば、コンテンツが文書であるか、画像であるか、音であるか、映像であるかによって、抽出するまたは抽出できる特徴量は変化する。ここで、各種別に対してどのような特徴量を抽出するかは、本実施の形態の要件として重要ではなく、一般に知られた公知の特徴抽出処理を用いてよい。具体的には、あるコンテンツから抽出された次元を持つ数値データ（スカラー又はベクトル）であれば、あらゆる特徴量に対して有効である。したがって、ここでは、本実施形態に適する、各種コンテンツに対する特徴抽出処理の一例を説明する。
【００６０】
コンテンツが文書である場合には、文書中に出現する単語の出現頻度を用いることができる。例えば、公知の形態素解析を用いて、名詞、形容詞等に相当する単語ごとに、その出現頻度を計数すればよい。この場合、各文書の特徴量は、単語種別と同じだけの次元を持つベクトルとして表現される。
【００６１】
コンテンツが画像である場合には、例えば、明るさ特徴、色特徴、テクスチャ特徴、コンセプト特徴、景観特徴、形状特徴などを抽出する。明るさ特徴は、ＨＳＶ色空間におけるＶ値を数え上げることで、ヒストグラムとして抽出することができる。この場合、各画像の特徴量は、Ｖ値の量子化数（例えば、１６ビット量子化であれば２５６諧調）と同数の次元を持つベクトルとして表現される。
【００６２】
色特徴は、Ｌ＊ａ＊ｂ＊色空間における各軸（Ｌ＊、ａ＊、ｂ＊）の値を数え上げることで、ヒストグラムとして抽出することができる。各軸のヒストグラムのビンの数は、例えば、Ｌ＊に対して４、ａ＊に対して１４、ｂ＊に対して１４などとすればよく、この場合、３軸の合計ビン数は、４×１４×１４＝７８４、すなわち７８４次元のベクトルとなる。
【００６３】
テクスチャ特徴としては、濃淡ヒストグラムの統計量（コントラスト）やパワースペクトルなどを求めればよい。あるいは、局所特徴量を用いると、色や動きなどと同様、ヒストグラムの形式で抽出することができるようになるため好適である。局所特徴としては、例えば下記の参考文献１に記載されるＳＩＦＴ（Scale Invariant Feature Transform）や、下記の参考文献２に記載されるＳＵＲＦ（Speeded Up Robust Features）などを用いることができる。
【００６４】
［参考文献１］D.G. Lowe, “Distinctive Image Features from Scale-Invariant Keypoints ", International Journal of Computer Vision, pp.91-110, 2004
［参考文献２］H. Bay, T. Tuytelaars, and L.V. Gool, “SURF: Speeded Up Robust Features", Lecture Notes in Computer Science, vol. 3951, pp.404-417, 2006
【００６５】
これらによって抽出される局所特徴は、例えば１２８次元の実数値ベクトルとなる。このベクトルを、予め学習して生成しておいた符号長を参照して、符号に変換し、その符号の数を数え上げることでヒストグラムを生成することができる。この場合、ヒストグラムのビンの数は、符号長の符号数と一致する。又は、参考文献３に記載のスパース表現や、参考文献４、５に記載のフィッシャーカーネルに基づく特徴表現などを利用してもよい。
【００６６】
［参考文献３］Jinjun Wang, Jianchao Yang, Kai Yu, Fengjun Lv, Thomas Huang, and Yihong Gong, “Locality-constrained Linear Coding for Image Classification”, IEEE Conference on Computer Vision and Pattern Recognition, pp. 3360-3367, 2010.
［参考文献４］Florent Perronnin, Jorge Sanchez, Thomas Mensink, “Improving the Fisher Kernel for Large-Scale Image Classification”, European Conference on Computer Vision, pp. 143-156, 2010.
［参考文献５］Herve Jegou, Florent Perronnin, Matthijs Douze, Jorge Sanchez, Patrick Perez, Cordelia Schmid, “Aggregating Local Image Descriptors into Compact Codes”, IEEE Trans. Pattern Recognition and Machine Intelligence, Vol. 34, No. 9, pp. 1704-1716, 2012.
【００６７】
結果として生成される特徴量は、いずれの場合にも、符号長の符号数に依存した長さを持つ実数値ベクトルになる。
【００６８】
景観特徴は、画像の風景や場面を表現した特徴量である。例えば参考文献６に記載のＧＩＳＴ記述子を用いることができる。ＧＩＳＴ記述子は画像を領域分割し、各領域に対して一定のオリエンテーションを持つフィルタを掛けたときの係数によって表現されるが、この場合、生成される特徴量は、フィルタの種類（分割する領域の数とオリエンテーションの数）に依存した長さのベクトルとなる。
【００６９】
［参考文献６］A. Oliva and A. Torralba, “Building the gist of a scene: the role of global image features in recognition”, Progress in Brain Research, 155, pp.23-36, 2006
【００７０】
コンテンツが音である場合には、音高特徴、音圧特徴、スペクトル特徴、リズム特徴、発話特徴、音楽特徴、音イベント特徴などを抽出する。音高特徴は、例えばピッチを取るものとすればよく、下記の参考文献７に記載される方法などを用いて抽出することができる。この場合、ピッチを１次元ベクトル（スカラー）として表現するか、あるいはこれをいくつかの次元に量子化しておいてもよい。
【００７１】
［参考文献７］古井貞熙，“ディジタル音声処理，４．９ピッチ抽出”，ｐｐ．５７−５９，１９８５
【００７２】
音圧特徴としては、音声波形データの振幅値を用いるものとしてもよいし、短時間パワースペクトルを求め、任意の帯域の平均パワーを計算して用いるものとしてもよい。いずれにしても、音圧を計算するバンドの数に依存した長さのベクトルとなる。
【００７３】
スペクトル特徴としては、例えばメル尺度ケプストラム係数（ＭＦＣＣ：Mel-Frequency Cepstral Coefficients）を用いることができる。
【００７４】
リズム特徴としては、例えばテンポを抽出すればよい。テンポを抽出するには、例えば下記の参考文献８に記載される方法などを用いることができる。
【００７５】
［参考文献８］E.D. Scheirer, “Tempo and Beat Analysis of Acoustic Musical Signals ”, Journal of Acoustic Society America, Vol. 103, Issue 1, pp.588-601, 1998
【００７６】
発話特徴、音楽特徴は、それぞれ、発話の有無、音楽の有無を表す。発話・音楽の存在する区間を発見するには、例えば下記の参考文献９に記載される方法などを用いればよい。
【００７７】
［参考文献９］K. Minami, A. Akutsu, H. Hamada, and Y. Tonomura, “Video Handling with Music and Speech Detection”, IEEE Multimedia, vol. 5, no. 3, pp.17-25, 1998
【００７８】
音イベント特徴としては、例えば、笑い声や大声などの感情的な音声、あるいは、銃声や爆発音などの環境音の生起などを用いるものとすればよい。このような音イベントを検出するには、例えば下記の参考文献１０に記載される方法などを用いればよい。
【００７９】
［参考文献１０］国際公開第２００８／０３２７８７号
【００８０】
コンテンツが映像である場合、映像は、一般に画像と音のストリームであるから、上記説明した画像特徴と音特徴を用いることができる。映像中のどの画像、音情報を分析するかについては、例えば、予め映像をいくつかの区間に分割し、その区間ごとに１つの画像、音から特徴抽出を実施する。
【００８１】
映像を区間に分割するには、予め決定しておいた一定の間隔で分割するものとしてもよいし、例えば下記の参考文献１１に記載される方法などを用いて、映像が不連続に切れる点であるカット点によって分割するものとしてもよい。
【００８２】
［参考文献１１］Y. Tonomura, A. Akutsu, Y. Taniguchi, and G. Suzuki, “Structured Video Computing”, IEEE Multimedia, pp.34-43, 1994
【００８３】
映像を区間に分割する場合には、望ましくは、上記の後者の方法を採用する。映像区間分割処理の結果として、区間の開始点（開始時刻）と終了点（終了時刻）が得られるが、この時刻毎に別々の特徴量として扱えばよい。
【００８４】
上記説明した特徴量の中から、一つあるいは複数を利用してもよいし、その他の公知の特徴量を用いるものとしてもよい。
【００８５】
意味ラベル相関計算部３２は、入力部２によって取得された複数のコンテンツのうち、種別が異なるコンテンツ間の組み合わせの各々に対し、当該組み合わせのコンテンツの各々について付与されたコンテンツの意味概念を表す意味ラベルに基づいて、当該組み合わせの意味ラベルの相関を計算する。
本発明の実施の形態では、意味ラベル相関計算部３２は、入力部２によって取得した複数のコンテンツ各々についてバイナリベクトルで表現された意味ラベルに基づいて、種別が異なるコンテンツ間の組み合わせの各々についての意味ラベルの相関を表す相関行列を求める。
【００８６】
ここでは、意味概念の数をＤｓとする。ある種別ｍのコンテンツｉに付与された意味ラベルをｕｍ，ｉ∈｛０，１｝Ｄｓと表す。二つの異なる種別ｍ，ｌのコンテンツｉ，ｊに付与された意味ラベルｕｍ，ｉ、およびｕｌ，ｊの相関は、以下の式（１）によって求めることができる。
【００８７】
【数１】
2016066012.tif 000003
【００８８】
種別ｍおよびｌの各コンテンツ（ｉ＝１，２，・・・，Ｎｍ、ｊ＝１，２，・・・，Ｎｌ）のペアに対して上記式（１）の相関を求めることで、以下の式（２）に示す相関行列を求めることができる。
【００８９】
【数２】
2016066012.tif 000004
【００９０】
ハッシュ関数生成部３４は、特徴抽出部３０によってコンテンツの種別毎に抽出されたコンテンツの各々についての特徴量と、意味ラベル相関計算部３２によって計算された種別が異なるコンテンツ間の組み合わせの各々の意味ラベルの相関を表す相関行列とに基づいて、種別が異なるコンテンツ間の組み合わせの各々について、当該組み合わせの意味ラベルの相関が高いほど、当該組み合わせのコンテンツの各々から抽出された特徴量に対応するハッシュ値の間の距離が小さくなるように、ハッシュ関数を生成する。ハッシュ関数は、コンテンツの種別毎の特徴量に対応するハッシュ値を求めるための関数である。
【００９１】
具体的には、ある種別ｍのコンテンツｉから抽出された特徴量をｘｍ，ｉ∈ＲＤｍと表す。種別ｍのコンテンツの特徴量次元はＤｍである。ハッシュ関数生成部３４は、種別ｍに対して、ｈｍ，ｋ：ＲＤｍ→｛−１，１｝となるハッシュ関数の集合を求める。｛−１，１｝と｛０，１｝とは情報量という観点で本質的に差異がないことに注意すれば、各ｈによって、特徴量ｘｍ，ｉ∈ＲＤｍは０または１を取るバイナリ値に写像されるから、種別ｍのコンテンツｉから抽出された特徴量ｘｍ，ｉは、ハッシュ関数集合Ｈ＝｛ｈｍ，１，ｈｍ，２，・・・，ｈｍ，Ｂ｝によってＢ個のバイナリ値、すなわち、Ｂビットのハッシュ値に変換されることになる。本発明の実施の形態では、ハッシュ値が、複数のバイナリ値によって構成される場合を例に説明する。
【００９２】
本発明の実施の形態における目的は、このハッシュ値によって、異なる種別であっても類似度の計測を可能にしたうえ、さらに時間のかかる類似度計算を省略することである。したがって、ここで生成するハッシュ関数と、それにより生成されるハッシュ値は、次の２つの性質を持つ。
【００９３】
（Ａ）元のコンテンツの種別ｍにおいて、元の空間ＲＤｍでの類似度を表すハッシュ値へと変換する。すなわち、高い類似度を持つコンテンツほど、ハッシュ値の距離（ハミング距離）が近くなる。
【００９４】
（Ｂ）異なる種別の特徴量のうち、先に求めた意味ラベルの相関行列の相関が強いペアについては、ハッシュ値の距離が近くなる。
【００９５】
本実施の形態の一例では、ハッシュ関数として、以下の式（３）で示す線形関数に基づくハッシュ関数を適用する。
【００９６】
【数３】
2016066012.tif 000005
【００９７】
ここで、ｓｉｇｎ（ｘ）は符号関数であり、ｘ≧０のとき１、ｘ＜０のとき−１をとる関数である。また、ｗｍ，ｋ∈ＲＤｍ、ｂｍ，ｋ∈Ｒのパラメータである。このハッシュ関数において、未知のパラメータはｗｍ，ｋとｂｍ，ｋの２つだけである。
【００９８】
ここで、仮にｘｍ，ｉ（ｉ＝１，２，・・・，Ｎｍ）が平均０に正規化されているとき、ｂｍ，ｋ＝０としても一般性を失わない。ｘｍ，ｉを０に正規化するには、ｘｍ，ｉの平均を、各ｘｍ，ｉから減算すればよいのであり、これはｘｍ，ｉ∈ＲＤｍにおいて常に可能であることから、ｂｍ，ｋ＝０と決定できる。したがって、以降、ｘｍ，ｉの平均は０に正規化されているとし、上記式（３）を式（４）のように定義しなおして説明する。
【００９９】
【数４】
2016066012.tif 000006
【０１００】
このハッシュ関数の定義によれば、ハッシュ関数を構成する関数φｍ，ｋ内にあるパラメータｗｍ，ｋを定めることで、ハッシュ関数を一意に定めることができる。上記式（４）に示すように、本実施の形態におけるハッシュ関数は、特徴抽出部３０によってコンテンツの種別毎に抽出されたコンテンツの特徴量ｘｍと、ハッシュ関数のパラメータｗｍ，ｋとの内積を算出し、算出された内積に基づいて、コンテンツの種別毎の特徴量に対応するハッシュ値を出力する関数である。したがって、本ハッシュ関数生成処理の目的は、このｗｍ，ｋ（ｋ＝１，２，…，Ｂ）を求めることである。
【０１０１】
ここで、上記式（４）のように規定されるハッシュ関数の意味は、幾何的には図２を用いて説明できる。図２には、特徴量空間ＲＤｍ上に、種別ｍの各コンテンツ（ｉ＝１，２，・・・，Ｎｍ）から抽出された特徴量ｘｍ，ｉ（ｉ＝１，２，・・・，Ｎ）が分布している。図２では、便宜上２次元のように図示しているが、実際にはＤｍ次元の空間である。ここでハッシュ関数を構成する関数φｍ，ｋ（ｘ）は、この特徴量空間上の原点を通る直線（実際はＤｍ−１次元の超平面）を表す。ｈｍ，ｋ（ｘ）は、本質的には符号関数であるから、その値は、特徴量の点が、ハッシュ関数を構成する関数φｍ，ｋ（ｘ）の直線のどちら側にあるかによって、１または０をとる。すなわち、上記（４）式によって定義されるハッシュ関数４１は、特徴量空間を直線によって１と０の２つの領域に分割する関数である。ここで、ｗｍ，ｋはこの直線の傾きに対応し、ｗｍ，ｋが変化すれば、分割する角度が変化することになる。
【０１０２】
前述した（Ａ）、（Ｂ）の２つの性質に合うハッシュ関数となるように、ｗｍ，ｋを求めるには、
【０１０３】
（Ａ’） 各種別において、類似したコンテンツ群が、上記図２に示した例における直線の片側に集まるように直線を引き（すなわち、ｗｍ，ｋを決める）、
【０１０４】
（Ｂ’） なおかつ、異種の種別において、相関行列の相関が高いコンテンツ同士が、ハッシュ値の空間において近い値を持つようすればよい。
【０１０５】
まず、（Ａ’）の性質を満たすための方法を説明する。メディアコンテンツにおいては、前述した特徴量の種別によらず、類似したコンテンツ同士の特徴量の分布は滑らかな多様体構造を形成することがよく知られている。多様体構造とは、簡単に言えば滑らかな変化である。分かりやすく図３を用いて説明すると、各特徴量は大まかに、曲線５１と曲線５２との滑らかに変化する２本の曲線上に分布しており、同じ曲線上の点同士は互いに類似していることが多い。上記図３でいうところの、白丸（○）と黒丸（●）で表されている特徴量は、同色であれば互いに類似したコンテンツの特徴量となる。
【０１０６】
この知見に基づけば、これらの特徴量空間において類似したコンテンツ群が直線の片側に集まるように直線を引けばよい。この観点に基づけば、図４に示す直線の内、直線６１のような直線は好ましくなく、２群の間を通る直線６２のような直線を規定するハッシュ関数のパラメータｗｍ，ｋを求めればよいことになる。
【０１０７】
続いて、（Ｂ’）の性質を満たすための方法について説明する。例えば、コンテンツの種別が画像と文書である場合について、図５を用いて説明する。図５の例では、画像特徴量を丸、文書特徴量を三角で表している。仮に、それぞれの画像と文書の特徴量空間において、性質（Ａ’）を満たすように、すなわち、多様体構造を分離するような直線７１、７２がそれぞれ得られているとし、さらに、相関行列によって、直線７３〜７６および破線７７、７８で示す関係が得られているとする。なお、分かりやすさのため、ここでは相関は正の相関しかないものとし、破線よりも直線の方が相関が強いことを表すものとする。
【０１０８】
このとき、直線７１、７２によって分離されている画像および文書特徴量のうち、より強い相関関係のある画像／文書特徴量同士、すなわち、直線で結ばれた画像／文書特徴量同士が、互いに同じハッシュ値を持つようにハッシュ関数のパラメータｗｍ，ｋを求めればよい。例えば、図５の例では白丸と白三角（△）、黒丸と黒三角（▲）がそれぞれ同じハッシュ値を持てばよい。
【０１０９】
以上示した２つの方法に基づき、本実施形態の一例では、前述の（Ａ’）と（Ｂ’）の２つの性質を満たすパラメータｗｍ，ｋを求める。本実施形態の一例では、次の２つの手続きによってｗｍ，ｋを求める。第１の手続きは、コンテンツの種別ｍごとに、その特徴量空間における多様体構造を捉える。第２の手続きは、各種別の多様体構造、および、異種の種別間の相関関係（相関行列）に基づいて、ｗｍ，ｋを求める。
【０１１０】
以下、それぞれの手続きについて詳述する。第１の手続きは、コンテンツの種別によらず同じであり、各種別に対してそれぞれ同じ処理を適用すればよい。例えば、上記非特許文献２に記載の公知の方法を用いることができる。以下、上記非特許文献２に記載の方法を説明する。
【０１１１】
多様体とは、大まかに言えば滑らかな図形であり、言い換えれば局所的に見ればユークリッドな空間とみなせる。例えば、上記図３に示すような曲線のように、いくつかの直線の集まりとして近似されるようなものであると解釈してもよい。このことは、多様体とは局所的に見れば線形で近似される構造を持つことを表しているのであり、言い換えれば、多様体上の任意の点は、同じ多様体上にあるいくつかの近傍点に基づく、近傍の相対的幾何関係によって表現できることを意味している。
【０１１２】
上記非特許文献２では、次の問題を解くことによって多様体を発見する。
【０１１３】
【数５】
2016066012.tif 000007
【０１１４】
ここで、第一項は特徴量ｘｍ，ｉを、そのユークリッド空間上での近傍集合ε（ｘｍ，ｉ）に含まれる特徴量インデクスに対応する特徴量の集合｛ｘｍ，ｊ｜ｊ∈ε（ｘｍ，ｉ）｝によって線形結合で表したときの誤差であり、ｓｍ，ｉｊはその際の結合重みである。第二項は、結合重みのベクトルｓｍ，ｉ＝｛ｓｍ，ｉ１，・・・，ｓｍ，ｉ｜ε（ｘｍ，ｉ）｜｝に対して、その要素がスパースであることを要請する、すなわち、ベクトル中のいくつかの限られた要素にのみ非ゼロの値を持つように正則化するスパース項であり、ｖｍ，ｉはｘｍ，ｉに近いほど小さな値を持つような定数を要素として持つベクトルである。ベクトルｖｍ，ｉの要素ｖｍ，ｉjは、例えば、以下の式（６）のように表わされる。なお、自分自身のベクトルについての重みｓｉ＝ｊは０である。
【０１１５】
【数６】
2016066012.tif 000008
【０１１６】
つまるところ、この問題を解くことによってある特徴量ｘｍ，ｉをできる限り少数の近傍点の線形結合として表した場合の結合重みｓｍ，ｉを求めることができるが、これは多様体を表現するいくつかの近傍点と、その相対的幾何関係（結合重み）を表しているに他ならない。この問題は、公知のスパース問題ソルバによって解決することができる。例えば、ＳＰＡＭＳなどのオープンソースソフトウェアを用いてもよい。
【０１１７】
なお、近傍集合ε（ｘｍ，ｉ）は、いかなる方法を用いて求めてもよい。最も単純な方法は、各特徴量ｘｍ，ｊに対して、その他全ての点ｘｍ，ｊ≠ｉとのユークリッド距離を求め、近いものからｔ個を近傍集合とするものである。ｔは任意の正の整数でよく、例えばｔ＝１０などとしてもよい。
【０１１８】
しかし、この方法では１つの特徴量に対してその他全ての特徴量との距離を求める必要があるため、未知の特徴量ｘｍ，ｊに対して近傍集合を求めようとすると、Ｏ（Ｎｍ）の計算時間が掛かるという問題がある。したがって、高速に計算できる手法を用いることが好ましい。例えば、クラスタリングやハッシュによる方法を用いることができる。
【０１１９】
クラスタリングを用いる場合、例えばｋ−ｍｅａｎｓ法などにより全Ｎｍ個の特徴量をクラスタリングし、Ｌ個のクラスタ（Ｌ＜＜Ｎｍ）と、各クラスタを代表するＬ個の代表特徴量（クラスタ中心）を求めておく。Ｌの値は任意の正の整数としてよいが、例えば、Ｌ＝１２８などとすればよい。この結果、各特徴量がどのクラスタに属するか、および、当該クラスタの代表特徴量を得ることができる。この前提のもと、下記の手続きによって、未知の特徴量ｘｍ，ｉに対する近傍集合を得ることができる。まず、特徴量ｘｍ，ｊに対して、Ｌ個の代表特徴量との距離を計算し、最も近いクラスタを特定する。次に、当該クラスタに属する全ての特徴量を、近傍集合ε（ｘｍ，ｉ）として得る。この処理に必要な計算時間はＯ（Ｌ）であり、Ｌ＜＜Ｎｍであることから、単純な方法に比べて高速に近傍集合を得ることができる。
【０１２０】
また、ハッシュを用いる場合、例えば上記非特許文献１などの方法によって、全Ｎｍ個の特徴量に対するハッシュ値を求めておく。この前提のもと、未知の特徴量ｘｍ，ｊのハッシュ値を求め、これと同一またはハミング距離上近い値を持つハッシュ値を持つ（すなわち、同一あるいはそれに近接するバケットに属する）全ての特徴量を、近傍集合ε（ｘｍ，ｉ）として得ればよい。この処理に必要な計算時間は参照するバケットの数に依存するが、一般に参照バケット数はＮｍよりも小さいことから、こちらも高速に近傍集合を得ることができる。なお、非特許文献１の方法によるハッシュ値は、ユークリッド空間上のコサイン類似度を保存するようなハッシュ関数であり、ユークリッド空間上の角度が近ければ近いほどハッシュ値が衝突する確率が高くなる。一方で、本実施形態により生成されるハッシュ値は、ユークリッド空間上ではなく、多様体上の近さ（測地線距離に基づく近さ）を保存するようなハッシュ関数であり、特徴量の分布をより正確に捉えたハッシュ値を生成できる。
【０１２１】
以上の手続きを、対象とするコンテンツの全ての種別に対して適用すればよい。
【０１２２】
次に、第２の手続きについて説明する。第１の手続きによって得た特徴量のｓｍ，ｉ（ｉ＝１，２，・・・，Ｎｍ）と同様の近傍の相対的幾何関係を持つハッシュ空間（埋め込み）を求めることによって、ｗｍ，ｋを求める。
【０１２３】
簡単のため、コンテンツの種別は２つ、例えば画像と文書とし、ｍ＝１のとき画像、ｍ＝２のとき文書を表すものとする。もちろん、以下に説明する実施形態の一例は、その他の種別、あるいは、コンテンツの種別が３以上の場合に対しても同様に適用できるものである。
【０１２４】
具体的には、下記の問題を解決する。便宜上、画像特徴量ｘ１，ｉ（ｉ＝１，２，・・・，Ｎ１）、文書特徴量ｘ２，ｉ（ｉ＝１，２，・・・，Ｎ２）を並べた行列Ｘ１＝｛ｘ１，１，・・・，ｘ１，Ｎ１｝、Ｘ２＝｛ｘ２，１，・・・，ｘ２、Ｎ２｝を定義する。さらに、画像特徴量のためのハッシュ関数のパラメータｗ１，ｋ（ｋ＝１，２，…，Ｂ）および文書特徴量のためのハッシュ関数のパラメータｗ２，ｋ（ｋ＝１，２，…，Ｂ）を並べた行列Ｗ１＝｛ｗ１，１，・・・，ｗ１，Ｂ｝、Ｗ２＝｛ｗ２，１，・・・，ｗ２，Ｂ｝を定義する。
【０１２５】
具体的には、以下の問題を解く。
【０１２６】
【数７】
2016066012.tif 000009
【０１２７】
ここで、Ｓｍはそれぞれｓｍ，ｉｊを要素に持つ行列、Ｒｍｌは種別ｍと種別ｌとの相関行列である。
【０１２８】
Ｊｍ（Ｗｍ；Ｘｍ，Ｓｍ）は、それぞれコンテンツの種別ｍにおける特徴量空間の多様体構造を保存するための関数であり、例えば、以下の式（８）のように定義することができる。
【０１２９】
【数８】
2016066012.tif 000010
【０１３０】
上記式（８）における多様体構造は、コンテンツの種別に応じた特徴量が存在する空間である特徴量空間において、コンテンツの種別に応じた特徴量を、当該コンテンツの種別に応じた特徴量の近傍に存在する他のコンテンツの種別に応じた特徴量に対応するハッシュ値の線形結合で表したものである。
【０１３１】
上記式（８）は、元々の特徴量空間における多様体構造、すなわち、ｓｍ，ｉｊとその線形結合を、ハッシュ関数を構成する関数
【０１３２】
【数９】
2016066012.tif 000011
【０１３３】
によって変換された先においてもそのまま再構築することを要請するものであり、上記式（５）とも相似性を持つものである。すなわち、上記（７）式に代入されたとき、ハッシュ値に変換された先でも元の空間と同様の多様体構造を持つようにＷｍを決定することができる。
また、Ｊｍｌ（Ｗｍ、Ｗｌ；Ｘｍ，Ｘｌ，Ｒｍｌ）は、コンテンツの種別ｍと種別ｌとの間の意味ラベルの相関関係を保存するための関数であり、例えば、下記のように定義することができる。
【０１３４】
【数１０】
2016066012.tif 000012
【０１３５】
上記式（１０）では、より相関関係の強い特徴量ペアを、変換先で同一の値にするよう要請するものである。上記式（１０）は、種別ｍのｉ番目の特徴量ｘｍ，ｉと種別ｌのｊ番目の特徴量ｘｌ，ｊのペアについて、それぞれ上記式（９）によって与えられるハッシュ関数により変換された値を相関行列で重みづけた値となっている。したがって、これを上記式（７）に代入することで、相関の高いペアの距離をできる限り小さくするようにＷｍを決定することができる。
【０１３６】
従って、ハッシュ関数生成部３４は、上記式（７）、式（８）、及び式（１０）に従って、コンテンツの種別毎に、当該種別の複数のコンテンツの各々について、コンテンツの種別に応じた特徴量が存在する空間である特徴量空間において、当該特徴量を、当該特徴量の近傍に存在する他のコンテンツの特徴量に対応するハッシュ値の線形結合で表した多様体構造に基づいて求められる当該特徴量に対応するハッシュ値と、当該コンテンツから抽出された特徴量に対応するハッシュ値との距離が小さくなり、かつ、種別が異なるコンテンツ間の組み合わせの各々について、当該組み合わせの意味ラベルの相関が高いほど、当該組み合わせのコンテンツの各々から抽出された当該特徴量に対応するハッシュ値の間の距離が小さくなるように、ハッシュ関数を生成する。
【０１３７】
以上のように定義された上記式（８）、及び式（１０）を、上記式（７）に代入し、代数変形を適用すると、次の式（１１）の問題が得られる。
【０１３８】
【数１１】
2016066012.tif 000013
【０１３９】
ここで、
【０１４０】
【数１２】
2016066012.tif 000014
【０１４１】
である。上記式（９）は、ＷｍおよびＷｌ、すなわちＰについて凸であるので、Ｗについて微分して極値を取ることで、次の一般化固有値問題に帰着される。
【０１４２】
【数１３】
2016066012.tif 000015
【０１４３】
なお、上記式（１３）におけるηは固有値を表す。このような一般化固有値問題の解は、反復法やべき乗法などの公知の方法によって求めることができる。
【０１４４】
このようにして求めたＷｍおよびＷｌは、元の空間における多様体構造を最適に保存し、かつ、意味ラベルの意味で相関関係の強い異種のメディアを可能な限り同じハッシュ値に変換するものである。したがって、目的としていた２つの性質（Ａ’）、（Ｂ’）を最適に満たすようなＷｍおよびＷｌを得ることができる。
【０１４５】
新たなハッシュ値を生成する際には、上記（９）式を計算した後、その符号を調べればよいだけである。この計算に必要となるメモリ量は、ｗｍ，ｋとｘｍ，ｉそれぞれを格納するに必要なメモリ量のみであり、仮に、特徴量が浮動小数点表示であり、次元Ｄが１００の場合８００Ｂ程度、仮に次元Ｄが１０００００程度になったとしても高々８００ＫＢと、現存する一般的なコンピュータにおいても極めて容易に蓄積できるメモリ量に抑えることができる。したがって、この方法によって、多様体の構造を捉えることによる高い精度でありながら、高速かつ省メモリなハッシュ値生成が可能である。
【０１４６】
ハッシュ関数生成部３４は、特徴抽出部３０によってコンテンツの種別毎に抽出されたコンテンツの各々についての特徴量と、意味ラベル相関計算部３２によって計算された組み合わせの各々の意味ラベルの相関とに基づいて、上記式（１１）、式（１２）、及び式（１３）に従って、コンテンツの種別毎に、当該種別の特徴量に対応するハッシュ値を求めるためのハッシュ関数を生成する。
【０１４７】
ハッシュ関数記憶部３６には、ハッシュ関数生成部３４によって種別毎に生成されたハッシュ関数が格納される。上記の処理詳細によってコンテンツの種別毎の生成された当該種別の特徴量に対応するハッシュ値を求めるためのハッシュ関数、すなわち、全ての種別ｍにおける｛Ｗｍ｝が、ハッシュ関数記憶部３６に記憶される。
【０１４８】
ハッシュ値生成部３８は、コンテンツデータベース５に格納された複数のコンテンツの各々について、特徴抽出部３０によって抽出された当該コンテンツの特徴量と、ハッシュ関数記憶部３６に格納された当該コンテンツの種別に応じたハッシュ関数とに基づいて、当該コンテンツの特徴量に対応するハッシュ値を生成する。
また、ハッシュ値生成部３８は、入力部２によって受け付けた検索クエリとしてのコンテンツについて、特徴抽出部３０によって抽出された当該コンテンツの特徴量と、ハッシュ関数記憶部３６に格納された当該コンテンツの種別に応じたハッシュ関数とに基づいて、当該コンテンツの特徴量に対応するハッシュ値を生成する。
【０１４９】
出力部４は、ハッシュ値生成部３８によって生成されたハッシュ値を、コンテンツデータベース５へ出力する。
【０１５０】
コンテンツデータベース５には、出力部４によって出力されたハッシュ値と、当該ハッシュ値に対応するコンテンツとの組み合わせが格納される。
【０１５１】
＜情報処理装置の作用＞
次に、本実施の形態に係る情報処理装置１の作用について説明する。情報処理装置１は、ハッシュ関数を生成するハッシュ関数生成処理と、特徴量をハッシュ化するハッシュ値生成処理を実行する。以下、これら２つの処理について説明する。
【０１５２】
＜ハッシュ関数生成処理ルーチン＞
まず、情報処理装置１が、コンテンツデータベース５に格納された複数のコンテンツを取得すると、情報処理装置１によって、図６に示すハッシュ関数生成処理ルーチンが実行される。ハッシュ関数生成処理ルーチンは、実際にコンテンツデータをハッシュ化する前に、少なくとも１度実行される処理である。
【０１５３】
まず、ステップＳ１００において、入力部２によって、コンテンツデータベース５に格納されている複数のコンテンツと、複数のコンテンツ各々の種別と、複数のコンテンツ各々に付与されている意味ラベルとを受け付ける。
【０１５４】
ステップＳ１０２において、特徴抽出部３０によって、コンテンツの種別毎に、上記ステップＳ１００で取得された当該種別の複数のコンテンツの各々について、当該種別に応じた特徴量をコンテンツから抽出する。
【０１５５】
ステップＳ１０４において、意味ラベル相関計算部３２によって、上記ステップＳ１００で取得された複数のコンテンツのうちの、種別が異なるコンテンツ間の組み合わせの各々に対し、当該組み合わせのコンテンツの各々について付与された意味ラベルに基づいて、上記式（１）に従って、当該組み合わせの意味ラベルの相関を計算し、上記式（２）に示す相関行列を生成する。
【０１５６】
ステップＳ１０６において、ハッシュ関数生成部３４によって、上記ステップＳ１０２でコンテンツの種別毎に抽出されたコンテンツの各々についての特徴量と、上記ステップＳ１０４で生成された相関行列とに基づいて、上記式（１１）〜式（１３）に従って、コンテンツの種別毎のハッシュ関数を生成する。また、ハッシュ関数生成部３４によって、生成されたハッシュ関数を、ハッシュ関数記憶部３６へ格納して、ハッシュ関数生成処理ルーチンを終了する。
【０１５７】
以上の処理により、コンテンツデータベース５に格納された複数のコンテンツからハッシュ関数を生成することができる。
【０１５８】
＜ハッシュ値生成処理ルーチン＞
次に、検索クエリとしてのコンテンツが情報処理装置１に入力されると、情報処理装置１によって、図７に示すハッシュ値生成処理ルーチンが実行される。ハッシュ値生成処理ルーチンは、ハッシュ関数記憶部３６に格納されたハッシュ関数を用いてコンテンツの特徴量をハッシュ化する処理である。
【０１５９】
まず、ステップＳ２００において、入力部２によって、検索クエリとしてのコンテンツと、当該コンテンツの種別との入力を受け付ける。
【０１６０】
ステップＳ２０２において、特徴抽出部３０によって、上記ステップＳ２００で受け付けたコンテンツから、コンテンツの種別に応じた特徴量を抽出する。
【０１６１】
ステップＳ２０４において、ハッシュ値生成部３８によって、上記ステップＳ２０２で抽出された特徴量と、上記ステップＳ１０６でハッシュ関数記憶部３６に格納されたコンテンツの種別に応じたハッシュ関数とに基づいて、上記ステップＳ２００で受け付けたコンテンツの特徴量に対応するハッシュ値を生成する。また、ハッシュ値生成部３８によって、コンテンツデータベース５に格納された複数のコンテンツの各々について、上記ステップＳ１０２で抽出された当該コンテンツの各々の特徴量と、上記ステップＳ１０６でハッシュ関数記憶部３６に格納されたコンテンツの種別に応じたハッシュ関数とに基づいて、当該コンテンツの特徴量に対応するハッシュ値を生成する。
【０１６２】
ステップＳ２０６において、出力部４によって、上記ステップＳ２０４で生成されたハッシュ値と、上記ステップＳ２００で受け付けたコンテンツとの組み合わせ、及び上記ステップＳ２０４で生成されたハッシュ値と、複数のコンテンツとの組み合わせをコンテンツデータベース５へ出力し、コンテンツデータベース５に格納して、ハッシュ値生成処理ルーチンを終了する。
【０１６３】
以上の処理により、コンテンツの種別によらず、１つのハッシュ関数につき、特徴量は１ｂｉｔに変換されるので、ハッシュ関数記憶部３６にＢ個のハッシュ関数が格納されている場合は、特徴量はＢｂｉｔのハッシュ値に変換される。
また、入力したコンテンツに対して、コンテンツの種別によらずハッシュ値を求めることができる。
【０１６４】
以上説明したように、本発明の実施の形態に係る情報処理装置によれば、種別が異なるコンテンツ間の組み合わせの各々に対し、当該組み合わせのコンテンツの各々について付与されたコンテンツの意味概念を表す意味ラベルに基づいて、当該組み合わせの意味ラベルの相関を計算し、コンテンツの種別毎に抽出されたコンテンツの各々についての特徴量と、組み合わせの各々の意味ラベルの相関とに基づいて、組み合わせの各々について、組み合わせの意味ラベルの相関が高いほど、当該組み合わせのコンテンツの各々から抽出された特徴量に対応するハッシュ値の間の距離が小さくなるように、コンテンツの種別毎の特徴量に対応するハッシュ値を求めるためのハッシュ関数を生成することにより、異なる種別のコンテンツ間の意味の相関を考慮したハッシュ関数を生成することができる。
【０１６５】
また、本発明の実施の形態に係る情報処理装置によれば、異なる種別のコンテンツ間の意味の相関を考慮したハッシュ関数を用いてハッシュ値を生成することにより、検索クエリとしてのコンテンツと類似するコンテンツを、異なる種別のコンテンツからも発見することができる。
【０１６６】
また、意味ラベルによる類似性が反映される。
【０１６７】
また、高速、省メモリでありながらも、異なるメディアの類似コンテンツを相互に発見することができる。
【０１６８】
また、意味ラベルの相関とコンテンツの種別ごとの近傍の相対的幾何関係を統合的に勘案することで、相互に異なる種別でありながら、関連するコンテンツ同士を、高速かつ省メモリでありながらも高精度に発見することができる。
【０１６９】
また、省メモリであることから、例えば、メモリ量の小さいモバイル端末（スマートフォンやタブレット）での利用も可能となる。また、高速であることから、実時間性の要求される利用に対しても対応可能である。
【０１７０】
また、コンテンツの種別ごとの特徴量空間の多様体構造を捉え、かつ異種のコンテンツの種別間の相関関係を保存するようにパラメトリックなハッシュ関数を生成することによって、相互に異なる種別でありながら、関連するコンテンツ同士を、高速かつ省メモリでありながらも高精度に発見することができる。
【０１７１】
また、大量のコンテンツの中から、類似コンテンツを発見することができる。
【０１７２】
＜第２の実施の形態＞
＜システム構成＞
次に、本発明の第２の実施の形態について説明する。なお、第１の実施の形態と同様の構成となる部分については、同一符号を付して説明を省略する。
【０１７３】
第２の実施の形態では、ハッシュ関数の種類が第１の実施の形態と異なっている。
【０１７４】
上記第１の実施の形態で前述した第２の手続きでは、上記式（４）の形をとるハッシュ関数の場合において、そのパラメータｗｍ，ｋ（ｋ＝１，２，…，Ｂ）を求める方法について述べたが、本発明の実施の形態で扱えるハッシュ関数は、何もこの形に限るものではなく、別の形式をとるハッシュ関数であっても、同様にそのパラメータを決定することができる。
【０１７５】
例えば、次のようなハッシュ関数も扱うことができる。
【０１７６】
【数１４】
2016066012.tif 000016
【０１７７】
ここで、αｍ，ｋ，ｔはパラメータ、κ（ｘｍ，ｔ，ｘｍ）はカーネル関数である。カーネル関数は、
【０１７８】
【数１５】
2016066012.tif 000017
【０１７９】
のような関数であり、さらにＮｍ個の特徴量｛ｘｍ，１，・・・，ｘｍ，Ｎｍ｝に対して、
【０１８０】
【数１６】
2016066012.tif 000018
【０１８１】
および、任意の実数αｉ、αｊに対して
【０１８２】
【数１７】
2016066012.tif 000019
【０１８３】
を満たすような任意の関数である。このような関数は無数に存在するが、例を挙げれば、
【０１８４】
【数１８】
2016066012.tif 000020
【０１８５】
などが存在する。ただし、β、γは正の実数値パラメータ、ｐは整数パラメータであり、適宜決定してよい。
【０１８６】
上記（１４）式において、ｂｍ，ｋは
【０１８７】
【数１９】
2016066012.tif 000021
【０１８８】
すなわち平均値で定められる定数なので、上記（１４）式は、
【０１８９】
【数２０】
2016066012.tif 000022
【０１９０】
と、内積の形に変換できる。ただし、
【０１９１】
【数２１】
2016066012.tif 000023
【０１９２】
である。ここで、Ｔはハッシュ関数を定める定数である。上記ハッシュ関数を構成するカーネル関数、具体的にはカーネルベクトル写像κｍ（ｘｍ）は、Ｔ個の特徴量によって定められるが、ＴはＴ＜Ｎｍの範囲で任意の値に決めてよい。例えば、Ｔ＝３００等として、全特徴量｛ｘｍ，１，・・・，ｘｍ，Ｎｍ｝の中からランダムにＴ個選んでもよいし、あるいはＫ−ｍｅａｎｓなどのクラスタリング法を用いて選ばれた代表ベクトルとしてもよい。本実施の形態では、Ｔ個の特徴量が予め選択されている場合を例に説明する。
【０１９３】
このように定義されたハッシュ関数は、カーネル関数の形で定義された非線形写像を扱うことができる。したがって、非線形な関数、すなわち、直線だけでなく、曲線も扱える点で、上記式（８）によるハッシュ関数よりも柔軟な表現が可能であるという利点を持つ。
【０１９４】
ハッシュ関数生成部３４は、予め選択されているＴ個のコンテンツの特徴量に基づいて、カーネル関数を生成する。
【０１９５】
以下、上記式（１８）の形式をとるハッシュ関数において、そのパラメータαｍ，ｋを決定する方法を説明する。ここでも、画像特徴量（ｍ＝１）と文書特徴量（ｍ＝２）の場合を考え、便宜上、κ１（ｘ１，ｉ）（ｉ＝１，２，・・・，Ｎ１）およびκ２（ｘ２，ｉ）（ｉ＝１，２，・・・，Ｎ２）を並べた行列Κ１＝｛κ１（ｘ１，１），・・・，κ１（ｘ１、Ｎ）｝、Κ２＝｛κ２（ｘ２，１），・・・，κ２（ｘ２，Ｎ）｝を定義する。さらに、画像特徴量のためのハッシュ関数のパラメータα１，ｋ（ｋ＝１，２，・・・，Ｂ）および文書特徴量のためのハッシュ関数のパラメータα２，ｋ（ｋ＝１，２，・・・，Ｂ）を並べた行列Α１＝｛α１，１，・・・，α１，Ｂ｝、Α２＝｛α２，１，・・・，α２，Ｂ｝を定義する。
【０１９６】
具体的には、上記式（４）で定義されるハッシュ関数で言うところの上記式（７）に相当する、以下の問題を解く。
【０１９７】
【数２２】
2016066012.tif 000024
【０１９８】
Ｊｍ（Αｍ；Κｍ，Ｓｍ）およびＪｍｌ（Αｍ、Αｌ；Κｍ，Κｌ，Ｒｍｌ）は、上記式（８）、及び式（１０）と同様の理由で、例えば、下記のように定義することができる。
【０１９９】
【数２３】
2016066012.tif 000025
【０２００】
上記式（２１）、及び式（２２）を、上記式（７）に代入し、代数変形を適用すると、次の式（２３）の問題が得られる。
【０２０１】
【数２４】
2016066012.tif 000026
【０２０２】
ここで、
【０２０３】
【数２５】
2016066012.tif 000027
【０２０４】
である。この問題は、上記式（１１）の問題と等価であるため、全く同様の手続きで解くことができる。
【０２０５】
ハッシュ関数生成部３４は、特徴抽出部３０によってコンテンツの種別毎に抽出されたコンテンツの各々についての特徴量と、意味ラベル相関計算部３２によって計算された種別の異なるコンテンツ間の組み合わせの各々の意味ラベルの相関を表す相関行列とに基づいて、上記（２３）式、（２４）式に従って、コンテンツの種別毎に、当該種別の複数のコンテンツの各々について、コンテンツの種別に応じた特徴量が存在する空間である特徴量空間において、当該特徴量を、当該特徴量の近傍に存在する他のコンテンツの特徴量に対応するハッシュ値の線形結合で表した多様体構造に基づいて求められる当該特徴量に対応するハッシュ値と、当該コンテンツから抽出された特徴量に対応するハッシュ値との距離が小さくなり、かつ、種別が異なるコンテンツ間の組み合わせの各々について、当該組み合わせの意味ラベルの相関が高いほど、当該組み合わせのコンテンツの各々から抽出された当該特徴量に対応するハッシュ値の間の距離が小さくなるように、ハッシュ関数を生成する。
ハッシュ関数生成部３４によって生成されたハッシュ関数及びカーネル関数は、ハッシュ関数記憶部３６に記憶される。具体的には、全ての種別ｍにおける｛Αｍ｝およびカーネル関数κｍ（ｘｍ）が、ハッシュ関数記憶部３６に記憶される。
【０２０６】
ハッシュ値生成部３８は、コンテンツデータベース５に格納された複数のコンテンツの各々について、特徴抽出部３０によって抽出された当該コンテンツの特徴量と、ハッシュ関数記憶部３６に格納された当該コンテンツの種別に応じたハッシュ関数及びカーネル関数とに基づいて、当該コンテンツの特徴量に対応するハッシュ値を生成する。
また、ハッシュ値生成部３８は、入力部２によって受け付けた検索クエリとしてのコンテンツについて、特徴抽出部３０によって抽出された当該コンテンツの特徴量と、ハッシュ関数記憶部３６に格納された当該コンテンツの種別に応じたハッシュ関数及びカーネル関数とに基づいて、当該コンテンツの特徴量に対応するハッシュ値を生成する。
【０２０７】
なお、第２の実施の形態に係る情報処理装置の他の構成及び作用については、第１の実施の形態と同様であるため、説明を省略する。
【０２０８】
＜第３の実施の形態＞
＜システム構成＞
次に、図８を参照して、本発明の第３の実施の形態について説明する。なお、第１の実施の形態と同様の構成となる部分については、同一符号を付して説明を省略する。
【０２０９】
上記第１又は第２の実施の形態において、ハッシュ関数生成部とハッシュ値生成部は分離可能であり、例えば、上記図１に示した情報処理装置１以外にも、サーバ―クライアント装置構成を取ることもできる。
【０２１０】
第３の実施の形態では、サーバ装置とクライアント装置とで情報処理システムを構成する点が、第１及び第２の実施の形態と異なっている。第３の実施の形態では、類似コンテンツ検索を実施する情報処理システムに、本発明を適用させた場合を例に説明する。具体的には、第３の実施の形態では、ｅコマースサイトにおける販売促進サービスに本発明を適用させた場合を例に説明する。
【０２１１】
本発明の第３の実施の形態に係る情報処理システム２００は、図８に示すように、サーバ装置７と、クライアント装置１３とを備えている。第３の実施の形態に係る情報処理システム２００は、ユーザが実世界で撮影した商品画像に関連する商品を、ｅコマースサイトから探し出して当該ユーザに提示することで、ユーザの購買意欲を掻き立て、ｅコマースサイトの販売に繋げることを目的とする。
【０２１２】
図８に示すサーバ装置７は、ＣＰＵと、ＲＡＭと、各処理ルーチンを実行するためのプログラムを記憶したＲＯＭとを備えたコンピュータで構成され、機能的には次に示すように構成されている。サーバ装置７は、ｅコマースサイト側に設置されており、図８に示すように、入力部８、演算部９、出力部１０を備えている。また、演算部９は、特徴抽出部９０、意味ラベル相関計算部９２、ハッシュ関数生成部９４、ハッシュ関数記憶部９６、及びハッシュ値生成部９８を備えている。また、コンテンツデータベース１１には、商品画像、商品紹介文書、および、意味ラベルとして商品カテゴリが格納されている。
【０２１３】
また、図８に示すクライアント装置１３は、ＣＰＵと、ＲＡＭと、各処理ルーチンを実行するためのプログラムを記憶したＲＯＭとを備えたコンピュータで構成され、機能的には次に示すように構成されている。クライアント装置１３は、ユーザ端末であり、図８に示すように、入力部１４、演算部１５、出力部１６を備えている。また、演算部１５は、特徴抽出部１５０、ハッシュ関数記憶部１５４、及びハッシュ値生成部１５６を備える。クライアント装置１３は、例えばスマートフォンなどで構成されていれば、本発明の実施の形態を実施する上で必要な要件を満たすため、好適である。
【０２１４】
ここで、サーバ装置７とクライアント装置１３において、共通する構成要素（入力部、特徴抽出部、意味ラベル相関計算部、ハッシュ関数記憶部、ハッシュ値生成部）はそれぞれ同一の機能を有するように構成し、また、上記図１に記載した各構成要素と同一名称のものは、上記図１の場合と同一の機能を有するものとしてよい。さらに、ハッシュ値生成部の内容は、それぞれ何らかの通信手段（例えばインターネットやＶＬＡＮなど）で適宜同期されているものとする。
【０２１５】
図８に示す装置構成における処理動作は下記の通りである。まずサーバ装置７は、上記説明した処理と同様の処理を行って、適宜、ハッシュ関数を生成してハッシュ関数記憶部９６に格納し、クライアント装置１３のハッシュ関数記憶部１５４と同期させる。さらに、コンテンツデータベース１１中のコンテンツに対して、上記説明した処理と同様の処理を行って、ハッシュ値を生成し、コンテンツデータベース１１に格納しておく。
【０２１６】
一方、クライアント装置１３は、入力部１４によって、ユーザからの検索要求、すなわち、すなわち、撮影した画像である新規コンテンツの入力を受け付けたら、当該コンテンツに対してハッシュ値を生成し、出力部１６からサーバ装置７の入力部８へと当該ハッシュ値を出力する。
【０２１７】
クライアント装置１３からハッシュ値を受けた場合、サーバ装置７は、当該ハッシュ値を用いて、コンテンツデータベース１１に対して検索を行い、ハッシュ値に基づいて類似コンテンツを発見し、その結果をクライアント装置１３へと出力する。
【０２１８】
最後に、クライアント装置１３は、サーバ装置７より受け取った検索結果をユーザに出力する。
【０２１９】
このように構成することで、サーバ装置７でハッシュ関数生成処理を実施し、クライアント装置１３ではハッシュ値生成処理のみを実施するように構成することができる。
【０２２０】
なお、第３の実施の形態に係る情報処理システム２００の他の構成及び作用については、第１の実施の形態と同様であるため、説明を省略する。
【０２２１】
この構成を取るメリットを説明する。一般に、クライアント装置（スマートフォンやＰＣ，携帯端末等）は、サーバ装置と比較して演算能力に乏しいため、ハッシュ関数生成のように演算量が比較的多い処理には適さない場合がある。この構成にすれば、ハッシュ関数生成処理は演算能力の高いサーバ装置で適宜実施し、クライアント装置では演算量の少ないハッシュ値生成処理だけを実施することができる。さらに、通常、ネットワークを介した通信によってデータ容量の多い情報を伝送する場合、伝送時間が掛かるという問題があるが、当該構成によって、伝送するのは情報量の小さいハッシュ値のみでよくなり、検索に対する即応性を高めることができる。
【０２２２】
また、本実施の形態によれば、従来の技術に開示されているような、画像のみの情報や画像と文書の単純な関係のある／なしだけを考慮する方法、あるいは、画像と意味ラベルのみとを考慮する方法に比べ、画像、文書、意味ラベル全ての関係を考慮したハッシュ関数を得ることができる点で、より精度の高い検索が可能となる。例えば、従来の技術によれば、画像の色味が似ているものであれば異なる商品カテゴリに属するものを検索してしまうことがあったため、「赤いスカート」に対して「赤いワンピース」などを提示してしまう場合があった。一方で、本実施の形態によれば、商品カテゴリの違いを意味ラベルとして考慮しているため、「赤いスカート」を的確に検索することが可能である。さらに、商品説明文も同時に考慮しているため、「赤いスカート」でありながら、文書中に含まれるブランド名や素材の情報なども考慮した精細な検索を実現することが可能である。
【０２２３】
以上の結果、本実施の形態における販売促進のような、実時間性を要求しつつも、大規模なデータベースを高精度に検索することが求められるサービスを実現することができる点で、本技術の産業応用上のメリットは大きい。
【０２２４】
[実施例]
次に、第１の実施の形態で説明した処理により生成したハッシュ関数によって、類似コンテンツを高速かつ省メモリに検索する実施例の一例について説明する。前述のハッシュ関数生成処理が済んでいれば、ハッシュ関数記憶部３６には、コンテンツの種別ごとにＢ組のハッシュ関数が格納されている。これを用いれば、上記式（４）にしたがって、特徴量で表現された任意のコンテンツを、Ｂビット以下のハッシュ値で表現することができる。例えば、コンテンツデータベース５に、Ｎ１個の画像コンテンツとＮ２個の文書コンテンツとが格納されているとし、Ｎ１個の画像特徴量Ｘ１＝｛ｘ１，１，・・・，ｘ１，Ｎ１｝とＮ２個の文書特徴量Ｘ２＝｛ｘ２，１，・・・，ｘ２，Ｎ２｝とが、上記式（４）に基づいて、ハッシュ値Ｙ１＝｛ｙ１，１，・・・，ｙ１，Ｎ１｝およびＹ２＝｛ｙ２，１，・・・，ｙ２，Ｎ２｝に変換されているものとする。このとき、目的はＸ１、Ｘ２いずれにも含まれない特徴量ｘ１，ｑあるいはｘ２，ｑに対して類似するコンテンツをＸ１およびＸ２の中から発見することである。
【０２２５】
まず、上記式（４）に基づいて、特徴量ｘ１，ｑあるいはｘ２，ｑをハッシュ値ｙ１，ｑあるいはｙ２，ｑに変換しておく。最も単純には、図９に示すハッシュテーブルを用いる方法がある。まず、コンテンツデータベース５に登録されているハッシュ値Ｙ１およびＹ２によって、図９に示すようなハッシュテーブルを構成する。このテーブルでは、あるハッシュ値と、そのハッシュ値に変換された特徴量（コンテンツ識別子）を対応づけて格納しており、ハッシュ値が与えられた際に、それと同一のハッシュ値を取るコンテンツを即時発見することができる。ここで、本発明の実施の形態により生成されるハッシュ値においては、コンテンツの種別に寄らず、関連するもの、類似するものを同一のハッシュ値に変換できることが特徴である。すなわち、例えば、ハッシュ値「００００」を指定した場合、それに対応づけられた画像と文書（画像１、文書３・・・）を、コンテンツの種別に寄らずに直ちに発見できるのである。同様に、このハッシュテーブルを利用すれば、ハッシュ値ｙ１，ｑあるいはｙ２，ｑに対応したコンテンツを即座に発見することが可能となる。
【０２２６】
この方法によれば、コンテンツデータベース５に登録された画像、文書の数Ｎ１、Ｎ２に寄らず、ほぼ一定の時間で高速に、かつ、元の特徴量をメモリに保持する必要がないため、省メモリに類似コンテンツを発見できるという利点がある。
【０２２７】
また、別の方法として、ハミング距離による距離計算を利用することができる。すなわち、ハッシュ値ｙ１，ｑあるいはｙ２，ｑと、Ｙ１およびＹ２に含まれるＮ１＋Ｎ２個のハッシュ値との距離を計算し、距離の小さいものを類似コンテンツとして得るものである。ハッシュ値はバイナリであるため、距離計算は例えばハミング距離で計算することができるが、ハミング距離はＸＯＲ（排他的論理和）とｐｏｐｃｎｔ演算（すなわち、バイナリ列のうち、１となっているビットの数を数える演算）のみで計算できること、および、ハッシュ値は通常少数のバイナリ値で表現できることから、元の特徴量で距離計算する場合に比べ、遥かに高速に演算できる。
【０２２８】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。本実施形態の主要な特徴を満たす範囲内において、任意の用途と構成を取ることができることは言うまでもない。
【０２２９】
例えば、上記第１の実施の形態における、ハッシュ関数生成部３４と、ハッシュ値生成部３８とを別々の装置として構成してもよい。その場合には、ハッシュ関数生成部３４を含んでハッシュ関数生成装置を構成し、ハッシュ値生成部３８を含んでハッシュ値生成装置を構成する。
【０２３０】
また、本実施の形態の情報処理装置及び情報処理システムは、ハッシュ関数記憶部３６を備えている場合について説明したが、例えばハッシュ関数記憶部３６が情報処理装置及び情報処理システムの外部装置に設けられ、情報処理装置及び情報処理システムは、外部装置と通信手段を用いて通信することにより、ハッシュ関数記憶部３６を参照するようにしてもよい。
【０２３１】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
例えば、前述した実施形態におけるハッシュ関数生成部、ハッシュ値生成部をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、ＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）等のハードウェアを用いて実現されるものであってもよい。
【０２３２】
また、上述の情報処理装置及び情報処理システムは、内部にコンピュータシステムを有しているが、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
【０２３３】
以上、図面を参照して本発明の実施の形態を説明してきたが、上記実施の形態は本発明の例示に過ぎず、本発明が上記実施の形態に限定されるものではないことは明らかである。したがって、本発明の技術思想及び範囲を逸脱しない範囲で構成要素の追加、省略、置換、その他の変更を行ってもよい。
【符号の説明】
【０２３４】
１     情報処理装置
２，８，１４  入力部
３，９，１５  演算部
４，１０，１６       出力部
５，１１      コンテンツデータベース
７     サーバ装置
１３   クライアント装置
３０，９０，１５０   特徴抽出部
３２，９２    意味ラベル相関計算部
３４，９４    ハッシュ関数生成部
３６，９６，１５４   ハッシュ関数記憶部
３８，９８，１５６   ハッシュ値生成部
２００ 情報処理システム
【図１】
2016066012.tif 000028
【図２】
2016066012.tif 000029
【図４】
2016066012.tif 000030
【図５】
2016066012.tif 000031
【図６】
2016066012.tif 000032
【図７】
2016066012.tif 000033
【図８】
2016066012.tif 000034
【図９】
2016066012.tif 000035
【図３】
2016066012.tif 000036