トレジャーデータ(Treasure Data)ブログ

トレジャーデータ(Treasure Data)ブログです。

本サイトは移転しました。新サイトにリダイレクトします。

トレジャーデータで実践:Path 分析(アウトプット編1:頻出パターンマイニング)

本記事は移転しました。新サイトにリダイレクトします。

はじめに

「トレジャーデータで実践:Path 分析」シリーズでは,過去にWeb,広告,リアル店舗でのログを元に,コンバージョンパステーブルの作成例とその分析事例を紹介していました。

blog-jp.treasuredata.com

それに続く本記事では,より具体的かつ汎用的な分析事例として,コンバージョンパスを分析インプットとした時に,どんな分析アウトプットが出せるか,について以下の3つを紹介する事にします。

  1. 頻出パターンマイニング(今回)
  2. コンバージョンパス ダイアグラム
  3. 決定木モデル

f:id:doryokujin:20151105132010p:plain

上記の資料はパス分析の概念から始まり,トレジャーデータにおけるデータの持たせ方から分析アウトプットまで,パス分析のいろはを詳細に述べた資料です。

コンバージョンパステーブル

ここで,生データとコンバージョンマスタテーブルを元に,トレジャーデータ上で作成するコンバージョンパステーブル(パス分析のインプットとなります)について復習をしておきましょう。

f:id:doryokujin:20151105132454p:plain

コンバージョンパステーブルは,ユーザーごとの,流入からコンバージョン(以後CVと呼びます)に至るまでを1つのまとまり:パスとして,グルーピングします。パスのノードとなるものは,URLや広告ID,商品名,カテゴリ名など,何でも構いません。上の図の例では "Page Type" をパスのノードとし,user_id=10000 の1回目のコンバージョン(cv_id=1,パスの長さ9)が水色で,user_id=10001 の1回目のコンバージョンが赤,2回目が黄色で塗られています。これら3つのパスは異なるものですが,最終的に "SignUp" というコンバージョンポイントに達しているコンバージョンパスです。

f:id:doryokujin:20151105133144p:plain

また,1つのコンバージョンパスを1つのレコードに縮約したコンバージョンパス リストテーブルも有用です。こちらでは流入からコンバージョンまでのノードを,順序を保ったリストとして,リストカラムに持たせています。

f:id:doryokujin:20151105133622p:plain

コンバージョンパスリスト テーブルでは,分析の際に役立つ情報を項目として持っておきます。ノードのリストもそうですが,ランディングしたノード,コンバージョン直前のノードやパスの長さなどを項目として持たせていることがわかりますね。

パスの頻出パターンマイニング

さて,前述のコンバージョンパステーブルをインプットとした分析をいくつか考えてみましょう。パス分析はコンバージョンの概念を基にしていますので,何らかに対する CV 率を見るのが良さそうです。

従来のコンバージョン分析は,それぞれのページ(点)でのCV率を見ていましたが,パスでCV率が見れるのがパス分析の良い所です。しかしながらコンバージョンパスの一つ一つはパスの長さも違えば,ノードの出現位置も組み合わせも全く異なりますので,パスを分類してCV率を見る事が困難です。

特徴的なパスをマニュアルで管理する

f:id:doryokujin:20151105134537p:plain

そこでまずは難しい事は考えず,分かり易いパスの分類をマニュアルでハンドリングすることにします。まずは「リファラ」×「ランディング(流入)」×「スルー(途中通過)」×「ラスト(直前)」の4つの点の組み合わせでの CV 率等を見ていくことにします。

ただ,4つの点を固定しても,そのパスの組み合わせは莫大になりますので,初めは上図の様に特徴的なパスの組み合わせのみをピックアップしてそのCV率を見るのが有効そうです。上図では,

  • リファラ:{ 検索,メール,自社,他社 }
  • ランディング:{ ホーム,プレスリリース,キャンペーン }
  • スルーページ:{ プレスリリース,キャンペーン,ポイント獲得,プレゼントページ }
  • 直前ページ:{ 申込ページ,クチコミ,Q and A }

に固定して,これらの組み合わせでパスの CV 率を見ていきます。また,上図の下の表では,さらにより特徴的なパスにわかりやすい名前をつけて管理しています。

4点固定の全組み合わせを算出

f:id:doryokujin:20151105140201p:plain

またノードの種類が少ない場合には,前述の4点固定をした全ての組み合わせを計算する力技が使えます。

f:id:doryokujin:20151105140236p:plain

例えば,広告業界でアトリビューション分析と呼ばれているものは,イベント= { インプレッション,クリック,検索,ビデオインタラクション, etc... } といった数種のイベントのコンバージョンパスを用いています。これくらいの種類数なら,全ての組み合わせで CV 率を求める方がスムーズです。

f:id:doryokujin:20151105140448p:plain

アトリビューション分析では上図のA〜Eのパターンでパスを分類し(分類されたパターンをパス類型と呼びます),CV 率や CV 占有率を見ていくのが主流となっています。しかしビデオ広告の存在が大きくなりつつ現在では,「ビデオインタラクション」などのビデオ再生に関するイベントが増えたため,全組み合わせで出しておく方が後々分析が楽になると思います。

頻出パターンマイニング

さて実際の分析環境ではURLや商品名などがノードとされる場合が多く,この場合にはノードの種類が多すぎて前述のような「特徴的なパス」を作ってそれの指標を見ることができません。もっと言えば「特徴的なパス」とは一体何なのか?ということが問題となる場合が多いでしょう。

頻出パターンマイニングを使えば,コンバージョンしたユーザーのパスの中で頻出するパスのパターンを自動抽出してくることが可能です。またパスの長さの異なるものでも,その中にそのパターンが含まれているパスは同じものとして計算してくれます。

f:id:doryokujin:20151105144954p:plain

コンバージョンパステーブルをローカルにダウンロードし,nysol 内の 竹パッケージ に含まれている mitemset コマンドを使えば,コマンドラインから一発で上図の様な頻出するパスのパターンを抽出してくれます。上図ではパスのパターンが,4個以上のもので構成されるもの(l=4)としています。これを2個や3個にすればより多くのパターン上で集計される事になります。

さてこの結果はそのまま使えそうですが,少し工夫をしてみましょう。コンバージョンしたパスの中で頻出するパターンは確かに有効そうですが,コンバージョンしなかったパスの中にも頻出するのであれば,コンバージョンへの寄与はそれほど多くないと言えるでしょう。つまり,同様の頻出パターンマイニングをコンバージョンしなかったパステーブルに対しても実行し,共通するパターンでCV率を計算し,上位順に並べたものが以下です。

f:id:doryokujin:20151105145825p:plain

CV率の高いパスのパターンを抽出することができました。トレジャーデータでパス分析を実践する事のメリットはコンバージョンパステーブルはもちろん,非コンバージョンパステーブルも同時に扱うことにあります。この非コンバージョンテーブルは莫大な大きさとなるので,従来のストレージでは保持しておけないものでした。