推荐算法炼丹笔记:推荐系统采样评估指标及线上线下一致性问题
本文對于推薦系統中的采樣評估指標進行了討論,內容略多, 還有一些數學推導, 有興趣的可以去閱讀文末給出的原始論文鏈接, 此處直接列出核心觀點:
因為本文實在是有些干,所以不想讀文章的朋友直接記住下面兩張PPT的內容就可以了。
文章的框架是:
Item推薦的評估
這么做也就意味著我們對于某個用戶所有的商品都是同等受歡迎的,當然在一些復雜的場景下,有些用戶是重點用戶,會有不同的權重,本篇文章重點討論簡化的情況。
一、 評估指標
此處我們介紹在推薦系統中常見的幾種評估指標。以及它們對應的計算方法。
1.1 AUC
Area under ROC curve(AUC):
1.2 Precision & Recall
在位置K的Precision:衡量topK的預測商品的相關商品的比例。
在位置K的Recall:衡量topK預測商品的recovered的比例。
1.3 Average Precision
在位置K的Average Precision用來衡量一個相關商品在所有ranks的精度。
1.4 Normalized discounted cumulative gain(NDCG)
隨著 r 的增長,各個指標的變化:
我們可以發現:
- AP是下降最快的;rank1的AP相較于rank2是2倍重要;rank1的NDCG是1.58倍重要與rank2;
- AUC幾乎是線性下降的, 也就是說我們將商品從102位排到第101位和把商品從第2位排到第1位是類似的;
二、采樣指標——采樣的必要性 & 一致性
在實踐中,尤其是很多大型的平臺,用戶和商品都是億級別的,對這種級別的數據進行排序不僅會耗費大量的計算資源,而且還要等很久的時間,所以大家都會選擇采樣觀察指標。很多時候大家會選擇采樣個無關的商品然后加上相關的商品再去計算指標,其實只需要保證采樣之后計算得到的指標和我們的全量數據計算得到的指標是保證相對大小的,那么一般是沒有任何問題的。
一致性:令評估數據D是固定的,如果任意兩個推薦算法A和B在期望下能保證相對順序,那么我們說在采樣下指標M是保持一致的, 也就是說,對于A和B,我們有:
而如果是不一致的,那么評估M并不是一個M真實表現的好的indicator。
不一致性:上面我們知道了一致性的重要性,那么我們常用的那些指標AUC, Precision, Recall等等是否滿足一致性呢?下面我們來看一些例子。
1. 全量情況下:
假設我們有三個推薦系統A,B,C,以及n=10000個商品,每個推薦系統將會在5個特殊實例上(例如五個用戶)上面進行評估, 這些實例每個只對應一個相關的商品。而這三個推薦系統的結果為:
- A : 對五個實例, 將所有商品的推薦位置都排在了100;
- B : 將兩個實例, 將商品的推薦位置排在了40;
- C : 將某個商品在某個評估實例中的排名在第2位,除此之外,其他四個實例的排名都不好;
最終我們的得分計算如下Table1,可以按照評估指標的公式直接進行計算。
2. 采樣情況下:
現在假設我們隨機采樣了 m=99 個不相關的商品,然后我們重新計算 r 在采樣的集合下的新的位置。上圖中的Table2展示了采樣1000次的重新采樣的均值和標準差。通過觀察Table1和Table2,我們發現:
- 在Table1中,C 的AP是 A 和 B 的10倍,但是在Table2中,的AP是最低的;
- Recall, NDCG在Table1和Table2中的相對順序是沒有保持一致的;
- AUC在兩個Table中是唯一一個保持一致的指標。
我們修改實驗的采樣個數重新實驗,從Figure2中我們發現:隨著我們采樣的樣本越來越多,我們發現三個推薦系統A ,B,C的相對大小都發生了很大的變化,例如:
- AP指標:當樣本個數少于50的時候,系統A>C>B,當樣本個數約為200的時候, A>B>C,當樣本的個數約為500的時候C>A>B,對于更多的樣本,C>A>B.
- NDCG指標:變化和AP指標類似;
- Recall指標:更加敏感;(變化最快)
- AUC維持不變;
三、采樣下的rank分布
此處我們還是假設:
- AP和NDCG(不同的采樣的次數m),在不同的 r 下開始時變化最大;(m越大越接近于真實的情況)
- AUC是不變的;
3.1 期望的Metrics
上面主要都是從試驗的方面來驗證采樣之后重新計算的Metric和真實的Metric除了AUC之外基本都是不大置信的,此處我們計算每個Metric的期望。
3.2 AUC的期望
所以最終的期望為:
- 采樣計算得到的AUC是真實AUC的無偏估計,所以AUC在采樣下是能保證一致的。
3.3 Recall的期望
3.4 AP的期望
四、小的采樣比例
對于m=1,所有的metric在期望上都給出相同的定性度量,沒有必要選擇不同的評估指標.
五、糾正的評估指標
六、最小Bias估計器
七、實驗驗證
樣本大小和數據集大小的影響
此處列出作者的一些核心觀點:
- 增加樣本的大小m可以減少采樣的評估指標的bias;同時也可以降低糾正之后的評估指標;
- 增加數據集的大小,會帶來負向的效果;
- 增加評估點的個數|D|,可以降低平均估計的方差,而這對于糾正之后的評估指標是更加友好的。因為沒有進行糾正的指標即使最終拿到了0方差,但是會存在非常大的偏差;
7.1 實驗
7.2 排序分布
從上面的實驗看出,
- Z算法在Top10中的表現是最好的;但是最終將超過1600個用戶放到了最壞的bucket;
- X算法相對平衡,最壞的bucket中的商品最少;(低于300)
- Y算法在Top10中的表現優于X,但是整體看,會趨向于將相關的商品放到更差的rank.
7.3 采樣指標
從上表中我們發現,
- Z算法在真實情況下載指標Recall,NDCG以及AP上都是最好的,但是采樣之后的結果卻和真實情況不一致;在采樣指標計算得到的指標有時可能是效果最差的算法,例如X在采樣上計算得到的分是最高的,但是實際情況是最低的。
- 這些指標的方差很小,所以不是方差的問題,而是采樣帶來的偏差。
- 在AUC指標上,所有的算法是保持一致的;
- 所以如果實驗中最終的評估指標是采樣的Recall,AP,NDCG等,那么很可能結論是錯誤的.
7.4 糾正的指標
此處作者對比了之前提出的三種不同的糾正方案,同樣的從Table3中,我們發現:
- 糾正之后計算得到的指標和真實指標的Bias降低了.
那么糾正之后的指標和未糾正在樣本下的影響是什么樣的呢?
從上圖中,我們發現,未進行糾正的采樣指標需要超過1000的樣本(1/3的樣本),才能得到推薦算法Y比X好的結論,但是糾正之后的指標(BV的trade off + r=0.1 )只需要60個樣本即可達到同樣的效果;
我們發現確實糾正之后的指標得到的Bias下降了,那么方差呢?
從上面的實驗中,我們發現:
- BV 0.1看上去是最好,基本在100次比較中都有90次是對的;
- 幾乎所有的糾正方案都可以獲得比未進行糾正的指標更為合理的效果;
八、小結 & 建議
小結
本文的研究顯示之前大多數論文采用采樣計算最終指標的方案其實是錯誤的,大概率會和真實的情況存在偏差,得到錯誤的結論。所以如果可以的話,我們應該盡量避免在最終評估時對樣本進行采樣,如果無法避免的話,那么糾正之后的方案可以拿到更為合理的結果(但是會增加方差)。
建議
從上面的分析以及實驗中,我們發現采樣之后計算的指標會帶來較大的偏差,使用糾正的策略,可以降低偏差,但是也會引入更高的方差。所以如果采樣時不可避免,那么有下面幾條建議:
參考文獻
后續我們會篩選出在我們實踐中帶來提升或者啟發的工作進行細致的解讀與探討,歡迎關注我們的公眾號,也歡迎多交流,我是三品煉丹師: 一元。
作者:一元
公眾號:煉丹筆記
煉丹筆記推薦算法煉丹筆記:序列化推薦系統
推薦算法煉丹筆記:電商搜索推薦業務詞匯表
推薦算法煉丹筆記:推薦系統采樣評估指標及線上線下一致性問題
推薦算法煉丹筆記:CTR點擊率預估系列入門手冊
推薦算法煉丹筆記:科學調參在模型優化中的意義
推薦算法煉丹筆記:如何讓你的推薦系統具有可解釋性?
2020年推薦系統工程師煉丹手冊
總結
以上是生活随笔為你收集整理的推荐算法炼丹笔记:推荐系统采样评估指标及线上线下一致性问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 推荐算法炼丹笔记:CTR点击率预估系列入
- 下一篇: 2020年推荐系统工程师炼丹手册RecS