マーケティングにおける顧客セグメンテーション:ベイズ統計の応用

はじめに

マーケティング戦略を考える上で、顧客セグメンテーション(顧客の分類・グループ化)は非常に重要な役割を果たしています。例えば、ECサイトの利用者を「頻繁に購入する常連客」「たまに大きな買い物をする顧客」「ブラウジングだけの顧客」などに分類することで、それぞれに適したアプローチを考えることができます。
このような顧客セグメンテーションに、近年ではベイズ統計の考え方が活用されています。本記事では、特に階層ベイズモデル、潜在クラス分析、隠れマルコフモデルといった手法に焦点を当て、それらの理論的背景と実務での応用について解説していきます。

1. 階層ベイズモデルによるセグメント推定

1.1 階層ベイズモデルの基本的な考え方

階層ベイズモデル(Hierarchical Bayes Model, HB)は、「個人の特性」と「集団としての特性」の両方を同時に考慮できる手法です。例えば、ある商品の価格に対する感度を考えてみましょう。人によって価格への反応は異なりますが、かといって完全にバラバラというわけでもなく、ある程度の傾向は共有しているはずです。このような「個人差はあるが、全体としての傾向もある」という状況を、以下の数式で表現します:

p(\boldsymbol{\beta}_m|\boldsymbol{\mu}, \Sigma) = \mathcal{N}(\boldsymbol{\mu}, \Sigma)
この式は、個人mの特性\boldsymbol{\beta}_mが、全体の平均\boldsymbol{\mu}を中心に、ばらつき\Sigmaを持って分布していることを表しています。まるで「クラスの平均点とその周りのばらつき」のようなイメージです。

この考え方をより詳しく表現すると、以下のような3段階の構造になります:

\begin{align*}
\text{第1階層(観測): } & y_{mi} \sim p(y|\boldsymbol{\beta}_m) \\
\text{第2階層(個人): } & \boldsymbol{\beta}_m \sim \mathcal{N}(\boldsymbol{\mu}, \Sigma) \\
\text{第3階層(集団): } & \boldsymbol{\mu} \sim p(\boldsymbol{\mu}), \Sigma \sim p(\Sigma)
\end{align*}

これは、例えば以下のような状況を表現しています。ある商品の購入履歴データを分析する場合を考えてみましょう。
第1階層は「実際の購入データ」を表します。個人mの i番目の購入機会での行動を記録します。
第2階層は「その人の購買傾向」を表します。価格への感度や、ブランドへのこだわりなど、その人特有の性質です。
第3階層は「顧客全体としての傾向」を表します。例えば「この商品カテゴリーでは一般的に価格重視の傾向がある」といった、集団としての特徴です。

1.2 コンジョイント分析への応用

階層ベイズモデルの代表的な応用例として、コンジョイント分析があります。コンジョイント分析とは、商品の様々な特徴(価格、機能、デザインなど)に対する消費者の好みを分析する手法です。例えば、スマートフォンを購入する際、価格、画面サイズ、バッテリー容量などの特徴について、消費者がどのように判断しているかを分析します。
このような選択行動は、以下の数式で表現されます:

U_{mij} = \boldsymbol{\beta}_m^\top \mathbf{x}_{ij} + \epsilon_{mij}
この式は、人mが選択肢iから得る効用(満足度)U_{mij}を表しています。\mathbf{x}_{ij}は商品の特徴を表すベクトル(例:価格が5万円、画面サイズが6.1インチなど)、\boldsymbol{\beta}_mはその人の各特徴に対する重視度、\epsilon_{mij}は予測できないランダムな要素を表します。

実際の選択確率は、以下のように計算されます:

P_{mij} = \frac{\exp(\boldsymbol{\beta}_m^\top \mathbf{x}_{ij})}{\sum_{k \in C_j} \exp(\boldsymbol{\beta}_m^\top \mathbf{x}_{kj})}
この式は、人mが選択肢iを選ぶ確率P_{mij}を表しています。分母は、選択可能な全ての選択肢C_jについての合計です。効用が高い選択肢ほど、選ばれる確率が高くなります。

