前回CVの分布を考えた記事を書いたところ、Facebookのコメントで論文を紹介していただいたので読んでみましたのでその話をざっくり解説したいと思います。
Olivier Chapelle(Criteoの中の人)のmodeling delayed feedback in display advertisingです。
以前このブログでも小笠原君が別の論文の紹介をしてくれています。
----------------
さて、今回のお題は前回に続いてCVについてです。
前回は代理店側にいる人がCVRの予測を集計された状態のデータから考えるときにどーすればよいのだろう?という事について書きました。
今回は媒体側(Criteo)がある人のCVする確率を予測するときにどーすればよいのだろうか?という事について書いていきます。
ここでも前回紹介したお題と同じ「Clickしたタイミングと、CVが発生するタイミングに差が生じる」という問題が発生します。
媒体側ではユーザー1人毎のデータを保持しているので、CVする確率を推定する際には、「こんな特徴を持っていて、こんな行動をしている人がCVする確率は~%」といったアウトプットを出すことになります。
もう少し言い換えると、あるユーザーの特徴・行動データを与えた時にそのユーザーがCVしてくれるであろう確率を返してくれる式を作りたいわけです。
ユーザーの特徴や行動のデータはビットリクエストなんかを用いて収集する事が出来、CVしたかしなかったかはCVポイントにタグを入れておけば収集する事が出来ます。
これらは普通に行われることなので、媒体は「こんな特徴を持ったユーザーがCVしていた・していなかった」というデータ毎日せっせとため込んでいることになります。
なので、媒体側としてはそのせっせとと貯めたデータを利用して特徴とCVするしないの関係を見つけて、式にしてしまえばよいわけです。
さてさて、「じゃぁそれでいいじゃん」って話になりそうなんですが、そうは問屋がおろしません。
先ほどさらっと書いた「せっせと貯めたデータを利用する」という部分に2つの問題が発生してしまいます。
1つは、データの鮮度の問題です。例えば1年前のデータから見つけた特徴とCVの関係性と、1か月前のデータから見つけた特徴とCVの関係性、どちらを優先して考えるべきでしょうか?
色々な可能性は考えられますが、その辺を置いておくとデータの鮮度が高い1か月前のデータの方を優先するのではないでしょうか?
この傾向は顕著らしく、新しいデータを利用する事が重要であるとされています。
もうひとつは、この記事のテーマである「ClickとCVのタイムギャップ」です。
クリックしたユーザーがCVするか否か?を予測するので、ここがネックになります。
例えばある業界では広告をクリックしてからCVするまでに平均2週間の時間差があるとします。
仮に10/1-10/31のデータを用いてCVの確率予測式を立てるとき、10/17以降にクリックをしているユーザーの50%以上においてCVの有無が適正にデータとして取得できていないことになります。
10/17にクリックしたユーザーの50%は10/31までにCVを行います。よって、これらのユーザーの特徴とCVの有無の関係は問題なく抽出が出来ます。
しかし、残りの50%は10/31以降にCVするので、10/31時点ではCVしていないユーザーとしてみなされてしまいます。
つまり、本当はCVしているはずのユーザーがデータ上ではしていない事になっているので、予測式の精度が下がってしまうという結果になってしまうわけです。
さて、少し考えてみればいくらかの回避策がありそうなのが解ります。
例えば、データの期間を調整してこういった「CVしているはずがデータ上でしてない」というデータの量を相対的に少なくして影響を小さくしてしまえばよいという方法です。
これは特定の条件下では非常に有効な対策だと思いますが、ネット広告の場合ではここでデータの鮮度の問題が出てきます。
CVの問題はデータが新しいほどより強くなり、鮮度の観点では新しいデータ程有用となり、これらでトレードオフが発生する事になります。
もし10/17までにクリックしているユーザーのみでデータを制限した場合、10/18以降のデータはすべて捨ててしまっているため、重要であるはずの最新のデータを無視してしまう事になります。
もしデータの鮮度が予測の精度に大きな影響がある場合にはここが問題となってしまいます。
ネット広告の場合ではキャンペーンの追加や停止が短期間で発生する為に、データの鮮度が非常に重要なファクターとなります。
よって、ここを無視して通るわけにはいきません。
そこで導入されたのが、CVの確率を予測する時に一緒にCVとClickの時間差も一緒に予測しちゃおうというアイデアです。
それっぽい言葉で書くと時間差も一緒にモデル化してしまおうという感じです。
これを行う事によって、CVしてない人が「そもそもしなそうな人」なのか「まだしてない人」なのかという判別を加えることが出来ます。
結果的にデータの期間を弄ることなく、上のトレードオフを解決する事が出来るわけです。
ちょっと簡略化して追加するとこんな感じです。
CVしない確率をさらに、後でもしないのか、後でするのか?っていう確率に詳細化しているわけですね。
めでたしめでたし。
----------------
やはり問題点を見つけて、それをどうにかこうにか考えてアイデアで解決するっていうのは読んでいるだけでも面白いものですね。
さて、このお話、広告代理店として参考する部分ってあるんでしょうか?
間違いなくCVの遅れを気にする必要があるでしょうというのが言えそうです。
でも同じアプローチを使うのは難しそうです。
計測ツールが入っている場合にはこの遅れの部分を集計して可視化してってのは出来るかと思います。
う~んどうすればいいのでしょうか?