RのChannelAttributionパッケージでマルコフ連鎖モデルのアトリビューション分析にチャレンジ

【目次】
・アトリビューションモデルとは
・アトリビューションモデルにおける評価の種類
・均等配分モデルと数理モデル
・ChannelAttributionパッケージについて
・Rでの実行
・実行結果
・参考文献

アトリビューションモデルとは

コンバージョンに至った広告の貢献度を、コンバージョンした経路のタッチポイントにどのように割り振るかを決めるルール。直接コンバージョンに至らなかったが、コンバージョンに繋がる働きをした広告の評価ができるモデルです。

アトリビューションモデルにおける評価の種類

Googleアナリティクスに載っていたアトリビューションモデルの種類です。一例なので、これが全てだとは言えないです。

  • 終点アトリビューションモデル
  •  コンバージョンに繋がった最後の経路を評価

  • 最後の間接クリックアトリビューションモデル
  •  コンバージョンに至る経路の直前の経路を評価

  • 起点アトリビューションモデル
  •  最初に関わった経路を評価

  • 線形アトリビューションモデル
  •  コンバージョンに至るまでに関わった経路を均等に評価

  • 減衰アトリビューションモデル
  •  コンバージョンした際に、時間的に最も近いものを評価

  • 接点ベースアトリビューションモデル
  •  起点と終点それぞれに40%ずつ評価、残りの20%は中間点に対して均等に評価

    均等配分モデルと数理モデル

  • 均等配分モデル
  •  コンバージョンに至るまでに関わった経路を均等に評価。数学に明るくなくても実行でき、集計が比較的簡単かつ解釈から施策までが容易とされる。一方で、恣意的な判断が入り込みやすかったり、各広告が独立であるという過程があるため、任意の広告のIMPが変化したときに他の広告への影響が加味できないなど欠点も多い。他の評価方法との比較のためのベンチマークとして用いられる。

  • 数理モデル
  • マルコフ連鎖モデル
     ユーザーの2点間の行動のみに基づいて分析を行う。
     例えば、広告の経路が10通りある場合、広告1を踏んだユーザーは確率p11で広告1を次に触れる、確率p12で広告2を次に触れるというような確率で広告の接触確率が決まるモデルとなる。確率から接触したページの価値を計算することで、評価が可能となる。複雑怪奇なユーザー行動を2点間のデータに落とし込むことで、分析する際の情報量を制限することができる。

    ChannelAttributionパッケージについて

    Package ‘ChannelAttribution’
    ※Rのバージョンが古いとインストールできません。3.2以上にしましょう。

    今回はRのChannelAttributionパッケージを用いて、マルコフ連鎖モデルを実践してみます。
    このChannelAttributionパッケージにはデータセットがついているため、その用意されたデータを用います。

    実際、このようなデータを元に分析を進めます。
    customer_journey_data

    内訳としては以下の通りです。
    ・コンバージョンに至ったパス
    ・コンバージョン数
    ・コンバージョン価値(価値に関してはサイトによって異なってくると思います。)
    ・コンバージョンに至らなかったパスの数(計算上使っていないようです。除外しても結果が変わらなかったので。)

    Rでの実行

    実行結果

    ぱっと見ですが、alphaやtheta以外では均等配分モデルとマルコフ連鎖モデルに大きな差はなさそうです。データにもよるとは思いますが。自社のデータで実行して、違いがあるか見てみたいですね。

    こちらはコンバージョン数で評価したもの
    total_conversions

    こちらはコンバージョン価値で評価したもの
    total_value

    参考文献

    Markov model for the online multichannel attribution problem

    アトリビューション モデルの概要

    マルコフ連鎖モデルによるアトリビューション分析(インターネット広告への応用)

    Attribution models—数理モデリング入門

    マルコフ連鎖を説明してみる。

    LDA(潜在的ディリクレ配分法)まとめ 手法の概要と試行まで

    【目次】
    ・トピックモデルとは
    ・トピックモデルの歴史
    ・トピックモデルでできること
    ・トピックモデルを理解するために必要な知識
    ・トピックモデルの手法について
    ・トピックモデルの実行方法について(R言語)
    ・トピックモデルの評価方法について
    ・Correlated Topic Models (CTM)について
    ・PAM:Pachinko Allocation Modelについて
    ・Relational Topic Models(RTM)について
    ・参考文献

    トピックモデルとは

    ・一つの文書に複数の潜在的なトピック(話題・分野・文体・著者など)、文書ごとのトピック分布、トピックごとの単語分布を仮定して、テキストからトピックを推定するモデル。文書に限らず、様々な離散データに隠された潜在的なトピックを推定するベイジアンモデル。幅広いドメインでの離散データで有効とされている。

    トピックモデルの歴史

    1998年:pLSA(probabilistic Latent Semantic Analysis)
    2003年:LDA(Latent Dirichlet Allocation)
    2004年〜:拡張モデル
    2007年〜:大規模データのための高速化

    トピックモデルでできること

    ・人を介することなく、大量の文書集合から話題になっているトピックを抽出できる。
    ・文書データだけでなく、画像処理、推薦システム、ソーシャルネットワーク解析、バイオインフォマティクス、音楽情報処理などにも応用されている。
    ・確率過程を用いて、ノイズを取り除き、本質的な情報を抽出できる。

    トピックモデルを理解するために必要な知識

    ・確率
     -確率分布
      -ベルヌーイ分布
      -カテゴリ分布
      -ベータ分布・ガンマ分布
      -ディリクレ分布
    ・ラグランジュ未定乗数法
    ・ユニグラム
     -BOW(Bag of words)
     -ユニグラムモデル
    ・混合ユニグラムモデル
    ・混合モデル
    ・EMアルゴリズム
    ・最尤推定
    ・ベイズの定理
     -ベイズ推定
      -ベイズ予測分布
      -ハイパーパラメータ推定
      -モデル選択
      -変分ベイズ推定
      -ギブスサンプリング

    トピックモデルの手法について

    推定方法としては以下の三つが提案されている。
    ・最尤推定
    ・変分ベイズ推定
    ・ギブスサンプリング

  • ギブスサンプリングによる方法
  • 一部のパラメータを積分消去して、トピック集合の事後分布を推定

    文書集合とトピック集合の同時分布を導出

    単語ごとにトピックをサンプリングする

    サンプリングされたトピックからトピック分布と単語分布を推定

    周辺同時尤度を最大化させるハイパーパラメータαとβを推定する

    ※LDAのギブスサンプリングはLDAが共役性に基づいたモデリングであるため効率的な計算が可能とされる。

    ハイパーパラメータを適切にデータから学習すれば、MAP推定・変分ベイズ推定・ギブスサンプリングの性能の差は大きく出ないという研究結果があるらしい。(なお、MAP推定だと、クロスバリデーションを行い、尤度を最大化させるハイパーパラメータを見つけなければならない。)

    トピックモデルの実行方法について(R言語)

    以下のパッケージで実行可能だが、新しい手法などにはまだ対応していない。
    lda(CRANのPDF
    topicmodels(CRANのPDF

    以下はtopicmodelsパッケージの実行コードであるが、BOW形式のデータがあれば、実行はすぐにできる。
    ただし、パープレキシティなどを計算しながら、ハイパーパラメータのチューニングをする必要がある。

    時間があれば、ソースコードを見て自分で書けるようにしたい。
    ちなみに、HDP-LDAはPythonのgensimに用意されているようです。(gensimへのリンク)

    トピックモデルの評価方法について

  • パープレキシティ(Perplexity)
  • -確率モデルの性能を評価する尺度として、テストデータを用いて計算する。
    -負の対数尤度から計算できる。
    -低いパープレキシティはテストデータを高い精度で予測できる良い確率モデルであることを示す。
    -全ての語彙が一葉の確率で出現するモデルのパープレキシティは語彙数Vになり、性能が悪いと考えることができる。
    -このパープレキシティが小さくなるようなトピック数やパラメータの設定が必要。

    Correlated Topic Models (CTM)について

    トピックモデルは 「各トピック k の間には相関がない」という前提のもとに成り立つ手法ですが、本当にトピック間に相関はないのでしょうか。「本当は相関のあるトピック」を無理やり「相関のないトピック」に分割している可能性が高いので、相関を加味したモデルが必要です。そこで、トピックの生成割合を決める際に、トピック間の相関を持つように多次元の正規分布を用います。ただし、その代わりに共役的な分布を持たないため、従来のギブスサンプリングではサンプリングが非効率になることから変分ベイズを用いる必要があります。

    PAM:Pachinko Allocation Modelについて

    CTMは各トピックが同じレベルにあるため、トピック間の階層構造を表すことができません。
    自動車にとっての、セダンやトラック、あるいはお酒にとってのワインやビールのようにトピックに関しても階層構造があることは想像に難くありません。トピック間の関係・相関を一般的に表現するモデルで、トピック間の階層構造を基本として、パチンコ玉が落ちるように単語を生成します。パチンコ玉が落ちるというのは、向きが一方行の有向かつ非巡回ノードが連想されます。分布に関しても共役なので、ギブスサンプリングでサンプリングが可能です。
    2016/04/24の段階ではまだGensimでモデルの開発はなされていないようです。
    Pachinko Allocation Model
    ちなみに、論文はこちらです。
    Pachinko Allocation: DAG-Structured Mixture Models of Topic Correlations

    Relational Topic Models(RTM)について

    文書の中身だけでなく、文書間のリンクの生成過程も同時に確率モデル化する手法。論文や特許データに対して活用できる。過去の購買行動に応じた、顧客のセグメント解析や商品のレコメンデーションに活用できるかもしれない。

    参考文献

    トピックモデル (機械学習プロフェッショナルシリーズ)
    トピックモデルによる統計的潜在意味解析 (自然言語処理シリーズ)
    Tokyo Webmining 46th 『トピックモデルことはじめ』
    machine_learning_python/topic.md

    統計数理研究所 H24年度公開講座 「確率的トピックモデル」サポートページ