overcoming browser cookie churn with clustering in wsdm2012 reading

36
Overcoming Browser Cookie Churn with Clustering Anirban Dasgupta, Maxim Gurevich, Liang Zhang, Belle Tseng, Achint O. Thomas. Yahoo! Research WSDM2012勉強会 twitter: @y_benjo http://d.hatena.ne.jp/repose/

Upload: ybenjo

Post on 26-Jun-2015

3.481 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Overcoming browser cookie churn with clustering in wsdm2012 reading

Overcoming Browser Cookie Churn with Clustering

Anirban Dasgupta, Maxim Gurevich, Liang Zhang, Belle Tseng, Achint O. Thomas.

Yahoo! Research

WSDM2012勉強会twitter: @y_benjo

http://d.hatena.ne.jp/repose/

Page 2: Overcoming browser cookie churn with clustering in wsdm2012 reading

概要

•クッキーが消えてしまうとユーザのトラッキングができない• Cookie Churn problem

•複数のクッキーをクラスタリングしてユーザを同定• グラフ彩色問題として解く

Page 3: Overcoming browser cookie churn with clustering in wsdm2012 reading

サイト運営としては

•匿名化されたユーザの行動取得やユーザエクスペリエンスを改善したい

•そのため,アクセスしたユーザにCookieと呼ばれる一意な識別子をブラウザに付与する

Page 4: Overcoming browser cookie churn with clustering in wsdm2012 reading

クッキーによって

•次の指標が計算できる• ユニークユーザ数

• ユーザの挙動

• Webサイトの人気度

•広告を出した際の影響力→インターネット企業にとって重要な収入源

Page 5: Overcoming browser cookie churn with clustering in wsdm2012 reading

問題点

•クッキーは永久に残らない• ユーザによって削除されたり

• ブラウザが定期的に消す設定になっていたり

• クッキー自身に設定された有効期間切れ

•よってクッキーベースの集計では過大にカウントしてしまう

Page 6: Overcoming browser cookie churn with clustering in wsdm2012 reading

更なる問題

•コールドスタート問題• 少ない情報しか持たないユーザには適切な案内ができ

ない

•広告主がreach-frequencyを把握できない• reach: キャンペーンによって何人が広告を見たか

• freq: キャンペーンに何度遭遇したか

•より正確なユーザ数の近似が必要

Page 7: Overcoming browser cookie churn with clustering in wsdm2012 reading

既存手法(1)

• comScore, Nielsen•モニタを雇用し,ユニークユーザを推定• (モニタのアクセスログの比から推定?)

• Fomitchev [1]• IPベースのログとクッキーベースのログから推定•これらでは推定が粗すぎる

Page 8: Overcoming browser cookie churn with clustering in wsdm2012 reading

既存研究(2)

• Browser fingerprints [2]• OS,ブラウザ,UA,解像度などで一意な情報を取得

• 今試したらブラウザのプラグインやシステムフォントなども取得

• それらの情報に対するアクセス権限を求めるため実行コストが高い

• それぞれの特徴が独立であるという仮定に基づいている→大規模サイトでは衝突しやすい

Page 9: Overcoming browser cookie churn with clustering in wsdm2012 reading

方針

•以下の情報(以降: 制約)に着目しクッキーをユーザ単位でクラスタリング• クッキーの寿命

• 同じユーザによるクッキーの寿命は重ならない

• OS,ブラウザ

• 同じユーザによってこれらの属性は変化しない(仮定)

Page 10: Overcoming browser cookie churn with clustering in wsdm2012 reading

課題

•スケーラビリティ

•クラスタ数(=ユーザ数)が未知

•制約はクッキーに対し二乗で発生する• ボトルネック

•クッキーの寿命が短いため,意味のある情報を取り出すのが困難

Page 11: Overcoming browser cookie churn with clustering in wsdm2012 reading

解決策 

