
GoogleのMMM「Meridian」を実装した印象と注意ポイント(後半)
・分析レポートが秀逸 とても使い勝手が良い
・MMMの分析機能が向上 リーチとフリクエンシー等も反映できるようになった
・MMM Data Platformとの連携により、Google検索データも反映できるようになった
・ROIの事前分布をカスタマイズすることで、ビジネス知見の反映がより簡単になった
・カスタマイズにあたり注意すべきこともあるが、デフォルト利用でも十分に試しがいのあるツール
※2回にわけて投稿します。本記事はMMM Data PlatformやROIの事前分布等についてです。
「LightweightMMM(Lwmmm)」の後継版となるGoogleの新しいMMM「Meridian」が一般公開されました。
Meridianについては、すでに多くのサイトで紹介されており、ご存じの方も多いと思います。
なるべく他のサイトと内容が重複しないように心がけておりますが、Meridianを実装した印象や注意ポイントについてまとめました。
前回は、Meridianの分析レポートの使い勝手や、新機能「リーチとフリクエンシーの反映」についてご紹介いたしました。
今回は、MMM Data PlatformやROIの事前分布のカスタマイズ等についてご紹介いたします。
前回のお話は以下よりご覧いただけます。
「MMM Data Platformとの連携により、データ準備を効率化」
MMMに限らず、分析の世界ではよく言われることですが、データ準備など、分析実行までの工程に多くのリソースを割かれます。
特に、MMMのように複雑な分析の場合、データ仕様も厳密に決められている場合が一般的です。
そのため、MMMを実行するうえで、一番ハードルが高いことは、適切なデータを準備することだと思います。
弊社クライアント様におかれましても、仕様を満たさないデータについて再作成をお願いするなど、データ準備に工数がかかる傾向にあります。
Meridianでは、そのようなMMMのつまづきポイントにもフォーカスしており、MMM Data Platformを使うことで、データ準備を効率化しています。
MMM Data Platformでは、Google Cloud StorageやS3等のクラウドストレージにデータ連携できます。
データ連携によりデータ準備の工数を下げられますが、制約もあります(後述:「MMM Data Platformには制約がある」)。

MMM Data Platform管理画面。画面左下の+ボタンからデータ連携を設定。
「MMM Data Platformとの連携により、Google検索データも反映できるようになった」
機械学習等で精度の高いモデルを作る場合、データに大きく依存します。
つまり、どれだけ良いデータを集めて、質の良い特徴量(変数)等をモデルに読み込ませるかが、とても大事です。
これは、MMMにおいても同様です。
広告のメディアデータに加えて、マーケット自体の盛り上がりなど外部要因を考慮することで、精度の高いモデルに近づく可能性が高まります。
検索データは、そのような外部要因を考慮するうえで役立つデータです。
MMM Data Platformとの連携により、検索データが使えるようになったことで、その可能性はさらに高まります。
そのようなモデルに仕上げることで、自社の売り上げUPが、自社の広告効果なのか、もともとマーケット需要が高かったのかを見極め、純粋な広告効果を推定できることにつながります。
しかし、Meridianの実装において、注意すべきことがあります。
「Google検索データを使わないほうが良いケースもある」
Meridianのドキュメントには「因果推論」という言葉が何度も出てきます。
これは、見かけによる広告効果ではなく、広告による純粋な売上UPを推計しようとする考え方です。

MMMの目的は因果推論
因果推論において、検索データの扱いが大事であることもドキュメントに書かれています。
この点において注意が必要です。
検索データを使わないほうが良いケースがあります。
ドキュメントでは、検索データをモデルに使うべきかについて、客観的な数値基準に基づいた確定ルールは存在せず、ユースケースによって判断とあります。

コントロール変数の概要図。これを見ても、検索データをモデルに使うべきか判断しづらい。
「検索データを使ったほうが望ましいと考えられるケース」
そこで、クリスマス商戦を例に、検索データをモデルに使うべきか検討します。
例えば、クリスマス商戦では「クリスマスプレゼント」の検索クエリが多く発生します。
それを狙って、検索広告の予算も通常月より増えるので、検索広告も多く発生します。
広告費は需要の変動に応じて連動し、そのぶん売上も連動します。
需要の増加と広告費の増加が一致してしまい、純粋な広告効果を推計しづらくなります。
このような場合、検索データを使ったほうが良いと考えられます。
検索ボリュームが、検索広告と売上それぞれに対して、どの程度影響するかわかることで、純粋な広告効果を推定できるためです。

