LTR那點事—AUC及其與線上點擊率的關聯詳解

LTR(Learning To Rank)學習排序是一種監督學習(SupervisedLearning)的排序方法,現已經廣泛應用於信息索引,內容推薦,自然語言處理等多個領域。以推薦系統爲例,推薦一般使用多個子策略,但哪個策略更好?每個策略選出多少候選集?每個候選集呈現的順序如何排序?這些問題只能根據經驗進行選擇,隨着策略越來越多,上述問題對推薦效果的影響會越來越大。於是乎,人們很自然的想到了用機器學習(Machine Learning)瞭解決上述問題,至此LTR就出世和大家見面了。發展到現在,LTR已經形成較爲成熟的理論基礎,並且可以解決數據稀疏、過擬合等多種問題,在實際應用中取得較好的效果。

做過LTR的人都知道AUC是機器學習中非常重要的評估指標,AUC的提升會帶來線上點擊率的提升,其值越高越好,最大值爲1。那麼AUC到底是個什麼東東呢?爲什麼AUC的提升就一定會帶來點擊率的提升?本文就帶大家一起了解下AUC的概念及其與線上點擊率的關聯。

一、AUC概念與計算方法

AUC是Area Under Curve的縮寫,實際就是曲線下的面積。那麼這條曲線是什麼呢?AUC又要怎麼求呢?別急,聽我細細道來。

通常在訓練模型時,我們需要從日誌裏獲得某一天或者某幾天的數據作爲訓練集,選取另外某一天或者某幾天的作爲驗證集(通常訓練集時間先於驗證集時間)。日誌裏是一條一條的記錄(通常包括用戶標識、item標識、操作時間、操作類型等等),對於某一條記錄,有用戶點擊的我們標記爲1,代表用戶對當前的item感興趣,點擊觀看了(當然不考慮手抽點到的);對於展示但是用戶未點擊的我們標記爲0,代表用戶不感興趣。在LTR中,根據訓練集對模型進行訓練,訓練好的模型會爲驗證集的每一條記錄打分,那麼對於用戶行爲是點擊的記錄,我們希望得分高一些;而對於用戶行爲是不點擊的記錄,我們希望得分低一些,這樣預測分數就可以代表用戶對當前item的興趣大小。AUC就是用來比較有點擊記錄的得分與無點擊記錄的得分是否滿足上述關係的指標。這裏需要強調的是AUC僅僅用來比較有點擊與無點擊的記錄,不用來比較有點擊之間或者無點擊之間的關係(比如A記錄中用戶點擊並且對該次展示極感興趣,而B記錄中用戶對該次展示沒有興趣只是不小心點到,所以A記錄得分理應高於B,但這不屬於AUC的考慮範圍)。

說了這麼多,大家可能還不是很明白,到底AUC怎麼計算呢?舉個例子如下:

下表中有如下6條記錄:

這裏我們無法預知同爲用戶點擊過的A和D兩條記錄到底誰的得分更應該高一些,也無法預知其餘四條未點擊的記錄誰的得分應該更低一些。但是根據AUC的概念,A和D的得分應該高於其餘四條記錄中的任意一條。下面開始計算AUC的流程:

我們需要將記錄A、D分別與另外四條記錄比較,一共有8組對比。這裏計算AUC的分母就是8;那麼共有多少組對比是滿足要求的呢?記錄A比另外四組(B、C、E、F)得分都高,記錄D只比另外二組(E、F)得分都高,所以八組對比中滿足條件的只有6組,那麼分子就是6。所以我們計算得到的AUC就是6/8 = 0.75。簡單吧?好像確實不是很難耶!

下面對AUC的計算做一個簡單總結:通過模型對驗證集中的每條記錄做一個預測。這些記錄中有點擊行爲的記錄數爲M,未點擊的記錄數爲N,則用有M*N組對比。對於有點擊的M條記錄分別記爲p1、p2、……pM,對於其中任意一條記錄Pi,其預測分數高於未點擊記錄的個數爲記做,則滿足條件的對比組爲的累積和,除以M*N就是本次記錄組中AUC的結果。我們需要對比有點擊行爲的記錄與無點擊行爲的記錄,要求有點擊行爲記錄的預測分數高於無點擊行爲記錄的預測分數,AUC就是衡量滿足要求的對比數佔總對比數的指標。

二、小樣,穿個馬甲就不認識你了?!

上一小節中介紹瞭如何計算AUC,相信大家已經掌握了原理和計算方法。其實網上大部分介紹AUC的文章如出一轍,但是好像都不是上述方法,二者一樣嗎?難不成AUC有兩種計算方式?下面就進行一下對比,看看到底咋回事。

