はじめに、発明の理解を容易にするため、本発明が解決しようとする課題を詳細に説明する。
非特許文献1に記載された方法を価格予測に応用したとしても、階層的な隠れ変数を含むモデルのモデル選択問題は解決できないという課題がある。
その理由は、非特許文献1に記載された方法は、階層的な隠れ変数を考慮していないので、自明には計算手順を構築できないからである。また、非特許文献1に記載された方法は、階層的な隠れ変数がある場合には適用できないという強い仮定に基づいているので、単純に、この方法を価格予測に適用した場合には理論的な正当性を失ってしまうからである。
また、特許文献1に開示された残価予測システムは、必ずしも、予測精度が高いとは限らないという課題を有する。
この理由は、該残価予測システムが求める関数が、必ずしも、十分に中古流通価格を説明していないからであることを、本願発明者は見出した。
該残価予測システムは、色等に応じて分類された各中古車に対して、それぞれ、指数関数等を当てはめることにより関数を求める。しかし、該残価予測システムが採用する処理手順は、あらかじめ決められた手順であり、中古流通価格を予測するのに最適な手順であるとは限らない。したがって、該残価予測システムが求める関数は、必ずしも、十分に中古流通価格を説明していない。
特許文献1に開示された残価予測システムは、どのような分類をするのが最適であるのかを自動的に見つけることができず、さらに、見つけた分類に対して最適な式を割り当てることができない。たとえば、該残価予測システムは、車種ごとに最適な分類方法が異なる場合、または、分類を行った各対象に対して最適な式が異なる場合に、精度が悪化するという課題を有する。
該残価予測システムを用いる場合に、その精度低下を低減するために、あらゆる分類を試行錯誤して最適な分類を発見する必要がある。しかし、該残価予測システムを用いる場合に、試行錯誤により最適な分類を発見することは、甚大な手間がかかる。すなわち、該残価予測システムは、最適な分類を発見するのに甚大な手間がかかるという課題も有する。
本出願人は、係る課題を見出すとともに、係る課題を解決する手段を導出するに至った。以降、このような課題を解決可能な本発明の実施形態について、後述するように図面を参照して詳細に説明する
予測すべき対象である価格は、たとえば、中古建物、中古車、中古装置、中古ゲーム機、古着等の価格である。また、予測対象である価格は、たとえば、売買を仲介する仲介業者が買い取る買い取り価格や、仲介業者が販売する場合の販売価格である。
以降の各実施形態においては、説明の便宜上、中古装置に関する価格を予測するとする。しかし、予測すべき対象は、中古装置等の価格に限定されない。
学習データベースは、中古装置、及び、価格に関する複数セットのデータを含む。
本明細書において、階層的な隠れ変数モデルは、隠れ変数が階層構造(たとえば、木構造)を持つ確率モデルを表す。階層的な隠れ変数モデルの最下層におけるノードには、確率モデルであるコンポーネントが割り当てられる。また、最下層におけるノード以外のノード(中間ノード、以降、木構造を例として説明するので「分岐ノード」と表す)には、入力された情報に応じて、ノードを選ぶ基準となる門関数(門関数モデル)が設けられる。
以降の説明においては、2階層を有する階層的な隠れ変数モデルを例として参照しながら、価格推定装置が行う処理等について説明する。また、説明の便宜上、階層構造は、木構造であるとする。しかし、以降の実施形態を例に説明する本発明において、階層構造は、必ずしも、木構造でなくともよい。
階層構造が木構造である場合に、木構造がループ(閉路)を有さない構造であるので、根ノード(ルートノード)から、あるノードに至る道筋は、一つに決定される。以下、階層隠れ構造において、根ノードから、あるノードに至る道筋(リンク)を、「経路」と記す。また、経路隠れ変数は、経路ごとに隠れ変数を辿ることで決定される。たとえば、最下層における経路隠れ変数は、根ノードから最下層におけるノードまでの経路ごとに決定される経路隠れ変数を表す。
また、以降の説明では、データ列xn(n=1,・・・,N)が入力されると仮定し、各xnがM次元の多変量データ列(xn=x1 n,・・・,xM n)であるとする。また、データ列xnのことを観測変数と記すこともある。観測変数xnに対する第1層における分岐隠れ変数zi n、最下層における分岐隠れ変数zj|i n、最下層における経路隠れ変数zij nを定義する。
zi n=1は、根ノードに入力されたxnが第1層における第iノードへ分岐することを表し、zi n=0は、第1層における第iノードへは分岐しないことを表す。zj|i n=1は、第1層における第iノードに入力されたxnが第2層における第jノードへ分岐することを表し、zj|i n=0は、第1層における第iノードに入力されたxnが第2層における第jノードへは分岐しないことを表す。zij n=1は、xnが第1層における第iノード、第2層における第jノードを通ることで辿られるコンポーネントに対応することを表す。zij n=0は、xnが第1層における第iノード、第2層における第jノードを通ることで辿られるコンポーネントに対応しないことを表す。
尚、Σizi n=1、Σjzj|i n=1、zij n=zi n×zj|i nを満たすので、これらより、zi n=Σjzij nが成り立つ。xと、最下層における経路隠れ変数zij nの代表値zとの組みは、「完全変数」と呼ばれる。一方、対比として、xは、「不完全変数」と呼ばれる。
完全変数に関する深さが2である階層的な隠れ変数モデル同時分布は、式1で表される。
・・・・・・・・・・・・・・・・・・・・・(式1)
すなわち、完全変数に関する深さが2である階層的な隠れ変数モデル同時分布は、式1に含まれるP(x,y)=P(x,z1st,z2nd)で定義される。ここでは、zi nの代表値をz1st nとし、zj|i nの代表値をz2nd nとする。尚、第1層における分岐隠れ変数zi nに対する変分分布をq(zi n)とし、最下層における経路隠れ変数zij nに対する変分分布をq(zij n)とする。
式1において、K1は、第1層におけるノード数を表し、K2は、第1層におけるノードそれぞれから分岐するノード数を表す。最下層におけるコンポーネントの個数は、K1×K2で表される。また、θ=(β,β1,・・・,βK1,φ1,・・・,φK1×K2)は、モデルのパラメータを表す。ただし、βは、根ノードの分岐パラメータを表す。βkは、第1層における第kノードの分岐パラメータを表す。φkは、k番目のコンポーネントに対する観測パラメータを表す。
尚、以降の説明では、具体的な例を用いて説明する場合、深さが2である階層的な隠れ変数モデルを例として説明する。ただし、少なくとも1つの実施形態に係る階層的な隠れ変数モデルは、深さが2である階層的な隠れ変数モデルに限定されず、深さが1や3以上である階層的な隠れ変数モデルであってもよい。この場合も、深さが2である階層的な隠れ変数モデルの場合と同様に、式1や、後述する式2乃至式4を導出すればよく、同様の構成により推定装置が実現される。
また、以降の説明では、ターゲット変数をXとする場合の分布について説明する。ただし、観測分布が回帰や判別のように、条件付モデルP(Y|X)(Yはターゲットとなる確率変数)である場合についても適用可能である。
また、実施形態について説明する前に、実施形態に係る推定装置と、非特許文献1に記載された混合隠れ変数モデルに対する推定方法との本質的な違いを説明する。
非特許文献1に記載された方法において、コンポーネントのインジケータである隠れ変数の確率分布には、一般的な混合モデルが想定され、最適化の基準が、非特許文献1の式10に示すように導出される。しかし、フィッシャー情報行列が非特許文献1の式6の形式で与えられていることからわかるように、非特許文献1に記載された方法では、コンポーネントのインジケータである隠れ変数の確率分布が混合モデルの混合比にのみ依存すると仮定されている。そのため、入力に応じたコンポーネントの切り替えが実現できず、この最適化基準は、適切でない。
この問題を解決するためには、以降の各実施形態で示すように、階層的な隠れ変数を設定し、適切な最適化基準を用いて計算する必要がある。以降の各実施形態では、適切な最適化基準として、入力に応じて各分岐ノードでの分岐を振り分ける多段の特異モデルを想定する。
以下、実施形態について図面を参照しながら説明する。
《第1の実施形態》
図1は、本発明の第1の実施形態に係る価格予測システムが有する構成の一例を表すブロック図である。
第1の実施形態に係る価格予測システム10は、階層的な隠れ変数モデルの推定装置100と、学習データベース300と、モデルデータベース500と、価格推定装置700とを有する。価格予測システム10は、学習データベース300に基づいて価格の予測に用いるモデルを生成し、当該モデルを用いて価格の予測を行う。
階層的な隠れ変数モデルの推定装置100は、学習データベース300におけるデータに基づいて、価格を推定するモデルを作成し、作成したモデルをモデルデータベース500に格納する。
図2A乃至図2Dは、本発明の少なくとも1つの実施形態に係る学習データベース300に格納された情報の例を示す図である。
学習データベース300は、価格と、該価格に影響を与える可能性のある要因とが関連付けされている価格情報を記憶する。価格情報は、図2Aに例示するように、装置識別子(ID)に、価格、購入時期、価格測定時期等を関連付けて格納する。
また、学習データベース300は、装置に関するデータが格納された装置情報を記憶する。装置情報は、図2Bに示すように、装置IDに関連付けて、発売開始時期、運送費、耐用期間、色、大きさ、傷の状態、重量等を格納する。
また、学習データベース300は、装置に付属する付属装置に関するデータが格納された装置構成情報を記憶する。装置構成情報は、図2Cに示すように、装置IDと、該装置に付属する付属装置IDとを関連付けて格納する。
また、学習データベース300は、付属装置に関するデータが格納された付属装置情報を記憶する。付属装置情報は、図2Dに示すように、付属装置IDに関連付けて、耐用期間、購入時期、次回点検時期等を格納する。
学習データは、学習データベース300に含まれる値を組み合わせる等により作成してもよい。学習データは、学習データベース300に含まれる値に演算を適用することにより作成してもよい。あるいは、学習データは、上述した2つの演算を組み合わせることにより作成してもよい。
尚、学習データベースが含む情報は、上述した例に限定されない。
対象物が中古車の場合に、学習データベース300は、たとえば、排気量、装備情報、走行距離、メーカー、発売年、車検残月数、型式、車種、または、グレード等の情報を含んでもよい。学習データベース300は、上述した項目以外の項目を含んでもよいし、必ずしも、上述した項目をすべて含む必要はない。
また、対象物が中古住宅の場合に、学習データベース300は、たとえば、駅からの距離、延べ床面積、階数、階建て、公園からの距離、学校からの距離、スーパーからの距離、バストイレが別か否か、オートロックが有るかないか、エレベータが有るかないか、収納の広さ、または、間取り等の情報を含んでもよい。学習データベース300は、上述した項目以外の項目を含んでもよいし、必ずしも、上述した項目をすべて含む必要はない。
モデルデータベース500は、階層的な隠れ変数モデルの推定装置100が推定する価格を算出する際に用いるモデルを記憶する。モデルデータベース500は、ハードディスクドライブやソリッドステートドライブ等、一時的でない有形の媒体によって構成される。
価格推定装置700は、対象物に関する価格に関する情報を受信し、受信した情報とモデルデータベース500が記憶する上記のモデルとに基づいて、価格を予測する。
図3は、本発明の少なくとも1つの実施形態に係る階層的な隠れ変数モデルの推定装置の構成例を示すブロック図である。本実施形態の階層的な隠れ変数モデルの推定装置100は、データ入力装置101と、階層隠れ構造の設定部102と、初期化処理部103と、階層的な隠れ変数の変分確率の計算処理部104と、コンポーネントの最適化処理部105とを有する。さらに、階層的な隠れ変数モデルの推定装置100は、門関数モデルの最適化処理部106と、最適性の判定処理部107と、最適モデルの選択処理部108と、モデルの推定結果の出力装置109とを有する。
階層的な隠れ変数モデルの推定装置100は、学習データベース300が記憶するデータに基づいて生成された入力データ111が入力されると、その入力データ111に対して階層隠れ構造、及び、観測確率の種類を最適化する。次に、階層的な隠れ変数モデルの推定装置100は、最適化した結果をモデルの推定結果112として出力し、モデルの推定結果112をモデルデータベース500に記録する。本実施形態において入力データ111は、学習データの一例である。
図4は、本発明の少なくとも1つの実施形態に係る階層的な隠れ変数の変分確率の計算処理部104の構成例を示すブロック図である。階層的な隠れ変数の変分確率の計算処理部104は、最下層における経路隠れ変数の変分確率の計算処理部104−1と、階層設定部104−2と、上層における経路隠れ変数の変分確率の計算処理部104−3と、階層計算終了の判定処理部104−4とを含む。
階層的な隠れ変数の変分確率の計算処理部104は、入力データ111と、後述するコンポーネントの最適化処理部105で推定された推定モデル104−5とが入力されると、階層隠れ変数の変分確率104−6を出力する。尚、階層的な隠れ変数の変分確率の計算処理部104の詳細な説明は後述される。本実施形態におけるコンポーネントは、各説明変数に係る重み(パラメータ)を示す値である。価格推定装置700は、当該コンポーネントが示す重みを乗算した説明変数の総和を算出することで目的変数を得ることができる。
図5は、本発明の少なくとも1つの実施形態に係る門関数モデルの最適化処理部106の構成例を示すブロック図である。門関数モデルの最適化処理部106は、分岐ノードの情報取得部106−1と、分岐ノードの選択処理部106−2と、分岐パラメータの最適化処理部106−3と、全分岐ノードの最適化終了の判定処理部106−4とを含む。
門関数モデルの最適化処理部106は、入力データ111と、後述する階層的な隠れ変数の変分確率の計算処理部104で算出された階層隠れ変数の変分確率104−6と、コンポーネントの最適化処理部105で推定された推定モデル104−5とを受け取る。門関数モデルの最適化処理部106は、該3つの入力を受け取るのに応じて、門関数モデル106−6を出力する。尚、門関数モデルの最適化処理部106の詳細な説明は後述される。本実施形態における門関数モデルは、入力データ111に含まれる情報が所定の条件を満たすか否かを判定する関数である。また、門関数モデルは、階層隠れ構造の内部ノードに対応して設けられる。尚、内部ノードは、最下層に配置されたノード以外のノードを表す。価格推定装置700は、階層隠れ構造のノードをたどる際、門関数モデルの判定結果に従って次にたどるノードを決定する。
データ入力装置101は、入力データ111を入力する装置である。データ入力装置101は、学習データベース300内の価格情報に記録されたデータに基づいて、価格を示す目的変数を抽出する。
また、データ入力装置101は、学習データベース300内の価格情報、装置情報、装置構成情報、付属装置情報等に記録されたデータに基づいて、説明変数を生成する。すなわち、データ入力装置101は、目的変数ごとに、当該目的変数に影響を与え得る情報である1つ以上の説明変数を生成する。そして、データ入力装置101は、目的変数と説明変数との複数の組み合わせを、入力データ111として入力する。データ入力装置101は、入力データ111を入力する際、観測確率の種類やコンポーネント数の候補等、モデルの推定に必要なパラメータも入力する。本実施形態において、データ入力装置101は、学習情報入力部の一例である。
階層隠れ構造の設定部102は、入力された観測確率の種類やコンポーネント数の候補から、最適化の候補になる階層的な隠れ変数モデルの構造を選択し、選択した構造を最適化すべき対象に設定する。本実施形態で用いられる隠れ構造は、たとえば、木構造である。以下では、設定されたコンポーネント数をCと表すとし、説明に用いられる数式は、深さが2である階層的な隠れ変数モデルを対象とする。尚、階層隠れ構造の設定部102は、選択された階層的な隠れ変数モデルの構造をメモリに記憶してもよい。
たとえば、2分木モデル(各分岐ノードから2つに分岐するモデル)で木構造の深さを2とする場合、階層隠れ構造の設定部102は、第1層におけるノードが2つ、第2層におけるノード(本実施形態では、最下層におけるノード)が4つの階層隠れ構造を選択する。
初期化処理部103は、階層的な隠れ変数モデルを推定する初期化処理を実施する。初期化処理部103は、初期化処理を様々な方法によって実行可能である。初期化処理部103は、たとえば、観測確率の種類をコンポーネントごとにランダムに設定し、設定された種類に従って、各観測確率のパラメータをランダムに設定してもよい。また、初期化処理部103は、階層隠れ変数の最下層における経路変分確率をランダムに設定してもよい。
階層的な隠れ変数の変分確率の計算処理部104は、階層ごとに経路隠れ変数の変分確率を計算する。ここでは、パラメータθは、初期化処理部103、コンポーネントの最適化処理部105、及び、門関数モデルの最適化処理部106等で計算されている。そのため、階層的な隠れ変数の変分確率の計算処理部104は、その値に基づいて変分確率を計算する。
階層的な隠れ変数の変分確率の計算処理部104は、周辺化対数尤度関数を完全変数に対する推定量(たとえば、最尤推定量や最大事後確率推定量)に関してラプラス近似し、その下界を最大化することによって変分確率を算出する。以下、このように算出された変分確率を最適化基準Aと呼ぶ。
最適化基準Aを算出する手順を、深さが2である階層的な隠れ変数モデルを例に説明する。周辺化対数尤度は、式2で表される。
・・・・・・・・・・・・・・・・・・・・・(式2)
ただし、logは、対数関数を表す。対数関数の底は、たとえば、ネイピア数である。以降に示す式においても、同様である。
まず、式2で表される周辺化対数尤度の下界を考える。式2において、最下層における経路隠れ変数の変分確率q(z
N)を最大化することで等号が成立する。ここで、分子の完全変数の周辺化尤度を完全変数に対する最尤推定量を用いてラプラス近似すると、式3に示す周辺化対数尤度関数の近似式が得られる。
・・・・・・・・・・・・・・・・・・・・・・・(式3)
式3において、上付きのバーは、完全変数に対する最尤推定量を表し、D*は、下付きパラメータ*の次元を表す。
次に、最尤推定量が対数尤度関数を最大化する性質と、対数関数が凹関数であることを利用すると、式3の下界は、式4のように算出される。
・・・・・・・・・・・・・・・・・・・・・・・・(式4)
第1層における分岐隠れ変数の変分分布q’、及び、最下層における経路隠れ変数の変分分布q’’は、それぞれの変分分布について式4を最大化することで得られる。尚、ここでは、q’’=q
{t−1}、θ=θ
{t−1}に固定し、q’を式Aに示す値に固定する。
・・・・・・・・・・・・・・・・・・(式A)
ただし、上付き{t}は、階層的な隠れ変数の変分確率の計算処理部104、コンポーネントの最適化処理部105、門関数モデルの最適化処理部106、及び、最適性の判定処理部107の繰り返し計算におけるt回目の繰り返しを表す。
次に、図4を参照して、階層的な隠れ変数の変分確率の計算処理部104の動作を説明する。
最下層における経路隠れ変数の変分確率の計算処理部104−1は、入力データ111と、推定モデル104−5とを入力し、最下層における隠れ変数の変分確率q(zN)を算出する。階層設定部104−2は、変分確率を計算すべき対象が最下層であることを設定する。具体的には、最下層における経路隠れ変数の変分確率の計算処理部104−1は、入力データ111の目的変数と説明変数との組み合わせに関して、各推定モデル104−5の変分確率を計算する。変分確率の計算は、推定モデル104−5に入力データ111の説明変数を代入して得られる値と、入力データ111の目的変数の値とを比較することにより行う。
上層における経路隠れ変数の変分確率の計算処理部104−3は、一つ上位の層における経路隠れ変数の変分確率を算出する。具体的には、上層における経路隠れ変数の変分確率の計算処理部104−3は、同じ分岐ノードを親として持つ層における隠れ変数の変分確率の和を算出し、その値を一つ上位の層における経路隠れ変数の変分確率とする。
階層計算終了の判定処理部104−4は、変分確率を計算すべき層が上層にまだ存在するか否かを判定する。上位の層が存在すると判定された場合、階層設定部104−2は、変分確率を計算すべき対象に一つ上位の層を設定する。以降、上層における経路隠れ変数の変分確率の計算処理部104−3、及び、階層計算終了の判定処理部104−4は、上述する処理を繰り返す。一方、上位の層が存在しないと判定された場合、階層計算終了の判定処理部104−4は、すべての階層における経路隠れ変数の変分確率が算出されたと判定する。
コンポーネントの最適化処理部105は、式4に対して各コンポーネントのモデル(パラメータθ、及び、その種類S)を最適化し、最適化した推定モデル104−5を出力する。深さが2である階層的な隠れ変数モデルの場合、コンポーネントの最適化処理部105は、q、及び、q’’を階層的な隠れ変数の変分確率の計算処理部104で算出された最下層における経路隠れ変数の変分確率q(t)に固定し、q’を式Aに示す上層における経路隠れ変数の変分確率に固定する。そして、コンポーネントの最適化処理部105は、式4に示すGの値を最大化するモデルを算出する。
以降の説明において、S1,・・・,SK1×K2は、φkに対応する観測確率の種類を表すとする。たとえば、多変量データの生成確率の場合、S1〜SK1×K2になり得る候補は、正規分布、対数正規分布、または、指数分布等である。また、たとえば、多項曲線が出力される場合、S1〜SK1×K2になり得る候補は、0次曲線、1次曲線、2次曲線、または、3次曲線等である。
式4により定義されたGは、コンポーネントごとに最適化関数を分解することが可能である。そのため、コンポーネントの種類の組み合わせ(たとえば、S1〜SK1×K2のどの種類を指定するか)を考慮することなく、S1〜SK1×K2、及び、パラメータφ1〜φK1×K2を別々に最適化できる。このように最適化できることが、この処理において重要である。これにより、組み合わせ爆発を回避してコンポーネントの種類を最適化できる。
次に、図5を参照して、門関数モデルの最適化処理部106の動作を説明する。分岐ノードの情報取得部106−1は、コンポーネントの最適化処理部105で推定された推定モデル104−5を用いて分岐ノードのリストを抽出する。分岐ノードの選択処理部106−2は、抽出された分岐ノードのリストの中から分岐ノードを1つ選択する。以下、選択されたノードのことを選択ノードと記すこともある。
分岐パラメータの最適化処理部106−3は、入力データ111と、階層隠れ変数の変分確率104−6から得られる選択ノードに関する隠れ変数の変分確率とを用いて、選択ノードの分岐パラメータを最適化する。尚、選択ノードの分岐パラメータが、上述する門関数モデルに対応する。
全分岐ノードの最適化終了の判定処理部106−4は、分岐ノードの情報取得部106−1によって抽出されたすべての分岐ノードが最適化されたか否かを判定する。すべての分岐ノードが最適化されている場合、門関数モデルの最適化処理部106は、ここでの処理を終了する。一方、最適化されていない分岐ノードがある場合、分岐ノードの選択処理部106−2による処理が行われ、以降、分岐パラメータの最適化処理部106−3、及び、全分岐ノードの最適化終了の判定処理部106−4が同様に行われる。
ここで、門関数モデルの具体例を、2分木の階層モデルに対するベルヌーイ分布を基とする例を参照しながら説明する。以下、ベルヌーイ分布を基とする門関数をベルヌーイ型門関数と記すこともある。ここでは、xの第d次元をxdと表す。この値がある閾値wを超えないときに2分木の左下へ分岐する確率をg−と表す。閾値wを超えるときに2分木の左下へ分岐する確率をg+と表す。分岐パラメータの最適化処理部106−3は、上記の最適化パラメータd、w、g−、及び、g+をベルヌーイ分布に基づいて最適化する。これは、非特許文献1に記載されたロジット関数に基づく最適化と異なり、各パラメータが解析解を持つので、より高速な最適化が可能である。
最適性の判定処理部107は、式4を用いて計算される最適化基準Aが収束したか否かを判定する。収束していない場合、階層的な隠れ変数の変分確率の計算処理部104、コンポーネントの最適化処理部105、門関数モデルの最適化処理部106、及び、最適性の判定処理部107による処理が繰り返される。最適性の判定処理部107は、たとえば、最適化基準Aの増分が所定の閾値未満であるときに、最適化基準Aが収束したと判定してもよい。
以降、階層的な隠れ変数の変分確率の計算処理部104、コンポーネントの最適化処理部105、門関数モデルの最適化処理部106、及び、最適性の判定処理部107による処理をまとめて、第1処理と記すこともある。第1処理が繰り返され、変分分布とモデルが更新されることで、適切なモデルを選択できる。尚、これらの処理を繰り返すことにより、最適化基準Aが単調に増加することが保証される。
最適モデルの選択処理部108は、最適なモデルを選択する。具体的には、階層隠れ構造の設定部102で設定された隠れ状態数に対して、第1処理で算出される最適化基準Aが、設定されている最適化基準Aよりも大きい場合、最適モデルの選択処理部108は、そのモデルを最適なモデルとして選択する。
モデルの推定結果の出力装置109は、入力された観測確率の種類やコンポーネント数の候補から設定される階層的な隠れ変数モデルの構造の候補についてモデルの最適化が完了した場合、最適な隠れ状態数、観測確率の種類、パラメータ、変分分布等をモデルの推定結果112として出力する。一方、最適化の済んでいない候補が存在する場合、階層隠れ構造の設定部102へ処理が移され、上述する処理が同様に行われる。
後述の各部は、プログラム(階層的な隠れ変数モデルの推定プログラム)に従って動作するコンピュータの中央演算処理装置(Central_Processing_Unit、CPU)によって実現される。すなわち、
・階層隠れ構造の設定部102、
・初期化処理部103、
・階層的な隠れ変数の変分確率の計算処理部104(より詳しくは、最下層における経路隠れ変数の変分確率の計算処理部104−1と、階層設定部104−2と、上層における経路隠れ変数の変分確率の計算処理部104−3と、階層計算終了の判定処理部104−4)、
・コンポーネントの最適化処理部105、
・門関数モデルの最適化処理部106(より詳しくは、分岐ノードの情報取得部106−1と、分岐ノードの選択処理部106−2と、分岐パラメータの最適化処理部106−3と、全分岐ノードの最適化終了の判定処理部106−4)、
・最適性の判定処理部107、
・最適モデルの選択処理部108。
たとえば、プログラムは、階層的な隠れ変数モデルの推定装置100内の記憶部(図示せず)に記憶され、CPUは、そのプログラムを読み込み、プログラムに従って、後述の各部として動作してもよい。すなわち、
・階層隠れ構造の設定部102、
・初期化処理部103、
・階層的な隠れ変数の変分確率の計算処理部104(より詳しくは、最下層における経路隠れ変数の変分確率の計算処理部104−1と、階層設定部104−2と、上層における経路隠れ変数の変分確率の計算処理部104−3と、階層計算終了の判定処理部104−4)、
・コンポーネントの最適化処理部105、
・門関数モデルの最適化処理部106(より詳しくは、分岐ノードの情報取得部106−1と、分岐ノードの選択処理部106−2と、分岐パラメータの最適化処理部106−3と、全分岐ノードの最適化終了の判定処理部106−4)、
・最適性の判定処理部107、
・最適モデルの選択処理部108。
また、後述の各部は、それぞれが専用のハードウェアで実現されていてもよい。すなわち、
・階層隠れ構造の設定部102、
・初期化処理部103、
・階層的な隠れ変数の変分確率の計算処理部104、
・コンポーネントの最適化処理部105、
・門関数モデルの最適化処理部106、
・最適性の判定処理部107、
・最適モデルの選択処理部108。
次に、本実施形態の階層的な隠れ変数モデルの推定装置の動作を説明する。図6は、本発明の少なくとも1つの実施形態に係る階層的な隠れ変数モデルの推定装置の動作例を示すフローチャートである。
まず、データ入力装置101は、入力データ111を入力する(ステップS100)。次に、階層隠れ構造の設定部102は、入力された階層隠れ構造の候補値のうち、まだ最適化が行なわれていない階層隠れ構造を選択し、選択した構造を最適化すべき対象に設定する(ステップS101)。次に、初期化処理部103は、設定された階層隠れ構造に対して、推定に用いられるパラメータや隠れ変数の変分確率の初期化処理を行う(ステップS102)。
次に、階層的な隠れ変数の変分確率の計算処理部104は、各経路隠れ変数の変分確率を計算する(ステップS103)。次に、コンポーネントの最適化処理部105は、各コンポーネントについて、観測確率の種類とパラメータを推定することにより、コンポーネントを最適化する(ステップS104)。
次に、門関数モデルの最適化処理部106は、各分岐ノードにおける分岐パラメータを最適化する(ステップS105)。次に、最適性の判定処理部107は、最適化基準Aが収束したか否かを判定する(ステップS106)。すなわち、最適性の判定処理部107は、モデルの最適性を判定する。
ステップS106において、最適化基準Aが収束したと判定されなかった場合(すなわち、最適ではないと判定された場合)(ステップS106aにてNo)、ステップS103からステップS106までの処理が繰り返される。
一方、ステップS106において、最適化基準Aが収束したと判定された場合(すなわち、最適であると判定された場合)(ステップS106aにてYes)、最適モデルの選択処理部108は、設定されている最適なモデル(たとえば、コンポーネント数、観測確率の種類、パラメータ)による最適化基準Aと、最適なモデルとして設定されているモデルによる最適化基準Aの値とを比較し、値の大きいモデルを最適なモデルとして選択する(ステップS107)。
次に、最適モデルの選択処理部108は、推定されていない階層隠れ構造の候補が残っているか否かを判定する(ステップS108)。候補が残っている場合(ステップS108にてYes)、ステップS101からステップS108までの処理が繰り返される。一方、候補が残っていない場合(ステップS108にてNo)、モデルの推定結果の出力装置109は、モデルの推定結果を出力し、処理を完了する(ステップS109)。モデルの推定結果の出力装置109は、コンポーネントの最適化処理部105が最適化したコンポーネントと、門関数モデルの最適化処理部106が最適化した門関数モデルとを、モデルデータベース500に格納する。
次に、本実施形態の階層的な隠れ変数の変分確率の計算処理部104の動作を説明する。図7は、本発明の少なくとも1つの実施形態に係る階層的な隠れ変数の変分確率の計算処理部104の動作例を示すフローチャートである。
まず、最下層における経路隠れ変数の変分確率の計算処理部104−1は、最下層における経路隠れ変数の変分確率を算出する(ステップS111)。次に、階層設定部104−2は、どの層まで経路隠れ変数を算出したのかを設定する(ステップS112)。次に、上層における経路隠れ変数の変分確率の計算処理部104−3は、階層設定部104−2によって設定された層における経路隠れ変数の変分確率を用いて、1つ上位の層における経路隠れ変数の変分確率を算出する(ステップS113)。
次に、階層計算終了の判定処理部104−4は、経路隠れ変数が算出されていない層が残っているか否かを判定する(ステップS114)。経路隠れ変数が算出されていない層が残っている場合(ステップS114にてNo)、ステップS112からステップS113までの処理が繰り返される。一方、経路隠れ変数が算出されていない層が残っていない場合(ステップS114にてYes)、階層的な隠れ変数の変分確率の計算処理部104は、処理を完了する。
次に、本実施形態の門関数モデルの最適化処理部106の動作を説明する。図8は、本発明の少なくとも1つの実施形態に係る門関数モデルの最適化処理部106の動作例を示すフローチャートである。
まず、分岐ノードの情報取得部106−1は、すべての分岐ノードを把握する(ステップS121)。次に、分岐ノードの選択処理部106−2は、最適化の対象とする分岐ノードを1つ選択する(ステップS122)。次に、分岐パラメータの最適化処理部106−3は、選択された分岐ノードにおける分岐パラメータを最適化する(ステップS123)。
次に、全分岐ノードの最適化終了の判定処理部106−4は、最適化されていない分岐ノードが残っているか否かを判定する(ステップS124)。最適化されていない分岐ノードが残っている場合(ステップS124にてNo)、ステップS122からステップS123までの処理が繰り返される。一方、最適化されていない分岐ノードが残っていない場合(ステップS124にてYes)、門関数モデルの最適化処理部106は、処理を完了する。
上述したように、本実施形態によれば、階層隠れ構造の設定部102が、階層隠れ構造を設定する。尚、階層隠れ構造は、隠れ変数が階層構造(木構造)で表され、その階層構造の最下層におけるノードに確率モデルを表すコンポーネントが配された構造である。階層構造は、各階層に1以上のノードが配され、第1階層に配されたノードと、下位の第2階層に配されたノードとの間に経路を有する構造を表す。
そして、階層的な隠れ変数の変分確率の計算処理部104が、経路隠れ変数の変分確率(すなわち、最適化基準A)を計算する。階層的な隠れ変数の変分確率の計算処理部104は、階層構造の階層ごとに隠れ変数の変分確率を最下層におけるノードから順に計算してもよい。また、階層的な隠れ変数の変分確率の計算処理部104は、周辺化対数尤度を最大化するように変分確率を計算してもよい。
そして、コンポーネントの最適化処理部105は、算出された変分確率に対してコンポーネントを最適化する。次に、門関数モデルの最適化処理部106は、階層隠れ構造のノードにおける隠れ変数の変分確率に基づいて門関数モデルを最適化する。たとえば、隠れ変数が有する構造が木構造である場合に、門関数モデルは、階層隠れ構造のノードにおいて多変量データに応じた分岐方向を決定するモデルである。
上述したような構成によって多変量データに対する階層的な隠れ変数モデルを推定するので、本実施形態によれば、理論的正当性を失うことなく適切な計算量で階層的な隠れ変数を含む階層的な隠れ変数モデルを推定できる。また、階層的な隠れ変数モデルの推定装置100を用いることにより、本実施形態によれば、コンポーネントに分けるのに適した基準を人手で設定する必要がなくなる。
また、階層隠れ構造の設定部102が、隠れ変数が2分木構造で表される階層隠れ構造を設定し、門関数モデルの最適化処理部106が、ノードにおける隠れ変数の変分確率に基づいて、ベルヌーイ分布を基とする門関数モデルを最適化してもよい。この場合、各パラメータが解析解を持つので、より高速な最適化が可能になる。
これらの処理によって、階層的な隠れ変数モデルの推定装置100は、入力データ711を、入力データ711における説明変数の値に基づき、気温の高低に応じた価格モデル、時間帯に応じたモデル、営業日に応じたモデル等のコンポーネントに分離する。
本実施形態の価格推定装置700について説明する。図9は、本発明の少なくとも1つの実施形態に係る価格推定装置700の構成例を示すブロック図である。
価格推定装置700は、データ入力装置701と、モデル取得部702と、コンポーネント決定部703と、価格予測部704と、予測結果出力装置705とを備える。
データ入力装置701は、価格に影響を与え得る情報である1つ以上の説明変数を、入力データ711として入力する。入力データ711を構成する説明変数の種類は、入力データ111における説明変数の種類と同じである。本実施形態において、データ入力装置701は、予測データ入力部の一例である。
モデル取得部702は、価格の予測に用いるモデルとして、モデルデータベース500から門関数モデル、及び、コンポーネントを取得する。当該門関数モデルは、門関数モデルの最適化処理部106によって最適化された門関数モデルである。また、当該コンポーネントは、コンポーネントの最適化処理部105によって最適化されたコンポーネントである。
コンポーネント決定部703は、データ入力装置701が入力した入力データ711と、モデル取得部702が取得した門関数モデルとに基づいて、階層隠れ構造をたどることにより、最下層におけるノードに関連付けされたコンポーネントを決定する。そして、コンポーネント決定部703は、該コンポーネントを、価格を予測するコンポーネントとして決定する。
価格予測部704は、コンポーネント決定部703が決定したコンポーネントに、データ入力装置701が入力した入力データ711を入力することにより、入力データ711に関する価格を予測する。予測結果出力装置705は、価格予測部704が予測した予測結果712を出力する。
次に、本実施形態の価格推定装置700の動作を説明する。図10は、本発明の少なくとも1つの実施形態に係る価格推定装置700の動作例を示すフローチャートである。
まず、データ入力装置701は、入力データ711を入力する(ステップS131)。尚、データ入力装置701は、1つの入力データ711でなく複数セットの入力データ711を入力してもよい(本発明の各実施形態において、入力データは、データセット(情報群)を表す)。たとえば、データ入力装置701は、ある装置ごとに入力データ711を入力してもよい。データ入力装置701が複数セットの入力データ711を入力する場合、価格予測部704は、入力データ711毎に価格を予測する。次に、モデル取得部702は、モデルデータベース500から門関数モデル、及び、コンポーネントを取得する(ステップS132)。
次に、価格推定装置700は、入力データ711を1つずつ選択し、選択した入力データ711について、以下に示すステップS134からステップS136までに示す処理を実行する(ステップS133)。
まず、コンポーネント決定部703は、モデル取得部702が取得した門関数モデルに基づいて、階層隠れ構造の根ノードから最下層におけるノードまでたどることにより、価格の予測に用いるコンポーネントを決定する(ステップS134)。具体的には、コンポーネント決定部703は、以降の手順でコンポーネントを決定する。
コンポーネント決定部703は、階層隠れ構造のノードごとに当該ノードに関連付けられた門関数モデルを読み出す。次に、コンポーネント決定部703は、入力データ711が、読み出した門関数モデルを満たすか否かを判定する。次に、コンポーネント決定部703は、判定結果に基づいて次にたどる子ノードを決定する。コンポーネント決定部703は、当該処理により階層隠れ構造のノードをたどって最下層におけるノードに到達すると、当該ノードに関連付けられたコンポーネントを、価格の予測に用いるコンポーネントとして決定する。
ステップS134でコンポーネント決定部703が価格の予測に用いるコンポーネントを決定すると、価格予測部704は、ステップS133で選択した入力データ711を当該コンポーネントに代入することで、価格を予測する(ステップS135)。そして、予測結果出力装置705は、価格予測部704による価格の予測結果712を出力する(ステップS136)。
そして、価格推定装置700は、ステップS134からステップS136までの処理をすべての入力データ711について実行して、処理を完了する。
以上のように、本実施形態によれば、価格推定装置700は、門関数モデルにより適切なコンポーネントを用いることで、精度よく価格の予測を行うことができる。特に、当該門関数モデル、及び、コンポーネントは、階層的な隠れ変数モデルの推定装置100により理論的正当性を失うことなく推定されるので、価格推定装置700は、適切な基準で分類されたコンポーネントに基づき価格の予測を行うことができる。
《第2の実施形態》
次に、価格予測システムの第2の実施形態について説明する。本実施形態に係る価格予測システムは、たとえば、価格予測システム10と比較して、階層的な隠れ変数モデルの推定装置100が階層的な隠れ変数モデルの推定装置200に置き換わっているということが相違する。
図11は、本発明の少なくとも1つの実施形態に係る階層的な隠れ変数モデルの推定装置の構成例を示すブロック図である。尚、第1の実施形態と同様の構成については、図3と同一の符号を付し、説明を省略する。本実施形態の階層的な隠れ変数モデルの推定装置200は、階層的な隠れ変数モデルの推定装置100と比較して、たとえば、階層隠れ構造の最適化処理部201が接続され、最適モデルの選択処理部108が接続されていないことが相違する。
また、第1の実施形態では、階層的な隠れ変数モデルの推定装置100が、階層隠れ構造の候補に対してコンポーネントや門関数モデルを最適化し、最適化基準Aを最大化する階層隠れ構造を選択する。一方、本実施形態の階層的な隠れ変数モデルの推定装置200には、階層的な隠れ変数の変分確率の計算処理部104による処理の後、階層隠れ構造の最適化処理部201により、隠れ変数が小さくなった経路がモデルから除去される処理が追加されている。
図12は、本発明の少なくとも1つの実施形態に係る階層隠れ構造の最適化処理部201の構成例を示すブロック図である。階層隠れ構造の最適化処理部201は、経路隠れ変数の和演算処理部201−1と、経路除去の判定処理部201−2と、経路除去の実行処理部201−3とを含む。
経路隠れ変数の和演算処理部201−1は、階層隠れ変数の変分確率104−6を入力し、各コンポーネントにおける最下層における経路隠れ変数の変分確率の和(以降、サンプル和と記す)を算出する。
経路除去の判定処理部201−2は、サンプル和が所定の閾値ε以下であるか否かを判定する。ここで、εは、入力データ111と共に入力される閾値である。具体的には、経路除去の判定処理部201−2が判定する条件は、たとえば、式5で表すことができる。
・・・・・・・・・・・・・・・・・・・(式5)
すなわち、経路除去の判定処理部201−2は、各コンポーネントにおける最下層における経路隠れ変数の変分確率q(zij n)が式5で表される基準を満たすか否かを判定する。言い換えると、経路除去の判定処理部201−2は、サンプル和が十分小さいか否かを判定しているとも言える。
経路除去の実行処理部201−3は、サンプル和が十分小さいと判定された経路の変分確率を0とする。そして、経路除去の実行処理部201−3は、残りの経路(すなわち、0としなかった経路)に対して正規化した最下層における経路隠れ変数の変分確率を用いて、各階層における階層隠れ変数の変分確率104−6を再計算し、出力する。
この処理の正当性を説明する。式6は、繰り返し最適化におけるq(z
ij n)の更新式の一例を表す。
・・・・・・・・・・・・・・・・・・・(式6)
式6において、指数部に負の項が含まれ、その前の処理で算出されたq(zij n)がその項の分母に存在する。したがって、この分母の値が小さければ小さいほど最適化されたq(zij n)の値も小さくなるので、小さい経路隠れ変数の変分確率が繰り返し計算されることによって、q(zij n)は、徐々に小さくなっていくことが示される。
尚、階層隠れ構造の最適化処理部201(より詳しくは、経路隠れ変数の和演算処理部201−1と、経路除去の判定処理部201−2と、経路除去の実行処理部201−3)は、プログラム(階層的な隠れ変数モデルの推定プログラム)に従って動作するコンピュータのCPUによって実現される。
次に、本実施形態の階層的な隠れ変数モデルの推定装置200の動作を説明する。図13は、本発明の少なくとも1つの実施形態に係る階層的な隠れ変数モデルの推定装置200の動作例を示すフローチャートである。
まず、データ入力装置101は、入力データ111を入力する(ステップS200)。次に、階層隠れ構造の設定部102は、階層隠れ構造として隠れ状態数の初期状態を設定する(ステップS201)。
すなわち、第1の実施形態では、コンポーネント数に対して複数個の候補をすべて実行することで最適解を探索する。一方、本実施形態では、コンポーネント数も最適化できるので、一度の処理で階層隠れ構造の最適化が可能になっている。よって、ステップS201では、第1の実施形態におけるステップS102で示すように、複数の候補から最適化が実行されていない候補を選ぶのではなく、隠れ状態数の初期値を一度設定するだけでよい。
次に、初期化処理部103は、設定された階層隠れ構造に対して、推定に用いられるパラメータや隠れ変数の変分確率等の初期化処理を行う(ステップS202)。
次に、階層的な隠れ変数の変分確率の計算処理部104は、各経路隠れ変数の変分確率を計算する(ステップS203)。次に、階層隠れ構造の最適化処理部201は、コンポーネント数を推定することで、階層隠れ構造を最適化する(ステップS204)。すなわち、コンポーネントが各最下層におけるノードに配されているので、階層隠れ構造が最適化されると、コンポーネント数は最適化される。
次に、コンポーネントの最適化処理部105は、各コンポーネントについて、観測確率の種類とパラメータを推定することにより、コンポーネントを最適化する(ステップS205)。次に、門関数モデルの最適化処理部106は、各分岐ノードにおける分岐パラメータを最適化する(ステップS206)。次に、最適性の判定処理部107は、最適化基準Aが収束したか否かを判定する(ステップS207)。すなわち、最適性の判定処理部107は、モデルの最適性を判定する。
ステップS207において、最適化基準Aが収束したと判定されなかった場合(すなわち、最適ではないと判定された場合)(ステップS207aにてNo)、ステップS203からステップS207までの処理が繰り返される。
一方、ステップS207において、最適化基準Aが収束したと判定された場合(すなわち、最適であると判定された場合)(ステップS207aにてYes)、モデルの推定結果の出力装置109は、モデルの推定結果112を出力し、処理を完了する(ステップS208)。
次に、本実施形態の階層隠れ構造の最適化処理部201の動作を説明する。図14は、本発明の少なくとも1つの実施形態に係る階層隠れ構造の最適化処理部201の動作例を示すフローチャートである。
まず、経路隠れ変数の和演算処理部201−1は、経路隠れ変数のサンプル和を算出する(ステップS211)。次に、経路除去の判定処理部201−2は、算出したサンプル和が十分小さいか否かを判定する(ステップS212)。次に、経路除去の実行処理部201−3は、サンプル和が十分小さいと判定された最下層における経路隠れ変数の変分確率を0として再計算した階層隠れ変数の変分確率を出力し、処理を完了する(ステップS213)。
以上のように、本実施形態では、階層隠れ構造の最適化処理部201が、算出された変分確率が所定の閾値以下である経路をモデルから除外することにより階層隠れ構造を最適化する。
このような構成にすることで、第1の実施形態の効果に加え、階層的な隠れ変数モデルの推定装置100のように複数の階層隠れ構造の候補に対して最適化をする必要がなく、一回の実行処理でコンポーネント数も最適化できる。そのため、コンポーネント数、観測確率の種類とパラメータ、変分分布を同時に推定し、計算コストを抑えることが可能になる。
《第3の実施形態》
次に、価格予測システムの第3の実施形態について説明する。本実施形態に係る価格予測システムは、たとえば、階層的な隠れ変数モデルの推定装置の構成が第2の実施形態と異なる。本実施形態の階層的な隠れ変数モデルの推定装置は、階層的な隠れ変数モデルの推定装置200と比較して、たとえば、門関数モデルの最適化処理部106が門関数モデルの最適化処理部113に置き換わったということが相違する。
図15は、本発明の少なくとも1つの実施形態に係る門関数モデルの最適化処理部113の構成例を示すブロック図である。門関数モデルの最適化処理部113は、有効な分岐ノードの選別部113−1と、分岐パラメータの最適化の並列処理部113−2とを含む。
有効な分岐ノードの選別部113−1は、階層隠れ構造から有効な分岐ノードを選別する。具体的には、有効な分岐ノードの選別部113−1は、コンポーネントの最適化処理部105で推定された推定モデル104−5を用い、モデルから除去された経路を考慮することで、有効な分岐ノードを選別する。すなわち、有効な分岐ノードは、階層隠れ構造から除去されていない経路上の分岐ノードを表す。
分岐パラメータの最適化の並列処理部113−2は、有効な分岐ノードに関する分岐パラメータの最適化処理を並列に行い、処理の結果を門関数モデル106−6として出力する。具体的には、分岐パラメータの最適化の並列処理部113−2は、入力データ111と、階層的な隠れ変数の変分確率の計算処理部104によって算出された階層隠れ変数の変分確率104−6とを用いて、すべての有効な分岐ノードに関する分岐パラメータを並行で最適化する。
分岐パラメータの最適化の並列処理部113−2は、たとえば、図15に例示するように、第1の実施形態の分岐パラメータの最適化処理部106−3を並列に並べて構成してもよい。このような構成により、一度にすべての門関数モデルの分岐パラメータを最適化できる。
すなわち、階層的な隠れ変数モデルの推定装置100,200は、門関数モデルの最適化処理を1つずつ実行していたが、本実施形態の階層的な隠れ変数モデルの推定装置は、門関数モデルの最適化処理を並行して行うことができるので、より高速なモデルの推定が可能になる。
尚、門関数モデルの最適化処理部113(より詳しくは、有効な分岐ノードの選別部113−1と、分岐パラメータの最適化の並列処理部113−2)は、プログラム(階層的な隠れ変数モデルの推定プログラム)に従って動作するコンピュータのCPUによって実現される。
また、同時並列に実行するのか、いわゆる、疑似並列に実行するのかは、上述した処理を実装するコンピュータによって異なり、本発明の各実施形態においては、実質的に並列であればよい。
次に、本実施形態の門関数モデルの最適化処理部113の動作を説明する。図16は、本発明の少なくとも1つの実施形態に係る門関数モデルの最適化処理部113の動作例を示すフローチャートである。まず、有効な分岐ノードの選別部113−1は、すべての有効な分岐ノードを選択する(ステップS301)。次に、分岐パラメータの最適化の並列処理部113−2は、すべての有効な分岐ノードを並列に最適化し、処理を完了する(ステップS302)。
以上のように、本実施形態によれば、有効な分岐ノードの選別部113−1は、階層隠れ構造のノードから有効な分岐ノードを選別する。分岐パラメータの最適化の並列処理部113−2は、有効な分岐ノードにおける隠れ変数の変分確率に基づいて門関数モデルを最適化する。その際、分岐パラメータの最適化の並列処理部113−2は、有効な分岐ノードに関する各分岐パラメータの最適化を並列に処理する。よって、門関数モデルの最適化処理を並行して行うことができるので、上述する実施形態の効果に加え、より高速なモデルの推定が可能になる。
《基本構成》
次に、階層的な隠れ変数モデルの推定装置の基本構成について説明する。図17は、本発明の少なくとも1つの実施形態に係る階層的な隠れ変数モデルの推定装置の基本構成を示すブロック図である。
階層的な隠れ変数モデルの推定装置は、対象物に関する価格を予測する階層的な隠れ変数モデルを推定する。階層的な隠れ変数モデルの推定装置は、基本構成として、学習情報入力部80と、変分確率計算部81と、階層隠れ構造の設定部82と、コンポーネントの最適化処理部83と、門関数モデルの最適化部84とを備える。
学習情報入力部80は、既知の価格である目的変数と、当該価格に影響を与え得る情報である1つ以上の説明変数との複数の組み合わせである学習データを入力する。学習情報入力部80の例として、データ入力装置101が挙げられる。
階層隠れ構造の設定部82は、たとえば、隠れ変数が木構造で表され、当該木構造の最下層におけるノードに確率モデルを表すコンポーネントが配された構造である階層隠れ構造を設定する。階層隠れ構造の設定部82の例として、階層隠れ構造の設定部102が挙げられる。
変分確率計算部81は、学習情報入力部80が入力した学習データとコンポーネントとに基づいて、階層隠れ構造において根ノードから対象ノードまでを結んだ経路に含まれる隠れ変数である経路隠れ変数の変分確率(たとえば、最適化基準A)を計算する。変分確率計算部81の例として、階層的な隠れ変数の変分確率の計算処理部104が挙げられる。
コンポーネントの最適化処理部83は、学習情報入力部80が入力した学習データに基づいて、算出された変分確率に対してコンポーネントを最適化する。コンポーネントの最適化処理部83の例として、コンポーネントの最適化処理部105が挙げられる。
門関数モデルの最適化部84は、階層隠れ構造のノードにおいて説明変数に応じた分岐方向を決定するモデルである門関数モデルを、当該ノードにおける隠れ変数の変分確率に基づいて最適化する。門関数モデルの最適化部84の例としては、門関数モデルの最適化処理部106が挙げられる。
そのような構成により、階層的な隠れ変数モデルの推定装置は、階層的な隠れ変数を含む階層的な隠れ変数モデルを、理論的正当性を失うことなく適切な計算量で推定できる。
また、階層的な隠れ変数モデルの推定装置は、算出された変分確率が所定の閾値以下である経路をモデルから除外することにより階層隠れ構造を最適化する階層隠れ構造の最適化部(たとえば、階層隠れ構造の最適化処理部201)を備えていてもよい。すなわち、階層的な隠れ変数モデルの推定装置は、算出された変分確率が基準を満たさない経路をモデルから除外することにより階層隠れ構造を最適化する階層隠れ構造の最適化部を備えていてもよい。そのような構成により、複数の階層隠れ構造の候補に対して最適化をする必要がなく、一回の実行処理でコンポーネント数も最適化できる。
また、門関数モデルの最適化部84は、階層隠れ構造から除外されていない経路の分岐ノードである有効な分岐ノードをその階層隠れ構造のノードから選別する有効な分岐ノードの選別部(たとえば、有効な分岐ノードの選別部113−1)を含んでもよい。門関数モデルの最適化部84は、有効な分岐ノードにおける隠れ変数の変分確率に基づいて門関数モデルを最適化する分岐パラメータの最適化の並列処理部(たとえば、分岐パラメータの最適化の並列処理部113−2)を含んでもよい。そして、分岐パラメータの最適化の並列処理部は、有効な分岐ノードに関する各分岐パラメータの最適化を並行に処理してもよい。そのような構成により、より高速なモデルの推定が可能になる。
また、階層隠れ構造の設定部82は、隠れ変数が2分木構造で表される階層隠れ構造を設定してもよい。そして、門関数モデルの最適化部84は、ノードにおける隠れ変数の変分確率に基づいて、ベルヌーイ分布を基とする門関数モデルを最適化してもよい。この場合、各パラメータが解析解を持つので、より高速な最適化が可能になる。
具体的には、変分確率計算部81は、周辺化対数尤度を最大化するように隠れ変数の変分確率を計算してもよい。
次に、価格推定装置93の基本構成について説明する。図18は、本発明の少なくとも1つの実施形態に係る価格推定装置93の基本構成を示すブロック図である。
価格推定装置93は、予測データ入力部90と、コンポーネント決定部91と、価格予測部92とを備える。
予測データ入力部90は、価格に影響を与え得る情報である1つ以上の説明変数である予測データを入力する。予測データ入力部90の例として、データ入力装置701が挙げられる。
コンポーネント決定部91は、隠れ変数が階層構造で表され、当該階層構造の最下層におけるノードに確率モデルを表すコンポーネントが配された構造である階層隠れ構造と、当該階層隠れ構造のノードにおいて分岐方向を決定する門関数モデルと、予測データとに基づいて、価格の予測に用いるコンポーネントを決定する。コンポーネント決定部91の例として、コンポーネント決定部703が挙げられる。
価格予測部92は、コンポーネント決定部91が決定したコンポーネントと予測データとに基づいて、価格を予測する。価格予測部92の例として、価格予測部704が挙げられる。
そのような構成により、価格推定装置は、門関数モデルにより適切なコンポーネントを用いることで、精度よく価格の予測を行うことができる。
図19は、本発明の少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
コンピュータ1000は、CPU1001と、主記憶装置1002と、補助記憶装置1003と、インタフェース1004とを備える。
少なくとも1つの実施形態に係る階層的な隠れ変数モデルの推定装置や価格推定装置は、それぞれコンピュータ1000に実装される。尚、階層的な隠れ変数モデルの推定装置が実装されたコンピュータ1000と、価格推定装置が実装されたコンピュータ1000とは、異なってもよい。そして、少なくとも1つの実施形態に係る各処理部の動作は、プログラム(階層的な隠れ変数モデルの推定プログラムや価格予測プログラム)の形式で補助記憶装置1003に記憶されている。CPU1001は、プログラムを補助記憶装置1003から読み出して主記憶装置1002に展開し、当該プログラムに従って上記処理を実行する。
尚、少なくとも1つの実施形態において、補助記憶装置1003は、一時的でない有形の媒体の一例である。一時的でない有形の媒体の他の例としては、インタフェース1004を介して接続される磁気ディスク、光磁気ディスク、CD−ROM(Compact__Disc_Read_Only_Memory)、DVD(Digital_Versatile_Disc)−ROM、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ1000に配信される場合、配信を受けたコンピュータ1000が当該プログラムを主記憶装置1002に展開し、上記処理を実行してもよい。
また、当該プログラムは、前述した機能の一部を実現してもよい。さらに、当該プログラムは、前述した機能を補助記憶装置1003に既に記憶されている他のプログラムとの組み合わせで実現するファイル(プログラム)、いわゆる差分ファイル(差分プログラム)であってもよい。
《第4の実施形態》
次に、本発明の第4の実施形態について説明する。
図20を参照しながら、第4の実施形態に係る推定装置310が有する構成と、推定装置310が行う処理とについて説明する。図20は、本発明の第4の実施形態に係る推定装置310が有する構成を示すブロック図である。
第4の実施形態に係る推定装置310は、推定部311を有する。
まず、推定部311は、第2時期における対象物の価格を推定する場合に、1つ以上の説明変数を含む第2情報410を受信する。
ここで、第2情報410について説明する。
説明変数のうち少なくとも1つは、該対象物に関して特定の事象が生じる第1時期と、第2時期との間の期間の長さを表す属性である。特定の事象は、該対象物に関して生じる事象である。たとえば、対象物が装置である場合に、特定の事象は、該装置を購入する、該装置を整備する、該装置と同じ型番が割り当てられた装置を販売し始める等の事象である。特定の事象は、該装置と異なる型番を割り当てられた装置でありながら、バージョンアップした装置を販売し始める等の事象であってもよい。
対象物が車両である場合、第2時期は、たとえば、車両の売却を予定する時期を表す。
さらに、推定部311は、図21に例示するような第1情報セットに基づき抽出されるルールを表すルール情報411を受信する。図21は、本発明の少なくとも1つの実施形態に係る第1情報セットの一例を概念的に表す図である。
ここで、第1情報セットは、第1情報を複数含む。第1情報は、1つ以上の説明変数の値と、目的変数の値(価格)とを関連付けする。すなわち、第1情報は、対象物(説明の便宜上、「第2対象物」と表す)と、第2対象物に関する価格とを関連付けする。
説明変数のうち少なくとも1つは、第1情報が表す対象物に関する第1時期と、該目的変数に関連付けされた第3時期と間の期間の長さを表す属性である。図21に示す例において、属性は、使用期間、整備までの期間、あるいは、付属品を交換するまでの期間である。属性は、図21に示す例に限定されない。
たとえば、図21における2行目は、第1情報の一例を表す。すなわち、該第1情報は、3(使用期間を表す値)、10(整備するまでの期間を表す値)、及び、1(付属品を交換するまでの期間を表す値)と、100(価格を表す値)とを関連付けする。
上述した第3時期は、たとえば、車両を売却した時期を表す。
また、図21に示す例において、使用期間は、該車両を購入する時期と、該車両を売却した時期との間の期間を表す。この場合に、特定の事象は、該車両を購入するという事象を表す。
また、図21に示す例において、整備までの期間は、該車両を売却した時期と、該車両に関して次に整備が必要な時期との間の期間を表す。この場合、特定の事象は、該車両を整備するという事象を表す。たとえば、整備までの期間は、該車両に関する法定の車両点検(車検)の残存期間を表す。
さらに、図21に示す例において、付属品を交換するまでの期間は、該車両を売却した時期と、該車両に付属する付属品に関して、次に交換が必要な時期の間の期間を表す。この場合、特定の事象は、該車両に付属する付属品に関して次に交換するという事象を表す。たとえば、付属品は、該車両が有するホイールである。
次に、ルール情報411について説明する。たとえば、サポートベクターマシン、ニューラルネットワーク、あるいは、決定木等の手法が、ルールを抽出してもよい。あるいは、本発明の第1の実施形態乃至第3の実施形態に係る階層的な隠れ変数モデルの推定装置が、ルール情報(コンポーネント、及び、門関数モデル等)を抽出してもよい。
まず、推定部311は、第2情報410にルール情報411を適用し、該結果を価格412として算出する。
次に、第4の実施形態に係る推定装置310によって享受できる効果について説明する。
本実施形態に係る推定装置310によれば、高精度に、対象物に関する第2時期における価格を予測することができる。
この理由は、対象物に関する第2時期における価格が、対象物に関する特定の事象に依存することが多いからである。
たとえば、対象物が車両である場合に、売却価格は、売却する際における車検の残存期間に関連することが多い。この場合、該残存期間と、該売却価格との間には関連性がある。推定装置310は、該関連性を表すルール情報411に基づき、予測対象となる価格を予測する。推定装置310が予測する価格は、該残存期間と、該売却価格との間における関連性に基づくので、より的確な価格である。
また、対象物が設備である場合に、該設備を売却する価格は、設備を構成する付属品を交換するまでの期間、該設備を購入してからの経過期間等の影響を受ける。この場合、推定装置310が予測する価格は、該交換するまでの期間、及び、経過期間と、該売却価格との間における関連性に基づくので、より的確な価格である。
したがって、本実施形態に係る推定装置310によれば、高精度に、対象物に関する第2時期における価格を予測することができる。
《第5の実施形態》
次に、上述した実施形態を基本とする本発明の第5の実施形態について説明する。
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
図22を参照しながら、第5の実施形態に係る価格推定装置97が有する構成と、価格推定装置97が行う処理とについて説明する。図22は、本発明の第5の実施形態に係る価格推定装置97が有する構成を示すブロック図である。
第5の実施形態に係る価格推定装置97は、予測データ入力部94と、コンポーネント決定部91と、価格予測部92とを有する。価格推定装置97は、さらに、学習データ入力部95と、変分確率計算部96とを有してもよい。
まず、予測データ入力部94は、価格に影響を与え得る情報である1つ以上の説明変数である第2情報を入力する。ただし、説明変数のうち少なくとも1つは、本発明の第4の実施形態に示した属性である。また、予測データ入力部94の例としては、データ入力装置701が挙げられる。
コンポーネント決定部91は、予測データ入力部94における第2情報に基づき、コンポーネントを決定する。
次に、価格予測部92は、コンポーネント決定部91が決定したコンポーネント等に基づき、価格を予測する。
説明変数のうち少なくとも1つは、本発明の第4の実施形態に示した属性である。したがって、第5の実施形態に係る価格推定装置97によれば、第4の実施形態に示した理由と同様の理由に基づき、高精度に価格を予測することができる。
また、価格推定装置97が、上述した構成に加え、さらに、学習データ入力部95と、変分確率計算部96とを有する場合について説明する。
学習データ入力部95は、価格である目的変数と当該価格に影響を与え得る情報である1つ以上の説明変数の複数の組み合わせである第1情報を入力する。学習データ入力部95の例として、データ入力装置101が挙げられる。
変分確率計算部96は、学習データ入力部95に入力された学習情報2301と、コンポーネントとに基づいて、階層隠れ構造において根ノードから対象ノードまでを結んだ経路に含まれる隠れ変数である経路隠れ変数の変分確率(たとえば、最適化基準A)を計算する。この際に、変分確率計算部81は、該経路に、上述した属性を配置する。変分確率計算部96の例として、階層的な隠れ変数の変分確率の計算処理部104が挙げられる。
図23を参照しながら、学習情報2301に基づき算出される門関数モデル、及び、コンポーネントの一例を説明する。図23は、本発明の少なくとも1つの実施形態に係る隠れ変数モデルが木構造である場合に、価格推定装置97が算出する門関数モデルと、コンポーネントとの一例を表す図である。
該木構造における各節点(ノード2302、及び、ノード2303)には、特定の説明変数(この場合、確率変数)に関する条件が割り振られる。すなわち、変分確率計算部96が、説明変数に、上述した属性を配置する。
たとえば、ノード2302は、属性の値が3以上であるか否かに関する条件を表す(条件情報2308)。同様に、ノード2303は、説明変数Bの値が5であるか否かに関する条件(条件情報2310)を表す。すなわち、この例において、変分確率計算部96は、ノード2302に、上述した属性を配置する。
説明変数に関しては、該説明変数の値に応じて、次に、どの枝を選択するのか、または、どのコンポーネントを選択するのかに関して確率が与えられている(確率情報2307、及び、確率情報2309)。
たとえば、ノード2302においては、属性の値が3以上である場合に(すなわち、条件情報2308にてYES)、確率情報2307に基づき、枝A1を選択する確率が0.05であり、枝A2を選択する0.95であるとする。また、属性の値が3未満である場合に(すなわち、条件情報2308にてNO)、確率情報2307に基づき、枝A1を選択する確率が0.8であり、枝A2を選択する確率が0.2であるとする。
同様に、たとえば、ノード2303においては、説明変数Bの値が5である場合に(すなわち、条件情報2310にてYES)、確率情報2309に基づき、枝B1を選択する確率が0.25であり、枝B2を選択する確率が0.75であるとする。また、説明変数Bの値が5ではない場合に(すなわち、条件情報2310にてNO)、確率情報2309に基づき、枝B1を選択する確率が0.7であり、枝B2を選択する確率が0.3であるとする。
ここで、説明の便宜上、説明変数Aの値は4であり、説明変数Bの値は7であるとする。
この場合、属性の値が3以上であるので、枝A1を選択する確率は0.05であり、枝A2を選択する確率は0.95である。説明変数Bの値が5ではないので、枝B1を選択する確率は0.7であり、枝B2を選択する確率は0.3である。すなわち、モデルがコンポーネント2306である確率は、枝A1、及び、枝B1を経由するので、0.05×0.7=0.035である。モデルがコンポーネント2305である確率は、枝A1、及び、枝B2を経由するので、0.05×0.3=0.015である。モデルがコンポーネント2304である確率は、枝A2を経由するので、0.95である。すなわち、モデルがコンポーネント2304である確率が最大であるので、価格予測部92は、対象物に関する価格を、コンポーネント2304に従い予測する。
尚、上述した例においては、隠れ変数モデルが木構造を有する場合について説明したが、隠れ変数モデルが階層構造を有する場合であっても、門関数モデルを用いて、コンポーネントに関する確率を算出し、該確率が最大となるコンポーネントを選ぶ。
次に、第5の実施形態に係る価格推定装置97によって享受できる効果について説明する。
本実施形態に係る価格推定装置97によれば、より正確に価格を予測することができる。
この理由は、説明変数の1つとして、上述した属性を用いるからである。さらに、この理由は、価格推定装置97が、本発明の上述した各実施形態に係る階層的な隠れ変数モデルの推定装置が有する構成を含むからである。
《第6の実施形態》
次に、上述した実施形態を基本とする本発明の第6の実施形態について説明する。
図24と図25とを参照しながら、第6の実施形態に係る価格推定装置131が有する構成と、価格推定装置131が行う処理とについて説明する。図24は、本発明の第6の実施形態に係る価格推定装置131が有する構成を示すブロック図である。図25は、第6の実施形態に係る価格推定装置131における処理の流れを示すフローチャートである。
第6の実施形態に係る価格推定装置131は、予測データ入力部132と、コンポーネント決定部133と、価格予測部134とを有する。さらに、価格推定装置131は、学習データ入力部135と、データ選択部136と、変分確率計算部137とを有する。
学習データ入力部135は、価格である目的変数と当該価格に影響を与え得る情報である1つ以上の説明変数の複数の組み合わせである第1情報からなる第1情報セットを入力する。学習データ入力部135の例として、データ入力装置101が挙げられる。尚、各第1情報は、該第1情報に関連付けされた対象物に関する目的変数(価格)が決められた第1時期に関連付けされている。
予測データ入力部132は、価格に影響を与え得る情報である1つ以上の説明変数である第2情報を入力する。予測データ入力部132の例として、データ入力装置701が挙げられる。尚、該第2情報は、第2情報に関連付けされた対象物に関して価格を予測する第2時期に関連付けされている。
データ選択部136は、第1情報セットの中から、第2時期に基づいて、特定の第1情報を選択する(ステップS1001)。
たとえば、データ選択部136は、第1情報セットの中から、第2時期と、第1情報に関連付けされた第1時期との期間が、特定の値以下である特定の第1情報を選択する。あるいは、データ選択部136は、第2時期よりも前であり、かつ、第1時期と第2時期との期間が、特定の値以下である特定の第1情報を選択してもよい。または、データ選択部136は、第1時期と第2時期との期間が短い順に、特定の個数個分の第1情報を選択してもよい。データ選択部136における処理は、上述した例に限定されない。
次に、変分確率計算部137は、データ選択部136が選択した特定の第1情報に基づき、変分確率を計算する(ステップS1002)。変分確率計算部137の例として、階層的な隠れ変数の変分確率の計算処理部104が挙げられる。
次に、コンポーネント決定部133は、第2情報に基づきコンポーネントを決定する。この場合、コンポーネント決定部133は、隠れ変数が階層構造で表され、当該階層構造の最下層におけるノードに確率モデルを表すコンポーネントが配された構造である階層隠れ構造と、当該階層隠れ構造のノードにおいて分岐方向を決定する門関数モデルとに従い、コンポーネントを決定する。コンポーネント決定部133の例として、コンポーネント決定部703が挙げられる。
次に、価格予測部134は、コンポーネント決定部133が選択したコンポーネントに基づき、第2情報に関する第2時期における価格を予測する(ステップS1003)。価格予測部134の例として、価格予測部704が挙げられる。
次に、第6の実施形態に係る価格推定装置131によって享受できる効果について説明する。
本実施形態に係る価格推定装置131によれば、さらに高精度に価格を予測することができる。
この理由は、たとえば、理由1、及び、理由2である。すなわち、
(理由1)第6の実施形態に係る価格推定装置が有する構成は、上述した実施形態に係る価格推定装置が有する構成を含むからである、
(理由2)第2情報と第1情報とが類似(または一致)するので、第2情報を分類するのに適したコンポーネント、及び、門関数モデル等が作成できるからである。
データ選択部136は、上述したように、第2時期に近い第1時期に関連付けされた第1情報を選ぶ。たとえば、対象物が特定の車種の車両である場合、該車両の価格は、売却時期が近いほど、類似(または一致)する傾向にある。したがって、データ選択部136が上述した処理を行うことにより、第1情報と第2情報とは、相互に類似(または一致)する。
《第7の実施形態》
次に、上述した実施形態を基本とする本発明の第7の実施形態について説明する。
図26と図27とを参照しながら、第7の実施形態に係る価格推定装置121が有する構成と、価格推定装置121が行う処理とについて説明する。図26は、本発明の第7の実施形態に係る価格推定装置121が有する構成を示すブロック図である。図27は、第7の実施形態に係る価格推定装置121における処理の流れを示すフローチャートである。
第7の実施形態に係る価格推定装置121は、予測データ入力部122と、コンポーネント決定部123と、価格予測部124と、第2価格変換部125とを有する。価格推定装置121は、さらに、学習データ入力部126と、第1価格変換部127と、コンポーネントの最適化処理部128とを有する。
学習データ入力部126は、価格である目的変数と当該価格に影響を与え得る情報である1つ以上の説明変数の複数の組み合わせである第1情報を含む第1情報セットを入力する。学習データ入力部126の例として、データ入力装置101が挙げられる。
次に、第1価格変換部127は、学習データ入力部126に入力された第1情報セットにおいて、目的変数(価格)に、特定の変換関数を適用することにより、第2価格を算出する(ステップS1101)。次に、第1価格変換部127は、算出した第2価格と、該第2価格を算出した基となる価格と関連付けされた説明変数とを関連付けることにより第3情報を作成する。すなわち、第1価格変換部127は、第1情報セットに基づき、第3情報を含む第3情報セットを算出する。
たとえば、特定の変換関数は、指数関数、対数関数等、傾きが一定でない単調な、所定の関数である。
次に、コンポーネントの最適化処理部128は、第3情報セットに基づき、算出された変分確率に対してコンポーネントを最適化する(ステップS1102)。コンポーネントの最適化処理部128の例として、コンポーネントの最適化処理部105が挙げられる。
また、予測データ入力部122は、価格に影響を与え得る情報である1つ以上の説明変数である第2情報を入力する。予測データ入力部122の例として、データ入力装置701が挙げられる。
次に、コンポーネント決定部123は、隠れ変数が階層構造で表され、当該階層構造の最下層におけるノードに確率モデルを表すコンポーネントが配された構造である階層隠れ構造と、当該階層隠れ構造のノードにおいて分岐方向を決定する門関数モデルと、第2情報とに基づいて、価格の予測に用いるコンポーネントを決定する。この場合に、コンポーネントは、コンポーネントの最適化処理部128が第3情報セットに基づき最適化したコンポーネントである。コンポーネント決定部123の例として、コンポーネント決定部703が挙げられる。
次に、価格予測部124は、コンポーネント決定部123が決定したコンポーネントと第2情報とに基づいて、第2価格を予測する(ステップS1103)。価格予測部124の例として、価格予測部704が挙げられる。
次に、第2価格変換部125は、価格予測部124が予測した第2価格に、第1価格変換部127が適用する特定の変換関数の逆関数を定義することにより、価格を算出する(ステップS1104)。
次に、第7の実施形態に係る価格推定装置121によって享受できる効果について説明する。
本実施形態に係る価格推定装置121によれば、上述した効果に加え、さらに、特定の価格帯を正確に予測することができる。
この理由は、たとえば、理由1、及び、理由2である。すなわち、
(理由1)第7の実施形態に係る価格推定装置121が有する構成は、上述した実施形態に係る価格推定装置が有する構成を含むからである、
(理由2)第1価格変換部127、及び、第2価格変換部125が、特定の変換関数を用いることにより、特定の価格帯における価格の差異が大きくなるからである。
たとえば、特定の変換関数が対数関数である場合に、価格が0に近い低価格帯における2つのデータの差異は大きくなる。一方で、高価格帯における2つのデータの差異は小さくなる。したがって、この場合、価格推定装置121は、低価格帯を正しく予測することができる。さらに、特定の変換関数が対数関数である場合に、特定の変換関数の逆関数の値は必ず正の値である。この場合、価格推定装置121が予測する価格が、必ず正になるので、価格推定装置121によれば、より、妥当な価格を算出するという効果も奏する。
たとえば、特定の変換関数が指数関数である場合に、高価格帯における2つのデータの差異は大きくなる。一方で、低価格帯における2つのデータの差異は小さくなる。したがって、この場合、価格推定装置121は、高価格帯を正しく予測することができる。
以上、上述した実施形態を模範的な例として本発明を説明した。しかし、本発明は、上述した実施形態には限定されない。すなわち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
この出願は、2014年3月28日に出願された米国出願61971594を基礎とする優先権を主張し、その開示の全てをここに取り込む。