推薦系統(tǒng)實踐-評測

此文是根據(jù)《推薦系統(tǒng)實踐》部分整理而來恨胚。

PART 1

首先,最核心的問題是

什么才是好的推薦系統(tǒng)炎咖?

好的推薦系統(tǒng)需要考慮到三個參與方:

  • 用戶方
  • 內(nèi)容提供方
  • 產(chǎn)品方

通常我們認知中認為一個好的推薦系統(tǒng)即是提供給用戶想要的內(nèi)容赃泡,但是同樣要考慮到另外兩方,總結(jié)起來就是三句話:

  • 用戶能夠獲得感興趣的內(nèi)容
  • 內(nèi)容能推送到對其感興趣的用戶
  • 系統(tǒng)能夠獲得良好的反饋和收益

舉例就是推薦一批書給用戶乘盼,不僅用戶能夠獲得感興趣的書升熊,每本書同樣需要推送到對其感興趣的用戶手中。如果有一本書非常熱門绸栅,大家都感興趣级野,那么對用戶方是滿足了,但是內(nèi)容提供方的其他書就沒有獲得推薦粹胯,這也是不成功的蓖柔。

PART 2

其次,第二個問題是

如何評測相關(guān)指標的數(shù)據(jù)?

推薦系統(tǒng)主要分為三個實驗方法

  • 離線實驗
  • 用戶調(diào)查(Q:如何在在線實驗之前進行用戶調(diào)查风纠?)
  • 在線實驗
1. 離線實驗

離線實驗的方法一般由如下的幾個步驟構(gòu)成:
(1)通過日志系統(tǒng)獲得用戶行為數(shù)據(jù)况鸣,并按照一定格式生成一個標準的數(shù)據(jù)集;
(2)將數(shù)據(jù)集按照一定的規(guī)則分成訓練集和測試集竹观;
(3)將訓練集上訓練用戶興趣模型镐捧,在測試集上進行預測潜索;
(4)通過事先定義的離線指標評測算法在測試集上的預測結(jié)果。
優(yōu)點:
(1)不需要有對實際系統(tǒng)的控制權(quán)懂酱;
(2)不需要用戶參與試驗竹习;
(3)速度快、可以測試大量算法列牺。
缺點:
(1)無法計算商業(yè)上關(guān)心的指標整陌,如點擊率、轉(zhuǎn)化率瞎领;(why?)
(2)離線實驗的指標和商業(yè)指標存在差距泌辫。

2. 用戶調(diào)查

離線實驗有個缺點:離線實驗的指標和商業(yè)指標存在差距。

比如用戶滿意度默刚,離線實驗可以計算出預測準確度等量化的指標甥郑,但是產(chǎn)品最終的目的是為了讓用戶滿意逃魄,而用戶滿意度本身是一個很主觀荤西、無法量化的指標,要測試真實環(huán)境下的用戶滿意度(或者其他用戶主觀感受指標)伍俘,就可以通過用戶調(diào)查來獲得邪锌。

但是用戶調(diào)查有很多點需要注意:
(1)方式多樣。主觀的指標不能僅通過一種方式例如問卷來獲得癌瘾,得多個維度綜合觅丰,所以調(diào)查的方式得多樣化;
(2)成本高妨退。用戶需要花時間妇萄,如果調(diào)查人數(shù)少,結(jié)論沒有統(tǒng)計意義咬荷;如果人數(shù)多冠句,成本就會非常高;
(3)設計實驗困難幸乒。首先懦底,用戶調(diào)查要保證是雙盲實驗,防止用戶的主觀感受受到影響罕扎;其次聚唐,用戶群選擇需要考慮到分布的隨機,性別腔召、年齡杆查、活躍度都需要考慮到;
(4)結(jié)果不穩(wěn)定臀蛛。本身主觀的感受隨著環(huán)境的變化而變化根灯,用戶因為任何額外因素都有可能改變主觀感受,因此得到的結(jié)果本身不穩(wěn)定,只具有部分參考價值烙肺。

3. 在線實驗

