1 離線指標
1.1 LogLoss
1.1.1 KL散度
logloss使用KL散度來計算。設樣本的真實分布為P,預測分布為Q,則KL散度定義如下:
這里可以通俗地把KL散度理解為相同事件空間里兩個概率分布的相異情況。KL散度越小,預測分布越接近真實分布。
KL散度的物理意義是:使用分布Q來對真實分布為P的事件進行編碼,導致平均編碼長度增加了多少。具體解釋可見百度和知乎。
1.1.2 CTR中KL散度的計算
CTR預估中,上面的概率分布為二項分布。設真實的點擊率是tctr,預測的點擊率是pctr。因此真實的二項分布P是(tctr,1-tctr),預測的二項分布Q是(pctr,1-pctr)。因此KL散度公式可以寫成如下:
tctr可以通過統計得出,表示為 tctr = click / impression。則KL散度可以變形如下:
因此,計算logloss的偽代碼如下:
1.2 AUC
1.2.1 二分類的常用評價指標
CTR預估是一個二分類問題。二分類問題的評價指標有FP rate,TP rate,准確率accuracy,精確率precision,召回率recall,分別定義如下:
其中,precision表示的是預測為陽性的樣本中有多少是預測對的,recall表示有多少陽性樣本被預測了出來,這二者通常是此消彼長,需要根據具體場合看用哪個指標。
accuracy表示預測准確的占所有的樣本的比例。
Roc圖表示的橫坐標是Fp rate, 縱坐標是Tp rate。一個分類器的Fp rate越小,Tp rate越大,這個分類器就越好,對應在ROC圖中就是靠近左上角。最完美的點是(0,1),最差的點是(1,0)。
如上所示,D是最好的,然后是A,B,然后是C,然后是F。AB之間比較就不好說了。
1.2.2 ROC曲線
由於預測值是一個評分,還要通過選定一個閾值來將它划分成1還是0。我們按照預測值對樣本降序排列,並且從上到下以預測值為閾值:
可以看出如果閾值選的不同,TP rate和FP rate是不同的。每選一個閾值,就能在ROC圖上確定一個點,這樣就能得到一條ROC曲線:
1.2.3 AUC
AUC是ROC曲線與橫坐標軸圍成的面積。數學上可以證明,AUC值等於一個概率,即在前面已經排序的樣本列表中,隨機選取一個正樣本,再隨機選取一個負樣本,正樣本排在負樣本之前的概率。即AUC表征了正樣本排在負樣本前面的能力,並且與閾值選取無關,而與模型本身有關。
1.2.4 AUC的計算