本明細書において、階層的な隠れ変数モデルは、隠れ変数が階層構造(たとえば、木構造)を持つ確率モデルを表す。階層的な隠れ変数モデルの最下層におけるノードには、確率モデルであるコンポーネントが割り当てられる。また、最下層におけるノード以外のノード(中間ノード、以降、木構造を例として説明するので「分岐ノード」と表す)には、入力された情報に応じて、ノードを選ぶ基準となる門関数(門関数モデル)が設けられる。
以降の説明においては、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は、根ノードに入力されるxnに基づきノードを選ぶ場合に、第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は、不完全変数と呼ばれる。
式1は、完全変数に関する深さ2の階層的な隠れ変数モデル同時分布を表す。
すなわち、式1に含まれるP(x,y)=P(x,z1st,z2nd)は、完全変数に関する深さ2の階層的な隠れ変数モデル同時分布を表す。式1においては、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番目のコンポーネントに対する観測パラメータを表す。
また、S1,・・・,SK1・K2は、φkに関する観測確率の種類を表すとする。尚、たとえば、多変量データの生成確率の場合に、S1乃至SK1・K2になり得る候補は、{正規分布、対数正規分布、指数分布}等である。また、たとえば、多項曲線が出力される場合に、S1乃至SK1・K2になり得る候補は、{0次曲線、1次曲線、2次曲線、3次曲線}等である。
尚、以降の説明においては、具体的な例を説明する場合に、深さ2の階層的な隠れ変数モデルを例示して説明する。ただし、少なくとも1つの実施形態に係る階層的な隠れ変数モデルは、深さ2の階層的な隠れ変数モデルに限定されず、深さが1や3以上の階層的な隠れ変数モデルであってもよい。この場合も、深さ2の階層的な隠れ変数モデルの場合と同様に、式1や、式2乃至式4(後述)を導出すればよく、同様の構成により推定装置が実現される。
また、以降の説明においては、ターゲット変数をXとした場合の分布について説明する。ただし、観測分布が回帰や判別のように、条件付モデルP(Y|X)(Yはターゲットとなる確率変数)である場合についても適用可能である。
また、本発明の実施形態について説明する前に、この実施形態に係る推定装置と、非特許文献2に記載された混合隠れ変数モデルに対する推定方法との本質的な違いについて説明する。
非特許文献2に開示された方法では、隠れ変数を各コンポーネントのインジケータとする一般的な混合モデルが想定される。このため、最適化の基準が、非特許文献2における式10に示すように導出される。しかし、フィッシャー情報行列が非特許文献2における式6の形式で与えられるように、非特許文献2に記載された方法では、コンポーネントのインジケータである隠れ変数の確率分布が混合モデルの混合比にのみ依存すると仮定されている。そのため、入力に応じたコンポーネントの切り替えが実現できないので、この最適化基準は、適切でない。
この問題を解決するためには、以降の実施形態で示すように、階層的な隠れ変数を設定し、適切な最適化基準を用いて計算する必要がある。以降の実施形態では、適切な最適化基準として、入力に応じて各分岐ノードでの分岐を振り分ける多段の特異モデルを想定する。
以下、図面を参照しながら実施形態について説明する。
《第1の実施形態》
図1は、少なくとも1つの実施形態に係る払出量予測システムの構成例を示すブロック図である。本実施形態に係る払出量予測システム10は、階層的な隠れ変数モデルの推定装置100と、学習用データベース300と、モデルデータベース500と、払出量予測装置700とを備える。払出量予測システム10は、過去における商品の払出に係る情報に基づいて払出量を予測するモデルを生成し、当該モデルを用いて払出量を予測する。
階層的な隠れ変数モデルの推定装置100は、学習用データベース300が記憶するデータを用いて、商品に関する払出量を予測するモデルを推定し、当該モデルをモデルデータベース500に記録する。
図2A乃至図2Gは、少なくとも1つの実施形態に係る学習用データベース300が記憶する情報の例を示す図である。
学習用データベース300は、商品及び店舗に関するデータを記憶する。
学習用データベース300は、商品の払出に関するデータを記憶可能な払出テーブルを記憶することができる。払出テーブルは、図2Aに示すように、日時、商品識別子(以降、「ID」と表す)、店舗ID、及び、顧客IDの組み合わせに関連付けて、商品の売上数、単価、小計、レシート番号等を格納する。顧客IDは、顧客を一意に識別可能な情報であり、たとえば、会員カードやポイントカードを提示することにより特定することができる。
また、学習用データベース300は、気象に関するデータを記憶可能な気象テーブルを記憶することができる。気象テーブルは、図2Bに示すように、日時に関連付けて、気温、その日の最高気温、その日の最低気温、降水量、天気、不快指数等を格納する。
また、学習用データベース300は、商品を購入した顧客に関するデータを記憶可能な顧客テーブルを記憶することができる。顧客テーブルは、図2Cに示すように、顧客IDに関連付けて、年齢、住所、家族構成等を格納する。本実施形態においては、これらの情報は、たとえば、会員カードやポイントカード等を登録するのに応じて記録される。
また、学習用データベース300は、商品の在庫数に関するデータを記憶可能な在庫テーブルを記憶することができる。在庫テーブルは、図2Dに示すように、日時と商品IDとの組み合わせに関連付けて、在庫数、前回の在庫数からの増減値等を格納する。
また、学習用データベース300は、店舗に関するデータを記憶可能な店舗属性テーブルを記憶する。店舗属性テーブルは、図2Eに示すように、店舗IDに関連付けて、店舗名、住所、タイプ、広さ、駐車場数等を格納する。店舗のタイプの例としては、駅前に設置される駅前タイプ、住宅街に設置される住宅街タイプ、ガソリンスタンド等の他の施設との複合施設である複合型タイプ等が挙げられる。
また、学習用データベース300は、日時に関するデータを記憶可能な日時属性テーブルを記憶することができる。日時属性テーブルは、図2Fに示すように、日時に関連付けて、当該日時の属性を示す情報種別、値、商品ID、店舗ID等を格納する。情報種別の例としては、祝日であるか否か、キャンペーン中であるか否か、店舗の周辺でイベントが開催されているか否か等が挙げられる。日時属性テーブルの値は、1か0かのいずれかをとり、値が1である場合は、当該値に関連付けられた日時が、当該値に関連付けられた情報種別が示す属性を有することを示す。また、値が0である場合は、当該値に関連付けされた日時が、当該値に関連付けされた情報種別が示す属性を有さないことを示す。また、商品ID及び店舗IDは、情報種別の種類により、必須か否かが異なる。たとえば、情報種別がキャンペーンを示す場合に、どの店舗でどの商品のキャンペーンを行っているかを示す必要があるので、商品ID及び店舗IDは必須の項目である。他方、情報種別が祝日を示す場合に、その日が祝日であるか否かは店舗及び商品の種別と関係がないので、商品ID及び店舗IDは必須でない項目である。
また、学習用データベース300は、商品に関するデータを記憶可能な商品属性テーブルを記憶する。商品属性テーブルは、図2Gに示すように、商品IDに関連付けて、商品名、商品の大分類、中分類、小分類、単価、原価等を格納する。
モデルデータベース500は、階層的な隠れ変数モデルの推定装置が推定した、商品の払出量を予測するモデルを記憶する。モデルデータベース500は、ハードディスクドライブやソリッドステートドライブ等、一時的でない有形の媒体によって構成される。
払出量予測装置700は、商品及び店舗に関するデータを入力され、当該データとモデルデータベース500が記憶するモデルとに基づいて、商品の払出量を予測する。
図3は、少なくとも1つの実施形態に係る、階層的な隠れ変数モデルの推定装置の構成例を示すブロック図である。本実施形態に係る、階層的な隠れ変数モデルの推定装置100は、データ入力装置101と、階層隠れ構造の設定部102と、初期化処理部103と、階層的な隠れ変数の変分確率の計算処理部104と、コンポーネントの最適化処理部105とを備える。さらに、階層的な隠れ変数モデルの推定装置100は、門関数の最適化処理部106と、最適性の判定処理部107と、最適モデルの選択処理部108と、モデル推定結果の出力装置109とを備える。
階層的な隠れ変数モデルの推定装置100は、学習用データベース300が記憶するデータに基づいて生成された入力データ111が入力されると、その入力データ111に対して階層隠れ構造及び観測確率の種類を最適化する。次に、階層的な隠れ変数モデルの推定装置100は、最適化した結果をモデル推定結果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−6と、推定モデル104−5とが入力されると、門関数モデル106−6を出力する。尚、後述する階層的な隠れ変数の変分確率の計算処理部104は、階層的な隠れ変数の変分確率104−6を算出する。また、コンポーネントの最適化処理部105は、推定モデル104−5を算出する。尚、門関数の最適化処理部106の詳細な説明は後述される。本実施形態における門関数は、入力データ111に含まれる情報が所定の条件を満たすか否かを判定する関数である。また、門関数は、階層隠れ構造の内部ノードにおいて設けられる。払出量予測装置700は、ルートノードから最下層におけるノードまでの経路をたどる場合に、門関数に従う判定結果に基づいて、次にたどるノードを決定する。
データ入力装置101は、入力データ111を入力する装置である。データ入力装置101は、学習用データベース300の払出テーブルに記録されたデータに基づいて、所定の時間範囲(たとえば、1時間や6時間等)毎の商品の既知の払出量を示す目的変数を生成する。目的変数は、たとえば、1つの店舗における1つの商品の所定の時間範囲毎の売上数、全店舗における1つの商品の所定の時間範囲毎の売上数、1つの店舗における全商品の所定の時間範囲毎の売上金額等である。また、データ入力装置101は、学習用データベース300の気象テーブル、顧客テーブル、店舗属性テーブル、日時属性テーブル、商品属性テーブル等に記録されたデータに基づいて、目的変数ごとに、当該目的変数に影響を与え得る情報である1つ以上の説明変数を生成する。そして、データ入力装置101は、目的変数と説明変数との複数の組み合わせを、入力データ111として入力する。データ入力装置101は、入力データ111を入力する場合に、観測確率の種類やコンポーネント数の候補等、モデル推定に必要なパラメータを同時に入力する。本実施形態において、データ入力装置101は、学習用データ入力部の一例である。
階層隠れ構造の設定部102は、入力された観測確率の種類やコンポーネント数の候補から、最適化の候補になる階層的な隠れ変数モデルの構造を選択し、設定する。本実施形態で用いられる隠れ構造は、木構造である。以下では、設定されたコンポーネント数をCと表わすとし、説明に用いられる数式は、深さが2の階層的な隠れ変数モデルを対象とするとする。尚、階層隠れ構造の設定部102は、選択された階層的な隠れ変数モデルの構造を内部のメモリに記憶するようにしてもよい。
たとえば、2分木モデル(各分岐ノードから2つに分岐するモデル)、かつ、木構造の深さを2とする場合に、階層隠れ構造の設定部102は、第一階層におけるノードが2つ、第二階層におけるノード(本実施形態では、最下層におけるノード)が4つの階層隠れ構造を選択する。
初期化処理部103は、階層的な隠れ変数モデルを推定するための初期化処理を実施する。初期化処理部103は、初期化処理を任意の方法によって実行可能である。初期化処理部103は、たとえば、観測確率の種類をコンポーネントごとにランダムに設定し、設定された種類にしたがって、各観測確率のパラメータをランダムに設定してもよい。また、初期化処理部103は、階層的な隠れ変数の最下層経路変分確率をランダムに設定してもよい。
階層的な隠れ変数の変分確率の計算処理部104は、階層ごとに経路隠れ変数の変分確率を計算する。ここでは、パラメータθは、初期化処理部103、または、コンポーネントの最適化処理部105および門関数の最適化処理部106によって計算される。そのため、階層的な隠れ変数の変分確率の計算処理部104は、その値に基づいて変分確率を計算する。
階層的な隠れ変数の変分確率の計算処理部104は、周辺化対数尤度関数を完全変数に対する推定量(たとえば、最尤推定量や最大事後確率推定量)に関してラプラス近似し、その下界を最大化することによって変分確率を算出する。以下、このように算出された変分確率を最適化基準Aと呼ぶ。
最適化基準Aを算出する手順を、深さが2の階層的な隠れ変数モデルを例に説明する。周辺化対数尤度は、以下に示す式2で表わされる。
・・・(式2)
ただし、logは、たとえば、自然対数を表す。自然対数の代わりにネイピア数以外の値が底である対数を適用することもできる。以降に示す式においても、同様である。
まず、上記に示す式2で表わされる周辺化対数尤度の下界を考える。式2において、最下層の経路隠れ変数の変分確率q(zn)を最大化することで等号が成立する。ここで、分子の完全変数の周辺化尤度を完全変数に対する最尤推定量を用いてラプラス近似すると、以下の式3に示す周辺化対数尤度関数の近似式が得られる。
式3において、上付きのバーは、完全変数に対する最尤推定量を表わし、D*は、下付きパラメータ*の次元を表す。
次に、最尤推定量が対数尤度関数を最大化する性質と、対数関数が凹関数であることを利用すると、式3の下界は、以下に示す式4のように算出される。
第1層分岐隠れ変数の変分分布q’及び、最下層の経路隠れ変数の変分分布q’’は、それぞれの変分分布について式4を最大化することにより算出される。尚、ここでは、q’’=q{t−1}、θ=θ{t−1}に固定し、q’を式Aに示す値に固定する。
ただし、上付き(t)は、階層的な隠れ変数の変分確率の計算処理部104、コンポーネントの最適化処理部105、門関数の最適化処理部106、及び、最適性の判定処理部107の繰り返し計算におけるt回目の繰り返しを表わす。
次に、図4を参照しながら、階層的な隠れ変数の変分確率の計算処理部104の動作を説明する。
最下層の経路隠れ変数の変分確率の計算処理部104−1は、入力データ111と推定モデル104−5を入力し、最下層の隠れ変数の変分確率q(zN)を算出する。階層設定部104−2は、変分確率を計算する対象が最下層であることを設定する。具体的には、最下層の経路隠れ変数の変分確率の計算処理部104−1は、入力データ111の目的変数と説明変数との組み合わせ毎に、各推定モデル104−5の変分確率を計算する。変分確率の値は、入力データ111に含まれる説明変数を推定モデル104−5に代入することにより得られる解と、入力データ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で算出された最下層の経路隠れ変数の変分確率qtに固定する。さらに、コンポーネントの最適化処理部105は、q’を式Aに示す上層の経路隠れ変数の変分確率に固定する。そして、コンポーネントの最適化処理部105は、式4に示すGの値を最大化するモデルを算出する。
式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+をベルヌーイ分布に基づいて最適化する。これは、非特許文献2に記載されたロジット関数に基づく門関数と異なり、各パラメータが解析解を持つため、より高速な最適化が可能である。
最適性の判定処理部107は、式4を用いて計算される最適化基準Aが収束したか否かを判定する。収束していない場合に、階層的な隠れ変数の変分確率の計算処理部104、コンポーネントの最適化処理部105、門関数の最適化処理部106、および、最適性の判定処理部107による処理が繰り返される。最適性の判定処理部107は、たとえば、最適化基準Aの増分が所定の閾値未満であるときに、最適化基準Aが収束したと判定してもよい。
以降、階層的な隠れ変数の変分確率の計算処理部104、コンポーネントの最適化処理部105、門関数の最適化処理部106および最適性の判定処理部107による処理をまとめて、階層的な隠れ変数の変分確率の計算処理部104から最適性の判定処理部107による処理と記すこともある。階層的な隠れ変数の変分確率の計算処理部104から最適性の判定処理部107による処理が繰り返され、変分分布とモデルが更新されることで、適切なモデルを選択できる。尚、これらの処理を繰り返すことにより、最適化基準Aが単調に増加することが保証される。
最適モデルの選択処理部108は、最適なモデルを選択する。たとえば、階層隠れ構造の設定部102で設定された隠れ状態数Cに対して、階層的な隠れ変数の変分確率の計算処理部104から最適性の判定処理部107による処理で算出される最適化基準Aが、現在設定されている最適化基準Aよりも大きいとする。この場合に、最適モデルの選択処理部108は、そのモデルを最適なモデルとして選択する。
モデル推定結果の出力装置109は、入力された観測確率の種類やコンポーネント数の候補から設定される階層的な隠れ変数モデルの構造の候補についてモデルの最適化を実行する。モデル推定結果の出力装置109は、最適化が完了した場合に、最適な隠れ状態数、観測確率の種類、パラメータ、変分分布等をモデル推定結果112として出力する。一方、最適化が完了していない候補が存在する場合に、階層隠れ構造の設定部102は、上述する処理を実行する。
プログラム(階層的な隠れ変数モデルの推定プログラム)に従って動作するコンピュータの中央演算処理装置(以降、「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は、次に示す処理を行う。すなわち、最適モデルの選択処理部108は、現在設定されている最適なモデル(たとえば、コンポーネントの数、観測確率の種類、パラメータ)による最適化基準Aと、最適なモデルとして現在設定されているモデルによる最適化基準Aの値とを比較する。次に、最適モデルの選択処理部108は、値の大きいモデルを、最適なモデルとして選択する(ステップS107)。
次に、最適モデルの選択処理部108は、推定されていない階層隠れ構造の候補が残っているか否かを判定する(ステップS108)。候補が残っている場合に(ステップS108におけるYes)、ステップS102からステップS108までの処理が繰り返される。一方、候補が残っていない場合に(ステップS108におけるNo)、モデル推定結果の出力装置109は、モデル推定結果112を出力し、処理を完了する(ステップ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の処理が繰り返される。一方、経路隠れ変数が算出されていない層が残っていない場合に、階層的な隠れ変数の変分確率の計算処理部104は、処理を完了する。
次に、本実施形態に係る、門関数の最適化処理部106の動作を説明する。図8は、少なくとも1つの実施形態に係る、門関数の最適化処理部106の動作例を示すフローチャートである。
まず、分岐ノードの情報取得部106−1は、すべての分岐ノードを把握する(ステップS121)。次に、分岐ノードの選択処理部106−2は、最適化の対象とする分岐ノードを1つ選択する(ステップS122)。次に、分岐パラメータの最適化処理部106−3は、選択された分岐ノードにおける分岐パラメータを最適化する(ステップS123)。
次に、全分岐ノードの最適化終了の判定処理部106−4は、最適化されていない分岐ノードが残っているか否かを判定する(ステップS124)。最適化されていない分岐ノードが残っている場合に、ステップS122からステップS123の処理が繰り返される。一方、最適化されていない分岐ノードが残っていない場合に、門関数の最適化処理部106は、処理を完了する。
以上のように、本実施形態によれば、階層隠れ構造の設定部102は、階層隠れ構造を設定する。尚、階層隠れ構造は、隠れ変数が階層構造(木構造)で表わされ、その階層構造の最下層におけるノードに確率モデルを表わすコンポーネントが配された構造である。
そして、階層的な隠れ変数の変分確率の計算処理部104は、経路隠れ変数の変分確率(すなわち、最適化基準A)を計算する。階層的な隠れ変数の変分確率の計算処理部104は、階層構造の階層ごとに隠れ変数の変分確率を最下層におけるノードから順に計算してもよい。また、階層的な隠れ変数の変分確率の計算処理部104は、周辺化対数尤度を最大化するように変分確率を計算してもよい。
そして、コンポーネントの最適化処理部105は、算出された変分確率に対してコンポーネントを最適化する。門関数の最適化処理部106は、階層隠れ構造のノードにおける隠れ変数の変分確率に基づいて門関数を最適化する。尚、門関数は、階層隠れ構造のノードにおいて多変量データ(たとえば、説明変数)に応じた分岐方向を決定するモデルである。
以上のような構成によって多変量データに対する階層的な隠れ変数モデルを推定するため、理論的正当性を失うことなく適切な計算量で階層的な隠れ変数を含む階層的な隠れ変数モデルを推定できる。また、階層的な隠れ変数モデルの推定装置100を用いることにより、コンポーネントを分ける適切な基準を人手で設定する必要がなくなる。
また、階層隠れ構造の設定部102は、隠れ変数が、たとえば、2分木構造で表わされる階層隠れ構造を設定する。門関数の最適化処理部106は、ノードにおける隠れ変数の変分確率に基づいて、ベルヌーイ分布を基とした門関数を最適化してもよい。この場合に、各パラメータが解析解を持つため、より高速な最適化が可能になる。
これらの処理によって、階層的な隠れ変数モデルの推定装置100は、気温が低い時や高い時に売れるパターン、午前や午後に売れるパターン、週明けや週末に売れるパターン等にコンポーネントを分離できる。
本実施形態に係る払出量予測装置について説明する。図9は、少なくとも1つの実施形態に係る払出量予測装置が有する構成例を示すブロック図である。
払出量予測装置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を代入することにより、払出量を予測する。
予測結果出力装置705は、払出量予測部704が予測した払出量に関する予測結果712を出力する。
次に、本実施形態に係る払出量予測装置の動作を説明する。図10は、少なくとも1つの実施形態に係る払出量予測装置の動作例を示すフローチャートである。
まず、データ入力装置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で表わすことができる。
すなわち、経路除去の判定処理部201−2は、各コンポーネントにおける最下層の経路隠れ変数の変分確率q(zij n)が式5に表わされる基準を満たすか否かを判定する。言い換えると、経路除去の判定処理部201−2は、サンプル和が十分小さいか否かを判定しているとも言える。
経路除去の実行処理部201−3は、サンプル和が十分小さいと判定された経路の変分確率を0とする。そして、経路除去の実行処理部201−3は、残りの経路(すなわち、0にしなかった経路)に対して正規化した最下層の経路隠れ変数の変分確率に基づき、各階層での階層的な隠れ変数の変分確率104−6を再計算し、出力する。
この処理の正当性を説明する。以下に例示する式6は、繰り返し最適化におけるq(zij n)の更新式である。
式6において、指数部に負の項が含まれ、その前の処理で算出された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の処理が繰り返される。
一方、ステップS106において、最適化基準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は、第3の実施形態の門関数の最適化処理部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は、有効な分岐ノードに関する各分岐パラメータの最適化を並列に処理する。よって、門関数の最適化処理を並行して行うことができるため、上述する実施形態の効果に加え、より高速なモデル推定が可能になる。
《第4の実施形態》
次に、本発明の第4の実施形態について説明する。
第4の実施形態に係る払出量予測システムは、発注管理の対象となる対象店舗についての商品の払出量の予測に基づいて、当該対象店舗の発注管理を行う。具体的には、払出量予測システムは、商品を発注するタイミングで、当該商品の払出量の予測に基づいて発注量を決定する。第4の実施形態に係る払出量予測システムは、発注量決定システムの一例である。
図17は、少なくとも1つの実施形態に係る払出量予測装置の構成例を示すブロック図である。本実施形態に係る払出量予測システムは、払出量予測システム10と比較して、払出量予測装置700が払出量予測装置800に置き換わっている。払出量予測装置800は、発注量予測装置の一例である。
払出量予測装置800は、第1の実施形態の構成に加え、さらに分類部806、クラスタ推定部807、安全量算出部808、及び、発注量決定部809を備える。また、払出量予測装置800は、第1の実施形態と比べて、モデル取得部802、コンポーネント決定部803、払出量予測部804、及び、予測結果出力装置805の動作が異なる。
分類部806は、学習用データベース300の店舗属性テーブルから複数の店舗の店舗属性を取得し、当該店舗属性に基づいて店舗をクラスタに分類する。分類部806は、たとえば、k−meansアルゴリズムや階層的クラスタリングの各種アルゴリズム等に従いクラスタに分類する。k−meansアルゴリズムは、ランダムに生成されたクラスタに各個体を分類し、分類された個体の情報に基づいてクラスタの中心を更新する処理を繰り返し実行することにより、個体をクラスタリングするアルゴリズムである。
クラスタ推定部807は、分類部806による分類結果に基づいて払出量の予測対象となる店舗がいずれのクラスタに属するかを推定する。
安全量算出部808は、コンポーネント決定部803が決定したコンポーネントの推定誤差に基づいて在庫の安全量を算出する。ここで、安全量は、たとえば、在庫量がなくなる可能性が低い在庫量を表す。
発注量決定部809は、対象店舗における商品の在庫量と、払出量予測部804が予測した商品の払出量と、安全量算出部808が算出した安全量とに基づいて、発注量を決定する。
本実施形態に係る払出量予測システムの動作について説明する。
まず、階層的な隠れ変数モデルの推定装置100は、店舗毎かつ商品毎かつ時間帯毎に、当該時間帯に当該店舗における当該商品の払出量を予測する基礎となる門関数及びコンポーネントを推定する。本実施形態では、階層的な隠れ変数モデルの推定装置100は、1日を24等分した各時間帯(すなわち1時間ごとの時間帯)について、門関数及びコンポーネントを推定する。本実施形態では、階層的な隠れ変数モデルの推定装置100は、第1の実施形態に示す方法により門関数及びコンポーネントを算出する。尚、他の実施形態では、階層的な隠れ変数モデルの推定装置100は、第2の実施形態に示す方法や第3の実施形態に示す方法で門関数及びコンポーネントを算出してもよい。
本実施形態では、階層的な隠れ変数モデルの推定装置100は、推定した各コンポーネントに関する予測誤差の散布度を算出する。予測誤差の散布度としては、たとえば、予測誤差の標準偏差、分散、範囲や、予測誤差率の標準偏差、分散、範囲等が挙げられる。たとえば、予測誤差は、推定モデル104−5(コンポーネント)により算出される目的変数の値と、コンポーネント(推定モデル104−5)を生成する場合に参照する目的変数の値との差として算出することができる。
階層的な隠れ変数モデルの推定装置100は、推定した門関数と、コンポーネントと、該コンポーネントに関する予測誤差の散布度とを、モデルデータベース500に記録する。
モデルデータベース500に門関数、コンポーネント及び各コンポーネントについての予測誤差の散布度が記録されると、払出量予測装置800は、発注量を予測する処理を開始する。
図18A及び図18Bは、少なくとも1つの実施形態に係る払出量予測装置の動作例を示すフローチャートである。
払出量予測装置800におけるデータ入力装置701は、入力データ711を入力する(ステップS141)。具体的には、データ入力装置701は、対象店舗の店舗属性及び日時属性、対象店舗で取り扱っている各商品の商品属性、現在時刻から今回の発注の次に発注した商品が対象店舗に受け入れられる時刻までにおける気象等を、入力データ711として入力する。本実施形態では、今回発注した商品が対象店舗に受け入れられる時刻を「第1の時刻」と表す。すなわち、第1の時刻は、未来の時刻である。また、今回の発注の次に発注する商品が対象店舗に受け入れられる時刻を「第2の時刻」と表す。また、データ入力装置701は、対象店舗の現在時刻における在庫量及び現在時刻から第1の時刻までの商品の受入量を入力する。
次に、モデル取得部802は、対象店舗が新規店舗であるか否かを判定する(ステップS142)。たとえば、モデル取得部802は、モデルデータベース500に、対象店舗に関する門関数、コンポーネント及び予測誤差の散布度に関する情報が記録されていない場合に、対象店舗が新規店舗であると判定する。また、たとえば、モデル取得部802は、学習用データベース300の払出テーブルの中に、対象店舗の店舗IDに関連付けされた情報が無い場合に、対象店舗が新規店舗であると判定する。
モデル取得部802は、対象店舗が既設店舗であると判定する場合(ステップS142:NO)に、モデルデータベース500から、対象店舗に関する門関数、コンポーネント及び予測誤差の散布度を取得する(ステップS143)。次に、払出量予測装置800は、入力データ711を1つずつ選択し、選択した入力データ711について、以下に示すステップS145乃至ステップS146の処理を実行する(ステップS144)。すなわち、払出量予測装置800は、対象店舗が取り扱う商品毎かつ現在時刻から第2の時刻までの1時間毎について、ステップS145乃至ステップS146の処理を実行する。
まず、コンポーネント決定部803は、階層隠れ構造に含まれる根ノードから最下層におけるノードまで、モデル取得部802が取得した門関数に基づいてノードをたどることにより、払出量の予測に用いるコンポーネントを決定する(ステップS145)。次に、払出量予測部804は、ステップS144において選択した入力データ711を、当該コンポーネントの入力として値を設定することにより、払出量を予測する(ステップS146)。
他方、モデル取得部802が、対象店舗が新規店舗であると判定する場合に(ステップS142:YES)、分類部806は、学習用データベース300の店舗属性テーブルから、複数の店舗の店舗属性を読み取る。次に、分類部806は、当該店舗属性に基づいて、店舗をクラスタに分類する(ステップS147)。尚、分類部806は、対象店舗を含めてクラスタに分類してもよい。次に、クラスタ推定部807は、分類部806による分類結果に基づき、対象店舗が属する特定のクラスタを推定する(ステップS148)。
次に、払出量予測装置800は、入力データ711を1つずつ選択し、選択した入力データ711について、以下に示すステップS150乃至ステップS154の処理を実行する(ステップS149)。
払出量予測装置800は、該特定のクラスタに属する既設店舗を1つずつ選択し、選択した既設店舗について、以下に示すステップS151乃至ステップS153の処理を実行する(ステップS150)。
まず、モデル取得部802は、モデルデータベース500からステップS150で選択した既設店舗に関する門関数、コンポーネント及び予測誤差の散布度を読み取る(ステップS151)。次に、コンポーネント決定部803は、モデル取得部802が読み取った門関数に基づき、階層隠れ構造の根ノードから最下層におけるノードまで、ノードをたどることで、払出量の予測に用いるコンポーネントを決定する(ステップS152)。すなわち、この場合に、コンポーネント決定部803は、該門関数を入力データ711に含まれる情報に適用することにより、コンポーネントを決定する。次に、払出量予測部804は、ステップS151で選択した入力データ711を、当該コンポーネントの入力として値を設定することにより、払出量を予測する(ステップS153)。
すなわち、ステップS151乃至ステップS153の処理を、対象店舗が属するクラスタ内の全ての既設店舗について実行する。これにより、特定のクラスタに属する既設店舗に関して、当該商品の払出量が予測される。
次に、払出量予測部804は、対象店舗における当該商品の払出量の予測値として、商品ごとに当該商品の各店舗における払出量の平均値を算出する(ステップS154)。これにより、払出量予測装置800は、過去の払出量の情報が蓄積されていない新規店舗についても、商品の払出量を予測する。
払出量予測装置800が、全ての入力データ711についてステップS145乃至ステップS146の処理、またはステップS149乃至ステップS154の処理を実行すると、発注量決定部809は、第1の時刻における商品の在庫量を推定する(ステップS155)。具体的には、発注量決定部809は、データ入力装置701が入力した対象店舗の現在時刻における商品の在庫量と、現在時刻から第1の時刻までの商品の受入量との和を算出する。次に、発注量決定部809は、算出した和から、払出量予測部804が予測した現在時刻から第1の時刻までの商品の予測払出量の総和を減算することにより、第1の時刻における商品の在庫量を推定する。
次に、発注量決定部809は、推定した第1の時刻における商品の在庫量に、払出量予測部804が予測した第1の時刻から第2の時刻までの商品の予測払出量の総和を加算することにより、当該商品の基準発注量を算出する(ステップS156)。
次に、安全量算出部808は、ステップS145またはステップS152で階層的な隠れ変数モデルの推定装置100が決定したコンポーネントの予測誤差の散布度を、モデル取得部802から読み取る(ステップS157)。次に、安全量算出部808は、取得した予測誤差の散布度に基づいて、当該商品の安全量を算出する(ステップS158)。予測誤差の散布度が予測誤差の標準偏差である場合に、安全量算出部808は、たとえば、当該標準偏差の総和に所定の係数を乗じることにより、安全量を算出することができる。また、予測誤差の散布度が予測誤差率の標準偏差である場合に、安全量算出部808は、たとえば、第1の時刻から第2の時刻までの予測払出量の総和に当該標準偏差の平均値及び所定の係数を乗じることにより、安全量を算出することができる。
そして、発注量決定部809は、ステップS156にて算出される基準発注量に、ステップS158にて算出される安全量を加算することにより、当該商品の発注量を決定する(ステップS159)。予測結果出力装置705は、発注量決定部809が決定した発注量812を出力する(ステップS160)。このように、払出量予測装置800は、門関数に基づき適切なコンポーネントを選択することにより、適切な発注量を決定することができる。
以上のように、本実施形態によれば、払出量予測装置800は、対象店舗が新規店舗であるか既存店舗であるかに関わらず、精度よく払出量を予測し、また適切な発注量を決定することができる。これは、払出量予測装置800が、対象店舗に類似する(または、一致する)既存店舗を選び、該既存店舗に関する門関数等に基づいて、払出量を決定するからである。
尚、本実施形態では、払出量予測部804が、既存店舗の現在時刻から第2の時刻までの払出量の予測に用いるコンポーネントに基づいて、新規店舗の払出量を予測する場合について説明したが、これに限られない。たとえば、他の実施形態では、払出量予測部804が、既存店舗の新規開店時における商品の売上データに基づいて学習されたコンポーネントに基づいてもよい。この場合に、払出量予測部804は、より精度よく、払出量を予測することができる。
また、本実施形態では、払出量予測部804が、新規店舗である対象店舗の払出量を予測する場合に、対象店舗と同じクラスタの既存店舗の予測払出量の平均値を算出する場合について説明したが、これに限られない。たとえば、他の実施形態では、払出量予測部804は、対象店舗と既存店舗との類似度に応じた重み付けをし、該重み付けに基づき、重み付き平均値を算出してもよい。また、払出量予測部804は、中央値や最大値等、他の代表値を用いて、払出量を算出してもよい。
また、本実施形態では、対象店舗が新規店舗であるときに、既設店舗のモデルに基づいて払出量を予測する場合について説明したが、これに限られない。たとえば、他の実施形態では、対象店舗が既設店舗である場合であっても、払出量予測部804は、対象店舗で新たに取り扱いを始める商品について、対象店舗と同じクラスタの既設店舗のモデルに基づいて払出量を予測してもよい。
また、本実施形態では、第2の時刻が、今回の発注の次に発注した商品が対象店舗に受け入れられる時刻である場合について説明したが、これに限られない。たとえば、他の実施形態では、商品に賞味期限や消費期限等の販売期限が設けられている場合に、払出量予測装置800は、今回発注した商品の販売期限を第2の時刻として発注量の決定を行ってもよい。これにより、払出量予測装置800は、商品の販売期限が経過することによる在庫ロスが発生しないように、発注量を決定することができる。また、他の実施形態では、払出量予測装置800は、今回の発注の次に発注した商品が対象店舗に受け入れられる時刻と今回発注した商品の販売期限のうち早い方の時刻を第2の時刻として発注量の決定を行ってもよい。
また、本実施形態では、販売機会損失が生じないように、払出量予測装置800が基準発注量と安全量とを加算した量を発注量とする場合について説明したが、これに限られない。たとえば、他の実施形態では、在庫余りの防止を目的として、払出量予測装置800は、基準発注量から予測誤差の散布度に応じた量を減算した量を発注量としてもよい。
《第5の実施形態》
次に、払出量予測システムの第5の実施形態について説明する。
図19は、少なくとも1つの実施形態に係る払出量予測装置の構成例を示すブロック図である。本実施形態に係る払出量予測システムは、第4の実施形態に係る払出量予測システムと比較して、払出量予測装置800が払出量予測装置820に置き換わった構成を有する。払出量予測装置820は、払出量予測装置800と比較して、分類部806が分類部826に置き換わり、クラスタ推定部807がクラスタ推定部827に置き換わった構成を有する。
分類部826は、払出量に係る情報に基づいて、既設店舗を複数のクラスタに分類する。分類部826は、k−meansアルゴリズムや階層的クラスタリングの各種アルゴリズム等により、既設店舗をクラスタに分類する。たとえば、分類部826は、モデル取得部802が取得したコンポーネントを表す係数等(学習結果のモデル)に基づいて、既存店舗をクラスタに分類する。コンポーネントは、既設店舗における払出量を算出するための情報である。つまり、分類部826は、複数の既存店舗を、当該既設店舗の学習結果のモデルの類似性に基づいて複数のクラスタに分類する。これにより、同じクラスタにおける店舗ごとの払出傾向のばらつきが少なくなる。
クラスタ推定部827は、分類部826が分類したクラスタと、店舗属性とを関連付ける関係を推定する。
説明の便宜上、クラスタは、一意にクラスタを識別可能なクラスタ識別子に関連付けされているとする。
上述した処理において、クラスタ推定部827は、入力として、店舗属性(すなわち、説明変数)と、クラスタ識別子(すなわち、目的変数)を受け取り、説明変数と目的変数とを関連付ける関数を推定する。クラスタ推定部827は、たとえば、c4.5決定木アルゴリズムや、サポートベクターマシン等の教師あり学習手順に従い、該関数を推定する。クラスタ推定部827は、新規店舗の店舗属性と、推定した関係とに基づいて、当該新規店舗に関するクラスタ識別子を推定する。すなわち、クラスタ推定部827は、当該新規店舗が属する特定のクラスタを推定する。
これにより、本実施形態によれば、払出量予測装置820は、新規店舗と払出傾向が類似(または、一致)すると推定される既設店舗のクラスタに基づいて、商品の払出量の予測をすることができる。
尚、本実施形態では、分類部826が、モデル取得部802が取得したコンポーネントの係数等に基づいて既存店舗をクラスタに分類する場合について説明したが、これに限られない。たとえば、他の実施形態では、分類部826は、学習用データベース300の払出テーブルが記憶する情報から、既設店舗における商品カテゴリ(たとえば、文具、飲料等)ごとの顧客あたりの払出率(たとえば、PI(Purchase_Index)値等)を算出し、当該払出率に基づいて、既存店舗をクラスタに分類してもよい。
《第6の実施形態》
次に、払出量予測システムの第6の実施形態について説明する。
図20は、少なくとも1つの実施形態に係る払出量予測システムの構成例を示すブロック図である。本実施形態に係る払出量予測システム20は、第5の実施形態に係る払出量予測システムに商品推薦装置900をさらに備える。
図21は、少なくとも1つの実施形態に係る商品推薦装置の構成例を示すブロック図である。
商品推薦装置900は、モデル取得部901と、分類部902と、払出量取得部903と、評価値算出部904と、商品推薦部905と、推薦結果出力装置906とを備える。
モデル取得部901は、モデルデータベース500から、店舗ごとにコンポーネントを取得する。
分類部902は、モデル取得部901が取得したコンポーネントの係数等に基づいて既設店舗を複数のクラスタに分類する。
払出量取得部903は、学習用データベース300の払出テーブルから、推薦の対象となる対象店舗と同じクラスタに属する店舗が取り扱う各商品の払出量を取得する。尚、推薦の対象となる対象店舗と同じクラスタに属する店舗には、対象店舗も含まれる。
評価値算出部904は、分類部902によって対象店舗と同じクラスタに分類された店舗が取り扱う商品の評価値を算出する。評価値は、払出量及び取り扱い店舗数に応じて増加(単調増加)する値である。評価値としては、たとえば、PI値と取り扱い店舗数の積や、正規化したPI値と正規化した取り扱い店舗数の和等に求めることができる。
図22は、クラスタにおける商品の売上傾向の例を示す図である。
複数の店舗において取り扱われる商品は、PI値と取り扱い店舗数とに基づいて、図22に示すように分類することができる。図22の横軸は取り扱い店舗数を示し、縦軸はPI値を示す。図22の左上の領域であるA−1からA−2まで、または、B−1からB−2までに相当する商品は、比較的売れ筋の商品であることが分かる。他方、右上の領域であるA−4からA−5まで、または、B−4からB−5までに相当する商品は、一部店舗での売れ筋の商品であることが分かる。すなわち、当該領域に相当する商品は、万人受けする商品であるとは限らない。また、下方の領域であるD−1からD−5まで、または、E−1からE−5までは、死に筋の商品であることが分かる。
評価値算出部904は、払出量及び取り扱い店舗数に応じて増加する値を評価値として算出する。たとえば、評価値は、PI値に所定の係数を乗じた値と取扱店舗率に所定の係数を乗じた値の和によって表すことができる。取扱店舗率は、取扱店舗数を総店舗数で除算した値である。そのため、図22において左上の領域に相当する商品ほど評価値が高くなり、右下の領域に相当する商品ほど評価値が低くなる。したがって、評価値が高いほど、その商品が売れ筋であることが分かる。
商品推薦部905は、対象店舗が取り扱う商品のうち、払出量取得部903が取得した払出量が所定の閾値以下である商品について、当該商品との入れ替えを推薦する商品を決定する。具体的には、商品推薦部905は、払出量が少ない商品を、当該商品より評価値が高い商品に入れ替えることを推薦する。本実施形態では、商品推薦部905は、たとえば、払出量取得部903が取得した払出量が全体の下位20%となる商品について、入れ替えを推薦する。
推薦結果出力装置906は、商品推薦部905が出力した情報に関する推薦結果911を出力する。
図23は、少なくとも1つの実施形態に係る商品推薦装置の動作例を示すフローチャートである。
まず、モデル取得部901は、モデルデータベース500からすべての既設店舗のコンポーネントを取得する(ステップS401)。次に、分類部902は、モデル取得部901が取得したコンポーネントの係数に基づいて、既設店舗を複数のクラスタに分類する(ステップS402)。たとえば、分類部902は、該コンポーネント係数を用いて既設店舗における類似度を算出する。
次に、払出量取得部903は、対象店舗と同じクラスタに属する既設店舗が取り扱う商品の払出量を、学習用データベース300から取得する(ステップS403)。次に、評価値算出部904は、払出量取得部903が払出量を取得した各商品について、評価値を算出する(ステップS404)。次に、商品推薦部905は、払出量取得部903が取得した払出量に基づいて、払出量が所定の閾値より低い商品(全商品の下位20%に相当する商品)を特定する(ステップS405)。
商品推薦部905は、たとえば、払出量が下位20%に相当する商品について、当該商品と同じカテゴリの商品であって、当該商品より評価値が高い商品を、当該商品との入れ替えを推薦する商品に決定する(ステップS406)。そして、推薦結果出力装置906は、商品推薦部905による推薦結果911を出力する(ステップS407)。対象店舗の管理者等は、推薦結果911に基づいて対象店舗の取扱商品を決定する。そして、払出量予測装置810は、推薦結果911に基づいて決定された取扱商品について、第1から第5の実施形態に示す払出量の予測処理や、発注量の決定処理を行う。
このように、本実施形態によれば、商品推薦装置900は、一部の店舗でのみ売れ行きがよい商品ではなく、多くの店舗で売れ筋となっている商品を推薦することができる。
尚、本実施形態では、商品推薦装置900は、既設店舗が取り扱っている商品と入れ替えるべき商品を推薦する場合について説明したが、これに限られない。たとえば、他の実施形態では、商品推薦装置900は、既設店舗に追加導入すべき商品を推薦してもよい。またたとえば、他の実施形態では、商品推薦装置900は、新規店舗が取り扱うべき商品を推薦してもよい。
また、本実施形態では、分類部902が、モデルデータベース500が記憶するコンポーネントに基づいてクラスタに分類する場合について説明したが、これに限られない。たとえば、他の実施形態では、分類部902は、店舗属性に基づいてクラスタリングを行ってもよい。また、たとえば、他の実施形態では、分類部902は、商品のカテゴリごとのPI値に基づいてクラスタリングを行ってもよい。
また、本実施形態では、評価値算出部904が、払出量及び取扱店舗数を基に評価値を算出する場合について説明したが、これに限られない。たとえば、他の実施形態では、評価値算出部904は、数回前までの推薦時の評価値を商品ごとに記憶しておき、その値の変化に基づいて、現在の評価値を更新してもよい。すなわち、評価値算出部904は、たとえば、払出量及び取扱店舗数に基づいて算出された主評価値に、主評価値と過去の評価値との差に所定の係数を乗じた補正値を加算することにより更新してもよい。たとえば、評価値は、式Bに従い算出することができる。
評価値=主評価値+a1×(主評価値−1回前の評価値)+a2×(主評価値−2回前の評価値)+……+an×(主評価値−n回前の評価値)・・・(式B)、
ただし、係数a1乃至anは、予め定められた値である。
《基本構成》
次に、商品推薦装置の基本構成について説明する。図24は、商品推薦装置の基本構成を示すブロック図である。
商品推薦装置は、評価値算出部90と、商品推薦部91とを備える。
評価値算出部90は、複数の店舗で取り扱われている複数の商品について、払出量及び取り扱い店舗数に応じて増加(単調増加)する評価値を算出する。評価値算出部90の例として、評価値算出部904が挙げられる。
商品推薦部91は、店舗が取り扱う商品より評価値が高い商品を推薦する。商品推薦部91の例として、商品推薦部905が挙げられる。
そのような構成により、商品推薦装置は、一部の店舗でのみ売れ行きがよい商品ではなく、多くの店舗で売れ筋となっている商品を推薦することができる。
図25は、少なくとも1つの実施形態に係るコンピュータが有する構成を示すブロック図である。
コンピュータ1000は、CPU1001と、主記憶装置1002と、補助記憶装置1003と、インタフェース1004とを備える。
上述の階層的な隠れ変数モデルの推定装置や払出量予測装置は、それぞれコンピュータ1000に実装される。尚、階層的な隠れ変数モデルの推定装置が実装されたコンピュータ1000と払出量予測装置が実装されたコンピュータ1000は異なってもよい。そして、上述した各処理部の動作は、プログラム(階層的な隠れ変数モデルの推定プログラムや払出量予測プログラム)の形式で補助記憶装置1003に記憶されている。CPU1001は、プログラムを補助記憶装置1003から読み出して主記憶装置1002に展開し、当該プログラムに従って上記処理を実行する。
尚、少なくとも1つの実施形態において、補助記憶装置1003は、一時的でない有形の媒体の一例である。一時的でない有形の媒体の他の例としては、インタフェース1004を介して接続される磁気ディスク、光磁気ディスク、CD(Compact Disc)−ROM(Read Only Memory)、DVD(Digital Versatile Disk)−ROM、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ1000に配信される場合に、配信を受けたコンピュータ1000が当該プログラムを主記憶装置1002に展開し、上記処理を実行してもよい。
また、当該プログラムは、前述した機能の一部を実現してもよい。さらに、当該プログラムは、前述した機能を補助記憶装置1003に既に記憶されている他のプログラムとの組み合わせで実現するプログラム、いわゆる差分ファイル(差分プログラム)であってもよい。
以上、上述した実施形態を模範的な例として本発明を説明した。しかし、本発明は、上述した実施形態には限定されない。すなわち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
この出願は、2013年9月20日に出願された日本出願特願2013−195966を基礎とする優先権を主張し、その開示の全てをここに取り込む。