在完成離線實驗和必要的用戶調(diào)查后纳猪,可以將推薦系統(tǒng)上線做AB測試
同樣有幾點需要注意:
(1)AB test 的好處是顯而易見的,可以公平獲得不同算法實際在線時的性能指標桃笙;
(2)AB test 和用戶調(diào)查一樣氏堤,同樣需要考慮到分布的隨機,盡量要將與最終指標有相關(guān)性的因素都列出來搏明,總而言之就是切分流量是AB test 的關(guān)鍵鼠锈;
(3)AB test 的一個重要缺點就是實驗周期長,這樣才能得到可靠的結(jié)果星著,因此AB test 不應該測試所有的算法购笆,而是只測試在離線實驗和用戶調(diào)查中表現(xiàn)很好的算法;
(4)如果有用戶標簽庫的話虚循,會極大的幫助在線實驗同欠。

4. 總結(jié)

一個新的推薦算法最終上線,需要完成上面所說的3個實驗:
(1)首先横缔,需要通過離線實驗證明它在很多離線指標上優(yōu)于現(xiàn)有的算法铺遂;
(2)然后,需要通過用戶調(diào)查確定它的用戶滿意度不低于現(xiàn)有的算法茎刚;
(3)最后襟锐,通過在線等AB測試確定它在我們關(guān)心的指標上優(yōu)于現(xiàn)有的算法。

PART 3

最后的問題是

評測指標有哪些膛锭?

1. 用戶滿意度

用戶滿意度可以通過直接和間接的方式得到
(1)直接的方式粮坞,主要是通過調(diào)查問卷薄霜。調(diào)查問卷的設計也非常有技巧砚婆,本人在《社會心理學》中看過關(guān)于用戶調(diào)研統(tǒng)計以及調(diào)查問卷設計的內(nèi)容热芹,如果有興趣可以查看翘鸭,但是就個人而言覺得無論是學習成本還是調(diào)查成本都遠遠高出收益葫辐,所以不是很支持這種方式肴掷。
(2)間接的方式瓣俯,主要通過對用戶行為的統(tǒng)計肋乍。顯性的有俊马,贊/踩丁存、評分等等,看業(yè)務產(chǎn)品的設計柴我;隱性的有點擊率解寝、用戶停留時間、轉(zhuǎn)化率等等艘儒。需要注意的是每種用戶行為在設計上是否有偏差聋伦,是否正向反饋/負向反饋傾向過于明顯夫偶。

2. 預測準確度

預測準確度是指推薦算法預測用戶行為的能力,是最重要的推薦系統(tǒng)離線評測指標觉增。
需要注意的一點是:準確的預測并不代表好的推薦兵拢,比如說用戶本來就要買一本書,無論是否推薦都購買逾礁,這樣推薦出去就并不是一次好的推薦说铃。
在計算該指標時需要有一個離線的數(shù)據(jù)集,該數(shù)據(jù)集包含用戶的歷史行為記錄嘹履,然后將該數(shù)據(jù)集通過時間分成訓練集和測試集腻扇,最后通過在訓練集上建立用戶的行為和興趣模型預測用戶在測試集上的行為,并計算預測行為和測試集上實際行為的重合度作為預測準確度砾嫉。
下面從幾個不同的研究方向介紹預測準確度指標:

  • 評分預測
    評分預測基于有一個打分的功能幼苛,預測該用戶在將來看到一個他沒有評過分的物品時,會給這個物品評多少分焕刮。
    評分預測的預測準確度一般通過均方根誤差(RMSE)和平均絕對誤差(MAE)計算舶沿。對于 測試集中的一個用戶 u 和物品 i,令 rui 是用戶對物品 i 的實際評分,而 r?ui 是推薦算法給出的預測評分,那么RMSE的定義為:


    Paste_Image.png

    MAE采用絕對值計算預測誤差,它的定義為:


    Paste_Image.png

    關(guān)于RMSE和MAE這兩個指標的優(yōu)缺點, Netflix認為RMSE加大了對預測不準的用戶物品評分的懲罰(平方項的懲罰),因而對系統(tǒng)的評測更加苛刻。
    研究表明,如果評分系統(tǒng)是基于整數(shù)建立的(即用戶給的評分都是整數(shù)),那么對預測結(jié)果取整會降低MAE的誤差济锄。
  • TopN 推薦
    網(wǎng)站在提供推薦服務時,一般是給用戶一個個性化的推薦列表,這種推薦叫做TopN推薦暑椰。TopN推薦的預測準確率一般通過準確率(precision)/召回率(recall)度量霍转。
    令R(u)是根據(jù)用戶在訓練集上的行為給用戶作出的推薦列表,而T(u)是用戶在測試集上的行為列表荐绝。那么,推薦結(jié)果的召回率定義為:

    Paste_Image.png

    推薦結(jié)果的準確率定義為:
    Paste_Image.png

    有的時候,為了全面評測TopN推薦的準確率和召回率,一般會選取不同的推薦列表長度N, 計算出一組準確率/召回率,然后畫出準確率/召回率曲線(precision/recall curve)。

  • 對比
    TopN推薦更符合實際的應用需求避消,推薦系統(tǒng)的目的是為了給用戶推薦更感興趣的內(nèi)容低滩,而不是預測他會給多少評分,也許有一部電影用戶看了后會給很高的分數(shù)岩喷,但是他看的可能性很小恕沫。

