この記事はBrainpad Advent Calendar 2025の21日目になります。
株式会社ブレインパッドでデータサイエンティストをしています。
最近はマーケティング関係の分析をしていることが多いので、興味のあったモデルをマーケティングで使えないか試してみました。
1. はじめに
マーケティング関連の分析では、ターゲティングのための予測モデル作成や効果検証などがよく行われますが、これらのアプローチでは「なぜユーザーがその行動を取ったのか」というメカニズムまでは分かりません。
レコメンドシステムなど、自動的に改善されるシステムを導入できていない場合、アドホックの施策でしか示唆を得ることができず、ハイパーパーソナライゼーションのPDCA速度にも限界があります。また、最近では3rd Party Cookieが廃止されたことで、サイト間でのユーザー行動追跡が難しくなり、ターゲティングの精度も従来のようにはいかなくなったといえます。
一方で、もしそうしたユーザーの商品の購入モチベーションや購買の情報収集意欲などの関心などが、ECサイト内の行動やメール施策に対する反応などの観測可能な行動データから推定することができれば、上記のようなシチュエーションにおいてもマーケティング施策を高度化することができるかもしれません。
そこで本記事では、
- 行動から内部パラメータを推定することができる意思決定モデル
- 上記のモデルをマーケティング文脈への適用し、ユーザーの購買行動からユーザーのモチベーションなどをパラメータとして、推定するモデルを作成してみた場合のモデリング例
を紹介します。
本当はシミュレーションやトイデータを作成して精度の検証などを行いたかったのですが、時間が足りなかったので、続きは別記事にしたいと思います。
2. 能動的推論とFree-energy principle(FEP)
直接観測することのできないユーザーの内心などの隠れパラメータなんてものを、どうやって推定するのかと思うかもしれませんが、なんらかの過程を置かずにというのはさすがに無理です。(というかユーザー自身ですら自覚してないこともあるでしょう。)
なのでここでは「ユーザーは商品の購入モチベーションや購買の情報収集意欲、期待感"といった固有の隠れパラメータを持っていて、それに応じて施策に対するユーザーの反応や行動が変化する」というそれっぽい意思決定モデルを仮定し、ユーザー行動からユーザーの隠れパラメータを推定することにします。
神経科学などの一部の分野では、近年Free-energy principle(FEP)という意思決定理論(意思決定以外の文脈でも研究されています)が注目されています。詳しく解説すると長くなるため、今回は簡単な導入にとどめますが、同じ理論的な枠組みで、実験環境で行動から人の嗜好性などの内部パラメータを推定しようとした論文もあったので1、今回はこのモデルのマーケティング文脈でのモデリングを試みます。
2.1 Free-energy principleとは
Free Energy Principle; FEP(日本語では自由エネルギー原理)は、神経科学者のカール・フリストンが提唱している理論で、ざっくりいうと「生物(およびその脳)は自身への入力を常に予測していて,実際の入力との誤差を最小化するように知覚体験を生むとともに、学習を進め、行動しており、それは自由エネルギーを最小化するという一つのプロセスによって行われる」という理論(原理)です。詳細は「強化学習のための『自由エネルギー原理』概論」2や、「自由エネルギー原理入門 改め 自由エネルギー原理の基礎徹底解説」3がわかりやすかったので、ぜひご参照ください。
FEPによれば、生物は自身の内部状態(信念)と外界の状態との間のズレ(=驚き)を、2つの方法で最小化しようとします。
- 知覚的推論: 観測データに合うように内部モデル(信念)を更新する
- 能動的推論: 自分の予測に合うように外界に働きかける(行動する)
各ステップについて以下で解説します。
※似た考え方として「ベイズ脳仮説」があり、違いがよくわかっていなかったのですが、おそらくベイズ脳仮説だけの場合は知覚的推論が中心なのに対し、FEPはそれに能動的推論も加えた(自分で身体を動かして情報を取りに行く+報酬最大化or損失最小化しようと行動する)感じなのかなと解釈しています。
2.2 知覚的推論
- $o$ : 観測(外界から受け取る感覚情報)
- $s$ : 隠れ状態(外界の真の状態、直接観測できない)
- $a$ : 行動(エージェントが取る行動)
- $p(\cdot)$ : 生成モデル(外界がどう動くかの内部モデル)
- $q(\cdot)$ : 近似事後分布(推測・信念)
とします。ユーザーは、外界の真の状態$s$を直接知ることはできず、観測$o$のみを受け取ります。そこで、「外界がどのように観測を生成するか」という生成モデル$p(o, s)$を脳内に持ち、「外界がこうなっているはずだ」という信念$q(s)$を形成して隠れ状態を推測します。信念$q(s)$と真の事後分布$p(s \mid o)$の差をKL距離で表したとき、変分自由エネルギー$F$は、
F = \mathbb{E}_{q(s)}\left[\ln q(s) - \ln p(o, s)\right] = D_{KL}\left[q(s) \| p(s \mid o)\right] - \ln p(o)
と書くことができます。このとき第1項 $D_{KL}$は、推測$q(s)$と真の事後分布$p(s \mid o)$のズレ、第2項 $-\ln p(o)$は観測にたいする驚きと解釈できます。
そして、$F$を$q$について最小化すると、推測$q(s)$が観測に整合する方向へ更新されることになります。そのため、変分自由エネルギー$F$を最小化することは、「観測を説明する推測を選ぶ」ことになるので、これが知覚的推論(外界を理解するプロセス)に対応します。
また、$p(o,s) = p(o \mid s)p(s)$と分解すると、
F = D_{KL}\left[q(s) \| p(s)\right] - \mathbb{E}_{q(s)}[\ln p(o \mid s)]
と書くことができるのですが、第1項は事前分布からのズレ(複雑さ)、第2項は観測の説明度合い(精度)とみなすことができるので、Fを最小化することは「複雑さを抑えつつ観測をよく説明する」ことに対応します。
2.3 能動的推論
本稿の関心は行動選択なので、ここからは能動的推論(EFE)に絞ります。$F$は「現在の観測を説明する推測」を選ぶ目的関数でしたが、行動を選ぶには「その行動を取ったときに得られる未来の観測」を評価する必要があります。そこで、行動$a$の下での予測分布$q(o,s\mid a)$を用いて、未来に対する期待値として期待自由エネルギー$G$を導入します。
G(a) = \mathbb{E}_{q(o, s \mid a)}\left[\ln q(s \mid o, a) - \ln p_a(o, s)\right]
式変形は省略しますがこの、$G(a)$ は
G(a)
=
\underbrace{-\mathbb{E}_{q(o\mid a)}\left[\ln p(o)\right]}_{\text{Extrinsic Value(外在価値)}}
\;-\;
\underbrace{\mathbb{E}_{q(o\mid a)}\left[
D_{KL}\left(q(s\mid o,a)\|q(s\mid a)\right)
\right]}_{\text{Epistemic Value(情報獲得)}}
と変形することができます。
$o$は観測を意味する変数ですが、これを望ましい外界の観測、すなわち効用や報酬の観測として定義することで、第1項の$-\ln p(o)$ は「望ましくない観測ほど大きいコスト」と考えることができます。つまり、この項の最小化は強化学習における報酬最大化のような働きをするので、将来的な価値も含めた価値を指すExtrinsic Valueと呼ばれます。日本語訳はいろいろあります。
次に第2項ですが、
\mathbb{E}_{q(o\mid a)}\left[D_{KL}\left(q(s\mid o,a)\|q(s\mid a)\right)\right]
は「観測 $o$ を得たあと信念がどれだけ更新されるか」の期待値になるので、情報獲得の利得ととらえることができます。つまり、これが大きい行動ほど、観測を通じて隠れ状態について多く学べるため、結果として探索行動(情報を取りにいく行動)を促進することになるので、マイナスをかけてEpistemic Valueと呼ばれます。
どっちも頭文字がEでわかりづらいですね。
期待自由エネルギーG(a)の最小化することで、上記のExtrinsic ValueとEpistemic Valueの和を最小化することになるので、エージェントは目の前の状況から、最も将来の報酬が最大になるような行動と、そのための情報を最も効率的に獲得することができる行動を合理的に選択することができます。
3. FEPベースのマーケティングモデル
ようやく本題です。ここでは、FEPの枠組みをつかって、以下のようなECサイトのメール施策に反応するユーザーの行動モデルを作っていきます。(ちゃんと理解できてる自信はないので、おかしな部分があれば指摘いただけると嬉しいです)
3.1 モデル化したいユーザーの購買行動
- ユーザーには商品への関心・モチベーションと価格感度があるとする
- 商品に関係するメールが届く(ポップアップ広告などでも可)
- 件名を見て興味があれば開封する
- 開封により商品スペックと価格の粗い情報を得る
- クリックにより詳細なスペックや価格情報を得る
- コスパが良い(効用−コストがプラス)と判断すれば購入する
3.2 変数と記号
| 区分 | 記号 | 説明 |
|---|---|---|
| 隠れ状態 | $s_t=(z_t, p_t)$ | 商品スペック $z_t$ と価格 $p_t$ から構成される隠れ状態 |
| 行動 | $a_t \in {\text{ignore}, \text{open}, \text{click}, \text{buy}}$ | 各時刻で1つを選ぶ行動 |
| 観測 | $o_t=(\hat z_t, \hat p_t)$ | 真の状態にノイズが乗った観測 |
| 内部パラメータ | $w_m$ | モチベーション(価値の感じやすさ) |
| 内部パラメータ | $w_c$ | コスト感度(価格の重み) |
| 逆温度 | $\beta$ | 望ましさのスケール |
| 逆温度 | $\gamma$ | 行動選択の鋭さ |
$t$ はメール施策に対する行動イベントのインデックスです。短期では同一商品を扱う想定なので $z_t, p_t$ はほぼ一定ですが、FEPの表記に合わせて $t$ を残しています。
以下では、それぞれのパラメータについてみていきます。
隠れ状態と観測モデル
ユーザーは $z_t, p_t$ を直接知ることができず、メール件名やLPの情報といった限定的な手がかりから「観測」するだけ、とみなします。観測の精度は行動に依存し、開封やクリックを進めるほど詳しい情報が得られる、という設定を以下の数式で表してみます。
\hat z_t = z_t + \varepsilon_z(a_t), \quad \hat p_t = p_t + \varepsilon_p(a_t)
p(o_t \mid s_t, a_t)
=
\mathcal{N}(\hat z_t; z_t, \sigma_z(a_t)^2)\,
\mathcal{N}(\hat p_t; p_t, \sigma_p(a_t)^2)
ここでは観測には真の値にノイズが乗る設定にしてみました。「行動によってノイズの大きさが変わる」みたいなイメージです。行動ごとの観測精度は次のように単純化します。
-
open: $\sigma_p$ 中 / $\sigma_z$ 大(粗い効用推定・比較的精密なコスト推定) -
click: $\sigma_p$ 小 / $\sigma_z$ 中(精度アップ) -
buy: $\sigma_p, \sigma_z \approx 0$(ほぼ確定) -
ignore: 観測なし($\sigma \to \infty$ とみなす)
この設定により、行動は「報酬を得る」だけでなく「情報量を増やす」効果も持つことになります。
信念更新
ユーザーは商品の品質や価格についての事前信念 $q(z_t, p_t)$ を持ち、観測 $o_t$ を得るたびにベイズ更新します。FEPでは $q$ を近似事後として扱い、行動ごとに変わる観測モデル $p(o_t \mid s_t, a_t)$ を使って信念を更新します。
$$
q(z_t, p_t \mid o_t, a_t) \propto q(z_t, p_t), p(o_t \mid s_t, a_t)
$$
つまり、open や click を進めるほど観測精度が上がり、信念の不確実性が減っていく構図になります。この更新があるため、情報獲得を行動選択に組み込めます。
内部パラメータと望ましさ
モチベーションや価格感度は行動の原因ですが、外界の状態ではありません。これらを隠れ状態に入れると、「外界にある自分のモチベーションを観測で当てにいく」と、行動目的がよくんからないことになってしまうため、内部パラメータは価値の作り方自体を決めるパラメータとして扱います。
ここでは、商品から得られる効用を $u$、財布へのダメージ(コスト)を $c$ とし、主観的な満足度(コスパ?)を $r$ と定義します。
$$
u = f(w_m, z), \quad c = g(w_c, p), \quad r(z,p) = u - c
$$
$w_m$ は「商品のスペックの良さをどれだけ価値として感じるか」、$w_c$ は「価格をどれだけ重く見るか(お財布事情)」に対応します。この記事では一旦 $u = w_m z$, $c = w_c p$ としておきます。
一方で、ユーザーは商品の真の品質を知ることはできず、直接見られるのは観測 $o=(\hat z, \hat p)$ だけなので、実際に行動を決めるときは観測に基づく推定満足度を使います。
$$
\hat r = f(w_m, \hat z) - g(w_c, \hat p)
$$
ここで $r$ を持ち出す理由についてもう少し補足しておくと、FEPでは「将来の観測 $o$ そのものに対する好み」を $p(o)$ として表現するためです。購買行動においては「商品情報を知ること」事態よりも「その商品が価格に見合っているのか」のほうが購入の動機としては自然だと思うので、観測 $o$ を満足度へ変換した $\hat r$ を使って、望ましい観測ほど確率が高いとみなすようにしました。
$$
p(o) \propto \exp(\beta , \hat r)
$$
$\beta$ は「好みの鋭さ」を表すスケールで、$\beta$ が大きいほど高い満足度を示す観測を強く好む設定になります。こうしておくと、FEPの「好みは $p(o)$ で表す」という形式に、モチベーションや価格感度を自然に接続できます。
行動選択
行動 $a$ を選ぶとき、ユーザーは「その行動を取った場合にどんな観測が得られるか」を予測し、その期待コストを $G(a)$ で評価します。$G(a)$ は、望ましい観測を得られるか(外在価値)と、不確実性をどれだけ減らせるか(情報獲得)を同時に含む指標です。
$$
G(a) = \mathbb{E}_{q(o, s \mid a)}\left[\ln q(s \mid o, a) - \ln p_a(o, s)\right]
$$
$$
\pi(a) \propto \exp(-\gamma \cdot G(a))
$$
$\gamma$ は行動選択の鋭さを表すパラメータで、値が大きいほど $G(a)$ の小さい行動を強く選びます。直感的には、open や click は情報獲得を高める行動、buy は外在価値を確定させる行動と解釈できます。満足度が十分に高く、かつ不確実性が小さい状況では click を飛ばして buy が選ばれることも自然に表現できます。
今後
ではここからは、ここまでで作ったモデルを実装して…と行きたかったのですが、モデリングまで終わってしまいました。
次回以降、
- このモデルに従って動くエージェントは尤もらしい購買行動を実際に取るのか
- トイデータからパラメータ回収が可能なのか・推定可能なパラメータの特性はあるのか
- パラメータ回収が可能だった場合、予測モデルとしてどの程度機能するのか
- 商品種類が複数同時に存在した場合どのようにモデルを拡大していくべきか
などについて検証していきたいと思います。