この式は、例えば次のような状況を表現します:スマートフォンAとBがあり、Aは高機能だが高価格(効用7)、Bは普通の機能で手頃な価格(効用5)の場合、選択確率は以下のようになります:
Aを選ぶ確率 = exp(7)/(exp(7) + exp(5)) ≈ 0.73
Bを選ぶ確率 = exp(5)/(exp(7) + exp(5)) ≈ 0.27
つまり、この例では約73%の確率でAが選ばれると予測されます。

1.3 階層ベイズモデルの推定方法

これらのモデルを実際のデータから推定する際には、以下のような計算を行います:

p(\boldsymbol{\beta}_m, \boldsymbol{\mu}, \Sigma|\mathbf{y}) \propto p(\mathbf{y}|\boldsymbol{\beta}_m)p(\boldsymbol{\beta}_m|\boldsymbol{\mu}, \Sigma)p(\boldsymbol{\mu})p(\Sigma)
この式は、データ\mathbf{y}から個人の特性\boldsymbol{\beta}_mと全体の特性(\boldsymbol{\mu}\Sigma)を推定する方法を表しています。これはベイズの定理を応用したもので、「観測されたデータの尤もらしさ」と「パラメータの事前の知識」を組み合わせて推定を行います。

具体的な推定の手順は、以下の式で表される繰り返し計算によって行われます:

\begin{align*}
\boldsymbol{\beta}_m^{(t+1)} &\sim p(\boldsymbol{\beta}_m|\mathbf{y}, \boldsymbol{\mu}^{(t)}, \Sigma^{(t)}) \\
\boldsymbol{\mu}^{(t+1)} &\sim p(\boldsymbol{\mu}|\{\boldsymbol{\beta}_m^{(t+1)}\}, \Sigma^{(t)}) \\
\Sigma^{(t+1)} &\sim p(\Sigma|\{\boldsymbol{\beta}_m^{(t+1)}\}, \boldsymbol{\mu}^{(t+1)})
\end{align*}

この式は、具体的には以下のような作業を繰り返し行うことを表しています。まず個人ごとの特性を推定し、次にその結果を使って全体の平均を更新し、最後に全体のばらつきを更新します。料理に例えると、各家庭の味付けの好みを知り、それを集めて「この地域の平均的な味付け」を把握し、さらに「どのくらい家庭によって味付けが異なるか」を理解するようなものです。

1.4 モデルの実用的な特徴

階層ベイズモデルの大きな特徴は、データの少ない個人に対しても安定した推定が可能な点です。これは以下の式で表現されます:

\hat{\boldsymbol{\beta}}_m = w_m\boldsymbol{\beta}_m^{\text{ind}} + (1-w_m)\boldsymbol{\mu}
この式は、個人mの最終的な推定値\hat{\boldsymbol{\beta}}_mが、その人固有の推定値\boldsymbol{\beta}_m^{\text{ind}}と全体の平均\boldsymbol{\mu}の加重平均として計算されることを示しています。重みw_mは、その人のデータ量に応じて自動的に調整されます。

重みの計算は以下の式で行われます:

w_m = \frac{n_m\tau^2}{n_m\tau^2 + \sigma^2}
この式は、例えば以下のような状況を表現しています。新規顧客(データが少ない:n_mが小さい)の場合、w_mは小さくなり、推定値は全体平均に近づきます。一方、購入履歴の多い常連客(n_mが大きい)の場合、w_mは大きくなり、その人固有の特徴がより強く反映されます。これは、新規顧客には一般的なレコメンドを行い、常連客には個人の好みに応じたレコメンドを行うという、実務でよく見られる戦略と整合的です。

2. 隠れマルコフモデル(HMM)による動的セグメンテーション

