(57)【特許請求の範囲】
【請求項１】
複数の商品の払出に関するデータが格納されているデータベースから当該商品の払出量を含むデータを主記憶装置に読み取り、読み取ったデータに基づき前記複数の店舗のうち前記商品を取り扱っている取り扱い店舗数を算出し、前記払出量及び算出した前記店舗数に基づいて算出する主評価値に、当該主評価値と過去の評価値との差に所定の係数を乗じた補正値を加算することによって前記商品ごとに評価値を算出する評価値算出手段と、
前記複数の商品のうち、前記評価値が所定の閾値よりも高い商品を推薦する商品推薦手段と
を備え、
前記評価値算出手段は、評価対象商品に関する前記払出量と前記取り扱い店舗数とが増加するほど、当該評価対象商品の評価値が高くなるよう算出する
商品推薦装置。
【請求項２】
前記データベースから、対象店舗が含まれている前記複数の店舗における各店舗に関する店舗属性を読み取り、読み取った前記店舗属性に、所定のクラスタリングアルゴリズムを適用することによって、前記複数の店舗を複数のクラスタに分類する分類手段
をさらに備え、
前記評価値算出手段は、前記複数のクラスタのうちの前記対象店舗が属しているクラスタに分類された店舗に関して、前記払出量と、前記取り扱い店舗数とを算出する
請求項１に記載の商品推薦装置。
【請求項３】
対象店舗を含む複数の店舗に関する払出量を予測するコンポーネントをデータベースから取得し、取得したコンポーネントに含まれている係数に基づき、前記複数の店舗を複数のクラスタに分類する分類手段
をさらに備え、
前記評価値算出手段は、前記複数のクラスタのうちの前記対象店舗が属しているクラスタに分類された店舗に関して、前記払出量と、前記取り扱い店舗数とを算出する
請求項１に記載の商品推薦装置。
【請求項４】
前記商品推薦手段は、算出した前記払出量が所定の閾値以下である第１商品と、前記評価値が所定の基準を満たしている第２商品とを特定し、特定した前記第１商品を、特定した前記第２商品に入れ替えることを推奨することを表す推薦結果を決定する
請求項１から請求項３の何れか１項に記載の商品推薦装置。
【請求項５】
情報処理装置によって、
複数の商品の払出に関するデータが格納されているデータベースから当該商品の払出量を含むデータを主記憶装置に読み取り、読み取ったデータに基づき前記複数の店舗のうち前記商品を取り扱っている取り扱い店舗数を算出し、前記払出量及び算出した前記店舗数に基づいて算出する主評価値に、当該主評価値と過去の評価値との差に所定の係数を乗じた補正値を加算することによって前記商品ごとに評価値を算出し、
前記複数の商品のうち、前記評価値が所定の閾値よりも高い商品を推薦する
方法であって、
前記評価値を算出する処理において、評価対象商品に関する前記払出量と前記取り扱い店舗数とが増加するほど、当該評価対象商品の評価値が高くなるよう算出する
商品推薦方法。
【請求項６】
複数の商品の払出に関するデータが格納されているデータベースから当該商品の払出量を含むデータを主記憶装置に読み取り、読み取ったデータに基づき前記複数の店舗のうち前記商品を取り扱っている取り扱い店舗数を算出し、前記払出量及び算出した前記店舗数に基づいて算出する主評価値に、当該主評価値と過去の評価値との差に所定の係数を乗じた補正値を加算することによって前記商品ごとに評価値を算出する評価値算出機能と、
前記複数の商品のうち、前記評価値が所定の閾値よりも高い商品を推薦する商品推薦機能と
をコンピュータに実行させ、
前記評価値算出機能において、評価対象商品に関する前記払出量と前記取り扱い店舗数とが増加するほど、当該評価対象商品の評価値が高くなるよう算出する
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、商品推薦装置、商品推薦方法、及び、記録媒体に関する。
【背景技術】
【０００２】
非特許文献１に開示されるように、ＡＢＣ分析は、店舗が取り扱うべき商品を推薦する技術の１つである。ＡＢＣ分析においては、売上に基づいて、店舗が取り扱う商品を順位付け、該順位づけに基づいて在庫管理や新商品の推薦を行う手法である。【０００３】
非特許文献２は、隠れ変数モデルの代表例である混合モデルに対して、完全周辺尤度関数を近似し、該完全周辺尤度関数の下界（下限）を最大化することにより、観測確率の種類を決定する方法を開示する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４１３９４１０号公報
【特許文献２】特開２０１０−１２８７７９号公報
【特許文献３】国際公開第２０１２／１２８２０７号
【非特許文献】
【０００５】
【非特許文献１】“ＡＢＣ  ａｎａｌｙｓｉｓ”、［ｏｎｌｉｎｅ］、ウィキペディア、［２０１３年９月１９日検索］、インターネット〈ＵＲＬ：  ｈｔｔｐ：／／ｅｎ．ｗｉｋｉｐｅｄｉａ．ｏｒｇ／ｗｉｋｉ／ＡＢＣ＿ａｎａｌｙｓｉｓ〉
【非特許文献２】Ｒｙｏｈｅｉ  Ｆｕｊｉｍａｋｉ，  Ｓａｔｏｓｈｉ  Ｍｏｒｉｎａｇａ：  Ｆａｃｔｏｒｉｚｅｄ  Ａｓｙｍｐｔｏｔｉｃ  Ｂａｙｅｓｉａｎ  Ｉｎｆｅｒｅｎｃｅ  ｆｏｒ  Ｍｉｘｔｕｒｅ  Ｍｏｄｅｌｉｎｇ．  Ｐｒｏｃｅｅｄｉｎｇｓ＿ｏｆ＿ｔｈｅ＿ｆｉｆｔｅｅｎｔｈ＿ｉｎｔｅｒｎａｔｉｏｎａｌ＿ｃｏｎｆｅｒｅｎｃｅ＿ｏｎ＿Ａｒｔｉｆｉｃｉａｌ＿Ｉｎｔｅｌｌｉｇｅｎｃｅ＿ａｎｄ＿Ｓｔａｔｉｓｔｉｃｓ  （ＡＩＳＴＡＴＳ），  Ｍａｒｃｈ  ２０１２．
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＡＢＣ分析は、たとえば、複数の店舗において取り扱う商品に関する品揃えを推薦する場合に、取り扱う店舗が少なく、一部の店舗においてのみ売れ行きが良い商品を推薦するという課題を有する。【０００７】
そこで、本発明の主たる目的は、上述した課題を解決する、商品推薦装置、商品推薦方法、及び、記録媒体等を提供することである。
【課題を解決するための手段】
【０００８】
第１の態様は、店舗で取り扱うべき商品を推薦する商品推薦装置であって、複数の店舗で取り扱われている複数の商品について、払出量及び取り扱い店舗数に応じて増加する評価値を算出する評価値算出部と、推薦対象の店舗が取り扱う商品より前記評価値が高い商品を推薦する商品推薦部とを備える商品推薦装置である。【０００９】
また、第２の態様は、店舗で取り扱うべき商品を推薦する商品推薦方法であって、複数の店舗で取り扱われている複数の商品について、払出量及び取り扱い店舗数に応じて増加する評価値を算出し、推薦対象の店舗が取り扱う商品より前記評価値が高い商品を推薦する商品推薦方法である。【００１０】
また、第３の態様は、複数の店舗で取り扱われている複数の商品について、払出量及び取り扱い店舗数に応じて増加する評価値を算出する評価値算出機能と、推薦対象の店舗が取り扱う商品より前記評価値が高い商品を推薦する商品推薦機能とをコンピュータに実行させるプログラム、或いは、そのプログラムが格納された、コンピュータ読み取り可能な記録媒体である。
【発明の効果】
【００１１】
上記態様によれば、一部の店舗でのみ売れ行きが良い商品ではなく、多くの店舗で売れ筋となっている商品を推薦することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の少なくとも１つの実施形態に係る払出量予測システムの構成例を示すブロック図である。
【図２Ａ】本発明の少なくとも１つの実施形態に係る学習用データベースが記憶する情報の例を示す図である。
【図２Ｂ】本発明の少なくとも１つの実施形態に係る学習用データベースが記憶する情報の例を示す図である。
【図２Ｃ】本発明の少なくとも１つの実施形態に係る学習用データベースが記憶する情報の例を示す図である。
【図２Ｄ】本発明の少なくとも１つの実施形態に係る学習用データベースが記憶する情報の例を示す図である。
【図２Ｅ】本発明の少なくとも１つの実施形態に係る学習用データベースが記憶する情報の例を示す図である。
【図２Ｆ】本発明の少なくとも１つの実施形態に係る学習用データベースが記憶する情報の例を示す図である。
【図２Ｇ】本発明の少なくとも１つの実施形態に係る学習用データベースが記憶する情報の例を示す図である。
【図３】本発明の少なくとも１つの実施形態に係る、階層的な隠れ変数モデルの推定装置の構成例を示すブロック図である。
【図４】本発明の少なくとも１つの実施形態に係る、階層的な隠れ変数の変分確率の計算処理部の構成例を示すブロック図である。
【図５】本発明の少なくとも１つの実施形態に係る、門関数の最適化処理部の構成例を示すブロック図である。
【図６】本発明の少なくとも１つの実施形態に係る、階層的な隠れ変数モデルの推定装置の動作例を示すフローチャートである。
【図７】本発明の少なくとも１つの実施形態に係る、階層的な隠れ変数の変分確率の計算処理部の動作例を示すフローチャートである。
【図８】本発明の少なくとも１つの実施形態に係る、門関数の最適化処理部の動作例を示すフローチャートである。
【図９】本発明の少なくとも１つの実施形態に係る払出量予測装置の構成例を示すブロック図である。
【図１０】本発明の少なくとも１つの実施形態に係る払出量予測装置の動作例を示すフローチャートである。
【図１１】本発明の少なくとも１つの実施形態に係る、階層的な隠れ変数モデルの推定装置の構成例を示すブロック図である。
【図１２】本発明の少なくとも１つの実施形態に係る、階層隠れ構造の最適化処理部の構成例を示すブロック図である。
【図１３】本発明の少なくとも１つの実施形態に係る、階層的な隠れ変数モデルの推定装置の動作例を示すフローチャートである。
【図１４】本発明の少なくとも１つの実施形態に係る、階層隠れ構造の最適化処理部の動作例を示すフローチャートである。
【図１５】本発明の少なくとも１つの実施形態に係る、門関数の最適化処理部の構成例を示すブロック図である。
【図１６】本発明の少なくとも１つの実施形態に係る、門関数の最適化処理部の動作例を示すフローチャートである。
【図１７】本発明の少なくとも１つの実施形態に係る払出量予測装置の構成例を示すブロック図である。
【図１８Ａ】本発明の少なくとも１つの実施形態に係る払出量予測装置の動作例（１／２）を示すフローチャートである。
【図１８Ｂ】本発明の少なくとも１つの実施形態に係る払出量予測装置の動作例（２／２）を示すフローチャートである。
【図１９】本発明の少なくとも１つの実施形態に係る払出量予測装置の構成例を示すブロック図である。
【図２０】本発明の少なくとも１つの実施形態に係る払出量予測システムの構成例を示すブロック図である。
【図２１】本発明の少なくとも１つの実施形態に係る商品推薦装置の構成例を示すブロック図である。
【図２２】クラスタにおける商品の売上傾向の例を示す図である。
【図２３】本発明の少なくとも１つの実施形態に係る商品推薦装置の動作例を示すフローチャートである。
【図２４】商品推薦装置の基本構成を示すブロック図である。
【図２５】本発明の少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【００１３】
本明細書において、階層的な隠れ変数モデルは、隠れ変数が階層構造（たとえば、木構造）を持つ確率モデルを表す。階層的な隠れ変数モデルの最下層におけるノードには、確率モデルであるコンポーネントが割り当てられる。また、最下層におけるノード以外のノード（中間ノード、以降、木構造を例として説明するので「分岐ノード」と表す）には、入力された情報に応じて、ノードを選ぶ基準となる門関数（門関数モデル）が設けられる。
【００１４】
以降の説明においては、２階層を有する階層的な隠れ変数モデルを例として参照しながら、払出量予測装置が行う処理等について説明する。また、説明の便宜上、階層構造は、木構造であるとする。しかし、以下の実施形態を例に説明する本発明において、階層構造は、必ずしも木構造でなくともよい。
【００１５】
階層構造が木構造である場合に、木構造がループを有さない構造であるので、根ノード（ルートノード）から、あるノードに至る道筋は、一つに決定される。以下、階層隠れ構造において、根ノードから、あるノードに至る道筋（リンク）を、「経路」と記す。また、経路隠れ変数は、経路ごとに隠れ変数を辿ることで決定される。たとえば、最下層の経路隠れ変数は、根ノードから最下層におけるノードまでの経路ごとに決定される経路隠れ変数を表す。
【００１６】
また、以降の説明においては、データ列ｘｎ（ｎ＝１，・・・，Ｎ）が入力されるとする。各ｘｎは、Ｍ次元多変量データ列（ｘｎ＝ｘ１ｎ，・・・，ｘＭｎ）を表すとする。また、データ列ｘｎを観測変数と表すこともある。観測変数ｘｎに対する第１層分岐隠れ変数ｚｉｎ、最下層分岐隠れ変数ｚｊ｜ｉｎ、そして最下層の経路隠れ変数ｚｉｊｎを、下記の通り定義する。
【００１７】
ｚｉｎ＝１は、根ノードに入力されるｘｎに基づきノードを選ぶ場合に、第１層における第ｉノードへ分岐することを表す。ｚｉｎ＝０は、根ノードに入力されるｘｎに基づきノードを選ぶ場合に、第１層における第ｉノードへ分岐しないことを表す。ｚｊ｜ｉｎ＝１は、第１層における第ｉノードに入力されるｘｎに基づきノードを選ぶ場合に、第２層における第ｊノードへ分岐することを表す。ｚｊ｜ｉｎ＝０は、第１層における第ｉノードに入力されるｘｎに基づきノードを選ぶ場合に、が第２層における第ｊノードへ分岐しないことを表す。
【００１８】
ｚｉｊｎ＝１は、根ノードに入力されるｘｎに基づきノードを選ぶ場合に、第１層における第ｉノード、及び、第２層における第ｊノードを通ることで辿られるコンポーネントへ分岐することを表す。ｚｉｊｎ＝０は、根ノードに入力されるｘｎに基づきノードを選ぶ場合に、第１層における第ｉノード、第２層における第ｊノードを通ることで辿られるコンポーネントへ分岐しないことを表す。
【００１９】
尚、Σｉｚｉｎ＝１、Σｊｚｊ｜ｉｎ＝１、ｚｉｊｎ＝ｚｉｎ・ｚｊ｜ｉｎを満たすので、これらより、ｚｉｎ＝Σｊｚｉｊｎが成り立つ。ｘと、最下層の経路隠れ変数ｚｉｊｎの代表値ｚとの組みは、「完全変数」と呼ばれる。一方、対比として、ｘは、不完全変数と呼ばれる。
【００２０】
式１は、完全変数に関する深さ２の階層的な隠れ変数モデル同時分布を表す。
【００２１】
0006459968.tif 000002
・・・（式１）
【００２２】
すなわち、式１に含まれるＰ（ｘ，ｙ）＝Ｐ（ｘ，ｚ１ｓｔ，ｚ２ｎｄ）は、完全変数に関する深さ２の階層的な隠れ変数モデル同時分布を表す。式１においては、ｚｉｎの代表値をｚ１ｓｔｎと表し、ｚｊ｜ｉｎの代表値をｚ２ｎｄｎと表す。尚、第１層分岐隠れ変数ｚｉｎに対する変分分布をｑ（ｚｉｎ）と表し、最下層の経路隠れ変数ｚｉｊｎに対する変分分布をｑ（ｚｉｊｎ）と表す。
【００２３】
式１において、Ｋ１は、第１層に含まれるノード数を表す。Ｋ２は、第１層におけるノードそれぞれから分岐するノード数を表す。この場合に、最下層のコンポーネントは、Ｋ１・Ｋ２で表わされる。また、θ＝（β，β１，・・・，βＫ１，φ１，・・・，φＫ１・Ｋ２）が、モデルのパラメータを表わすとする。ただし、βは、根ノードの分岐パラメータを表す。また、βｋは、第１層における第ｋノードの分岐パラメータを表す。φｋは、ｋ番目のコンポーネントに対する観測パラメータを表す。
【００２４】
また、Ｓ１，・・・，ＳＫ１・Ｋ２は、φｋに関する観測確率の種類を表すとする。尚、たとえば、多変量データの生成確率の場合に、Ｓ１乃至ＳＫ１・Ｋ２になり得る候補は、｛正規分布、対数正規分布、指数分布｝等である。また、たとえば、多項曲線が出力される場合に、Ｓ１乃至ＳＫ１・Ｋ２になり得る候補は、｛０次曲線、１次曲線、２次曲線、３次曲線｝等である。
【００２５】
尚、以降の説明においては、具体的な例を説明する場合に、深さ２の階層的な隠れ変数モデルを例示して説明する。ただし、少なくとも１つの実施形態に係る階層的な隠れ変数モデルは、深さ２の階層的な隠れ変数モデルに限定されず、深さが１や３以上の階層的な隠れ変数モデルであってもよい。この場合も、深さ２の階層的な隠れ変数モデルの場合と同様に、式１や、式２乃至式４（後述）を導出すればよく、同様の構成により推定装置が実現される。
【００２６】
また、以降の説明においては、ターゲット変数をＸとした場合の分布について説明する。ただし、観測分布が回帰や判別のように、条件付モデルＰ（Ｙ｜Ｘ）（Ｙはターゲットとなる確率変数）である場合についても適用可能である。
【００２７】
また、本発明の実施形態について説明する前に、この実施形態に係る推定装置と、非特許文献２に記載された混合隠れ変数モデルに対する推定方法との本質的な違いについて説明する。
【００２８】
非特許文献２に開示された方法では、隠れ変数を各コンポーネントのインジケータとする一般的な混合モデルが想定される。このため、最適化の基準が、非特許文献２における式１０に示すように導出される。しかし、フィッシャー情報行列が非特許文献２における式６の形式で与えられるように、非特許文献２に記載された方法では、コンポーネントのインジケータである隠れ変数の確率分布が混合モデルの混合比にのみ依存すると仮定されている。そのため、入力に応じたコンポーネントの切り替えが実現できないので、この最適化基準は、適切でない。
【００２９】
この問題を解決するためには、以降の実施形態で示すように、階層的な隠れ変数を設定し、適切な最適化基準を用いて計算する必要がある。以降の実施形態では、適切な最適化基準として、入力に応じて各分岐ノードでの分岐を振り分ける多段の特異モデルを想定する。
【００３０】
以下、図面を参照しながら実施形態について説明する。
【００３１】
《第１の実施形態》
図１は、少なくとも１つの実施形態に係る払出量予測システムの構成例を示すブロック図である。本実施形態に係る払出量予測システム１０は、階層的な隠れ変数モデルの推定装置１００と、学習用データベース３００と、モデルデータベース５００と、払出量予測装置７００とを備える。払出量予測システム１０は、過去における商品の払出に係る情報に基づいて払出量を予測するモデルを生成し、当該モデルを用いて払出量を予測する。
【００３２】
階層的な隠れ変数モデルの推定装置１００は、学習用データベース３００が記憶するデータを用いて、商品に関する払出量を予測するモデルを推定し、当該モデルをモデルデータベース５００に記録する。
【００３３】
図２Ａ乃至図２Ｇは、少なくとも１つの実施形態に係る学習用データベース３００が記憶する情報の例を示す図である。
【００３４】
学習用データベース３００は、商品及び店舗に関するデータを記憶する。
【００３５】
学習用データベース３００は、商品の払出に関するデータを記憶可能な払出テーブルを記憶することができる。払出テーブルは、図２Ａに示すように、日時、商品識別子（以降、「ＩＤ」と表す）、店舗ＩＤ、及び、顧客ＩＤの組み合わせに関連付けて、商品の売上数、単価、小計、レシート番号等を格納する。顧客ＩＤは、顧客を一意に識別可能な情報であり、たとえば、会員カードやポイントカードを提示することにより特定することができる。
【００３６】
また、学習用データベース３００は、気象に関するデータを記憶可能な気象テーブルを記憶することができる。気象テーブルは、図２Ｂに示すように、日時に関連付けて、気温、その日の最高気温、その日の最低気温、降水量、天気、不快指数等を格納する。
【００３７】
また、学習用データベース３００は、商品を購入した顧客に関するデータを記憶可能な顧客テーブルを記憶することができる。顧客テーブルは、図２Ｃに示すように、顧客ＩＤに関連付けて、年齢、住所、家族構成等を格納する。本実施形態においては、これらの情報は、たとえば、会員カードやポイントカード等を登録するのに応じて記録される。
【００３８】
また、学習用データベース３００は、商品の在庫数に関するデータを記憶可能な在庫テーブルを記憶することができる。在庫テーブルは、図２Ｄに示すように、日時と商品ＩＤとの組み合わせに関連付けて、在庫数、前回の在庫数からの増減値等を格納する。
【００３９】
また、学習用データベース３００は、店舗に関するデータを記憶可能な店舗属性テーブルを記憶する。店舗属性テーブルは、図２Ｅに示すように、店舗ＩＤに関連付けて、店舗名、住所、タイプ、広さ、駐車場数等を格納する。店舗のタイプの例としては、駅前に設置される駅前タイプ、住宅街に設置される住宅街タイプ、ガソリンスタンド等の他の施設との複合施設である複合型タイプ等が挙げられる。
【００４０】
また、学習用データベース３００は、日時に関するデータを記憶可能な日時属性テーブルを記憶することができる。日時属性テーブルは、図２Ｆに示すように、日時に関連付けて、当該日時の属性を示す情報種別、値、商品ＩＤ、店舗ＩＤ等を格納する。情報種別の例としては、祝日であるか否か、キャンペーン中であるか否か、店舗の周辺でイベントが開催されているか否か等が挙げられる。日時属性テーブルの値は、１か０かのいずれかをとり、値が１である場合は、当該値に関連付けられた日時が、当該値に関連付けられた情報種別が示す属性を有することを示す。また、値が０である場合は、当該値に関連付けされた日時が、当該値に関連付けされた情報種別が示す属性を有さないことを示す。また、商品ＩＤ及び店舗ＩＤは、情報種別の種類により、必須か否かが異なる。たとえば、情報種別がキャンペーンを示す場合に、どの店舗でどの商品のキャンペーンを行っているかを示す必要があるので、商品ＩＤ及び店舗ＩＤは必須の項目である。他方、情報種別が祝日を示す場合に、その日が祝日であるか否かは店舗及び商品の種別と関係がないので、商品ＩＤ及び店舗ＩＤは必須でない項目である。
【００４１】
また、学習用データベース３００は、商品に関するデータを記憶可能な商品属性テーブルを記憶する。商品属性テーブルは、図２Ｇに示すように、商品ＩＤに関連付けて、商品名、商品の大分類、中分類、小分類、単価、原価等を格納する。
【００４２】
モデルデータベース５００は、階層的な隠れ変数モデルの推定装置が推定した、商品の払出量を予測するモデルを記憶する。モデルデータベース５００は、ハードディスクドライブやソリッドステートドライブ等、一時的でない有形の媒体によって構成される。
【００４３】
払出量予測装置７００は、商品及び店舗に関するデータを入力され、当該データとモデルデータベース５００が記憶するモデルとに基づいて、商品の払出量を予測する。
【００４４】
図３は、少なくとも１つの実施形態に係る、階層的な隠れ変数モデルの推定装置の構成例を示すブロック図である。本実施形態に係る、階層的な隠れ変数モデルの推定装置１００は、データ入力装置１０１と、階層隠れ構造の設定部１０２と、初期化処理部１０３と、階層的な隠れ変数の変分確率の計算処理部１０４と、コンポーネントの最適化処理部１０５とを備える。さらに、階層的な隠れ変数モデルの推定装置１００は、門関数の最適化処理部１０６と、最適性の判定処理部１０７と、最適モデルの選択処理部１０８と、モデル推定結果の出力装置１０９とを備える。
【００４５】
階層的な隠れ変数モデルの推定装置１００は、学習用データベース３００が記憶するデータに基づいて生成された入力データ１１１が入力されると、その入力データ１１１に対して階層隠れ構造及び観測確率の種類を最適化する。次に、階層的な隠れ変数モデルの推定装置１００は、最適化した結果をモデル推定結果１１２として出力し、モデルデータベース５００に記録する。本実施形態において入力データ１１１は、学習用データの一例である。
【００４６】
図４は、少なくとも１つの実施形態に係る、階層的な隠れ変数の変分確率の計算処理部１０４の構成例を示すブロック図である。階層的な隠れ変数の変分確率の計算処理部１０４は、最下層の経路隠れ変数の変分確率の計算処理部１０４−１と、階層設定部１０４−２と、上層の経路隠れ変数の変分確率の計算処理部１０４−３と、階層計算終了の判定処理部１０４−４とを含む。
【００４７】
階層的な隠れ変数の変分確率の計算処理部１０４は、入力データ１１１と、後述するコンポーネントの最適化処理部１０５における推定モデル１０４−５とに基づき、階層的な隠れ変数の変分確率１０４−６を出力する。尚、階層的な隠れ変数の変分確率の計算処理部１０４の詳細な説明は後述する。本実施形態におけるコンポーネントは、各説明変数に係る重みを示す値である。払出量予測装置７００は、当該コンポーネントが示す重みを乗算した説明変数の総和を算出することで目的変数を得ることができる。
【００４８】
図５は、少なくとも１つの実施形態に係る、門関数の最適化処理部１０６の構成例を示すブロック図である。門関数の最適化処理部１０６は、分岐ノードの情報取得部１０６−１と、分岐ノードの選択処理部１０６−２と、分岐パラメータの最適化処理部１０６−３と、全分岐ノードの最適化終了の判定処理部１０６−４とを含む。
【００４９】
門関数の最適化処理部１０６は、入力データ１１１と、階層的な隠れ変数の変分確率１０４−６と、推定モデル１０４−５とが入力されると、門関数モデル１０６−６を出力する。尚、後述する階層的な隠れ変数の変分確率の計算処理部１０４は、階層的な隠れ変数の変分確率１０４−６を算出する。また、コンポーネントの最適化処理部１０５は、推定モデル１０４−５を算出する。尚、門関数の最適化処理部１０６の詳細な説明は後述される。本実施形態における門関数は、入力データ１１１に含まれる情報が所定の条件を満たすか否かを判定する関数である。また、門関数は、階層隠れ構造の内部ノードにおいて設けられる。払出量予測装置７００は、ルートノードから最下層におけるノードまでの経路をたどる場合に、門関数に従う判定結果に基づいて、次にたどるノードを決定する。
【００５０】
データ入力装置１０１は、入力データ１１１を入力する装置である。データ入力装置１０１は、学習用データベース３００の払出テーブルに記録されたデータに基づいて、所定の時間範囲（たとえば、１時間や６時間等）毎の商品の既知の払出量を示す目的変数を生成する。目的変数は、たとえば、１つの店舗における１つの商品の所定の時間範囲毎の売上数、全店舗における１つの商品の所定の時間範囲毎の売上数、１つの店舗における全商品の所定の時間範囲毎の売上金額等である。また、データ入力装置１０１は、学習用データベース３００の気象テーブル、顧客テーブル、店舗属性テーブル、日時属性テーブル、商品属性テーブル等に記録されたデータに基づいて、目的変数ごとに、当該目的変数に影響を与え得る情報である１つ以上の説明変数を生成する。そして、データ入力装置１０１は、目的変数と説明変数との複数の組み合わせを、入力データ１１１として入力する。データ入力装置１０１は、入力データ１１１を入力する場合に、観測確率の種類やコンポーネント数の候補等、モデル推定に必要なパラメータを同時に入力する。本実施形態において、データ入力装置１０１は、学習用データ入力部の一例である。
【００５１】
階層隠れ構造の設定部１０２は、入力された観測確率の種類やコンポーネント数の候補から、最適化の候補になる階層的な隠れ変数モデルの構造を選択し、設定する。本実施形態で用いられる隠れ構造は、木構造である。以下では、設定されたコンポーネント数をＣと表わすとし、説明に用いられる数式は、深さが２の階層的な隠れ変数モデルを対象とするとする。尚、階層隠れ構造の設定部１０２は、選択された階層的な隠れ変数モデルの構造を内部のメモリに記憶するようにしてもよい。
【００５２】
たとえば、２分木モデル（各分岐ノードから２つに分岐するモデル）、かつ、木構造の深さを２とする場合に、階層隠れ構造の設定部１０２は、第一階層におけるノードが２つ、第二階層におけるノード（本実施形態では、最下層におけるノード）が４つの階層隠れ構造を選択する。
【００５３】
初期化処理部１０３は、階層的な隠れ変数モデルを推定するための初期化処理を実施する。初期化処理部１０３は、初期化処理を任意の方法によって実行可能である。初期化処理部１０３は、たとえば、観測確率の種類をコンポーネントごとにランダムに設定し、設定された種類にしたがって、各観測確率のパラメータをランダムに設定してもよい。また、初期化処理部１０３は、階層的な隠れ変数の最下層経路変分確率をランダムに設定してもよい。
【００５４】
階層的な隠れ変数の変分確率の計算処理部１０４は、階層ごとに経路隠れ変数の変分確率を計算する。ここでは、パラメータθは、初期化処理部１０３、または、コンポーネントの最適化処理部１０５および門関数の最適化処理部１０６によって計算される。そのため、階層的な隠れ変数の変分確率の計算処理部１０４は、その値に基づいて変分確率を計算する。
【００５５】
階層的な隠れ変数の変分確率の計算処理部１０４は、周辺化対数尤度関数を完全変数に対する推定量（たとえば、最尤推定量や最大事後確率推定量）に関してラプラス近似し、その下界を最大化することによって変分確率を算出する。以下、このように算出された変分確率を最適化基準Ａと呼ぶ。
【００５６】
最適化基準Ａを算出する手順を、深さが２の階層的な隠れ変数モデルを例に説明する。周辺化対数尤度は、以下に示す式２で表わされる。
【００５７】
0006459968.tif 000003
・・・（式２）
ただし、ｌｏｇは、たとえば、自然対数を表す。自然対数の代わりにネイピア数以外の値が底である対数を適用することもできる。以降に示す式においても、同様である。
【００５８】
まず、上記に示す式２で表わされる周辺化対数尤度の下界を考える。式２において、最下層の経路隠れ変数の変分確率ｑ（ｚｎ）を最大化することで等号が成立する。ここで、分子の完全変数の周辺化尤度を完全変数に対する最尤推定量を用いてラプラス近似すると、以下の式３に示す周辺化対数尤度関数の近似式が得られる。
【００５９】
0006459968.tif 000004
・・・（式３）
【００６０】
式３において、上付きのバーは、完全変数に対する最尤推定量を表わし、Ｄ＊は、下付きパラメータ＊の次元を表す。
【００６１】
次に、最尤推定量が対数尤度関数を最大化する性質と、対数関数が凹関数であることを利用すると、式３の下界は、以下に示す式４のように算出される。
【００６２】
0006459968.tif 000005
・・・（式４）
【００６３】
第１層分岐隠れ変数の変分分布ｑ’及び、最下層の経路隠れ変数の変分分布ｑ’’は、それぞれの変分分布について式４を最大化することにより算出される。尚、ここでは、ｑ’’＝ｑ｛ｔ−１｝、θ＝θ｛ｔ−１｝に固定し、ｑ’を式Ａに示す値に固定する。
【００６４】
0006459968.tif 000006
・・・（式Ａ）
【００６５】
ただし、上付き（ｔ）は、階層的な隠れ変数の変分確率の計算処理部１０４、コンポーネントの最適化処理部１０５、門関数の最適化処理部１０６、及び、最適性の判定処理部１０７の繰り返し計算におけるｔ回目の繰り返しを表わす。
【００６６】
次に、図４を参照しながら、階層的な隠れ変数の変分確率の計算処理部１０４の動作を説明する。
【００６７】
最下層の経路隠れ変数の変分確率の計算処理部１０４−１は、入力データ１１１と推定モデル１０４−５を入力し、最下層の隠れ変数の変分確率ｑ（ｚＮ）を算出する。階層設定部１０４−２は、変分確率を計算する対象が最下層であることを設定する。具体的には、最下層の経路隠れ変数の変分確率の計算処理部１０４−１は、入力データ１１１の目的変数と説明変数との組み合わせ毎に、各推定モデル１０４−５の変分確率を計算する。変分確率の値は、入力データ１１１に含まれる説明変数を推定モデル１０４−５に代入することにより得られる解と、入力データ１１１の目的変数とを比較することにより算出される。
【００６８】
上層の経路隠れ変数の変分確率の計算処理部１０４−３は、一つ上の層の経路隠れ変数の変分確率を算出する。具体的に、上層の経路隠れ変数の変分確率の計算処理部１０４−３は、同じ分岐ノードを親として持つ現在の層の隠れ変数の変分確率の和を算出し、その値を一つ上の層の経路隠れ変数の変分確率とする。
【００６９】
階層計算終了の判定処理部１０４−４は、変分確率を計算する対象である層が上にまだ存在するか否かを判定する。上の層が存在すると判定された場合に、階層設定部１０４−２は、変分確率を計算する対象に一つ上の層を設定する。以降、上層の経路隠れ変数の変分確率の計算処理部１０４−３および階層計算終了の判定処理部１０４−４は、上述する処理を繰り返す。一方、上の層が存在しないと判定された場合に、階層計算終了の判定処理部１０４−４は、すべての階層で経路隠れ変数の変分確率が算出されたと判定する。
【００７０】
コンポーネントの最適化処理部１０５は、式４に対して各コンポーネントのモデル（パラメータθおよびその種類Ｓ）を最適化し、最適化した推定モデル１０４−５を出力する。深さが２の階層的な隠れ変数モデルの場合に、コンポーネントの最適化処理部１０５は、ｑおよびｑ’’を階層的な隠れ変数の変分確率の計算処理部１０４で算出された最下層の経路隠れ変数の変分確率ｑｔに固定する。さらに、コンポーネントの最適化処理部１０５は、ｑ’を式Ａに示す上層の経路隠れ変数の変分確率に固定する。そして、コンポーネントの最適化処理部１０５は、式４に示すＧの値を最大化するモデルを算出する。
【００７１】
式４により定義されたＧは、コンポーネントごとに最適化関数を分解することが可能である。そのため、コンポーネントの種類の組み合わせ（たとえば、Ｓ１乃至ＳＫ１・Ｋ２のどの種類を指定するか）を考慮することなく、Ｓ１乃至ＳＫ１・Ｋ２及びパラメータφ１乃至φＫ１・Ｋ２を別々に最適化できる。このように最適化できる点が、この処理において重要な点である。これにより、組み合わせ爆発を回避してコンポーネントの種類を最適化できる。
【００７２】
次に、図５を参照して、門関数の最適化処理部１０６の動作を説明する。分岐ノードの情報取得部１０６−１は、コンポーネントの最適化処理部１０５で推定モデル１０４−５を用いて分岐ノードのリストを抽出する。分岐ノードの選択処理部１０６−２は、抽出された分岐ノードのリストの中から分岐ノードを１つ選択する。以下、選択されたノードのことを選択ノードと記すこともある。
【００７３】
分岐パラメータの最適化処理部１０６−３は、入力データ１１１と、階層的な隠れ変数の変分確率１０４−６から得られる選択ノードに関する隠れ変数の変分確率とに基づいて、選択ノードの分岐パラメータを最適化する。尚、選択ノードにおける分岐パラメータが、上述する門関数に対応する。
【００７４】
全分岐ノードの最適化終了の判定処理部１０６−４は、分岐ノードの情報取得部１０６−１によって抽出されたすべての分岐ノードが最適化されたか否かを判定する。すべての分岐ノードが最適化されている場合に、門関数の最適化処理部１０６は、ここでの処理を終了する。一方、すべての分岐ノードに関する最適化が完了していない場合に、分岐ノードの選択処理部１０６−２による処理が行われ、以降、分岐パラメータの最適化処理部１０６−３および全分岐ノードの最適化終了の判定処理部１０６−４が同様に行われる。
【００７５】
ここで、門関数の具体例を、２分木の階層モデルに対するベルヌーイ分布を基とした門関数を例に説明する。以下、ベルヌーイ分布を基とした門関数をベルヌーイ型門関数と記すこともある。ここでは、ｘの第ｄ次元をｘｄと表す。また、この値がある閾値ｗを超えないときに２分木の左下へ分岐する確率をｇ−と表し、閾値ｗを超えるときに２分木の左下へ分岐する確率をｇ＋と表す。分岐パラメータの最適化処理部１０６−３は、上記の最適化パラメータｄ、ｗ、ｇ−、ｇ＋をベルヌーイ分布に基づいて最適化する。これは、非特許文献２に記載されたロジット関数に基づく門関数と異なり、各パラメータが解析解を持つため、より高速な最適化が可能である。
【００７６】
最適性の判定処理部１０７は、式４を用いて計算される最適化基準Ａが収束したか否かを判定する。収束していない場合に、階層的な隠れ変数の変分確率の計算処理部１０４、コンポーネントの最適化処理部１０５、門関数の最適化処理部１０６、および、最適性の判定処理部１０７による処理が繰り返される。最適性の判定処理部１０７は、たとえば、最適化基準Ａの増分が所定の閾値未満であるときに、最適化基準Ａが収束したと判定してもよい。
【００７７】
以降、階層的な隠れ変数の変分確率の計算処理部１０４、コンポーネントの最適化処理部１０５、門関数の最適化処理部１０６および最適性の判定処理部１０７による処理をまとめて、階層的な隠れ変数の変分確率の計算処理部１０４から最適性の判定処理部１０７による処理と記すこともある。階層的な隠れ変数の変分確率の計算処理部１０４から最適性の判定処理部１０７による処理が繰り返され、変分分布とモデルが更新されることで、適切なモデルを選択できる。尚、これらの処理を繰り返すことにより、最適化基準Ａが単調に増加することが保証される。
【００７８】
最適モデルの選択処理部１０８は、最適なモデルを選択する。たとえば、階層隠れ構造の設定部１０２で設定された隠れ状態数Ｃに対して、階層的な隠れ変数の変分確率の計算処理部１０４から最適性の判定処理部１０７による処理で算出される最適化基準Ａが、現在設定されている最適化基準Ａよりも大きいとする。この場合に、最適モデルの選択処理部１０８は、そのモデルを最適なモデルとして選択する。
【００７９】
モデル推定結果の出力装置１０９は、入力された観測確率の種類やコンポーネント数の候補から設定される階層的な隠れ変数モデルの構造の候補についてモデルの最適化を実行する。モデル推定結果の出力装置１０９は、最適化が完了した場合に、最適な隠れ状態数、観測確率の種類、パラメータ、変分分布等をモデル推定結果１１２として出力する。一方、最適化が完了していない候補が存在する場合に、階層隠れ構造の設定部１０２は、上述する処理を実行する。
【００８０】
プログラム（階層的な隠れ変数モデルの推定プログラム）に従って動作するコンピュータの中央演算処理装置（以降、「ＣＰＵ」と表す）によって、次に示す各部が実現される。すなわち、
・階層隠れ構造の設定部１０２、
・初期化処理部１０３、
・階層的な隠れ変数の変分確率の計算処理部１０４（より詳しくは、最下層の経路隠れ変数の変分確率の計算処理部１０４−１と、階層設定部１０４−２、上層の経路隠れ変数の変分確率の計算処理部１０４−３、及び、階層計算終了の判定処理部１０４−４）、
・コンポーネントの最適化処理部１０５、
・門関数の最適化処理部１０６（より詳しくは、分岐ノードの情報取得部１０６−１、分岐ノードの選択処理部１０６−２、分岐パラメータの最適化処理部１０６−３、及び、全分岐ノードの最適化終了の判定処理部１０６−４）、
・最適性の判定処理部１０７、及び、
・最適モデルの選択処理部１０８。
【００８１】
たとえば、プログラムは、階層的な隠れ変数モデルの推定装置１００の記憶部（図示せず）に記憶され、ＣＰＵは、そのプログラムを読み込み、プログラムに従って次に示す各部における処理を表す。すなわち、
・階層隠れ構造の設定部１０２、
・初期化処理部１０３、
・階層的な隠れ変数の変分確率の計算処理部１０４（より詳しくは、最下層の経路隠れ変数の変分確率の計算処理部１０４−１、階層設定部１０４−２、上層の経路隠れ変数の変分確率の計算処理部１０４−３、及び、階層計算終了の判定処理部１０４−４）、
・コンポーネントの最適化処理部１０５、
・門関数の最適化処理部１０６（より詳しくは、分岐ノードの情報取得部１０６−１、分岐ノードの選択処理部１０６−２、分岐パラメータの最適化処理部１０６−３、及び、全分岐ノードの最適化終了の判定処理部１０６−４）、
・最適性の判定処理部１０７、及び、
・最適モデルの選択処理部１０８。
【００８２】
また、以下に示す各部は、専用のハードウェアで実現されていてもよい。すなわち、
・階層隠れ構造の設定部１０２、
・初期化処理部１０３、
・階層的な隠れ変数の変分確率の計算処理部１０４、
・コンポーネントの最適化処理部１０５、
・門関数の最適化処理部１０６、
・最適性の判定処理部１０７、
・最適モデルの選択処理部１０８。
【００８３】
次に、本実施形態に係る階層的な隠れ変数モデルの推定装置の動作を説明する。図６は、少なくとも１つの実施形態に係る階層的な隠れ変数モデルの推定装置の動作例を示すフローチャートである。
【００８４】
まず、データ入力装置１０１は、入力データ１１１を入力する（ステップＳ１００）。次に、階層隠れ構造の設定部１０２は、入力された階層隠れ構造の候補値のうち、まだ最適化の行なわれていない階層隠れ構造を選択し、設定する（ステップＳ１０１）。次に、初期化処理部１０３は、設定された階層隠れ構造に対して、推定に用いられるパラメータや隠れ変数の変分確率を初期化する（ステップＳ１０２）。
【００８５】
次に、階層的な隠れ変数の変分確率の計算処理部１０４は、各経路隠れ変数の変分確率を計算する（ステップＳ１０３）。次に、コンポーネントの最適化処理部１０５は、各コンポーネントについて、観測確率の種類とパラメータを推定してコンポーネントを最適化する（ステップＳ１０４）。
【００８６】
次に、門関数の最適化処理部１０６は、各分岐ノードにおける分岐パラメータを最適化する（ステップＳ１０５）。次に、最適性の判定処理部１０７は、最適化基準Ａが収束したか否かを判定する（ステップＳ１０６）。すなわち、最適性の判定処理部１０７は、モデルの最適性を判定する。
【００８７】
ステップＳ１０６において、最適化基準Ａが収束したと判定されなかった場合に、すなわち、最適ではないと判定された場合（ステップＳ１０６ａにおけるＮｏ）に、ステップＳ１０３からステップＳ１０６の処理が繰り返される。
【００８８】
一方、ステップＳ１０６において、最適化基準Ａが収束したと判定された場合に、すなわち、最適であると判定された場合に（ステップＳ１０６ａにおけるＹｅｓ）、最適モデルの選択処理部１０８は、次に示す処理を行う。すなわち、最適モデルの選択処理部１０８は、現在設定されている最適なモデル（たとえば、コンポーネントの数、観測確率の種類、パラメータ）による最適化基準Ａと、最適なモデルとして現在設定されているモデルによる最適化基準Ａの値とを比較する。次に、最適モデルの選択処理部１０８は、値の大きいモデルを、最適なモデルとして選択する（ステップＳ１０７）。
【００８９】
次に、最適モデルの選択処理部１０８は、推定されていない階層隠れ構造の候補が残っているか否かを判定する（ステップＳ１０８）。候補が残っている場合に（ステップＳ１０８におけるＹｅｓ）、ステップＳ１０２からステップＳ１０８までの処理が繰り返される。一方、候補が残っていない場合に（ステップＳ１０８におけるＮｏ）、モデル推定結果の出力装置１０９は、モデル推定結果１１２を出力し、処理を完了する（ステップＳ１０９）。モデル推定結果の出力装置１０９は、コンポーネントの最適化処理部１０５が最適化したコンポーネントと、門関数の最適化処理部１０６が最適化した門関数とを、モデルデータベース５００に記録する。
【００９０】
次に、本実施形態に係る、階層的な隠れ変数の変分確率の計算処理部１０４の動作を説明する。図７は、少なくとも１つの実施形態に係る、階層的な隠れ変数の変分確率の計算処理部１０４の動作例を示すフローチャートである。
【００９１】
まず、最下層の経路隠れ変数の変分確率の計算処理部１０４−１は、最下層の経路隠れ変数の変分確率を算出する（ステップＳ１１１）。次に、階層設定部１０４−２は、どの層まで経路隠れ変数を算出したか設定する（ステップＳ１１２）。次に、上層の経路隠れ変数の変分確率の計算処理部１０４−３は、階層設定部１０４−２によって設定された層での経路隠れ変数の変分確率を用いて、１つ上の層の経路隠れ変数の変分確率を算出する（ステップＳ１１３）。
【００９２】
次に、階層計算終了の判定処理部１０４−４は、経路隠れ変数が算出されていない層が残っているか否かを判定する（ステップＳ１１４）。経路隠れ変数が算出されていない層が残っている場合に（ステップＳ１１４におけるＮｏ）、ステップＳ１１２からステップＳ１１３の処理が繰り返される。一方、経路隠れ変数が算出されていない層が残っていない場合に、階層的な隠れ変数の変分確率の計算処理部１０４は、処理を完了する。
【００９３】
次に、本実施形態に係る、門関数の最適化処理部１０６の動作を説明する。図８は、少なくとも１つの実施形態に係る、門関数の最適化処理部１０６の動作例を示すフローチャートである。
【００９４】
まず、分岐ノードの情報取得部１０６−１は、すべての分岐ノードを把握する（ステップＳ１２１）。次に、分岐ノードの選択処理部１０６−２は、最適化の対象とする分岐ノードを１つ選択する（ステップＳ１２２）。次に、分岐パラメータの最適化処理部１０６−３は、選択された分岐ノードにおける分岐パラメータを最適化する（ステップＳ１２３）。
【００９５】
次に、全分岐ノードの最適化終了の判定処理部１０６−４は、最適化されていない分岐ノードが残っているか否かを判定する（ステップＳ１２４）。最適化されていない分岐ノードが残っている場合に、ステップＳ１２２からステップＳ１２３の処理が繰り返される。一方、最適化されていない分岐ノードが残っていない場合に、門関数の最適化処理部１０６は、処理を完了する。
【００９６】
以上のように、本実施形態によれば、階層隠れ構造の設定部１０２は、階層隠れ構造を設定する。尚、階層隠れ構造は、隠れ変数が階層構造（木構造）で表わされ、その階層構造の最下層におけるノードに確率モデルを表わすコンポーネントが配された構造である。
【００９７】
そして、階層的な隠れ変数の変分確率の計算処理部１０４は、経路隠れ変数の変分確率（すなわち、最適化基準Ａ）を計算する。階層的な隠れ変数の変分確率の計算処理部１０４は、階層構造の階層ごとに隠れ変数の変分確率を最下層におけるノードから順に計算してもよい。また、階層的な隠れ変数の変分確率の計算処理部１０４は、周辺化対数尤度を最大化するように変分確率を計算してもよい。
【００９８】
そして、コンポーネントの最適化処理部１０５は、算出された変分確率に対してコンポーネントを最適化する。門関数の最適化処理部１０６は、階層隠れ構造のノードにおける隠れ変数の変分確率に基づいて門関数を最適化する。尚、門関数は、階層隠れ構造のノードにおいて多変量データ（たとえば、説明変数）に応じた分岐方向を決定するモデルである。
【００９９】
以上のような構成によって多変量データに対する階層的な隠れ変数モデルを推定するため、理論的正当性を失うことなく適切な計算量で階層的な隠れ変数を含む階層的な隠れ変数モデルを推定できる。また、階層的な隠れ変数モデルの推定装置１００を用いることにより、コンポーネントを分ける適切な基準を人手で設定する必要がなくなる。
【０１００】
また、階層隠れ構造の設定部１０２は、隠れ変数が、たとえば、２分木構造で表わされる階層隠れ構造を設定する。門関数の最適化処理部１０６は、ノードにおける隠れ変数の変分確率に基づいて、ベルヌーイ分布を基とした門関数を最適化してもよい。この場合に、各パラメータが解析解を持つため、より高速な最適化が可能になる。
【０１０１】
これらの処理によって、階層的な隠れ変数モデルの推定装置１００は、気温が低い時や高い時に売れるパターン、午前や午後に売れるパターン、週明けや週末に売れるパターン等にコンポーネントを分離できる。
【０１０２】
本実施形態に係る払出量予測装置について説明する。図９は、少なくとも１つの実施形態に係る払出量予測装置が有する構成例を示すブロック図である。
【０１０３】
払出量予測装置７００は、データ入力装置７０１と、モデル取得部７０２と、コンポーネント決定部７０３と、払出量予測部７０４と、予測結果出力装置７０５とを備える。
【０１０４】
データ入力装置７０１は、払出量に影響を与え得る情報である１つ以上の説明変数を、入力データ７１１（すなわち、予測情報）として入力する。入力データ７１１を構成する説明変数の種類は、入力データ１１１の説明変数と同じ種類である。本実施形態において、データ入力装置７０１は、予測用データ入力部の一例である。
【０１０５】
モデル取得部７０２は、払出量の予測に用いるモデルとして、モデルデータベース５００から門関数及びコンポーネントを取得する。当該門関数は、門関数の最適化処理部１０６が最適化した関数である。また、当該コンポーネントは、コンポーネントの最適化処理部１０５が最適化したコンポーネントである。
【０１０６】
コンポーネント決定部７０３は、データ入力装置７０１が入力した入力データ７１１と、モデル取得部７０２が取得した門関数とに基づいて、階層隠れ構造をたどる。そして、コンポーネント決定部７０３は、当該階層隠れ構造の最下層におけるノードに関連付けされたコンポーネントを、払出量の予測に用いるコンポーネントに決定する。
【０１０７】
払出量予測部７０４は、コンポーネント決定部７０３が決定したコンポーネントに、データ入力装置７０１が入力した入力データ７１１を代入することにより、払出量を予測する。
【０１０８】
予測結果出力装置７０５は、払出量予測部７０４が予測した払出量に関する予測結果７１２を出力する。
【０１０９】
次に、本実施形態に係る払出量予測装置の動作を説明する。図１０は、少なくとも１つの実施形態に係る払出量予測装置の動作例を示すフローチャートである。
【０１１０】
まず、データ入力装置７０１は、入力データ７１１を入力する（ステップＳ１３１）。尚、データ入力装置７０１は、１つの入力データ７１１でなく複数の入力データ７１１を入力してもよい。たとえば、データ入力装置７０１は、ある店舗におけるある日付の時刻（タイミング）ごとの入力データ７１１を入力してもよい。データ入力装置７０１が複数の入力データ７１１を入力する場合に、払出量予測部７０４は、入力データ７１１毎に払出量を予測する。次に、モデル取得部７０２は、モデルデータベース５００から門関数及びコンポーネントを取得する（ステップＳ１３２）。
【０１１１】
次に、払出量予測装置７００は、入力データ７１１を１つずつ選択し、選択した入力データ７１１について、以下に示すステップＳ１３４乃至ステップＳ１３６の処理を実行する（ステップＳ１３３）。
【０１１２】
まず、コンポーネント決定部７０３は、モデル取得部７０２が取得した門関数に基づいて、階層隠れ構造の根ノードから最下層におけるノードまで経路をたどることにより、払出量の予測に用いるコンポーネントを決定する（ステップＳ１３４）。具体的には、コンポーネント決定部７０３は、以下の手順でコンポーネントを決定する。
【０１１３】
コンポーネント決定部７０３は、階層隠れ構造のノードごとに当該ノードに関連付けされた門関数を読み出す。次に、コンポーネント決定部７０３は、入力データ７１１が、読み出した門関数を満たすか否かを判定する。次に、コンポーネント決定部７０３は、判定結果に基づいて次にたどるノードを決定する。コンポーネント決定部７０３は、当該処理により階層隠れ構造のノードをたどって最下層におけるノードに到達すると、当該ノードに関連付けされたコンポーネントを、払出量の予測に用いるコンポーネントに決定する。
【０１１４】
ステップＳ１３４でコンポーネント決定部７０３が払出量の予測に用いるコンポーネントを決定すると、払出量予測部７０４は、ステップＳ１３３で選択した入力データ７１１を当該コンポーネントに代入することで、払出量を予測する（ステップＳ１３５）。そして、予測結果出力装置７０５は、払出量予測部７０４による払出量に関する予測結果７１２を出力する（ステップＳ１３６）。
【０１１５】
そして、払出量予測装置７００は、ステップＳ１３４乃至ステップＳ１３６の処理をすべての入力データ７１１について実行して、処理を完了する。
【０１１６】
以上のように、本実施形態によれば、払出量予測装置７００は、門関数により適切なコンポーネントを用いることにより、精度よく払出量を予測することができる。特に、当該門関数及びコンポーネントは、階層的な隠れ変数モデルの推定装置１００により理論的な正当性を失うことなく推定されているため、払出量予測装置７００は、適切な基準で分類されたコンポーネントを用いて払出量を予測することができる。
【０１１７】
《第２の実施形態》
次に、払出量予測システムの第２の実施形態について説明する。本実施形態に係る払出量予測システムは、払出量予測システム１０と比較して、階層的な隠れ変数モデルの推定装置１００が階層的な隠れ変数モデルの推定装置２００に置き換わったという点に関して相違する。
【０１１８】
図１１は、少なくとも１つの実施形態に係る、階層的な隠れ変数モデルの推定装置が有する構成例を示すブロック図である。尚、第１の実施形態と同様の構成については、図３と同一の符号を付し、説明を省略する。本実施形態に係る、階層的な隠れ変数モデルの推定装置２００は、階層的な隠れ変数モデルの推定装置１００と比較して、階層隠れ構造の最適化処理部２０１が接続され、最適モデルの選択処理部１０８が接続されていない点に関して相違する。
【０１１９】
また、第１の実施形態では、階層的な隠れ変数モデルの推定装置１００が、階層隠れ構造の候補に対してコンポーネントや門関数のモデルを最適化することにより、最適化基準Ａを最大化する階層隠れ構造を選択する。一方、本実施形態に係る、階層的な隠れ変数モデルの推定装置２００においては、階層的な隠れ変数の変分確率の計算処理部１０４による処理の後に、階層隠れ構造の最適化処理部２０１により、隠れ変数が小さくなった経路がモデルから除去される処理が追加されている。
【０１２０】
図１２は、少なくとも１つの実施形態に係る、階層隠れ構造の最適化処理部２０１が有する構成例を示すブロック図である。階層隠れ構造の最適化処理部２０１は、経路隠れ変数の和演算処理部２０１−１と、経路除去の判定処理部２０１−２と、経路除去の実行処理部２０１−３とを含む。
【０１２１】
経路隠れ変数の和演算処理部２０１−１は、階層的な隠れ変数の変分確率１０４−６を入力し、各コンポーネントにおける最下層の経路隠れ変数の変分確率の和（以下、サンプル和と記す）を算出する。
【０１２２】
経路除去の判定処理部２０１−２は、サンプル和が所定の閾値ε以下であるか否かを判定する。ここで、εは、入力データ１１１と共に入力される閾値である。具体的には、経路除去の判定処理部２０１−２が判定する条件は、たとえば、式５で表わすことができる。
【０１２３】
0006459968.tif 000007
・・・（式５）
【０１２４】
すなわち、経路除去の判定処理部２０１−２は、各コンポーネントにおける最下層の経路隠れ変数の変分確率ｑ（ｚｉｊｎ）が式５に表わされる基準を満たすか否かを判定する。言い換えると、経路除去の判定処理部２０１−２は、サンプル和が十分小さいか否かを判定しているとも言える。
【０１２５】
経路除去の実行処理部２０１−３は、サンプル和が十分小さいと判定された経路の変分確率を０とする。そして、経路除去の実行処理部２０１−３は、残りの経路（すなわち、０にしなかった経路）に対して正規化した最下層の経路隠れ変数の変分確率に基づき、各階層での階層的な隠れ変数の変分確率１０４−６を再計算し、出力する。
【０１２６】
この処理の正当性を説明する。以下に例示する式６は、繰り返し最適化におけるｑ（ｚｉｊｎ）の更新式である。
【０１２７】
0006459968.tif 000008
・・・（式６）
【０１２８】
式６において、指数部に負の項が含まれ、その前の処理で算出されたｑ（ｚｉｊｎ）がその項の分母に存在する。したがって、この分母の値が小さければ小さいほど最適化されたｑ（ｚｉｊｎ）の値も小さくなるため、小さい経路隠れ変数の変分確率が繰り返し計算されることによって、徐々に小さくなっていくことが示される。
【０１２９】
尚、階層隠れ構造の最適化処理部２０１（より詳しくは、経路隠れ変数の和演算処理部２０１−１と、経路除去の判定処理部２０１−２と、経路除去の実行処理部２０１−３）は、プログラム（階層的な隠れ変数モデルの推定プログラム）に従って動作するコンピュータのＣＰＵによって実現される。
【０１３０】
次に、本実施形態に係る、階層的な隠れ変数モデルの推定装置２００の動作を説明する。図１３は、少なくとも１つの実施形態に係る、階層的な隠れ変数モデルの推定装置２００の動作例を示すフローチャートである。
【０１３１】
まず、データ入力装置１０１は、入力データ１１１を入力する（ステップＳ２００）。次に、階層隠れ構造の設定部１０２は、階層隠れ構造として隠れ状態数の初期状態を設定する（ステップＳ２０１）。
【０１３２】
第１の実施形態では、コンポーネント数に対して複数個の候補をすべて実行することで最適解を探索していた。一方、本実施形態では、コンポーネント数も最適化するために、一度の処理で階層隠れ構造を最適化することができる。よって、ステップＳ２０１では、第１の実施形態におけるステップＳ１０２で示すように複数の候補から最適化が実行されていない候補を選ぶのではなく、隠れ状態数の初期値を一度設定するだけでよい。
【０１３３】
次に、初期化処理部１０３は、設定された階層隠れ構造に対して、推定に用いられるパラメータや隠れ変数の変分確率の初期化する（ステップＳ２０２）。
【０１３４】
次に、階層的な隠れ変数の変分確率の計算処理部１０４は、各経路隠れ変数の変分確率を計算する（ステップＳ２０３）。次に、階層隠れ構造の最適化処理部２０１は、コンポーネント数を推定することにより、階層隠れ構造を最適化する（ステップＳ２０４）。すなわち、コンポーネントは各最下層におけるノードに配されているため、階層隠れ構造が最適化されると、コンポーネント数も最適化される。
【０１３５】
次に、コンポーネントの最適化処理部１０５は、各コンポーネントについて、観測確率の種類とパラメータを推定してコンポーネントを最適化する（ステップＳ２０５）。次に、門関数の最適化処理部１０６は、各分岐ノードにおける分岐パラメータを最適化する（ステップＳ２０６）。次に、最適性の判定処理部１０７は、最適化基準Ａが収束したか否かを判定する（ステップＳ２０７）。すなわち、最適性の判定処理部１０７は、モデルの最適性を判定する。
【０１３６】
ステップＳ２０７において、最適化基準Ａが収束したと判定されなかった場合に、すなわち、最適ではないと判定された場合に（ステップＳ２０７ａにおけるＮｏ）、ステップＳ２０３乃至ステップＳ２０７の処理が繰り返される。
【０１３７】
一方、ステップＳ１０６において、最適化基準Ａが収束したと判定された場合に、すなわち、最適であると判定された場合に（ステップＳ２０７ａにおけるＹｅｓ）、モデル推定結果の出力装置１０９は、モデル推定結果１１２を出力し、処理を完了する（ステップＳ２０８）。
【０１３８】
次に、本実施形態に係る、階層隠れ構造の最適化処理部２０１の動作を説明する。図１４は、少なくとも１つの実施形態に係る、階層隠れ構造の最適化処理部２０１の動作例を示すフローチャートである。
【０１３９】
まず、経路隠れ変数の和演算処理部２０１−１は、経路隠れ変数のサンプル和を算出する（ステップＳ２１１）。次に、経路除去の判定処理部２０１−２は、算出したサンプル和が十分小さいか否かを判定する（ステップＳ２１２）。次に、経路除去の実行処理部２０１−３は、サンプル和が十分小さいと判定された最下層の経路隠れ変数の変分確率を０として再計算した階層的な隠れ変数の変分確率を出力し、処理を完了する（ステップＳ２１３）。
【０１４０】
以上のように、本実施形態では、階層隠れ構造の最適化処理部２０１が、算出された変分確率が所定の閾値以下である経路をモデルから除外することにより階層隠れ構造を最適化する。
【０１４１】
このような構成にすることで、第１の実施形態の効果に加え、階層的な隠れ変数モデルの推定装置１００のように複数の階層隠れ構造の候補に対して最適化をする必要がなく、一回の実行処理でコンポーネント数も最適化できる。そのため、コンポーネント数、観測確率の種類とパラメータ、及び、変分分布を一度に推定することにより、計算コストを抑えることが可能になる。
【０１４２】
《第３の実施形態》
次に、払出量予測システムの第３の実施形態について説明する。本実施形態に係る払出量予測システムは、階層的な隠れ変数モデルの推定装置の構成が第２の実施形態と異なる。本実施形態に係る、階層的な隠れ変数モデルの推定装置は、階層的な隠れ変数モデルの推定装置２００と比較して、門関数の最適化処理部１０６が門関数の最適化処理部１１３に置き換わったという点において相違する。
【０１４３】
図１５は、第３の実施形態の門関数の最適化処理部１１３の構成例を示すブロック図である。門関数の最適化処理部１１３は、有効分岐ノードの選別処理部１１３−１と、分岐パラメータの最適化の並列処理部１１３−２とを含む。
【０１４４】
有効分岐ノードの選別処理部１１３−１は、階層隠れ構造から有効な分岐ノードを選別する。具体的には、有効分岐ノードの選別処理部１１３−１は、コンポーネントの最適化処理部１０５で推定モデル１０４−５を用い、モデルから除去された経路を考慮することにより、有効な分岐ノードを選別する。ここで、有効な分岐ノードは、階層隠れ構造から除去されていない経路上の分岐ノードを表す。
【０１４５】
分岐パラメータの最適化の並列処理部１１３−２は、有効な分岐ノードに関する分岐パラメータの最適化処理を並列に行い、門関数モデル１０６−６を出力する。具体的には、分岐パラメータの最適化の並列処理部１１３−２は、入力データ１１１と、階層的な隠れ変数の変分確率の計算処理部１０４で算出された階層的な隠れ変数の変分確率１０４−６とを用いて、有効なすべての分岐ノードに関する分岐パラメータをすべて最適化する。
【０１４６】
分岐パラメータの最適化の並列処理部１１３−２は、たとえば、図１５に例示するように、第１の実施形態の分岐パラメータの最適化処理部１０６−３を並列に並べて構成してもよい。このような構成により、一度にすべての門関数の分岐パラメータを最適化できる。
【０１４７】
すなわち、階層的な隠れ変数モデルの推定装置１００、及び、階層的な隠れ変数モデルの推定装置２００は、門関数の最適化処理を１つずつ実行する。一方、本実施形態に係る、階層的な隠れ変数モデルの推定装置は、門関数の最適化処理を並行して行うことができるので、より高速なモデル推定が可能になる。
【０１４８】
尚、門関数の最適化処理部１１３（より詳しくは、有効分岐ノードの選別処理部１１３−１と、分岐パラメータの最適化の並列処理部１１３−２）は、プログラム（階層的な隠れ変数モデルの推定プログラム）に従って動作するコンピュータのＣＰＵによって実現される。
【０１４９】
次に、本実施形態に係る、門関数の最適化処理部１１３の動作を説明する。図１６は、少なくとも１つの実施形態に係る、門関数の最適化処理部１１３の動作例を示すフローチャートである。まず、有効分岐ノードの選別処理部１１３−１は、有効なすべての分岐ノードを選択する（ステップＳ３０１）。次に、分岐パラメータの最適化の並列処理部１１３−２は、有効なすべての分岐ノードを並列に最適化し、処理を完了する（ステップＳ３０２）。
【０１５０】
以上のように、本実施形態によれば、有効分岐ノードの選別処理部１１３−１は、階層隠れ構造のノードから有効な分岐ノードを選別する。また、分岐パラメータの最適化の並列処理部１１３−２は、有効な分岐ノードにおける隠れ変数の変分確率に基づいて門関数を最適化する。その際、分岐パラメータの最適化の並列処理部１１３−２は、有効な分岐ノードに関する各分岐パラメータの最適化を並列に処理する。よって、門関数の最適化処理を並行して行うことができるため、上述する実施形態の効果に加え、より高速なモデル推定が可能になる。
【０１５１】
《第４の実施形態》
次に、本発明の第４の実施形態について説明する。
【０１５２】
第４の実施形態に係る払出量予測システムは、発注管理の対象となる対象店舗についての商品の払出量の予測に基づいて、当該対象店舗の発注管理を行う。具体的には、払出量予測システムは、商品を発注するタイミングで、当該商品の払出量の予測に基づいて発注量を決定する。第４の実施形態に係る払出量予測システムは、発注量決定システムの一例である。
【０１５３】
図１７は、少なくとも１つの実施形態に係る払出量予測装置の構成例を示すブロック図である。本実施形態に係る払出量予測システムは、払出量予測システム１０と比較して、払出量予測装置７００が払出量予測装置８００に置き換わっている。払出量予測装置８００は、発注量予測装置の一例である。
【０１５４】
払出量予測装置８００は、第１の実施形態の構成に加え、さらに分類部８０６、クラスタ推定部８０７、安全量算出部８０８、及び、発注量決定部８０９を備える。また、払出量予測装置８００は、第１の実施形態と比べて、モデル取得部８０２、コンポーネント決定部８０３、払出量予測部８０４、及び、予測結果出力装置８０５の動作が異なる。
【０１５５】
分類部８０６は、学習用データベース３００の店舗属性テーブルから複数の店舗の店舗属性を取得し、当該店舗属性に基づいて店舗をクラスタに分類する。分類部８０６は、たとえば、ｋ−ｍｅａｎｓアルゴリズムや階層的クラスタリングの各種アルゴリズム等に従いクラスタに分類する。ｋ−ｍｅａｎｓアルゴリズムは、ランダムに生成されたクラスタに各個体を分類し、分類された個体の情報に基づいてクラスタの中心を更新する処理を繰り返し実行することにより、個体をクラスタリングするアルゴリズムである。
【０１５６】
クラスタ推定部８０７は、分類部８０６による分類結果に基づいて払出量の予測対象となる店舗がいずれのクラスタに属するかを推定する。
【０１５７】
安全量算出部８０８は、コンポーネント決定部８０３が決定したコンポーネントの推定誤差に基づいて在庫の安全量を算出する。ここで、安全量は、たとえば、在庫量がなくなる可能性が低い在庫量を表す。
【０１５８】
発注量決定部８０９は、対象店舗における商品の在庫量と、払出量予測部８０４が予測した商品の払出量と、安全量算出部８０８が算出した安全量とに基づいて、発注量を決定する。
【０１５９】
本実施形態に係る払出量予測システムの動作について説明する。
【０１６０】
まず、階層的な隠れ変数モデルの推定装置１００は、店舗毎かつ商品毎かつ時間帯毎に、当該時間帯に当該店舗における当該商品の払出量を予測する基礎となる門関数及びコンポーネントを推定する。本実施形態では、階層的な隠れ変数モデルの推定装置１００は、１日を２４等分した各時間帯（すなわち１時間ごとの時間帯）について、門関数及びコンポーネントを推定する。本実施形態では、階層的な隠れ変数モデルの推定装置１００は、第１の実施形態に示す方法により門関数及びコンポーネントを算出する。尚、他の実施形態では、階層的な隠れ変数モデルの推定装置１００は、第２の実施形態に示す方法や第３の実施形態に示す方法で門関数及びコンポーネントを算出してもよい。
【０１６１】
本実施形態では、階層的な隠れ変数モデルの推定装置１００は、推定した各コンポーネントに関する予測誤差の散布度を算出する。予測誤差の散布度としては、たとえば、予測誤差の標準偏差、分散、範囲や、予測誤差率の標準偏差、分散、範囲等が挙げられる。たとえば、予測誤差は、推定モデル１０４−５（コンポーネント）により算出される目的変数の値と、コンポーネント（推定モデル１０４−５）を生成する場合に参照する目的変数の値との差として算出することができる。
【０１６２】
階層的な隠れ変数モデルの推定装置１００は、推定した門関数と、コンポーネントと、該コンポーネントに関する予測誤差の散布度とを、モデルデータベース５００に記録する。
【０１６３】
モデルデータベース５００に門関数、コンポーネント及び各コンポーネントについての予測誤差の散布度が記録されると、払出量予測装置８００は、発注量を予測する処理を開始する。
【０１６４】
図１８Ａ及び図１８Ｂは、少なくとも１つの実施形態に係る払出量予測装置の動作例を示すフローチャートである。
【０１６５】
払出量予測装置８００におけるデータ入力装置７０１は、入力データ７１１を入力する（ステップＳ１４１）。具体的には、データ入力装置７０１は、対象店舗の店舗属性及び日時属性、対象店舗で取り扱っている各商品の商品属性、現在時刻から今回の発注の次に発注した商品が対象店舗に受け入れられる時刻までにおける気象等を、入力データ７１１として入力する。本実施形態では、今回発注した商品が対象店舗に受け入れられる時刻を「第１の時刻」と表す。すなわち、第１の時刻は、未来の時刻である。また、今回の発注の次に発注する商品が対象店舗に受け入れられる時刻を「第２の時刻」と表す。また、データ入力装置７０１は、対象店舗の現在時刻における在庫量及び現在時刻から第１の時刻までの商品の受入量を入力する。
【０１６６】
次に、モデル取得部８０２は、対象店舗が新規店舗であるか否かを判定する（ステップＳ１４２）。たとえば、モデル取得部８０２は、モデルデータベース５００に、対象店舗に関する門関数、コンポーネント及び予測誤差の散布度に関する情報が記録されていない場合に、対象店舗が新規店舗であると判定する。また、たとえば、モデル取得部８０２は、学習用データベース３００の払出テーブルの中に、対象店舗の店舗ＩＤに関連付けされた情報が無い場合に、対象店舗が新規店舗であると判定する。
【０１６７】
モデル取得部８０２は、対象店舗が既設店舗であると判定する場合（ステップＳ１４２：ＮＯ）に、モデルデータベース５００から、対象店舗に関する門関数、コンポーネント及び予測誤差の散布度を取得する（ステップＳ１４３）。次に、払出量予測装置８００は、入力データ７１１を１つずつ選択し、選択した入力データ７１１について、以下に示すステップＳ１４５乃至ステップＳ１４６の処理を実行する（ステップＳ１４４）。すなわち、払出量予測装置８００は、対象店舗が取り扱う商品毎かつ現在時刻から第２の時刻までの１時間毎について、ステップＳ１４５乃至ステップＳ１４６の処理を実行する。
【０１６８】
まず、コンポーネント決定部８０３は、階層隠れ構造に含まれる根ノードから最下層におけるノードまで、モデル取得部８０２が取得した門関数に基づいてノードをたどることにより、払出量の予測に用いるコンポーネントを決定する（ステップＳ１４５）。次に、払出量予測部８０４は、ステップＳ１４４において選択した入力データ７１１を、当該コンポーネントの入力として値を設定することにより、払出量を予測する（ステップＳ１４６）。
【０１６９】
他方、モデル取得部８０２が、対象店舗が新規店舗であると判定する場合に（ステップＳ１４２：ＹＥＳ）、分類部８０６は、学習用データベース３００の店舗属性テーブルから、複数の店舗の店舗属性を読み取る。次に、分類部８０６は、当該店舗属性に基づいて、店舗をクラスタに分類する（ステップＳ１４７）。尚、分類部８０６は、対象店舗を含めてクラスタに分類してもよい。次に、クラスタ推定部８０７は、分類部８０６による分類結果に基づき、対象店舗が属する特定のクラスタを推定する（ステップＳ１４８）。
【０１７０】
次に、払出量予測装置８００は、入力データ７１１を１つずつ選択し、選択した入力データ７１１について、以下に示すステップＳ１５０乃至ステップＳ１５４の処理を実行する（ステップＳ１４９）。
【０１７１】
払出量予測装置８００は、該特定のクラスタに属する既設店舗を１つずつ選択し、選択した既設店舗について、以下に示すステップＳ１５１乃至ステップＳ１５３の処理を実行する（ステップＳ１５０）。
【０１７２】
まず、モデル取得部８０２は、モデルデータベース５００からステップＳ１５０で選択した既設店舗に関する門関数、コンポーネント及び予測誤差の散布度を読み取る（ステップＳ１５１）。次に、コンポーネント決定部８０３は、モデル取得部８０２が読み取った門関数に基づき、階層隠れ構造の根ノードから最下層におけるノードまで、ノードをたどることで、払出量の予測に用いるコンポーネントを決定する（ステップＳ１５２）。すなわち、この場合に、コンポーネント決定部８０３は、該門関数を入力データ７１１に含まれる情報に適用することにより、コンポーネントを決定する。次に、払出量予測部８０４は、ステップＳ１５１で選択した入力データ７１１を、当該コンポーネントの入力として値を設定することにより、払出量を予測する（ステップＳ１５３）。
【０１７３】
すなわち、ステップＳ１５１乃至ステップＳ１５３の処理を、対象店舗が属するクラスタ内の全ての既設店舗について実行する。これにより、特定のクラスタに属する既設店舗に関して、当該商品の払出量が予測される。
【０１７４】
次に、払出量予測部８０４は、対象店舗における当該商品の払出量の予測値として、商品ごとに当該商品の各店舗における払出量の平均値を算出する（ステップＳ１５４）。これにより、払出量予測装置８００は、過去の払出量の情報が蓄積されていない新規店舗についても、商品の払出量を予測する。
【０１７５】
払出量予測装置８００が、全ての入力データ７１１についてステップＳ１４５乃至ステップＳ１４６の処理、またはステップＳ１４９乃至ステップＳ１５４の処理を実行すると、発注量決定部８０９は、第１の時刻における商品の在庫量を推定する（ステップＳ１５５）。具体的には、発注量決定部８０９は、データ入力装置７０１が入力した対象店舗の現在時刻における商品の在庫量と、現在時刻から第１の時刻までの商品の受入量との和を算出する。次に、発注量決定部８０９は、算出した和から、払出量予測部８０４が予測した現在時刻から第１の時刻までの商品の予測払出量の総和を減算することにより、第１の時刻における商品の在庫量を推定する。
【０１７６】
次に、発注量決定部８０９は、推定した第１の時刻における商品の在庫量に、払出量予測部８０４が予測した第１の時刻から第２の時刻までの商品の予測払出量の総和を加算することにより、当該商品の基準発注量を算出する（ステップＳ１５６）。
【０１７７】
次に、安全量算出部８０８は、ステップＳ１４５またはステップＳ１５２で階層的な隠れ変数モデルの推定装置１００が決定したコンポーネントの予測誤差の散布度を、モデル取得部８０２から読み取る（ステップＳ１５７）。次に、安全量算出部８０８は、取得した予測誤差の散布度に基づいて、当該商品の安全量を算出する（ステップＳ１５８）。予測誤差の散布度が予測誤差の標準偏差である場合に、安全量算出部８０８は、たとえば、当該標準偏差の総和に所定の係数を乗じることにより、安全量を算出することができる。また、予測誤差の散布度が予測誤差率の標準偏差である場合に、安全量算出部８０８は、たとえば、第１の時刻から第２の時刻までの予測払出量の総和に当該標準偏差の平均値及び所定の係数を乗じることにより、安全量を算出することができる。
【０１７８】
そして、発注量決定部８０９は、ステップＳ１５６にて算出される基準発注量に、ステップＳ１５８にて算出される安全量を加算することにより、当該商品の発注量を決定する（ステップＳ１５９）。予測結果出力装置７０５は、発注量決定部８０９が決定した発注量８１２を出力する（ステップＳ１６０）。このように、払出量予測装置８００は、門関数に基づき適切なコンポーネントを選択することにより、適切な発注量を決定することができる。
【０１７９】
以上のように、本実施形態によれば、払出量予測装置８００は、対象店舗が新規店舗であるか既存店舗であるかに関わらず、精度よく払出量を予測し、また適切な発注量を決定することができる。これは、払出量予測装置８００が、対象店舗に類似する（または、一致する）既存店舗を選び、該既存店舗に関する門関数等に基づいて、払出量を決定するからである。
【０１８０】
尚、本実施形態では、払出量予測部８０４が、既存店舗の現在時刻から第２の時刻までの払出量の予測に用いるコンポーネントに基づいて、新規店舗の払出量を予測する場合について説明したが、これに限られない。たとえば、他の実施形態では、払出量予測部８０４が、既存店舗の新規開店時における商品の売上データに基づいて学習されたコンポーネントに基づいてもよい。この場合に、払出量予測部８０４は、より精度よく、払出量を予測することができる。
【０１８１】
また、本実施形態では、払出量予測部８０４が、新規店舗である対象店舗の払出量を予測する場合に、対象店舗と同じクラスタの既存店舗の予測払出量の平均値を算出する場合について説明したが、これに限られない。たとえば、他の実施形態では、払出量予測部８０４は、対象店舗と既存店舗との類似度に応じた重み付けをし、該重み付けに基づき、重み付き平均値を算出してもよい。また、払出量予測部８０４は、中央値や最大値等、他の代表値を用いて、払出量を算出してもよい。
【０１８２】
また、本実施形態では、対象店舗が新規店舗であるときに、既設店舗のモデルに基づいて払出量を予測する場合について説明したが、これに限られない。たとえば、他の実施形態では、対象店舗が既設店舗である場合であっても、払出量予測部８０４は、対象店舗で新たに取り扱いを始める商品について、対象店舗と同じクラスタの既設店舗のモデルに基づいて払出量を予測してもよい。
【０１８３】
また、本実施形態では、第２の時刻が、今回の発注の次に発注した商品が対象店舗に受け入れられる時刻である場合について説明したが、これに限られない。たとえば、他の実施形態では、商品に賞味期限や消費期限等の販売期限が設けられている場合に、払出量予測装置８００は、今回発注した商品の販売期限を第２の時刻として発注量の決定を行ってもよい。これにより、払出量予測装置８００は、商品の販売期限が経過することによる在庫ロスが発生しないように、発注量を決定することができる。また、他の実施形態では、払出量予測装置８００は、今回の発注の次に発注した商品が対象店舗に受け入れられる時刻と今回発注した商品の販売期限のうち早い方の時刻を第２の時刻として発注量の決定を行ってもよい。
【０１８４】
また、本実施形態では、販売機会損失が生じないように、払出量予測装置８００が基準発注量と安全量とを加算した量を発注量とする場合について説明したが、これに限られない。たとえば、他の実施形態では、在庫余りの防止を目的として、払出量予測装置８００は、基準発注量から予測誤差の散布度に応じた量を減算した量を発注量としてもよい。
【０１８５】
《第５の実施形態》
次に、払出量予測システムの第５の実施形態について説明する。
【０１８６】
図１９は、少なくとも１つの実施形態に係る払出量予測装置の構成例を示すブロック図である。本実施形態に係る払出量予測システムは、第４の実施形態に係る払出量予測システムと比較して、払出量予測装置８００が払出量予測装置８２０に置き換わった構成を有する。払出量予測装置８２０は、払出量予測装置８００と比較して、分類部８０６が分類部８２６に置き換わり、クラスタ推定部８０７がクラスタ推定部８２７に置き換わった構成を有する。
【０１８７】
分類部８２６は、払出量に係る情報に基づいて、既設店舗を複数のクラスタに分類する。分類部８２６は、ｋ−ｍｅａｎｓアルゴリズムや階層的クラスタリングの各種アルゴリズム等により、既設店舗をクラスタに分類する。たとえば、分類部８２６は、モデル取得部８０２が取得したコンポーネントを表す係数等（学習結果のモデル）に基づいて、既存店舗をクラスタに分類する。コンポーネントは、既設店舗における払出量を算出するための情報である。つまり、分類部８２６は、複数の既存店舗を、当該既設店舗の学習結果のモデルの類似性に基づいて複数のクラスタに分類する。これにより、同じクラスタにおける店舗ごとの払出傾向のばらつきが少なくなる。
【０１８８】
クラスタ推定部８２７は、分類部８２６が分類したクラスタと、店舗属性とを関連付ける関係を推定する。
【０１８９】
説明の便宜上、クラスタは、一意にクラスタを識別可能なクラスタ識別子に関連付けされているとする。
【０１９０】
上述した処理において、クラスタ推定部８２７は、入力として、店舗属性（すなわち、説明変数）と、クラスタ識別子（すなわち、目的変数）を受け取り、説明変数と目的変数とを関連付ける関数を推定する。クラスタ推定部８２７は、たとえば、ｃ４．５決定木アルゴリズムや、サポートベクターマシン等の教師あり学習手順に従い、該関数を推定する。クラスタ推定部８２７は、新規店舗の店舗属性と、推定した関係とに基づいて、当該新規店舗に関するクラスタ識別子を推定する。すなわち、クラスタ推定部８２７は、当該新規店舗が属する特定のクラスタを推定する。
【０１９１】
これにより、本実施形態によれば、払出量予測装置８２０は、新規店舗と払出傾向が類似（または、一致）すると推定される既設店舗のクラスタに基づいて、商品の払出量の予測をすることができる。
【０１９２】
尚、本実施形態では、分類部８２６が、モデル取得部８０２が取得したコンポーネントの係数等に基づいて既存店舗をクラスタに分類する場合について説明したが、これに限られない。たとえば、他の実施形態では、分類部８２６は、学習用データベース３００の払出テーブルが記憶する情報から、既設店舗における商品カテゴリ（たとえば、文具、飲料等）ごとの顧客あたりの払出率（たとえば、ＰＩ（Ｐｕｒｃｈａｓｅ＿Ｉｎｄｅｘ）値等）を算出し、当該払出率に基づいて、既存店舗をクラスタに分類してもよい。
【０１９３】
《第６の実施形態》
次に、払出量予測システムの第６の実施形態について説明する。
【０１９４】
図２０は、少なくとも１つの実施形態に係る払出量予測システムの構成例を示すブロック図である。本実施形態に係る払出量予測システム２０は、第５の実施形態に係る払出量予測システムに商品推薦装置９００をさらに備える。
【０１９５】
図２１は、少なくとも１つの実施形態に係る商品推薦装置の構成例を示すブロック図である。
【０１９６】
商品推薦装置９００は、モデル取得部９０１と、分類部９０２と、払出量取得部９０３と、評価値算出部９０４と、商品推薦部９０５と、推薦結果出力装置９０６とを備える。
【０１９７】
モデル取得部９０１は、モデルデータベース５００から、店舗ごとにコンポーネントを取得する。
【０１９８】
分類部９０２は、モデル取得部９０１が取得したコンポーネントの係数等に基づいて既設店舗を複数のクラスタに分類する。
【０１９９】
払出量取得部９０３は、学習用データベース３００の払出テーブルから、推薦の対象となる対象店舗と同じクラスタに属する店舗が取り扱う各商品の払出量を取得する。尚、推薦の対象となる対象店舗と同じクラスタに属する店舗には、対象店舗も含まれる。
【０２００】
評価値算出部９０４は、分類部９０２によって対象店舗と同じクラスタに分類された店舗が取り扱う商品の評価値を算出する。評価値は、払出量及び取り扱い店舗数に応じて増加（単調増加）する値である。評価値としては、たとえば、ＰＩ値と取り扱い店舗数の積や、正規化したＰＩ値と正規化した取り扱い店舗数の和等に求めることができる。
【０２０１】
図２２は、クラスタにおける商品の売上傾向の例を示す図である。
【０２０２】
複数の店舗において取り扱われる商品は、ＰＩ値と取り扱い店舗数とに基づいて、図２２に示すように分類することができる。図２２の横軸は取り扱い店舗数を示し、縦軸はＰＩ値を示す。図２２の左上の領域であるＡ−１からＡ−２まで、または、Ｂ−１からＢ−２までに相当する商品は、比較的売れ筋の商品であることが分かる。他方、右上の領域であるＡ−４からＡ−５まで、または、Ｂ−４からＢ−５までに相当する商品は、一部店舗での売れ筋の商品であることが分かる。すなわち、当該領域に相当する商品は、万人受けする商品であるとは限らない。また、下方の領域であるＤ−１からＤ−５まで、または、Ｅ−１からＥ−５までは、死に筋の商品であることが分かる。
【０２０３】
評価値算出部９０４は、払出量及び取り扱い店舗数に応じて増加する値を評価値として算出する。たとえば、評価値は、ＰＩ値に所定の係数を乗じた値と取扱店舗率に所定の係数を乗じた値の和によって表すことができる。取扱店舗率は、取扱店舗数を総店舗数で除算した値である。そのため、図２２において左上の領域に相当する商品ほど評価値が高くなり、右下の領域に相当する商品ほど評価値が低くなる。したがって、評価値が高いほど、その商品が売れ筋であることが分かる。
【０２０４】
商品推薦部９０５は、対象店舗が取り扱う商品のうち、払出量取得部９０３が取得した払出量が所定の閾値以下である商品について、当該商品との入れ替えを推薦する商品を決定する。具体的には、商品推薦部９０５は、払出量が少ない商品を、当該商品より評価値が高い商品に入れ替えることを推薦する。本実施形態では、商品推薦部９０５は、たとえば、払出量取得部９０３が取得した払出量が全体の下位２０％となる商品について、入れ替えを推薦する。
【０２０５】
推薦結果出力装置９０６は、商品推薦部９０５が出力した情報に関する推薦結果９１１を出力する。
【０２０６】
図２３は、少なくとも１つの実施形態に係る商品推薦装置の動作例を示すフローチャートである。
【０２０７】
まず、モデル取得部９０１は、モデルデータベース５００からすべての既設店舗のコンポーネントを取得する（ステップＳ４０１）。次に、分類部９０２は、モデル取得部９０１が取得したコンポーネントの係数に基づいて、既設店舗を複数のクラスタに分類する（ステップＳ４０２）。たとえば、分類部９０２は、該コンポーネント係数を用いて既設店舗における類似度を算出する。
【０２０８】
次に、払出量取得部９０３は、対象店舗と同じクラスタに属する既設店舗が取り扱う商品の払出量を、学習用データベース３００から取得する（ステップＳ４０３）。次に、評価値算出部９０４は、払出量取得部９０３が払出量を取得した各商品について、評価値を算出する（ステップＳ４０４）。次に、商品推薦部９０５は、払出量取得部９０３が取得した払出量に基づいて、払出量が所定の閾値より低い商品（全商品の下位２０％に相当する商品）を特定する（ステップＳ４０５）。
【０２０９】
商品推薦部９０５は、たとえば、払出量が下位２０％に相当する商品について、当該商品と同じカテゴリの商品であって、当該商品より評価値が高い商品を、当該商品との入れ替えを推薦する商品に決定する（ステップＳ４０６）。そして、推薦結果出力装置９０６は、商品推薦部９０５による推薦結果９１１を出力する（ステップＳ４０７）。対象店舗の管理者等は、推薦結果９１１に基づいて対象店舗の取扱商品を決定する。そして、払出量予測装置８１０は、推薦結果９１１に基づいて決定された取扱商品について、第１から第５の実施形態に示す払出量の予測処理や、発注量の決定処理を行う。
【０２１０】
このように、本実施形態によれば、商品推薦装置９００は、一部の店舗でのみ売れ行きがよい商品ではなく、多くの店舗で売れ筋となっている商品を推薦することができる。
【０２１１】
尚、本実施形態では、商品推薦装置９００は、既設店舗が取り扱っている商品と入れ替えるべき商品を推薦する場合について説明したが、これに限られない。たとえば、他の実施形態では、商品推薦装置９００は、既設店舗に追加導入すべき商品を推薦してもよい。またたとえば、他の実施形態では、商品推薦装置９００は、新規店舗が取り扱うべき商品を推薦してもよい。
【０２１２】
また、本実施形態では、分類部９０２が、モデルデータベース５００が記憶するコンポーネントに基づいてクラスタに分類する場合について説明したが、これに限られない。たとえば、他の実施形態では、分類部９０２は、店舗属性に基づいてクラスタリングを行ってもよい。また、たとえば、他の実施形態では、分類部９０２は、商品のカテゴリごとのＰＩ値に基づいてクラスタリングを行ってもよい。
【０２１３】
また、本実施形態では、評価値算出部９０４が、払出量及び取扱店舗数を基に評価値を算出する場合について説明したが、これに限られない。たとえば、他の実施形態では、評価値算出部９０４は、数回前までの推薦時の評価値を商品ごとに記憶しておき、その値の変化に基づいて、現在の評価値を更新してもよい。すなわち、評価値算出部９０４は、たとえば、払出量及び取扱店舗数に基づいて算出された主評価値に、主評価値と過去の評価値との差に所定の係数を乗じた補正値を加算することにより更新してもよい。たとえば、評価値は、式Ｂに従い算出することができる。
【０２１４】
評価値＝主評価値＋ａ１×（主評価値−１回前の評価値）＋ａ２×（主評価値−２回前の評価値）＋……＋ａｎ×（主評価値−ｎ回前の評価値）・・・（式Ｂ）、
ただし、係数ａ１乃至ａｎは、予め定められた値である。
【０２１５】
《基本構成》
次に、商品推薦装置の基本構成について説明する。図２４は、商品推薦装置の基本構成を示すブロック図である。
【０２１６】
商品推薦装置は、評価値算出部９０と、商品推薦部９１とを備える。
【０２１７】
評価値算出部９０は、複数の店舗で取り扱われている複数の商品について、払出量及び取り扱い店舗数に応じて増加（単調増加）する評価値を算出する。評価値算出部９０の例として、評価値算出部９０４が挙げられる。
【０２１８】
商品推薦部９１は、店舗が取り扱う商品より評価値が高い商品を推薦する。商品推薦部９１の例として、商品推薦部９０５が挙げられる。
【０２１９】
そのような構成により、商品推薦装置は、一部の店舗でのみ売れ行きがよい商品ではなく、多くの店舗で売れ筋となっている商品を推薦することができる。
【０２２０】
図２５は、少なくとも１つの実施形態に係るコンピュータが有する構成を示すブロック図である。
【０２２１】
コンピュータ１０００は、ＣＰＵ１００１と、主記憶装置１００２と、補助記憶装置１００３と、インタフェース１００４とを備える。
【０２２２】
上述の階層的な隠れ変数モデルの推定装置や払出量予測装置は、それぞれコンピュータ１０００に実装される。尚、階層的な隠れ変数モデルの推定装置が実装されたコンピュータ１０００と払出量予測装置が実装されたコンピュータ１０００は異なってもよい。そして、上述した各処理部の動作は、プログラム（階層的な隠れ変数モデルの推定プログラムや払出量予測プログラム）の形式で補助記憶装置１００３に記憶されている。ＣＰＵ１００１は、プログラムを補助記憶装置１００３から読み出して主記憶装置１００２に展開し、当該プログラムに従って上記処理を実行する。
【０２２３】
尚、少なくとも１つの実施形態において、補助記憶装置１００３は、一時的でない有形の媒体の一例である。一時的でない有形の媒体の他の例としては、インタフェース１００４を介して接続される磁気ディスク、光磁気ディスク、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）−ＲＯＭ、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ１０００に配信される場合に、配信を受けたコンピュータ１０００が当該プログラムを主記憶装置１００２に展開し、上記処理を実行してもよい。
【０２２４】
また、当該プログラムは、前述した機能の一部を実現してもよい。さらに、当該プログラムは、前述した機能を補助記憶装置１００３に既に記憶されている他のプログラムとの組み合わせで実現するプログラム、いわゆる差分ファイル（差分プログラム）であってもよい。
【０２２５】
以上、上述した実施形態を模範的な例として本発明を説明した。しかし、本発明は、上述した実施形態には限定されない。すなわち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【０２２６】
この出願は、２０１３年９月２０日に出願された日本出願特願２０１３−１９５９６６を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０２２７】
１０    払出量予測システム
２０    払出量予測システム
１００    階層的な隠れ変数モデルの推定装置
１０１    データ入力装置
１０２    階層隠れ構造の設定部
１０３    初期化処理部
１０４    階層的な隠れ変数の変分確率の計算処理部
１０５    コンポーネントの最適化処理部
１０６    門関数の最適化処理部
１０７    最適性の判定処理部
１０８    最適モデルの選択処理部
１０９    モデル推定結果の出力装置
１１１    入力データ
１１２    モデル推定結果
１０４−１    最下層の経路隠れ変数の変分確率の計算処理部
１０４−２    階層設定部
１０４−３    上層の経路隠れ変数の変分確率の計算処理部
１０４−４    階層計算終了の判定処理部
１０４−５    推定モデル
１０４−６    階層的な隠れ変数の変分確率
１０６−１    分岐ノードの情報取得部
１０６−２    分岐ノードの選択処理部
１０６−３    分岐パラメータの最適化処理部
１０６−４    全分岐ノードの最適化終了の判定処理部
１０６−６    門関数モデル
１１３    門関数の最適化処理部
１１３−１    有効分岐ノードの選別処理部
１１３−２    分岐パラメータの最適化の並列処理部
２００    階層的な隠れ変数モデルの推定装置
２０１    階層隠れ構造の最適化処理部
２０１−１    経路隠れ変数の和演算処理部
２０１−２    経路除去の判定処理部
２０１−３    経路除去の実行処理部
３００    学習用データベース
１００    階層的な隠れ変数モデルの推定装置
５００    モデルデータベース
７００    払出量予測装置
７０１    データ入力装置
７０２    モデル取得部
７０３    コンポーネント決定部
７０４    払出量予測部
７０５    予測結果出力装置
７１１    入力データ
７１２    予測結果
８００    払出量予測装置
８２０    払出量予測装置
８０２    モデル取得部
８０３    コンポーネント決定部
８０４    払出量予測部
８０５    予測結果出力装置
８０６    分類部
８２６    分類部
８１２    発注量
８１０    払出量予測装置
８０７    クラスタ推定部
８２７    クラスタ推定部
８０８    安全量算出部
８０９    発注量決定部
９００    商品推薦装置
９０１    モデル取得部
９０２    分類部
９０３    払出量取得部
９０４    評価値算出部
９０５    商品推薦部
９０６    推薦結果出力装置
９１１    推薦結果
９０    評価値算出部
９１    商品推薦部
１０００    コンピュータ
１００１    ＣＰＵ
１００２    主記憶装置
１００３    補助記憶装置
１００４    インタフェース
【図１】
0006459968.tif 000009
【図２Ａ】
0006459968.tif 000010
【図２Ｂ】
0006459968.tif 000011
【図２Ｃ】
0006459968.tif 000012
【図２Ｄ】
0006459968.tif 000013
【図２Ｅ】
0006459968.tif 000014
【図２Ｆ】
0006459968.tif 000015
【図２Ｇ】
0006459968.tif 000016
【図３】
0006459968.tif 000017
【図４】
0006459968.tif 000018
【図５】
0006459968.tif 000019
【図６】
0006459968.tif 000020
【図７】
0006459968.tif 000021
【図８】
0006459968.tif 000022
【図９】
0006459968.tif 000023
【図１０】
0006459968.tif 000024
【図１１】
0006459968.tif 000025
【図１２】
0006459968.tif 000026
【図１３】
0006459968.tif 000027
【図１４】
0006459968.tif 000028
【図１５】
0006459968.tif 000029
【図１６】
0006459968.tif 000030
【図１７】
0006459968.tif 000031
【図１８Ａ】
0006459968.tif 000032
【図１８Ｂ】
0006459968.tif 000033
【図１９】
0006459968.tif 000034
【図２０】
0006459968.tif 000035
【図２１】
0006459968.tif 000036
【図２２】
0006459968.tif 000037
【図２３】
0006459968.tif 000038
【図２４】
0006459968.tif 000039
【図２５】
0006459968.tif 000040