<概要>
本発明の実施の形態は、大量のコンテンツデータの中から、類似コンテンツデータを発見するためのものである。
具体的には、本発明の実施の形態では、画像同士、文書同士などといった、同一の種別(以下、単に種別と称する。)のコンテンツのみならず、画像から文書、画像から音声などのように、関連する異なる種別のコンテンツ同士を、高速かつ省メモリでありながらも高精度に発見することができるよう、情報損失を最小限に抑えるように、コンテンツの特徴量をバイナリベクトルへとベクトル量子化する。また、本発明の実施の形態では、コンテンツの特徴量をバイナリベクトルへとベクトル量子化するためのベクトル量子化器の生成及びベクトル量子化を行う情報処理装置に、本発明を適用した場合を例に説明する。
以下、図面を参照して本発明の実施の形態を詳細に説明する。
<第1の実施の形態>
<システム構成>
本発明の第1の実施の形態に係る情報処理装置1は、ベクトル量子化器を生成し、生成されたベクトル量子化器を用いてベクトル量子化を行う。この情報処理装置1は、CPUと、RAMと、後述する写像計算処理ルーチン及びベクトル量子化処理ルーチンを実行するためのプログラムを記憶したROMとを備えたコンピュータで構成され、機能的には次に示すように構成されている。図1に示すように、情報処理装置1は、入力部2と、演算部3と、出力部4とを備えている。
また、図1に示すコンテンツデータベース5には、複数のコンテンツが格納されている。コンテンツデータベース5には、少なくともコンテンツ自体、あるいは、当該コンテンツの所在を一意に示すアドレスが格納されている。コンテンツは、例えば、文書であれば文書ファイル、画像であれば画像ファイル、音であれば音ファイル、映像であれば映像ファイルなどであり、好ましくは、コンテンツデータベース5には、更に、各コンテンツのメディアの種別とそれ自体を一意に識別可能な識別子が格納されているものとする。
さらに、コンテンツデータベース5には、複数種別のメディアが含まれているものとし(例えば、画像と文書等)、種別が異なるコンテンツ間の組み合わせの各々に対して、相互の関係を示す関係指示子が予め付与されている。関係指示子は、異なる種別のコンテンツ間の内容の関係性を表すものであり、最も単純には関係がある2つのコンテンツの識別子を記述したものでよい。内容の関連性を決定する手段は問わず、人手によって与えるもの、機械的に与えられるもの、あるいはその双方によるもの、いずれでもよい。
例えば、関係指示子を人手により与える場合には、例えば、“画像3”の識別子を持つ3番目の画像と、“文書8”の識別子を持つ8番目の文書の内容が、人手で見て相互に関連している場合には、関係指示子として{“画像3”、“文書8”}のペアを指し示す情報をコンテンツデータベース5に格納しておけばよい。
また、関係指示子が機械的に与えられる場合の例としては、空間的、あるいは、時刻的な共起を使う方法がある。例えば、空間的な共起としてはWebページから画像を収集するような場合があげられる。最も単純には、同一Webページ内に存在する画像と文書は関連していると見做し、人手の場合と同様に関係指示子を与えてもよい。あるいは、Webページ上の周辺にある画像と文書同士は関連していると見做し、関係指示子を与えてもよい。
あるいは、同一の場所に存在するコンテンツは関連していると見做してもよい。例えば、博物館における展示物とその解説パネルなどがそれにあたる。あるいは、画像に写りこんでいる文字を認識し、この文字と画像が関連していると見做してもよい。
また、例えば映像中、時刻的に近接する画像フレームと音声は時刻的に共起していると見做して関連しているとしてもよい。このように、関係指示子が機械的に与えられる場合、人手をかけることなく関係指示子が得られるというメリットがある。
ここで、関係指示子は、必ずしもコンテンツデータベース5に格納されている全てのコンテンツに対して与えられている必要はなく、コンテンツデータベース5に格納されている一部のコンテンツに対して与えられていてもよい。
コンテンツデータベース5には、その他、メタデータとして、例えばコンテンツの内容を表現するもの(コンテンツのタイトル、概要文、キーワード)、コンテンツのフォーマットに関するもの(コンテンツのデータ量、サムネイル等のサイズ)などを含んでいてもよい。
また、コンテンツデータベース5は、情報処理装置1の内部にあっても外部にあっても構わず、通信手段は任意の公知のものを用いることができるが、本実施の形態においては、外部にあるものとして、通信手段は、インターネット、TCP/IPにより通信するよう接続されているものとする。コンテンツデータベース5は、いわゆるRDBMS(Relational Database Management System)などで構成されているものとしてもよい。
情報処理装置1は、外部と通信手段を介して接続され、入力部2、出力部4を介して相互に情報通信する。例えば、コンテンツデータベース5と接続され、これに登録されたコンテンツに基づいてベクトル量子化器を生成する写像計算処理を実行する。また、外部から入力されたコンテンツを入力し、生成したベクトル量子化器を用いてコンテンツを低次元バイナリベクトルに変換するベクトル量子化処理を行う。
情報処理装置1の各部、及びコンテンツデータベース5は、演算処理装置、記憶装置等を備えたコンピュータやサーバ等により構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムは情報処理装置1が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。もちろん、その他いかなる構成要素についても、単一のコンピュータやサーバによって実現しなければならないものではなく、ネットワークによって接続された複数のコンピュータに分散して実現してもよい。
次に、図1に示す情報処理装置1の各部について説明する。
入力部2は、コンテンツデータベース5から、複数のコンテンツと、複数のコンテンツ各々についての種別と、種別が異なるコンテンツ間の組み合わせの各々に対して予め付与された関係指示子とを取得する。また、入力部2は、ベクトル量子化対象のコンテンツと、当該コンテンツの種別との入力を受け付ける。
演算部3は、特徴抽出部30と、写像計算部32と、ベクトル量子化器記憶部34と、ベクトル量子化部36とを備えている。
特徴抽出部30は、入力部2によって取得したコンテンツの種別毎に、当該種別の複数のコンテンツの各々について、コンテンツから種別に応じた高次元数値ベクトルを特徴量として抽出する。
また、特徴抽出部30は、入力部2によって受け付けたベクトル量子化対象としてのコンテンツから種別に応じた高次元数値ベクトルを特徴量として抽出する。
特徴抽出部30における特徴量を抽出する処理は、コンテンツの種別に依存する。例えば、コンテンツが文書であるか、画像であるか、音であるか、映像であるかによって、抽出するまたは抽出できる特徴量は変化する。ここで、各種別に対してどのような特徴量を抽出するかは、本実施の形態の要件として重要ではなく、一般に知られた公知の特徴抽出処理を用いてよい。具体的には、あるコンテンツから抽出された次元を持つ数値ベクトルであれば、あらゆる特徴量に対して有効である。したがって、ここでは、本実施形態に適する、各種コンテンツに対する特徴抽出処理の一例を説明する。
コンテンツが文書である場合には、文書中に出現する単語の出現頻度を用いることができる。例えば、公知の形態素解析を用いて、名詞、形容詞等に相当する単語ごとに、その出現頻度を計数すればよい。この場合、各文書の特徴量は、単語種別と同じだけの次元を持つ高次元数値ベクトルとして表現される。
あるいは、下記の参考文献1や参考文献2に記載の単語ベクトルを用いてもよい。
[参考文献1]T. Mikolov, I. Sutskever, K. Chen, G. Corrado, J. Dean, “Distributed Representations of Words and Phrases and their Compositionality ", Proceedings of Advances in Neural Information Processing Systems, 2014.
[参考文献2]J. Pennington, R. Socher, C. D. Manning, “Glove: Global Vectors for Word Representation ", Proceedings of Conference on Empirical Methods in Natural Language Processing, 2014.
コンテンツが画像である場合には、例えば、明るさ特徴、色特徴、テクスチャ特徴、コンセプト特徴、景観特徴などを抽出する。明るさ特徴は、HSV色空間におけるV値を数え上げることで、ヒストグラムとして抽出することができる。この場合、各画像の特徴量は、V値の量子化数(例えば、16ビット量子化であれば256諧調)と同数の次元を持つ高次元数値ベクトルとして表現される。
色特徴は、L*a*b*色空間における各軸(L*、a*、b*)の値を数え上げることで、ヒストグラムとして抽出することができる。各軸のヒストグラムのビンの数は、例えば、L*に対して4、a*に対して14、b*に対して14などとすればよく、この場合、3軸の合計ビン数は、4×14×14=784、すなわち784次元のベクトルとなる。
テクスチャ特徴としては、濃淡ヒストグラムの統計量(コントラスト)やパワースペクトルなどを求めればよい。あるいは、局所特徴量を用いると、色や動きなどと同様、ヒストグラムの形式で抽出することができるようになるため好適である。局所特徴としては、例えば下記の参考文献3に記載されるSIFT(Scale Invariant Feature Transform)や、下記の参考文献4に記載されるSURF(Speeded Up Robust Features)などを用いることができる。
[参考文献3]D.G. Lowe, “Distinctive Image Features from Scale-Invariant Keypoints ", International Journal of Computer Vision, pp.91-110, 2004
[参考文献4]H. Bay, T. Tuytelaars, and L.V. Gool, “SURF: Speeded Up Robust Features", Lecture Notes in Computer Science, vol. 3951, pp.404-417, 2006
これらによって抽出される局所特徴は、例えば128次元の実数値ベクトルとなる。このベクトルを、予め学習して生成しておいた符号長を参照して、符号に変換し、その符号の数を数え上げることでヒストグラムを生成することができる。この場合、ヒストグラムのビンの数は、符号長の符号数と一致する。又は、参考文献5に記載のスパース表現や、参考文献6に記載のフィッシャーカーネルに基づく特徴表現などを利用してもよい。
[参考文献5]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.
[参考文献6]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.
なお、結果として生成される特徴量は、いずれの場合にも、符号長の符号数に依存した長さを持つ実数値ベクトルになる。
コンセプト特徴とは、画像中に含まれる物体や、画像が捉えているイベントのことである。任意のものを用いてよいが、例を挙げれば、「海」、「山」、「ボール」などのようなものである。もし、ある画像に「海」が映っていた場合、その画像は「海」コンセプトに帰属する画像であるという。その画像が、各コンセプトに帰属するか否かは、コンセプト識別器を用いて判断することができる。通常、コンセプト識別器はコンセプト毎に一つ用意され、画像の特徴量を入力として、その画像があるコンセプトに帰属しているか否かを帰属レベルとして出力する。コンセプト識別器は、予め学習して獲得しておくものであり、決められた画像特徴、例えば先に述べた局所特徴と、予め人手によって、その画像がどのコンセプトに帰属しているかを表した正解ラベルとの関係を学習することによって獲得する。学習器としては、例えばサポートベクターマシンなどを用いればよい。コンセプト特徴は、各コンセプトへの帰属レベルをまとめてベクトルとして表現することで得ることができる。また、畳み込みニューラルネットワーク(Convolutional Neural Network)を用いても構わない。この場合、生成される特徴量はコンセプトの数と同数の次元を持つベクトルとなる。
景観特徴は、画像の風景や場面を表現した特徴量である。例えば参考文献7に記載のGIST記述子を用いることができる。GIST記述子は画像を領域分割し、各領域に対して一定のオリエンテーションを持つフィルタを掛けたときの係数によって表現されるが、この場合、生成される特徴量は、フィルタの種類(分割する領域の数とオリエンテーションの数)に依存した長さのベクトルとなる。
[参考文献7]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
コンテンツが音である場合には、音高特徴、音圧特徴、スペクトル特徴、リズム特徴、発話特徴、音楽特徴、音イベント特徴などを抽出する。音高特徴は、例えばピッチを取るものとすればよい。
音圧特徴としては、音声波形データの振幅値を用いるものとしてもよいし、短時間パワースペクトルを求め、任意の帯域の平均パワーを計算して用いるものとしてもよい。いずれにしても、音圧を計算するバンドの数に依存した長さのベクトルとなる。
スペクトル特徴としては、例えばメル尺度ケプストラム係数(MFCC:Mel-Frequency Cepstral Coefficients)を用いることができる。
リズム特徴としては、例えばテンポを抽出すればよい。テンポを抽出するには、例えば下記の参考文献8に記載される方法などを用いることができる。
[参考文献8]E.D. Scheirer, “Tempo and Beat Analysis of Acoustic Musical Signals ”, Journal of Acoustic Society America, Vol. 103, Issue 1, pp.588-601, 1998
発話特徴、音楽特徴は、それぞれ、発話の有無、音楽の有無を表す。発話・音楽の存在する区間を発見するには、例えば下記の参考文献9に記載される方法などを用いればよい。
[参考文献9]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
音イベント特徴としては、例えば、笑い声や大声などの感情的な音声、あるいは、銃声や爆発音などの環境音の生起などを用いるものとすればよい。このような音イベントを検出するには、例えば下記の参考文献10に記載される方法などを用いればよい。
[参考文献10]国際公開第2008/032787号
コンテンツが映像である場合、映像は、一般に画像と音のストリームであるから、上記説明した画像特徴と音特徴を用いることができる。映像中のどの画像、音情報を分析するかについては、例えば、予め映像をいくつかの区間に分割し、その区間ごとに1つの画像、音から特徴抽出を実施する。
映像を区間に分割するには、予め決定しておいた一定の間隔で分割するものとしてもよいし、例えば下記の参考文献11に記載される方法などを用いて、映像が不連続に切れる点であるカット点によって分割するものとしてもよい。
[参考文献11]Y. Tonomura, A. Akutsu, Y. Taniguchi, and G. Suzuki, “Structured Video Computing”, IEEE Multimedia, pp.34-43, 1994
映像を区間に分割する場合には、望ましくは、上記の後者の方法を採用する。映像区間分割処理の結果として、区間の開始点(開始時刻)と終了点(終了時刻)が得られるが、この時刻毎に別々の特徴量として扱えばよい。
上記説明した特徴量の中から、一つあるいは複数を利用してもよいし、その他の公知の特徴量を用いるものとしてもよい。上記のいずれの方法によっても、次元を持つ高次元数値ベクトルを得ることができる。
写像計算部32は、特徴抽出部30によってコンテンツの種別毎に抽出された、コンテンツの各々についての高次元数値ベクトルと、入力部2により取得された関係指示子と基づいて、高次元数値ベクトルを低次元バイナリベクトルに変換するためのベクトル量子化器を生成する。なお、低次元バイナリベクトルの次元数は、高次元数値ベクトルの次元数よりも小さい。
具体的には、写像計算部32は、コンテンツの種別毎に求められる、高次元数値ベクトルに対してコンテンツの種別に応じた写像を行うことにより得られる低次元数値ベクトルと高次元数値ベクトルを量子化することにより得られる低次元バイナリベクトルとの相関を表す第1の相関、及び関係指示子が付与された、種別が異なるコンテンツ間の組み合わせの各々について求められる、高次元数値ベクトルに対してコンテンツの種別に応じた写像を行うことにより得られる低次元数値ベクトル間の相関を表す第2の相関とに基づいて、コンテンツの種別毎に写像を計算し、コンテンツの種別毎に、計算した当該写像を用いたベクトル量子化器を生成する。
写像計算について、以下、詳細に説明する。特徴抽出部30によって得られた特徴量は高次元数値ベクトルである。種別mのコンテンツiから抽出された高次元数値ベクトルをxm,i∈RDmと表す。種別mのコンテンツの高次元数値ベクトル次元はDmである。
このとき、写像計算部32は、種別mに対して、hm,k:RDm→{−1,1}(k=1,2,…,B)となるベクトル量子化器の集合を求める。{−1,1}と{0,1}は情報量という観点で本質的に差異がないことに注意すれば、各ベクトル量子化器hによって、高次元数値ベクトルxm,i∈RDmは0または1を取るバイナリ値に量子化されるから、種別mの高次元数値ベクトルxm,iは、B個のベクトル量子化器集合Hm={hm,1,hm,2,・・・,hm,B}によってB個のバイナリ値、すなわち、Bビットの低次元バイナリベクトルに変換されることになる。以降、誤解のない場合、ベクトル量子化器集合も単にベクトル量子化器と呼称する。
本発明の実施の形態の目的は、ベクトル量子化器により得られる低次元バイナリベクトルによって、異なる種別のコンテンツ同士であっても類似度の計測を可能にしたうえ、さらに時間のかかる類似度計算を省略することである。したがって、ここで生成するベクトル量子化器と、それにより生成される低次元バイナリベクトルは、次の2つの性質(A)(B)を持つ。
(A)ベクトル量子化した後の低次元バイナリベクトルが、元の特徴量(高次元数値ベクトル)に対して情報損失が小さいこと。
(B)異なる種別の特徴量(高次元数値ベクトル)のうち、関係指示子が関連性を示すペアについては、低次元バイナリベクトルの距離が近くなること。
ベクトル量子化器は実質的に関数の形態をとる。この関数の形態は任意のものを取って構わないが、本実施の形態の一例では、以下の(1)式で示す線形写像に基づくベクトル量子化器を適用する。
ここで、sign(x)は符号関数であり、x≧0のとき1、x<0のとき−1をとる関数である。また、wm,k∈RDk、bm,k∈Rのパラメータである。このベクトル量子化器において、未知のパラメータはwm,kとbm,kとの二つだけである。
ここで、仮にxm,i(i=1,2,・・・,Nm)が平均0に正規化されているとき、bm,k=0としても一般性を失わない。xm,iを0に正規化するには、xm,iの平均を、各xm,iから減算すればよいのであり、これはxm,i∈RDkにおいて常に可能であることから、bm,k=0と決定できる。したがって、以降、xm,iの平均は0に正規化されているとし、上記(1)式を以下の(2)式のように定義しなおして説明する。
このベクトル量子化器の定義によれば、関数φm,k内にあるパラメータwm,kを定めることで、ベクトル量子化器を一意に定めることができる。したがって、写像計算部32による処理の目的は、この写像wm,k(k=1,2,…,B)を求めることである。
ここで、上記(2)式のように規定されるベクトル量子化器の意味は、幾何的には図2を用いて説明できる。図2には、特徴量空間RDm上に、種別mの各コンテンツ(i=1,2,・・・,Nm)から抽出された高次元数値ベクトルxm,i(i=1,2,・・・,Nm)が分布している。上記図2では、便宜上2次元のように図示しているが、実際にはDm次元の空間である。ここでベクトル量子化器を構成するφm,k(x)は、この特徴量空間上の原点を通る直線(実際はDm−1次元の超平面)を表す。hm,k(x)は、本質的には符号関数であるから、その値は、高次元数値ベクトルの点がこの直線φm,k(x)のどちら側にあるかによって、1または0をとる。すなわち、上記(2)式によって定義されるベクトル量子化器41は、特徴量空間を直線によって1と0の2つの領域に分割する関数である。ここで、wm,kはこの直線の傾きに対応し、wm,kが変化すれば、分割する角度が変化することになる。前述した2つの性質、すなわち、
(A)ベクトル量子化した後の低次元バイナリベクトルが、元の特徴量(高次元数値ベクトル)に対して情報損失が小さいこと。
(B)異なる種別の特徴量(高次元数値ベクトル)のうち、関係指示子が関連性を示すペアについては、低次元バイナリベクトルの距離が近くなること。
に合うベクトル量子化器となるように、wm,kを求めるには、以下の(A’)及び(B’)の性質を満たすようにすればよい。
(A’)各種別において、hm,k(x)=1(またはhm,k(x)=0)にベクトル量子化されたコンテンツ(高次元数値ベクトル)群については、φm,k(x)=1(またはφm,k(x)=−1)に近くなるように直線を決定する(すなわち、wm,kを決める)。
(B’)なおかつ、異なる種別において、関係指示子が示す関連するコンテンツ同士が、低次元バイナリベクトルの空間において近い値を持つようにする。
まず、上記(A’)の性質を満たすためには、hm,k(x)=1であればφm,k(x)=1に近く、またhm,k(x)=0であればφm,k(x)=−1に近くなればよい。これは言いかえれば、hm,k(x)の値とφm,k(x)の値が近くなるようにwm,kを求めればよいことになる。
続いて、上記(B’)の性質を満たすための方法を説明する。例えば、コンテンツの種別が画像と文書である場合について、図3を用いて説明する。図3の例では、画像特徴量を丸、文書特徴量を三角で表している。仮に、それぞれの画像と文書の特徴量空間において、上記(A’)の性質を満たすような直線51、52がそれぞれ得られているとし、さらに、関係指示子によって破線53〜56で示す関係が得られているとする。このとき、直線51、52によって分離されている画像および文書特徴量のうち、関係指示子によって示される関係のある画像/文書特徴量同士が、互いに同じ低次元バイナリベクトルを持つようにベクトル量子化器のパラメータwm,kを求めればよいことになる。例えば、図3の例では白丸と白三角(△)、黒丸と黒三角(▲)がそれぞれ同じ低次元バイナリベクトルを持てばよい。
以上示した2つの考えに基づき、本実施形態の一例では、前述の(A’)と(B’)の2つの性質を満たすパラメータwm,kを求める。
説明の簡単のため、コンテンツの種別は2つ、例えば画像と文書とし、m=1のとき画像、m=2のとき文書を表すものとする。もちろん、いかに説明する実施形態の一例は、その他の種別、あるいは、種別が3以上の場合に対しても同様に適用できるものである。
以下では、便宜上、画像特徴量x1,i(i=1,2,・・・,N1)および文書特徴量x2,i(i=1,2,・・・,N2)を並べた行列X1={x1,1,・・・,x1,N1}、X2={x2,1,・・・,x2,N2}を定義する。さらに、画像特徴量のためのベクトル量子化器のパラメータw1,k(k= 1,2,…,B)および文書特徴量のためのベクトル量子化器のパラメータw2,k(k= 1,2,…,B)を並べた行列W1={w1,1,・・・,w1,B}、W2={w2,1,・・・,w2,B}を定義する。
まず上記(A’)の性質を満たすようにするには、以下の(3)式が小さくなるようにをWm求めればよい。
ここで、qm,iは、xm,iをベクトル量子化した際の低次元バイナリベクトルである。この式の意味は、符号関数を取ってベクトル量子化する前の低次元数値ベクトル(φm,k(x)に相当)と、符号関数を取ってベクトル量子化された後の低次元バイナリベクトル(hm,k(x))との距離を表している。従って、これを小さくすることで、先に述べた(A’)の性質を満たすようなベクトル量子化器を得ることができる。上記(3)式は、
という条件の下、以下の(5)式のように展開できる。
ここで、Qmは低次元バイナリベクトルqm,i(i=1,2,・・・,Nm)を並べた行列Xである。従って、上記(3)式を小さくすることは、以下の(6)式を大きくすることに他ならない。
上記(6)式は、高次元数値ベクトルに対してコンテンツの種別に応じた写像を行うことにより得られ、かつ符号関数によりベクトル量子化される前の低次元数値ベクトル(φm,k(x)に相当)と、高次元数値ベクトルが符号関数によりベクトル量子化された後の低次元バイナリベクトル(hm,k(x))との第1の相関を表している。上記第1の相関は、コンテンツの種別毎に求められる。
続いて、上記(B’)の性質を満たすようにするには、以下の(7)式が小さくなるようにWmおよびWlを求めればよい。
ここで、Rmlは種別mと種別lとの関係指示子により指示される関係を示す行列である。例えば、RmlをNm×Nlの行列とし、関係指示子により関係があるとされている要素のみ1、それ以外の要素を0とすればよい。
上記(7)式では、関係指示子によって関係があるとされた高次元数値ベクトルのペアを、変換先で同一の値にするよう要請するものである。上記式は、Rmlのij要素が1であった場合、種別mのi番目の高次元数値ベクトルxm,iと種別lのj番目の高次元数値ベクトルxl,jのペアについて、それぞれ上記(2)式によって与えられるベクトル量子化器により低次元に写像された値の距離を表している。したがって、これを小さくするようにWmおよびWlを求めることで、異なる種別においても、関係指示子が示す関連するコンテンツ同士については、低次元バイナリベクトルの空間において近い値を持つようにすることができる。上記(7)式は、
という条件の下、以下の(9)式のように展開できる。
従って、上記(7)式を小さくすることは、以下の(10)式を大きくすることに他ならない。
上記(10)式は、関係指示子が付与された、2つの種別のコンテンツ間の組み合わせの各々についての、それぞれ上記(2)式によって与えられるベクトル量子化器によって、高次元数値ベクトルに対してコンテンツの種別に応じた写像を行うことにより得られる低次元数値ベクトル間の相関を表す第2の相関を表している。上記第2の相関は、コンテンツの種別の組み合わせ毎に求められる。
以上のように定義された上記(6)式および上記(10)式をまとめると、下記の問題が得られる。
ここで、λm,λlはそれぞれ所与の定数であり、例えば双方1などとすればよい。上記(11)式の目的関数は、上記(6)式および上記(10)式の2つの相関の線形結合であると言い換えることができる。従って、写像計算部32は、上記(11)式に示すように、上記(6)式の第1の相関と上記(10)式の第2の相関との線形結合により求められる値が大きくなるように、コンテンツの種別m毎に写像Wmを計算する。
なお、本実施の形態の一例では、上記(11)式の線形結合の場合を例にあげたが、広く一般の多項演算(例えば、積、商、対数和、指数和)、あるいは統計量(例えば、平均、中央値、最頻値、最小値、最大値)などを用いてもよい。
この問題は非凸最適化問題であり、そのままでは解くことができない。しかしながら、未知変数行列であるWm,Wl,Qm,Qlのうち、任意の3つを固定した元では凸であるので、公知の交互最適化、並びに公知の線形計画法によってこれらを求めることができる。
このようにして求めたWmおよびWlは、ベクトル量子化(符号関数)による情報損失を小さくしつつ、かつ、関係指示子によって関係があるとされる異種メディアを可能な限り同じ低次元バイナリベクトルに変換するものである。したがって、目的としていた2つの性質(A)、(B)を最適に満たすようなWmおよびWlを得ることができる。
新たな低次元バイナリベクトルを生成する際には、上記(2)式を計算すればよいだけである。この計算に必要となるメモリ量は、wm,kとxm,iそれぞれを格納するに必要なメモリ量のみであり、仮に、特徴量が浮動小数点表示であり、次元Dが100の場合800B程度、仮に次元Dが100000程度になったとしても高々800KBと、現存する一般的なコンピュータにおいても極めて容易に蓄積できるメモリ量に抑えることができる。したがって、この方法によって、高速かつ省メモリな低次元バイナリベクトルへの量子化が可能である。
ベクトル量子化器記憶部34には、写像計算部32によって生成されたベクトル量子化器が格納される。すなわち、具体的には、全てのコンテンツの種別mにおける{Wm}が、ベクトル量子化器記憶部34に記憶される。
ベクトル量子化部36は、特徴抽出部30によって抽出されたベクトル量子化対象のコンテンツの高次元数値ベクトルと、ベクトル量子化器記憶部34も格納されたコンテンツの種別に応じたベクトル量子化器とに基づいて、コンテンツの高次元数値ベクトルを低次元バイナリベクトルに変換する。
前述の写像計算処理が済んでいれば、ベクトル量子化器記憶部34には、コンテンツの種別毎にB組のベクトル量子化器が格納されている。これを用いれば、上記(2)式にしたがって、特徴量で表現された任意のコンテンツを、Bビット以下の低次元バイナリベクトルで表現することができる。
出力部4は、ベクトル量子化部36によって生成された低次元バイナリベクトルを、結果として出力する。
<情報処理装置の作用>
次に、本実施の形態に係る情報処理装置1の作用について説明する。情報処理装置1は、ベクトル量子化器を生成する写像計算処理と、特徴量である高次元数値ベクトルを低次元バイナリベクトルに変換するベクトル量子化処理を実行する。以下、これら2つの処理について説明する。
<写像計算処理ルーチン>
まず、情報処理装置1が、コンテンツデータベース5に格納された複数のコンテンツを取得すると、情報処理装置1によって、図4に示す写像計算処理ルーチンが実行される。写像計算処理ルーチンは、実際にコンテンツをベクトル量子化する前に、少なくとも1度実行される処理である。
まず、ステップS100において、入力部2は、コンテンツデータベース5に格納されている複数のコンテンツと、複数のコンテンツ各々の種別と、種別が異なるコンテンツ間の組み合わせの各々に対して予め付与された関係指示子とを受け付ける。
ステップS102において、特徴抽出部30は、コンテンツの種別毎に、上記ステップS100で取得された当該種別の複数のコンテンツの各々について、種別に応じた高次元数値ベクトルを特徴量として抽出する。
ステップS104において、写像計算部32は、上記ステップS102でコンテンツの種別毎に抽出された、コンテンツの各々についての高次元数値ベクトルと、上記ステップS100で受け付けた関係指示子と基づいて、上記(11)式に従って、コンテンツの種別毎に、高次元数値ベクトルを低次元バイナリベクトルに変換するためのベクトル量子化器を生成する。
ステップS106において、写像計算部32は、上記ステップS104でコンテンツの種別毎に生成されたベクトル量子化器を、ベクトル量子化器記憶部34へ格納して、写像計算処理ルーチンを終了する。
以上の処理により、コンテンツデータベース5に格納された複数のコンテンツと関係指示子とから、種別毎に応じたベクトル量子化器を生成することができる。
<ベクトル量子化処理ルーチン>
次に、ベクトル量子化対象としてのコンテンツが情報処理装置1に入力されると、情報処理装置1によって、図5に示すベクトル量子化処理ルーチンが実行される。ベクトル量子化処理ルーチンは、ベクトル量子化器記憶部34に格納されたベクトル量子化器を用いてコンテンツデータの特徴量をベクトル量子化する処理である。
まず、ステップS200において、入力部2は、ベクトル量子化対象としてのコンテンツと、当該コンテンツの種別との入力を受け付ける。
ステップS202において、特徴抽出部30は、上記ステップS200で受け付けたコンテンツから種別に応じた高次元数値ベクトルを特徴量として抽出する。
ステップS204において、ベクトル量子化部36は、上記ステップS202で抽出されたコンテンツの高次元数値ベクトルと、ベクトル量子化器記憶部34も格納されたコンテンツの種別に応じたベクトル量子化器とに基づいて、コンテンツの高次元数値ベクトルを低次元バイナリベクトルに変換する。
ステップS206において、出力部4は、ベクトル量子化部36によって生成された低次元バイナリベクトルを、結果として出力して、ベクトル量子化処理ルーチンを終了する。
以上の処理により、入力されたコンテンツに対して、コンテンツの種別によらず低次元バイナリベクトルを求めることができる。
以上説明したように、本発明の実施の形態に係る情報処理装置によれば、コンテンツの種別毎に抽出されたコンテンツの各々についての高次元数値ベクトルと、関係指示子とに基づいて、高次元数値ベクトルに対して写像を行うことにより得られる低次元数値ベクトルと高次元数値ベクトルを量子化することにより得られる低次元バイナリベクトルとの相関を表す第1の相関、及び関係指示子が付与された、種別が異なるコンテンツ間の組み合わせの各々について求められる、高次元数値ベクトルに対して写像を行うことにより得られる低次元数値ベクトル間の相関を表す第2の相関とに基づいて、コンテンツの種別毎に写像を計算し、計算した写像を用いた、高次元数値ベクトルを低次元バイナリベクトルに変換するためのベクトル量子化器を生成することにより、写像及び量子化による情報の損失と異なる種別のコンテンツ間の関係とを考慮して、ベクトル量子化を行うことができるベクトル量子化器を生成することができる。
また、本発明の実施の形態に係る情報処理装置によれば、コンテンツの高次元数値ベクトルと、生成されたコンテンツの種別に応じたベクトル量子化器とに基づいて、コンテンツの高次元数値ベクトルを、低次元バイナリベクトルに変換することにより、写像及び量子化による情報の損失と異なる種別のコンテンツ間の関係とを考慮して、ベクトル量子化を行うことができる。
本発明の実施の形態において、第1の相関は、コンテンツを表す低次元数値ベクトルの持つ情報量が、低次元バイナリベクトルに量子化された後にどの程度保持されているかを表し、また、第2の相関は、異なる種別のコンテンツ同士が互いにどの程度関連しているかを表している。然るに、これら第1、第2の相関の線形結合の値が大きくなるように求めたベクトル量子化器は、精度劣化の主要因となる情報損失を最小限に抑えつつ、関連する異なる種別のコンテンツを発見することができるものとなる。
また、画像から文書、画像から音声などのように、関連する異なる種別のコンテンツを、高速かつ省メモリでありながらも高精度に発見することができるよう、情報損失を最小限に抑えるように、コンテンツの特徴量である高次元数値ベクトルを低次元バイナリベクトルへとベクトル量子化することができる。
また、これにより、相互に異なる種別でありながら、関連するコンテンツ同士を、高速かつ省メモリでありながらも高精度に発見することが可能となる。
また、本発明の実施の形態に係る情報処理装置は、画像から文書、画像から音声などのように、関連する異なる種別のコンテンツ同士を、高速かつ省メモリでありながらも高精度に発見するためのベクトル量子化器の生成及びバイナリベクトルの生成を行うことが不可欠な用途に適用することができる。
<第2の実施の形態>
<システム構成>
次に、図6を参照して、本発明の第2の実施の形態について説明する。なお、第1の実施の形態と同様の構成となる部分については、同一符号を付して説明を省略する。
上記第1の実施の形態において、写像計算部とベクトル量子化部とは分離可能であり、例えば、上記図1に示した情報処理装置1以外にも、サーバ―クライアント装置構成を取ることもできる。
第2の実施の形態では、サーバ装置とクライアント装置とで情報処理システムを構成する点が、第1の実施の形態と異なっている。第2の実施の形態では、類似コンテンツの検索を実施する情報処理システムに、本発明を適用させた場合を例に説明する。
本発明の第2の実施の形態に係る情報処理システム200は、図6に示すように、サーバ装置7と、クライアント装置13とを備えている。
図6に示すサーバ装置7は、CPUと、RAMと、各処理ルーチンを実行するためのプログラムを記憶したROMとを備えたコンピュータで構成され、機能的には次に示すように構成されている。サーバ装置7は、図6に示すように、入力部8、演算部9、出力部10を備えている。また、演算部9は、特徴抽出部90、写像計算部92、ベクトル量子化器記憶部94、及びベクトル量子化部96を備えている。また、コンテンツデータベース11には、複数のコンテンツが格納されている。さらに、コンテンツデータベース5には、異なる種別のメディアが含まれ、各コンテンツに対して相互の関係を示す関係指示子が対応づけられている。
また、図6に示すクライアント装置13は、CPUと、RAMと、各処理ルーチンを実行するためのプログラムを記憶したROMとを備えたコンピュータで構成され、機能的には次に示すように構成されている。クライアント装置13は、図6に示すように、入力部14、演算部15、出力部16を備えている。また、演算部15は、特徴抽出部150、ベクトル量子化器記憶部154、及びベクトル量子化部156を備える。
ここで、サーバ装置7とクライアント装置13において、共通する構成要素(入力部、特徴抽出部、ベクトル量子化器記憶部、ベクトル量子化部)はそれぞれ同一の機能を有するように構成し、また、上記図1に記載した各構成要素と同一名称のものは、上記図1の場合と同一の機能を有するものとしてよい。さらに、ベクトル量子化記憶部の内容は、それぞれ何らかの通信手段で適宜同期されているものとする。
図6に示す装置構成における処理動作は下記の通りである。まずサーバ装置7は、上記説明した処理と同様の処理を行って、適宜、ベクトル量子化器を生成してベクトル量子化器記憶部94に格納し、クライアント装置13のベクトル量子化器記憶部154と同期させる。さらに、コンテンツデータベース11中のコンテンツに対して、上記説明した処理と同様の処理を行って、低次元バイナリベクトルを生成し、低次元バイナリベクトルとコンテンツとを対応付けて、コンテンツデータベース11に格納しておく。
一方、クライアント装置13は、入力部14によって、利用者からの検索要求、すなわち、新規コンテンツの入力を受け付けたら、当該コンテンツに対して低次元バイナリベクトルを生成し、出力部16からサーバ装置7の入力部8へと当該低次元バイナリベクトルを出力する。
クライアント装置13から低次元バイナリベクトルを受けた場合、サーバ装置7は、当該低次元バイナリベクトルを用いて、コンテンツデータベース11に対して検索を行い、低次元バイナリベクトルに基づいて類似コンテンツを発見し、その結果をクライアント装置13へと出力する。
最後に、クライアント装置13は、サーバ装置7より受け取った検索結果を利用者に出力する。
このように構成することで、サーバ装置7で写像計算処理を実施し、クライアント装置13ではベクトル量子化処理のみを実施するように構成することができる。
なお、第2の実施の形態に係る情報処理システム200の他の構成及び作用については、第1の実施の形態と同様であるため、説明を省略する。
この構成を取るメリットを説明する。一般に、クライアント装置(PC、携帯端末等)は、サーバ装置と比較して演算能力に乏しいため、写像計算処理のように演算量が比較的多い処理には適さない場合がある。この構成にすれば、写像計算処理は演算能力の高いサーバ装置で適宜実施し、クライアント装置では演算量の少ないベクトル量子化処理だけを実施することができる。
さらに、通常、ネットワークを介した通信によってデータ容量の多い情報を伝送する場合、伝送時間が掛かるという問題があるが、当該構成によって、伝送するのは情報量の小さい低次元バイナリベクトルのみでよくなり、検索に対する即応性を高めることができる。
以上説明したように、前述したベクトル量子化器と低次元バイナリベクトルとを用いることにより、画像同士、文書同士などといった、同一の種別のコンテンツのみならず、画像から文書、画像から音声などのように、関連する異なる種別のコンテンツ同士を、高速かつ省メモリでありながらも高精度に発見することが可能になる。
また、この構成により、省メモリであることから、例えば、メモリ量の小さいモバイル端末(スマートフォンやタブレット)での利用も可能となる。また、高速であることから、実時間性の要求される利用に対しても対応可能である。これらの効果を活用した具体的な利用シーンとして、街中を歩いているときに気になる場所や商品をモバイル端末で写真撮影し、類似した場所・商品を検索することが可能になる。
[実施例]
次に、第1の実施の形態で説明した処理により生成したベクトル量子化器によって、類似コンテンツを高速かつ省メモリに検索する実施例の一例について説明する。例えば、コンテンツデータベース5に、N1個の画像特徴量X1={x1,1,・・・,x1,N1}とN2個の文書特徴量X2={x2,1,・・・,x2,N2}とが格納されているとし、これらの特徴量は全て上記(2)式に基づいて低次元バイナリベクトルQ1={q1,1,・・・,q1,N1}およびQ2={q2,1,・・・,q2,N2}に変換されているものとする。このとき、目的はX1、X2いずれにも含まれない特徴量x1,aあるいはx2,aに対して類似するコンテンツをX1およびX2の中から発見することである。
まず、上記(2)式に基づいて、特徴量である高次元数値ベクトルx1,aあるいはx2,aを低次元バイナリベクトルq1,aあるいはq2,aに変換しておく。最も単純には、図7に示すハッシュテーブルを用いる方法がある。まず、コンテンツデータベース5に登録されている低次元バイナリベクトルY1およびY2によって、図7に示すようなルックアップテーブルを構成する。このテーブルでは、ある低次元バイナリベクトルと、その低次元バイナリベクトルに変換された特徴量(コンテンツデータ識別子)を対応づけて格納しており、低次元バイナリベクトルが与えられた際に、それと同一の低次元バイナリベクトルを取るコンテンツを即時発見することができる。ここで、本発明の実施の形態により生成される低次元バイナリベクトルにおいては、コンテンツの種別に寄らず、関連するもの、類似するものを同一の低次元バイナリベクトルに変換できることが特徴である。すなわち、例えば、低次元バイナリベクトル「0000」を指定した場合、それに対応づけられた画像と文書(画像1、文書3・・・)を、コンテンツの種別に寄らずに直ちに発見できるのである。同様に、このテーブルを利用すれば、低次元バイナリベクトルq1,aあるいはq2,aに対応したコンテンツを即座に発見することが可能となる。
この方法によれば、コンテンツデータベース5に登録された画像、文書の数N1、N2に寄らず、ほぼ一定の時間で高速に、かつ、元の特徴量(高次元数値ベクトル)をメモリに保持する必要がないため、省メモリに類似コンテンツを発見できるという利点がある。
また、別の方法として、ハミング距離による距離計算を利用することができる。すなわち、低次元バイナリベクトルq1,aあるいはq2,aと、Q1およびQ2に含まれるN1+N2個の低次元バイナリベクトルとの距離を計算し、距離の小さいものを類似コンテンツとして得るものである。低次元バイナリベクトルはバイナリであるため、距離計算は例えばハミング距離で計算することができるが、ハミング距離はXOR(排他的論理和)とpopcnt演算(すなわち、バイナリ列のうち、1となっているビットの数を数える演算)のみで計算できること、および、低次元バイナリベクトルは通常少数のバイナリ値で表現できることから、元の高次元数値ベクトルで距離計算する場合に比べ、遥かに高速に演算できる。
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。本実施形態の主要な特徴を満たす範囲内において、任意の用途と構成を取ることができることは言うまでもない。
例えば、上記第1の実施の形態における、写像計算部32と、ベクトル量子化部36とを別々の装置として構成してもよい。その場合には、写像計算部32を含んでベクトル量子化器生成装置を構成し、ベクトル量子化部36を含んでベクトル量子化装置を構成する。
また、本実施の形態の情報処理装置及び情報処理システムは、ベクトル量子化器記憶部34を備えている場合について説明したが、例えばベクトル量子化器記憶部34が情報処理装置及び情報処理システムの外部装置に設けられ、情報処理装置及び情報処理システムは、外部装置と通信手段を用いて通信することにより、ベクトル量子化器記憶部34を参照するようにしてもよい。
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
例えば、前述した実施形態における写像計算部、ベクトル量子化部をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、PLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されるものであってもよい。
また、上述の情報処理装置及び情報処理システムは、内部にコンピュータシステムを有しているが、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
以上、図面を参照して本発明の実施の形態を説明してきたが、上記実施の形態は本発明の例示に過ぎず、本発明が上記実施の形態に限定されるものではないことは明らかである。したがって、本発明の技術思想及び範囲を逸脱しない範囲で構成要素の追加、省略、置換、その他の変更を行ってもよい。