(57)【特許請求の範囲】
【請求項１】
将来の売上に影響を与え得る情報である１つ以上の説明変数である予測用データを入力する予測用データ入力部と、
予測実施時点から将来の予測対象時点までの間に実施予定のＣＭの内容を示す説明変数である露出パタンを生成する露出パタン生成部と、
隠れ変数が木構造で表され、当該木構造の最下層のノードに確率モデルを表すコンポーネントが配された構造である階層隠れ構造と、当該階層隠れ構造のノードにおいて分岐方向を決定する門関数と、前記予測用データおよび前記露出パタンとに基づいて、前記売上の予測に用いる前記コンポーネントを決定するコンポーネント決定部と、
前記コンポーネント決定部が決定した前記コンポーネントと、前記予測用データおよび前記露出パタンとに基づいて、前記売上を予測する売上予測部とを備えた
ことを特徴とするＣＭ計画支援システム。
【請求項２】
コンポーネント決定部は、売上により影響を与え得る説明変数を出力する
請求項１記載のＣＭ計画支援システム。
【請求項３】
露出パタン生成部は、出力された説明変数の比重を高くする露出パタンを生成する
請求項２記載のＣＭ計画支援システム。
【請求項４】
予測された売上を評価する売上評価部を備え、
前記売上評価部は、売上予測部による予測処理または予測される売上の増分が所定の条件を満たすまで、露出パタン生成部に新たな露出パタンの生成を指示する
請求項３記載のＣＭ計画支援システム。
【請求項５】
コンポーネント決定部は、売上により影響を与え得る説明変数を、階層隠れ構造とともに出力する
請求項２から請求項４のうちのいずれか１項に記載のＣＭ計画支援システム。
【請求項６】
コンポーネント決定部は、階層隠れ構造の門関数が示す分岐条件を出力する
請求項５記載のＣＭ計画支援システム。
【請求項７】
将来の売上に影響を与え得る情報である１つ以上の説明変数である予測用データを入力し、
予測実施時点から将来の予測対象時点までの間に実施予定のＣＭの内容を示す説明変数である露出パタンを生成し、
隠れ変数が木構造で表され、当該木構造の最下層のノードに確率モデルを表すコンポーネントが配された構造である階層隠れ構造と、当該階層隠れ構造のノードにおいて分岐方向を決定する門関数と、前記予測用データおよび前記露出パタンとに基づいて、前記売上の予測に用いる前記コンポーネントを決定し、
決定された前記コンポーネントと、前記予測用データおよび前記露出パタンとに基づいて、前記売上を予測する
ことを特徴とするＣＭ計画支援方法。
【請求項８】
コンピュータに、
将来の売上に影響を与え得る情報である１つ以上の説明変数である予測用データを入力する予測用データ入力処理、
予測実施時点から将来の予測対象時点までの間に実施予定のＣＭの内容を示す説明変数である露出パタンを生成する露出パタン生成処理、
隠れ変数が木構造で表され、当該木構造の最下層のノードに確率モデルを表すコンポーネントが配された構造である階層隠れ構造と、当該階層隠れ構造のノードにおいて分岐方向を決定する門関数と、前記予測用データおよび前記露出パタンとに基づいて、前記売上の予測に用いる前記コンポーネントを決定するコンポーネント決定処理、および、
前記コンポーネント決定処理で決定された前記コンポーネントと、前記予測用データおよび前記露出パタンとに基づいて、前記売上を予測する売上予測処理
を実行させるためのＣＭ計画支援プログラム。
【請求項９】
将来の売上を示す目的変数と当該売上に影響を与え得る情報である１つ以上の説明変数の複数の組み合わせである学習用データを入力する学習用データ入力部と、
隠れ変数が木構造で表され、当該木構造の最下層のノードに確率モデルを表すコンポーネントが配された構造である階層隠れ構造を設定する階層隠れ構造設定部と、
前記学習用データ入力部が入力した学習用データと前記コンポーネントとに基づいて、前記階層隠れ構造において根ノードから対象ノードまでを結んだ経路に含まれる隠れ変数である経路隠れ変数の変分確率を計算する変分確率計算部と、
前記学習用データ入力部が入力した学習用データに基づいて、算出された変分確率に対して前記コンポーネントを最適化するコンポーネント最適化処理部と、
前記階層隠れ構造のノードにおいて前記説明変数に応じた分岐方向を決定するモデルである門関数モデルを、当該ノードにおける隠れ変数の変分確率に基づいて最適化する門関数最適化部と、
１つ以上の説明変数を予測用データとして入力する予測用データ入力部と、
予測実施時点から将来の予測対象時点までの間に実施予定のＣＭの内容を示す説明変数である露出パタンを生成する露出パタン生成部と、
前記門関数最適化部が最適化した門関数と、前記予測用データおよび前記露出パタンとに基づいて、前記コンポーネント最適化処理部が最適化した前記コンポーネントのうち、前記売上の予測に用いる前記コンポーネントを決定するコンポーネント決定部と、
前記コンポーネント決定部が決定した前記コンポーネントと、前記予測用データおよび前記露出パタンとに基づいて、前記売上を予測する売上予測部とを備えた
ことを特徴とする売上予測支援システム。
【請求項１０】
将来の売上を示す目的変数と当該売上に影響を与え得る情報である１つ以上の説明変数の複数の組み合わせである学習用データを入力し、
隠れ変数が木構造で表され、当該木構造の最下層のノードに確率モデルを表すコンポーネントが配された構造である階層隠れ構造を設定し、
入力された学習用データと前記コンポーネントとに基づいて、前記階層隠れ構造において根ノードから対象ノードまでを結んだ経路に含まれる隠れ変数である経路隠れ変数の変分確率を計算し、
入力された学習用データに基づいて、算出された変分確率に対して前記コンポーネントを最適化し、
前記階層隠れ構造のノードにおいて前記説明変数に応じた分岐方向を決定するモデルである門関数モデルを、当該ノードにおける隠れ変数の変分確率に基づいて最適化し、
１つ以上の説明変数を予測用データとして入力し、
予測実施時点から将来の予測対象時点までの間に実施予定のＣＭの内容を示す説明変数である露出パタンを生成し、
最適化された門関数と、前記予測用データおよび前記露出パタンとに基づいて、最適化された前記コンポーネントのうち、前記売上の予測に用いる前記コンポーネントを決定し、
決定された前記コンポーネントと、前記予測用データおよび前記露出パタンとに基づいて、前記売上を予測する
ことを特徴とする売上予測支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＭ計画に基づく売上を予測するＣＭ計画支援システム、ＣＭ計画支援方法およびＣＭ計画支援プログラム、並びに、売上予測支援システム、売上予測支援方法および売上予測支援プログラムに関する。
【背景技術】
【０００２】
商品の売上を上げるために、様々なマーケティング活動が行われている。特に、近年の情報メディアの発展に伴い、様々な情報メディアを利用して行われる広告や口コミなども、商品の売上に大きな影響を及ぼすことが知られている。そのため、商品の売上を予測するためには、売上に影響する様々な要因を適切に分析することが必要になる。【０００３】
例えば、特許文献１には、売上額を予測する販売促進計画支援システムが記載されている。特許文献１に記載された販売促進計画支援システムは、所望の販売期間における顧客の受注件数又は売上金額と、所望の販売促進時期に実行された販売促進手段毎の実行数量の相互相関係数を算出する。【０００４】
また、複数の要因から生じたデータを要因ごとに分離するため、モデル化の際には、混合隠れ変数モデルが用いられることも多い。非特許文献１には、隠れ変数モデルの代表例である混合モデルに対して、完全周辺尤度関数を近似して、その下界（下限）を最大化することで、観測確率の種類を決定する方法が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１２１６８号公報
【非特許文献】
【０００６】
【非特許文献１】Ryohei Fujimaki, Satoshi Morinaga: Factorized Asymptotic Bayesian Inference for Mixture Modeling. Proceedings of the the fifteenth international conference on Artificial Intelligence and Statistics (AISTATS), March 2012.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載されたシステムでは、過去の受注件数又は売上金額と販売促進手段の実行数量との関係にのみ着目して売上を予測しており、各販売促進手段の内容までは考慮されていない。そのため、特許文献１に記載されたシステムでは、実行される各販売促進手段の要因の中から、売上に影響する要因を決定することは困難であるため、その要因に基づいてコマーシャル（以下、ＣＭと記す。）計画を行うことは困難である。【０００８】
非特許文献１に記載された方法を用いることで、売上に影響する観測確率の種類を決定することは可能である。しかし、非特許文献１に記載された方法の場合、階層的な隠れ変数を含むモデルのモデル選択問題は解決できないという技術的課題がある。その理由は、非特許文献１に記載された方法は、階層的な隠れ変数を考慮していないため、自明には計算手順を構築できないからである。また、非特許文献１に記載された方法は、階層的な隠れ変数がある場合には適用できないという強い仮定に基づいているため、この方法を単純に適用した場合には理論的正当性を失ってしまうからである。【０００９】
本発明の目的は、上述した課題を解決するＣＭ計画支援システム、ＣＭ計画支援方法およびＣＭ計画支援プログラム、並びに、売上予測支援システム、売上予測支援方法および売上予測支援プログラムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明によるＣＭ計画支援システムは、将来の売上に影響を与え得る情報である１つ以上の説明変数である予測用データを入力する予測用データ入力部と、予測実施時点から将来の予測対象時点までの間に実施予定のＣＭの内容を示す説明変数である露出パタンを生成する露出パタン生成部と、隠れ変数が木構造で表され、その木構造の最下層のノードに確率モデルを表すコンポーネントが配された構造である階層隠れ構造と、その階層隠れ構造のノードにおいて分岐方向を決定する門関数と、予測用データおよび露出パタンとに基づいて、売上の予測に用いるコンポーネントを決定するコンポーネント決定部と、コンポーネント決定部が決定したコンポーネントと、予測用データおよび露出パタンとに基づいて、売上を予測する売上予測部とを備えたことを特徴とする。【００１１】
本発明によるＣＭ計画支援方法は、将来の売上に影響を与え得る情報である１つ以上の説明変数である予測用データを入力し、予測実施時点から将来の予測対象時点までの間に実施予定のＣＭの内容を示す説明変数である露出パタンを生成し、隠れ変数が木構造で表され、その木構造の最下層のノードに確率モデルを表すコンポーネントが配された構造である階層隠れ構造と、その階層隠れ構造のノードにおいて分岐方向を決定する門関数と、予測用データおよび露出パタンとに基づいて、売上の予測に用いるコンポーネントを決定し、決定されたコンポーネントと、予測用データおよび露出パタンとに基づいて、売上を予測することを特徴とする。【００１２】
本発明によるＣＭ計画支援プログラムは、コンピュータに、将来の売上に影響を与え得る情報である１つ以上の説明変数である予測用データを入力する予測用データ入力処理、予測実施時点から将来の予測対象時点までの間に実施予定のＣＭの内容を示す説明変数である露出パタンを生成する露出パタン生成処理、隠れ変数が木構造で表され、その木構造の最下層のノードに確率モデルを表すコンポーネントが配された構造である階層隠れ構造と、その階層隠れ構造のノードにおいて分岐方向を決定する門関数と、予測用データおよび露出パタンとに基づいて、売上の予測に用いるコンポーネントを決定するコンポーネント決定処理、および、コンポーネント決定処理で決定されたコンポーネントと、予測用データおよび露出パタンとに基づいて、売上を予測する売上予測処理を実行させることを特徴とする。【００１３】
本発明による売上予測支援システムは、将来の売上を示す目的変数とその売上に影響を与え得る情報である１つ以上の説明変数の複数の組み合わせである学習用データを入力する学習用データ入力部と、隠れ変数が木構造で表され、その木構造の最下層のノードに確率モデルを表すコンポーネントが配された構造である階層隠れ構造を設定する階層隠れ構造設定部と、学習用データ入力部が入力した学習用データとコンポーネントとに基づいて、階層隠れ構造において根ノードから対象ノードまでを結んだ経路に含まれる隠れ変数である経路隠れ変数の変分確率を計算する変分確率計算部と、学習用データ入力部が入力した学習用データに基づいて、算出された変分確率に対してコンポーネントを最適化するコンポーネント最適化処理部と、階層隠れ構造のノードにおいて説明変数に応じた分岐方向を決定するモデルである門関数モデルを、そのノードにおける隠れ変数の変分確率に基づいて最適化する門関数最適化部と、１つ以上の説明変数を予測用データとして入力する予測用データ入力部と、予測実施時点から将来の予測対象時点までの間に実施予定のＣＭの内容を示す説明変数である露出パタンを生成する露出パタン生成部と、門関数最適化部が最適化した門関数と、予測用データおよび露出パタンとに基づいて、コンポーネント最適化処理部が最適化したコンポーネントのうち、売上の予測に用いるコンポーネントを決定するコンポーネント決定部と、コンポーネント決定部が決定したコンポーネントと、予測用データおよび露出パタンとに基づいて、売上を予測する売上予測部とを備えたことを特徴とする。【００１４】
本発明による売上予測支援方法は、将来の売上を示す目的変数とその売上に影響を与え得る情報である１つ以上の説明変数の複数の組み合わせである学習用データを入力し、隠れ変数が木構造で表され、その木構造の最下層のノードに確率モデルを表すコンポーネントが配された構造である階層隠れ構造を設定し、入力された学習用データとコンポーネントとに基づいて、階層隠れ構造において根ノードから対象ノードまでを結んだ経路に含まれる隠れ変数である経路隠れ変数の変分確率を計算し、入力された学習用データに基づいて、算出された変分確率に対してコンポーネントを最適化し、階層隠れ構造のノードにおいて説明変数に応じた分岐方向を決定するモデルである門関数モデルを、そのノードにおける隠れ変数の変分確率に基づいて最適化し、１つ以上の説明変数を予測用データとして入力し、予測実施時点から将来の予測対象時点までの間に実施予定のＣＭの内容を示す説明変数である露出パタンを生成し、最適化された門関数と、予測用データおよび露出パタンとに基づいて、最適化されたコンポーネントのうち、売上の予測に用いるコンポーネントを決定し、決定されたコンポーネントと、予測用データおよび露出パタンとに基づいて、売上を予測することを特徴とする。【００１５】
本発明による売上予測支援プログラムは、コンピュータに、将来の売上を示す目的変数とその売上に影響を与え得る情報である１つ以上の説明変数の複数の組み合わせである学習用データを入力する学習用データ入力処理、隠れ変数が木構造で表され、その木構造の最下層のノードに確率モデルを表すコンポーネントが配された構造である階層隠れ構造を設定する階層隠れ構造設定処理、学習用データ入力処理で入力された学習用データとコンポーネントとに基づいて、階層隠れ構造において根ノードから対象ノードまでを結んだ経路に含まれる隠れ変数である経路隠れ変数の変分確率を計算する変分確率計算処理、学習用データ入力処理で入力された学習用データに基づいて、算出された変分確率に対してコンポーネントを最適化するコンポーネント最適化処理、階層隠れ構造のノードにおいて説明変数に応じた分岐方向を決定するモデルである門関数モデルを、そのノードにおける隠れ変数の変分確率に基づいて最適化する門関数最適化処理、１つ以上の説明変数を予測用データとして入力する予測用データ入力処理、予測実施時点から将来の予測対象時点までの間に実施予定のＣＭの内容を示す説明変数である露出パタンを生成する露出パタン生成処理、門関数最適化処理で最適化された門関数と、予測用データおよび露出パタンとに基づいて、コンポーネント最適化処理で最適化されたコンポーネントのうち、売上の予測に用いるコンポーネントを決定するコンポーネント決定処理、および、コンポーネント決定処理で決定されたコンポーネントと、予測用データおよび露出パタンとに基づいて、売上を予測する売上予測処理を実行させることを特徴とする。
【発明の効果】
【００１６】
上記態様によれば、上述した技術的手段により、将来の売上を適切に予測することができるという技術的効果を奏する。
【図面の簡単な説明】
【００１７】
【図１】少なくとも１つの実施形態に係る売上予測支援システムの構成例を示すブロック図である。
【図２】少なくとも１つの実施形態に係る学習用データベースが記憶する情報の例を示す図である。
【図３】少なくとも１つの実施形態に係る階層隠れ変数モデル推定装置の構成例を示すブロック図である。
【図４】少なくとも１つの実施形態に係る階層隠れ変数変分確率計算処理部の構成例を示すブロック図である。
【図５】少なくとも１つの実施形態に係る門関数最適化処理部の構成例を示すブロック図である。
【図６】少なくとも１つの実施形態に係る階層隠れ変数モデル推定装置の動作例を示すフローチャートである。
【図７】少なくとも１つの実施形態に係る階層隠れ変数変分確率計算処理部の動作例を示すフローチャートである。
【図８】少なくとも１つの実施形態に係る門関数最適化処理部の動作例を示すフローチャートである。
【図９】少なくとも１つの実施形態に係る売上予測装置の構成例を示すブロック図である。
【図１０】少なくとも１つの実施形態に係る売上予測装置の動作例を示すフローチャートである。
【図１１】少なくとも１つの実施形態に係る階層隠れ変数モデル推定装置の構成例を示すブロック図である。
【図１２】少なくとも１つの実施形態に係る階層隠れ構造最適化処理部の構成例を示すブロック図である。
【図１３】少なくとも１つの実施形態に係る階層隠れ変数モデル推定装置の動作例を示すフローチャートである。
【図１４】少なくとも１つの実施形態に係る階層隠れ構造最適化処理部の動作例を示すフローチャートである。
【図１５】第３の実施形態の門関数最適化処理部の構成例を示すブロック図である。
【図１６】少なくとも１つの実施形態に係る門関数最適化処理部の動作例を示すフローチャートである。
【図１７】少なくとも１つの実施形態に係る売上予測装置の構成例を示すブロック図である。
【図１８】モデルを可視化した例を示す説明図である。
【図１９】決定されたコンポーネントの内容を可視化した例を示す説明図である。
【図２０】少なくとも１つの実施形態に係る売上予測装置の動作例を示すフローチャートである。
【図２１】ＣＭ計画支援システムの基本構成を示すブロック図である。
【図２２】売上予測支援システムの基本構成を示すブロック図である。
【図２３】少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【００１８】
本明細書において、階層隠れ変数モデルとは、隠れ変数（すなわち、階層構造）が木構造を持つものである。その木構造の最下層のノードには、確率モデルであるコンポーネントが配される。また、各分岐ノードには、入力に応じて分岐を振り分ける門関数が設けられている。以下の説明では、特に深さ２の階層隠れ変数モデルについて具体的な説明を行う。
【００１９】
また、階層構造は木構造を想定しているため、根ノードからあるノードまでの道筋は一つに決定される。以下、階層隠れ構造において根ノードからあるノードまで結んだときの道筋（リンク）のことを経路と記す。また、経路ごとに隠れ変数を辿ることで、経路隠れ変数が決定される。例えば、最下層経路隠れ変数とは、根ノードから最下層ノードまでの経路ごとに決定される経路隠れ変数を示す。
【００２０】
また、以下の説明では、データ列ｘｎ（ｎ＝１，・・・，Ｎ）が入力されると仮定し、各ｘｎがＭ次元多変量データ列（ｘｎ＝ｘ１ｎ，・・・，ｘＭｎ）であるとする。また、データ列ｘｎのことを観測変数と記すこともある。観測変数ｘｎに対する第１層分岐隠れ変数ｚｉｎ、最下層分岐隠れ変数ｚｊ｜ｉｎ、最下層経路隠れ変数ｚｉｊｎを定義する。
【００２１】
ｚｉｎ＝１は、根ノードに入力されたｘｎが第１層第ｉノードへ分岐することを表し、ｚｉｎ＝０は、第１層第ｉノードへは分岐しないことを表している。ｚｊ｜ｉｎ＝１は、第１層第ｉノードに入力されたｘｎが第２層第ｊノードへ分岐することを表し、ｚｊ｜ｉｎ＝０は、第１層第ｉノードに入力されたｘｎが第２層第ｊノードへは分岐しないことを表している。ｚｉｊｎ＝１は、ｘｎが第１層第ｉノード、第２層第ｊノードを通ることで辿られるコンポーネントに対応することを表し、ｚｉｊｎ＝０は、ｘｎが第１層第ｉノード、第２層第ｊノードを通ることで辿られるコンポーネントに対応しないことを表している。
【００２２】
なお、Σｉｚｉｎ＝１、Σｊｚｊ｜ｉｎ＝１、ｚｉｊｎ＝ｚｉｎ・ｚｊ｜ｉｎを満たすため、これらより、ｚｉｎ＝Σｊｚｉｊｎが成り立つ。ｘと、最下層経路隠れ変数ｚｉｊｎの代表値ｚとの組みは、「完全変数」と呼ばれる。一方、対比として、ｘは、不完全変数と呼ばれる。
【００２３】
完全変数に関する深さ２の階層隠れ変数モデル同時分布は、以下に示す式１で表される。
【００２４】
【数１】
0006477703.tif 000002
【００２５】
すなわち、完全変数に関する深さ２の階層隠れ変数モデル同時分布は、上記に示す式１に含まれるＰ（ｘ，ｙ）＝Ｐ（ｘ，ｚ１ｓｔ，ｚ２ｎｄ）で定義される。ここでは、ｚｉｎの代表値をｚ１ｓｔｎとし、ｚｊ｜ｉｎの代表値をｚ２ｎｄｎとする。なお、第１層分岐隠れ変数ｚｉｎに対する変分分布をｑ（ｚｉｎ）とし、最下層経路隠れ変数ｚｉｊｎに対する変分分布をｑ（ｚｉｊｎ）とする。
【００２６】
上記の式１において、Ｋ１は、第１層のノード数を表し、Ｋ２は、第１層のノードそれぞれから分岐するノード数を表す。最下層のコンポーネントは、Ｋ１・Ｋ２で表される。また、θ＝（β，β１,・・・, βＫ１,φ１,・・・,φＫ１・Ｋ２）が、モデルのパラメータを表すとする。ただし、βは、根ノードの分岐パラメータであり、βｋは、第１層第ｋノードの分岐パラメータであり、φｋは、ｋ番目のコンポーネントに対する観測パラメータである。
【００２７】
また、Ｓ１,・・・,ＳＫ１・Ｋ２は、φｋに対応する観測確率の種類を表すとする。なお、例えば、多変量データの生成確率の場合、Ｓ１〜ＳＫ１・Ｋ２になり得る候補は、｛正規分布、対数正規分布、指数分布｝などである。また、例えば、多項曲線が出力される場合、Ｓ１〜ＳＫ１・Ｋ２になり得る候補は、｛０次曲線、１次曲線、２次曲線、３次曲線｝などである。
【００２８】
なお、以下の説明では、具体的な例を説明する場合、深さ２の階層隠れ変数モデルを例示して説明する。ただし、少なくとも１つの実施形態に係る階層隠れ変数モデルは、深さ２の階層隠れ変数モデルに限定されず、深さが１や３以上の階層隠れ変数モデルであってもよい。この場合も、深さ２の階層隠れ変数モデルの場合と同様に、上記に示す式１や、後述する式２〜４を導出すればよく、同様の構成により予測装置が実現される。
【００２９】
また、以下の説明では、ターゲット変数をＸとした場合の分布について説明する。ただし、観測分布が回帰や判別のように、条件付モデルＰ（Ｙ｜Ｘ）（Ｙはターゲットとなる確率変数）である場合についても適用可能である。
【００３０】
また、実施形態について説明する前に、実施形態に係る予測装置と、非特許文献１に記載された混合隠れ変数モデルに対する推定方法との本質的な違いを説明する。
【００３１】
非特許文献１に記載された方法では、隠れ変数を各コンポーネントのインジケータとする一般的な混合モデルが想定され、最適化の基準が、非特許文献１の式１０に示すように導出される。しかし、フィッシャー情報行列が非特許文献１の式６の形式で与えられているように、非特許文献１に記載された方法では、コンポーネントのインジケータである隠れ変数の確率分布が混合モデルの混合比にのみ依存すると仮定されている。そのため、入力に応じたコンポーネントの切り替えが実現できず、この最適化基準は、適切でない。
【００３２】
この問題を解決するためには、以下の実施形態で示すように、階層的な隠れ変数を設定し、適切な最適化基準を用いて計算する必要がある。以下の実施形態では、適切な最適化基準として、入力に応じて各分岐ノードでの分岐を振り分ける多段の特異モデルを想定する。
【００３３】
以下、実施形態を図面を参照して説明する。
【００３４】
《第１の実施形態》
図１は、少なくとも１つの実施形態に係る売上予測支援システムの構成例を示すブロック図である。本実施形態に係る売上予測支援システム１０は、階層隠れ変数モデル推定装置１００と、学習用データベース３００と、モデルデータベース５００と、売上予測装置７００とを備える。売上予測支援システム１０は、過去に収集された売上情報や、売上に影響すると想定される情報等に基づいて売上の予測に用いるモデルを生成し、当該モデルを用いて売上予測を支援する。
【００３５】
階層隠れ変数モデル推定装置１００は、学習用データベース３００が記憶するデータを用いて、将来の売上を予測するモデルを推定し、当該モデルをモデルデータベース５００に記録する。
【００３６】
図２は、少なくとも１つの実施形態に係る学習用データベース３００が記憶する情報の例を示す図である。学習用データベース３００は、売上情報や、広告媒体を用いた情報発信に関するメタデータ、ソーシャルメディアを利用して発信された情報等を記憶する。
【００３７】
具体的には、学習用データベース３００は、売上予測をする対象の商品に関するデータを含む商品テーブルを記憶してもよい。商品テーブルは、図２（Ａ）に例示するように、商品ＩＤに関連付けて、商品名、商品カテゴリ、商品分類、販売開始日時、定価などを格納する。商品ＩＤは、商品を一意に識別する情報である。
【００３８】
また、学習用データベース３００は、気象に関するデータを含む気象テーブルを記憶してもよい。気象テーブルは、図２（Ｂ）に例示するように、日時および地域に関連付けて、気温、その日の最高気温、その日の最低気温、降水量、天気、湿度などを格納する。
【００３９】
また、学習用データベース３００は、商品の売上に関するデータを含む売上テーブルを記憶してもよい。売上テーブルは、図２（Ｃ）に例示するように、各商品ＩＤに関連付けて、その商品の期間ごとの売上個数や売上金額を格納する。格納する期間の単位は任意であり、例えば、時間単位でも良く、日単位でも良い。この場合、例えば、一週間の合計売上が必要な場合には、対象とする期間の売上を加算することにより、一週間の売上合計を算出することが可能である。
【００４０】
また、売上テーブルの内容は、一定期間内の売上に限定されず、例えば、比較する期間同士の差分であってもよい。また、上述する場合と同様、比較する期間の売上を加算し、その差分を取ることによっても、比較する期間同士の差分を取得できる。
【００４１】
また、学習用データベース３００は、テレビジョン放送やインターネットなど、各種広告媒体を用いた情報発信に関するメタデータを含む広告媒体メタデータテーブルを記憶してもよい。図２（Ｄ）は、広告媒体にテレビジョン（以下、ＴＶと記す。）を用いた場合のメタデータの例を示す説明図である。広告媒体メタデータテーブルは、図２（Ｄ）に例示するように、商品ＩＤ、分類、発信内容等に関連付けて、その発信情報の露出時間を所定の期間ごとに格納する。
【００４２】
広告媒体メタデータテーブルは、他にも、対象キーワードを含むＣＭ放映時間や、カテゴリ別番組（ＣＭ）の露出時間、時間帯別の露出時間などを格納してもよい。また、広告媒体メタデータテーブルは、図２（Ｃ）に例示する売上テーブルに集計される売上の期間に合わせて、これらの情報を集計してもよい。
【００４３】
また、学習用データベース３００は、ソーシャルメディアを利用して発信された情報を含む発信情報テーブルを記憶してもよい。図２（Ｅ）は、ソーシャルメディアにＴｗｉｔｔｅｒ（登録商標）を利用して発信された情報の例を示す説明図である。発信情報テーブルは、同類のキーワードをグループ化して格納する。
【００４４】
図２（Ｅ）に例示する情報は、Ｔｗｉｔｔｅｒを利用して発信される各キーワードをもとに、トピック抽出エンジンを用いて所定の数のクラスタを生成し、そのクラスタに含まれる単語を列挙したものである。なお、トピック抽出エンジンは、似た意味を有する単語が似た文書に登場するという考え方に基づく統計モデルにより、自動的に単語をまとめ上げるモジュールである。
【００４５】
例えば、図２（Ｅ）に示す例では、ラーメン一般の内容を示すキーワードと判断された、うまい（形容詞）、食べる（動詞）、職人（名詞）等が、１つのクラスタに含まれるキーワード群であることを示す。
【００４６】
モデルデータベース５００は、階層隠れ変数モデル推定装置１００が推定した、将来の売上を予測するモデルを記憶する。モデルデータベース５００は、ハードディスクドライブやソリッドステートドライブなど、一時的でない有形の媒体によって構成される。
【００４７】
売上予測装置７００は、商品の売上に関するデータが入力され、当該データとモデルデータベース５００が記憶するモデルとに基づいて、将来の売上を予測する。
【００４８】
図３は、少なくとも１つの実施形態に係る階層隠れ変数モデル推定装置の構成例を示すブロック図である。本実施形態の階層隠れ変数モデル推定装置１００は、データ入力装置１０１と、階層隠れ構造設定部１０２と、初期化処理部１０３と、階層隠れ変数変分確率計算処理部１０４と、コンポーネント最適化処理部１０５と、門関数最適化処理部１０６と、最適性判定処理部１０７と、最適モデル選択処理部１０８と、モデル推定結果出力装置１０９とを備えている。
【００４９】
階層隠れ変数モデル推定装置１００は、学習用データベース３００が記憶するデータに基づいて生成された入力データ１１１が入力されると、その入力データ１１１に対して階層隠れ構造及び観測確率の種類を最適化し、最適化した結果をモデル推定結果１１２として出力し、モデルデータベース５００に記録する。本実施形態において入力データ１１１は、学習用データの一例である。
【００５０】
図４は、少なくとも１つの実施形態に係る階層隠れ変数変分確率計算処理部１０４の構成例を示すブロック図である。階層隠れ変数変分確率計算処理部１０４は、最下層経路隠れ変数変分確率計算処理部１０４−１と、階層設定部１０４−２と、上層経路隠れ変数変分確率計算処理部１０４−３と、階層計算終了判定処理部１０４−４を含む。
【００５１】
階層隠れ変数変分確率計算処理部１０４は、入力データ１１１と、後述するコンポーネント最適化処理部１０５で推定された推定モデル１０４−５が入力されると、階層隠れ変数変分確率１０４−６を出力する。なお、階層隠れ変数変分確率計算処理部１０４の詳細な説明は後述される。本実施形態におけるコンポーネントは、各説明変数に係る重みを示す値である。売上予測装置７００は、当該コンポーネントが示す重みを乗算した説明変数の総和を算出することで目的変数を得ることができる。
【００５２】
図５は、少なくとも１つの実施形態に係る門関数最適化処理部１０６の構成例を示すブロック図である。門関数最適化処理部１０６は、分岐ノード情報取得部１０６−１と、分岐ノード選択処理部１０６−２と、分岐パラメータ最適化処理部１０６−３と、全分岐ノード最適化終了判定処理部１０６−４とを含む。
【００５３】
門関数最適化処理部１０６は、入力データ１１１と、後述する階層隠れ変数変分確率計算処理部１０４で算出された階層隠れ変数変分確率１０４−６と、コンポーネント最適化処理部１０５で推定された推定モデル１０４−５が入力されると、門関数モデル１０６−６を出力する。なお、門関数最適化処理部１０６の詳細な説明は後述される。本実施形態における門関数は、入力データ１１１に含まれる情報が所定の条件を満たすか否かの判定を行うための関数である。また、門関数は、階層隠れ構造の内部ノードに対応して設けられる。売上予測装置７００は、階層隠れ構造のノードをたどる際、門関数の判定結果に従って次にたどるノードを決定する。
【００５４】
データ入力装置１０１は、入力データ１１１を入力するための装置である。データ入力装置１０１は、学習用データベース３００の売上テーブルに記録されたデータに基づいて、所定の期間（例えば、一日や一週間など）毎の商品の既知の売上を示す目的変数を生成する。目的変数としては、例えば、１つの店舗における１つの商品の所定の時間範囲毎の売上数、全店舗における１つの商品の所定の時間範囲毎の売上数、１つの店舗における全商品の所定の時間範囲毎の売上金額などを採用することができる。
【００５５】
また、データ入力装置１０１は、学習用データベース３００の各テーブル（例えば、商品テーブル、気象テーブル、売上テーブル、広告媒体メタデータテーブル、発信情報テーブル）に記録されたデータに基づいて、目的変数ごとに、その目的変数に影響を与え得る情報である１つ以上の説明変数を生成する。説明変数としては、例えば、発信内容の露出回数、露出時間、および、発信内容の期間ごとの露出時間の差分、並びに、対象とする商品の過去の売上量などを採用することができる。
【００５６】
そして、データ入力装置１０１は、目的変数と説明変数の複数の組み合わせを、入力データ１１１として入力する。データ入力装置１０１は、入力データ１１１を入力する際、観測確率の種類やコンポーネント数の候補など、モデル推定に必要なパラメータを同時に入力する。本実施形態において、データ入力装置１０１は、学習用データ入力部の一例である。
【００５７】
階層隠れ構造設定部１０２は、入力された観測確率の種類やコンポーネント数の候補から、最適化の候補になる階層隠れ変数モデルの構造を選択し、設定する。本実施形態で用いられる隠れ構造は、木構造である。以下では、設定されたコンポーネント数をＣと表すものとし、説明に用いられる数式は、深さが２の階層隠れ変数モデルを対象としたものとする。なお、階層隠れ構造設定部１０２は、選択された階層隠れ変数モデルの構造を内部のメモリに記憶するようにしてもよい。
【００５８】
例えば、２分木モデル（各分岐ノードから２つに分岐するモデル）で木構造の深さを２とした場合、階層隠れ構造設定部１０２は、第一階層ノードが２つ、第二階層ノード（本実施形態では、最下層ノード）が４つの階層隠れ構造を選択する。
【００５９】
初期化処理部１０３は、階層隠れ変数モデルを推定するための初期化処理を実施する。初期化処理部１０３は、初期化処理を任意の方法によって実行可能である。初期化処理部１０３は、例えば、観測確率の種類をコンポーネントごとにランダムに設定し、設定された種類にしたがって、各観測確率のパラメータをランダムに設定してもよい。また、初期化処理部１０３は、階層隠れ変数の最下層経路変分確率をランダムに設定してもよい。
【００６０】
階層隠れ変数変分確率計算処理部１０４は、階層ごとに経路隠れ変数の変分確率を計算する。ここでは、パラメータθは、初期化処理部１０３、または、コンポーネント最適化処理部１０５および門関数最適化処理部１０６で計算されている。そのため、階層隠れ変数変分確率計算処理部１０４は、その値を利用して変分確率を計算する。
【００６１】
階層隠れ変数変分確率計算処理部１０４は、周辺化対数尤度関数を完全変数に対する推定量（例えば、最尤推定量や最大事後確率推定量）に関してラプラス近似し、その下界を最大化することによって変分確率を算出する。以下、このように算出された変分確率を最適化基準Ａと呼ぶ。
【００６２】
最適化基準Ａを算出する手順を、深さが２の階層隠れ変数モデルを例に説明する。周辺化対数尤度は、以下に示す式２で表される。
【００６３】
【数２】
0006477703.tif 000003
【００６４】
まず、上記に示す式２で表される周辺化対数尤度の下界を考える。式２において、 最下層経路隠れ変数変分確率ｑ（ｚｎ）を最大化することで等号が成立する。ここで、分子の完全変数の周辺化尤度を完全変数に対する最尤推定量を用いてラプラス近似すると、以下の式３に示す周辺化対数尤度関数の近似式が得られる。
【００６５】
【数３】
0006477703.tif 000004
【００６６】
式３において、上付きのバーは、完全変数に対する最尤推定量を表し、Ｄ＊は、下付きパラメータ＊の次元を表す。
【００６７】
次に、最尤推定量が対数尤度関数を最大化する性質と、対数関数が凹関数であることを利用すると、式３の下界は、以下に示す式４のように算出される。
【００６８】
【数４】
0006477703.tif 000005
【００６９】
第１層分岐隠れ変数の変分分布ｑ’及び、最下層経路隠れ変数の変分分布ｑ’’は、それぞれの変分分布について式４を最大化することで得られる。なお、ここでは、ｑ’’＝ｑ（ｔ−１）、θ＝θ（ｔ−１）に固定し、ｑ’を以下の式Ａに示す値に固定する。
【００７０】
ｑ’＝Σｋ２ｊ＝１ｑ（ｔ−１）  （式Ａ）
【００７１】
ただし、上付き（ｔ）は、階層隠れ変数変分確率計算処理部１０４、コンポーネント最適化処理部１０５、門関数最適化処理部１０６、最適性判定処理部１０７の繰り返し計算におけるｔ回目の繰り返しを表す。
【００７２】
次に、図４を参照して、階層隠れ変数変分確率計算処理部１０４の動作を説明する。
最下層経路隠れ変数変分確率計算処理部１０４−１は、入力データ１１１と推定モデル１０４−５を入力し、最下層隠れ変数変分確率ｑ（ｚＮ）を算出する。階層設定部１０４−２は、変分確率を計算する対象が最下層であることを設定する。具体的には、最下層経路隠れ変数変分確率計算処理部１０４−１は、入力データ１１１の目的変数と説明変数の組み合わせ毎に、各推定モデル１０４−５の変分確率を計算する。変分確率の計算は、推定モデル１０４−５に入力データ１１１の説明変数を代入して得られる解と入力データ１１１の目的変数とを比較することで行う。
【００７３】
上層経路隠れ変数変分確率計算処理部１０４−３は、一つ上の層の経路隠れ変数変分確率を算出する。具体的には、上層経路隠れ変数変分確率計算処理部１０４−３は、同じ分岐ノードを親として持つ現在の層の隠れ変数変分確率の和を算出し、その値を一つ上の層の経路隠れ変数変分確率とする。
【００７４】
階層計算終了判定処理部１０４−４は、変分確率を計算する層が上にまだ存在するか否か判定する。上の層が存在すると判定された場合、階層設定部１０４−２は、変分確率を計算する対象に一つ上の層を設定する。以降、上層経路隠れ変数変分確率計算処理部１０４−３および階層計算終了判定処理部１０４−４は、上述する処理を繰り返す。一方、上の層が存在しないと判定された場合、階層計算終了判定処理部１０４−４は、すべての階層で経路隠れ変数変分確率が算出されたと判定する。
【００７５】
コンポーネント最適化処理部１０５は、上記の式４に対して各コンポーネントのモデル（パラメータθおよびその種類Ｓ）を最適化し、最適化した推定モデル１０４−５を出力する。深さが２の階層隠れ変数モデルの場合、コンポーネント最適化処理部１０５は、ｑおよびｑ’’を階層隠れ変数変分確率計算処理部１０４で算出された最下層経路隠れ変数変分確率ｑ（ｔ）に固定し、ｑ’を上記の式Ａに示す上層経路隠れ変数変分確率に固定する。そして、コンポーネント最適化処理部１０５は、式４に示すＧの値を最大化するモデルを算出する。
【００７６】
上記の式４により定義されたＧは、コンポーネントごとに最適化関数を分解することが可能である。そのため、コンポーネントの種類の組み合わせ（例えば、Ｓ１〜ＳＫ１・Ｋ２のどの種類を指定するか）を考慮することなく、Ｓ１〜ＳＫ１・Ｋ２及びパラメータφ１〜φＫ１・Ｋ２を別々に最適化できる。このように最適化できる点が、この処理において重要な点である。これにより、組み合わせ爆発を回避してコンポーネントの種類を最適化できる。
【００７７】
次に、図５を参照して、門関数最適化処理部１０６の動作を説明する。分岐ノード情報取得部１０６−１は、コンポーネント最適化処理部１０５で推定された推定モデル１０４−５を用いて分岐ノードのリストを抽出する。分岐ノード選択処理部１０６−２は、抽出された分岐ノードのリストの中から分岐ノードを１つ選択する。以下、選択されたノードのことを選択ノードと記すこともある。
【００７８】
分岐パラメータ最適化処理部１０６−３は、入力データ１１１と、階層隠れ変数変分確率１０４−６から得られる選択ノードに関する隠れ変数変分確率とを用いて、選択ノードの分岐パラメータを最適化する。なお、選択ノードの分岐パラメータが、上述する門関数に対応する。
【００７９】
全分岐ノード最適化終了判定処理部１０６−４は、分岐ノード情報取得部１０６−１によって抽出されたすべての分岐ノードが最適化されたか否かを判定する。すべての分岐ノードが最適化されている場合、門関数最適化処理部１０６は、ここでの処理を終了する。一方、すべての分岐ノードが最適化されていない場合、分岐ノード選択処理部１０６−２による処理が行われ、以降、分岐パラメータ最適化処理部１０６−３および全分岐ノード最適化終了判定処理部１０６−４による処理が同様に行われる。
【００８０】
ここで、門関数の具体例を、２分木の階層モデルに対するベルヌーイ分布を基としたものを例に説明する。以下、ベルヌーイ分布を基とした門関数をベルヌーイ型門関数と記すこともある。ここでは、ｘの第ｄ次元をｘｄとし、この値がある閾値ｗを超えないときに２分木の左下へ分岐する確率をｇ−とし、閾値ｗを超えるときに２分木の左下へ分岐する確率をｇ＋とする。分岐パラメータ最適化処理部１０６−３は、上記の最適化パラメータｄ、ｗ、ｇ−、ｇ＋をベルヌーイ分布に基づいて最適化する。これは、非特許文献１に記載されたロジット関数に基づくものと異なり、各パラメータが解析解を持つため、より高速な最適化が可能である。
【００８１】
最適性判定処理部１０７は、上記の式４を用いて計算される最適化基準Ａが収束したか否かを判定する。収束していない場合、階層隠れ変数変分確率計算処理部１０４、コンポーネント最適化処理部１０５、門関数最適化処理部１０６および最適性判定処理部１０７による処理が繰り返される。最適性判定処理部１０７は、例えば、最適化基準Ａの増分が所定の閾値未満であるときに、最適化基準Ａが収束したと判定してもよい。
【００８２】
以降、階層隠れ変数変分確率計算処理部１０４、コンポーネント最適化処理部１０５、門関数最適化処理部１０６および最適性判定処理部１０７による処理をまとめて、階層隠れ変数変分確率計算処理部１０４から最適性判定処理部１０７による処理と記すこともある。階層隠れ変数変分確率計算処理部１０４から最適性判定処理部１０７による処理が繰り返され、変分分布とモデルが更新されることで、適切なモデルを選択できる。なお、これらの処理を繰り返すことにより、最適化基準Ａが単調に増加することが保証される。
【００８３】
最適モデル選択処理部１０８は、最適なモデルを選択する。具体的には、階層隠れ構造設定部１０２で設定された隠れ状態数Ｃに対して、階層隠れ変数変分確率計算処理部１０４から最適性判定処理部１０７による処理で算出される最適化基準Ａが、現在設定されている最適化基準Ａよりも大きい場合、最適モデル選択処理部１０８は、そのモデルを最適なモデルとして選択する。
【００８４】
モデル推定結果出力装置１０９は、入力された観測確率の種類やコンポーネント数の候補から設定される階層隠れ変数モデルの構造の候補についてモデルの最適化が完了した場合、最適な隠れ状態数、観測確率の種類、パラメータ、変分分布などをモデル推定結果１１２として出力する。一方、最適化の済んでいない候補が存在する場合、階層隠れ構造設定部１０２へ処理が移され、上述する処理が同様に行われる。
【００８５】
階層隠れ構造設定部１０２と、初期化処理部１０３と、階層隠れ変数変分確率計算処理部１０４（より詳しくは、最下層経路隠れ変数変分確率計算処理部１０４−１と、階層設定部１０４−２と、上層経路隠れ変数変分確率計算処理部１０４−３と、階層計算終了判定処理部１０４−４）と、コンポーネント最適化処理部１０５と、門関数最適化処理部１０６（より詳しくは、分岐ノード情報取得部１０６−１と、分岐ノード選択処理部１０６−２と、分岐パラメータ最適化処理部１０６−３と、全分岐ノード最適化終了判定処理部１０６−４）と、最適性判定処理部１０７と、最適モデル選択処理部１０８とは、プログラム（売上予測支援プログラム）に従って動作するコンピュータのＣＰＵによって実現される。
【００８６】
例えば、プログラムは、階層隠れ変数モデル推定装置１００の記憶部（図示せず）に記憶され、ＣＰＵは、そのプログラムを読み込み、プログラムに従って、階層隠れ構造設定部１０２、初期化処理部１０３、階層隠れ変数変分確率計算処理部１０４（より詳しくは、最下層経路隠れ変数変分確率計算処理部１０４−１と、階層設定部１０４−２と、上層経路隠れ変数変分確率計算処理部１０４−３と、階層計算終了判定処理部１０４−４）、コンポーネント最適化処理部１０５、門関数最適化処理部１０６（より詳しくは、分岐ノード情報取得部１０６−１と、分岐ノード選択処理部１０６−２と、分岐パラメータ最適化処理部１０６−３と、全分岐ノード最適化終了判定処理部１０６−４）、最適性判定処理部１０７および最適モデル選択処理部１０８として動作してもよい。
【００８７】
また、階層隠れ構造設定部１０２と、初期化処理部１０３と、階層隠れ変数変分確率計算処理部１０４と、コンポーネント最適化処理部１０５と、門関数最適化処理部１０６と、最適性判定処理部１０７と、最適モデル選択処理部１０８とは、それぞれが専用のハードウェアで実現されていてもよい。
【００８８】
次に、本実施形態の階層隠れ変数モデル推定装置の動作を説明する。図６は、少なくとも１つの実施形態に係る階層隠れ変数モデル推定装置の動作例を示すフローチャートである。
【００８９】
まず、データ入力装置１０１は、入力データ１１１を入力する（ステップＳ１００）。次に、階層隠れ構造設定部１０２は、入力された階層隠れ構造の候補値のうち、まだ最適化の行われていない階層隠れ構造を選択し、設定する（ステップＳ１０１）。次に、初期化処理部１０３は、設定された階層隠れ構造に対して、推定に用いられるパラメータや隠れ変数変分確率の初期化処理を行う（ステップＳ１０２）。
【００９０】
次に、階層隠れ変数変分確率計算処理部１０４は、各経路隠れ変数の変分確率を計算する（ステップＳ１０３）。次に、コンポーネント最適化処理部１０５は、各コンポーネントについて、観測確率の種類とパラメータを推定してコンポーネントを最適化する（ステップＳ１０４）。
【００９１】
次に、門関数最適化処理部１０６は、各分岐ノードにおける分岐パラメータを最適化する（ステップＳ１０５）。次に、最適性判定処理部１０７は、最適化基準Ａが収束したか否かを判定する（ステップＳ１０６）。すなわち、最適性判定処理部１０７は、モデルの最適性を判定する。
【００９２】
ステップＳ１０６において、最適化基準Ａが収束したと判定されなかった場合、すなわち、最適ではないと判定された場合（ステップＳ１０６ａにおけるＮｏ）、ステップＳ１０３からステップＳ１０６の処理が繰り返される。
【００９３】
一方、ステップＳ１０６において、最適化基準Ａが収束したと判定された場合、すなわち、最適であると判定された場合（ステップＳ１０６ａにおけるＹｅｓ）、最適モデル選択処理部１０８は、現在設定されている最適なモデル（例えば、コンポーネント数、観測確率の種類、パラメータ）による最適化基準Ａと、最適なモデルとして現在設定されているモデルによる最適化基準Ａの値を比較し、値の大きいモデルを最適なモデルとして選択する（ステップＳ１０７）。
【００９４】
次に、最適モデル選択処理部１０８は、推定されていない階層隠れ構造の候補が残っているか否かを判定する（ステップＳ１０８）。候補が残っている場合（ステップＳ１０８におけるＹｅｓ）、ステップＳ１０１からステップＳ１０８の処理が繰り返される。一方、候補が残っていない場合（ステップＳ１０８におけるＮｏ）、モデル推定結果出力装置１０９は、モデル推定結果を出力し、処理を完了させる（ステップＳ１０９）。つまり、モデル推定結果出力装置１０９は、コンポーネント最適化処理部１０５が最適化したコンポーネントと、門関数最適化処理部１０６が最適化した門関数とを、モデルデータベース５００に記録する。
【００９５】
次に、本実施形態の階層隠れ変数変分確率計算処理部１０４の動作を説明する。図７は、少なくとも１つの実施形態に係る階層隠れ変数変分確率計算処理部１０４の動作例を示すフローチャートである。
【００９６】
まず、最下層経路隠れ変数変分確率計算処理部１０４−１は、最下層経路隠れ変数変分確率を算出する（ステップＳ１１１）。次に、階層設定部１０４−２は、どの層まで経路隠れ変数を算出したか設定する（ステップＳ１１２）。次に、上層経路隠れ変数変分確率計算処理部１０４−３は、階層設定部１０４−２によって設定された層での経路隠れ変数変分確率を用いて、１つ上の層の経路隠れ変数変分確率を算出する（ステップＳ１１３）。
【００９７】
次に、階層計算終了判定処理部１０４−４は、経路隠れ変数が算出されていない層が残っているか否かを判定する（ステップＳ１１４）。経路隠れ変数が算出されていない層が残っている場合（ステップＳ１１４におけるＮｏ）、ステップＳ１１２からステップＳ１１３の処理が繰り返される。一方、経路隠れ変数が算出されていない層が残っていない場合（ステップＳ１１４におけるＹｅｓ）、階層隠れ変数変分確率計算処理部１０４は、処理を完了させる。
【００９８】
次に、本実施形態の門関数最適化処理部１０６の動作を説明する。図８は、少なくとも１つの実施形態に係る門関数最適化処理部１０６の動作例を示すフローチャートである。
【００９９】
まず、分岐ノード情報取得部１０６−１は、すべての分岐ノードを把握する（ステップＳ１２１）。次に、分岐ノード選択処理部１０６−２は、最適化の対象とする分岐ノードを１つ選択する（ステップＳ１２２）。次に、分岐パラメータ最適化処理部１０６−３は、選択された分岐ノードにおける分岐パラメータを最適化する（ステップＳ１２３）。
【０１００】
次に、全分岐ノード最適化終了判定処理部１０６−４は、最適化されていない分岐ノードが残っているか否かを判定する（ステップＳ１２４）。最適化されていない分岐ノードが残っている場合（ステップＳ１２４におけるＮｏ）、ステップＳ１２２からステップＳ１２３の処理が繰り返される。一方、最適化されていない分岐ノードが残っていない場合（ステップＳ１２４におけるＹｅｓ）、門関数最適化処理部１０６は、処理を完了させる。
【０１０１】
以上のように、本実施形態では、階層隠れ構造設定部１０２が、階層隠れ構造を設定する。なお、階層隠れ構造は、隠れ変数が木構造で表され、その木構造の最下層のノードに確率モデルを表すコンポーネントが配された構造である。
【０１０２】
そして、階層隠れ変数変分確率計算処理部１０４が、経路隠れ変数の変分確率（すなわち、最適化基準Ａ）を計算する。階層隠れ変数変分確率計算処理部１０４は、木構造の階層ごとに隠れ変数の変分確率を最下層のノードから順に計算してもよい。また、階層隠れ変数変分確率計算処理部１０４は、周辺化対数尤度を最大化するように変分確率を計算してもよい。
【０１０３】
そして、コンポーネント最適化処理部１０５が、算出された変分確率に対してコンポーネントを最適化し、門関数最適化処理部１０６が、階層隠れ構造のノードにおける隠れ変数の変分確率に基づいて門関数モデルを最適化する。なお、門関数モデルとは、階層隠れ構造のノードにおいて多変量データに応じた分岐方向を決定するモデルである。
【０１０４】
以上のような構成によって多変量データに対する階層隠れ変数モデルを推定するため、理論的正当性を失うことなく適切な計算量で階層的な隠れ変数を含む階層隠れ変数モデルを推定できる。また、階層隠れ変数モデル推定装置１００を用いることで、コンポーネントを分けるための適切な基準を人手で設定する必要がなくなる。
【０１０５】
また、階層隠れ構造設定部１０２が、隠れ変数が２分木構造で表される階層隠れ構造を設定し、門関数最適化処理部１０６が、ノードにおける隠れ変数の変分確率に基づいて、ベルヌーイ分布を基とした門関数モデルを最適化してもよい。この場合、各パラメータが解析解を持つため、より高速な最適化が可能になる。
【０１０６】
これらの処理によって、階層隠れ変数モデル推定装置１００は、発信内容の放送パターン、発信内容の期間ごとの放送時間のパターン、対象とする商品の所定の期間の売上パターンなどにコンポーネントを分離できる。
【０１０７】
本実施形態の売上予測装置について説明する。図９は、少なくとも１つの実施形態に係る売上予測装置の構成例を示すブロック図である。売上予測装置７００は、データ入力装置７０１と、モデル取得部７０２と、コンポーネント決定部７０３と、売上予測部７０４と、予測結果出力装置７０５とを備える。
【０１０８】
データ入力装置７０１は、将来の売上に影響を与え得る情報である１つ以上の説明変数を、入力データ７１１として入力する。入力データ７１１を構成する説明変数の種類は、入力データ１１１の説明変数と同じ種類のものである。本実施形態において、データ入力装置７０１は、予測用データ入力部の一例である。
【０１０９】
モデル取得部７０２は、売上の予測に用いるモデルとして、モデルデータベース５００から門関数及びコンポーネントを取得する。当該門関数は、門関数最適化処理部１０６によって最適化されたものである。また、当該コンポーネントは、コンポーネント最適化処理部１０５によって最適化されたものである。
【０１１０】
コンポーネント決定部７０３は、データ入力装置７０１が入力した入力データ７１１とモデル取得部７０２が取得した門関数とに基づいて、階層隠れ構造をたどる。そして、コンポーネント決定部７０３は、当該階層隠れ構造の最下層のノードに関連付けられたコンポーネントを、売上予測に用いるコンポーネントに決定する。
【０１１１】
売上予測部７０４は、コンポーネント決定部７０３が決定したコンポーネントに、データ入力装置７０１が入力した入力データ７１１を代入することで、売上を予測する。予測結果出力装置７０５は、売上予測部７０４による売上の予測結果７１２を出力する。
【０１１２】
次に、本実施形態の売上予測装置７００の動作を説明する。図１０は、少なくとも１つの実施形態に係る売上予測装置７００の動作例を示すフローチャートである。
【０１１３】
まず、データ入力装置７０１は、入力データ７１１を入力する（ステップＳ１３１）。なお、データ入力装置７０１は、１つの入力データ７１１でなく複数の入力データ７１１を入力しても良い。データ入力装置７０１は、例えば、ある商品の直近３ヶ月の売上データ、直近３ヶ月のＴｗｉｔｔｅｒデータ、将来の予測対象日前日までのＴＶメタデータを含む入力データ７１１を入力しても良い。
【０１１４】
データ入力装置７０１が複数の入力データ７１１を入力する場合、売上予測部７０４は、入力データ７１１ごとに対象商品の売上を予測する。次に、モデル取得部７０２は、モデルデータベース５００から門関数及びコンポーネントを取得する（ステップＳ１３２）。
【０１１５】
次に、売上予測装置７００は、入力データ７１１を１つずつ選択し、選択した入力データ７１１について、以下に示すステップＳ１３４〜ステップＳ１３６の処理を実行する（ステップＳ１３３）。
【０１１６】
まず、コンポーネント決定部７０３は、モデル取得部７０２が取得した門関数に基づいて、階層隠れ構造の根ノードから最下層のノードまでたどることで、売上の予測に用いるコンポーネントを決定する（ステップＳ１３４）。具体的には、コンポーネント決定部７０３は、以下の手順でコンポーネントを決定する。
【０１１７】
コンポーネント決定部７０３は、階層隠れ構造のノードごとに当該ノードに関連付けられた門関数を読み出す。次に、コンポーネント決定部７０３は、入力データ７１１が、読み出した門関数を満たすか否かを判定する。次に、コンポーネント決定部７０３は、判定結果に基づいて次にたどる子ノードを決定する。コンポーネント決定部７０３は、当該処理により階層隠れ構造のノードをたどって最下層のノードに到達すると、当該ノードに関連付けられたコンポーネントを、売上予測に用いるコンポーネントに決定する。
【０１１８】
ステップＳ１３４でコンポーネント決定部７０３が売上予測に用いるコンポーネントを決定すると、売上予測部７０４は、ステップＳ１３３で選択した入力データ７１１を当該コンポーネントに代入することで、対象商品の売上を予測する（ステップＳ１３５）。そして、予測結果出力装置７０５は、売上予測部７０４による売上の予測結果７１２を出力する（ステップＳ１３６）。
【０１１９】
そして、売上予測装置７００は、ステップＳ１３４〜ステップＳ１３６の処理をすべての入力データ７１１について実行して、処理を完了させる。
【０１２０】
以上のように、本実施形態の売上予測装置７００は、門関数により適切なコンポーネントを用いることで、精度よく対象商品の売上を予測することができる。特に、当該門関数及びコンポーネントは、階層隠れ変数モデル推定装置１００により理論的正当性を失うことなく推定されたものであるため、売上予測装置７００は、適切な基準で分類されたコンポーネントを用いて売上予測を行うことができる。
【０１２１】
《第２の実施形態》
次に、売上予測支援システムの第２の実施形態について説明する。本実施形態に係る売上予測支援システムは、売上予測支援システム１０と比較して、階層隠れ変数モデル推定装置１００が階層隠れ変数モデル推定装置２００に置き換わったという点でのみ相違する。
【０１２２】
図１１は、少なくとも１つの実施形態に係る階層隠れ変数モデル推定装置の構成例を示すブロック図である。なお、第１の実施形態と同様の構成については、図３と同一の符号を付し、説明を省略する。本実施形態の階層隠れ変数モデル推定装置２００は、階層隠れ変数モデル推定装置１００と比較して、階層隠れ構造最適化処理部２０１が接続され、最適モデル選択処理部１０８が接続されていない点でのみ相違する。
【０１２３】
また、第１の実施形態では、階層隠れ変数モデル推定装置１００が、階層隠れ構造の候補に対してコンポーネントや門関数のモデルを最適化し、最適化基準Ａを最大化する階層隠れ構造を選択する。一方、本実施形態の階層隠れ変数モデル推定装置２００では、階層隠れ変数変分確率計算処理部１０４による処理の後、階層隠れ構造最適化処理部２０１により、隠れ変数が小さくなった経路がモデルから除去される処理が追加されている。
【０１２４】
図１２は、少なくとも１つの実施形態に係る階層隠れ構造最適化処理部２０１の構成例を示すブロック図である。階層隠れ構造最適化処理部２０１は、経路隠れ変数和演算処理部２０１−１と、経路除去判定処理部２０１−２と、経路除去実行処理部２０１−３とを含む。
【０１２５】
経路隠れ変数和演算処理部２０１−１は、階層隠れ変数変分確率１０４−６を入力し、各コンポーネントにおける最下層経路隠れ変数変分確率の和（以下、サンプル和と記す）を算出する。
【０１２６】
経路除去判定処理部２０１−２は、サンプル和が所定の閾値ε以下であるか否かを判定する。ここで、εは、入力データ１１１と共に入力される閾値である。具体的には、経路除去判定処理部２０１−２が判定する条件は、例えば、以下の式５で表すことができる。
【０１２７】
【数５】
0006477703.tif 000006
【０１２８】
すなわち、経路除去判定処理部２０１−２は、各コンポーネントにおける最下層経路隠れ変数変分確率ｑ（ｚｉｊｎ）が上記の式５で表される基準を満たすか否かを判定する。言い換えると、経路除去判定処理部２０１−２は、サンプル和が十分小さいか否かを判定
しているとも言える。
【０１２９】
経路除去実行処理部２０１−３は、サンプル和が十分小さいと判定された経路の変分確率を０とする。そして、経路除去実行処理部２０１−３は、残りの経路（すなわち、０にしなかった経路）に対して正規化した最下層経路隠れ変数変分確率を用いて、各階層での階層隠れ変数変分確率１０４−６を再計算し、出力する。
【０１３０】
この処理の正当性を説明する。以下に例示する式６は、繰り返し最適化におけるｑ（ｚｉｊｎ）の更新式である。
【０１３１】
【数６】
0006477703.tif 000007
【０１３２】
上記に示す式６において、指数部に負の項が含まれ、その前の処理で算出されたｑ（ｚｉｊｎ）がその項の分母に存在する。したがって、この分母の値が小さければ小さいほど最適化されたｑ（ｚｉｊｎ）の値も小さくなるため、小さい経路隠れ変数変分確率が繰り返し計算されることによって、徐々に小さくなっていくことが示される。
【０１３３】
なお、階層隠れ構造最適化処理部２０１（より詳しくは、経路隠れ変数和演算処理部２０１−１と、経路除去判定処理部２０１−２と、経路除去実行処理部２０１−３）は、プログラム（階層隠れ変数モデルの推定プログラム）に従って動作するコンピュータのＣＰＵによって実現される。
【０１３４】
次に、本実施形態の階層隠れ変数モデル推定装置２００の動作を説明する。図１３は、少なくとも１つの実施形態に係る階層隠れ変数モデル推定装置２００の動作例を示すフローチャートである。
【０１３５】
まず、データ入力装置１０１は、入力データ１１１を入力する（ステップＳ２００）。次に、階層隠れ構造設定部１０２は、階層隠れ構造として隠れ状態数の初期状態を設定する（ステップＳ２０１）。
【０１３６】
すなわち、第１の実施形態では、コンポーネント数に対して複数個の候補をすべて実行することで最適解を探索していた。一方、本実施形態では、コンポーネント数も最適化できるため、一度の処理で階層隠れ構造の最適化が可能になっている。よって、ステップＳ２０１では、第１の実施形態におけるステップＳ１０２で示すように複数の候補から最適化が実行されていないものを選ぶのではなく、隠れ状態数の初期値を一度設定するだけでよい。
【０１３７】
次に、初期化処理部１０３は、設定された階層隠れ構造に対して、推定に用いられるパラメータや隠れ変数変分確率の初期化処理を行う（ステップＳ２０２）。
【０１３８】
次に、階層隠れ変数変分確率計算処理部１０４は、各経路隠れ変数の変分確率を計算する（ステップＳ２０３）。次に、階層隠れ構造最適化処理部２０１は、コンポーネント数を推定することで、階層隠れ構造を最適化する（ステップＳ２０４）。すなわち、コンポーネントは各最下層ノードに配されているため、階層隠れ構造が最適化されると、コンポーネント数も最適化されることになる。
【０１３９】
次に、コンポーネント最適化処理部１０５は、各コンポーネントについて、観測確率の種類とパラメータを推定してコンポーネントを最適化する（ステップＳ２０５）。次に、門関数最適化処理部１０６は、各分岐ノードにおける分岐パラメータを最適化する（ステップＳ２０６）。次に、最適性判定処理部１０７は、最適化基準Ａが収束したか否かを判定する（ステップＳ２０７）。すなわち、最適性判定処理部１０７は、モデルの最適性を判定する。
【０１４０】
ステップＳ２０７において、最適化基準Ａが収束したと判定されなかった場合、すなわち、最適ではないと判定された場合（ステップＳ２０７ａにおけるＮｏ）、ステップＳ２０３からステップＳ２０７の処理が繰り返される。
【０１４１】
一方、ステップＳ２０７において、最適化基準Ａが収束したと判定された場合、すなわち、最適であると判定された場合（ステップＳ２０７ａにおけるＹｅｓ）、モデル推定結果出力装置１０９は、モデル推定結果を出力し、処理を完了させる（ステップＳ２０８）。
【０１４２】
次に、本実施形態の階層隠れ構造最適化処理部２０１の動作を説明する。図１４は、少なくとも１つの実施形態に係る階層隠れ構造最適化処理部２０１の動作例を示すフローチャートである。
【０１４３】
まず、経路隠れ変数和演算処理部２０１−１は、経路隠れ変数のサンプル和を算出する（ステップＳ２１１）。次に、経路除去判定処理部２０１−２は、算出したサンプル和が十分小さいか否か判定する（ステップＳ２１２）。次に、経路除去実行処理部２０１−３は、サンプル和が十分小さいと判定された最下層経路隠れ変数変分確率を０として再計算した階層隠れ変数変分確率を出力し、処理を完了させる（ステップＳ２１３）。
【０１４４】
以上のように、本実施形態では、階層隠れ構造最適化処理部２０１が、算出された変分確率が所定の閾値以下である経路をモデルから除外することにより階層隠れ構造を最適化する。
【０１４５】
このような構成にすることで、第１の実施形態の効果に加え、階層隠れ変数モデル推定装置１００のように複数の階層隠れ構造の候補に対して最適化をする必要がなく、一回の実行処理でコンポーネント数も最適化できる。そのため、コンポーネント数、観測確率の種類とパラメータ、変分分布を同時に推定し、計算コストを抑えることが可能になる。
【０１４６】
《第３の実施形態》
次に、売上予測支援システムの第３の実施形態について説明する。本実施形態に係る売上予測支援システムは、階層隠れ変数モデル推定装置の構成が第２の実施形態と異なるものである。本実施形態の階層隠れ変数モデル推定装置は、階層隠れ変数モデル推定装置２００と比較して、門関数最適化処理部１０６が門関数最適化処理部１１３に置き換わったという点でのみ相違する。
【０１４７】
図１５は、第３の実施形態の門関数最適化処理部１１３の構成例を示すブロック図である。門関数最適化処理部１１３は、有効分岐ノード選別部１１３−１と、分岐パラメータ最適化並列処理部１１３−２を含む。
【０１４８】
有効分岐ノード選別部１１３−１は、階層隠れ構造から有効な分岐ノードのみを選別する。具体的には、有効分岐ノード選別部１１３−１は、コンポーネント最適化処理部１０５で推定された推定モデル１０４−５を用い、モデルから除去された経路を考慮することで、有効な分岐ノードのみを選別する。すなわち、有効な分岐ノードとは、階層隠れ構造から除去されていない経路上の分岐ノードを意味する。
【０１４９】
分岐パラメータ最適化並列処理部１１３−２は、有効な分岐ノードに関する分岐パラメータの最適化処理を並列に行い、門関数モデル１０６−６を出力する。具体的には、分岐パラメータ最適化並列処理部１１３−２は、入力データ１１１と、階層隠れ変数変分確率計算処理部１０４で算出された階層隠れ変数変分確率１０４−６とを用いて、有効なすべての分岐ノードに関する分岐パラメータを同時並行で最適化する。
【０１５０】
分岐パラメータ最適化並列処理部１１３−２は、例えば、図１５に例示するように、第１の実施形態の分岐パラメータ最適化処理部１０６−３を並列に並べて構成してもよい。このような構成により、一度にすべての門関数の分岐パラメータを最適化できる。
【０１５１】
すなわち、階層隠れ変数モデル推定装置１００，２００は、門関数の最適化処理を１つずつ実行していたが、本実施形態の階層隠れ変数モデル推定装置は、門関数の最適化処理を並行して行うことができるため、より高速なモデル推定が可能になる。
【０１５２】
なお、門関数最適化処理部１１３（より詳しくは、有効分岐ノード選別部１１３−１と、分岐パラメータ最適化並列処理部１１３−２）は、プログラム（階層隠れ変数モデルの推定プログラム）に従って動作するコンピュータのＣＰＵによって実現される。
【０１５３】
次に、本実施形態の門関数最適化処理部１１３の動作を説明する。図１６は、少なくとも１つの実施形態に係る門関数最適化処理部１１３の動作例を示すフローチャートである。まず、有効分岐ノード選別部１１３−１は、有効なすべての分岐ノードを選択する（ステップＳ３０１）。次に、分岐パラメータ最適化並列処理部１１３−２は、有効なすべての分岐ノードを並列に最適化し（ステップＳ３０２）、処理を完了させる。
【０１５４】
以上のように、本実施形態によれば、有効分岐ノード選別部１１３−１が、階層隠れ構造のノードから有効な分岐ノードを選別し、分岐パラメータ最適化並列処理部１１３−２が、有効な分岐ノードにおける隠れ変数の変分確率に基づいて門関数モデルを最適化する。その際、分岐パラメータ最適化並列処理部１１３−２は、有効な分岐ノードに関する各分岐パラメータの最適化を並列に処理する。よって、門関数の最適化処理を並行して行うことができるため、上述する実施形態の効果に加え、より高速なモデル推定が可能になる。
【０１５５】
《第４の実施形態》
次に、本発明の第４の実施形態について説明する。第４の実施形態に係る売上予測支援システムは、ＣＭ実施計画に基づく売上を予測する。具体的には、売上予測支援システムは、ＣＭ予算やＣＭ価格表等に基づいて決定されるＣＭの実施計画（以下、露出パタンと記すこともある。）に応じた売上を予測する。第４の実施形態に係る売上予測支援システムに含まれる売上予測装置８００は、ＣＭ計画支援システムの一例である。
【０１５６】
図１７は、少なくとも１つの実施形態に係る売上予測装置の構成例を示すブロック図である。本実施形態に係る売上予測支援システムは、売上予測支援システム１０と比較して、売上予測装置７００が売上予測装置８００に置き換わったものである。
【０１５７】
売上予測装置８００は、露出パタン生成部８０１と、売上評価部８０２と、データ入力装置７０１と、モデル取得部７０２と、コンポーネント決定部７０３と、売上予測部７０４とを含む。なお、本実施形態のモデル取得部７０２およびコンポーネント決定部７０３は、第１の実施形態におけるモデル取得部７０２およびコンポーネント決定部７０３と動作が異なる。データ入力装置７０１の動作は、第１の実施形態と同様である。
【０１５８】
なお、露出パタン生成部８０１と、売上評価部８０２と、データ入力装置７０１と、モデル取得部７０２と、コンポーネント決定部７０３と、売上予測部７０４とは、プログラム（ＣＭ計画支援プログラム）に従って動作するコンピュータのＣＰＵによって実現される。露出パタン生成部８０１と、売上評価部８０２と、データ入力装置７０１と、モデル取得部７０２と、コンポーネント決定部７０３と、売上予測部７０４とは、それぞれが専用のハードウェアで実現されていてもよい。
【０１５９】
モデル取得部７０２は、第１の実施形態のモデル取得部７０２と同様、売上の予測に用いるモデルとして、モデルデータベース５００から門関数及びコンポーネントを取得する。さらに、本実施形態のモデル取得部７０２は、取得した門関数及びコンポーネントの内容を可視化して表示してもよい。
【０１６０】
図１８は、モデルを可視化した例を示す説明図である。上述するように、本明細書において、階層隠れ変数モデルとは、木構造で表される。そこで、モデル取得部７０２は、根ノードにコンポーネント（またはコンポーネントの識別情報）を表示し、上位のノードに対応する門関数が示す条件（または、条件の識別情報）を表示してもよい。
【０１６１】
図１８に示す例では、根ノードに３つの予測式が配置され、例えば、予測式２と予測式３に分岐するノードに対応する門関数が、「先月からのＣＭ増分＜ＭＭ回」という条件で予測式を分岐させることを示す。
【０１６２】
露出パタン生成部８０１は、実施するＣＭを検討する際に用いられる情報（例えば、ＣＭ予算、ＣＭ価格表、ＣＭ属性データなど）に基づいて、露出パタン８１１を生成し、予測用データとしてデータ入力装置７０１に入力する。
【０１６３】
ここで入力される露出パタン８１１は、予測実施時点から予測対象時点までの間に実施予定のＣＭの内容を示す将来の予定データである。すなわち、ここで生成される露出パタン８１１は、将来の予定データを示す説明変数であり、予測実施時点までに取得可能な実績データとは、その性質が異なる。なお、モデルデータベース５００には、過去の露出パタンに基づいて学習された売上予測モデルが記憶されている。また、露出パタン８１１は、変更可能な予定データであって、天気予報などのように意図的に予定を変更できないデータとも、その性質が異なる。
【０１６４】
本実施形態では、将来の売上予測に影響を与え得る情報として、予測実施日から予測対象日までの間に実施される将来の予定データを説明変数として利用する。このような説明変数を用いることで、売上予測の精度を向上させることができる。
【０１６５】
露出パタン生成部８０１が、露出パタン８１１を生成する方法は任意である。露出パタン生成部８０１は、例えば、ＣＭ予算内に収まるように、必須の項目（例えば、期間、時間帯など）以外を網羅的に変更して、露出パタン８１１を生成してもよい。
【０１６６】
また、露出パタン生成部８０１は、売上に対して、より影響を与え得る説明変数を重視する露出パタン８１１を生成してもよい。具体的には、露出パタン生成部８０１は、後述するコンポーネント決定部７０３から、売上に対して、より影響を与え得る説明変数を受信し、その説明変数の比重を高くする露出パタン８１１を生成してもよい。このような露出パタンを生成することにより、より売上が高くなると予測されるＣＭ実施計画を生成できる。
【０１６７】
データ入力装置７０１は、入力データ７１１および露出パタン８１１を予測用データとして、コンポーネント決定部７０３に入力する。
【０１６８】
コンポーネント決定部７０３は、入力データ７１１および露出パタン８１１と、モデル取得部７０２が取得した門関数とに基づいて、第１の実施形態と同様に階層隠れ構造をたどる。そして、コンポーネント決定部７０３は、当該階層隠れ構造の最下層のノードに関連付けられたコンポーネントを、売上予測に用いるコンポーネントに決定する。
【０１６９】
さらに、本実施形態のコンポーネント決定部７０３は、決定されたコンポーネントの内容を出力してもよい。具体的には、コンポーネント決定部７０３は、売上により影響を与え得る上位の説明変数を可視化してもよい。
【０１７０】
コンポーネントは各説明変数に係る重みを示す値であることから、売上予測に用いられるコンポーネントは、例えば、以下の式Ｂに例示するように、各説明変数の一次式で表すことができる。
【０１７１】
ｙ＝ａ０＋ａ１ｘ１＋ａ２ｘ２＋・・・＋ａｎｘｎ  （式Ｂ）
【０１７２】
ここで、ｙは、将来の売上を示す目的変数であり、ｘｉは、説明変数である。また、ａｉは、各説明変数ｘｉに対する重みを示す。
【０１７３】
コンポーネント決定部７０３は、売上予測に用いる説明変数のうち、より売上に影響する説明変数の内容を出力してもよい。コンポーネント決定部７０３は、例えば、重み値がより大きい説明変数を出力してもよい。また、コンポーネント決定部７０３は、各説明変数の取りうる範囲に応じて重み値を調整し、その調整後の重み値がより大きい説明変数を出力してもよい。
【０１７４】
図１９は、決定されたコンポーネントの内容を可視化した例を示す説明図である。図１９に示す例では、売上とともに、売上に対して、より影響を与え得る説明変数（有効な要因）とその重みが階層構造とともに出力されている。
【０１７５】
また、コンポーネント決定部７０３は、図１９に例示するように、階層隠れ構造の門関数が示す分岐条件を階層構造とともに出力してもよい。また、分岐条件が、ポインティングディバイスの操作（例えば、マウスでクリックする操作）に応じて、表示されるようにしてもよい。
【０１７６】
なお、モデル取得部７０２の代わりに、コンポーネント決定部７０３が、取得した門関数及びコンポーネントの内容を可視化して表示してもよい。
【０１７７】
このように、本実施形態では、コンポーネント決定部７０３により得られる目的変数の予測式が、例えば、上記に例示する式Ｂの形式で表すことができるため、いわゆるブラックボックス化された式ではなく、解釈容易性の観点で優位性が高い。したがって、対象商品の売上に影響する説明変数を低コストで出力できる。
【０１７８】
売上予測部７０４は、コンポーネント決定部７０３が決定したコンポーネントと、入力データ７１１および露出パタン８１１とに基づいて売上を予測する。
【０１７９】
売上評価部８０２は、予測された売上を評価する。具体的には、売上評価部８０２は、前回予測した露出パタンに基づく売上よりも、新たに予測した露出パタンに基づく売上が大きい場合、その露出パタンをメモリ（図示せず）に保持する。そして、売上評価部８０２は、予め定めた条件を満たすまで（例えば、売上の増分が一定の閾値を下回る、予測回数が所定の回数に達する、予測時間が所定の期間を経過する、など）評価を繰り返す。その後、売上評価部８０２は、最適な露出パタンとして、メモリに記憶された露出パタンを出力する。
【０１８０】
このように、売上評価部８０２は、売上予測部７０４による予測処理または予測される売上の増分が所定の条件を満たすまで、露出パタン生成部８０１に新たな露出パタンの生成を指示してもよい。露出パタン生成部８０１と売上評価部８０２とがこのように連携することで、ＣＭ最適化のためのシミュレーションを行っているということができる。
【０１８１】
次に、本実施形態の売上予測システムの動作を説明する。
まず、階層隠れ変数モデル推定装置１００は、対象商品の売上を予測するための門関数及びコンポーネントを推定する。本実施形態では、階層隠れ変数モデル推定装置１００は、対象商品ごとに門関数及びコンポーネントを推定する。本実施形態では、階層隠れ変数モデル推定装置１００は、第１の実施形態に示す方法により門関数及びコンポーネントを算出する。なお、他の実施形態では、階層隠れ変数モデル推定装置１００は、第２の実施形態に示す方法や第３の実施形態に示す方法で門関数及びコンポーネントを算出しても良い。
【０１８２】
階層隠れ変数モデル推定装置１００は、推定した門関数及びコンポーネントを、モデルデータベース５００に記録する。モデルデータベース５００に門関数及びコンポーネントが記録されると、売上予測装置８００は、売上の予測を開始する。
【０１８３】
図２０は、少なくとも１つの実施形態に係る売上予測装置の動作例を示すフローチャートである。
【０１８４】
売上予測装置８００の露出パタン生成部８０１は、露出パタン８１１を生成する（ステップＳ１４１）。具体的には、露出パタン生成部８０１は、予測実施日から将来の予測対象日前日までのＴＶメタデータ（ＣＭ実施計画）を生成する。次に、データ入力装置７０１は、入力データ７１１および露出パタン８１１を入力する（ステップＳ１４２）。具体的には、データ入力装置７０１は、対象商品の直近の売上データおよび直近のＴｗｉｔｔｅｒデータを入力データ７１１として入力する。以下、入力データ７１１と露出パタン８１１とをまとめて、単に入力データ７１１と記す。
【０１８５】
モデル取得部７０２は、モデルデータベース５００から対象商品についての門関数およびコンポーネントを取得する（ステップＳ１４３）。次に、コンポーネント決定部７０３は、入力データ７１１とモデル取得部７０２が取得した門関数に基づいて、階層隠れ構造の根ノードから最下層のノードまでたどることで、売上予測に用いるコンポーネントを決定する（ステップＳ１４４）。また、コンポーネント決定部７０３は、決定したコンポーネントに基づいて、売上により影響を与え得る上位の説明変数を出力する（ステップＳ１４５）。
【０１８６】
コンポーネント決定部７０３が売上予測に用いるコンポーネントを決定すると、売上予測部７０４は、ステップＳ１４３で選択した入力データ７１１を当該コンポーネントに代入することで、対象商品の売上を予測する（ステップＳ１４６）。
【０１８７】
売上評価部８０２は、予測された売上を評価する。具体的には、売上評価部８０２は、新たに予測した売上が、以前に予測した売上よりも増加したか否か判断する（ステップＳ１４７）。売上が増加した場合（ステップＳ１４７におけるＹｅｓ）、売上評価部８０２は、保持している露出パタン８１１を更新する（ステップＳ１４８）。一方、売上が増加していない場合（ステップＳ１４７におけるＮｏ）、売上評価部８０２は、ステップＳ１４９以降の処理を行う。
【０１８８】
次に、売上評価部８０２は、予測処理の終了条件を満たしているか判断する（ステップＳ１４９）。終了条件を満たしている場合（ステップＳ１４９におけるＹｅｓ）、売上評価部８０２は、保持している露出パタンを最適な露出パタンとして出力する（ステップＳ１５０）。一方、終了条件を満たしていない場合（ステップＳ１４９におけるＮｏ）、露出パタン生成部８０１は、コンポーネント決定部７０３が出力した説明変数に基づいて、新たな露出パタンを生成し（ステップＳ１５１）、ステップＳ１４２以降の処理が繰り返される。
【０１８９】
以上のように、本実施形態の売上予測装置８００は、コンポーネント決定部７０３が、予測用データである入力データと露出パタンに基づいて、階層隠れ構造から特定されるコンポーネントを決定し、売上予測部７０４が、決定したコンポーネントを用いて売上を予測する。したがって、精度よく売上を予測できるとともに、売上に対して、より影響を与え得る要因を、簡易に特定できる。
【０１９０】
なお、本実施形態では、売上評価部８０２が最適な露出パタンを１つ保持し、その露出パタンを出力しているが、売上評価部８０２は、複数の露出パタンを売上予測とともに保持していてもよい。そして、売上評価部８０２は、売上予測が上位の露出パタンを出力してもよい。
【０１９１】
《基本構成》
次に、ＣＭ計画支援システムの基本構成を説明する。図２１は、ＣＭ計画支援システムの基本構成を示すブロック図である。ＣＭ計画支援システムは、予測用データ入力部９１と、露出パタン生成部９２と、コンポーネント決定部９３と、売上予測部９４とを備えている。
【０１９２】
予測用データ入力部９１は、将来の売上に影響を与え得る情報である１つ以上の説明変数である予測用データを入力する。予測用データ入力部９１の例として、データ入力装置７０１が挙げられる。
【０１９３】
露出パタン生成部９２は、予測実施時点から将来の予測対象時点までの間に実施予定のＣＭの内容を示す説明変数である露出パタンを生成する。露出パタン生成部９２の例として、露出パタン生成部８０１が挙げられる。
【０１９４】
コンポーネント決定部９３は、隠れ変数が木構造で表され、その木構造の最下層のノードに確率モデルを表すコンポーネントが配された構造である階層隠れ構造と、その階層隠れ構造のノードにおいて分岐方向を決定する門関数と、予測用データおよび露出パタンとに基づいて、売上の予測に用いるコンポーネントを決定する。コンポーネント決定部９３の例として、コンポーネント決定部７０３が挙げられる。
【０１９５】
売上予測部９４は、コンポーネント決定部９３が決定したコンポーネントと、予測用データおよび露出パタンとに基づいて、売上を予測する。売上予測部９４の例として、売上予測部７０４が挙げられる。
【０１９６】
そのような構成により、ＣＭ計画支援システムは、門関数により適切なコンポーネントを用いることで、ＣＭ計画に基づく適切な売上予測を低コストで行うことができる。
【０１９７】
また、コンポーネント決定部９３は、売上により影響を与え得る説明変数を出力してもよい。このような構成により、売上に対して、より影響を与え得る要因を重視したＣＭ計画を策定できる。
【０１９８】
露出パタン生成部９２は、出力された説明変数の比重を高くする露出パタンを生成してもよい。そのような構成によれば、より売上に影響するＣＭ計画を自動で作成することが可能になる。
【０１９９】
また、ＣＭ計画支援システムは、予測された売上を評価する売上評価部を備えていてもよい。売上評価部の例として、売上評価部８０２が挙げられる。そして、売上評価部は、売上予測部９４による予測処理または予測される売上の増分が所定の条件を満たすまで、露出パタン生成部９２に新たな露出パタンの生成を指示してもよい。そのような構成によれば、最適なＣＭ計画を自動で作成することが可能になる。
【０２００】
また、コンポーネント決定部９３は、売上により影響を与え得る説明変数を、階層隠れ構造とともに出力してもよい。また、コンポーネント決定部９３は、階層隠れ構造の門関数が示す分岐条件を出力してもよい。
【０２０１】
次に、売上予測支援システムの基本構成を説明する。図２２は、売上予測支援システムの基本構成を示すブロック図である。売上予測支援システムは、将来の売上を示す目的変数とその売上に影響を与え得る情報である１つ以上の説明変数の複数の組み合わせである学習用データを入力する学習用データ入力部８１（例えば、データ入力装置１０１）と、隠れ変数が木構造で表され、その木構造の最下層のノードに確率モデルを表すコンポーネントが配された構造である階層隠れ構造を設定する階層隠れ構造設定部８２（例えば、階層隠れ構造設定部１０２）と、学習用データ入力部８１が入力した学習用データとコンポーネントとに基づいて、階層隠れ構造において根ノードから対象ノードまでを結んだ経路に含まれる隠れ変数である経路隠れ変数の変分確率を計算する変分確率計算部８３（例えば、階層隠れ変数変分確率計算処理部１０４）と、学習用データ入力部８１が入力した学習用データに基づいて、算出された変分確率に対してコンポーネントを最適化するコンポーネント最適化処理部８４（例えば、コンポーネント最適化処理部１０５）と、階層隠れ構造のノードにおいて説明変数に応じた分岐方向を決定するモデルである門関数モデルを、そのノードにおける隠れ変数の変分確率に基づいて最適化する門関数最適化部８５（例えば、門関数最適化処理部１０６）と、１つ以上の説明変数を予測用データとして入力する予測用データ入力部８６（例えば、データ入力装置７０１）と、予測実施時点から将来の予測対象時点までの間に実施予定のＣＭの内容を示す説明変数である露出パタンを生成する露出パタン生成部８７（例えば、露出パタン生成部８０１）と、門関数最適化部８５が最適化した門関数と、予測用データおよび露出パタンとに基づいて、コンポーネント最適化処理部８４が最適化したコンポーネントのうち、売上の予測に用いるコンポーネントを決定するコンポーネント決定部８８（例えば、コンポーネント決定部７０３）と、コンポーネント決定部８８が決定したコンポーネントと、予測用データおよび露出パタンとに基づいて、売上を予測する売上予測部８９（例えば、売上予測部７０４）とを備えている。
【０２０２】
そのような構成により、対象商品の売上をコストを抑えつつ予測できる。
【０２０３】
図２３は、少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。コンピュータ１０００は、ＣＰＵ１００１、主記憶装置１００２、補助記憶装置１００３、インタフェース１００４を備える。
【０２０４】
上述の階層隠れ変数モデル推定装置や売上予測装置は、それぞれコンピュータ１０００に実装される。なお、階層隠れ変数モデル推定装置が実装されたコンピュータ１０００と売上予測装置が実装されたコンピュータ１０００は異なるものであって良い。そして、上述した各処理部の動作は、プログラム（階層隠れ変数モデルの推定プログラムや売上予測プログラム）の形式で補助記憶装置１００３に記憶されている。ＣＰＵ１００１は、プログラムを補助記憶装置１００３から読み出して主記憶装置１００２に展開し、当該プログラムに従って上記処理を実行する。
【０２０５】
なお、少なくとも１つの実施形態において、補助記憶装置１００３は、一時的でない有形の媒体の一例である。一時的でない有形の媒体の他の例としては、インタフェース１００４を介して接続される磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ１０００に配信される場合、配信を受けたコンピュータ１０００が当該プログラムを主記憶装置１００２に展開し、上記処理を実行しても良い。
【０２０６】
また、当該プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、当該プログラムは、前述した機能を補助記憶装置１００３に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【０２０７】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０２０８】
（付記１）コンピュータに、将来の売上を示す目的変数と当該売上に影響を与え得る情報である１つ以上の説明変数の複数の組み合わせである学習用データを入力する学習用データ入力処理、隠れ変数が木構造で表され、当該木構造の最下層のノードに確率モデルを表すコンポーネントが配された構造である階層隠れ構造を設定する階層隠れ構造設定処理、前記学習用データ入力処理で入力された学習用データと前記コンポーネントとに基づいて、前記階層隠れ構造において根ノードから対象ノードまでを結んだ経路に含まれる隠れ変数である経路隠れ変数の変分確率を計算する変分確率計算処理、前記学習用データ入力処理で入力された学習用データに基づいて、算出された変分確率に対して前記コンポーネントを最適化するコンポーネント最適化処理、前記階層隠れ構造のノードにおいて前記説明変数に応じた分岐方向を決定するモデルである門関数モデルを、当該ノードにおける隠れ変数の変分確率に基づいて最適化する門関数最適化処理、１つ以上の説明変数を予測用データとして入力する予測用データ入力処理、予測実施時点から将来の予測対象時点までの間に実施予定のＣＭの内容を示す説明変数である露出パタンを生成する露出パタン生成処理、前記門関数最適化処理で最適化された門関数と、前記予測用データおよび前記露出パタンとに基づいて、前記コンポーネント最適化処理で最適化された前記コンポーネントのうち、前記売上の予測に用いる前記コンポーネントを決定するコンポーネント決定処理、および、前記コンポーネント決定処理で決定された前記コンポーネントと、前記予測用データおよび前記露出パタンとに基づいて、前記売上を予測する売上予測処理を実行させるための売上予測支援プログラムを記録したコンピュータ読み取り可能な記録媒体。
【０２０９】
以上、実施形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０２１０】
この出願は、２０１４年７月１４日に出願された米国仮出願第６２／０２４，１２１号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０２１１】
１０  売上予測支援システム
１００  階層隠れ変数モデル推定装置
３００  学習用データベース
５００  モデルデータベース
７００，８００  売上予測装置
７０１  データ入力装置
７０２  モデル取得部
７０３  コンポーネント決定部
７０４  売上予測部
８０１  露出パタン生成部
８０２  売上評価部
【図１】
0006477703.tif 000008
【図２】
0006477703.tif 000009
【図３】
0006477703.tif 000010
【図４】
0006477703.tif 000011
【図５】
0006477703.tif 000012
【図６】
0006477703.tif 000013
【図７】
0006477703.tif 000014
【図８】
0006477703.tif 000015
【図９】
0006477703.tif 000016
【図１０】
0006477703.tif 000017
【図１１】
0006477703.tif 000018
【図１２】
0006477703.tif 000019
【図１３】
0006477703.tif 000020
【図１４】
0006477703.tif 000021
【図１５】
0006477703.tif 000022
【図１６】
0006477703.tif 000023
【図１７】
0006477703.tif 000024
【図１８】
0006477703.tif 000025
【図１９】
0006477703.tif 000026
【図２０】
0006477703.tif 000027
【図２１】
0006477703.tif 000028
【図２２】
0006477703.tif 000029
【図２３】
0006477703.tif 000030