作者在上篇文章《推薦系統(tǒng)的工程實(shí)現(xiàn)》中提到推薦系統(tǒng)要很好地落地到業(yè)務(wù)中,需要搭建支撐模塊,其中效果評(píng)估模塊就是其中非常重要的一個(gè)。本篇文章作者來詳細(xì)說明怎么評(píng)估(Evaluating)推薦系統(tǒng)的效果,有哪些評(píng)估手段,在推薦業(yè)務(wù)中的哪些階段進(jìn)行評(píng)估,具體的評(píng)估方法是什么。借此希望更好地幫助大家在實(shí)際業(yè)務(wù)中實(shí)施推薦系統(tǒng)評(píng)估模塊。
本篇作者主要從“什么是一個(gè)好的推薦系統(tǒng)”、“在推薦系統(tǒng)業(yè)務(wù)的各個(gè)階段怎么評(píng)估推薦系統(tǒng)”,“推薦系統(tǒng)怎么更好地滿足用戶的訴求”的角度來講解。至于推薦算法怎么幫助企業(yè)更好地服務(wù)于用戶,并利用算法產(chǎn)生更多的商業(yè)價(jià)值,作者會(huì)單獨(dú)寫一篇文章《推薦系統(tǒng)的商業(yè)價(jià)值》來詳細(xì)介紹,敬請期待?,F(xiàn)在,我們從評(píng)估的目的、評(píng)估的常用指標(biāo)、評(píng)估方法、評(píng)估需要關(guān)注的問題四個(gè)維度來詳細(xì)說明。
一、推薦評(píng)估的目的
推薦系統(tǒng)評(píng)估是跟推薦系統(tǒng)的產(chǎn)品定位息息相關(guān)的,推薦系統(tǒng)是解決信息高效分發(fā)的手段,希望通過推薦更快更好地滿足用戶的不確定性需求。那么推薦系統(tǒng)的精準(zhǔn)度、驚喜度、多樣性等都是需要達(dá)到的目標(biāo),同時(shí),推薦系統(tǒng)的穩(wěn)定性,是否支撐大規(guī)模用戶訪問等方面也對推薦系統(tǒng)發(fā)揮價(jià)值起關(guān)鍵作用。當(dāng)然,不是所有目標(biāo)都能達(dá)到,評(píng)估后怎么做到各個(gè)目標(biāo)的平衡,權(quán)衡得失,是推薦系統(tǒng)設(shè)計(jì)需要注意的問題。
推薦系統(tǒng)評(píng)估的目的就是從上面說的這么多的維度來評(píng)估出推薦系統(tǒng)的實(shí)際效果及表現(xiàn),從中發(fā)現(xiàn)可能的優(yōu)化點(diǎn),通過優(yōu)化推薦系統(tǒng),期望更好地滿足用戶的訴求,為用戶提供更優(yōu)質(zhì)的推薦服務(wù),同時(shí)通過推薦獲取更多的商業(yè)利益。
二、評(píng)估推薦的常用指標(biāo)
怎么評(píng)估推薦系統(tǒng)呢?從哪些維度來評(píng)估推薦系統(tǒng)呢?這要從推薦系統(tǒng)解決的商業(yè)問題來思考,作者在《推薦系統(tǒng)介紹》這篇文章對推薦系統(tǒng)做了比較系統(tǒng)詳細(xì)的介紹,推薦系統(tǒng)可以很好地解決“標(biāo)的物”提供方、平臺(tái)方(提供產(chǎn)品服務(wù)的公司)、用戶三方的需求(見下面圖1),推薦系統(tǒng)作為嵌入產(chǎn)品的服務(wù)模塊,它的評(píng)估可以從以下四個(gè)維度來衡量。
圖1:推薦系統(tǒng)通過整合到產(chǎn)品中,為用戶提供“標(biāo)的物”推薦
1、用戶的維度
用戶最重要的訴求永遠(yuǎn)是更方便快捷地發(fā)現(xiàn)自己想要(喜歡)的“標(biāo)的物”。推薦系統(tǒng)多好地滿足了用戶的這個(gè)訴求,用戶就會(huì)多依賴推薦系統(tǒng)。一般來說,從用戶維度有如下幾類指標(biāo)可以衡量推薦系統(tǒng)對用戶的價(jià)值。
01)準(zhǔn)確度
準(zhǔn)確度評(píng)估的是推薦的“標(biāo)的物“是不是用戶喜歡的。拿視頻推薦來說,如果推薦的電影用戶點(diǎn)擊觀看了,說明用戶喜歡,看的時(shí)間長短可以衡量用戶的喜好程度。但是要注意,用戶沒看不代表用戶不喜歡,也可能是這個(gè)電影用戶剛在院線看過。這里所說的準(zhǔn)確度更多的是用戶使用的主觀體驗(yàn)感覺。
02)驚喜度(serendipity)
所謂驚喜度,就是讓用戶有耳目一新的感覺,無意中給用戶帶來驚喜。舉個(gè)例子,比如作者的朋友春節(jié)給我推薦了一部新上映的很不錯(cuò)的電影,但是作者忘記電影名字了,怎么也想不起來,但是突然有一天電視貓給我推薦了這部電影,這時(shí)作者會(huì)非常驚喜。這種推薦超出了用戶的預(yù)期,推薦的不一定跟用戶的歷史興趣相似,可能是用戶不熟悉的,但是用戶感覺很滿意。
03)新穎性(novelty)
新穎性就是推薦用戶之前沒有了解過的“標(biāo)的物”。人都是“喜新厭舊”的,推薦用戶沒接觸過的東西,可以提升用戶的好奇心和探索欲。
04)信任度(Confidence& Trust)
在現(xiàn)實(shí)生活中,如果你信任一個(gè)人,他給你推薦的東西往往你會(huì)關(guān)注或者購買。對推薦系統(tǒng)來說也是類似的,如果推薦系統(tǒng)能夠滿足用戶的需求,用戶就會(huì)信任推薦系統(tǒng),會(huì)持續(xù)使用推薦系統(tǒng)來獲取自己喜歡的“標(biāo)的物”。
05)多樣性
用戶的興趣往往是多樣的,在做推薦時(shí)需要給用戶提供多“品類”的“標(biāo)的物”,以挖掘用戶新的興趣點(diǎn),拓展用戶的興趣范圍,提升用戶體驗(yàn)。
06)體驗(yàn)流暢度
推薦系統(tǒng)是一個(gè)軟件產(chǎn)品,用戶的體驗(yàn)是否好,是否卡頓,響應(yīng)是否及時(shí),對用戶的行為決策非常關(guān)鍵。
流暢的用戶體驗(yàn),是推薦服務(wù)的基本要求。但只要服務(wù)不穩(wěn)定,響應(yīng)慢,會(huì)極大影響用戶體驗(yàn),甚至導(dǎo)致用戶卸載產(chǎn)品。
上面這些指標(biāo),有些是可以量化的(比如精準(zhǔn)度、流暢度),有些是較難量化的(比如驚喜度、新穎性),所有這些指標(biāo)匯聚成用戶對推薦模塊的滿意度。
2、平臺(tái)方的維度
平臺(tái)方提供一個(gè)平臺(tái)(產(chǎn)品),對接“標(biāo)的物”提供方和用戶,通過服務(wù)好這兩方來賺取商業(yè)利潤。不同產(chǎn)品掙取利潤的方式不同,有的主要從用戶身上掙錢(比如視頻網(wǎng)站,通過會(huì)員盈利),有的從“標(biāo)的物”提供方掙錢(比如淘寶,通過商家的提成及提供給商家的服務(wù)掙錢),有的兩者兼而有之,但大部分互聯(lián)網(wǎng)產(chǎn)品都會(huì)通過廣告掙錢(廣告主買單,即所謂的”羊毛出在豬身上”)。不管哪種情況,平臺(tái)方都要服務(wù)好用戶和“標(biāo)的物“提供方(有些產(chǎn)品平臺(tái)方和”標(biāo)的物”提供方是一樣的,比如視頻網(wǎng)站,是直接花錢購買視頻版權(quán)的)。
對于平臺(tái)方來說,商業(yè)目標(biāo)是最重要的指標(biāo)之一,平臺(tái)方的盈利目的又需要借助用戶來實(shí)現(xiàn)(不管是用戶購買,還是廣告,都需要有大量用戶),所以平臺(tái)方除了關(guān)注絕對的收益外,還需要關(guān)注用戶活躍、留存、轉(zhuǎn)化、使用時(shí)長等用戶使用維度的指標(biāo)。
推薦系統(tǒng)怎么更好的促進(jìn)收益增長,促進(jìn)用戶活躍、留存、轉(zhuǎn)化等就是平臺(tái)方最關(guān)注的商業(yè)指標(biāo)。
同時(shí),為第三方提供平臺(tái)服務(wù)的平臺(tái)方(如淘寶商城),還需要考慮到商家生態(tài)的穩(wěn)定發(fā)展。為好的商家提供獲取更多收益的機(jī)會(huì)也是平臺(tái)方的責(zé)任和義務(wù)。
所以,站在平臺(tái)方角度看,最重要的指標(biāo)主要有如下3類:
用戶行為相關(guān)指標(biāo);
商業(yè)變現(xiàn)相關(guān)指標(biāo);
商家(即“標(biāo)的物”提供方)相關(guān)指標(biāo);
我會(huì)在下一篇文章《推薦系統(tǒng)的商業(yè)價(jià)值》中詳細(xì)探討推薦系統(tǒng)的商業(yè)價(jià)值,本文不會(huì)過多講解推薦系統(tǒng)的商業(yè)指標(biāo)。
3、推薦系統(tǒng)自身維度
推薦系統(tǒng)是一套算法體系的閉環(huán),通過該閉環(huán)為用戶提供服務(wù),從推薦系統(tǒng)自身來說,主要衡量指標(biāo)包括如下:
01)準(zhǔn)確度
作為推薦系統(tǒng)核心的推薦算法,本身是一種機(jī)器學(xué)習(xí)方法,不管是預(yù)測、分類、回歸等機(jī)器學(xué)習(xí)問題都有自己的評(píng)估指標(biāo)體系。推薦系統(tǒng)準(zhǔn)確度的評(píng)估也可以自然而然的采用推薦算法所屬的不同機(jī)器學(xué)習(xí)范式來度量,我們在第三部分會(huì)根據(jù)該方式來度量準(zhǔn)確度指標(biāo)。
關(guān)于準(zhǔn)確度,第二部分會(huì)詳細(xì)說明具體的評(píng)估方法,準(zhǔn)確度也是學(xué)術(shù)界和業(yè)界最常用最容易量化的評(píng)估指標(biāo)。
02)實(shí)時(shí)性
用戶的興趣是隨著時(shí)間變化的,推薦系統(tǒng)怎么能夠更好的反應(yīng)用戶興趣變化,做到近實(shí)時(shí)推薦用戶需要的“標(biāo)的物”是特別重要的問題。特別像新聞資訊、短視頻等滿足用戶碎片化時(shí)間需求的產(chǎn)品,做到近實(shí)時(shí)推薦更加重要。
03)魯棒性
推薦系統(tǒng)一般依賴用戶行為日志來構(gòu)建算法模型,而用戶行為日志中會(huì)包含很多開發(fā)過程中、系統(tǒng)、人為(比如黑客攻擊)等產(chǎn)生的垃圾數(shù)據(jù),推薦算法要具備魯棒性,盡量少受“臟”的訓(xùn)練數(shù)據(jù)的影響,才能夠?yàn)橛脩籼峁┓€(wěn)定一致的服務(wù)。
04)響應(yīng)及時(shí)穩(wěn)定性
用戶通過觸達(dá)推薦模塊,觸發(fā)推薦系統(tǒng)為用戶提供推薦服務(wù),推薦服務(wù)的響應(yīng)時(shí)長,推薦服務(wù)是否穩(wěn)定(服務(wù)正常可訪問,不掛掉)也是非常關(guān)鍵的。
05)抗高并發(fā)能力
推薦系統(tǒng)是否能夠承受高并發(fā)訪問,在高并發(fā)用戶訪問下(比如雙十一的淘寶推薦),是否可以正常穩(wěn)定的提供服務(wù),也是推薦系統(tǒng)的重要能力。
除了上面說的這些指標(biāo)外,推薦模型的可維護(hù)性、可拓展性、模型是否可并行訓(xùn)練、需要的計(jì)算存儲(chǔ)資源、業(yè)務(wù)落地開發(fā)效率等也是推薦業(yè)務(wù)設(shè)計(jì)中需要考慮的重要指標(biāo)。
4、標(biāo)的物提供方的維度
“標(biāo)的物”的提供方通過為用戶提供“標(biāo)的物”獲取收益(如淘寶上的商家通過售賣物品獲取收益),怎么將自己更多的“標(biāo)的物”更快的“賣出去”是“標(biāo)的物”提供方的訴求。評(píng)估推薦系統(tǒng)為“標(biāo)的物”提供方創(chuàng)造價(jià)值的指標(biāo)除了下面的覆蓋率和挖掘長尾能力,還有更多的商業(yè)化指標(biāo),這里不做過多說明,作者會(huì)在下篇文章《推薦系統(tǒng)的商業(yè)價(jià)值》中詳細(xì)講解。
01)覆蓋率
從“標(biāo)的物”提供方的角度來看,希望自己提供的“標(biāo)的物”都能夠被用戶“相中”,不然這個(gè)“標(biāo)的物”就沒有任何價(jià)值。所以推薦系統(tǒng)需要將更多的“標(biāo)的物”推薦(曝光)出去,只有曝光出去,才有被用戶“消費(fèi)”的可能。
02)挖掘長尾的能力
推薦系統(tǒng)的一個(gè)重要價(jià)值就是發(fā)現(xiàn)長尾(長尾理論是ChrisAnderson提出的,不熟悉該理論的讀者可以自行百度或者看ChrisAnderson出的《長尾理論》一書),將小眾的“標(biāo)的物”分發(fā)給喜歡該類“標(biāo)的物”的用戶。度量出推薦系統(tǒng)挖掘長尾的能力,對促進(jìn)長尾“標(biāo)的物”的“變現(xiàn)”及更好地滿足用戶的小眾需求從而提升用戶的驚喜度非常有價(jià)值。
三、推薦系統(tǒng)的評(píng)估方法
上一節(jié)列舉了很多評(píng)估推薦系統(tǒng)的指標(biāo),并對指標(biāo)的含義做了簡要說明。本節(jié)我們具體講解怎么度量(量化)這些指標(biāo)。
推薦算法本質(zhì)上就是一個(gè)機(jī)器學(xué)習(xí)問題。我們需要構(gòu)建推薦算法模型,選擇認(rèn)為合適的(效果好的)的算法模型,將算法模型部署到線上推薦業(yè)務(wù)中,利用算法模型來預(yù)測用戶對“標(biāo)的物”的偏好,通過用戶的真實(shí)反饋(是否點(diǎn)擊、是否購買、是否收藏等)來評(píng)估算法效果。同時(shí),在必要(不一定必須)的時(shí)候,需要跟你的用戶溝通,收集用戶對推薦系統(tǒng)的真實(shí)評(píng)價(jià),整個(gè)過程可以用如下的圖2來說明。我們可以根據(jù)推薦業(yè)務(wù)流的時(shí)間線按照先后順序?qū)⑼扑]系統(tǒng)評(píng)估分為三個(gè)階段:離線評(píng)估、在線評(píng)估、主觀評(píng)估。在下面我們會(huì)按照這三個(gè)階段來講解上一節(jié)的評(píng)估指標(biāo)是怎么嵌入到這3個(gè)階段當(dāng)中的,并說明具體的評(píng)估方法。
圖2:根據(jù)推薦業(yè)務(wù)流,將推薦評(píng)估分為3個(gè)階段
1、離線評(píng)估
離線評(píng)估是在推薦算法模型開發(fā)與選型的過程中對推薦算法做評(píng)估,通過評(píng)估具體指標(biāo)來選擇合適的推薦算法,將算法部署上線為用戶提供推薦服務(wù)。具體可以評(píng)估的指標(biāo)有:
01)準(zhǔn)確度指標(biāo)
準(zhǔn)確度評(píng)估的主要目的是事先評(píng)估出推薦算法模型的好壞(是否精準(zhǔn)),為選擇合適的模型上線服務(wù)提供決策依據(jù)。我們期望精準(zhǔn)的模型上線后產(chǎn)生好的效果。這個(gè)過程評(píng)估的是推薦算法是否可以準(zhǔn)確預(yù)測用戶的興趣偏好。
準(zhǔn)確度評(píng)估是學(xué)術(shù)界和業(yè)界最重要和最常用的評(píng)估指標(biāo),可以在模型訓(xùn)練過程中做評(píng)估,因此實(shí)現(xiàn)簡單,可操作性強(qiáng),方便學(xué)術(shù)交流與各類競賽作為評(píng)比指標(biāo),同時(shí)通過評(píng)估可以對比不同模型的效果。
推薦算法是機(jī)器學(xué)習(xí)的分支,所以準(zhǔn)確度評(píng)估一般會(huì)采用機(jī)器學(xué)習(xí)效果評(píng)估一樣的策略。一般是將訓(xùn)練數(shù)據(jù)分為訓(xùn)練集和測試集,用訓(xùn)練集訓(xùn)練模型,用測試集評(píng)估模型的預(yù)測誤差,這個(gè)過程可以參見下面的圖3。
圖3:推薦算法的模型訓(xùn)練與離線評(píng)估
具體怎么計(jì)算推薦算法模型誤差(準(zhǔn)確度),可以根據(jù)推薦算法模型的范式來決定采用不同的評(píng)估方法,這里我們主要根據(jù)三種不同范式來評(píng)估準(zhǔn)確度。
第一種是將推薦算法看成預(yù)測(回歸)問題。預(yù)測用戶對“標(biāo)的物”的評(píng)分(比如0~10分)。
第二種是將推薦算法看成是分類問題??梢允嵌诸悾瑢ⅰ皹?biāo)的物“分為喜歡和不喜歡兩類;也可以是多分類,每個(gè)“標(biāo)的物”就是一個(gè)類,根據(jù)用戶過去行為預(yù)測下一個(gè)行為的類別(如YouTube在2016發(fā)表的深度學(xué)習(xí)推薦論文DeepNeural Networks for YouTube Recommendations就是采用多分類的思路來做的)。
第三種是將推薦系統(tǒng)算法看成一個(gè)排序?qū)W習(xí)問題,利用排序?qū)W習(xí)(Learningto rank)的思路來做推薦。
推薦系統(tǒng)的目的是為用戶推薦一系列“標(biāo)的物”,擊中用戶的興奮點(diǎn),讓用戶“消費(fèi)”“標(biāo)的物”。所以,在實(shí)際推薦產(chǎn)品中,我們一般都是為用戶提供N個(gè)候選集,稱為TopN推薦,盡可能的召回用戶感興趣的“標(biāo)的物”。上面這三類推薦算法范式都可以轉(zhuǎn)化為TopN推薦。第一種思路預(yù)測出用戶對所有沒有行為的“標(biāo)的物”的評(píng)分,按照評(píng)分從高到低排序,前面N個(gè)就可以當(dāng)做TopN推薦(得分可以看成是用戶對“標(biāo)的物”的偏好程度,所以這樣降序排列取前N個(gè)的做法是合理的)。第二種思路一般會(huì)學(xué)習(xí)出在某個(gè)類的概率,根據(jù)概率值也可以類似第一種思路來排序形成TopN推薦。第三種思路本身就是學(xué)習(xí)一個(gè)有序列表。
下面來詳細(xì)講解怎么按照推薦算法的上述3種范式來評(píng)估算法的準(zhǔn)確度。
推薦算法作為評(píng)分預(yù)測模型
針對評(píng)分預(yù)測模型,可以評(píng)估的準(zhǔn)確度指標(biāo)主要有:RMSE(均方根誤差)、MAE(平均絕對誤差)。他們的計(jì)算公式分別是:
其中,u代表用戶,i代表“標(biāo)的物”,T是所有有過評(píng)分的用戶。是用戶u對“標(biāo)的物”i的真實(shí)評(píng)分,是推薦算法模型預(yù)測的評(píng)分。其中RMSE就是Netflix在2006年舉辦的“NetflixPrize”大賽的評(píng)估指標(biāo)。
常用的矩陣分解推薦算法(及矩陣分解算法的推廣FM、FFM等)就是一種評(píng)分預(yù)測模型。
推薦算法作為分類模型
針對分類模型,評(píng)估推薦準(zhǔn)確度的主要指標(biāo)有:準(zhǔn)確率(Precision)、召回率(Recall)。
假設(shè)給用戶u推薦的候選集為(通過算法模型為用戶推薦的候選集),用戶真正喜歡的“標(biāo)的物”集是(在測試集上用戶真正喜歡的“標(biāo)的物”),總共可通過模型推薦的用戶數(shù)為集合U。其中N是推薦的數(shù)量。準(zhǔn)確率是指為用戶推薦的候選集中有多少比例是用戶真正感興趣的(“消費(fèi)”過“標(biāo)的物”),召回率是指用戶真正感興趣的“標(biāo)的物”中有多少比例是推薦系統(tǒng)推薦的。針對用戶u,準(zhǔn)確率()、召回率()的計(jì)算公式分別如下:
一般來說N越大(即推薦的“標(biāo)的物“越多),召回率越高,精確度越低,當(dāng)N為所有“標(biāo)的物”時(shí),召回率為1,而精確度接近0(一般推薦系統(tǒng)“標(biāo)的物”總量很大,而用戶喜歡過的量有限,所以根據(jù)上面公式,精確度接近0)。
對推薦系統(tǒng)來說,當(dāng)然這兩個(gè)值都越大越好,最好是兩個(gè)值都為1,但是實(shí)際情況是這兩個(gè)值就類似量子力學(xué)中的測不準(zhǔn)原理(你在同一時(shí)間無法知道粒子的位置和速度),你無法保證兩者的值同時(shí)都很大,實(shí)際構(gòu)建模型時(shí)需要權(quán)衡,一般我們可以用兩者的調(diào)和平均數(shù)()來衡量推薦效果,做到兩者的均衡。
上面只計(jì)算出了推薦算法對一個(gè)用戶u的準(zhǔn)確率、召回率、F1值。整個(gè)推薦算法的效果可以采用所有用戶的加權(quán)平均得到,具體計(jì)算公式如下:
關(guān)于分類問題的評(píng)估方法,可以參考周志華的《機(jī)器學(xué)習(xí)》第二章“模型評(píng)估與選擇”,里面有很多關(guān)于分類問題評(píng)估指標(biāo)的介紹。作者這里就不詳細(xì)介紹了。
推薦算法作為排序?qū)W習(xí)模型
上面兩類評(píng)估指標(biāo)都沒有考慮推薦系統(tǒng)在實(shí)際做推薦時(shí)將“標(biāo)的物”展示給用戶的順序,不同的排序用戶的實(shí)際操作路徑長度不一樣,比如智能電視端一般通過遙控器操作,排在第二排推薦的電影,用戶點(diǎn)擊就要多操作遙控器按鍵幾次。我們當(dāng)然是希望將用戶最可能會(huì)“消費(fèi)”的“標(biāo)的物”放在用戶操作路徑最短的地方(一般是最前面)。所以,推薦的“標(biāo)的物“展示給用戶的順序?qū)τ脩舻臎Q策和行為是有很大影響的,那怎么衡量這種不同排序產(chǎn)生的影響呢?這就需要借助排序指標(biāo),這類指標(biāo)我們這里主要介紹MAP(MeanAverage Precision),其他指標(biāo)如NDCG(NormalizedDiscounted Cumulative Gain),MRR(MeanReciprocal Rank)等讀者可以自行了解學(xué)習(xí),這里不再介紹。
MAP的計(jì)算公式如下:
其中,,所以,
其中,代表的是為用戶u推薦的平均準(zhǔn)確率,U是所有提供推薦服務(wù)的用戶的集合;是推薦給用戶u,而用戶u喜歡的“標(biāo)的物”的數(shù)量(比如推薦20個(gè)視頻給用戶u,用戶看了3個(gè),那么=3);是用戶u喜歡的第i個(gè)“標(biāo)的物”在推薦列表中的排序(比如給用戶推薦20個(gè)視頻,用戶喜歡的第2個(gè)在這20個(gè)視頻的推薦列表中排第8位,那么=8)。
為了方便讀者理解,這里舉個(gè)搜索排序的例子(MAP大量用于搜索,推薦排序的效果評(píng)估中)。假設(shè)有兩個(gè)搜索關(guān)鍵詞,關(guān)鍵詞1有3個(gè)相關(guān)網(wǎng)頁,關(guān)鍵詞2有6個(gè)相關(guān)網(wǎng)頁。某搜索系統(tǒng)對于關(guān)鍵詞1檢索出3個(gè)相關(guān)網(wǎng)頁(將所有相關(guān)的都檢索出來了),其在搜索結(jié)果中的排序分別為2,3,6;對于關(guān)鍵詞2檢索出2個(gè)相關(guān)網(wǎng)頁(6個(gè)相關(guān)中只檢索出了2個(gè)),其在搜索列表中的排序分別為4,8。對于關(guān)鍵詞1,平均準(zhǔn)確率為(1/2+2/3+3/6)/3=0.56。對于關(guān)鍵詞2,平均準(zhǔn)確率為(1/4+2/8)/6=0.08。則MAP=(0.56+0.08)/2=0.32。
至此,關(guān)于離線評(píng)估的準(zhǔn)確度指標(biāo)已經(jīng)介紹完了。下面介紹一下其他可以在離線階段評(píng)估的指標(biāo)。
02)覆蓋率指標(biāo)
對于任何推薦范式,覆蓋率指標(biāo)都可以直接計(jì)算出來。覆蓋率(Coverage)的具體計(jì)算公式如下:
其中U是所有提供推薦服務(wù)的用戶的集合,I是所有“標(biāo)的物”的集合,是給用戶u的推薦“標(biāo)的物”構(gòu)成的集合。
03)多樣性指標(biāo)
用戶的興趣往往是多樣的,并且有些產(chǎn)品面對的用戶也不止一個(gè)(比如智能電視前可能是一家人看電視),同時(shí)人在不同的時(shí)間段可能興趣也不一樣(早上看新聞,晚上看電視劇),個(gè)人興趣也會(huì)受心情、天氣、節(jié)日等多種因素影響。所以我們在給用戶做推薦時(shí)需要盡量推薦多樣的“標(biāo)的物”,讓用戶從中找到自己感興趣的,種類更多樣的話,總有一款能夠擊中用戶的興趣點(diǎn)。
在具體推薦系統(tǒng)工程實(shí)現(xiàn)中,可以通過對“標(biāo)的物”聚類(可以用機(jī)器學(xué)習(xí)聚類或者根據(jù)標(biāo)簽等規(guī)則來分類),在推薦列表中插入不同類別的“標(biāo)的物”的方式來增加推薦系統(tǒng)推薦結(jié)果的多樣性。
04)實(shí)時(shí)性指標(biāo)
用戶的興趣是隨著時(shí)間變化的,推薦怎么能盡快反應(yīng)用戶興趣變化,捕捉用戶新的興趣點(diǎn)在日益競爭激烈的互聯(lián)網(wǎng)時(shí)代對產(chǎn)品非常關(guān)鍵,特別是新聞、短視頻這類APP,需要快速響應(yīng)用戶的興趣變化。
一般來說,推薦系統(tǒng)的實(shí)時(shí)性分為如下四個(gè)級(jí)別T+1(每天更新用戶推薦結(jié)果)、小時(shí)級(jí)、分鐘級(jí)、秒級(jí)。越是響應(yīng)時(shí)間短的對整個(gè)推薦系統(tǒng)的設(shè)計(jì)、開發(fā)、工程實(shí)現(xiàn)、維護(hù)、監(jiān)控等要求越高。下面我們給大家提供一些選型的建議。
對于“侵占”用戶碎片化時(shí)間的產(chǎn)品,如今日頭條、快手等。這些產(chǎn)品用戶“消耗”“標(biāo)的物”的時(shí)間很短,因而建議推薦算法做到分鐘級(jí)響應(yīng)用戶興趣變化;
對于電影推薦、書推薦等用戶需要消耗較長時(shí)間“消費(fèi)”標(biāo)的物的產(chǎn)品,可以采用小時(shí)級(jí)或者T+1策略;
一般推薦系統(tǒng)不需要做到秒級(jí),但是在廣告算法中做到秒級(jí)是需要的。
上述這些建議不是絕對的,不同的產(chǎn)品形態(tài),不同的場景可能對實(shí)時(shí)性級(jí)別的需求不相同。大家可以根據(jù)自己的產(chǎn)品特色、業(yè)務(wù)場景、公司所在的階段、公司基礎(chǔ)架構(gòu)能力、人力資源等綜合評(píng)估后做選擇。但是最終的趨勢肯定是趨向于越來越實(shí)時(shí)響應(yīng)用戶需求。
05)魯棒性指標(biāo)
推薦系統(tǒng)是否受臟數(shù)據(jù)影響,是否能夠穩(wěn)定的提供優(yōu)質(zhì)推薦服務(wù)非常關(guān)鍵。為了提升推薦系統(tǒng)的魯棒性,這里提四個(gè)建議。
盡量采用魯棒性好的算法模型;
做好特征工程,事先通過算法或者規(guī)則等策略剔除掉可能的臟數(shù)據(jù);
在日志收集階段,對日志進(jìn)行加密,校驗(yàn),避免人為攻擊等垃圾數(shù)據(jù)引入;
在日志格式定義及日志打點(diǎn)階段,要有完整的測試case,做好冒煙回歸測試,避免開發(fā)失誤或者bug引入垃圾數(shù)據(jù)。
06)其他指標(biāo)
另外,像模型訓(xùn)練效率,是否可以分布式計(jì)算(可拓展性),需要的計(jì)算存儲(chǔ)資源等都可以根據(jù)所選擇的模型及算法提前預(yù)知,這里不再細(xì)說。
2、在線評(píng)估
根據(jù)上面圖2,推薦系統(tǒng)的在線評(píng)估可以分為兩個(gè)階段,其實(shí)這兩個(gè)階段是連接在一起的,這里這樣劃分主要是方便對相關(guān)的評(píng)估指標(biāo)做細(xì)分講解。下面分別來講解每個(gè)階段可以評(píng)估哪些指標(biāo)及具體的評(píng)估方法。
在線評(píng)估第一階段
第一階段是推薦算法上線服務(wù)到用戶使用推薦產(chǎn)品這個(gè)階段,在這個(gè)階段用戶通過使用推薦產(chǎn)品觸發(fā)推薦服務(wù)(平臺(tái)通過推薦接口為用戶提供服務(wù))。這個(gè)階段可以評(píng)估的指標(biāo)有:
01)響應(yīng)及時(shí)穩(wěn)定性指標(biāo)
該指標(biāo)是指推薦接口可以在用戶請求推薦服務(wù)時(shí)及時(shí)提供數(shù)據(jù)反饋,當(dāng)然是響應(yīng)時(shí)間越短越好,一般響應(yīng)時(shí)間要控制在200ms之內(nèi),超過這個(gè)時(shí)間人肉眼就可以感受到慢了。
服務(wù)器響應(yīng)會(huì)受到很多因素影響,比如網(wǎng)絡(luò)、CDN、Web服務(wù)器、操作系統(tǒng)、數(shù)據(jù)庫、硬件等,一般無法保證用戶的每次請求都控制在一定時(shí)間內(nèi)。我們一般采用百分之多少的請求控制在什么時(shí)間內(nèi)這樣的指標(biāo)來評(píng)估接口的響應(yīng)時(shí)間(比如99%的請求控制在50ms之內(nèi))。
那怎么量化服務(wù)器的響應(yīng)情況呢?我們可以在web服務(wù)器(如Nginx)端對用戶訪問行為打點(diǎn),記錄用戶每次請求的時(shí)長(需要在web服務(wù)器記錄/配置接口請求響應(yīng)時(shí)長),將web服務(wù)器的日志上傳到大數(shù)據(jù)平臺(tái),通過數(shù)據(jù)分析可以統(tǒng)計(jì)出每個(gè)接口的響應(yīng)時(shí)長情況。一般公司會(huì)采用CDN服務(wù)來緩存、加速接口,上述從web服務(wù)器統(tǒng)計(jì)的時(shí)長,只能統(tǒng)計(jì)接口回源部分的流量,被CDN扛住的部分流量的響應(yīng)時(shí)長是需要CDN廠商配合來統(tǒng)計(jì)的。另外,上面統(tǒng)計(jì)的web服務(wù)器響應(yīng)時(shí)長只是web服務(wù)消耗的時(shí)長,用戶從觸發(fā)推薦到返回結(jié)果,除了web服務(wù)器的響應(yīng)時(shí)長,還要加上web服務(wù)器到用戶APP這中間的網(wǎng)絡(luò)傳輸時(shí)長和APP處理請求渲染展示出來的時(shí)長,這部分時(shí)間消耗需要采用其他技術(shù)手段來計(jì)算統(tǒng)計(jì),這里不再細(xì)說。
02)抗高并發(fā)能力指標(biāo)
當(dāng)用戶規(guī)模很大時(shí),或者在特定時(shí)間點(diǎn)有大量用戶訪問(比如雙十一的淘寶)時(shí),在同一時(shí)間點(diǎn)有大量用戶調(diào)用推薦服務(wù),推薦接口的壓力會(huì)很大,推薦系統(tǒng)能否抗住高并發(fā)的壓力是一個(gè)很大的挑戰(zhàn)。
我們可以在接口上線前對接口做打壓測試,事先了解接口的抗并發(fā)能力。另外可以采用一些技術(shù)手段來避免對接口的高并發(fā)訪問,比如增加緩存,web服務(wù)器具備橫向拓展的能力,利用CDN資源,在特殊情況下對推薦服務(wù)進(jìn)行分流、限流、降級(jí)等。
上述兩個(gè)指標(biāo),作者只做了相對簡單的介紹,作者會(huì)在后續(xù)文章《推薦系統(tǒng)的高可用高并發(fā)架構(gòu)設(shè)計(jì)》中對這些點(diǎn)做詳細(xì)講解,敬請期待。
在線評(píng)估第二階段
第二階段是用戶通過使用推薦算法產(chǎn)生行為(購買、點(diǎn)擊、播放等),我們通過收集分析用戶行為日志來評(píng)估相關(guān)的指標(biāo)。這一階段我們主要站在平臺(tái)方角度來思考指標(biāo),主要有用戶行為相關(guān)指標(biāo)、商業(yè)化指標(biāo)、商家相關(guān)指標(biāo),這里我們只介紹用戶行為相關(guān)指標(biāo)。另外說下,像離線評(píng)估中所介紹的一些準(zhǔn)確度指標(biāo)(如準(zhǔn)確率、召回率等)其實(shí)可以通過適當(dāng)?shù)娜罩敬螯c(diǎn)來真實(shí)的統(tǒng)計(jì)出來,計(jì)算方式類似,這里也不再細(xì)說。
推薦模型上線提供推薦服務(wù)后,最重要的用戶行為指標(biāo)有轉(zhuǎn)化率、購買率、點(diǎn)擊率、人均停留時(shí)長、人均閱讀次數(shù)等,一般用戶的行為是一個(gè)漏斗(例如,推薦曝光給用戶->用點(diǎn)擊瀏覽->用戶掃碼->用戶下單,參考下面的圖4),我們需要知道從漏斗一層到下一層的轉(zhuǎn)化率。漏斗模型可以非常直觀形象的描述用戶從前一個(gè)階段到下一個(gè)階段的轉(zhuǎn)化,非常適合商業(yè)上定位問題,通過優(yōu)化產(chǎn)品流程,提升用戶在各個(gè)階段的轉(zhuǎn)化。
圖4:用戶行為的漏斗模型
線上評(píng)估一般會(huì)結(jié)合AB測試技術(shù),當(dāng)采用新算法或者有新的UI交互優(yōu)化時(shí),將用戶分為AB兩組,先放一部分流量給測試組(有算法或UI優(yōu)化的組),對比組是優(yōu)化之前的組。如果測試組與對比組在相同指標(biāo)上有更好的表現(xiàn),顯著(具備統(tǒng)計(jì)顯著性)提升了點(diǎn)擊或者轉(zhuǎn)化,并且提升是穩(wěn)定的,后續(xù)逐步將優(yōu)化拓展到所有用戶。這種借助AB測試小心求證的方法,可以避免直接一次性將新模型替換舊模型,但是上線后效果不好的情況發(fā)生(會(huì)嚴(yán)重影響用戶體驗(yàn)和收益指標(biāo),造成無法挽回的損失)。
另外,針對用戶行為指標(biāo),我們需要將推薦算法產(chǎn)生的指標(biāo)與大盤指標(biāo)(用戶在整個(gè)產(chǎn)品的相關(guān)指標(biāo))對比,可以更好地體現(xiàn)推薦算法的優(yōu)勢(比如通過推薦系統(tǒng)產(chǎn)生的人均播放次數(shù)和人均播放時(shí)長比大盤高,就可以體現(xiàn)推薦的價(jià)值),讓推薦系統(tǒng)和推薦工程師的價(jià)值得到真正的體現(xiàn),也可以讓管理層從數(shù)據(jù)上了解推薦的價(jià)值。
最后,通過日志分析,我們可以知道哪些“標(biāo)的物”是流行的,哪些是長尾。拿視頻推薦來舉例,我們可以根據(jù)二八定律,將電影播放量降序排列,播放量占總播放量80%的前面的電影,算作熱門電影,后面的當(dāng)做長尾(參考下面圖5)。
在度量推薦系統(tǒng)長尾能力時(shí),我們可以從如下三個(gè)維度來度量:
所有長尾“標(biāo)的物”中每天有多少比例被分發(fā)出去了;
有多少比例的用戶,推薦過了長尾“標(biāo)的物”;
長尾內(nèi)容的轉(zhuǎn)化情況和產(chǎn)生的商業(yè)價(jià)值。
圖5:對于電影推薦,長尾的定義
3、主觀評(píng)估
第二節(jié)提到了很多用戶維度的指標(biāo),如準(zhǔn)確度、驚喜度、新穎性、信任度、體驗(yàn)流暢度等。這些指標(biāo)有很多是用戶的使用主觀感受(如驚喜度),有些指標(biāo)也因人而異(如新穎性),有些很難利用已知的數(shù)據(jù)來量化(如信任度)。
針對上面這些指標(biāo),我們可以通過主觀評(píng)估的方式來獲得用戶對推薦系統(tǒng)的真實(shí)評(píng)價(jià)。具體的方式可以是用戶問卷調(diào)查、電話訪談、跟用戶直接見面溝通等。這些方式可以很直接直觀的知道用戶對推薦產(chǎn)品的反饋和想法,是很重要的一種評(píng)估推薦系統(tǒng)的補(bǔ)充方式。主觀評(píng)估要想真實(shí)的發(fā)現(xiàn)推薦系統(tǒng)存在的問題,需要注意很多問題,下面針對主觀評(píng)估做如下5點(diǎn)說明,作為主觀評(píng)估有效執(zhí)行的指導(dǎo)建議。
主觀評(píng)估是很消耗時(shí)間的,特別是電話溝通和見面訪談,即使是問卷調(diào)查,也需要很好地設(shè)計(jì)問卷的問題;
讓用戶參與主觀評(píng)估,往往需要給用戶一定的好處,需要一定的資金支持;
需要確保選擇的樣本有代表性,能夠真實(shí)的代表產(chǎn)品的用戶,所以選擇的樣本量不能太少,抽樣方法也需要科學(xué)選擇;
設(shè)計(jì)問卷時(shí),最好不要直接問“你覺得我們的推薦系統(tǒng)有驚喜度嗎?”這樣的問題,而要“我們的推薦系統(tǒng)給你推薦了哪些你特別想看,但是一直通過其他渠道沒有發(fā)現(xiàn)的電影?”這樣問,具體怎么設(shè)計(jì)問卷可以參考相關(guān)的專業(yè)書籍;
用戶訪談或者電話溝通時(shí),用戶的回答不一定是真實(shí)的想法,用戶真實(shí)的想法可能不好意思表現(xiàn)出來,或者會(huì)選擇討好你的回答方式(畢竟參與調(diào)研的用戶多少獲取了一定的物質(zhì)報(bào)酬),調(diào)研者需要特別注意,采用一定的溝通技巧,盡量真實(shí)挖掘出用戶的想法。
4、推薦系統(tǒng)評(píng)估需要關(guān)注的問題
推薦系統(tǒng)評(píng)估要想落地取得較好的效果,真實(shí)的反饋推薦系統(tǒng)的問題,為推薦系統(tǒng)提供優(yōu)化的建議,必須要關(guān)注以下問題。
01)離線評(píng)估準(zhǔn)確度高的模型,在線評(píng)估不一定高
離線評(píng)估會(huì)受到可用的數(shù)據(jù)及評(píng)估方法的影響,同時(shí),模型上線會(huì)受到各種相關(guān)變量的干擾,導(dǎo)致線上評(píng)估跟離線評(píng)估結(jié)果不一致。所以有必要引入AB測試減少新算法上線對用戶體驗(yàn)的影響;
02)推薦系統(tǒng)尋求的是一個(gè)全局最優(yōu)化的方案(解)
在實(shí)際情況中,經(jīng)常會(huì)有老板或者產(chǎn)品經(jīng)理來找你,說某個(gè)推薦怎么怎么不準(zhǔn),雖然作為推薦算法工程師,需要排查是否真有問題,但是也要注意,推薦模型求解是滿足整體最優(yōu)的一個(gè)過程(推薦算法如矩陣分解就是將所有用戶行為整合進(jìn)來作為目標(biāo)函數(shù),再求解誤差最小時(shí)用戶對未知“標(biāo)的物”的評(píng)分),不能保證每個(gè)用戶都是預(yù)測最準(zhǔn)的。所以,遇到上述情況要做適當(dāng)判斷,不要總是懷疑算法。舉個(gè)不太恰當(dāng)?shù)睦?,推薦系統(tǒng)對部分用戶可能推薦不準(zhǔn)就像和諧社會(huì)的發(fā)展,雖然人民的整體生活是越來越好的,但是還是有人生活在水深火熱中。
03)推薦系統(tǒng)是一個(gè)多目標(biāo)優(yōu)化問題
推薦系統(tǒng)需要平衡很多因素(商業(yè)、用戶體驗(yàn)、技術(shù)實(shí)現(xiàn)、資金、人力等),怎么做好平衡是一種哲學(xué)。在公司不同階段,傾向性也不一樣,創(chuàng)業(yè)前期可能以用戶體驗(yàn)為主,需要大力發(fā)展用戶,當(dāng)用戶量足夠多后,可能會(huì)側(cè)重商業(yè)變現(xiàn)(推薦更多的付費(fèi)視頻,在搜索列表中插入較多廣告等),盡快讓公司開始盈利。
04)AB測試平臺(tái)對推薦評(píng)估的巨大價(jià)值
推薦系統(tǒng)在線評(píng)估強(qiáng)烈依賴于AB測試來得出信服的結(jié)論,所以一套完善的推薦系統(tǒng)解決方案一定要保證搭建一套高效易用的AB測試框架,讓推薦系統(tǒng)的優(yōu)化有據(jù)可循,通過數(shù)據(jù)驅(qū)動(dòng)來讓推薦系統(tǒng)真正做到閉環(huán)。
05)重視線上用戶行為及商業(yè)變現(xiàn)方面的評(píng)估
線上評(píng)估更能真實(shí)反映產(chǎn)品的情況,所以在實(shí)際推薦系統(tǒng)評(píng)估中,要更加重視線上效果評(píng)估,它能夠很好的將用戶的行為跟商業(yè)指標(biāo)結(jié)合起來,它的價(jià)值一定大于線下評(píng)估,需要推薦開發(fā)人員及相關(guān)產(chǎn)品經(jīng)理花費(fèi)更多的時(shí)間和精力。
寫在最后
至此,關(guān)于推薦系統(tǒng)評(píng)估的所有方面都講完了,希望本文可以作為大家在實(shí)踐推薦系統(tǒng)評(píng)估模塊的參考指南。由于搜索、推薦及計(jì)算廣告算法與本業(yè)務(wù)的相似性,本文也可以作為搜索、計(jì)算廣告落地評(píng)估的參考。由于作者精力能力有限,不當(dāng)之處,請批評(píng)指正!
-
算法
+關(guān)注
關(guān)注
23文章
4588瀏覽量
92505 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8353瀏覽量
132315 -
推薦系統(tǒng)
+關(guān)注
關(guān)注
1文章
43瀏覽量
10066
原文標(biāo)題:深度 | 推薦系統(tǒng)評(píng)估
文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
評(píng)論