3. 覆蓋率

覆蓋率描述一個推薦系統(tǒng)對物品長尾的發(fā)掘能力。覆蓋率最簡單的定義為:推薦系統(tǒng)能夠推薦出來的物品占總物品集合的比例纱意。 設系統(tǒng)的用戶 為U,推薦系統(tǒng)給每個用戶推薦一個長度為N的物品列表R(u)婶溯。那么推薦系統(tǒng)的覆蓋率可通過下面的公式計算:


Paste_Image.png

覆蓋率主要針對內(nèi)容提供者,其中熱門排行榜的推薦覆蓋率是很低的偷霉,所以一個好的推薦系統(tǒng)不僅需要有比較高的用戶滿意度迄委,也要有較高的覆蓋率。對于feed流类少,個人認為覆蓋率不用太在意叙身,因為本身目的就是為了篩選高質(zhì)量的內(nèi)容,對于低質(zhì)量的內(nèi)容就應該不展示硫狞;相反電商類的物品對覆蓋率的要求會很高信轿。
上述對于覆蓋率的定義過于粗略晃痴,因為即使覆蓋率為100%,不同內(nèi)容的展示程度、流行分布也是不一樣的财忽,為了更細致地描述推薦系統(tǒng)發(fā)掘長尾的能力倘核,需要統(tǒng)計推薦列表中不同物品出現(xiàn)次數(shù)的分布。如果所有的內(nèi)容都出現(xiàn)在列表中且出現(xiàn)次數(shù)相似即彪,那么這個推薦系統(tǒng)發(fā)掘長尾的能力就很好笤虫。因此,如果分布比較平緩祖凫,那么覆蓋率高琼蚯;如果分布陡峭,那么覆蓋率低惠况。
在信息論和經(jīng)濟學中有兩個著名的指標可以用來定義覆蓋率遭庶。第一個是信息熵:


Paste_Image.png

這 p(i)是物品i的流行度除以所有物品流行度之和。
第二個指標是基尼系數(shù):


Paste_Image.png

這里,ij是按照物品流行度p()從小到大排序的物品列表中第j個物品稠屠。


Paste_Image.png

推薦系統(tǒng)的初衷是消除馬太效應峦睡,使得各個物品都能被展示給對它們感興趣的某一類人群,但是很多研究表明現(xiàn)在的主流推薦算法是具有馬太效應的权埠,不過對于內(nèi)容為主的產(chǎn)品個人認為反而要利用好馬太效應榨了,因為不僅需要將各個內(nèi)容展示給對應的人群,更好篩選出高質(zhì)量的內(nèi)容攘蔽,其中馬太效應反而能夠有利于篩選內(nèi)容龙屉。

4. 多樣性

用戶的興趣是廣泛的,目前的推薦算法由于注重準確度很容易造成過多的收斂满俗,但是實際上內(nèi)容推薦也需要多樣性转捕,覆蓋不同的興趣點。
多樣性描述了推薦列表中物品兩兩之間的不相似性唆垃。因此五芝,多樣性和相似性是對應的。 假設 s(i, j)∈[0,1] 義了物品i和j之間的相似度, 那么用戶 u 的推薦列表 R(u) 的 多樣性定義如下:


