アトリビューション分析 – マルコフ連鎖モデルの分析方法


広告効果測定におけるアトリビューション分析では様々なモデルが提案されています。通常よく利用されるのは、「均等分配モデル」、「U字型モデル」、「ファーストクリック重視モデル」、「ラストクリック重視モデル」の4つのモデルです。これらの分析は非常にシンプルで誰でもすぐにわかります。通常はこれらの分析で十分ですが、機械学習の考え方を応用したモデルも最近使われるようになってきました。

特によく使われるのは、「マルコフ連鎖モデル」と「ベイジアンネットワークモデル」です。どちらも確率論をベースとしたモデルです。
これらの分析の方法論を調べようと思ったのですが、これといった分析方法はさすがにネット上には掲載されておらず、ちょっと困っていました。マルコフ連鎖モデルであれば、以前勉強したことがあるので、できそうな気がします。なので、自分でテキトーにアトリビューション分析のマルコフ連鎖モデル作っちゃえというのが今回のエントリーです。

*注意:専門家ではない人間が思いつきで作ったモデルですので、あくまでも参考程度にしておいてください。
専門的にマルコフ連鎖ソリューションを提供している企業は、同じマルコフ連鎖を用いて全く違う分析をしている可能性もあります(少なくとも本エントリの分析方法と同じではないと思います)。

 

マルコフ連鎖とモデル化の考え方

マルコフ連鎖とは、を調べるとそこそこ難しいので、Wikipediaでも参照してください。
http://ja.wikipedia.org/wiki/マルコフ連鎖

Wikipediaにも記載されているように、Googleのページランクもマルコフ連鎖によって定義されています。アトリビューションモデルとしてマルコフ連鎖を用いる場合は、ページランクの考え方とほぼほぼ同じと考えても良いと思います。

Googleのページランクでは

  • より多くのリンクを集めているページは良いページ
  • 良いページからリンクを集めているページは良いページ

と考えます。
(*現在のGoogleはもっと複雑なロジックを採用しています)

この考え方をアトリビューション分析のモデル化に応用します。
どういうことかというと、流入状況の順番をリンクとして捉えて、リンク構造を分析するというイメージです。

例えば、
Yahoo!バナー>Googleリスティング>アドネットワークバナー>CV
という流れでCVまで到達したユーザーを考えます。
前後の流入元を組み合わせて、

 

  • 初回>Yahoo!バナー
  • Yahoo!バナー>Googleリスティング
  • Googleリスティング>アドネットワーク
  • アドネットワーク>CV

 

という風に分解します。
初回流入も評価するために、最初のYahoo!バナーは初回と組み合わせています。

これをページランクで言うところの、「リンク元>リンク先」と考えて分析します。
つまり、一番上のものは、「初回」というページから、「Yahoo!バナー」というページへリンクが貼られていると考えます。そうすることで、ページランクと同じロジックでの分析が可能となります。

つまり、この分析はどういうことかというと、
「流入媒体の前後の繋がりを考慮した上での効果測定モデル」
と考えられます。

 

マルコフ連鎖モデルの計算方法

ここから実際の計算に入ります。元のデータはこれを使用します。
(ちなみにアクセスログからこのデータを作るのは結構しんどいです)

First>Affi>CV
First>Google>Yahoo>Affi>CV
First>Yahoo>CV
First>Google>Affi>CV
First>Yahoo>Affi>Affi>Google>CV
First>Affi>Google>Affi>Yahoo>CV
First>Affi>Yahoo>Affi>CV
First>Google>Affi>Affi>Google>CV
First>Yahoo>Google>Google>Google>CV
First>Yahoo>Affi>CV
First>Google>Yahoo>Yahoo>Yahoo>CV
First>Affi>Google>Yahoo>Yahoo>CV
First>Affi>Affi>Yahoo>Affi>CV
First>Affi>Affi>Affi>CV
First>Google>Affi>Affi>Affi>CV
First>Affi>Affi>Affi>Affi>CV
First>Google>Affi>Google>Affi>CV
First>Yahoo>CV
First>Affi>Yahoo>Yahoo>CV
First>Affi>Affi>Google>Affi>CV
First>Yahoo>Yahoo>Yahoo>Affi>CV
First>Google>CV
First>Yahoo>Yahoo>Affi>Affi>CV
First>Google>Yahoo>Affi>Affi>CV
First>Affi>Affi>Yahoo>Affi>CV
First>Google>Affi>Affi>Affi>CV
First>Affi>Google>Google>Google>CV
First>Yahoo>CV
First>Yahoo>Yahoo>Yahoo>Yahoo>CV
First>Google>Yahoo>Google>Google>CV
First>Affi>Affi>Google>Yahoo>CV
First>Yahoo>Affi>Google>Affi>CV
First>Yahoo>Affi>Affi>Affi>CV
First>Yahoo>Google>Google>Affi>CV
First>Affi>Yahoo>CV
First>Google>Yahoo>Google>Google>CV
First>Affi>Yahoo>CV
First>Google>Google>Yahoo>Affi>CV
First>Yahoo>Affi>CV
First>Yahoo>CV
First>Google>Affi>Google>Affi>CV
First>Affi>Google>Affi>Google>CV
First>Google>Affi>Google>Affi>CV
First>Affi>Yahoo>Yahoo>Affi>CV
First>Yahoo>CV