2.1 なぜ動的セグメンテーションが必要か

顧客の行動パターンや嗜好は、時間とともに変化することがあります。例えば、ECサイトの利用者は「ブラウジングのみ」の状態から「積極的な購買」の状態に移行したり、逆に「休眠」状態に入ったりします。このような変化を捉えるために、隠れマルコフモデル(HMM)が用いられます。

2.2 基本的なHMMの仕組み

HMMでは、各時点での顧客の状態(セグメント)は直接観察できませんが、その状態に応じた行動(購買金額、訪問頻度など)が観察できると考えます。この関係は以下の式で表現されます:

p(s_t|s_{t-1}) = A_{s_{t-1},s_t}
この式は、時点t-1での状態s_{t-1}から時点tでの状態s_tへの遷移確率を表します。例えば、「ブラウジング」状態から「購買」状態への移行確率などを表現します。

観察される行動は、以下の式でモデル化されます:

p(y_t|s_t) = f(y_t|\theta_{s_t})
この式は、状態s_tに応じて観察される行動y_tがどのような確率分布に従うかを示しています。例えば、「積極的購買」状態では購入金額が高めの分布に従い、「休眠」状態では購入がほとんどない分布に従う、といった具合です。

2.3 外部要因を考慮したHMM

実際のマーケティングでは、キャンペーンやセールなどの外部要因が顧客の状態遷移に影響を与えることがあります。このような状況を表現するため、以下のような拡張モデルが使われます:

p(s_t|s_{t-1}, \mathbf{x}_t) = \frac{\exp(\alpha_{s_{t-1},s_t} + \boldsymbol{\beta}_{s_{t-1},s_t}^\top \mathbf{x}_t)}{\sum_{k}\exp(\alpha_{s_{t-1},k} + \boldsymbol{\beta}_{s_{t-1},k}^\top \mathbf{x}_t)}
この式は、外部要因\mathbf{x}_t(例:キャンペーン実施の有無、値引き率など)が状態遷移に与える影響を表現しています。\alpha_{s_{t-1},s_t}は基本的な遷移のしやすさ、\boldsymbol{\beta}_{s_{t-1},s_t}は外部要因の効果の強さを表します。

例えば、「ブラウジング」状態の顧客に大幅な値引きキャンペーンを実施すると「購買」状態への遷移確率が上がる、といった状況を表現できます。

2.4 状態継続時間を考慮したモデル(HSMM)

通常のHMMでは、各状態にどれくらいの期間とどまるかについて、暗黙的に「指数分布的に減衰する」と仮定しています。しかし実際の顧客行動では、例えば「新規顧客は最初の1ヶ月は頻繁に購入する傾向がある」といったように、より複雑な滞在時間パターンが観察されます。 このような状況に対応するため、Hidden Semi-Markov Model (HSMM)という拡張モデルが提案されています。HSMMでは、状態の継続時間を以下の式で明示的にモデル化します:

p(d|s) = g(d|\lambda_s)
この式は、状態sにおける継続時間dの確率分布を表します。gは分布の形(例:ポアソン分布)を、\lambda_sはその状態特有のパラメータを表します。例えば「積極購買」状態では平均して2ヶ月程度継続する、といった特徴を表現できます。

HSMMの尤度(データの説明力)は以下の式で計算されます:

\begin{align*}
p(\mathbf{y}_{1:T}) = \sum_{s_{1:K}} \sum_{d_{1:K}} & p(s_1)g(d_1|s_1)\prod_{t=1}^{d_1} f(y_t|\theta_{s_1}) \\
& \times \prod_{k=2}^K p(s_k|s_{k-1})g(d_k|s_k)\prod_{t=\sum_{j=1}^{k-1}d_j+1}^{\sum_{j=1}^k d_j} f(y_t|\theta_{s_k})
\end{align*}
この複雑な式は、「どの状態に」「どれくらいの期間」いて、「その間にどのような行動を取ったか」という一連の流れの確率を計算しています。例えば、「2ヶ月間の積極購買→3ヶ月間のブラウジング→1ヶ月間の休眠」といったパターンの確率を計算できます。