看過網上介紹AUC的同學一定都知道下面四個概念:

  • True negative(TN),稱爲真陰,表明實際是負樣本預測成負樣本的樣本數

  • False positive(FP),稱爲假陽,表明實際是負樣本預測成正樣本的樣本數

  • False negative(FN),稱爲假陰,表明實際是正樣本預測成負樣本的樣本數

  • True positive(TP),稱爲真陽,表明實際是正樣本預測成正樣本的樣本數

大家可能看的有點頭暈,下面在用更通俗的語言描述下:

  1. TN,預測是負樣本,預測對了

  2. FP,預測是正樣本,預測錯了

  3. FN,預測是負樣本,預測錯了

  4. TP,預測是正樣本,預測對了

前文已經說了AUC實際是曲線下的面積,那麼這條曲線是什麼呢?有了上述概念我們就可以畫出這條曲線了,其橫座標是False Positive Rate(假陽率,FPR),縱座標是True Positive Rate(真陽率,TPR),那這兩個指標怎麼算呢?公式如下:

到現在爲止,基本畫AUC曲線所需要了解的概念都描述了,大家暈了嗎?反正我是暈了,這和上一節介紹的計算AUC的方法是一樣的嗎?

答案直接而有堅定:是!!!

那麼該如何理解呢?說到這裏就不得不提閥值的概念。對於某個二分類分類器來說,涉及最多的閥值就是0.5了,對於每一次預測大於0.5的認爲是正樣本,小於0.5的認爲是負樣本。那麼AUC曲線中閥值是多少呢?這裏的閾值很多,我們可以把下述曲線理解成一個個小長方形,每一個長方形對應於每一個閥值。下面描述如何選取閥值與畫出這些小長方形。

這裏仍然假定共M有個正樣本(用戶點擊)與N個負樣本(用戶未點擊),分別對個M正樣本與N個負樣本的預測分數進行降序排列,對應的序號分別爲,對應的預測分數分別爲。這裏閾值就是負樣本分數。首先選取作爲閥值(分數>=閥值爲正樣本,<閥值爲負樣本),則此時負樣本中僅有的p1滿足預測分數大於等於閥值(實際是等於),故假陽率爲;對應的正樣本預測分數有大於等於閥值,共個,真陽率,對應的第一個長方形的面積。接着選作爲閥值,此時假陽率,但對應於第二個長方形的寬還是(需減去前一個長方形的寬),正樣本預測分數中大於閥值共個。由於,則必有,這也解釋了曲線中y隨着x的增大而增大。此時真陽率,對應的第二個長方形的面積爲……將根據閾值劃分的各小長方形累加得到曲線下的面積也就是AUC,其表達形式爲,分子是滿足條件的對比組,分母是總對比組,形式與第一節介紹的計算AUC的表達式一模一樣!

這裏我們選取負樣本的得分作爲閥值,當然也可以選取正樣本的分數作爲閥值。則橫座標是False negative Rate(假陰率,FNR)縱座標是True Negative Rate(真陰率,TNR),對應公式如下:

對正負樣本預測分數進行升序排列,依次選取正樣本的分數作爲閥值,最後得到的結果與上述表達式一致。

至此,我們已經詳細描述瞭如何計算AUC,最後補上AUC的一般判斷標準

0.5~0.7:效果較低

0.7~0.9:效果不錯,可用於上線

0.9~1.0:效果超級好,但是一般情形下很難達到

 

三、AUC與線上點擊率的關聯

晚上加班回家洗完澡,打開**頭條,翻到推薦頁面,映入眼簾的幾條推薦內容都是我特別感興趣的,好了不往下面翻了,把當前頁面的看完再說;翻着翻着,沒啥意思了,再看看時間不早了,算了睡吧明天還要早起呢。不看了睡覺吧 zzz。

通過上述可以看出大家對於推薦欄靠前的內容更容易點擊,當然不排除有些人喜歡先翻個幾下子在看的,如果這樣那麼LTR可能反而會降低客戶體驗,所以LTR優化時我們是不考慮這部分用戶。LTR就是對於某一個特定用戶,根據模型對召回的不同item的預測分數進行降序排列,如果AUC足夠高,則根據預測分數進行排序的結果與用戶真實興趣排序的結果相符,這也是爲什麼我們要提高AUC的原因。將用戶感興趣的item優先展示,可以提高用戶的點擊數同時降低入屏但是不點擊的數目,從而提高點擊率,產生較好的用戶體驗。

 

