
GoogleのMMM「Meridian」を実装した印象と注意ポイント(前半)
・分析レポートが秀逸 とても使い勝手が良い
・MMMの分析機能が向上 リーチとフリクエンシー等も反映できるようになった
・MMM Data Platformとの連携により、Google検索データも反映できるようになった
・ROIの事前分布をカスタマイズすることで、ビジネスドメインの反映がより簡単になった
・カスタマイズにあたり注意すべきこともあるが、デフォルト利用でも十分に試しがいのあるツール
※2回にわけて投稿します。本記事は分析レポートと、リーチとフリクエンシーについてです。
先月末、Googleの新しいMMM「Meridian」が一般公開されました。
従来の「LightweightMMM(Lwmmm)」の後継版とされています。
Lwmmmにはない機能も新たに実装され、大幅なモデルチェンジとなっています。
Meridianについては、すでに多くのサイトで紹介されており、ご存じの方も多いと思います。
なるべく他のサイトと内容が重複しないように心がけておりますが、Meiridianを実装した印象や注意ポイントについてまとめました。
「ビジネス的にもエンジニア的にも、とても使い勝手の良いツール」
Meridianを実装した印象は「とても使い勝手の良いツール」ということです。
リーチとフリクエンシーを反映できるなど機能面はもちろんですが、データエンジニアの観点においても、Lwmmmより実装が容易でした。
例えば、Lwmmmの実装には、ドキュメントやGithubから必要なプログラムを精査し、実装とエラーを試行錯誤していたと思います。
一方、Meridianは、効率的な設計になっており、モデル仕様や実装類のドキュメントも充実しています。
インストールガイドに従うだけで、デフォルト仕様であれば容易に実装できます。
また、レポートもとても見やすいです。
Lwmmmでは、基本的に図表類はPNG出力でしたが、Meridianではhtmlファイルで出力されます。
このhtmlファイルがとても素晴らしく、MMMの分析結果が綺麗にまとまっています。
視認性も高く、社内共有等にも適した仕様です。

Meridianのグラフの1つ。予算の最適化前後のRevenueが容易にわかる。htmlファイルでオンマウスに対応。

PNG出力等もできる。

英語で出力されるがchromeの翻訳機能を使えば読み解ける。
いくつかサンプル画像をとりあげましたが、実際にレポートを見ていただくと、Meridianの優れたポイントを感じていただけると思います。
Meridianのサンプルデータを使ったMMM分析レポートをアップロードしました。
新機能のリーチとフリクエンシーを反映したレポートです。
ぜひご覧ください。Meridianのレポートは2つ出力されます。
※PCから閲覧を推奨します。スマートフォンの場合、横向きにすると比較的見やすいです。


「リーチとフリクエンシーを反映できる」
まず、Lwmmmから大きなUpdateとしては、リーチとフリクエンシーを反映できることです。
Lwmmmでは、インプレッションをモデルに反映できますが、リーチとフリクエンシーは反映できません。
例えば、インプレッションが100の場合、「1人に100回配信」「50人に2回ずつ配信」どちらのケースもありえますが、Lwmmmはリーチとフリクエンシーを反映できないため、どちらも同じものとして評価します。
Lwmmmにおいても、Hill関数等で広告効果のサチレーションを反映できますが、仮に、「50人に2回ずつ配信」だった場合、サチレーションは発生しづらいと考えるのが妥当です。
そのため、Lwmmmでは、これらを考慮できないことが弱点の1つとされていました。
一方、Meridianでは、リーチとフリクエンシーをモデルに反映できるようになりました。
これにより、Lwmmmより高い精度で分析が可能になりました。
サチレーションや最適なフリクエンシーが簡単にわかることで、広告運用者がキャンペーンを最適化しやすくなりました。
このUpdateにより、モデル精度がどの程度高まったかについて、Googleの論文に記載されています。
左側の表がリーチとフリクエンシーを反映したモデルです。右側が従来のモデルです。

モデル精度指標の1つであるR2で評価し、すべてのパターンにおいて精度が高くなっています。
また、Train(教師データ:モデルを作るデータ)と、Test(評価データ:モデルを評価するデータ)との比較において、従来のモデルより安定していることがうかがえます。
従来のモデルは、Geo(地域別)ではTest精度が下がりますが、National(全国)では反対にTest精度があがっています。
機械学習等でモデルを作る場合、Testも精度がぶれず、安定したモデルを作ることが大切ですが、従来のモデルは少しぶれています。
一方、Meridianはリーチとフリクエンシーを反映することで、モデル精度が安定していることがわかります。

式を見ると、Meridian(上の式)は、Hill関数※1でフリクエンシー※2を処理していますが、リーチ※3は処理していません。
※1 式の真ん中あたりHill。広告効果のサチレーションを計算する関数。
※2 Hill関数の右となりf
※3 Hill関数の左となりr
リーチはHill関数の外側にあり、リーチとフリクエンシーの処理をわけています。
MAPEを使わずR2のみで精度評価していることや、リーチをHill関数で処理しない≒リーチとKPIの関係を線形で想定していること等について議論の余地はあるかもしれませんが、このような仕組みで、インプレッションでサチレーションを計算するLwmmmより精度が高くなります。
このようにお伝えすると、「全メディアのリーチとフリクエンシーを入手できるかわからない」とご心配されるかもしれません。
ご安心ください。全メディア対応がマストではありません。
入手できるメディアについては、リーチとフリクエンシーを使い、入手できないメディアはインプレッションで分析できるように自動で処理されます。
この論文を見る限り、先ほどの式で例えると、入手できないメディアの場合、フリクエンシーfをインプレッションに置き換え、 リーチr を 1 に置き換えるような処理(結果的に従来のモデルと同じ)をしていると思われます。

また、リーチとフリクエンシーを使う場合、インストールガイドにそってプログラムを修正する必要がありますが、以下のようにリーチとフリクエンシーを入手できるメディアを追加する形式で扱いやすいです。
もし、リーチとフリクエンシーを入手できるメディアがあれば、利用されることを強く推奨いたします。

リーチとフリクエンシーを処理するプログラムの一例。correct_media_to_channelでインプレッションのメディアを処理し、correct_reach_to_channel 以降のプログラムでリーチとフリクエンシーのメディアを処理。
前半はここまでになります。
後半に続きます。
Google Cloud開発お承ります
datacompanyでは、お客様のご予算・環境に応じたクラウド開発を承ります。
お困りごとがございましたら是非ご相談ください。