2.5 実務での活用例

ECサイトでの顧客行動分析を例に取ると、ある顧客が「購買」状態に移行する確率は以下のように計算されます:

p(s_t = \text{購買}|s_{t-1} = \text{閲覧}, \mathbf{x}_t) = \frac{\exp(\alpha + \beta_1x_{1t} + \beta_2x_{2t})}{1 + \exp(\alpha + \beta_1x_{1t} + \beta_2x_{2t})}
この式は、商品閲覧回数x_{1t}やカート追加回数x_{2t}といった行動指標に基づいて、閲覧のみの状態から購買状態への遷移確率を計算します。\alphaは基本的な購買傾向、\beta_1\beta_2は各行動の影響度を表します。

このモデルを使うことで、例えば「最近閲覧回数が増えている顧客は購買状態に移行する確率が高い」といった知見を得ることができ、そのような顧客に対して適切なタイミングでプロモーションを実施するといった施策が可能になります。

3. 潜在クラス分析とベイズクラスタリング

3.1 潜在クラス分析の基本的な考え方

潜在クラス分析は、観察された行動パターンから顧客の「隠れた」グループ(クラス)を発見する手法です。例えば、ECサイトでの「閲覧パターン」「購買カテゴリー」「支払い方法」などの組み合わせから、似た特徴を持つ顧客グループを見つけ出します。
この手法は、以下の確率モデルで表現されます:

p(\mathbf{y}_i) = \sum_{k=1}^K \pi_k f(\mathbf{y}_i|\theta_k)
この式は、顧客iの行動データ\mathbf{y}_iが、K個のクラスのいずれかから生成されることを表しています。\pi_kはクラスkの出現確率、f(\mathbf{y}_i|\theta_k)はクラスkに属する顧客の典型的な行動パターンを表します。

例えば、あるECサイトで3つのクラスが発見されたとします:

  1. トレンド追求型(\pi_1 = 0.3):新商品をよく閲覧・購入
  2. 価格重視型(\pi_2 = 0.5):セール時に集中的に購入
  3. こだわり型(\pi_3 = 0.2):特定カテゴリーで高額購入

3.2 ベイズ的アプローチの利点

従来の潜在クラス分析をベイズ的に拡張すると、以下のような階層的な構造を持つモデルとなります:

\begin{align*}
p(\mathbf{y}_i|z_i) &= f(\mathbf{y}_i|\theta_{z_i}) \\
p(z_i|\boldsymbol{\pi}) &= \text{Categorical}(\boldsymbol{\pi}) \\
p(\boldsymbol{\pi}) &= \text{Dirichlet}(\boldsymbol{\alpha}) \\
p(\theta_k) &= p_0(\theta_k)
\end{align*}
この式群は、データの生成過程を表現しています。z_iは顧客iのクラス所属、\boldsymbol{\pi}はクラスの出現確率、\theta_kはクラスkのパラメータを表します。p_0(\theta_k)は事前分布で、分析者の事前知識を組み込むことができます。

このアプローチの大きな利点は、「クラス所属の不確実性」を自然に扱えることです。例えば、ある顧客について「60%の確率で価格重視型、40%の確率でこだわり型」といった柔軟な解釈が可能になります。

3.3 クラス数の決定方法

実務上の重要な課題の一つは、適切なクラス数Kの決定です。ベイズ的なアプローチでは、以下の周辺尤度を計算することでモデル比較が可能です:

p(\mathbf{Y}|K) = \int \int p(\mathbf{Y}|Z,\Theta)p(Z|\boldsymbol{\pi})p(\boldsymbol{\pi})p(\Theta)d\boldsymbol{\pi}d\Theta
この式は、データ全体\mathbf{Y}がクラス数Kのモデルによってどれだけよく説明されるかを表します。Zはすべての顧客のクラス所属、\Thetaはすべてのクラスのパラメータを表します。

