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

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

作過LTR的人都知道AUC是機器學習中很是重要的評估指標,AUC的提高會帶來線上點擊率的提高,其值越高越好,最大值爲1。那麼AUC究竟是個什麼東東呢?爲何AUC的提高就必定會帶來點擊率的提高?本文就帶你們一塊兒瞭解下AUC的概念及其與線上點擊率的關聯。app

1、AUC概念與計算方法

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

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

說了這麼多,你們可能還不是很明白,到底AUC怎麼計算呢?舉個例子以下:學習

下表中有以下6條記錄:優化

2.png

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

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

下面對AUC的計算作一個簡單總結:經過模型對驗證集中的每條記錄作一個預測。這些記錄中有點擊行爲的記錄數爲M,未點擊的記錄數爲N,則用有M*N組對比。對於有點擊的M條記錄分別記爲p一、p二、……pM,對於其中任意一條記錄Pi,其預測分數高於未點擊記錄的個數爲記作3.png,則知足條件的對比組爲4.png的累積和,除以M*N就是本次記錄組中AUC的結果。咱們須要對比有點擊行爲的記錄與無點擊行爲的記錄,要求有點擊行爲記錄的預測分數高於無點擊行爲記錄的預測分數,AUC就是衡量知足要求的對比數佔總對比數的指標。日誌

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

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

看過網上介紹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),那這兩個指標怎麼算呢?公式以下:5.png
6.png
到如今爲止,基本畫AUC曲線所須要瞭解的概念都描述了,你們暈了嗎?反正我是暈了,這和上一節介紹的計算AUC的方法是同樣的嗎?

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

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

這裏仍然假定共M有個正樣本(用戶點擊)與N個負樣本(用戶未點擊),分別對個M正樣本與N個負樣本的預測分數進行降序排列,對應的序號分別爲7.png,對應的預測分數分別爲8.png。這裏閾值就是負樣本分數9.png。首先選取做爲閥值(分數>=閥值爲正樣本,<閥值爲負樣本),則此時負樣本中僅有的p1知足預測分數大於等於閥值(實際是等於),故假陽率爲10.png;對應的正樣本預測分數有11.png大於等於閥值,共12.png個,真陽率13.png,對應的第一個長方形的面積14.png。接着選15.png做爲閥值,此時假陽率16.png,但對應於第二個長方形的寬仍是17.png(需減去前一個長方形的寬),正樣本預測分數中18.png大於閥值共19.png個。因爲20.png,則必有21.png,這也解釋了曲線中y隨着x的增大而增大。此時真陽率22.png,對應的第二個長方形的面積爲23.png……將根據閾值劃分的各小長方形累加獲得曲線下的面積也就是AUC,其表達形式爲24.png,分子是知足條件的對比組,分母是總對比組,形式與第一節介紹的計算AUC的表達式如出一轍!

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

25.png

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

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

0.5~0.7:效果較低

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

0.9~1.0:效果超級好,可是通常情形下很難達到

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

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

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

4、AUC真的好嗎?

經過上面咱們能夠看出,AUC正比於線上點擊率。如今市面上各類app都在追求用戶流量,高質量的推薦內容能夠得到更好的用戶體驗從而得到更多的用戶流量。因此線下訓練模型是通常追求AUC的提高,但AUC高就必定好嗎,請看下面兩組數據對比:

第一組:

26.png根據以前介紹的AUC計算方式能夠獲得這一組數據的AUC爲27.png

第二組:

28.png根據以前介紹的AUC計算方式能夠獲得這一組數據的AUC爲29.png

經過對比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是爲了提升用戶的點擊率,這裏用戶點擊用30.png表示,展現數目用31.png表示。假設有三個用戶,點擊數分別爲32.png,展現數目分別爲33.png點擊率分別爲34.png,則整體可表示爲35.png

能夠看出整體點擊率是不一樣用戶的根據展現數進行加權獲得的,因此不一樣用戶根據展現數加權獲得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的方法。

關於做者

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