广告分析
廣告分析
廣告點擊率預測中的幾點問題
@zen.wan
? ? ? ?【問題來源】LR模型將會用于對廣告展現時,根據點擊率,對展現的廣告做重排序。具體的做法是:
- 根據一個月該行業的日志,找到每次搜索時,當時展現的所有廣告(一次展現固定出三條廣告)。他們把每個廣告的每次展現當作樣本,當時是否點擊為LR的y值:0或者1。這樣一共獲得了50w個樣本(比如在一次搜索queryA下展現了三條廣告a,b,c,其實a被點擊了一次,那么這次搜索一共對應3個樣本,其中第一個樣本的y為1,后面兩個樣本的y為0)
- 對樣本做均勻抽樣分成兩份,70%為訓練樣本,30%為測試樣本,抽取了100種特征,其中一個特征是當時廣告在網頁中的排序(1,2或者3)
- 使用公司的LR在訓練樣本上進行訓練,在測試樣本中進行檢測, 認為LR模型給出的p即為廣告的點擊率,其中:
下面我舉個例子來說明one-hot encoding:
user_gender=gender=[“man”,”female”],user_city = [“shanghai”,”hefei”,”wuhan”] ,ad_rank = [1,2,3] 則feature_set = [“man”,”female”,”shanghai”,”hefei”,”wuhan”,rank_1,rank_2,rank_3],假如有一條記錄是:一位上海的男同學對第二個廣告進行了點擊,則one-hot endoing的結果就是[1,0,1,0,0,0,1,0].
實際開發中,我們需要掃描兩次數據,采用稀疏矩陣存儲,第一次生成feature_set,第二次再進特征編碼。
正如我們在這個ROC曲線的示例圖中看到的那樣,ROC曲線的橫坐標為false positive rate(FPR),縱坐標為true positive rate(TPR)。下圖中詳細說明了FPR和TPR是如何定義的。
接下來我們考慮ROC曲線圖中的四個點和一條線。第一個點,(0,1),即FPR=0, TPR=1,這意味著FN(false negative)=0,并且FP(false positive)=0。Wow,這是一個完美的分類器,它將所有的樣本都正確分類。第二個點,(1,0),即FPR=1,TPR=0,類似地分析可以發現這是一個最糟糕的分類器,因為它成功避開了所有的正確答案。第三個點,(0,0),即FPR=TPR=0,即FP(false positive)=TP(true positive)=0,可以發現該分類器預測所有的樣本都為負樣本(negative)。類似的,第四個點(1,1),分類器實際上預測所有的樣本都為正樣本。經過以上的分析,我們可以斷言,ROC曲線越接近左上角,該分類器的性能越好。
AUC(Area Under Curve)被定義為ROC曲線下的面積,顯然這個面積的數值不會大于1。又由于ROC曲線一般都處于y=x這條直線的上方,所以AUC的取值范圍在0.5和1之間。使用AUC值作為評價標準是因為很多時候ROC曲線并不能清晰的說明哪個分類器的效果更好,而作為一個數值,對應AUC更大的分類器效果更好。
最簡便的計算規則如下:首先對score從大到小排序,然后令最大score對應的sample 的rank為n,第二大score對應sample的rank為n-1,以此類推。然后把所有的正類樣本的rank相加,再減去正類樣本的score為最 小的那M個值的情況。得到的就是所有的樣本中有多少對正類樣本的score大于負類樣本的score。然后再除以M×N。即 另外,特別需要注意的是,再存在score相等的情況時,對相等score的樣本,需要 賦予相同的rank(無論這個相等的score是出現在同類樣本還是不同類的樣本之間,都需要這樣處理)。具體操作就是再把所有這些score相等的樣本 的rank取平均。然后再使用上述公式。
參考文獻:
[1]李航.統計學習方法.清華大學大學出版社.
[2]ROC和AUC介紹以及如何計算AUC
[3]?AUC的計算方法總結
總結
- 上一篇: [推荐算法]ItemCF,基于物品的协同
- 下一篇: L1范数正则化