Paste_Image.png

而推薦系統(tǒng)的整體多樣性可以定義為為所有用戶推薦列表多樣性的平均值:


Paste_Image.png

以社區(qū)為例辕万,如果某個用戶80%的時間在看他某一領(lǐng)域枢步,另外20%想看看別的新聞或者其他什么的時候。推薦系統(tǒng)推薦10篇文章渐尿,應該8篇與他領(lǐng)域相關(guān)醉途,另外兩篇屬于其他方面。推薦的時候需要綜合考慮到主要興趣和多樣性涡戳。

5. 新穎性

新穎的推薦是指給用戶推薦那些他們以前沒有聽說過的物品结蟋。新穎性的實現(xiàn)方法有兩種:
1)把用戶之前在網(wǎng)站中對其有過行為的物品從推薦列表中過濾掉。缺點是用戶可能在別的地方看到過渔彰。
2)利用推薦結(jié)果的平均流行度嵌屎,因為越不熱門的物品越可能讓用戶覺得新穎推正,所以推薦結(jié)果中物品的平均熱門程度較低,推薦結(jié)果就可能有較高的新穎性宝惰。但是得到的結(jié)果是比較粗略的植榕,新穎性需要用戶調(diào)查得到更準確的結(jié)果。
有一個問題是尼夺,通過犧牲精度來提高多樣性和新穎性是很容易的尊残,但是在不犧牲精度的情況下提高多樣性和新穎性。

6. 驚喜度

如果推薦結(jié)果和用戶的歷史興趣不相似淤堵,但卻讓用戶覺得滿意寝衫,那么就可以說推薦結(jié)果的驚喜度很高;推薦的新穎性僅僅取決于用戶是否聽過這個推薦結(jié)果拐邪。
目前沒有公認的驚喜度指標定義方式慰毅,只有定性的度量方式:首先定義推薦結(jié)果和用戶歷史上喜歡的物品的相似度,其次定義用戶對推薦結(jié)果的滿意度扎阶。
驚喜度總體而言還沒有很成熟汹胃。

7. 信任度

對于基于機器學習的自動推薦系統(tǒng),會存在信任度的問題东臀,如果用戶信任推薦系統(tǒng)着饥,那么就會增加用戶和推薦系統(tǒng)的交互。
度量推薦系統(tǒng)的信任度只能通過問卷調(diào)查的方式惰赋,詢問用戶是否信任推薦系統(tǒng)的推薦結(jié)果宰掉。
提高推薦系統(tǒng)的信任度主要有兩種方法:
1)增加推薦系統(tǒng)的透明度,主要辦法是提供推薦解釋谤逼。讓用戶了解并認同推薦系統(tǒng)的運行機制贵扰,才會提高用戶對推薦系統(tǒng)的信任度仇穗。
2)利用社交信息流部,利用用戶的好友信息給用戶做推薦,并用好友進行推薦解釋纹坐。

8. 實時性

在很多網(wǎng)站中枝冀,因為物品(新聞、微博等)具有很強的時效性耘子,因此在這些領(lǐng)域中果漾,實時性就是個很重要的指標。
推薦系統(tǒng)的實時性包括兩個方面:
1)推薦系統(tǒng)需要實時地更新推薦列表來滿足用戶新的行為變化谷誓。比如當一個用戶購買了iPhone绒障,如果推薦系統(tǒng)能夠立即給他推薦相關(guān)配件,那么肯定比第二天再給用戶推薦相關(guān)配件更有價值捍歪。很多推薦系統(tǒng)都會在離線狀態(tài)每天計算一次用戶推薦列表户辱,然后于在線期間將推薦列表展示給用戶鸵钝,這種設計無法滿足實時性。與用戶行為相應的實時性庐镐,可以通過推薦列表的變化速率來評測恩商,如果推薦列表在用戶有行為后變化不大,那么推薦系統(tǒng)的實時性不高必逆。
2)實時性的第二個方面是推薦系統(tǒng)需要能夠?qū)⑿录尤胂到y(tǒng)的物品推薦給用戶怠堪。可以通過標簽的形式來實現(xiàn)名眉。

