統合スキーマは、プロトコル バッファを使用して定義された階層データスキーマで、MMM フレームワーク(Google メリディアン、Meta の Robyn など)のコアモデルとその出力を表すために使用されます。このスキーマにより、モデルのトレーニングに関する懸念事項を、モデルの出力を消費する実用的なアプリケーションから分離できます。モデルの入力、モデル適合度の統計情報、マーケティング分析、最適化(予算、リーチ / フリークエンシーなど)の表現を、モデルに依存しない方法で標準化します。

主な機能
マーケティング ミックス モデリング(MMM)の統合スキーマには、以下のような主な機能とメリットがあります。
- フレームワークに依存しない標準化: 基盤となるフレームワーク(Google のメリディアン、Meta の Robyn など)に関係なく、MMM の入力と出力を表す共通の、統一構造を確立します。これにより、モデルが異なっても結果の一貫した解釈と比較が可能になります。
- 分離: トレーニング フレームワークとモデル表現の懸念事項を分離します。ダウンストリーム システム(可視化ツールなど)は、モデリング ライブラリの内部実装の詳細に依存することなく、標準化されたスキーマ出力とやり取りできます。
- ダウンストリーム ツールの有効化: 多様なダウンストリーム アプリケーションを利用できる契約を提供します。次のようなアプリケーションがあります。
- レポートの生成
- 可視化ダッシュボード(メリディアン シナリオ プランナーなど)
- データ処理パイプライン
- 相互運用性とコラボレーション: シリアル化形式にプロトコル バッファを使用します。これにより、言語やプラットフォームに依存しない拡張可能なデータ交換が可能になり、異なるプログラミング言語(Python、Java、R など)を使用するチームがモデルの出力を使用できるようになります。
- 拡張性とスケーラビリティ: 統合スキーマのモジュール化された階層構造により、MMM 手法の進化に応じて新しい機能、指標、分析を追加できます。コアスキーマの変更は最小限で済みます。
- 永続性、共有、バージョニング: protobuf ベースのスキーマにより、トレーニング済みモデル、入力、派生分析をディスクにシリアル化し、チーム間で共有して、バージョン管理できます。
- コミュニティ主導の進化: オープンソースの統合スキーマにより、より幅広い MMM コミュニティからの貢献を受け付けることができます。このコラボレーション環境により、スキーマの開発を加速し、多様な視点を取り入れつつ、急速に進化する MMM 業界の最新の技術発展に対応できます。
概要

