什么才是好的推薦系統(tǒng)? 這是推薦系統(tǒng)需要解決的首要問題. 一個(gè)完整的推薦系統(tǒng)一般存在 3 個(gè)參與方: 用戶, 物品系統(tǒng)者和提供推薦系統(tǒng)的網(wǎng)站.
在介紹推薦系統(tǒng)的指標(biāo)之前, 首先看一下獲取這些指標(biāo)的主要實(shí)驗(yàn)方法. 主要有 3 種: 即離線實(shí)驗(yàn), 用戶調(diào)查和在線實(shí)驗(yàn).
離線試驗(yàn)的方法一般由如下幾個(gè)步驟組成:
通過日志系統(tǒng)獲取用戶行為數(shù)據(jù), 并按照一定格式生成一個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)集
將數(shù)據(jù)集按照一定的規(guī)則分成訓(xùn)練集合測(cè)試集
在訓(xùn)練集上訓(xùn)練用戶新區(qū)模型, 在測(cè)試集上進(jìn)行預(yù)測(cè)
通過離線標(biāo)準(zhǔn)評(píng)測(cè)算法在測(cè)試集上的預(yù)測(cè)結(jié)果. 缺點(diǎn)是無法獲取商業(yè)是的指標(biāo), 并且離線實(shí)驗(yàn)和商業(yè)指標(biāo)上存在差距
用戶調(diào)查是需要一些真實(shí)的用戶, 在推薦系統(tǒng)上完成一些任務(wù). 根據(jù)他們的答案和行為了解系統(tǒng)的性能. 可以完成離線時(shí)沒有辦法評(píng)測(cè)的用戶的主觀感受, 因?yàn)楦哳A(yù)測(cè)率不等于高用戶滿意度. 但是這種方式成本較高, 同時(shí)還要保證樣本用戶的可靠性.
在完成離線實(shí)驗(yàn)和必要的用戶調(diào)查后, 可以將推薦系統(tǒng)上線做 AB 測(cè)試, 將系統(tǒng)和舊的算法進(jìn)行比較. AB 測(cè)試的優(yōu)點(diǎn)是可以公平獲得不同算法實(shí)際在線時(shí)的性能指標(biāo), 包括商業(yè)上關(guān)注的指標(biāo). AB 測(cè)試的缺點(diǎn)主要是周期比較長, 必須進(jìn)行長期的實(shí)驗(yàn)才能得到可靠的結(jié)果. 因此一般不會(huì)用 AB 測(cè)試測(cè)試所有的算法, 而只是用它測(cè)試那些在離線試驗(yàn)和用戶調(diào)查中表現(xiàn)很好的算法. 一般來說, 一個(gè)新的推薦算法最終上線, 需要完成上面所說的 3 個(gè)試驗(yàn):
首先, 需要通過離線試驗(yàn)證明它在很多離線指標(biāo)上優(yōu)于現(xiàn)有的算法
然后, 需要用過用戶調(diào)查確定它的用戶滿意度不低于現(xiàn)有的算法
最后, 通過在線的 AB 測(cè)試確定它在我們關(guān)心的指標(biāo)上優(yōu)于現(xiàn)有的算法
在線試驗(yàn)
評(píng)測(cè)指標(biāo)可以用于評(píng)價(jià)推薦系統(tǒng)各方面的性能.
用戶作為推薦系統(tǒng)的重要參與者, 其滿意度是評(píng)測(cè)的最重要指標(biāo). 但是, 用戶滿意度沒有辦法離線計(jì)算, 只能通過用戶調(diào)查或者在線試驗(yàn)獲得.
用戶調(diào)查獲得用戶滿意度主要是用過調(diào)查問卷的形式. 用戶對(duì)推薦系統(tǒng)的滿意度分為不同的層次.
GroupLens 曾經(jīng)做過一個(gè)論文推薦系統(tǒng)的調(diào)查問卷. 該問卷的調(diào)查問題是請(qǐng)問下面哪句話最能描述你看到推薦結(jié)果后的感受?
推薦的論文都是我非常想看的
推薦的論文很多我都看過了, 確實(shí)是符合我興趣的不錯(cuò)論文
推薦的論文和我的研究興趣是相關(guān)的, 但我并不喜歡
不知道為什么會(huì)推薦這些論文, 它們和我的興趣絲毫沒有關(guān)系
由此可以看出, 這個(gè)調(diào)查問卷不是簡(jiǎn)單地詢問用戶對(duì)結(jié)果是否滿意, 而是從不同的側(cè)面詢問用戶對(duì)結(jié)果的不同感受. 比如, 如果僅僅問用戶是否滿意, 用戶可能心里認(rèn)為大體滿意, 但是對(duì)某個(gè)方面還有點(diǎn)不滿, 因而可能很難回答這個(gè)問題. 因此在設(shè)計(jì)問卷時(shí)需要考慮到用戶各方面的感受, 這樣用戶才能針對(duì)問題給出自己準(zhǔn)確的回答.
在系統(tǒng)中, 用戶滿意度主要通過一些對(duì)用戶行為的統(tǒng)計(jì)得到. 比如在電子商務(wù)網(wǎng)站中, 用戶如果購買了推薦的商品, 就表示他們?cè)谝欢ǔ潭壬蠞M意. 因此, 我們可以利用購買率度量用戶滿意度. 此外, 有些網(wǎng)站會(huì)用過設(shè)計(jì)一些用戶反饋界面收集用戶滿意度.
預(yù)測(cè)準(zhǔn)確度度量一個(gè)推薦系統(tǒng)或者推薦算法預(yù)測(cè)用戶行為的能力. 這個(gè)指標(biāo)最重要的推薦系統(tǒng)離線評(píng)測(cè)指標(biāo), 從推薦系統(tǒng)誕生的那一天起, 幾乎 99% 與推薦相關(guān)的論文都在討論這個(gè)指標(biāo). 這主要是因?yàn)樵撝笜?biāo)可以通過離線試驗(yàn)計(jì)算, 方便了很多學(xué)術(shù)界的研究人員研究推薦算法.
一般我們的離線推薦算法有兩個(gè)不同的方向, 一個(gè)是評(píng)分預(yù)測(cè), 另一個(gè)是 TopN 推薦.
很多提供推薦服務(wù)的網(wǎng)站都有一個(gè)讓用戶給物品打分的功能. 那么, 如果知道了用戶對(duì)物品的歷史評(píng)分, 就可以從中習(xí)得用戶的興趣模型, 并預(yù)測(cè)該用戶在將來看到一個(gè)他沒有過分的物品時(shí), 會(huì)給這個(gè)物品評(píng)多少分. 預(yù)測(cè)用戶對(duì)物品評(píng)分的行為稱為預(yù)測(cè).
評(píng)分預(yù)測(cè)的預(yù)測(cè)準(zhǔn)確度一般用過均方根誤差 (RMSE) 和平均絕對(duì)誤差 (MAE) 計(jì)算.
ef RMSE(records): return math.sqrt(sum([(rui-pui)*(rui-pui) for u,i,rui,pui in records])/float(len(records))) def MAE(records): return sum([abs(rui-pui) for u,i,rui,pui in records])/ float(len(records))
令 R(u) 是根據(jù)用戶在訓(xùn)練集上的行為給用戶做出的推薦列表, 而 T(u) 是用戶在測(cè)試集上的行為列表. 那么. 推薦結(jié)果的召回率定義為:
def PrecisionRecall(test, N): hit = 0 n_recall = 0 n_precision = 0 for user, items in test.items(): rank = Recommend(user, N) hit = len(rank & items) n_recall = len(items) n_precision = N return [hit / (1.0 * n_recall), hit / (1.0 * n_precision)]
關(guān)于評(píng)分預(yù)測(cè)和 TopN 推薦的討論:
網(wǎng)站在提供服務(wù)時(shí), 一般是給用戶一個(gè)個(gè)性化的推薦列表, 這種推薦叫做 TopN 推薦. TopN 推薦的預(yù)測(cè)準(zhǔn)確率一般通過準(zhǔn)確率 (precision) / 召回率 (recall) 度量.
評(píng)分預(yù)測(cè)一直是推薦系統(tǒng)研究的熱點(diǎn), 絕大多數(shù)推薦系統(tǒng)的研究都是基于用戶評(píng)分?jǐn)?shù)據(jù)的評(píng)分預(yù)測(cè). 這主要是因?yàn)? 一方面推薦系統(tǒng)早期研究組 GroupLens 的研究主要就是基于電影評(píng)分?jǐn)?shù)據(jù) MovieLens 進(jìn)行的. 其次, Netflix 大賽也主要面向評(píng)分預(yù)測(cè)問題. 因而, 很多研究人員都將研究精力集中在優(yōu)化評(píng)分預(yù)測(cè)的 RMSE 上. 對(duì)此, 亞馬遜前科學(xué)家 Greg Linden 有不同的看法. 2009 年, 他在 Communications of the ACM 網(wǎng)站發(fā)表了一篇文章, 指出電影推薦的目的時(shí)找到用戶最有可能感興趣的電影, 而不是預(yù)測(cè)用戶看了電影后會(huì)給電影什么樣的評(píng)分. 因此, TopN 推薦更符合實(shí)際的應(yīng)用需求. 也許有一部電影用戶看了之后會(huì)給很高的分?jǐn)?shù), 但用戶看的可能性非常小. 因此, 預(yù)測(cè)用戶是否會(huì)看一部電影, 應(yīng)該比預(yù)測(cè)用戶看了電影后會(huì)給它什么評(píng)分更加重要.
來源:https://www.icode9.com/content-4-790301.html聯(lián)系客服