LTR(Learning To Rank)學習排序是一種監督學習(SupervisedLearning)的排序方法,現已經廣泛應用於資訊索引,內容推薦,自然語言處理等多個領域。以推薦系統為例,推薦一般使用多個子策略,但哪個策略更好?每個策略選出多少候選集?每個候選集呈現的順序如何排序?這些問題只能根據經驗進行選擇,隨著策略越來越多,上述問題對推薦效果的影響會越來越大。於是乎,人們很自然的想到了用機器學習(Machine Learning)瞭解決上述問題,至此LTR就出世和大家見面了。發展到現在,LTR已經形成較為成熟的理論基礎,並且可以解決資料稀疏、過擬合等多種問題,在實際應用中取得較好的效果。
做過LTR的人都知道AUC是機器學習中非常重要的評估指標,AUC的提升會帶來線上點選率的提升,其值越高越好,最大值為1。那麼AUC到底是個什麼東東呢?為什麼AUC的提升就一定會帶來點選率的提升?本文就帶大家一起了解下AUC的概念及其與線上點選率的關聯。
一、AUC概念與計算方法
AUC是Area Under Curve的縮寫,實際就是曲線下的面積。那麼這條曲線是什麼呢?AUC又要怎麼求呢?別急,聽我細細道來。
說了這麼多,大家可能還不是很明白,到底AUC怎麼計算呢?舉個例子如下:
下表中有如下6條記錄:
這裡我們無法預知同為使用者點選過的A和D兩條記錄到底誰的得分更應該高一些,也無法預知其餘四條未點選的記錄誰的得分應該更低一些。但是根據AUC的概念,A和D的得分應該高於其餘四條記錄中的任意一條。下面開始計算AUC的流程:
二、小樣,穿個馬甲就不認識你了?!
看過網上介紹AUC的同學一定都知道下面四個概念:
True negative(TN),稱為真陰,表明實際是負樣本預測成負樣本的樣本數 False positive(FP),稱為假陽,表明實際是負樣本預測成正樣本的樣本數 False negative(FN),稱為假陰,表明實際是正樣本預測成負樣本的樣本數 True positive(TP),稱為真陽,表明實際是正樣本預測成正樣本的樣本數
大家可能看的有點頭暈,下面在用更通俗的語言描述下:
TN,預測是負樣本,預測對了 FP,預測是正樣本,預測錯了 FN,預測是負樣本,預測錯了 TP,預測是正樣本,預測對了
前文已經說了AUC實際是曲線下的面積,那麼這條曲線是什麼呢?有了上述概念我們就可以畫出這條曲線了,其橫座標是False Positive Rate(假陽率,FPR),縱座標是True Positive Rate(真陽率,TPR),那這兩個指標怎麼算呢?公式如下:
到現在為止,基本畫AUC曲線所需要了解的概念都描述了,大家暈了嗎?反正我是暈了,這和上一節介紹的計算AUC的方法是一樣的嗎?
答案直接而有堅定:是!!!
那麼該如何理解呢?說到這裡就不得不提閥值的概念。對於某個二分類分類器來說,涉及最多的閥值就是0.5了,對於每一次預測大於0.5的認為是正樣本,小於0.5的認為是負樣本。那麼AUC曲線中閥值是多少呢?這裡的閾值很多,我們可以把下述曲線理解成一個個小長方形,每一個長方形對應於每一個閥值。下面描述如何選取閥值與畫出這些小長方形。
對正負樣本預測分數進行升序排列,依次選取正樣本的分數作為閥值,最後得到的結果與上述表示式一致。
至此,我們已經詳細描述瞭如何計算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為
真的嗎?
真的是這樣嗎?
對於第一組資料,表中分別包含甲乙兩個使用者,對於這兩個使用者而言,預測分數大小關係完全符合使用者點選行為與否,故模型在這兩個使用者上已不需要優化。對於第二組資料,丁使用者各條記錄的預測分數大小關係不完全符合使用者點選行為(有點選行為的E預測分數低於無點選行為的F),故第二組資料對應的模型還需要優化。對比之前AUC,第二組的模型優於第一組,這裡矛盾到底在哪裡呢?分析如下:
上面說明了AUC作為LTR的指標的侷限性,那麼該如何選取呢。還是以表1為例,單獨看甲乙兩個使用者,使用者甲的AUC是1,使用者乙的AUC也是1,則總體AUC肯定是1。這裡阿里巴巴提出了GAUC的概念,g是group的縮寫,顧名思義就是分組AUC,分組的依據是使用者名稱,根據不同的使用者名稱分組得到不同使用者的AUC,然後在加權平均得到最終的GAUC。這樣就避免了不同使用者之間的比較,消除了使用者間差異。
可以看出總體點選率是不同使用者的根據展示數進行加權得到的,所以不同使用者根據展示數加權得到GAUC是合理的。
總結
本文首先介紹了AUC的基本概念和計算方法,同時對比了兩種計算AUC的方法,其不過是最終表示式的兩種展現形式。接著描述了AUC與線上點選率的關聯。最後補充了AUC的不足同時引出了GAUC,用以消除使用者間的差異,同時提出了一種新的計算GAUC的方法。
關於作者
徐祥:達觀資料智慧推薦演算法工程師,負責達觀資料智慧推薦演算法中模型的優化,對策略召回的結果進行重排序。對特徵工程,模型優化有深入研究。