Overcoming browser cookie churn with clustering in wsdm2012 reading
Transcript of 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/
概要
•クッキーが消えてしまうとユーザのトラッキングができない• Cookie Churn problem
•複数のクッキーをクラスタリングしてユーザを同定• グラフ彩色問題として解く
サイト運営としては
•匿名化されたユーザの行動取得やユーザエクスペリエンスを改善したい
•そのため,アクセスしたユーザにCookieと呼ばれる一意な識別子をブラウザに付与する
クッキーによって
•次の指標が計算できる• ユニークユーザ数
• ユーザの挙動
• Webサイトの人気度
•広告を出した際の影響力→インターネット企業にとって重要な収入源
問題点
•クッキーは永久に残らない• ユーザによって削除されたり
• ブラウザが定期的に消す設定になっていたり
• クッキー自身に設定された有効期間切れ
•よってクッキーベースの集計では過大にカウントしてしまう
更なる問題
•コールドスタート問題• 少ない情報しか持たないユーザには適切な案内ができ
ない
•広告主がreach-frequencyを把握できない• reach: キャンペーンによって何人が広告を見たか
• freq: キャンペーンに何度遭遇したか
•より正確なユーザ数の近似が必要
既存手法(1)
• comScore, Nielsen•モニタを雇用し,ユニークユーザを推定• (モニタのアクセスログの比から推定?)
• Fomitchev [1]• IPベースのログとクッキーベースのログから推定•これらでは推定が粗すぎる
既存研究(2)
• Browser fingerprints [2]• OS,ブラウザ,UA,解像度などで一意な情報を取得
• 今試したらブラウザのプラグインやシステムフォントなども取得
• それらの情報に対するアクセス権限を求めるため実行コストが高い
• それぞれの特徴が独立であるという仮定に基づいている→大規模サイトでは衝突しやすい
方針
•以下の情報(以降: 制約)に着目しクッキーをユーザ単位でクラスタリング• クッキーの寿命
• 同じユーザによるクッキーの寿命は重ならない
• OS,ブラウザ
• 同じユーザによってこれらの属性は変化しない(仮定)
課題
•スケーラビリティ
•クラスタ数(=ユーザ数)が未知
•制約はクッキーに対し二乗で発生する• ボトルネック
•クッキーの寿命が短いため,意味のある情報を取り出すのが困難
解決策
•寿命を用いてinterval graphとして表現• グラフ彩色問題としてgreedyに解ける
•クッキーの情報も用いて拡張グラフ彩色問題として解く• その際用いる類似度の学習において分類問題を解く
• L1/L2ノルム,ベイズ因子による2つの類似度を提案
プライバシーについて
•今回用いるクッキーは完全に匿名化されている• ユーザの詳細な情報や登録情報などとは紐付けられて
いない
• IPベースの特徴も用いているが完全にハッシュ化され,サブネットの情報なども用いていない
• むしろこの研究によってプライバシーと分析のトレードオフに貢献できるのでは
•辺 Eと頂点Vを持つグラフG(V, E)において各頂点v_iに対して があるとき,
Interval graph
……?
実例
•クッキーからInterval graphを構築• 図のように寿命が重なるクッキー同士をつないだグラ
フ
•グラフ彩色: 隣り合うノードが違う色になるようにグラフを塗る問題
s_i t_i
s_j t_i
寿命
寿命
t
Cookie i
Cookie j
最もシンプルな彩色
• O(|V|log(|V| + |E|))でgreedyに計算可能•クッキーを生成された時間でソートし• overlapしなければそのクラスタ(色)に割り振る
• overlapすれば新しいクラスタ(色)に割り振る
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
擬似コード
* Browser Model•寿命を用いたグラフ彩色で解く事の妥当性を示す• 証明などは元論文参照
•簡単に説明を行う• ユーザモデルの仮定,データとの比較→妥当性を示す
• ↑の仮定を用い,ユニークユーザ数がグラフ彩色における色数の良い推定値になる事を証明
•聞き流しても構わない
* ユーザモデルの仮定
•ユーザごとに次のパラメータを仮定する• λ: アクセスにおける時間間隔はλの指数分布に従う
• p: アクセス毎にpの確率でクッキーを削除する
•あるユーザの持つクッキーd_iの寿命がλpの指数分布に従う
* 実データでの検証
単一モデル
実測値
5モデル混合
5つのモデルを混合することによりいい感じにモデリングできている
* 彩色問題への妥当性
•「定数ε及び真のユーザ数kについて,少なくとも(1-ε)k色でグラフを塗ることができる」• 大体いい感じに推定できる
•詳細はTheorem 1読んでください……
実際に解いていく
•先述のアルゴリズムでは時間間隔しか用いることができない
•他属性も用いてクラスタリングを行う• 拡張グラフ彩色アルゴリズム
•sim(C, C’)• クッキーの集合間における類似度を返す関数
•I(C)• クラスタCにおける最も若い寿命
•目的関数:
いくつか定義
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
擬似コード
スケールするために
•クラスタの候補を選ぶ際,(IP, OS, ブラウザ)の特徴が等しいクッキーを持つもののみを候補にする
•この考えを二部グラフで表現するとクラスタリングが並列実行可能
二部グラフ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>
連結成分抽出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>
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
擬似コード
特徴量
•次の問題は類似度sim(C, C’)
• xはクラスタCのセントロイド
•特徴量s_iをこれから定義していく• β = 1 でユークリッド距離
•β_iをまともに学習させるとマハラビノス距離(M=対角行列とした時の)
•ベイズ因子•多変量な特徴間の距離に(logを取って)使う• 例: クラスタに含まれるipアドレスと踏まれたページの
組み合わせからなる特徴ベクトル
新たな距離尺度
特徴 (1)
•Lifetime gap • 2つのクラスタのクッキーの寿命の差
•Lifetime length • クッキーの寿命の長さ
•# of page vies • 何度そのクッキーによってページが見られたか(のlog)
* 特徴 (2)•OS type• 本来はcannot-linkの制約であるがベイズ因子を使って特
徴化
• 事前分布として多項分布を仮定
• IP address usage pattern• クラスタ内のクッキーと踏まれたページのベクトル
• 事前分布として多項分布,その事前分布にディリクレ
•category visiting pattern• IP addressと同様
βの学習
•↑式のようにロジスティック回帰でβを学習する
•教師データとして用いるのはY!ツールバー利用者のユーザ情報とクッキーの対
結果 (1)
結果 (2)
結論
•クッキーからユーザの予測ができた
参考文献
• [1] Method and System for Estimating Unique Visitors for Internet Sites
• [2] https://panopticlick.eff.org/