9. 健壯性

健壯性衡量了一個推薦系統(tǒng)抗擊作弊的能力粟矿。作弊有一種方式就是行為注入攻擊,包括刷單损拢、刷評分等用戶行為來作弊嚷炉。
算法健壯性的評測主要利用模擬攻擊。首先探橱,給定一個數(shù)據(jù)集和一個算法申屹,可以用這個算法給這個數(shù)據(jù)集中的用戶生成推薦列表。然后隧膏,用常用的攻擊方法向數(shù)據(jù)集中注入噪聲數(shù)據(jù)哗讥,然后利用算法在注入噪聲后的數(shù)據(jù)集上再次給用戶生成推薦列表。最后胞枕,通過比較攻擊前后推薦列表的相似度評測算法的健壯性杆煞。如果攻擊后的推薦列表相對于攻擊前沒有發(fā)生大的變化,就說明算法比較健壯腐泻。
提高系統(tǒng)的健壯性兩個方法:
1)設計推薦系統(tǒng)時盡量使用代價比較高的用戶行為决乎。
2)使用數(shù)據(jù)前,進行攻擊檢測派桩,從而對數(shù)據(jù)進行清理构诚。‘

10. 商業(yè)目標

設計推薦系統(tǒng)需要考慮到最終的商業(yè)目標铆惑,這些目標依據(jù)不同公司的需求而定范嘱。

PART 4

1. 用一張表總結(jié)獲取評測指標的途徑
Paste_Image.png

對于可以離線優(yōu)化的指標,作者的看法是在給定覆蓋率员魏、多樣性丑蛤、新穎性等限制條件下,盡量優(yōu)化預測準確度撕阎。用公式表達受裹,離線實驗的優(yōu)化目標是:
最大化預測準確度,使得 覆蓋度>A & 多樣性>B & 新穎性>C

2. 評測維度

有時候虏束,一個推薦算法可能在某種特定的場景下性能比較好棉饶,可以通過不同的維度評測脑慧,從而融合不同推薦算法來取得最好的整體性能。
一般來說砰盐,評測維度為3種

  • 用戶維度闷袒。主要包括用戶的人口學統(tǒng)計信息、活躍度以及是否新用戶
  • 物品維度岩梳。包括物品的屬性信息囊骤、流行度、平均分以及是不是新加入的物品等
  • 時間維度冀值。包括季節(jié)也物,是工作日還是周末,是白天還是晚上等列疗。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末滑蚯,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子抵栈,更是在濱河造成了極大的恐慌告材,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件古劲,死亡現(xiàn)場離奇詭異斥赋,居然都是意外死亡,警方通過查閱死者的電腦和手機产艾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門疤剑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人闷堡,你說我怎么就攤上這事隘膘。” “怎么了杠览?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵弯菊,是天一觀的道長。 經(jīng)常有香客問我倦零,道長误续,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任扫茅,我火速辦了婚禮,結(jié)果婚禮上育瓜,老公的妹妹穿的比我還像新娘葫隙。我一直安慰自己,他們只是感情好躏仇,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布恋脚。 她就那樣靜靜地躺著腺办,像睡著了一般。 火紅的嫁衣襯著肌膚如雪糟描。 梳的紋絲不亂的頭發(fā)上躬拢,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天,我揣著相機與錄音菱蔬,去河邊找鬼史侣。 笑死惊橱,一個胖子當著我的面吹牛弛针,可吹牛的內(nèi)容都是我干的削茁。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了讨阻?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤钝吮,失蹤者是張志新(化名)和其女友劉穎棘催,沒想到半個月后次坡,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體郑叠,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡沸版,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蕾殴。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坚踩。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖胜宇,靈堂內(nèi)的尸體忽然破棺而出耀怜,到底是詐尸還是另有隱情恢着,我是刑警寧澤桐愉,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站掰派,受9級特大地震影響从诲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜靡羡,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一系洛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧略步,春花似錦描扯、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至杭煎,卻和暖如春恩够,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背羡铲。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工蜂桶, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人也切。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓扑媚,卻偏偏與公主長得像,于是被迫代替她去往敵國和親雷恃。 傳聞我的和親對象是個殘疾皇子疆股,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容