実務的には、この値の代わりに以下のような情報量規準を使うことも多いです:

\text{DIC} = -2\log p(\mathbf{Y}|\hat{\Theta}) + 2p_D
ここで\hat{\Theta}はパラメータの推定値、p_Dは実効的なパラメータ数を表します。この値が小さいモデルほど、データをうまく説明していると判断できます。例えば、クラス数を2から8まで変えてDICを計算し、最も小さい値となるクラス数を選択します。

3.4 行動パターンの時系列性を考慮したクラスタリング

顧客の行動パターンには時系列的な特徴が含まれることが多いため、以下のような時系列モデルを組み込むことも可能です:

p(\mathbf{y}_{i,1:T}|z_i) = \prod_{t=1}^T f(\mathbf{y}_{i,t}|\mathbf{y}_{i,1:t-1}, \theta_{z_i})
この式は、顧客iの時点tでの行動\mathbf{y}_{i,t}が、それまでの行動履歴\mathbf{y}_{i,1:t-1}に依存することを表現しています。例えば、「最近3回の購入で健康食品を選んでいる顧客は、次回も同じカテゴリーを選びやすい」といった傾向を捉えることができます。

3.5 実務での活用例

実際のECサイトでの活用例を考えてみましょう。ある顧客が特定のクラスkに属する事後確率は以下のように計算されます:

p(z_i = k|\mathbf{y}_i) = \frac{\pi_k f(\mathbf{y}_i|\theta_k)}{\sum_{j=1}^K \pi_j f(\mathbf{y}_i|\theta_j)}
この式は、顧客iの観察された行動\mathbf{y}_iに基づいて、その顧客が各クラスに属する確率を計算します。例えば、ある顧客について「70%の確率でトレンド追求型、20%の確率で価格重視型、10%の確率でこだわり型」といった具合に、確率的な分類が可能になります。

このような確率的な分類は、マーケティング施策の決定に重要な示唆を与えます。例えば、「トレンド追求型の確率が高い顧客には新商品情報を、価格重視型の確率が高い顧客にはセール情報を」といったターゲティングが可能になります。

4. 実務応用における注意点と実装方法

4.1 データの前処理と特徴量設計

ベイズ的なセグメンテーションを行う際、入力データの質が結果を大きく左右します。これは以下の確率モデルで表現されます:

p(\text{適切なセグメンテーション}|\text{データ}) \propto p(\text{データ}|\text{セグメンテーション})p(\text{セグメンテーション})
この式は、良いセグメンテーション結果を得るためには、適切な事前知識p(\text{セグメンテーション})に加えて、質の高いデータp(\text{データ}|\text{セグメンテーション})が必要であることを示しています。

例えば、購買データを扱う場合、以下のような特徴量を設計することが重要です:

\mathbf{x}_i = \begin{bmatrix} 
\text{購買頻度} \\
\text{平均購買金額} \\
\text{カテゴリー分散度} \\
\text{最終購買からの経過日数}
\end{bmatrix} = \begin{bmatrix}
\frac{N_i}{T_i} \\
\frac{\sum_{j=1}^{N_i} v_{ij}}{N_i} \\
-\sum_{c=1}^C p_{ic}\log p_{ic} \\
t_{\text{now}} - t_{\text{last},i}
\end{bmatrix}
この式は、顧客iの特徴ベクトル\mathbf{x}_iの構成要素を表しています。N_iは購買回数、T_iは観測期間、v_{ij}j回目の購買金額、p_{ic}はカテゴリーcの購買比率、t_{\text{last},i}は最終購買日を表します。

4.2 モデルの評価と検証

セグメンテーションモデルの評価には、以下のような予測性能の指標を用います:

