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