四、AUC真的好嗎?

通過上面我們可以看出,AUC正比於線上點擊率。現在市面上各種app都在追求用戶流量,高質量的推薦內容可以獲得更好的用戶體驗從而獲得更多的用戶流量。所以線下訓練模型是一般追求AUC的提升,但AUC高就一定好嗎,請看下面兩組數據對比:

第一組:

根據之前介紹的AUC計算方式可以得到這一組數據的AUC爲

第二組:

根據之前介紹的AUC計算方式可以得到這一組數據的AUC爲

通過對比AUC大家顯然覺得第二組數據對應的模型性能更好。

真的嗎?

真的是這樣嗎?

對於第一組數據,表中分別包含甲乙兩個用戶,對於這兩個用戶而言,預測分數大小關係完全符合用戶點擊行爲與否,故模型在這兩個用戶上已不需要優化。對於第二組數據,丁用戶各條記錄的預測分數大小關係不完全符合用戶點擊行爲(有點擊行爲的E預測分數低於無點擊行爲的F),故第二組數據對應的模型還需要優化。對比之前AUC,第二組的模型優於第一組,這裏矛盾到底在哪裏呢?分析如下:

第一組數據中共有2個正樣本,6個負樣本共12組對比,不滿足條件的共兩組(用戶甲-itemB,用戶乙-itemE), (用戶甲-itemC,用戶乙-itemE),可以發現這兩組數據都是比較不同的用戶,我們做LTR的目的是爲了對每個用戶推薦的item正確排序,不必理會不同用戶間的item。表1可以看出用戶甲的預測分數普遍偏高而用戶乙的分數普遍偏低,這種趨勢與item無關,僅僅取決於用戶,所以比較不同用戶之間的預測分數是沒有意義的。如果我們用AUC來作爲最終的判斷標準會出現表1的情形,用戶甲乙都滿足LTR的排序,但是整體的AUC還是小於1。

上面說明了AUC作爲LTR的指標的侷限性,那麼該如何選取呢。還是以表1爲例,單獨看甲乙兩個用戶,用戶甲的AUC是1,用戶乙的AUC也是1,則總體AUC肯定是1。這裏阿里巴巴提出了GAUC的概念,g是group的縮寫,顧名思義就是分組AUC,分組的依據是用戶名,根據不同的用戶名分組得到不同用戶的AUC,然後在加權平均得到最終的GAUC。這樣就避免了不同用戶之間的比較,消除了用戶間差異。

現在剩下最後一個問題了,算出了不同用戶的AUC如何進行加權得到GAUC呢。這裏阿里巴巴也沒有給出確切的公式,可以依據各用戶的點擊數或者是各用戶的展示數。下面做一個簡單的公式推導:

以推薦系統來說,LTR是爲了提高用戶的點擊率,這裏用戶點擊用表示,展示數目用表示。假設有三個用戶,點擊數分別爲,展示數目分別爲點擊率分別爲,則總體可表示爲

可以看出總體點擊率是不同用戶的根據展示數進行加權得到的,所以不同用戶根據展示數加權得到GAUC是合理的。

但是這裏不能忽略一個問題,AUC是預測分數滿足大小關係的正負對佔總的正負對的比值,對比數越多,AUC就越準確。假如兩個用戶都展示了10條,其中一個用戶點擊了1條,那麼該用戶對應的AUC有9組對比;另一個用戶點擊了5條,那麼該用戶對應的AUC有25組對比,顯然計算GAUC時後一個用戶對應的AUC的權重應該大一點。這裏全球領先的文本職能處理專家—達觀數據公司提出從從AUC的定義出發來計算GAUC。這裏將各用戶計算AUC的分子相加作爲計算GAUC的分子,各用戶計算AUC的分母相加作爲計算GAUC的分母,由於模型不會偏向於任意用戶,故這種計算GAUC的方法是較爲準確的。大家也可以在實際工程中應用。

 

總結

本文首先介紹了AUC的基本概念和計算方法,同時對比了兩種計算AUC的方法,其不過是最終表達式的兩種展現形式。接着描述了AUC與線上點擊率的關聯。最後補充了AUC的不足同時引出了GAUC,用以消除用戶間的差異,同時提出了一種新的計算GAUC的方法。

 

關於作者

徐祥:達觀數據智能推薦算法工程師,負責達觀數據智能推薦算法中模型的優化,對策略召回的結果進行重排序。對特徵工程,模型優化有深入研究。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章