« 読了:Kawamoto & Aoki (2019) 自由記述の民主的分類 | メイン | 読了:Peck & Milan (2009) 行動経済学者ケインズ »
2019年7月19日 (金)
Jin, Y., Wang, Sun, Y., Chan, D., Koehler, J. (2017) Bayesian Methods for Media Mix Modeling with Carryover and Shape Effects. Working Paper, Google.
仕事の都合で読んだ奴。
泣く子も黙る超巨大最先端企業Google様におかれましては、Google AIというサイトでマーケティング・ミックス・モデリングについてのいくつかのWorking Paperをご発表になられ遊ばされていらっしゃる。目を通してみたんだけど、その内容は意外にもオーソドックスな感じだ。AIとは...。
タイトルそのまま、繰越効果と形状効果を組み込んだMMMモデルをベイズ推定しますという論文である。形状効果(shape effect)というのは、広告-売上関係が曲線的だということ(Tellis(2006)が引用されている)。
1. イントロダクション
[たいしたこと書いてないので省略]
2. モデル
まず繰越効果の表現から。週$t$におけるメディア$m$の支出を$x[t,m]$とする[原文では$x_{t,m}$だが読みにくいので表記を変える]。$w_m$を非負の重み関数として
$\displaystyle adstock(x[t-L+1,m],\ldots,x[t,m];w_m, L) = \frac{\sum_{l=0}^{L-1} w_m(l) x[t-l,m]}{\sum_{l=l}^{L-1} w_m(l)}$
[単なる$L$次直接ラグモデルである。係数を表す関数$w_m(l)$は、いまのところなにも制約してないけど、実際の係数は$L$個の合計が1になるようにするわけね。つまり売上への効果を表す係数は別に設けるわけだ]
簡便のため$L$は全メディアで13とする。[これは実データを見て決めた由。とはいえ、特定のデータのためのモデルってわけでもないわけで、これはつまり、このモデルは3ヶ月を超える長期繰越は考慮しませんという宣言であるといえよう]
$w_m$としてはいろんな関数が使える。
- 幾何減衰
$w^g_m(l; \alpha_m) = \alpha^l_m$
ただし$0 < \alpha_m < 1$。[えーと、要はKoyckモデルだ] - 遅延をいれて
$w^d_m(l; \alpha_m, \theta_m) = \alpha^{{(l-\theta_m)}^2}_m$
ただし$0 < \alpha_m < 1, 0 \leq \theta_m \leq L-1$。$N(\theta_m, -1(2 \log \alpha_m))$と比例する。放射カーネル基底関数ともいう。 - 負の二項分布関数[HPS本が引用されている]。
次に形状効果の表現。薬学で使われているHill関数というのを使う。
$\displaystyle Hill(x[t,m]; K_m, S_m) = \frac{1}{1+\left( \frac{x[t,m]}{K_m} \right)^{-S_m}}$
$S_m > 0$を傾きと呼ぶ。$K_m > 0$は半飽和点、つまり$Hill(K_m) = 1/2$となる点である。
メディアごとの係数$b_m$を掛けて
$\beta_m Hill_m(x[t,m]) = \beta_m - \frac{K^{S_m}_m \beta_m}{x[t,m]^{S_m} + K^{S_m}_m}$
[ちょっと待て!待ちなさい!あんたたち話が早すぎ!添字を端折ると
$\frac{1}{1+\left( \frac{X}{K} \right)^{-S}} =\frac{1}{1+\left( \frac{K}{X} \right)^{S}} = \frac{X^S}{X^S + K^S} =\frac{(X^S + K^S) - K^S}{X^S + K^S} =1 - \frac{K^S}{X^S + K^S}$
ということですね?]
識別が難しいので$S=1$と固定してもよい。
他のアイデアとしては、ロジスティック関数とか、正規累積関数とか、単調回帰スプラインとかがありうる。
繰越効果と形状効果を同時に表す方法は2つある。
- まずメディア支出の時系列をadstockに変換して、次に形状の変換をする。各期のメディア支出がその累積に比べて比較的に小さい場合に向いている(形状効果は各期でははっきりしないが累積でははっきりするから)。
- まず形状の変換をして、次にadstockに変換する。メディア支出が特定の期に固まっている場合に向いている。
ここでは前者をとる。
簡便のため、シナジーは考えない。
というわけで、モデルは以下の通り。時点$t$における売上(ないし売上の対数)を$y[t]$, $c$番目の制御変数を$z[t,c]$として、
$x^{*}[t,m] = adstock(x[t+L+1, m] \ldots x[t,m]; w_m, L)$
$y[t] = \tau + \sum_{m=1}^M \beta_m Hill(x^{*}[t,m]; K_m, S_m) + \sum_c^C \gamma_c z[t,c] + \epsilon[t]$
$\epsilon[t]$はホワイトノイズ。
3. 推定
ベイズ推定です。
モデルのパラメータのベクトルを$\Phi$, 全てのメディア変数を$X$, すべての制御変数を$Z$、反応ベクトルを$y$とする[原文ではみな太字]。もしも最尤推定だったら、対数尤度$L(y|X, \Phi)$を最大にする$\Phi$を$\hat{\Phi}$にするところだが、ベイズ推定だから、事前分布$\pi(\Phi)$を考えて
$p(\Phi | y, X) \propto L(y | X, Z, \Phi) \pi(\Phi)$
とし、この事後分布の中央値だかなんだかを使う。事後分布は、共役分布を使うか、ないしGibbsサンプリングとかHMCとかで推定できる。
この研究では自前でGibbsサンプリングのコードを書いた。ついでにStanでも試したが、そっちのほうがすごく時間がかかった。
各パラメータの事前分布は ... [概要説明。面倒くさいので省略]
4. アトリビューション・メトリクスと最適メディアミックス
MMMモデルってのは、パラメータを推定できれば終わりってものでもない。ユーザは各チャネルの広告支出あたりリターン(ROAS)や周辺ROAS(mROAS)を知りたい。[線形モデルなら偏回帰係数がreturn/spendになるけど、ここでは非線形な関数をかましているから別途求める必要があるという話だろう]
以下では各チャネルの支出を独立に操作できると仮定する。
まず売上予測値の時系列を求める(対数変換してたら戻す)。次に、change periodを決めて(たとえば3か月前までの1年間とか)。その期間のあるチャネルの広告支出を0にしたときの売上予測値の時系列を求める。ふたつの時系列の差の合計を求め(change period以降についても合計する点に注意。だって繰越があるからね)、change periodの広告支出の合計で割る。これがROAS。
いっぽうmROASとは、現支出レベルに1を足した時の売上の増大。change periodの支出を(たとえば)1%増やして売上予測値の時系列を求め、売上予測値の時系列から引き、支出合計の1%で割る。[この1%という増分をどうするかで、結果が変わってくると思うんだけどな...]
予測値の時系列を求めかた。頻度主義的には、$\Phi$の最尤推定値をプラグインする。いっぽうベイジアン的には、$\Phi$の事後分布をプラグインしてROAS/mROASの事後分布を出す。$\Phi$の事後分布の統計量(中央値とか)をプラグインするのはお勧めしない。$\Phi$のなかにも相関があるからね。[細かいことだけど、ここもちょっとわからん。$\Phi$のなかの相関を問題にするなら、頻度主義のほうでもちょっと工夫するのが筋だろう。ベイジアン以前のKingらのアプローチだったら、ここは$\Phi$の最尤推定値とその共分散行列を推定し、多変量正規性を仮定してモンテカルロシミュレーションをやるところだと思う]
MMMモデルによるメディアミックス最適化について。
change period $(t_0, t_1)$の全メディア支出の予算を$C$とし、最適支出を$X^o = \{x_o[t,m], t_0 \leq t \leq t_1, 1 \leq m \leq M\}$とすると、問題は以下のように書ける。
maximize
$\sum_{t_0 \leq t \leq t_1+L+1} \hat{Y}[t](x[t-L+1,m], \ldots, x[t,m]; \Phi)$
subject to
$\sum_{t_0 \leq t \leq t_1} \sum_{1 \leq m \leq M} x[t,m] = C$
change periodが長かったりメディアの種類が多かったりする場合、数値的に解けなくなるので、フライトパターンを固定する。たとえば毎月均等に支出するとか、過去の支出時系列に比例させるとか。
ベイジアン的には、細かく言うと次の2つのアプローチがある。
- 目的関数を$\Phi$の事後標本を通じた売上予測の平均にする。$\Phi$のサンプルを$J$個とってきて
$(1/J) \sum_j \sum_{t_0 \leq t \leq t_1+L+1} \hat{Y}[t](x[t-L+1,m], \ldots, x[t,m]; \Phi_j)$
を最大化する。 - $\Phi$のあるサンプル$\Phi_j$について
$\sum_{t_0 \leq t \leq t_1+L+1} \hat{Y}[t](x[t-L+1,m], \ldots, x[t,m]; \Phi_j)$
を最大化し、得られた$X_j$をサンプルを通して平均する。
最適ミックスの推定が安定するのは前者なのだが、後者は最適ミックスの推定の分散がわかる、つまり予算配分のモデルをどのくらい信頼してよいのかがわかる。
5. シミュレートされたデータへの適用
架空データの分析例。2年間の週次データ。メディア支出3つと価格、計4本の時系列を生成し、ここからモデルに従って売上時系列を生成した [読み落としたのでなければ、たぶん撹乱項としてホワイトノイズを使っている。実際の市場反応分析では残差項はたいてい自己相関を持つわけで、ちょっとオプティミスティックなデータ生成である]。
で、モデルをあてはめてパラメータを推定。最後の12週を置いておいて、その前の1年をchange periodとする。
$\Phi$の事後分布からサンプルを取ってきて売上予測時系列、ROAS、mROASを求める。これを繰り返してROASとmROASの事後分布を求める。あらかじめ設定したHills曲線の形状によっては、かなりバイアスが出る。
最後にchange periodのなかの8週間に焦点をあて、2つのメディアについて最適配分を求める。各週の支出は一定とする[そうだろうな、やっぱしこのくらい制約しないと、最適配分問題は解けないだろうな]。2通りの予算について、最適支出の事後分布、ならびに支出-売上期待値の関数を図示する。
[ここのくだり、ベイジアン的なアプローチによるメディア支出最適化って難しいなあ、と考え込んだ。
図6a2には全予算0.5の下でのメディア1の最適支出の事後分布が示されているが、3つの峰を持っている。まず横軸0.2のあたりに峰があり(実はこれが真の最適解に近い)、横軸0のあたりにもっと高い峰がある。つまり、パラメータ推定値によっては、メディア1は捨ててメディア2に全てを投じるのが最適解となるわけだ。
なお、図6b2で示された売上期待値の関数をみたとき、支出0のあたりで売上期待値の事後分布の裾が上に伸びているかというと、これがそうでもない。おそらく「メディア2に全振りしろ」というのは、パラメータ推定値として(売上予測という観点から見て)悲観的な値がサンプリングされたときの最適解なのだと思う。
著者ら曰く、ここでは最適化解の事後分布の分散が大きい、こういうときには最適化解を信じてはいけない、とのこと]
6. 推定の正確性に対する標本サイズのインパクト
[前節と同じ生成モデルから生成したデータでシミュレーション。2年間データと60年間データを繰り返し生成し、パラメータの事後分布中央値の分布、ならびにHills曲線の形状の分布を調べる。実務的には2年間の週次データがあればまあ御の字だと思うんだけど(仮にもっとデータがあっても市場の変化が怖い)、シミュレーションの結果によれば、もう笑っちゃうくらいのバイアスがある。モデルや推定の細部について真剣に考えるのが馬鹿馬鹿しくなるくらい。切ないのう、切ないのう]
7. 事前分布の選択
2年間データでシミュレーション。
$\beta$の事前分布について。half normal(0,1), normal(0,1), uniform(0,3)を比べる。uniformは他の2つの間で大きく異なりバイアスが大きい[そりゃそうだろうな。なお、生成モデルにおける$\beta_m$の真値は順に0.8, 0.6, 0.3]。
Hills曲線のパラメータ$K$の事前分布は...[話がややこしそうなので読み飛ばした]
8. 実データへの適用とモデル選択
あるシャンプーのデータ、週次、2.5年間。変数は、{TV、雑誌、平面、youtube、検索}広告支出、容量あたり平均価格、ACVで重みづけた{配荷、プロモーション}、売上数量の対数。adstockを遅延つきにするかただの幾何減衰にするか、形状を$\beta Hills$にするか$S=1$と制約するか、で計4つのモデルを推定。制御変数は相関が強すぎるので、いったん配荷とプロモーションをそれぞれ価格に回帰させ、残差を使った。Stanで推定、$\hat{R}$で収束判定。BICは幾何減衰・制約ありで最小になった。
ROAS, mROASをみると... [省略するけど、4つのモデルの間で事後分布がかなり違う。辛いのう辛いのう]
BIC最小のモデルでTV支出割合の最適解の事後分布を得ると、支出割合0のあたりと1のあたりの2峰になった。支出割合を変えながら売上期待値の事後分布をみると、とにかく事後分布の分散が大きくて、支出割合をどうしようがたいして変わらない。こういうときは推定結果をあまり信じてはいけない。[おいおい]
形状パラメータについてみると...[読み飛ばした]
残差の自己相関について。パラメータのドローごとに計算して平均する[まじ? 面倒くさいなあ]。自己相関があんまり消えていない。モデルの誤指定の可能性がある。[おいおいおい]
9. 結論
フレキシブルなMMMモデルを紹介したが、ふつうのサンプルサイズだとバイアスが大きいわけで、でかいデータを持ってくるか適切な情報事前分布を使う必要がある。後者についていうと、同一カテゴリの複数ブランドのデータをつかて階層ベイズモデルを組むとか、地域別のデータを持ってきて階層ベイズモデルを組むとか。
云々。
... なんでWhite Paperなんだろうか、論文にするにはちょっと足りないのかな、などと思いながら読んでいたんだが、途中で腑に落ちた。これ、新規性を訴求する研究というより、むしろベイジアンMMMの丁寧な技術解説といった趣の文書でありました。
HPS本の範囲外に出るようなアイデアはなかったけど、Stanコードもついていて、実務的な意味で勉強になりましたです。
いくつか疑問点をメモしておく。
- 著者らも言及しているけど、残差の自己相関について。売上時系列の背後には複雑なメカニズムがあるから、どんな説明変数を使ったところで、残差時系列の自己相関は消えないんじゃなかろうか。この論文では撹乱項がホワイトノイズだと仮定しているけど、むしろ、残差を観察したうえで撹乱項に自己相関をいれたほうがいいのではなかろうか...
- 著者らによれば、メディアミックス最適解の事後分布の分散が大きいときには要注意とのこと。御説ごもっとも。しかし、データが十分であれば最適化解の事後分布は必ず単峰になり分散は小さくなるといえるだろうか? 仮にどのメディアも全く同じ関数を持っていたら、パラメータ推定量の分散がいかに小さくても、メディア支出配分の最適化解の事後分布はフラットになるはずですわね。そのときには意思決定者に「どっちに金を掛けても同じでっせ」という示唆を伝えたい。最適化解の事後分布の分散が大きかったらその結果を疑うという態度だと、本来得られるべき示唆が得られなくなるのではなかろうか。うーむ。
- ついでにメモしておくけど、そもそもの問題として、「メディア支出の最適化解とは売上期待値を最大化する解だ」ってのは自明なのだろうか。たとえばブランドの存続を重んじて、「どんなに運が悪くてもそれなりの売上を立てるには」というような、マキシミン的な基準でみた解を最適とするってのもありなのではないか...
論文:データ解析(2018-) - 読了: Jin, Wang, Sun, Chan, Koehler (2017) これが俺らのマーケティング・ミックス・モデル (lyric by Google AI)