統合スキーマはモデルコアそのものに加えて、モデルの適合度、マーケティング分析、マーケティングの最適化の 3 つの拡張機能グループから成る 4 つの部分で構成されます。後者の 3 つは前者から派生しています。モデルの拡張機能は、モデルカーネルに追加されているオプションのデータ構造です。モデルカーネルはトレーニング済みのマーケティング ミックス モデルの状態を保存データとして表すのに対し、モデル拡張機能はコアの派生分析を表します。
// mmm.proto
// A schema that contains derived metrics and modeled analysis by a trained
// marketing mix model.
message Mmm {
// A MMM kernel contains the core information about the model used to generate
// this output.
model.MmmKernel mmm_kernel = 1;
// Model fit result.
fit.ModelFit model_fit = 2;
// A list of marketing analysis generated by the MMM kernel.
marketing.analysis.MarketingAnalysisList marketing_analysis_list = 3;
// Marketing optimization on different perspectives using the MMM kernel.
marketing.optimization.MarketingOptimization marketing_optimization = 4;
}
モデルコア: mmm_kernel
MmmKernel メッセージは一般的なモデルラッパーです。以下のものが含まれます。
- marketing_data: モデルのトレーニング、またマーケティング分析や予算配分の最適化に使用されるデータ。
- model: モデル実装のシリアル化されたフォームをラップする Any 型のフィールド。Any 型を使用すると、モデル実装をブラックボックスとして表現できます。
マーケティング データ
MarketingDataPoint のマーケティング情報には、KPI データ、メディア チャネルの詳細、メディア以外のその他の要因が含まれます。
KPI は収益タイプか収益以外のタイプのいずれかになります。収益以外のタイプの場合、KPI 値を指定するだけでなく、KPI から収益への変換率も指定できます。これは revenue_per_kpi と呼ばれます。
メディア チャネルの詳細には、地域情報、期間情報、KPI、コントロール変数、メディア変数、メディア以外の変数、リーチとフリークエンシーの変数のフィールドがあります。
有料メディア チャネルの MediaVariable および地域と期間別のメディア費用の内訳が利用できない場合(すべての地域と期間のメディア費用が集計されている場合など)は、media_spend を含む別の MarketingDataPoint メッセージが必要となります。このメッセージで、geo_info は未設定、date_interval は時間ディメンションの座標全体をカバーします。
メディア以外の要因には、メディアに直接関連していないが、ターゲット レスポンスに影響を与える変数や要因が含まれます。例: プロモーション、季節的な要因、マクロ経済の要因。何を含めるかは、モデルに応じて選択します。省略可能なマーケティング データのメタデータ フィールドには、シリアル化と逆シリアル化の処理に役立つ時間、地域、KPI の情報が格納されます。
モデル適合度の拡張機能: model_fit
モデル適合度の拡張機能では、予測値と実際のデータの経時変化とパフォーマンス指標を確認できます。また、適合度の統計データ(決定係数、MAPE、wMAPE、RMSE)も含まれています。モデル適合度の構造は、すべての MMM に適合する一般的なコンセプトをキャプチャします。これは、モデルに依存しないさまざまな予測ポイントを取得して実際の観測値と比較し、集計から指標を導出することで行われます。
マーケティング分析の拡張機能: marketing_analysis_list
マーケティング分析の拡張機能には、入力データに関する分析情報、およびメディア費用やメディア以外の要因が結果に与える影響の分析情報が含まれます。
メディア分析とメディア以外の分析
MediaAnalysis は、メディア チャネルが KPI(収益と収益以外の両方)に与える影響に関する分析情報を提供します。メディアが有料メディアでない場合、費用に関する情報がないため、応答曲線と費用に関連する効果指標は使用できません。NonMediaAnalysis はメディア分析と類似していますが、費用値が関連付けられていない点が異なります。そのため、応答曲線は含まれず、結果において費用値から導出されるフィールドは未設定になります。
応答
結果とはビジネスの成果(総販売収益や合計コンバージョン数など)です。さまざまな指標を使用して、メディア チャネルまたは有料以外のメディア要因の推定効果を表します。これは、介入変数に対する因果効果を測定する主な指標です。
結果は次のいずれかで定義できます。
- KPI: 結果達成に向けての進捗状況を測定するために使用される、具体的かつ定量的な指標です。KPI はモデルの応答変数です。KPI には、(a)収益(金銭的価値など)で表されるものと、(b)ユーザーの定義による一般的な収益以外の KPI(クリック率など)で表されるものの 2 種類があります。
- ROI、mROI、貢献度あたりの費用: メディア チャネルは収益ベースまたは非収益ベースのいずれかであるため、すべての proto フィールド(ROI、mROI、貢献度あたりの費用)にデータを入力することができます。一方、メディア以外のチャネルには費用が発生しないため、費用関連のフィールド(ROI、mROI)にはデータは入力できません。
- 貢献度と有効性: 使用される状況によって意味が若干異なる場合があります。メディアの収益 KPI では、計算に収益の金額が使用されますが、収益以外の KPI では、ユーザー定義の一般的な KPI 値が使用されます。
マーケティングの最適化の拡張機能グループ: marketing_optimization
マーケティングの最適化は、さまざまな側面から行うことができます。この拡張機能グループには、最適化に関連するすべての拡張機能が含まれています。
BudgetAllocation 拡張機能
ここで定義される構造は、ユーザーの指定する制約や最適化目標などに基づき、複数のマーケティング チャネルに対して最適な予算配分を行うための、モデルに依存しないコンセプトをキャプチャします。
BudgetOptimizationResult は、指定された特定の期間において、該当するすべてのチャネルのマーケティング費用に対して実施されます。各チャネルの最適化目標と予算による制約は、ユーザーが入力する必要があります。この最適化には、固定予算と柔軟な予算の 2 種類があります。固定予算の最適化では、合計予算額を変更せずにチャネル間の予算配分を最適化することで、目標とする指標値の最大化を目指します。一方、柔軟な予算の最適化では、事前に定義された制約を考慮しながら、合計予算額を調整しつつチャネル全体の予算配分を最適化することで、目標とする指標値の最大化を目指します。
最適化された結果はチャネルごとに表示されます。各チャネルの結果には、チャネルの実際の結果、モデルで最適化されたチャネルの結果、最適化プロセスで使用されたチャネルの予算による制約が含まれます。
BudgetOptimization には、最適化の結果に加えて、増分効果のタイプが異なるか、グリッドの粒度が異なる IncrementalOutcomeGrids のリストが含まれています。各 IncrementalOutcomeGrid は、チャネル別にマーケティング費用の詳細な増分効果を確認できるグリッドを表します。このグリッドは、たとえば、費用に対する増分効果の傾向をプロットしたり、グリッド検索を使用する最適化アルゴリズムに基づいてオンライン予算の最適化を図ったりする場合に便利です。このグリッドは、チャネル間で交互作用効果がない、つまり 1 つのチャネルの費用が他のチャネルに影響しないという前提で作成されます。
OptimalFrequency 拡張機能
最適な平均フリークエンシー(任意。モデルにリーチとフリークエンシーのデータが最初から含まれていることが前提)は、目標を最大限に達成するために、チャネル内のユニーク ユーザー 1 人あたりの広告インプレッションの最適なフリークエンシーを示します。この拡張機能を利用できるかどうかは、データと MMM の機能によって異なります。
インストール
統合スキーマ パッケージをインストールするには、メリディアンの GitHub リポジトリのクローンを作成し、メリディアンのインストール時に追加の [schema] を含めます。このパッケージには、関連する proto 定義が含まれています。
$ git clone https://github.com/google/meridian.git;
$ cd meridian;
$ pip install .[schema];
変換レイヤ
MMM フレームワークやモデル固有のアルゴリズムに応じて、対応する MMM proto メッセージを生成する変換レイヤやプロセッサは異なります。まずは、Google メリディアンのプロセッサの例をご覧ください。