INTAGE TECH
📊

MMM入門:基本概念と主要OSS比較

に公開

はじめに

はじめまして。株式会社インテージの児玉です。
普段は、お客様のデータ解析支援や社内におけるクラウド活用推進に従事しております。

本記事では、昨今注目を集めているMMM(マーケティングミックスモデリング)の概要と主要なOSSを紹介します。
まずMMMの基本的な考え方を解説した上で、代表的なOSSである

  • Google Meridian[1]
  • Meta Robyn[2]
  • PyMC Labs PyMC-Marketing[3]

の3点を、「技術的特徴」と「実務上の勘所」の両面から比較・整理します。

私自身が実業務で扱っていない項目も含めて、フラットな目線で各種OSSを調査・比較しました。
各ツールの実装アプローチや得意領域を紐解くことで、「自社のビジネス課題や技術環境にはどれが最適か」を判断するための指針を整理します。

MMM(マーケティングミックスモデリング) とは

基本概念

MMMは、マーケティング施策の売上への貢献・費用対効果(ROI)を測定し、「どの施策への投資を強化すべきか」「どの施策への投資を見直し、減少・停止を検討すべきか」を明らかにするソリューションです。

近年、デジタル広告への投資が拡大する一方で、Cookie規制やプライバシー保護の強化に伴い、従来の個人を追跡する手法による効果測定は困難になりつつあります。
そうした背景もあり、MMMのように個人データを直接扱わずに施策の効果を評価できる手法が大きな注目を集めています。

かつては専門家依存の「ブラックボックス化」した手法でしたが、昨今、大手企業が自社の知見を凝縮したMMMフレームワークをOSSとして公開し始めたことで、その状況は一変しています。

データの収集整備やモデリング技術などのハードルは依然として残りますが、OSSの普及によりモデルの透明性や再現性が向上し、企業が導入・活用しやすい環境が整いつつあります。

MMM概要図
https://www.intage.co.jp/service/services/data-analysis-and-forecasting/mmm/

モデルの基本構造

現代のMMMは、売上などの目的変数を「ベースライン」「広告効果」「外部要因」の3つに分解して考える、以下のような加法的な回帰モデル構造として定式化されることが一般的です。

y_t = \tau_t + \sum \beta_m x'_{t,m} + \sum \gamma_c z_{t,c} + \varepsilon_t
  • t = 1, \dots, T :時刻(週次や日次など)
  • m = 1, \dots, M :広告メディアのインデックス(TVCM、SNS、検索広告など)
  • c = 1, \dots, C :外部要因のインデックス(気温、祝日、競合の動きなど)
変数 内容 説明
y_t 目的変数 売上、CV数、アプリDL数などの成果指標
\tau_t ベースライン トレンド、季節性、切片項。広告以外の要因による基礎売上
x'_{t,m} 変換済み広告変数 下記の変換処理を適用した広告量データ(インプレッション等)
\beta_m 広告効果係数 各メディア m が成果に与える影響の強さ
z_{t,c} 外部要因 制御変数。気温、競合活動、価格変更など
\gamma_c 外部要因係数 外部要因 c が成果に与える影響の強さ
\varepsilon_t 誤差項 モデルで説明しきれないノイズ

広告効果の変換処理

広告効果については、人間の心理や広告特性を反映させるため、以下の変換処理を適用します。

Adstock(残存効果・遅延効果)

  • 広告効果は消費者が接触した直後だけでなく、時間とともに減衰しながらも一定期間持続する「記憶の減衰」効果を持つ
  • 最も単純かつ古典的なアプローチとして、下記の幾何減衰効果などが採用される
A_t = x_t + \theta \cdot A_{t-1}
  • \theta (0.0 < \theta < 1.0):減衰率
    • \theta が高いほど広告効果は長く持続する

Saturation(飽和効果)

  • 広告投資額が増加するにつれて、追加投資に対するリターン(ROI)が徐々に低下する性質
  • 一般的には、Hill関数[5]などのS字曲線を用いて、投資の「飽和」を表現する
