一般推薦系統(tǒng)的參與方有3個:用戶悔耘、物品提供商、推薦系統(tǒng)提供網(wǎng)站所意,評測一個推薦系統(tǒng)時淮逊,需要考慮3方的利益,一個好的推薦系統(tǒng)是能夠令三方共贏的系統(tǒng)扶踊。
1. 評測實驗方法
獲得評測指標(biāo)的實驗方法,通常分3種:
離線實驗(offline experiment)
用戶調(diào)查(user study)
在線實驗(online experiment)
3種實驗方法的優(yōu)缺點郎任。
1)離線實驗
離線實驗的方法的步驟如下:
a)通過日志系統(tǒng)獲得用戶行為數(shù)據(jù)秧耗,并按照一定格式生成一個標(biāo)準(zhǔn)的數(shù)據(jù)集;
b)將數(shù)據(jù)集按照一定的規(guī)則分成訓(xùn)練集和測試集舶治;
c)在訓(xùn)練集上訓(xùn)練用戶興趣模型分井,在測試集上進行預(yù)測;
d)通過事先定義的離線指標(biāo)霉猛,評測算法在測試集上的預(yù)測結(jié)果尺锚。
從以上步驟看出,離線實驗的都是在數(shù)據(jù)集上完成的惜浅。意味著瘫辩,它不需要一個實際的系統(tǒng)作為支撐,只需要有一個從日志中提取的數(shù)據(jù)集即可坛悉。
離線實驗的優(yōu)點是:
不需要有對實際系統(tǒng)的控制權(quán)伐厌;
不需要用戶參與實踐;
速度快裸影,可以測試大量算法挣轨;
缺點是:
數(shù)據(jù)集的稀疏性限制了適用范圍,例如一個數(shù)據(jù)集中沒有包含某用戶的歷史行為轩猩,則無法評價對該用戶的推薦結(jié)果卷扮;
評價結(jié)果的客觀性荡澎,無法得到用戶主觀性的評價;
難以找到離線評價指標(biāo)和在線真實反饋(如 點擊率晤锹、轉(zhuǎn)化率衔瓮、點擊深度、購買客單價抖甘、購買商 品類別等)之間的關(guān)聯(lián)關(guān)系热鞍;
2)用戶調(diào)查
用戶調(diào)查需要一些真實的用戶,讓他們在需要測試的推薦系統(tǒng)上完成一些任務(wù)衔彻。在他們完成任務(wù)時薇宠,需要觀察和記錄用戶的行為,并讓他們回答一些問題艰额。
最后澄港,我們通過分析他們的行為和答案,了解測試系統(tǒng)的性能柄沮。
用戶調(diào)查的優(yōu)點是:
可以獲得用戶主觀感受的指標(biāo)回梧,出錯后容易彌補;
缺點是:
招募測試用戶代價較大祖搓;
無法組織大規(guī)模的測試用戶狱意,統(tǒng)計意義不足;
3)在線實驗
在完成離線實驗和用戶調(diào)查之后拯欧,可以將系統(tǒng)上線做AB測試详囤,將它和舊算法進行比較。
在線實驗最常用的評測算法是【A/B測試】镐作,它通過一定的規(guī)則將用戶隨機分成幾組藏姐,對不同組的用戶采用不同的算法,然后通過統(tǒng)計不同組的評測指標(biāo)该贾,比較不同算法的好壞羔杨。
它的核心思想是:
a) 多個方案并行測試;
b) 每個方案只有一個變量不同;
c) 以某種規(guī)則優(yōu)勝劣汰杨蛋。
其中第2點暗示了A/B 測試的應(yīng)用范圍:A/B測試必須是單變量。
對于推薦系統(tǒng)的評價中六荒,唯一變量就是--推薦算法。
有個很棒的網(wǎng)站掏击,http://www.abtests.com卵皂,里面有很多通過實際AB測試提高網(wǎng)站用戶滿意度的例子砚亭。
AB測試的優(yōu)點是:
可以公平獲得不同算法實際在線時的性能指標(biāo)殴玛,包括商業(yè)上關(guān)注的指標(biāo);
缺點是:
周期較長添祸,必須進行長期的實驗才能得到可靠的結(jié)果滚粟;
大型網(wǎng)站做AB測試刃泌,可能會因為不同團隊同時進行各種測試對結(jié)果造成干擾,所以切分流量是AB測試中的關(guān)鍵亚侠。
不同的層以及控制這些層的團隊俗扇,需要從一個統(tǒng)一的地方獲得自己AB測試的流量,而不同層之間的流量應(yīng)該是正交的滞谢。
4)總結(jié)
一般來說除抛,一個新的推薦算法最終上線镶殷,需要完成上述的3個實驗。
首先绘趋,通過離線實驗證明它在很多離線指標(biāo)上優(yōu)于現(xiàn)有的算法陷遮;
其次垦江,通過用戶調(diào)查確定用戶滿意度不低于現(xiàn)有的算法;
最后绽族,通過在線AB測試確定它在我們關(guān)心的指標(biāo)上優(yōu)于現(xiàn)有的算法;
2. 評測指標(biāo)
評測指標(biāo)用于評測推薦系統(tǒng)的性能吧慢,有些可以定量計算赏表,有些只能定性描述匈仗。
1)用戶滿意度
用戶滿意度是評測推薦系統(tǒng)的重要指標(biāo)悠轩,無法離線計算攻泼,只能通過用戶調(diào)查或者在線實驗獲得。
調(diào)查問卷何鸡,需要考慮到用戶各方面的感受只搁,用戶才能針對問題給出準(zhǔn)確的回答氢惋。
在線系統(tǒng)中,用戶滿意度通過統(tǒng)計用戶行為得到骚亿。比如用戶如果購買了推薦的商品熊赖,就表示他們在一定程度上滿意,可以用購買率度量用戶滿意度俱笛。
一般情況传趾,我們可以用用戶點擊率浆兰、停留時間、轉(zhuǎn)化率等指標(biāo)度量用戶的滿意度榕订。
2)預(yù)測準(zhǔn)確度
預(yù)測準(zhǔn)確度蜕便,度量的是推薦系統(tǒng)預(yù)測用戶行為的能力。 是推薦系統(tǒng)最重要的離線評測指標(biāo)兼贸。
大部分的關(guān)于推薦系統(tǒng)評測指標(biāo)的研究,都是針對預(yù)測準(zhǔn)確度的鸯檬。因為該指標(biāo)可以通過離線實驗計算螺垢,方便了學(xué)術(shù)界的研究人員枉圃。
由于離線的推薦算法有不同的研究方向,準(zhǔn)確度指標(biāo)也不同坎穿,根據(jù)研究方向返劲,可分為:預(yù)測評分準(zhǔn)確度和TopN推薦。
a)預(yù)測評分準(zhǔn)確度
預(yù)測評分的準(zhǔn)確度孵延,衡量的是算法預(yù)測的評分與用戶的實際評分的貼近程度亲配。
這針對于一些需要用戶給物品評分的網(wǎng)站吼虎。
預(yù)測評分的準(zhǔn)確度指標(biāo),一般通過以下指標(biāo)計算:
平均絕對誤差(MAE)
MAE.png
MAE因其計算簡單娜饵、通俗易懂得到了廣泛的應(yīng)用官辈。但MAE指標(biāo)也有一定的局限性拳亿,因為對MAE指標(biāo)貢獻比較大的往往是那種很難預(yù)測準(zhǔn)確的低分商品愿伴。
所以即便推薦系統(tǒng)A的MAE值低于系統(tǒng)B隔节,很可能只是由于系統(tǒng)A更擅長預(yù)測這部分低分商品的評分寂呛,即系統(tǒng)A比系統(tǒng)B能更好的區(qū)分用戶非常討厭和一般討厭的商品瘾晃,顯然這樣區(qū)分的意義不大蹦误。
均方根誤差(RMSE)
RMSE.png
Netflix認為RMSE加大了對預(yù)測不準(zhǔn)的用戶物品評分的懲罰(平方項的懲罰),因而對系統(tǒng)的評測更加苛刻舱沧。
研究表明偶洋,如果評分系統(tǒng)是基于整數(shù)建立的(即用戶給的評分都是整數(shù))玄窝,那么對預(yù)測結(jié)果取整數(shù)會降低MAE的誤差。
b)TopN推薦
網(wǎng)站提供推薦服務(wù)時缸剪,一般是給用戶一個個性化的推薦列表东亦,這種推薦叫做TopN推薦。
TopN推薦的預(yù)測準(zhǔn)確率奋渔,一般通過2個指標(biāo)度量:
準(zhǔn)確率(precision)
召回率(recall)
R(u)是根據(jù)用戶在訓(xùn)練集上的行為給用戶做出的推薦列表嫉鲸,T(u)是用戶在測試集上的行為列表玄渗。
TopN推薦更符合實際的應(yīng)用需求狸眼,比如預(yù)測用戶是否會看一部電影,比預(yù)測用戶看了電影之后會給它什么評分更重要岁钓。
3)覆蓋率
覆蓋率(coverage)是描述一個推薦系統(tǒng)對物品長尾的發(fā)掘能力。
最簡單的定義是品嚣,推薦系統(tǒng)推薦出來的物品占總物品的比例钧大。
假設(shè)系統(tǒng)的用戶集合為U拓型,推薦系統(tǒng)給每個用戶推薦一個長度為N的物品列表R(u),覆蓋率公式為:
覆蓋率是內(nèi)容提供者關(guān)心的指標(biāo)册养,覆蓋率為100%的推薦系統(tǒng)可以將每個物品都推薦給至少一個用戶球拦。
除了推薦物品的占比帐我,還可以通過研究物品在推薦列表中出現(xiàn)的次數(shù)分布,更好的描述推薦系統(tǒng)的挖掘長尾的能力谣光。
如果分布比較平芬为,說明推薦系統(tǒng)的覆蓋率很高媚朦;如果分布陡峭,說明分布系統(tǒng)的覆蓋率較低孙乖。
信息論和經(jīng)濟學(xué)中有兩個著名指標(biāo)份氧,可以定義覆蓋率:
信息熵
p(i)是物品i的流行度除以所有物品流行度之和蜗帜。
基尼系數(shù)(Gini Index)
p(ij)是按照物品流行度p()從小到大排序的物品列表中第j個物品钮糖。
評測馬太效應(yīng)
馬太效應(yīng),是指強者越強阎抒,弱者越弱的效應(yīng)消痛。推薦系統(tǒng)的初衷是希望消除馬太效應(yīng)秩伞,使得各物品都能被展示給對它們感興趣的人群。
但是展氓,很多研究表明脸爱,現(xiàn)在的主流推薦算法(協(xié)同過濾)是具有馬太效應(yīng)的。評測推薦系統(tǒng)是否具有馬太效應(yīng)可以使用基尼系數(shù)空入。
如歪赢,G1是從初始用戶行為中計算出的物品流行度的基尼系數(shù)单料,G2是從推薦列表中計算出的物品流行度的基尼系數(shù),那么如果G1>G2递鹉,就說明推薦算法具有馬太效應(yīng)藏斩。
4)多樣性
為了滿足用戶廣泛的興趣狰域,推薦列表需要能夠覆蓋用戶不同興趣的領(lǐng)域,即需要具有多樣性屈溉。
多樣性描述了推薦列表中物品兩兩之間的不相似性抬探。假設(shè)s(i,j)在[0,1]區(qū)間定義了物品i和j之間的相似度,那么用戶u的推薦列表R(u)的多樣性定義如下:
推薦系統(tǒng)整體多樣性可以定義為所有用戶推薦列表多樣性的平均值:
5)新穎性
新穎性也是影響用戶體驗的重要指標(biāo)之一椰于。它指的是向用戶推薦非熱門非流行物品的能力瘾婿。
評測新穎度最簡單的方法烤咧,是利用推薦結(jié)果的平均流行度,因為越不熱門的物品笛谦,越可能讓用戶覺得新穎立膛。
此計算比較粗糙宝泵,需要配合用戶調(diào)查準(zhǔn)確統(tǒng)計新穎度。
6)驚喜度
推薦結(jié)果和用戶的歷史興趣不相似框往,但卻讓用戶滿意闯捎,這樣就是驚喜度很高瓤鼻。
目前驚喜度還沒有公認的指標(biāo)定義方式,最近幾年研究的人很多清焕,深入研究可以參考一些論文祭犯。
7)信任度
如果用戶信任推薦系統(tǒng),就會增加用戶和推薦系統(tǒng)的交互粥惧。
提高信任度的方式有兩種:
增加系統(tǒng)透明度
提供推薦解釋最盅,讓用戶了解推薦系統(tǒng)的運行機制。
利用社交網(wǎng)絡(luò)疤祭,通過好友信息給用戶做推薦
通過好友進行推薦解釋
度量信任度的方式饵婆,只能通過問卷調(diào)查侨核。
8)實時性
推薦系統(tǒng)的實時性灌灾,包括兩方面:
實時更新推薦列表滿足用戶新的行為變化;
將新加入系統(tǒng)的物品推薦給用戶些己;
9)健壯性
任何能帶來利益的算法系統(tǒng)都會被攻擊嘿般,最典型的案例就是搜索引擎的作弊與反作弊斗爭炉奴。
健壯性(robust,魯棒性)衡量了推薦系統(tǒng)抗擊作弊的能力赛糟。
2011年的推薦系統(tǒng)大會專門有一個推薦系統(tǒng)健壯性的教程砸逊,作者總結(jié)了很多作弊方法师逸,最著名的是行為注入攻擊(profile injection attack)。
就是注冊很多賬號对湃,用這些賬號同時購買A和自己的商品遗淳。此方法針對亞馬遜的一種推薦方法屈暗,“購買商品A的用戶也經(jīng)常購買的其他商品”脂男。
評測算法的健壯性宰翅,主要利用模擬攻擊:
a)給定一個數(shù)據(jù)集和算法爽室,用算法給數(shù)據(jù)集中的用戶生成推薦列表;
b)用常用的攻擊方法向數(shù)據(jù)集中注入噪聲數(shù)據(jù)嘿架;
c)利用算法在有噪聲的數(shù)據(jù)集上再次生成推薦列表耸彪;
d)通過比較攻擊前后推薦列表的相似度評測算法的健壯性忘苛。
提高系統(tǒng)健壯性的方法:
選擇健壯性高的算法扎唾;
選擇代價較高的用戶行為,如購買行為比瀏覽行為代價高扮宠;
在使用數(shù)據(jù)前狐榔,進行攻擊檢測,從而對數(shù)據(jù)進行清理收捣。
10)商業(yè)目標(biāo)
設(shè)計推薦系統(tǒng)時罢艾,需要考慮最終的商業(yè)目標(biāo)尽纽。不同網(wǎng)站具有不同的商業(yè)目標(biāo)弄贿,它與網(wǎng)站的盈利模式息息相關(guān)。
總結(jié):
作者認為期奔,對于可以離線優(yōu)化的指標(biāo)呐萌,在給定覆蓋率、多樣性罗晕、新穎性等限制條件下赠堵,應(yīng)盡量優(yōu)化預(yù)測準(zhǔn)確度顾腊。
3. 評測維度
如果推薦系統(tǒng)的評測報告中挖胃,包含了不同維度下的系統(tǒng)評測指標(biāo)酱鸭,就能幫我們?nèi)媪私庀到y(tǒng)性能。一般評測維度分3種:
用戶維度烁登,主要包括用戶的人口統(tǒng)計學(xué)信息蔚舀、活躍度以及是不是新用戶等赌躺;
物品維度,包括物品的屬性信息是钥、流行度悄泥、平均分以及是不是新加入的物品等肤粱;
時間維度狼犯,包括季節(jié)领铐,是工作日還是周末绪撵,白天還是晚上等祝蝠;