(57)【特許請求の範囲】
【請求項１】
特徴ベクトルから目的変数を予測するためのモデル関数であり、かつ前記特徴ベクトルの１次特徴に対する１次重みベクトルｗ＾と前記特徴ベクトルの２次特徴に関する対角成分を含む全ての要素からなる２次重み行列Ｚ＾とを含む前記モデル関数と、
前記モデル関数による予測値の誤差を表す損失関数、及び前記２次重み行列Ｚ＾の核ノルムを含む目的関数を最適化することにより予め推定された、前記モデル関数のモデルパラメータとに基づいて、
入力された特徴ベクトルに対する目的変数を予測する予測部
を含み、
前記モデルパラメータは、
訓練用特徴ベクトルと前記訓練用特徴ベクトルに対する目的変数との複数のペアである訓練データに基づいて、前記訓練データを用いた前記損失関数と前記１次重みベクトルｗ＾のノルムとを含む第１の目的関数が最適化されるように前記１次重みベクトルｗ＾が更新され、
前記訓練データに基づいて、
前記２次重み行列の固有ベクトルｐ＾が各列ベクトルである行列Ｐ＾と前記２次重み行列の固有値のベクトルλ＾とから求められる２次重み行列Ｚλ＾を用いた前記損失関数の勾配から固有ベクトルｐ＾が計算され、前記計算された固有ベクトルｐ＾と前記２次重み行列Ｚλ＾とから求められる２次重み行列を用いた前記損失関数と固有値λとから固有値λが計算され、
前記固有ベクトルｐ＾から前記固有ベクトルｐ＾が各列ベクトルである行列Ｐ＾が生成され、前記固有値λから前記固有値λを要素とする固有値のベクトルλ＾が生成され、
前記固有値のベクトルλ＾のノルムと前記２次重み行列Ｚλ＾を用いた前記損失関数との和から前記固有値のベクトルλ＾が調整され、又は
前記行列Ｐ＾と所定の行列Ａ＾から生成されるＰ＾Ａ＾Ｐ＾Ｔを２次重み行列として用いた前記損失関数が最適化されることにより前記行列Ａ＾が生成され、前記行列Ａ＾を固有値分解することにより行列Ｑ＾及び行列Σ＾が生成され、前記行列Ｑ＾から前記行列Ｐ＾が調整され、前記行列Σ＾から前記固有値のベクトルλ＾が調整されることによって、
前記損失関数と前記核ノルムとを含む第２の目的関数が最適化されることにより、前記行列Ｐ＾と前記固有値のベクトルλ＾とから生成される前記２次重み行列Ｚ＾が更新されることが繰り返されることによって推定された前記モデルパラメータである、
予測装置。
【請求項２】
訓練用特徴ベクトルと前記訓練用特徴ベクトルに対する目的変数との複数のペアである訓練データに基づいて、前記目的関数を最適化することにより前記モデルパラメータを推定する学習部を更に含む
請求項１に記載の予測装置。
【請求項３】
予測部を含む予測装置における予測方法であって、
前記予測部が、特徴ベクトルから目的変数を予測するためのモデル関数であり、かつ前記特徴ベクトルの１次特徴に対する１次重みベクトルｗ＾と前記特徴ベクトルの２次特徴に関する対角成分を含む全ての要素からなる２次重み行列Ｚ＾とを含む前記モデル関数と、
前記モデル関数による予測値の誤差を表す損失関数、及び前記２次重み行列Ｚ＾の核ノルムを含む目的関数を最適化することにより予め推定された、前記モデル関数のモデルパラメータとに基づいて、
入力された特徴ベクトルに対する目的変数を予測するステップ
を含み、
前記モデルパラメータは、
訓練用特徴ベクトルと前記訓練用特徴ベクトルに対する目的変数との複数のペアである訓練データに基づいて、前記訓練データを用いた前記損失関数と前記１次重みベクトルｗ＾のノルムとを含む第１の目的関数が最適化されるように前記１次重みベクトルｗ＾が更新され、
前記訓練データに基づいて、
前記２次重み行列の固有ベクトルｐ＾が各列ベクトルである行列Ｐ＾と前記２次重み行列の固有値のベクトルλ＾とから求められる２次重み行列Ｚλ＾を用いた前記損失関数の勾配から固有ベクトルｐ＾が計算され、前記計算された固有ベクトルｐ＾と前記２次重み行列Ｚλ＾とから求められる２次重み行列を用いた前記損失関数と固有値λとから固有値λが計算され、
前記固有ベクトルｐ＾から前記固有ベクトルｐ＾が各列ベクトルである行列Ｐ＾が生成され、前記固有値λから前記固有値λを要素とする固有値のベクトルλ＾が生成され、
前記固有値のベクトルλ＾のノルムと前記２次重み行列Ｚλ＾を用いた前記損失関数との和から前記固有値のベクトルλ＾が調整され、又は
前記行列Ｐ＾と所定の行列Ａ＾から生成されるＰ＾Ａ＾Ｐ＾Ｔを２次重み行列として用いた前記損失関数が最適化されることにより前記行列Ａ＾が生成され、前記行列Ａ＾を固有値分解することにより行列Ｑ＾及び行列Σ＾が生成され、前記行列Ｑ＾から前記行列Ｐ＾が調整され、前記行列Σ＾から前記固有値のベクトルλ＾が調整されることによって、
前記損失関数と前記核ノルムとを含む第２の目的関数が最適化されることにより、前記行列Ｐ＾と前記固有値のベクトルλ＾とから生成される前記２次重み行列Ｚ＾が更新されることが繰り返されることによって推定された前記モデルパラメータである、
予測方法。
【請求項４】
学習部が、訓練用特徴ベクトルと前記訓練用特徴ベクトルに対する目的変数との複数のペアである訓練データに基づいて、前記目的関数を最適化することにより前記モデルパラメータを推定するステップを更に含む請求項３に記載の予測方法。
【請求項５】
コンピュータを、請求項１又は請求項２に記載の予測装置を構成する各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、予測装置、方法、及びプログラムに係り、特に、入力された特徴ベクトルに対する目的変数を予測する予測装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
統計的手法に基づく予測技術では、データと目的変数の依存関係を表すモデルを特徴ベクトルとモデルパラメータの関数として与え、モデルを用いて特徴ベクトルに対する目的変数の値を推定する。モデルパラメータの値は、一般的に、目的変数が判明しているデータを用いて求める。１次特徴と２次特徴とが扱えるモデルの例として、factorization machines（ＦＭ）がある（非特許文献１、２）。ＦＭでは、以下の式（１）に示すモデル関数を用いる。なお、記号の後に付された「＾」は、当該記号が行列、多次元配列、又はベクトルであることを表している。
【０００３】
【数１】
0006464057.tif 000002
【０００４】
ここで、ｘ＾＝［ｘ１,...,ｘｄ］Ｔ∈Ｒｄは入力特徴ベクトル、ｗ＾∈Ｒｄは１次重みベクトル、Ｖ＾Ｖ＾Ｔは低ランクの２次重み行列（Ｖ＾∈Ｒｄ×ｋ）、ｋ≪ｄはハイパーパラメータである。また、Τはベクトル転置を示す。
【０００５】
非特許文献１、２では、ｗ＾とＶ＾との推定値を以下の目的関数を最小化することで得る。
【０００６】
【数２】
0006464057.tif 000003
【０００７】
ここで、（ｘ１＾，ｙ１）,...,（ｘｎ＾，ｙｎ）は目的変数が判明している訓練データであり、ｌ（ｙ，〜ｙ）は２回微分可能凸の損失関数を表し、α＞０とβ＞０はハイパーパラメータである。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】S. Rendle,“Factorization machines with libfm”,ACM Transactions on Intelligent Systems and Technology, (2012), vol. 3, p.57-78.
【非特許文献２】S. Rendle,“Factorization machines”,Proceedings of International Conference on Data Mining, (2010), p.995-1000.
【発明の概要】
【発明が解決しようとする課題】
【０００９】
従来のＦＭでは、ｗ＾とＶ＾とを上記式（２）を最小化することによって得られる。しかし、上記式（２）はＶ＾に対して非凸であるため、最適なパラメータが得られる保証はない。また、２次の重み行列Ｖ＾Ｖ＾Ｔが非負定値である必要があり、対角成分が無視されているために、データに適合しない可能性があるなどの問題点がある。２次重み行列が非負定値でなくても良く、対角成分が使われても良く、最適なパラメータ値が得られるアルゴリズムを開発し、パラメータ値を少ない計算量で求めることが課題である。
【００１０】
本発明では、上記事情に鑑みて成されたものであり、目的変数を精度よく予測することができる予測装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、第１の発明に係る予測装置は、特徴ベクトルから目的変数を予測するためのモデル関数であり、かつ前記特徴ベクトルの１次特徴に対する１次重みベクトルｗ＾と前記特徴ベクトルの２次特徴に関する対角成分を含む全ての要素からなる２次重み行列Ｚ＾とを含む前記モデル関数と、前記モデル関数による予測値の誤差を表す損失関数、及び前記２次重み行列Ｚ＾の核ノルムを含む目的関数を最適化することにより予め推定された、前記モデル関数のモデルパラメータとに基づいて、入力された特徴ベクトルに対する目的変数を予測する予測部、を含んで構成されている。
【００１２】
第２の発明に係る予測方法は、予測部を含む予測装置における予測方法であって、前記予測部が、特徴ベクトルから目的変数を予測するためのモデル関数であり、かつ前記特徴ベクトルの１次特徴に対する１次重みベクトルｗ＾と前記特徴ベクトルの２次特徴に関する対角成分を含む全ての要素からなる２次重み行列Ｚ＾とを含む前記モデル関数と、前記モデル関数による予測値の誤差を表す損失関数、及び前記２次重み行列Ｚ＾の核ノルムを含む目的関数を最適化することにより予め推定された、前記モデル関数のモデルパラメータとに基づいて、入力された特徴ベクトルに対する目的変数を予測するステップを含む。
【００１３】
また、第１及び第２の発明において、前記モデルパラメータは、訓練用特徴ベクトルと前記訓練用特徴ベクトルに対する目的変数との複数のペアである訓練データに基づいて、前記訓練データを用いた前記損失関数と前記１次重みベクトルｗ＾のノルムとを含む第１の目的関数が最適化されるように前記１次重みベクトルｗ＾が更新され、前記訓練データに基づいて、前記２次重み行列の固有ベクトルｐ＾が各列ベクトルである行列Ｐ＾と前記２次重み行列の固有値のベクトルλ＾とから求められる２次重み行列Ｚλ＾を用いた前記損失関数の勾配から固有ベクトルｐ＾が計算され、前記計算された固有ベクトルｐ＾と前記２次重み行列Ｚλ＾とから求められる２次重み行列を用いた前記損失関数と固有値λとから固有値λが計算され、前記固有ベクトルｐ＾から前記固有ベクトルｐ＾が各列ベクトルである行列Ｐ＾が生成され、前記固有値λから前記固有値λを要素とする固有値のベクトルλ＾が生成され、前記固有値のベクトルλ＾のノルムと前記２次重み行列Ｚλ＾を用いた前記損失関数との和から前記固有値のベクトルλ＾が調整され、又は前記行列Ｐ＾と所定の行列Ａ＾から生成されるＰ＾Ａ＾Ｐ＾Ｔを２次重み行列として用いた前記損失関数が最適化されることにより前記行列Ａ＾が生成され、前記行列Ａ＾を固有値分解することにより行列Ｑ＾及び行列Σ＾が生成され、前記行列Ｑ＾から前記行列Ｐ＾が調整され、前記行列Σ＾から前記固有値のベクトルλ＾が調整されることによって、前記損失関数と前記核ノルムとを含む第２の目的関数が最適化されることにより、前記行列Ｐ＾と前記固有値のベクトルλ＾とから生成される前記２次重み行列Ｚ＾が更新されることが繰り返されることによって推定された前記モデルパラメータであるようにすることができる。
【００１４】
また、第１及び第２の発明において、訓練用特徴ベクトルと前記訓練用特徴ベクトルに対する目的変数との複数のペアである訓練データに基づいて、前記目的関数を最適化することにより前記モデルパラメータを推定する学習部を更に含むようにすることができる。
【００１５】
また、本発明のプログラムは、コンピュータを、上記の予測装置を構成する各部として機能させるためのプログラムである。
【発明の効果】
【００１６】
以上説明したように、本発明の予測装置、方法、及びプログラムによれば、特徴ベクトルの１次特徴に対する１次重みベクトルｗ＾と特徴ベクトルの２次特徴に関する対角成分を含む全ての要素からなる２次重み行列Ｚ＾とを含むモデル関数と、モデル関数による予測値の誤差を表す損失関数、及び２次重み行列Ｚ＾の核ノルムを含む目的関数を最適化することにより予め推定された、モデル関数のモデルパラメータとに基づいて、入力された特徴ベクトルに対する目的変数を予測することにより、目的変数を精度よく予測することができる、という効果が得られる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施の形態の概要を説明するための図である。
【図２】本実施の形態において用いるアルゴリズムの例を示す図である。
【図３】本実施の形態において用いるアルゴリズムの例を示す図である。
【図４】本発明の実施の形態に係る予測装置の機能的構成を示すブロック図である。
【図５】本実施の形態に係る予測装置における学習処理ルーチンを示すフローチャート図である。
【図６】本実施の形態に係る予測装置におけるモデルパラメータ推定処理ルーチンを示すフローチャート図である。
【図７】本実施の形態に係る予測装置における予測処理ルーチンを示すフローチャート図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００１９】
＜本実施の形態の概要＞
本実施の形態では、特徴ベクトルで表現可能なデータに対応する目的変数（例えば、種別を表すカテゴリ）を予測する際に、目的変数が判明している訓練データを用いて、１次特徴と２次特徴とが扱えるモデル関数のモデルパラメータを推定し、当該モデル関数を用いて新たなデータに対応する目的変数を自動で予測する予測装置に本発明を適用した場合を例に説明する。
【００２０】
図１に、本実施の形態の概要を説明するための図を示す。図１に示すように、本実施の形態は、「モデルパラメータの推定」と「新規のデータに対する目的変数予測」との処理を含む。
【００２１】
本実施の形態の「モデルパラメータの推定」では、上記図１に示すように、目的変数が判明しているデータである訓練データから、モデルパラメータである、１次重みベクトルｗ＾及び２次重み行列Ｚ＾を推定する。
【００２２】
そして、本実施の形態における「新規のデータに対する目的変数予測」では、上記図１に示すように、目的変数が判明していない新規のデータである特徴ベクトルｘ＾と、モデルパラメータである、１次重みベクトルｗ＾及び２次重み行列Ｚ＾を用いて、当該特徴ベクトルｘ＾の目的変数を予測する。
【００２３】
＜本実施の形態の原理＞
次に、本実施の形態における原理について説明する。本実施の形態においては、目的変数である上記式（２）を最小化する２次重み行列Ｖ＾Ｖ＾Ｔを直接求めるのではなく、上記式（２）中の第３項の代わりに、凸関数である核ノルムを用いた２次重み行列の正則化を導入した目的関数の最小化により、２次重み行列を求める。
【００２４】
本実施の形態において、モデル関数は、特徴ベクトルから目的変数を予測するためのものであり、かつ特徴ベクトルの１次特徴に対する１次重みベクトルｗ＾と特徴ベクトルの２次特徴に関する対角成分を含む全ての要素からなる２次重み行列Ｚ＾とを含む。具体的に、本実施の形態では、上記式（１）のモデル関数を、以下の式（３）に示すモデル関数に変える。
【００２５】
【数３】
0006464057.tif 000004
【００２６】
ここで、Ｚ＾∈Ｒｄ×ｄは２次重み行列を表す。
本実施の形態では、モデルパラメータである、１次重みベクトルｗ＾及び２次重み行列Ｚ＾を、以下の式（４）に示す目的関数を最小化することで得る。
【００２７】
【数４】
0006464057.tif 000005
【００２８】
ここで、
【００２９】
【数５】
0006464057.tif 000006
【００３０】
はＺの核ノルム（nuclear norm）である。
【００３１】
【数６】
0006464057.tif 000007
【００３２】
また、λ＾はＺ＾の固有値を表すベクトルである。従って、本実施の形態における目的関数は、上記式（４）に示すように、モデル関数による予測値の誤差を表す損失関数、及び２次重み行列Ｚ＾の核ノルムを含む。
【００３３】
ここで、任意の対象行列Ｚ＾∈Ｒｄ×ｄに対して、固有値分解
【００３４】
【数７】
0006464057.tif 000008
【００３５】
が存在している。なお、Ｐ＾は正規直交行列、ｐｓ＾∈ＲｄはＰ＾のｓ番目の列、Λ＾＝diag(λ＾)は対角行列、λｓはλ＾の要素である。この分解によって、以下の式（５）を用いて予測値を計算することができる。
【００３６】
【数８】
0006464057.tif 000009
【００３７】
また、上記式（５）の計算コストはオーダーＯ（ｒａｎｋ（Ｚ）ｄ）である。
【００３８】
なお、別法として、上記式（３）の代わりに、以下の式（６）に示すモデル関数も用いることができる。
【００３９】
【数９】
0006464057.tif 000010
【００４０】
上記式（３）は対角成分を利用しているのに対して、上記式（６）は対角成分を無視している。上記式（６）をモデル関数として用いた場合には、上記式（５）の予測式は以下の式（７）に示すようになる。
【００４１】
【数１０】
0006464057.tif 000011
【００４２】
ここで、
【００４３】
【数１１】
0006464057.tif 000012
【００４４】
はｐ＾とｘ＾との要素毎の積を表す。上記式（７）の計算コストもオーダーＯ（ｒａｎｋ（Ｚ＾）ｄ）である。
【００４５】
本実施の形態では、モデル関数として上記式（３）に示すモデル関数を用い、目的関数として上記式（４）に示す目的関数を用いる場合を例に説明する。
【００４６】
本実施の形態では、１次重みベクトルｗ＾と２次重み行列Ｚ＾＝Ｐ＾Λ＾Ｐ＾Ｔとを求めるために、図２に示すアルゴリズム１を用いる。図２に示すように、Ｓｔｅｐ１では２次重み行列Ｚ＾を固定し、１次重みベクトルｗ＾のみを更新する。図２に示す式（８）を最小化するには、Ｌ‐ＢＦＧＳ（例えば、以下に示す非特許文献３）、conjugate gradient（例えば、以下に示す非特許文献４）等を用いることができる。Ｓｔｅｐ２では、１次重みベクトルｗ＾を固定し、２次重み行列Ｚ＾＝Ｐ＾Λ＾Ｐ＾Ｔのみを更新する。
【００４７】
上記図２に示す式（９）を最小化するには、図３に示すアルゴリズム２を用いる。本実施の形態では、上記図２に示すアルゴリズム１に示す処理と、上記図３に示すアルゴリズム２の処理とを、収束するまで繰り返す。上記図２に示すアルゴリズム１を用いると、上記式（４）による最適なモデルパラメータが得られる保証がある。
【００４８】
また、上記図３に示すアルゴリズム２では、Ｓｔｅｐ１をべき乗法又はランチョス法によって行うことができる。Ｓｔｅｐ２は１変量の問題であり、ｌが２乗損失関数の場合、解析的に解くことができる。ｌが他の損失関数の場合は、数値的に解ける。また、Ｓｔｅｐ４の式（１０）をcoordinate descent（例えば、以下に示す非特許文献７）を用いて効率的に解くことができる。また、Ｓｔｅｐ４の式（１１）をＦＩＳＴＡ（例えば、以下に示す非特許文献５）やＡＤＭＭ（例えば、以下に示す非特許文献６）で効率的に解くことができる。
【００４９】
［非特許文献３］D. Liu and J. Nocedal,“On the limited memory BFGS method for large scale optimization”, Mathematical programming, (1989), vol. 45, p.503-528.
【００５０】
［非特許文献４］M. Hestenes and E. Stiefel,“Methods of Conjugate Gradients for Solving Linear Systems”, Journal of Research of the National Bureau of Standards, (1952)
【００５１】
［非特許文献５］A. Beck and M. Teboulle,“A fast iterative shrinkage-thresholding algorithm for linear inverse problems”, SIAM journal on imaging sciences , (2009), vol. 2, p.183-202.
【００５２】
［非特許文献６］S. Boyd, N. Parikh, E. Chu, B. Peleato and J. Eckstein,“Distributed optimization and statistical learning via the alternat-ing direction method of multipliers”, Foundations and Trends in Machine Learning, (2011), vol. 3, p.1-122.
【００５３】
［非特許文献７］Dudik, M., Harchaoui, Z., Malick, J.,“Lifted coordinate descent for learning with trace-norm regularization.”, AISTATS, (2012), vol. 22, p.327-336
【００５４】
＜本発明の実施の形態に係る予測装置の構成＞
次に、本発明の実施の形態に係る予測装置の構成について説明する。図４は、本発明の実施の形態に係る予測装置１００を示すブロック図である。この予測装置１００は、ＣＰＵと、ＲＡＭと、後述する各処理ルーチンを実行するためのプログラムを記憶したＲＯＭとを備えたコンピュータで構成され、機能的には次に示すように構成されている。図４に示すように、本実施の形態に係る予測装置１００は、入力部１０と、演算部２０と、出力部３０と、を含んで構成されている。
【００５５】
入力部１０は、訓練用特徴ベクトルと当該訓練用特徴ベクトルに対する目的変数との複数のペア（ｘ＾１，ｙ１）,...,（ｘ＾ｎ，ｙｎ）である訓練データを受け付け、訓練データ記憶部２２に記憶する。また、入力部１０は、目的変数の予測対象となる特徴ベクトルｘ＾を受け付ける。また、入力部１０は、パラメータ推定処理において、diagonal refitting及びfully-corrective refittingの何れの処理を用いるかを表す処理情報を受け付ける。処理情報は、ユーザによって予め定められる。
【００５６】
演算部２０は、学習部２１と、予測部２８とを含んで構成されている。
【００５７】
学習部２１は、入力部１０によって受け付けた訓練データに基づいて、モデルパラメータを推定する。また、学習部２１は、訓練データ記憶部２２と、パラメータ推定部２４と、モデルパラメータ記憶部２６とを含んで構成されている。
【００５８】
訓練データ記憶部２２には、入力部１０において受け付けた訓練データが記憶されている。
【００５９】
パラメータ推定部２４は、訓練データ記憶部２２に記憶されている訓練データに基づいて、上記（４）式に示す目的関数を最適化することによりモデルパラメータを推定する。上記式（４）に示す２次重み行列Ｚ＾の核ノルムを含む目的関数が最適化されるようにモデルパラメータを推定することにより、低ランクの２次重み行列Ｚ＾を得ることができる。なお、モデルパラメータの推定処理では、２次重み行列Ｚ＾はＺ＾＝Ｐ＾Λ＾Ｐ＾Ｔの形式で扱われる。
【００６０】
具体的には、パラメータ推定部２４は、訓練データ記憶部２２に記憶されている訓練データに基づいて、上記図２の式（８）に示す、訓練データを用いた損失関数と１次重みベクトルｗ＾のノルムとを含む第１の目的関数が最適化されるように、１次重みベクトルｗ＾を更新する。
【００６１】
次に、パラメータ推定部２４は、訓練データ記憶部２２に記憶されている訓練データに基づいて、上記図２の式（９）に示す、訓練データを用いた損失関数と核ノルムとを含む第２の目的関数が最適化されるように、行列Ｐ＾と固有値のベクトルλ＾とから生成される２次重み行列Ｚ＾を更新する。
【００６２】
パラメータ推定部２４は、予め定められた終了条件が満たされるまで、１次重みベクトルｗ＾の更新と、２次重み行列Ｚ＾の更新とを繰り返すことにより、モデルパラメータである１次重みベクトルｗ＾及び２次重み行列Ｚ＾を推定する。
【００６３】
本実施の形態では、２次重み行列Ｚ＾の更新には、上記図３のアルゴリズム２を用いる。
【００６４】
パラメータ推定部２４は、上記図３のアルゴリズム２のＳｔｅｐ１に示すように、訓練データに基づいて、２次重み行列の固有ベクトルｐ＾が各列ベクトルである行列Ｐ＾と２次重み行列の固有値のベクトルλ＾とから求められる２次重み行列Ｚλ＾を用いた損失関数の勾配から、固有ベクトルｐ＾を計算する。
【００６５】
そして、パラメータ推定部２４は、上記図３のアルゴリズム２のＳｔｅｐ２に示すように、計算された固有ベクトルｐ＾と２次重み行列Ｚλ＾とから求められる２次重み行列を用いた損失関数と固有値λとから、固有値λを計算する。
【００６６】
次に、パラメータ推定部２４は、上記図３のアルゴリズム２のＳｔｅｐ３に示すように、計算された固有ベクトルｐ＾から固有ベクトルｐ＾が各列ベクトルである行列Ｐ＾を生成し、計算された固有値λから固有値λを要素とする固有値のベクトルλ＾を生成する。
【００６７】
次に、パラメータ推定部２４は、入力部１０において受け付けた処理情報に応じて、上記図３のアルゴリズム２のＳｔｅｐ４に示すようにdiagonal refittingあるいはfully-corrective refittingを用いてパラメータ調整を行う。Ｓｔｅｐ４（diagonal refitting case）を用いた場合、パラメータ推定部２４は、現在の繰り返しにおける固有値のベクトルλ＾を￣λ＾に格納する。そして、パラメータ推定部２４は、アルゴリズム２のＳｔｅｐ４（diagonal refitting case）に示すように、固有値のベクトルλ＾のノルムと２次重み行列Ｚλ＾を用いた損失関数との和から、固有値のベクトルλ＾を調整する。
【００６８】
Ｓｔｅｐ４（fully-corrective refitting case）を用いた場合、パラメータ推定部２４は、行列Ｐ＾と所定の行列Ａ＾から生成されるＰ＾Ａ＾Ｐ＾Ｔを２次重み行列として用いた損失関数を最適化することにより行列Ａ＾を生成する。そして、パラメータ推定部２４は、生成された行列Ａ＾を固有値分解することにより行列Ｑ＾及び行列Σ＾を生成する。そして、パラメータ推定部２４は、行列Ｑ＾から行列Ｐ＾を調整し、行列Σ＾から固有値のベクトルλ＾を調整する。
【００６９】
パラメータ推定部２４は、予め定められた収束条件を満たすまで、上記Ｓｔｅｐ１〜Ｓｔｅｐ４の処理を繰り返す。
【００７０】
そして、パラメータ推定部２４は、推定されたモデルパラメータを、モデルパラメータ記憶部２６に記憶する。
【００７１】
モデルパラメータ記憶部２６には、パラメータ推定部２４において推定されたモデルパラメータが記憶されている。
【００７２】
予測部２８は、上記式（３）に示すモデル関数と、モデルパラメータ記憶部２６に記憶されているモデルパラメータとに基づいて、上記（５）に従って、入力部１０において受け付けた特徴ベクトルに対する目的変数を予測する。
【００７３】
出力部３０は、予測部２８によって予測された目的変数を、結果として出力する。
【００７４】
＜本発明の実施の形態に係る予測装置のモデルパラメータ推定の作用＞
次に、本発明の実施の形態に係る予測装置１００の作用について説明する。まず、訓練データと処理情報との入力を受け付けると、予測装置１００は、図５に示す学習処理ルーチンを実行する。また、学習処理ルーチンが終了すると、予測装置１００は、入力部１０から予測対象となる特徴ベクトルｘ＾を受け付け、図７に示す予測処理ルーチンを実行する。
【００７５】
まず、図５に示す学習処理ルーチンについて説明する。
【００７６】
＜学習処理ルーチン＞
ステップＳ１００において、入力部１０は、訓練データの入力を受け付け、訓練データ記憶部２２に格納する。
【００７７】
次に、ステップＳ１０２において、学習部２１は、上記ステップＳ１００で訓練データ記憶部２２に格納された訓練データに基づいて、モデルパラメータを推定する。ステップＳ１０２は、図６に示すモデルパラメータ推定処理ルーチンによって実現される。
【００７８】
＜モデルパラメータ推定処理ルーチン＞
ステップＳ２００において、パラメータ推定部２４は、訓練データ記憶部２２に格納された訓練データを取得する。また、パラメータ推定部２４は、入力された処理情報を取得する。
【００７９】
ステップＳ２０２において、パラメータ推定部２４は、モデルパラメータである、１次重みベクトルｗ＾及び２次重み行列Ｚ＾を初期化する。
【００８０】
ステップＳ２０４において、パラメータ推定部２４は、上記ステップＳ２００で取得された訓練データに基づいて、上記図２の式（８）に示す、訓練データを用いた損失関数と上記ステップＳ２０２で初期化された１次重みベクトルｗ＾のノルム又は前回の本ステップＳ２０４で更新された１次重みベクトルｗ＾のノルムとを含む第１の目的関数が最適化されるように、１次重みベクトルｗ＾を更新する。
【００８１】
ステップＳ２０６において、パラメータ推定部２４は、上記図３のアルゴリズム２に示すように、上記ステップＳ２００で取得された訓練データに基づいて、２次重み行列の固有ベクトルｐ＾が各列ベクトルである行列Ｐ＾と２次重み行列の固有値のベクトルλ＾とから求められる２次重み行列Ｚλ＾を用いた損失関数の勾配から、固有ベクトルｐ＾を計算する。
【００８２】
ステップＳ２０８において、パラメータ推定部２４は、上記図３のアルゴリズム２に示すように、上記ステップＳ２００で取得された訓練データに基づいて、上記ステップＳ２０６で計算された固有ベクトルｐ＾と２次重み行列Ｚλ＾とから求められる２次重み行列を用いた損失関数と固有値λとから、固有値λを計算する。
【００８３】
ステップＳ２１０において、パラメータ推定部２４は、上記図３のアルゴリズム２に示すように、上記ステップＳ２０６で計算された固有ベクトルｐ＾から、固有ベクトルｐ＾が各列ベクトルである行列Ｐ＾を生成し、上記ステップＳ２０８で計算された固有値λから、固有値λを要素とする固有値のベクトルλ＾を生成する。
【００８４】
ステップＳ２１１において、パラメータ推定部２４は、上記ステップＳ２００で取得した処理情報に応じて、上記図３のアルゴリズム２のＳｔｅｐ４に示すdiagonal refitting及びfully-corrective refittingの何れかの処理を選択する。diagonal refittingの処理が選択された場合には、ステップＳ２１２へ進む。一方、fully-corrective refittingの処理が選択された場合には、ステップＳ２１４へ進む。
【００８５】
ステップＳ２１２において、パラメータ推定部２４は、上記図３のアルゴリズム２に示すように、現在の繰り返しにおける固有値のベクトルλ＾を￣λ＾に格納する。そして、パラメータ推定部２４は、上記図３のアルゴリズム２に示すように、上記ステップＳ２００で取得された訓練データに基づいて、固有値のベクトルλ＾のノルムと２次重み行列Ｚλ＾を用いた損失関数との和から、上記ステップＳ２１０で生成された固有値のベクトルλ＾を調整する。
【００８６】
ステップＳ２１４において、パラメータ推定部２４は、上記図３のアルゴリズム２に示すように、上記ステップＳ２００で取得された訓練データに基づいて、行列Ｐ＾と所定の行列Ａ＾から生成されるＰ＾Ａ＾Ｐ＾Ｔを２次重み行列として用いた損失関数を最適化することにより行列Ａ＾を生成する。そして、パラメータ推定部２４は、生成された行列Ａ＾を固有値分解することにより行列Ｑ＾及び行列Σ＾を生成する。そして、パラメータ推定部２４は、行列Ｑ＾に基づき上記ステップＳ２１０で生成された行列Ｐ＾を調整し、行列Σ＾に基づき上記ステップＳ２１０で生成された固有値のベクトルλ＾を調整する。
【００８７】
ステップＳ２１６において、パラメータ推定部２４は、予め定められた収束条件が満たされたか否かを判定する。収束条件が満たされた場合には、ステップＳ２１８へ進む。収束条件が満たされていない場合には、ステップＳ２０６へ戻る。
【００８８】
ステップＳ２１８において、パラメータ推定部２４は、上記ステップＳ２１０で生成された行列Ｐ＾及び上記ステップＳ２１２で調整された固有値のベクトルλ＾、又は上記ステップＳ２１４で調整された行列Ｐ＾及び固有値のベクトルλ＾に基づいて、２次重み行列Ｚ＾を更新する。
【００８９】
ステップＳ２２０において、パラメータ推定部２４は、予め定められた終了条件が満たされたか否かを判定する。終了条件が満たされた場合には、ステップＳ２２２へ進む。終了条件が満たされていない場合には、ステップＳ２０４へ戻る。
【００９０】
ステップＳ２２２において、パラメータ推定部２４は、上記ステップＳ２０４で得られた１次重みベクトルｗ＾と、上記ステップＳ２１８で得られた２次重み行列Ｚ＾とを結果として出力して、モデルパラメータ推定処理ルーチンを終了する。
【００９１】
次に、学習処理ルーチンに戻り、ステップＳ１０４において、パラメータ推定部２４は、上記ステップＳ１０２で出力された１次重みベクトルｗ＾及び２次重み行列Ｚ＾を、モデルパラメータとしてモデルパラメータ記憶部２６に格納して、学習処理ルーチンを終了する。
【００９２】
次に、図７に示す予測処理ルーチンについて説明する。予測装置１００の入力部１０が、予測対象の特徴ベクトルの入力を受け付けると、予測装置１００は、図７に示す予測処理ルーチンを実行する。
【００９３】
＜予測処理ルーチン＞
ステップＳ３００において、予測部２８は、モデルパラメータ記憶部２６に記憶されているモデルパラメータを読み込む。
【００９４】
ステップＳ３０２において、予測部２８は、上記式（３）に示すモデル関数と、上記ステップＳ３００で読み込まれたモデルパラメータとに基づいて、上記（５）に従って、入力部１０において受け付けた特徴ベクトルに対する目的変数を予測する。
【００９５】
ステップＳ３０４において、出力部３０は、上記ステップＳ３０２で予測された目的変数を結果として出力して、予測処理ルーチンを終了する。
【００９６】
以上説明したように、本発明の実施の形態に係る予測装置によれば、特徴ベクトルの１次特徴に対する１次重みベクトルｗ＾と特徴ベクトルの２次特徴に関する対角成分を含む全ての要素からなる２次重み行列Ｚ＾とを含むモデル関数と、モデル関数による予測値の誤差を表す損失関数、及び２次重み行列Ｚ＾の核ノルムを含む目的関数を最適化することにより予め推定された、モデル関数のモデルパラメータとに基づいて、入力された特徴ベクトルに対する目的変数を予測することにより、目的変数を精度よく予測することができる。
【００９７】
また、訓練データに基づいて、モデル関数による予測値の誤差を表す損失関数、及び２次重み行列Ｚ＾の核ノルムを含む目的関数を最適化することにより、目的変数を精度よく予測するためのモデルパラメータを推定することができる。
【００９８】
また、本実施の形態では、２次重み行列Ｚ＾の核ノルムを含む目的関数を定義することにより、目的関数が凸となり、モデル関数の最適なモデルパラメータの値を得る保証がある。また、２次重み行列に対する制約（非負定値であることと対角成分が無視されること）がないため、個々のデータにより適したモデルパラメータが得られることが期待できる。
【００９９】
また、２次重み行列Ｚ＾の核ノルムを含む目的関数が最適化されるようにモデルパラメータを推定することにより、低ランクの２次重み行列Ｚ＾を得ることができる。
【０１００】
なお、上記図３に示すＳｔｅｐ４のfully-corrective refittingの処理を用いた場合には、処理の繰り返し回数は少なくなるが、各繰り返しにおける計算コストは高くなる。一方、diagonal refittingの処理を用いた場合には、各繰り返しにおける計算コストは低くなるが、処理の繰り返し回数は多くなる。
【０１０１】
また、diagonal refittingの処理を用いた場合と、fully-corrective refittingの処理を用いた場合と、他の従来の計算手法とを比較した結果、fully-corrective refittingの処理を用いた場合に、目的関数の値及びテストデータに対するＲＭＳＥ（Root mean squared error）の値が最も良いという結果が得られた。
【０１０２】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【０１０３】
例えば、上記の実施の形態では、上記図３に示すＳｔｅｐ４において、パラメータ推定部２４は、ユーザによって予め定められた処理情報に応じて、diagonal refitting及びfully-corrective refittingの何れかの処理を選択する場合を例に説明したが、これに限定されるものではない。例えば、diagonal refitting及びfully-corrective refittingの何れの処理を実行するのかが予め定められていてもよい。
【０１０４】
上述の予測装置１００では、訓練データ記憶部２２及びモデルパラメータ記憶部２６を備えている場合について説明したが、例えば訓練データ記憶部２２及びモデルパラメータ記憶部２６の少なくとも１つが予測装置１００の外部装置に設けられ、予測装置１００は、外部装置と通信手段を用いて通信することにより、訓練データ記憶部２２及びモデルパラメータ記憶部２６の少なくとも１つを参照するようにしてもよい。
【０１０５】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能であるし、ネットワークを介して提供することも可能である。
【符号の説明】
【０１０６】
１０   入力部
２０   演算部
２１   学習部
２２   訓練データ記憶部
２４   パラメータ推定部
２６   モデルパラメータ記憶部
２８   予測部
３０   出力部
１００ 予測装置
【図１】
0006464057.tif 000013
【図２】
0006464057.tif 000014
【図３】
0006464057.tif 000015
【図４】
0006464057.tif 000016
【図５】
0006464057.tif 000017
【図６】
0006464057.tif 000018
【図７】
0006464057.tif 000019