\text{予測精度} = \frac{1}{N}\sum_{i=1}^N \sum_{k=1}^K p(z_i = k|\mathbf{x}_i)p(\mathbf{y}_i^{\text{future}}|\theta_k)
この式は、各顧客iについて、推定されたセグメント所属確率p(z_i = k|\mathbf{x}_i)と、そのセグメントにおける将来の行動予測p(\mathbf{y}_i^{\text{future}}|\theta_k)の積の平均を計算します。これにより、セグメンテーションが将来の顧客行動をどの程度正確に予測できるかを評価できます。

4.3 実装上の工夫とパフォーマンス最適化

大規模なデータセットを扱う場合、計算効率が重要な課題となります。特に、以下のような近似計算を活用することで、処理速度を改善できます:

p(z_i|\mathbf{y}_i) \approx q_{\phi}(z_i|\mathbf{y}_i) = \text{Categorical}(\boldsymbol{\phi}_i)
この式は、変分推論による近似を表しています。厳密な事後分布p(z_i|\mathbf{y}_i)の代わりに、計算が容易な近似分布q_{\phi}(z_i|\mathbf{y}_i)を使用します。\boldsymbol{\phi}_iは個別に最適化されるパラメータです。

この近似を用いた目的関数は以下のようになります:

\mathcal{L} = \sum_{i=1}^N \mathbb{E}_{q_{\phi}(z_i)}[\log p(\mathbf{y}_i|z_i) - \text{KL}(q_{\phi}(z_i)||p(z_i))]
この式は、データの尤度と近似の質のバランスを取ります。第一項\mathbb{E}_{q_{\phi}(z_i)}[\log p(\mathbf{y}_i|z_i)]はデータへの当てはまりの良さ、第二項\text{KL}(q_{\phi}(z_i)||p(z_i))は近似の精度を表します。

4.4 実務での活用戦略

セグメンテーション結果を実務で活用する際、各セグメントの特徴を定量的に把握することが重要です。セグメント間の差異は以下の式で評価できます:

\text{Effect Size}_{jk} = \frac{|\mu_j - \mu_k|}{\sqrt{(\sigma_j^2 + \sigma_k^2)/2}}
この式は、セグメントjkの平均値\muの差を、両者の標準偏差\sigmaの平均で割ることで、差異の大きさを標準化して評価します。例えば、平均購買金額や購買頻度について、セグメント間でどの程度の差があるかを定量的に把握できます。

実際のマーケティング施策は、この差異の大きさに基づいて優先順位をつけることができます:

\text{ROI}_{ij} = \frac{p(z_i = j|\mathbf{y}_i) \cdot \text{Expected Return}_j}{\text{Marketing Cost}_j}
この式は、顧客iに対してセグメントj向けの施策を実施した場合の期待ROIを計算します。p(z_i = j|\mathbf{y}_i)はその顧客がセグメントjに属する確率、\text{Expected Return}_jはセグメントjでの期待収益、\text{Marketing Cost}_jは施策コストを表します。

これにより、例えば「価格重視型セグメントには費用対効果の高いクーポン施策を、こだわり型セグメントには利益率の高い商品のレコメンドを」といった、セグメントごとに最適化された施策を展開することができます。

最後に

今回は網羅的に扱ったので、実際に実務で活用するときに、どのようにやるのかというのをそこまで示せてませんが、このような方法もあるんですよ?という新たな知見の獲得にはつながるのではないかと思い、本記事を書きました。twitterでツイートしましたが、米国ではマーケティングにおいて85%の分析者がベイズ的なアプローチを分析方法として採用しているというのを、どこかで見たことがあります。いつもの流れにのっとれば、米国で流行ってその流れが日本にやってくるのような風潮があると思うので、ベイズ的なアプローチが日本でも主流になってくるのではないかと思います。その際の手法の選択肢の幅が広がればと思います。最後までお読みいただきありがとうございました。