本明細書において、階層隠れ変数モデルとは、隠れ変数(すなわち、階層構造)が木構造を持つものである。その木構造の最下層のノードには、確率モデルであるコンポーネントが配される。また、各分岐ノードには、入力に応じて分岐を振り分ける門関数が設けられている。以下の説明では、特に深さ2の階層隠れ変数モデルについて具体的な説明を行う。
また、階層構造は木構造を想定しているため、根ノードからあるノードまでの道筋は一つに決定される。以下、階層隠れ構造において根ノードからあるノードまで結んだときの道筋(リンク)のことを経路と記す。また、経路ごとに隠れ変数を辿ることで、経路隠れ変数が決定される。例えば、最下層経路隠れ変数とは、根ノードから最下層ノードまでの経路ごとに決定される経路隠れ変数を示す。
また、以下の説明では、データ列xn(n=1,・・・,N)が入力されると仮定し、各xnがM次元多変量データ列(xn=x1 n,・・・,xM n)であるとする。また、データ列xnのことを観測変数と記すこともある。観測変数xnに対する第1層分岐隠れ変数zi n、最下層分岐隠れ変数zj|i n、最下層経路隠れ変数zij nを定義する。
zi n=1は、根ノードに入力されたxnが第1層第iノードへ分岐することを表し、zi n=0は、第1層第iノードへは分岐しないことを表している。zj|i n=1は、第1層第iノードに入力されたxnが第2層第jノードへ分岐することを表し、zj|i n=0は、第1層第iノードに入力されたxnが第2層第jノードへは分岐しないことを表している。zij n=1は、xnが第1層第iノード、第2層第jノードを通ることで辿られるコンポーネントに対応することを表し、zij n=0は、xnが第1層第iノード、第2層第jノードを通ることで辿られるコンポーネントに対応しないことを表している。
なお、Σizi n=1、Σjzj|i n=1、zij n=zi n・zj|i nを満たすため、これらより、zi n=Σjzij nが成り立つ。xと、最下層経路隠れ変数zij nの代表値zとの組みは、「完全変数」と呼ばれる。一方、対比として、xは、不完全変数と呼ばれる。
完全変数に関する深さ2の階層隠れ変数モデル同時分布は、以下に示す式1で表される。
すなわち、完全変数に関する深さ2の階層隠れ変数モデル同時分布は、上記に示す式1に含まれるP(x,y)=P(x,z1st,z2nd)で定義される。ここでは、zi nの代表値をz1st nとし、zj|i nの代表値をz2nd nとする。なお、第1層分岐隠れ変数zi nに対する変分分布をq(zi n)とし、最下層経路隠れ変数zij nに対する変分分布をq(zij n)とする。
上記の式1において、K1は、第1層のノード数を表し、K2は、第1層のノードそれぞれから分岐するノード数を表す。最下層のコンポーネントは、K1・K2で表される。また、θ=(β,β1,・・・, βK1,φ1,・・・,φK1・K2)が、モデルのパラメータを表すとする。ただし、βは、根ノードの分岐パラメータであり、βkは、第1層第kノードの分岐パラメータであり、φkは、k番目のコンポーネントに対する観測パラメータである。
また、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はターゲットとなる確率変数)である場合についても適用可能である。
また、実施形態について説明する前に、実施形態に係る予測装置と、非特許文献1に記載された混合隠れ変数モデルに対する推定方法との本質的な違いを説明する。
非特許文献1に記載された方法では、隠れ変数を各コンポーネントのインジケータとする一般的な混合モデルが想定され、最適化の基準が、非特許文献1の式10に示すように導出される。しかし、フィッシャー情報行列が非特許文献1の式6の形式で与えられているように、非特許文献1に記載された方法では、コンポーネントのインジケータである隠れ変数の確率分布が混合モデルの混合比にのみ依存すると仮定されている。そのため、入力に応じたコンポーネントの切り替えが実現できず、この最適化基準は、適切でない。
この問題を解決するためには、以下の実施形態で示すように、階層的な隠れ変数を設定し、適切な最適化基準を用いて計算する必要がある。以下の実施形態では、適切な最適化基準として、入力に応じて各分岐ノードでの分岐を振り分ける多段の特異モデルを想定する。
以下、実施形態を図面を参照して説明する。
《第1の実施形態》
図1は、少なくとも1つの実施形態に係る売上予測支援システムの構成例を示すブロック図である。本実施形態に係る売上予測支援システム10は、階層隠れ変数モデル推定装置100と、学習用データベース300と、モデルデータベース500と、売上予測装置700とを備える。売上予測支援システム10は、過去に収集された売上情報や、売上に影響すると想定される情報等に基づいて売上の予測に用いるモデルを生成し、当該モデルを用いて売上予測を支援する。
階層隠れ変数モデル推定装置100は、学習用データベース300が記憶するデータを用いて、将来の売上を予測するモデルを推定し、当該モデルをモデルデータベース500に記録する。
図2は、少なくとも1つの実施形態に係る学習用データベース300が記憶する情報の例を示す図である。学習用データベース300は、売上情報や、広告媒体を用いた情報発信に関するメタデータ、ソーシャルメディアを利用して発信された情報等を記憶する。
具体的には、学習用データベース300は、売上予測をする対象の商品に関するデータを含む商品テーブルを記憶してもよい。商品テーブルは、図2(A)に例示するように、商品IDに関連付けて、商品名、商品カテゴリ、商品分類、販売開始日時、定価などを格納する。商品IDは、商品を一意に識別する情報である。
また、学習用データベース300は、気象に関するデータを含む気象テーブルを記憶してもよい。気象テーブルは、図2(B)に例示するように、日時および地域に関連付けて、気温、その日の最高気温、その日の最低気温、降水量、天気、湿度などを格納する。
また、学習用データベース300は、商品の売上に関するデータを含む売上テーブルを記憶してもよい。売上テーブルは、図2(C)に例示するように、各商品IDに関連付けて、その商品の期間ごとの売上個数や売上金額を格納する。格納する期間の単位は任意であり、例えば、時間単位でも良く、日単位でも良い。この場合、例えば、一週間の合計売上が必要な場合には、対象とする期間の売上を加算することにより、一週間の売上合計を算出することが可能である。
また、売上テーブルの内容は、一定期間内の売上に限定されず、例えば、比較する期間同士の差分であってもよい。また、上述する場合と同様、比較する期間の売上を加算し、その差分を取ることによっても、比較する期間同士の差分を取得できる。
また、学習用データベース300は、テレビジョン放送やインターネットなど、各種広告媒体を用いた情報発信に関するメタデータを含む広告媒体メタデータテーブルを記憶してもよい。図2(D)は、広告媒体にテレビジョン(以下、TVと記す。)を用いた場合のメタデータの例を示す説明図である。広告媒体メタデータテーブルは、図2(D)に例示するように、商品ID、分類、発信内容等に関連付けて、その発信情報の露出時間を所定の期間ごとに格納する。
広告媒体メタデータテーブルは、他にも、対象キーワードを含むCM放映時間や、カテゴリ別番組(CM)の露出時間、時間帯別の露出時間などを格納してもよい。また、広告媒体メタデータテーブルは、図2(C)に例示する売上テーブルに集計される売上の期間に合わせて、これらの情報を集計してもよい。
また、学習用データベース300は、ソーシャルメディアを利用して発信された情報を含む発信情報テーブルを記憶してもよい。図2(E)は、ソーシャルメディアにTwitter(登録商標)を利用して発信された情報の例を示す説明図である。発信情報テーブルは、同類のキーワードをグループ化して格納する。
図2(E)に例示する情報は、Twitterを利用して発信される各キーワードをもとに、トピック抽出エンジンを用いて所定の数のクラスタを生成し、そのクラスタに含まれる単語を列挙したものである。なお、トピック抽出エンジンは、似た意味を有する単語が似た文書に登場するという考え方に基づく統計モデルにより、自動的に単語をまとめ上げるモジュールである。
例えば、図2(E)に示す例では、ラーメン一般の内容を示すキーワードと判断された、うまい(形容詞)、食べる(動詞)、職人(名詞)等が、1つのクラスタに含まれるキーワード群であることを示す。
モデルデータベース500は、階層隠れ変数モデル推定装置100が推定した、将来の売上を予測するモデルを記憶する。モデルデータベース500は、ハードディスクドライブやソリッドステートドライブなど、一時的でない有形の媒体によって構成される。
売上予測装置700は、商品の売上に関するデータが入力され、当該データとモデルデータベース500が記憶するモデルとに基づいて、将来の売上を予測する。
図3は、少なくとも1つの実施形態に係る階層隠れ変数モデル推定装置の構成例を示すブロック図である。本実施形態の階層隠れ変数モデル推定装置100は、データ入力装置101と、階層隠れ構造設定部102と、初期化処理部103と、階層隠れ変数変分確率計算処理部104と、コンポーネント最適化処理部105と、門関数最適化処理部106と、最適性判定処理部107と、最適モデル選択処理部108と、モデル推定結果出力装置109とを備えている。
階層隠れ変数モデル推定装置100は、学習用データベース300が記憶するデータに基づいて生成された入力データ111が入力されると、その入力データ111に対して階層隠れ構造及び観測確率の種類を最適化し、最適化した結果をモデル推定結果112として出力し、モデルデータベース500に記録する。本実施形態において入力データ111は、学習用データの一例である。
図4は、少なくとも1つの実施形態に係る階層隠れ変数変分確率計算処理部104の構成例を示すブロック図である。階層隠れ変数変分確率計算処理部104は、最下層経路隠れ変数変分確率計算処理部104−1と、階層設定部104−2と、上層経路隠れ変数変分確率計算処理部104−3と、階層計算終了判定処理部104−4を含む。
階層隠れ変数変分確率計算処理部104は、入力データ111と、後述するコンポーネント最適化処理部105で推定された推定モデル104−5が入力されると、階層隠れ変数変分確率104−6を出力する。なお、階層隠れ変数変分確率計算処理部104の詳細な説明は後述される。本実施形態におけるコンポーネントは、各説明変数に係る重みを示す値である。売上予測装置700は、当該コンポーネントが示す重みを乗算した説明変数の総和を算出することで目的変数を得ることができる。
図5は、少なくとも1つの実施形態に係る門関数最適化処理部106の構成例を示すブロック図である。門関数最適化処理部106は、分岐ノード情報取得部106−1と、分岐ノード選択処理部106−2と、分岐パラメータ最適化処理部106−3と、全分岐ノード最適化終了判定処理部106−4とを含む。
門関数最適化処理部106は、入力データ111と、後述する階層隠れ変数変分確率計算処理部104で算出された階層隠れ変数変分確率104−6と、コンポーネント最適化処理部105で推定された推定モデル104−5が入力されると、門関数モデル106−6を出力する。なお、門関数最適化処理部106の詳細な説明は後述される。本実施形態における門関数は、入力データ111に含まれる情報が所定の条件を満たすか否かの判定を行うための関数である。また、門関数は、階層隠れ構造の内部ノードに対応して設けられる。売上予測装置700は、階層隠れ構造のノードをたどる際、門関数の判定結果に従って次にたどるノードを決定する。
データ入力装置101は、入力データ111を入力するための装置である。データ入力装置101は、学習用データベース300の売上テーブルに記録されたデータに基づいて、所定の期間(例えば、一日や一週間など)毎の商品の既知の売上を示す目的変数を生成する。目的変数としては、例えば、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で表される周辺化対数尤度の下界を考える。式2において、 最下層経路隠れ変数変分確率q(zn)を最大化することで等号が成立する。ここで、分子の完全変数の周辺化尤度を完全変数に対する最尤推定量を用いてラプラス近似すると、以下の式3に示す周辺化対数尤度関数の近似式が得られる。
式3において、上付きのバーは、完全変数に対する最尤推定量を表し、D*は、下付きパラメータ*の次元を表す。
次に、最尤推定量が対数尤度関数を最大化する性質と、対数関数が凹関数であることを利用すると、式3の下界は、以下に示す式4のように算出される。
第1層分岐隠れ変数の変分分布q’及び、最下層経路隠れ変数の変分分布q’’は、それぞれの変分分布について式4を最大化することで得られる。なお、ここでは、q’’=q(t−1)、θ=θ(t−1)に固定し、q’を以下の式Aに示す値に固定する。
q’=Σk2 j=1q(t−1) (式A)
ただし、上付き(t)は、階層隠れ変数変分確率計算処理部104、コンポーネント最適化処理部105、門関数最適化処理部106、最適性判定処理部107の繰り返し計算におけるt回目の繰り返しを表す。
次に、図4を参照して、階層隠れ変数変分確率計算処理部104の動作を説明する。
最下層経路隠れ変数変分確率計算処理部104−1は、入力データ111と推定モデル104−5を入力し、最下層隠れ変数変分確率q(zN)を算出する。階層設定部104−2は、変分確率を計算する対象が最下層であることを設定する。具体的には、最下層経路隠れ変数変分確率計算処理部104−1は、入力データ111の目的変数と説明変数の組み合わせ毎に、各推定モデル104−5の変分確率を計算する。変分確率の計算は、推定モデル104−5に入力データ111の説明変数を代入して得られる解と入力データ111の目的変数とを比較することで行う。
上層経路隠れ変数変分確率計算処理部104−3は、一つ上の層の経路隠れ変数変分確率を算出する。具体的には、上層経路隠れ変数変分確率計算処理部104−3は、同じ分岐ノードを親として持つ現在の層の隠れ変数変分確率の和を算出し、その値を一つ上の層の経路隠れ変数変分確率とする。
階層計算終了判定処理部104−4は、変分確率を計算する層が上にまだ存在するか否か判定する。上の層が存在すると判定された場合、階層設定部104−2は、変分確率を計算する対象に一つ上の層を設定する。以降、上層経路隠れ変数変分確率計算処理部104−3および階層計算終了判定処理部104−4は、上述する処理を繰り返す。一方、上の層が存在しないと判定された場合、階層計算終了判定処理部104−4は、すべての階層で経路隠れ変数変分確率が算出されたと判定する。
コンポーネント最適化処理部105は、上記の式4に対して各コンポーネントのモデル(パラメータθおよびその種類S)を最適化し、最適化した推定モデル104−5を出力する。深さが2の階層隠れ変数モデルの場合、コンポーネント最適化処理部105は、qおよびq’’を階層隠れ変数変分確率計算処理部104で算出された最下層経路隠れ変数変分確率q(t)に固定し、q’を上記の式Aに示す上層経路隠れ変数変分確率に固定する。そして、コンポーネント最適化処理部105は、式4に示すGの値を最大化するモデルを算出する。
上記の式4により定義されたGは、コンポーネントごとに最適化関数を分解することが可能である。そのため、コンポーネントの種類の組み合わせ(例えば、S1〜SK1・K2のどの種類を指定するか)を考慮することなく、S1〜SK1・K2及びパラメータφ1〜φK1・K2を別々に最適化できる。このように最適化できる点が、この処理において重要な点である。これにより、組み合わせ爆発を回避してコンポーネントの種類を最適化できる。
次に、図5を参照して、門関数最適化処理部106の動作を説明する。分岐ノード情報取得部106−1は、コンポーネント最適化処理部105で推定された推定モデル104−5を用いて分岐ノードのリストを抽出する。分岐ノード選択処理部106−2は、抽出された分岐ノードのリストの中から分岐ノードを1つ選択する。以下、選択されたノードのことを選択ノードと記すこともある。
分岐パラメータ最適化処理部106−3は、入力データ111と、階層隠れ変数変分確率104−6から得られる選択ノードに関する隠れ変数変分確率とを用いて、選択ノードの分岐パラメータを最適化する。なお、選択ノードの分岐パラメータが、上述する門関数に対応する。
全分岐ノード最適化終了判定処理部106−4は、分岐ノード情報取得部106−1によって抽出されたすべての分岐ノードが最適化されたか否かを判定する。すべての分岐ノードが最適化されている場合、門関数最適化処理部106は、ここでの処理を終了する。一方、すべての分岐ノードが最適化されていない場合、分岐ノード選択処理部106−2による処理が行われ、以降、分岐パラメータ最適化処理部106−3および全分岐ノード最適化終了判定処理部106−4による処理が同様に行われる。
ここで、門関数の具体例を、2分木の階層モデルに対するベルヌーイ分布を基としたものを例に説明する。以下、ベルヌーイ分布を基とした門関数をベルヌーイ型門関数と記すこともある。ここでは、xの第d次元をxdとし、この値がある閾値wを超えないときに2分木の左下へ分岐する確率をg−とし、閾値wを超えるときに2分木の左下へ分岐する確率をg+とする。分岐パラメータ最適化処理部106−3は、上記の最適化パラメータd、w、g−、g+をベルヌーイ分布に基づいて最適化する。これは、非特許文献1に記載されたロジット関数に基づくものと異なり、各パラメータが解析解を持つため、より高速な最適化が可能である。
最適性判定処理部107は、上記の式4を用いて計算される最適化基準Aが収束したか否かを判定する。収束していない場合、階層隠れ変数変分確率計算処理部104、コンポーネント最適化処理部105、門関数最適化処理部106および最適性判定処理部107による処理が繰り返される。最適性判定処理部107は、例えば、最適化基準Aの増分が所定の閾値未満であるときに、最適化基準Aが収束したと判定してもよい。
以降、階層隠れ変数変分確率計算処理部104、コンポーネント最適化処理部105、門関数最適化処理部106および最適性判定処理部107による処理をまとめて、階層隠れ変数変分確率計算処理部104から最適性判定処理部107による処理と記すこともある。階層隠れ変数変分確率計算処理部104から最適性判定処理部107による処理が繰り返され、変分分布とモデルが更新されることで、適切なモデルを選択できる。なお、これらの処理を繰り返すことにより、最適化基準Aが単調に増加することが保証される。
最適モデル選択処理部108は、最適なモデルを選択する。具体的には、階層隠れ構造設定部102で設定された隠れ状態数Cに対して、階層隠れ変数変分確率計算処理部104から最適性判定処理部107による処理で算出される最適化基準Aが、現在設定されている最適化基準Aよりも大きい場合、最適モデル選択処理部108は、そのモデルを最適なモデルとして選択する。
モデル推定結果出力装置109は、入力された観測確率の種類やコンポーネント数の候補から設定される階層隠れ変数モデルの構造の候補についてモデルの最適化が完了した場合、最適な隠れ状態数、観測確率の種類、パラメータ、変分分布などをモデル推定結果112として出力する。一方、最適化の済んでいない候補が存在する場合、階層隠れ構造設定部102へ処理が移され、上述する処理が同様に行われる。
階層隠れ構造設定部102と、初期化処理部103と、階層隠れ変数変分確率計算処理部104(より詳しくは、最下層経路隠れ変数変分確率計算処理部104−1と、階層設定部104−2と、上層経路隠れ変数変分確率計算処理部104−3と、階層計算終了判定処理部104−4)と、コンポーネント最適化処理部105と、門関数最適化処理部106(より詳しくは、分岐ノード情報取得部106−1と、分岐ノード選択処理部106−2と、分岐パラメータ最適化処理部106−3と、全分岐ノード最適化終了判定処理部106−4)と、最適性判定処理部107と、最適モデル選択処理部108とは、プログラム(売上予測支援プログラム)に従って動作するコンピュータのCPUによって実現される。
例えば、プログラムは、階層隠れ変数モデル推定装置100の記憶部(図示せず)に記憶され、CPUは、そのプログラムを読み込み、プログラムに従って、階層隠れ構造設定部102、初期化処理部103、階層隠れ変数変分確率計算処理部104(より詳しくは、最下層経路隠れ変数変分確率計算処理部104−1と、階層設定部104−2と、上層経路隠れ変数変分確率計算処理部104−3と、階層計算終了判定処理部104−4)、コンポーネント最適化処理部105、門関数最適化処理部106(より詳しくは、分岐ノード情報取得部106−1と、分岐ノード選択処理部106−2と、分岐パラメータ最適化処理部106−3と、全分岐ノード最適化終了判定処理部106−4)、最適性判定処理部107および最適モデル選択処理部108として動作してもよい。
また、階層隠れ構造設定部102と、初期化処理部103と、階層隠れ変数変分確率計算処理部104と、コンポーネント最適化処理部105と、門関数最適化処理部106と、最適性判定処理部107と、最適モデル選択処理部108とは、それぞれが専用のハードウェアで実現されていてもよい。
次に、本実施形態の階層隠れ変数モデル推定装置の動作を説明する。図6は、少なくとも1つの実施形態に係る階層隠れ変数モデル推定装置の動作例を示すフローチャートである。
まず、データ入力装置101は、入力データ111を入力する(ステップS100)。次に、階層隠れ構造設定部102は、入力された階層隠れ構造の候補値のうち、まだ最適化の行われていない階層隠れ構造を選択し、設定する(ステップS101)。次に、初期化処理部103は、設定された階層隠れ構造に対して、推定に用いられるパラメータや隠れ変数変分確率の初期化処理を行う(ステップS102)。
次に、階層隠れ変数変分確率計算処理部104は、各経路隠れ変数の変分確率を計算する(ステップS103)。次に、コンポーネント最適化処理部105は、各コンポーネントについて、観測確率の種類とパラメータを推定してコンポーネントを最適化する(ステップS104)。
次に、門関数最適化処理部106は、各分岐ノードにおける分岐パラメータを最適化する(ステップS105)。次に、最適性判定処理部107は、最適化基準Aが収束したか否かを判定する(ステップS106)。すなわち、最適性判定処理部107は、モデルの最適性を判定する。
ステップS106において、最適化基準Aが収束したと判定されなかった場合、すなわち、最適ではないと判定された場合(ステップS106aにおけるNo)、ステップS103からステップS106の処理が繰り返される。
一方、ステップS106において、最適化基準Aが収束したと判定された場合、すなわち、最適であると判定された場合(ステップS106aにおけるYes)、最適モデル選択処理部108は、現在設定されている最適なモデル(例えば、コンポーネント数、観測確率の種類、パラメータ)による最適化基準Aと、最適なモデルとして現在設定されているモデルによる最適化基準Aの値を比較し、値の大きいモデルを最適なモデルとして選択する(ステップS107)。
次に、最適モデル選択処理部108は、推定されていない階層隠れ構造の候補が残っているか否かを判定する(ステップS108)。候補が残っている場合(ステップS108におけるYes)、ステップS101からステップS108の処理が繰り返される。一方、候補が残っていない場合(ステップS108におけるNo)、モデル推定結果出力装置109は、モデル推定結果を出力し、処理を完了させる(ステップS109)。つまり、モデル推定結果出力装置109は、コンポーネント最適化処理部105が最適化したコンポーネントと、門関数最適化処理部106が最適化した門関数とを、モデルデータベース500に記録する。
次に、本実施形態の階層隠れ変数変分確率計算処理部104の動作を説明する。図7は、少なくとも1つの実施形態に係る階層隠れ変数変分確率計算処理部104の動作例を示すフローチャートである。
まず、最下層経路隠れ変数変分確率計算処理部104−1は、最下層経路隠れ変数変分確率を算出する(ステップS111)。次に、階層設定部104−2は、どの層まで経路隠れ変数を算出したか設定する(ステップS112)。次に、上層経路隠れ変数変分確率計算処理部104−3は、階層設定部104−2によって設定された層での経路隠れ変数変分確率を用いて、1つ上の層の経路隠れ変数変分確率を算出する(ステップS113)。
次に、階層計算終了判定処理部104−4は、経路隠れ変数が算出されていない層が残っているか否かを判定する(ステップS114)。経路隠れ変数が算出されていない層が残っている場合(ステップS114におけるNo)、ステップS112からステップS113の処理が繰り返される。一方、経路隠れ変数が算出されていない層が残っていない場合(ステップS114におけるYes)、階層隠れ変数変分確率計算処理部104は、処理を完了させる。
次に、本実施形態の門関数最適化処理部106の動作を説明する。図8は、少なくとも1つの実施形態に係る門関数最適化処理部106の動作例を示すフローチャートである。
まず、分岐ノード情報取得部106−1は、すべての分岐ノードを把握する(ステップS121)。次に、分岐ノード選択処理部106−2は、最適化の対象とする分岐ノードを1つ選択する(ステップS122)。次に、分岐パラメータ最適化処理部106−3は、選択された分岐ノードにおける分岐パラメータを最適化する(ステップS123)。
次に、全分岐ノード最適化終了判定処理部106−4は、最適化されていない分岐ノードが残っているか否かを判定する(ステップS124)。最適化されていない分岐ノードが残っている場合(ステップS124におけるNo)、ステップS122からステップS123の処理が繰り返される。一方、最適化されていない分岐ノードが残っていない場合(ステップS124におけるYes)、門関数最適化処理部106は、処理を完了させる。
以上のように、本実施形態では、階層隠れ構造設定部102が、階層隠れ構造を設定する。なお、階層隠れ構造は、隠れ変数が木構造で表され、その木構造の最下層のノードに確率モデルを表すコンポーネントが配された構造である。
そして、階層隠れ変数変分確率計算処理部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を出力する。
次に、本実施形態の売上予測装置700の動作を説明する。図10は、少なくとも1つの実施形態に係る売上予測装置700の動作例を示すフローチャートである。
まず、データ入力装置701は、入力データ711を入力する(ステップS131)。なお、データ入力装置701は、1つの入力データ711でなく複数の入力データ711を入力しても良い。データ入力装置701は、例えば、ある商品の直近3ヶ月の売上データ、直近3ヶ月のTwitterデータ、将来の予測対象日前日までのTVメタデータを含む入力データ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の処理が繰り返される。
一方、ステップS207において、最適化基準Aが収束したと判定された場合、すなわち、最適であると判定された場合(ステップS207aにおけるYes)、モデル推定結果出力装置109は、モデル推定結果を出力し、処理を完了させる(ステップ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の実施形態に係る売上予測支援システムは、CM実施計画に基づく売上を予測する。具体的には、売上予測支援システムは、CM予算やCM価格表等に基づいて決定されるCMの実施計画(以下、露出パタンと記すこともある。)に応じた売上を予測する。第4の実施形態に係る売上予測支援システムに含まれる売上予測装置800は、CM計画支援システムの一例である。
図17は、少なくとも1つの実施形態に係る売上予測装置の構成例を示すブロック図である。本実施形態に係る売上予測支援システムは、売上予測支援システム10と比較して、売上予測装置700が売上予測装置800に置き換わったものである。
売上予測装置800は、露出パタン生成部801と、売上評価部802と、データ入力装置701と、モデル取得部702と、コンポーネント決定部703と、売上予測部704とを含む。なお、本実施形態のモデル取得部702およびコンポーネント決定部703は、第1の実施形態におけるモデル取得部702およびコンポーネント決定部703と動作が異なる。データ入力装置701の動作は、第1の実施形態と同様である。
なお、露出パタン生成部801と、売上評価部802と、データ入力装置701と、モデル取得部702と、コンポーネント決定部703と、売上予測部704とは、プログラム(CM計画支援プログラム)に従って動作するコンピュータのCPUによって実現される。露出パタン生成部801と、売上評価部802と、データ入力装置701と、モデル取得部702と、コンポーネント決定部703と、売上予測部704とは、それぞれが専用のハードウェアで実現されていてもよい。
モデル取得部702は、第1の実施形態のモデル取得部702と同様、売上の予測に用いるモデルとして、モデルデータベース500から門関数及びコンポーネントを取得する。さらに、本実施形態のモデル取得部702は、取得した門関数及びコンポーネントの内容を可視化して表示してもよい。
図18は、モデルを可視化した例を示す説明図である。上述するように、本明細書において、階層隠れ変数モデルとは、木構造で表される。そこで、モデル取得部702は、根ノードにコンポーネント(またはコンポーネントの識別情報)を表示し、上位のノードに対応する門関数が示す条件(または、条件の識別情報)を表示してもよい。
図18に示す例では、根ノードに3つの予測式が配置され、例えば、予測式2と予測式3に分岐するノードに対応する門関数が、「先月からのCM増分<MM回」という条件で予測式を分岐させることを示す。
露出パタン生成部801は、実施するCMを検討する際に用いられる情報(例えば、CM予算、CM価格表、CM属性データなど)に基づいて、露出パタン811を生成し、予測用データとしてデータ入力装置701に入力する。
ここで入力される露出パタン811は、予測実施時点から予測対象時点までの間に実施予定のCMの内容を示す将来の予定データである。すなわち、ここで生成される露出パタン811は、将来の予定データを示す説明変数であり、予測実施時点までに取得可能な実績データとは、その性質が異なる。なお、モデルデータベース500には、過去の露出パタンに基づいて学習された売上予測モデルが記憶されている。また、露出パタン811は、変更可能な予定データであって、天気予報などのように意図的に予定を変更できないデータとも、その性質が異なる。
本実施形態では、将来の売上予測に影響を与え得る情報として、予測実施日から予測対象日までの間に実施される将来の予定データを説明変数として利用する。このような説明変数を用いることで、売上予測の精度を向上させることができる。
露出パタン生成部801が、露出パタン811を生成する方法は任意である。露出パタン生成部801は、例えば、CM予算内に収まるように、必須の項目(例えば、期間、時間帯など)以外を網羅的に変更して、露出パタン811を生成してもよい。
また、露出パタン生成部801は、売上に対して、より影響を与え得る説明変数を重視する露出パタン811を生成してもよい。具体的には、露出パタン生成部801は、後述するコンポーネント決定部703から、売上に対して、より影響を与え得る説明変数を受信し、その説明変数の比重を高くする露出パタン811を生成してもよい。このような露出パタンを生成することにより、より売上が高くなると予測されるCM実施計画を生成できる。
データ入力装置701は、入力データ711および露出パタン811を予測用データとして、コンポーネント決定部703に入力する。
コンポーネント決定部703は、入力データ711および露出パタン811と、モデル取得部702が取得した門関数とに基づいて、第1の実施形態と同様に階層隠れ構造をたどる。そして、コンポーネント決定部703は、当該階層隠れ構造の最下層のノードに関連付けられたコンポーネントを、売上予測に用いるコンポーネントに決定する。
さらに、本実施形態のコンポーネント決定部703は、決定されたコンポーネントの内容を出力してもよい。具体的には、コンポーネント決定部703は、売上により影響を与え得る上位の説明変数を可視化してもよい。
コンポーネントは各説明変数に係る重みを示す値であることから、売上予測に用いられるコンポーネントは、例えば、以下の式Bに例示するように、各説明変数の一次式で表すことができる。
y=a0+a1x1+a2x2+・・・+anxn (式B)
ここで、yは、将来の売上を示す目的変数であり、xiは、説明変数である。また、aiは、各説明変数xiに対する重みを示す。
コンポーネント決定部703は、売上予測に用いる説明変数のうち、より売上に影響する説明変数の内容を出力してもよい。コンポーネント決定部703は、例えば、重み値がより大きい説明変数を出力してもよい。また、コンポーネント決定部703は、各説明変数の取りうる範囲に応じて重み値を調整し、その調整後の重み値がより大きい説明変数を出力してもよい。
図19は、決定されたコンポーネントの内容を可視化した例を示す説明図である。図19に示す例では、売上とともに、売上に対して、より影響を与え得る説明変数(有効な要因)とその重みが階層構造とともに出力されている。
また、コンポーネント決定部703は、図19に例示するように、階層隠れ構造の門関数が示す分岐条件を階層構造とともに出力してもよい。また、分岐条件が、ポインティングディバイスの操作(例えば、マウスでクリックする操作)に応じて、表示されるようにしてもよい。
なお、モデル取得部702の代わりに、コンポーネント決定部703が、取得した門関数及びコンポーネントの内容を可視化して表示してもよい。
このように、本実施形態では、コンポーネント決定部703により得られる目的変数の予測式が、例えば、上記に例示する式Bの形式で表すことができるため、いわゆるブラックボックス化された式ではなく、解釈容易性の観点で優位性が高い。したがって、対象商品の売上に影響する説明変数を低コストで出力できる。
売上予測部704は、コンポーネント決定部703が決定したコンポーネントと、入力データ711および露出パタン811とに基づいて売上を予測する。
売上評価部802は、予測された売上を評価する。具体的には、売上評価部802は、前回予測した露出パタンに基づく売上よりも、新たに予測した露出パタンに基づく売上が大きい場合、その露出パタンをメモリ(図示せず)に保持する。そして、売上評価部802は、予め定めた条件を満たすまで(例えば、売上の増分が一定の閾値を下回る、予測回数が所定の回数に達する、予測時間が所定の期間を経過する、など)評価を繰り返す。その後、売上評価部802は、最適な露出パタンとして、メモリに記憶された露出パタンを出力する。
このように、売上評価部802は、売上予測部704による予測処理または予測される売上の増分が所定の条件を満たすまで、露出パタン生成部801に新たな露出パタンの生成を指示してもよい。露出パタン生成部801と売上評価部802とがこのように連携することで、CM最適化のためのシミュレーションを行っているということができる。
次に、本実施形態の売上予測システムの動作を説明する。
まず、階層隠れ変数モデル推定装置100は、対象商品の売上を予測するための門関数及びコンポーネントを推定する。本実施形態では、階層隠れ変数モデル推定装置100は、対象商品ごとに門関数及びコンポーネントを推定する。本実施形態では、階層隠れ変数モデル推定装置100は、第1の実施形態に示す方法により門関数及びコンポーネントを算出する。なお、他の実施形態では、階層隠れ変数モデル推定装置100は、第2の実施形態に示す方法や第3の実施形態に示す方法で門関数及びコンポーネントを算出しても良い。
階層隠れ変数モデル推定装置100は、推定した門関数及びコンポーネントを、モデルデータベース500に記録する。モデルデータベース500に門関数及びコンポーネントが記録されると、売上予測装置800は、売上の予測を開始する。
図20は、少なくとも1つの実施形態に係る売上予測装置の動作例を示すフローチャートである。
売上予測装置800の露出パタン生成部801は、露出パタン811を生成する(ステップS141)。具体的には、露出パタン生成部801は、予測実施日から将来の予測対象日前日までのTVメタデータ(CM実施計画)を生成する。次に、データ入力装置701は、入力データ711および露出パタン811を入力する(ステップS142)。具体的には、データ入力装置701は、対象商品の直近の売上データおよび直近のTwitterデータを入力データ711として入力する。以下、入力データ711と露出パタン811とをまとめて、単に入力データ711と記す。
モデル取得部702は、モデルデータベース500から対象商品についての門関数およびコンポーネントを取得する(ステップS143)。次に、コンポーネント決定部703は、入力データ711とモデル取得部702が取得した門関数に基づいて、階層隠れ構造の根ノードから最下層のノードまでたどることで、売上予測に用いるコンポーネントを決定する(ステップS144)。また、コンポーネント決定部703は、決定したコンポーネントに基づいて、売上により影響を与え得る上位の説明変数を出力する(ステップS145)。
コンポーネント決定部703が売上予測に用いるコンポーネントを決定すると、売上予測部704は、ステップS143で選択した入力データ711を当該コンポーネントに代入することで、対象商品の売上を予測する(ステップS146)。
売上評価部802は、予測された売上を評価する。具体的には、売上評価部802は、新たに予測した売上が、以前に予測した売上よりも増加したか否か判断する(ステップS147)。売上が増加した場合(ステップS147におけるYes)、売上評価部802は、保持している露出パタン811を更新する(ステップS148)。一方、売上が増加していない場合(ステップS147におけるNo)、売上評価部802は、ステップS149以降の処理を行う。
次に、売上評価部802は、予測処理の終了条件を満たしているか判断する(ステップS149)。終了条件を満たしている場合(ステップS149におけるYes)、売上評価部802は、保持している露出パタンを最適な露出パタンとして出力する(ステップS150)。一方、終了条件を満たしていない場合(ステップS149におけるNo)、露出パタン生成部801は、コンポーネント決定部703が出力した説明変数に基づいて、新たな露出パタンを生成し(ステップS151)、ステップS142以降の処理が繰り返される。
以上のように、本実施形態の売上予測装置800は、コンポーネント決定部703が、予測用データである入力データと露出パタンに基づいて、階層隠れ構造から特定されるコンポーネントを決定し、売上予測部704が、決定したコンポーネントを用いて売上を予測する。したがって、精度よく売上を予測できるとともに、売上に対して、より影響を与え得る要因を、簡易に特定できる。
なお、本実施形態では、売上評価部802が最適な露出パタンを1つ保持し、その露出パタンを出力しているが、売上評価部802は、複数の露出パタンを売上予測とともに保持していてもよい。そして、売上評価部802は、売上予測が上位の露出パタンを出力してもよい。
《基本構成》
次に、CM計画支援システムの基本構成を説明する。図21は、CM計画支援システムの基本構成を示すブロック図である。CM計画支援システムは、予測用データ入力部91と、露出パタン生成部92と、コンポーネント決定部93と、売上予測部94とを備えている。
予測用データ入力部91は、将来の売上に影響を与え得る情報である1つ以上の説明変数である予測用データを入力する。予測用データ入力部91の例として、データ入力装置701が挙げられる。
露出パタン生成部92は、予測実施時点から将来の予測対象時点までの間に実施予定のCMの内容を示す説明変数である露出パタンを生成する。露出パタン生成部92の例として、露出パタン生成部801が挙げられる。
コンポーネント決定部93は、隠れ変数が木構造で表され、その木構造の最下層のノードに確率モデルを表すコンポーネントが配された構造である階層隠れ構造と、その階層隠れ構造のノードにおいて分岐方向を決定する門関数と、予測用データおよび露出パタンとに基づいて、売上の予測に用いるコンポーネントを決定する。コンポーネント決定部93の例として、コンポーネント決定部703が挙げられる。
売上予測部94は、コンポーネント決定部93が決定したコンポーネントと、予測用データおよび露出パタンとに基づいて、売上を予測する。売上予測部94の例として、売上予測部704が挙げられる。
そのような構成により、CM計画支援システムは、門関数により適切なコンポーネントを用いることで、CM計画に基づく適切な売上予測を低コストで行うことができる。
また、コンポーネント決定部93は、売上により影響を与え得る説明変数を出力してもよい。このような構成により、売上に対して、より影響を与え得る要因を重視したCM計画を策定できる。
露出パタン生成部92は、出力された説明変数の比重を高くする露出パタンを生成してもよい。そのような構成によれば、より売上に影響するCM計画を自動で作成することが可能になる。
また、CM計画支援システムは、予測された売上を評価する売上評価部を備えていてもよい。売上評価部の例として、売上評価部802が挙げられる。そして、売上評価部は、売上予測部94による予測処理または予測される売上の増分が所定の条件を満たすまで、露出パタン生成部92に新たな露出パタンの生成を指示してもよい。そのような構成によれば、最適なCM計画を自動で作成することが可能になる。
また、コンポーネント決定部93は、売上により影響を与え得る説明変数を、階層隠れ構造とともに出力してもよい。また、コンポーネント決定部93は、階層隠れ構造の門関数が示す分岐条件を出力してもよい。
次に、売上予測支援システムの基本構成を説明する。図22は、売上予測支援システムの基本構成を示すブロック図である。売上予測支援システムは、将来の売上を示す目的変数とその売上に影響を与え得る情報である1つ以上の説明変数の複数の組み合わせである学習用データを入力する学習用データ入力部81(例えば、データ入力装置101)と、隠れ変数が木構造で表され、その木構造の最下層のノードに確率モデルを表すコンポーネントが配された構造である階層隠れ構造を設定する階層隠れ構造設定部82(例えば、階層隠れ構造設定部102)と、学習用データ入力部81が入力した学習用データとコンポーネントとに基づいて、階層隠れ構造において根ノードから対象ノードまでを結んだ経路に含まれる隠れ変数である経路隠れ変数の変分確率を計算する変分確率計算部83(例えば、階層隠れ変数変分確率計算処理部104)と、学習用データ入力部81が入力した学習用データに基づいて、算出された変分確率に対してコンポーネントを最適化するコンポーネント最適化処理部84(例えば、コンポーネント最適化処理部105)と、階層隠れ構造のノードにおいて説明変数に応じた分岐方向を決定するモデルである門関数モデルを、そのノードにおける隠れ変数の変分確率に基づいて最適化する門関数最適化部85(例えば、門関数最適化処理部106)と、1つ以上の説明変数を予測用データとして入力する予測用データ入力部86(例えば、データ入力装置701)と、予測実施時点から将来の予測対象時点までの間に実施予定のCMの内容を示す説明変数である露出パタンを生成する露出パタン生成部87(例えば、露出パタン生成部801)と、門関数最適化部85が最適化した門関数と、予測用データおよび露出パタンとに基づいて、コンポーネント最適化処理部84が最適化したコンポーネントのうち、売上の予測に用いるコンポーネントを決定するコンポーネント決定部88(例えば、コンポーネント決定部703)と、コンポーネント決定部88が決定したコンポーネントと、予測用データおよび露出パタンとに基づいて、売上を予測する売上予測部89(例えば、売上予測部704)とを備えている。
そのような構成により、対象商品の売上をコストを抑えつつ予測できる。
図23は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。コンピュータ1000は、CPU1001、主記憶装置1002、補助記憶装置1003、インタフェース1004を備える。
上述の階層隠れ変数モデル推定装置や売上予測装置は、それぞれコンピュータ1000に実装される。なお、階層隠れ変数モデル推定装置が実装されたコンピュータ1000と売上予測装置が実装されたコンピュータ1000は異なるものであって良い。そして、上述した各処理部の動作は、プログラム(階層隠れ変数モデルの推定プログラムや売上予測プログラム)の形式で補助記憶装置1003に記憶されている。CPU1001は、プログラムを補助記憶装置1003から読み出して主記憶装置1002に展開し、当該プログラムに従って上記処理を実行する。
なお、少なくとも1つの実施形態において、補助記憶装置1003は、一時的でない有形の媒体の一例である。一時的でない有形の媒体の他の例としては、インタフェース1004を介して接続される磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ1000に配信される場合、配信を受けたコンピュータ1000が当該プログラムを主記憶装置1002に展開し、上記処理を実行しても良い。
また、当該プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、当該プログラムは、前述した機能を補助記憶装置1003に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル(差分プログラム)であっても良い。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)コンピュータに、将来の売上を示す目的変数と当該売上に影響を与え得る情報である1つ以上の説明変数の複数の組み合わせである学習用データを入力する学習用データ入力処理、隠れ変数が木構造で表され、当該木構造の最下層のノードに確率モデルを表すコンポーネントが配された構造である階層隠れ構造を設定する階層隠れ構造設定処理、前記学習用データ入力処理で入力された学習用データと前記コンポーネントとに基づいて、前記階層隠れ構造において根ノードから対象ノードまでを結んだ経路に含まれる隠れ変数である経路隠れ変数の変分確率を計算する変分確率計算処理、前記学習用データ入力処理で入力された学習用データに基づいて、算出された変分確率に対して前記コンポーネントを最適化するコンポーネント最適化処理、前記階層隠れ構造のノードにおいて前記説明変数に応じた分岐方向を決定するモデルである門関数モデルを、当該ノードにおける隠れ変数の変分確率に基づいて最適化する門関数最適化処理、1つ以上の説明変数を予測用データとして入力する予測用データ入力処理、予測実施時点から将来の予測対象時点までの間に実施予定のCMの内容を示す説明変数である露出パタンを生成する露出パタン生成処理、前記門関数最適化処理で最適化された門関数と、前記予測用データおよび前記露出パタンとに基づいて、前記コンポーネント最適化処理で最適化された前記コンポーネントのうち、前記売上の予測に用いる前記コンポーネントを決定するコンポーネント決定処理、および、前記コンポーネント決定処理で決定された前記コンポーネントと、前記予測用データおよび前記露出パタンとに基づいて、前記売上を予測する売上予測処理を実行させるための売上予測支援プログラムを記録したコンピュータ読み取り可能な記録媒体。
以上、実施形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2014年7月14日に出願された米国仮出願第62/024,121号を基礎とする優先権を主張し、その開示の全てをここに取り込む。