•寿命を用いてinterval graphとして表現• グラフ彩色問題としてgreedyに解ける

•クッキーの情報も用いて拡張グラフ彩色問題として解く• その際用いる類似度の学習において分類問題を解く

• L1/L2ノルム,ベイズ因子による2つの類似度を提案

Page 12: Overcoming browser cookie churn with clustering in wsdm2012 reading

プライバシーについて

•今回用いるクッキーは完全に匿名化されている• ユーザの詳細な情報や登録情報などとは紐付けられて

いない

• IPベースの特徴も用いているが完全にハッシュ化され,サブネットの情報なども用いていない

• むしろこの研究によってプライバシーと分析のトレードオフに貢献できるのでは

Page 13: Overcoming browser cookie churn with clustering in wsdm2012 reading

•辺 Eと頂点Vを持つグラフG(V, E)において各頂点v_iに対して     があるとき,

Interval graph

……?

Page 14: Overcoming browser cookie churn with clustering in wsdm2012 reading

実例

•クッキーからInterval graphを構築• 図のように寿命が重なるクッキー同士をつないだグラ

•グラフ彩色: 隣り合うノードが違う色になるようにグラフを塗る問題

s_i t_i

s_j t_i

寿命

寿命

t

Cookie i

Cookie j

Page 15: Overcoming browser cookie churn with clustering in wsdm2012 reading

最もシンプルな彩色

• O(|V|log(|V| + |E|))でgreedyに計算可能•クッキーを生成された時間でソートし• overlapしなければそのクラスタ(色)に割り振る

• overlapすれば新しいクラスタ(色)に割り振る

Page 16: Overcoming browser cookie churn with clustering in wsdm2012 reading

def IntervalColor(intervals) colors = { }

intervals.sort.each do |c| if colors.not_overlap?(c) colors[color].push c else colors[new_color].push c

return colors

擬似コード

Page 17: Overcoming browser cookie churn with clustering in wsdm2012 reading

* Browser Model•寿命を用いたグラフ彩色で解く事の妥当性を示す• 証明などは元論文参照

•簡単に説明を行う• ユーザモデルの仮定,データとの比較→妥当性を示す

• ↑の仮定を用い,ユニークユーザ数がグラフ彩色における色数の良い推定値になる事を証明

•聞き流しても構わない

Page 18: Overcoming browser cookie churn with clustering in wsdm2012 reading

* ユーザモデルの仮定

•ユーザごとに次のパラメータを仮定する• λ: アクセスにおける時間間隔はλの指数分布に従う

• p: アクセス毎にpの確率でクッキーを削除する

•あるユーザの持つクッキーd_iの寿命がλpの指数分布に従う

Page 19: Overcoming browser cookie churn with clustering in wsdm2012 reading

* 実データでの検証

単一モデル

実測値

5モデル混合

5つのモデルを混合することによりいい感じにモデリングできている

Page 20: Overcoming browser cookie churn with clustering in wsdm2012 reading

* 彩色問題への妥当性

•「定数ε及び真のユーザ数kについて,少なくとも(1-ε)k色でグラフを塗ることができる」• 大体いい感じに推定できる

•詳細はTheorem 1読んでください……

Page 21: Overcoming browser cookie churn with clustering in wsdm2012 reading

実際に解いていく

•先述のアルゴリズムでは時間間隔しか用いることができない

•他属性も用いてクラスタリングを行う• 拡張グラフ彩色アルゴリズム

Page 22: Overcoming browser cookie churn with clustering in wsdm2012 reading

•sim(C, C’)• クッキーの集合間における類似度を返す関数

•I(C)• クラスタCにおける最も若い寿命

•目的関数:

いくつか定義

Page 23: Overcoming browser cookie churn with clustering in wsdm2012 reading

def ClusterBrowser(cookies, t) clusters = { } cookies.sort.each do |c| A = clusters.select{|C|I(c) ∩ I(C) = empty} C* = argmax C ∈ A sim(C, {c})