このデータから、遷移行列を作成します。
上記のように、データを分解して件数を数えると、下記のような行列を作ることができます。

matrix1

この遷移行列からページランクを生成します。
ページランクの計算方法は下記のエントリーを参照してください。

サイトの導線を評価する:応用編2

ページランクを計算すると下記のようになります。
 

  • First → 0.05
  • Affi → 0.30
  • Google → 0.19
  • Yahoo → 0.20
  • CV → 0.26

 

ページランクが高いほど、重要な媒体と考えれれます。FirstとCVは媒体ではないので除外すると、Affiが圧倒的に高く、次いで、Yahoo!、Googleとなります。
これで完成です。と言いたいところですが、このモデルだと都合が悪いことがあります。全てCVに繋がっているため、CVのページランクもそこそこ高くなっているのですが、このCVからの還元がありません。ページの前後のみで計算しているため、最終ゴールであるCVからのリンクはゼロという状態です。つまりCVへの貢献度が全く評価されず、単純に「他の媒体からの流入直後に流入する媒体が高く評価されている」という状態です。
これではまずいので、CVからの逆流も遷移行列に組み込みます。
CVからの逆流を組み込んだ遷移行列が下記です。

matrix2

 

ページランクを計算すると、こうなります。

  • First → 0.00
  • Affi → 0.38
  • Google → 0.18
  • Yahoo → 0.21
  • CV → 0.24

 

コンバージョンとのリンクが多いAffiのページランクが大きく増加しました。これだけでも良いといえば良いのですが、まだ評価していないイベントがあります。ファーストクリックです。
ファーストクリックからの遷移は組み込んでいますが、ファーストクリックへの遷移は行列に組み込まれていません。そのため、ファーストクリックからのリンクがいくら多くても評価は全く上がらない状態となっています。CVと同じようにファーストクリックからの逆流遷移も遷移行列に組み込みます。

matrix3

 

ページランクを計算すると下記のようになります。

  • First → 0.16
  • Affi → 0.31
  • Google → 0.17
  • Yahoo → 0.19
  • CV → 0.16

ファーストクリックは3媒体ともに大差なかったので、相対的にはそれほど評価は変わっていませんが、Firstクリックのページランクが上昇したことがわかるかと思います。これが最終的な評価となります。
これを見ると、アフィリエイトが最も評価が高い媒体なので、もう少しアフィリエイトの予算を増やしても良いと言えます(実際に分析する際はCPAや引き上げ率、LTVなどを加味しながら予算分配を決定していきます)。
もし、ラストクリックを高く評価したいのであれば、「各媒体>CV」の数に係数を掛ければCVのページランクが上がるため、CVからの逆流が多い媒体の評価も上がります。

 

マルコフ連鎖モデルの優れている点

今回のマルコフ連鎖モデルの優れている点は、

  • 各媒体の流入順序も考慮した分析が可能

という点です。
均等分配モデルや、U字型モデルなどの単純モデルはファーストクリックとラストクリック以外の媒体の順番を考慮していません。マルコフ連鎖モデルは各媒体の順番をリンクとして見ることで、媒体間の関連性も評価軸として組み込んでいます。
また、遷移行列を作ることで各媒体間の関連性も評価できます。例えば、遷移行列を見ると、ファーストクリックで多く入ってきた媒体、ラストクリックとなったことが多い媒体、アフィリエイトの次に入ってくることが多い媒体などがひと目でわかります。

マルコフ連鎖モデルの問題点は直感的ではないという点です。均等分配モデルやU字型モデルであれば、話を聞けばすぐに理解できるのに対して、マルコフ連鎖モデルを理解するのには、ちょっとした基礎知識が必要です。また、「媒体流入の流入順序を考慮した分析」によって、精度がどれだけ上がるのかも疑問です。ベイジアンネットワークモデルも事後確率を用いるだけで基本的な考えは、マルコフ連鎖モデルと大きく変わりません。データソースの作り方をもっと工夫すれば、より精度の高い分析/予測モデルができるかもしれません。

Leave a Reply