このケースの検索データはConfounding Controls(交絡変数)。モデルに使うことを推奨。Treatmentは効果を評価したい広告。
「TVCM等で検索喚起を狙っている場合は注意が必要」
検索データを使わないほうが良いケースも考えられます。
例えば、TVCMを大量投下し、認知獲得や検索喚起を狙う場合です。
このような場合、検索データを使ってしまうと、TVCMの広告効果を適切に評価できない可能性があります。
TVCMにより、検索が喚起され、検索ボリュームが増えます。
検索クエリが多く発生すると、検索広告も多く表示され、そのぶん売上も連動します。
TVCMにより検索が喚起されましたが、検索データをモデルに組み込むことで、検索データが評価され、TVCM本来の効果が評価できない可能性があります。
このような場合、検索データを使わないほうが良いと考えられます。

このケースの検索データはMediator Controls(メディエーター変数)。モデルに使わないことを推奨。インフルエンサー施策による検索喚起も同様。
これらの判断に際し、ドキュメントでは、次のようにアドバイスしています。
検索ボリュームを交絡因子と判断してモデルに含めるか、メディエーターと判断してモデルから除外するかを決める必要があります。どちらの仮定を選ぶか決める際のポイントは次のとおりです。
・バイアスのない推定値を得るうえで重要度の高いチャネル
・介入群、検索ボリューム、KPI の想定される相関性の強さ
・検索ボリュームがメディエーター変数ではなく交絡変数であるチャネルの推定数
まさに、前述のユースケースによって判断というわけです。
例えば、1つ目の「バイアスのない~」は、どのメディアの評価を優先するかということです。
先ほどの例の場合、もし、検索広告がマーケティングの重要チャネルで、検索広告を正しく評価したいなら、検索データをモデルに使うことを検討します。
反対に、TVCMの評価を優先したいなら、検索データを使わないことを検討します。
このように、広告主側の意向や各メディアと検索の関係等を総合的に考慮して、ケースバイケースで決めることをGoogleは推奨しています。
「ROI事前分布のカスタマイズもできる」
Meridianでは、ビジネス知見を反映しやすい機能も実装されました。
Lwmmmでは、ROI以外の事前分布等を調整することで、ROIやモデルを最適化していましたが、その調整が他の要素とも相互作用してしまい、最適化が難しい側面がありました。
Meridianでは、ROIを直接モデルのパラメータに指定できるようになり、ビジネス知見に基づいた直感的で柔軟なモデル調整が可能になりました。
このUpdateにより、モデル精度がどの程度高まったかについて、Googleの論文に記載されています。
この図は、ROI事前分布の実装有無により、モデル精度がどの程度改善したかを示しています。

太い赤線が真のROI(正解)で、他の3色の線は実験パターンです。
青:従来のモデル。ROI事前分布なし。
オレンジ:Meridian。ROI事前分布あり(全期間)。
緑:Meridian。ROI事前分布あり(一部期間のみ)。
赤線に近いほど、モデルの精度が高く、安定しています。
青の従来のモデルは、横に広がっており、推定のバラツキが大きく、赤線から遠く離れています。
一方、Meridianは、推定のバラツキが小さく、赤線に近いことから、より正確なROIを推定できていることがわかります。
オレンジ(全期間)が最も赤線に近いことから、長期のデータを使うことで、より精度が高まるようです。
Meridianでは、このROI事前分布を任意に設定できます。
分布と表現すると、馴染みがないかもしれませんが、平均とバラツキになります。

Meridianではメディア別にROI事前分布を指定できる。roi_m_mu、roi_rf_muが平均。roi_m_sigma、roi_rf_sigmaがバラツキ。rfが付いているものはリーチとフリクエンシーが取れるメディア。
ただし、ここで入力する数字は、一般的な平均とバラツキではありません。
ここで入力されたROI分布は、Lognormalという分布で処理されます。
Lognormalで処理する数字は、一般的な平均とバラツキではなく、対数平均・対数標準偏差になります。
ROIは、一般的にマイナスを想定しておらず、正の値をとります。
通常の分布で実装するとマイナスがありえることから、このような分布を仮定しています。

Lognormalは、対数平均と対数標準偏差を処理。ROIが正の値となり、マーケティング分析に適している。
この2つの数字を入れると、ROIの中央値や平均等が計算できます。
事前分布がわからない場合、ドキュメントでは、対数平均0.2・対数標準偏差0.9を推奨しています。
この数字を、ROIに換算すると、以下になります。