S(x) = \frac{x^\alpha}{x^\alpha + K^\alpha}
  • K:半飽和点(Half-Saturation Point)。効果が最大値の50%に達する際の投入量
  • \alpha:形状パラメータ。曲線の急峻さ(S字の度合い)を決定
    • \alpha が大きいほど急峻なS字カーブとなり、小さいほど緩やかな曲線となる

MMM OSS 基本比較

現在、各社がMMMパッケージをオープンソースとして公開しています。
基本的なモデル構造は共通していますが、細かい中身や実装アプローチには違いがあります。

MMM 主要項目比較

項目 Meridian Robyn PyMC-Marketing
開発元 Google Meta PyMC Labs
統計アプローチ ベイズ推定 (MCMC) リッジ回帰 + 進化的アルゴリズム ベイズ推定 (MCMC)
計算エンジン TensorFlow Probability Nevergrad PyMC(NumPyro/BlackJAX/Nutpie)
主要言語 Python R Python
エリア粒度 地域レベル対応 全国レベル 地域レベル対応
インフラ要件 GPU(推奨) CPU環境(マルチコア) GPU/CPU環境
公開時期 2024年 2021年 2023年

Meridianは、Google LightweightMMM(2022)の後継としてリリース

以降では、各OSSの機能特徴について整理します。

Meridianの機能特徴

ベイズ統計アプローチによる過去知見の活用と不確実性の定量化

  • 事前の知見や過去のMMM結果などの情報を、事前分布(過去の知見や専門家の意見を確率分布として表現したもの)として分析モデルに組み込める
    • Meridianでは、パラメータ係数に加えて、ROIやmROIなどのビジネス指標に基づいた事前分布を設定可能
  • 推定結果を確率分布として出力するため、不確実性を定量的に評価でき、リスクを考慮した意思決定に繋げられる

https://developers.google.com/meridian/docs/advanced-modeling/intro-priors

地域階層モデルと情報プーリングによる推定精度の向上

  • 地域粒度で情報を活用することで、サンプルサイズと広告支出の変動幅が拡大する
  • データ期間が短い(データサンプル数が少ない)場合でも、全国粒度と比較して安定した投資対効果の推定を実現できる

https://developers.google.com/meridian/docs/pre-modeling/geo-selection-national-data?hl=ja

https://research.google/pubs/geo-level-bayesian-hierarchical-media-mix-modeling/?hl=ja

リーチとフリークエンシーの組み込み

  • 「リーチ(到達人数)」と「フリークエンシー(接触頻度)」を明示的にモデルに投入し、個人の広告接触回数によって広告効果が変動する可能性を考慮できる
  • フリークエンシーキャップの最適化や、リーチ重視対フリークエンシー重視の予算配分といった、より粒度の高い戦略的意思決定を実現できる

https://developers.google.com/meridian/docs/advanced-modeling/reach-frequency?hl=ja

https://research.google/pubs/bayesian-hierarchical-media-mix-model-incorporating-reach-and-frequency-data/?hl=ja

時変ベースラインによる動的モデリング

  • スプライン回帰をベースに、「ノット(knot)」というベースライン効果の変化点を配置することで、トレンドや季節性を時間経過に応じて柔軟に変化させることが可能
  • 市場環境の急激な変化(例:コロナ禍など)に対応した現実的なモデリングを実現できる

https://developers.google.com/meridian/docs/advanced-modeling/setting-knots?hl=ja

MMM Data Platform (MDP) の活用

  • YouTubeの広告配信データやリーチ・フリークエンシーデータを取得できる
  • Google検索ボリューム(GQV)をモデルに組み込むことで、指名検索と目的変数(KPI・売上)の交絡バイアスを軽減し、因果関係をより明確に把握できる

https://developers.google.com/meridian/docs/pre-modeling/using-mmm-data-platform?hl=ja

Robynの機能特徴

