个性化推荐系统该如何评估,四种不同策略的角度
對推薦結果的評估一直都是十分重要的環節,一個推薦算法或者說排序的優劣直接體現在這些評估指標上。具體地,有三種方式,分別是產品數據層面、機器學習算法層面、用戶體驗層面。
推薦系統產品上,最能體現系統、算法在業務層面的價值,因為一個再牛逼的產品,無法產生實際的價值,甚至是負收益,那在未來也可能只是曇花一現。而怎么在產品數據層面評價推薦系統呢,無非就是我們最熟悉的那些KPI指標。主要的評估指標有日/月活躍用戶(DAU/MAU)、用戶互動量/率(包括轉贊評等)、用戶停留時長、內容消耗量、用戶屏蔽/客訴量等。
機器學習算法上,主要是AUC, Precision@K, Recall@K, AveragePrecision, NDCG等指標。
用戶體驗上,主要是針對用戶調研反饋,通過滿意度、豐富度等方式收集真實的用戶對推薦系統在使用體驗上的意見。
一個再牛逼的產品,無法產生實際的價值,甚至是負收益,那在未來也可能只是曇花一現。而怎么在產品數據層面評價推薦系統呢,無非就是我們最熟悉的那些KPI指標。主要的評估指標有日/月活躍用戶(DAU/MAU)、用戶互動量/率(包括轉贊評等)、用戶停留時長、內容消耗量、用戶屏蔽/客訴量等。
同時,在推薦產品的不同階段,在不同業務(貨)、不同的場景(場)、針對的用戶群體(人)都有不同的衡量指標,比如:
- 人:針對新用戶考慮的是留存;針對老用戶考慮的是興趣探索。同時,不同偏好的用戶的需求不同,財經理財類用戶希望內容更加權威、實時等,小白用戶希望內容更加具有科普性、引導性。
- 貨:產品發展初期,更關注用戶的粘性和留存,重點會放在用戶的點擊率、PV、閱讀時長上。而產品相對成熟之后,等到追求商業變現的階段,更多考慮的就是付費率、廣告點擊量等商業指標。對應的推薦系統在不同的階段也要做相應調整。
- 場:內容Feed流考慮的是用戶的CTR、閱讀時長、內容多樣性。商品流考慮的用戶轉化,對于不同場景,我們可以使用完全不同的推薦模型,將場景隔離開。
實際工作中,每次迭代推薦系統,通常都會進行AB實驗,考慮對以上指標的影響,如果實驗整體正向并且效果顯著,那么我們會考慮把實驗策略推全到全部用戶上。關于AB實驗,可以參考《流量為王:ABTest流量分層分桶機制》一文。
機器學習層面的評估,煉丹筆記之前整理過《是不是你的模型又線下線上不一致啦?》一文。在評估推薦算法的效果時,能不采樣就不采樣。
機器學習評估
此處我們介紹在推薦系統中常見的幾種評估指標。以及它們對應的計算方法。
在實踐中,尤其是很多大型的平臺,用戶和商品都是億級別的,對這種級別的數據進行排序不僅會耗費大量的計算資源,而且還要等很久的時間,所以大家都會選擇采樣觀察指標。很多時候大家會選擇采樣個無關的商品然后加上相關的商品再去計算指標,其實只需要保證采樣之后計算得到的指標和我們的全量數據計算得到的指標是保證相對大小的,那么一般是沒有任何問題的。
排序指標局限性:
- 不同的排序指標的側重點不同;
- 排序指標要根據實際問題背景進行選擇,某一個排序指標不能評價所有排序問題。
1)GAUC
以user為group,計算每個user group樣本的auc,然后根據所有用戶的impression量做加權平均,就得到GAUC。線上真實環境下,關心的是CTR、CPM、CVR等實際收益,所以評估的是 CTR( User — Item ) 是否夠準確,也即User1選哪個Item,最后CTR更高。所以線下,算法1比算法2效果好,但是線上卻未必。線上和線下的評估目標并不對等。
為了解決這個問題,關鍵是線下能評估 CTR( User,Item ),也即消去User帶來的差異,引入GAUC。計算公式如下:
GAUC應用的注意點:
- group粒度的選擇,會直接導致GAUC指標的意義不同,如果選擇不當,對算法迭代其實是沒有實際意義的。
比如考慮這樣的場景:
在一個電商網站上,一個用戶訪問到一個店鋪,店鋪需要對這個用戶個性化地展示店內的部分商品,如果我們有一個隨機展示策略,已經積累了足夠置信的數據,包括用戶訪問店鋪對每個展示的商品的pv,click日志。
那么離線評估GAUC如果選擇group來評估一個算法好壞呢?
這個場景如果說值取用戶作為group的劃分依據是不合理的,因為用戶可能會在多個店鋪都有pv,click日志,算法的目的是用戶進到某個店鋪之后,如果個性化的展示店鋪里用戶感興趣的寶貝,吸引點擊促成后續的成交轉化。以用戶為粒度,流量中就包含了其他店鋪的寶貝,店鋪之間的點擊率本身就存在差異,這個差異會反應在GAUC的結果中,但是這個是算法不應該關心的問題。所以應該選擇的是用戶、店鋪這個粒度作為流量劃分的group。
- 不同算法策略在統一集合上評估才有意義。
這一點也非常重要,而且有時會忽略這個問題,比如我們線上實驗了多個算法策略,得到了每個算法策略的效果對比,我們想離線計算一下GAUC指標是否和線上策略的效果是一致的,這時一個容易犯的錯誤就是對各個算法策略的流量分別計算GAUC值,然后比較。正確的做法是選擇其中某個算法策略的流量,離線用另外幾個算法對這個流量進行打分,在同樣的流量下得到的GAUC值才是可比的。
2)MRR(Mean Reciprocal Rank):
把標準答案在被評價系統給出結果中的排序取倒數作為它的準確度,再對所有的問題取平均。
例如:
平均MRR 為(0.67+1+0.98)/3 ≈ 0.88
3)NDCG(Normalized Discounted Cumulative Gain)
這個指標通常是用來衡量和評價搜索結果算法、推薦算法。
DCG的兩個思想:
1、高關聯度的結果比一般關聯度的結果更影響最終的指標得分;
2、有高關聯度的結果出現在更靠前的位置的時候,指標會越高;
根據推出的Item列表,定義DCG如下:
nDCG 為 normalized DCG,通過如下公式計算每個用戶 i 的nDCG:
例如:
對于,
DCG(id1)= 0 + { 1/log(2,2) + 1/log(2,6) } ≈ 1.39
DCG(id2)= 1 + { 0 } ≈ 1
DCG(id3)= 0 + { 1/log(2,2) +1/log(2,3) +1/log(2,7) } ≈ 1.98
DCG(id4)= 0 + { 1/log(2,2) +1/log(2,7) } ≈ 1.35
計算nDCG,標準化的目的在于,用戶item量越少,預測命中就越困難。
nDCG(id1)= DCG(id1)/(1+{1/log(2,2)})≈ 0.695
nDCG(id2)= DCG(id2)/(1)≈ 1
nDCG(id3)= DCG(id3)/(1+ 1/log(2,2) +1/log(2,3))≈ 0.753
nDCG(id4)= DCG(id4)/(1+ 1/log(2,2) )≈ 0.675
所以,id1,2,3,4,的nDCG值為(0.695+1+0.753+0.675)/4
4)MAP(Mean Average Precision)
此處對MAP進行的定義如下:
其中,yij表示排序中第 j 個排序結果對于用戶User i 是否被命中(點擊/下單),是為1,否為0。其中,
例如:
則根據AP計算公式:
ID1的AP值為:
AP = [(0*0 +(1/2)*1+(1/3)*0 +(1/4*0 +(1/5)*0 +(2/6)*1 + (2/7)*0 ) ] / 2 ≈ 0.417
ID2的AP值為:
AP = [ ( 1*1+(1/2)*0+(1/3)*0 +(1/4)*0 +(1/5)*0 +(1/6)*0 +(1/7*0 ) ] / 1 = 1
ID3的AP值為:
AP = [ ( 0*0+(1/2*1 +(2/3*1+(2/4*0+(2/5*0 +(2/6*0 +(3/7*1 ) ]/ 3 ≈ 0.532
ID4的AP值為:
AP = [ ( 0*0 + (1/2)*1 + (1/3)*0 + (1/4)*0 + (1/5)*0 + (1/6)*0 + (2/7)*1 ) ] / 2 ≈ 0.393
MAP =(0.417+ 1+0.532+0.393)/4 ≈ 0.5855
注:AP的最大值為1(也就是當命中的全部排在不命中的前面的時候)
在用戶體驗上,主觀評估滿意度、新穎性、驚喜度等。因為很多用戶體驗并不能用數據衡量,往往需要用戶憑主觀感受打分來反映。具體做法有很多種,比如:
1)給出兩篇內容,讓用戶進行點對點的對比,線上AB測試。
2)給單篇內容提供打分選項,建議用戶從內容與自身偏好的相關性、內容的信息量等角度給予1~5分的評分等,從直觀的用戶打分來實現。
3)以提出開放性問題的方式來收集用戶對自己信息流的反饋,比如電話調研等。
大多數產品數據有其局限性,因為他們是顯性而被動的。比如說,你給用戶推送了一個博眼球的低俗內容,用戶在當下可能是會去點開看的,所以數據上是好的。但用戶可能心里對這個內容的評價是低的,連帶著對作為內容平臺的產品也會看輕,長此以往對產品的傷害是巨大的,此處引用宋一松@知乎的理解。靈活調整評價體系,讓推薦系統更好的服務業務發展,才能讓推薦系統永葆生機。
更多干貨,請關注公眾號:煉丹筆記總結
以上是生活随笔為你收集整理的个性化推荐系统该如何评估,四种不同策略的角度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 模型调参指南北东西
- 下一篇: 推荐系统User-Item Embedd