Meridianでは、何も指定しない場合、ROI平均1.83(183%)で想定しています。
標準偏差も2.05(205%)と、大きなバラツキが設定されています。
しかし、実際の運用においては、メディアごとにROIが異なります。
MeridianのデフォルトであるROI平均1.83を超えるメディアや、反対に下回るメディアもあります。
バラツキについても同様です。
メディアごとに安定性が異なるのが通例でしょう。
このように、実際の運用における実績が明らかな場合、ROI事前分布をカスタマイズすることを推奨いたします。
カスタマイズにより、どの程度結果が変わるか試してみました。
例えば、初回の分析で以下の結果が得られたとします。※数字はダミーです

このグラフは、MeridianのROIの分析結果です。
Channel0が最良で、Channel3が最も不芳と評価されました。
しかし、Channel3の運用実績は常に素晴らしく安定しており、実際と著しくかけ離れています。
そこで、実績にもとづいて、Channe3のROI事前分布を以下のようにカスタマイズします。

換算後のROIは平均約700%で、それに対してバラツキは小さく、安定し高成果の良好なメディアです(こんなメディアは、なかなかお目にかかれませんが)。
この条件で再実行すると、以下のように結果が変わり、本来あるべき姿で広告効果が評価されます。

カスタマイズ前のROI
Channel3のROI評価は1.5(150%)

カスタマイズ後のROI
Channel3のROIが大きく向上。本来あるべき評価に。
このように、Meridianでは、ビジネス知見をROI事前分布としてモデルに反映することで、ビジネス知見に基づいた直感的で柔軟なモデル調整が可能になりました。
それにより、Lwmmmよりも、正確に広告効果を検証できます。
レポート出力やMMM Data Platformの制約など、Meridianを実装するうえでの注意ポイントが他にもあります。
「Colab Enterpriseでインストールガイドにそって進めると、レポートを出力できない」
MeridianはPythonで動作します。
インストールガイドは、Google Colab(Colaboratory)を想定していると思われます。
Google Colabは、気軽にPythonのNotebookを構築できますが、ファイル単位等でのアクセス管理になります。
クライアント様からデータをお預かりする企業側としては、セキュリティ面でやや不安があります。
一方、企業向けを想定したColab Enterpriseなら、費用はかかりますが、セキュアなGoogle Cloudで実行できます。
Google Cloudでは、IAM(Identity and Access Management)で細かくアクセス制御できます。
Colab Enterpriseなら、Google Colabのような使い勝手そのままで、セキュアな環境でNotebookを実行できるというわけです。
弊社の開発環境はGoogle Cloudにあります。
Meridianについても、Google CloudのColab Enterpriseで実装しています。
インストールガイドには、Googleドライブにモデルの結果を出力する説明があります。

しかし、Colab Enterpriseでドキュメントのプログラムを実行するとエラーになるかと思います。
NotImplementedError: google.colab.drive.mount is not supported in Colab Enterprise.
これは、Colab Enterprise では google.colab.drive.mount() を使用できないことが原因です。
このような場合、Meridian用にGoogle Cloud Storageをたてて、サービスアカウントを発行し、IAMで権限を付与してアクセスキーや認証情報を使って、Google Cloud Storageにレポートを出力することで回避できます。
「MMM Data Platformには制約がある」
Meridianでは、MMM Data Platformを使って、Google検索データやGoogle広告のリーチとフリクエンシーをGoogle Cloudに連携できます。
しかし、制約がありますのでご注意ください。
申請が必要。すぐには使えない。3営業日が目安。
MMM Data Platformの利用は申請が必要です。3営業日を目安にGoogleからアカウントについて連絡がきます。連絡が届いた後、データ連携を設定し、約2週間でデータが納品されます。
広告主、または、一部の代理店等のみ直接連携が可能。
広告主か、GoogleのMMMパートナープログラムに参加しているサードパーティのみ、MMM Data Platformへ直接連携が可能です。Google広告を利用している広告主様であれば特段問題ございません。
MCC IDは不可。
MCC ID(マネージャーアカウントID)は連携できません。
リーチとフリクエンシーはYoutubeキャンペーンのみ可能。
Google広告のリーチとフリクエンシーを連携できますが、現時点ではYoutubeキャンペーンのみ可能です。他の広告キャンペーンについては、Google広告管理画面等からデータを集めることになり、一定の工数がかかります。これは残念な仕様ですね。改善が待たれます。
Google検索データは生の検索数ではない。
MMM Data Platformで取れる検索データは、生の検索数ではありません。Googleトレンド同様の指数化されたデータです。指数化されていますが、このデータはコントロール変数として使用します。指数化してもモデルには影響しません。

たしかに、ドキュメントには「検索ボリューム」とあります。「検索数」とは書かれていません。
Google Cloud開発お承ります
datacompanyでは、Meridianの受託分析をはじめ、お客様のご予算・環境に応じたクラウド開発を承ります。
お困りごとがございましたら是非ご相談ください。