多目的最適化アプローチによる予測精度とビジネス的な納得感の両立

  • Nevergradによる多目的最適化により、以下の目的関数を同時に最小化する「パレート最適解(複数の目的を同時に達成するための解)」の集合を提示する
    • 予測精度(NRMSE): モデルが過去データをどれだけ正確に再現できているかを示す指標
    • ビジネス誤差(DECOMP.RSSD): 投資シェアと効果シェアの乖離をペナルティとして算出する指標
    • キャリブレーション誤差(MAPE.LIFT):事前の実験結果(リフトテスト結果)と推定された広告効果の乖離を示す指標
  • ユーザーは提示された選択肢の中から、モデルの予測精度とビジネス的な納得感の両面を考慮し、柔軟に最終的なモデルを選択・判断できる

https://facebookexperimental.github.io/Robyn/docs/features/#multi-objective-hyperparameter-optimization-with-nevergrad

リッジ回帰による多重共線性への対処

  • Robynではベイジアンモデリングは採用せず、パラメータ推定の核となる部分にリッジ回帰を採用
  • L2正則化(ペナルティ項)を導入することで、多重共線性の影響を抑制しつつ、各媒体の効果をモデルに残しながら解の安定化を図る
  • 施策時期が重なりやすく、変数間に強い相関が生じるマーケティングデータにおいて、本手法は有効である

https://facebookexperimental.github.io/Robyn/docs/features/#ridge-regression

Prophetによる自動時系列分解

  • 時系列予測ライブラリ「Prophet」を内包し、トレンド・季節性・休日効果を自動的に分解
  • 複雑なロジック記述や細かいパラメータ設定を必要とせずに高度な分解を実行し、リッジ回帰の独立変数として活用

https://facebookexperimental.github.io/Robyn/docs/features/#trend--seasonality-decomposition-with-prophet

https://facebook.github.io/prophet/

PyMC-Marketingの機能特徴

カスタムモデルによる柔軟なモデル構築

  • 既存のAPIコンポーネントの組み合わせにより、極めて高い柔軟性を実現
    • 時変モデル:設定パラメータを有効化することで、ガウス過程(HSGP)を用いた時変ベースラインや時変係数モデルを構築可能
    • 地域階層モデル:エリアや地域ごとの階層構造を持つモデルも対応可能
  • 定型的なモデルでは捉えきれない現場固有の複雑な要件を、数理レベルで直接記述・拡張できる

https://www.pymc-marketing.io/en/latest/notebooks/mmm/mmm_components.html

https://www.pymc-marketing.io/en/stable/notebooks/mmm/mmm_tvp_example.html

https://www.pymc-marketing.io/en/stable/notebooks/mmm/mmm_multidimensional_example.html

活発なコミュニティと継続的な機能拡張

  • GitHub上での議論や開発参加(Issue/PR)がオープンであり、コミュニティ内外で活発に機能改善やバグ修正が行われている
  • ユーザーの要望が開発ロードマップに直結しており、現場で真に求められる機能が継続的に実装されている

https://www.pymc-marketing.io/en/stable/contributing/index.html

まとめ

本記事では、主要なMMM OSSの特徴を整理しました。

各ツールはそれぞれ独自の特徴と強みを持ち、ツール選定において「唯一の正解」はありません。
大切なのは、ビジネス要件や技術環境に応じて総合的に最適な選択を行うことです。

また、既存のOSSを活用するのではなく、独自実装を検討することも一つの有力な選択肢です。

本記事が皆さまのMMMへの理解を深め、今後のOSS選定・導入に向けた一助となりましたら幸いです。

参考文献

脚注
  1. Meridian | Google for Developers ↩︎

  2. Welcome to Robyn | Robyn ↩︎

  3. PyMC-Marketing — Open Source Marketing Analytics Solution ↩︎

  4. https://facebookexperimental.github.io/Robyn/docs/features/#weibull-pdf--cdf ↩︎

  5. https://facebookexperimental.github.io/Robyn/docs/features/#saturation ↩︎

  6. https://www.statlearning.com/ ↩︎

INTAGE TECH
INTAGE TECH

Discussion