if sim(C*, {c}) >= t clusters[C*].push c else clusters.new(c)

return clusters

擬似コード

Page 24: Overcoming browser cookie churn with clustering in wsdm2012 reading

スケールするために

•クラスタの候補を選ぶ際,(IP, OS, ブラウザ)の特徴が等しいクッキーを持つもののみを候補にする

•この考えを二部グラフで表現するとクラスタリングが並列実行可能

Page 25: Overcoming browser cookie churn with clustering in wsdm2012 reading

二部グラフC1

C2

C3

C4

<aaa, Win7, IE6>

<ccc, 10.5, safari>

<ddd, Vista, IE6>

<bbb, 10.7, w3m>

<aaa, Win7, IE6>

<aaa, Win7, IE6>

<ccc, 10.5,

safari>

<bbb, 10.7, w3m>

Page 26: Overcoming browser cookie churn with clustering in wsdm2012 reading

連結成分抽出C1

C2

C3

C4

<aaa, Win7, IE6>

<ccc, 10.5, safari>

<ddd, Vista, IE6>

<bbb, 10.7, w3m>

<aaa, Win7, IE6>

<aaa, Win7, IE6>

<ccc, 10.5,

safari>

<bbb, 10.7, w3m>

Page 27: Overcoming browser cookie churn with clustering in wsdm2012 reading

def ClusterBrowserParallel(cookies, t) g = bi_graph.new cookies.each do |c| g.edge(c, <c.ip, c.os, c.browser>)

G{G_1, ..., G_k} = g.connect_componets G.parallel_each do |G_i| B_i = ClusterBrowser(G_i, t)

return {B_1, ..., B_k}.union

擬似コード

Page 28: Overcoming browser cookie churn with clustering in wsdm2012 reading

特徴量

•次の問題は類似度sim(C, C’)

• xはクラスタCのセントロイド

•特徴量s_iをこれから定義していく• β = 1 でユークリッド距離

•β_iをまともに学習させるとマハラビノス距離(M=対角行列とした時の)

Page 29: Overcoming browser cookie churn with clustering in wsdm2012 reading

•ベイズ因子•多変量な特徴間の距離に(logを取って)使う• 例: クラスタに含まれるipアドレスと踏まれたページの

組み合わせからなる特徴ベクトル

新たな距離尺度

Page 30: Overcoming browser cookie churn with clustering in wsdm2012 reading

特徴 (1)

•Lifetime gap • 2つのクラスタのクッキーの寿命の差

•Lifetime length • クッキーの寿命の長さ

•# of page vies • 何度そのクッキーによってページが見られたか(のlog)

Page 31: Overcoming browser cookie churn with clustering in wsdm2012 reading

* 特徴 (2)•OS type• 本来はcannot-linkの制約であるがベイズ因子を使って特

徴化

• 事前分布として多項分布を仮定

• IP address usage pattern• クラスタ内のクッキーと踏まれたページのベクトル

• 事前分布として多項分布,その事前分布にディリクレ

•category visiting pattern• IP addressと同様

Page 32: Overcoming browser cookie churn with clustering in wsdm2012 reading

βの学習

•↑式のようにロジスティック回帰でβを学習する

•教師データとして用いるのはY!ツールバー利用者のユーザ情報とクッキーの対

Page 33: Overcoming browser cookie churn with clustering in wsdm2012 reading

結果 (1)

Page 34: Overcoming browser cookie churn with clustering in wsdm2012 reading

結果 (2)

Page 35: Overcoming browser cookie churn with clustering in wsdm2012 reading

結論

•クッキーからユーザの予測ができた

Page 36: Overcoming browser cookie churn with clustering in wsdm2012 reading

参考文献

• [1] Method and System for Estimating Unique Visitors for Internet Sites

• [2] https://panopticlick.eff.org/