如何搭建一個(gè)推薦系統(tǒng)?

0 評(píng)論 5348 瀏覽 53 收藏 8 分鐘

筆者重讀《推薦系統(tǒng)實(shí)踐》,總結(jié)了其中要點(diǎn),也闡述了自己的一些想法,分享給大家,供大家參考學(xué)習(xí)。

在這個(gè)信息過(guò)載的時(shí)代,個(gè)性化推薦系統(tǒng)是我們?nèi)粘6紩?huì)接觸到的,最近因?yàn)橐o小伙伴分享,重新過(guò)了一下《推薦系統(tǒng)實(shí)踐》這本書(shū)的內(nèi)容,也把其中一些要點(diǎn)整理分享出來(lái)。

首先來(lái)說(shuō)說(shuō),為什么要有個(gè)性化推薦系統(tǒng),主要是為了以下兩點(diǎn):

  1. 解決信息過(guò)載問(wèn)題;
  2. 挖掘長(zhǎng)尾物品/信息。

推薦系統(tǒng)通過(guò)發(fā)掘用戶的行為,找到用戶的個(gè)性化需求,從而將長(zhǎng)尾物品準(zhǔn)確推薦給需要它的用戶,幫助用戶找到他們感興趣但很難發(fā)現(xiàn)的物品。

推薦算法評(píng)估指標(biāo)

  • 準(zhǔn)確率:準(zhǔn)確率是針對(duì)預(yù)測(cè)結(jié)果而言的,表示給用戶推薦的物品中,有多少是真正感興趣的。
  • 召回率:召回率是針對(duì)推薦的結(jié)果,它表示的是用戶感興趣的物品中,有多少個(gè)是系統(tǒng)推薦的。
  • 覆蓋率:反映了推薦算法挖掘長(zhǎng)尾物品的能力,如果所有物品都至少推薦給了1個(gè)用戶,則覆蓋率為100%。
  • 流行度:根據(jù)推薦物品的平均流行度進(jìn)行度量,如果推薦物品的流行度都比較高,則物品新穎度比較低。

常用推薦算法

協(xié)同過(guò)濾算法是基于用戶行為數(shù)據(jù)設(shè)計(jì)的推薦算法,其中主要包括三類(lèi)算法:「基于領(lǐng)域的方法」、「隱語(yǔ)義模型」、「基于圖的隨機(jī)游走算法」,這里主要給大家介紹一下「基于領(lǐng)域的方法」,分為User CF和Item CF兩種。

基于用戶的協(xié)同過(guò)濾(User Collaborative Filtering)

User CF的基礎(chǔ)邏輯是給用戶推薦和他興趣相似的其他用戶喜歡的物品,步驟如下:

  1. 找到和目標(biāo)用戶興趣相似的用戶集合;
  2. 找到這個(gè)集合中的用戶喜歡的,且目標(biāo)用戶沒(méi)有聽(tīng)說(shuō)過(guò)的物品推薦給目標(biāo)用戶。

設(shè)有兩個(gè)用戶u和v,N(u)表示用戶u曾經(jīng)有過(guò)正反饋的物品集合,可通過(guò)以下方式計(jì)算兩個(gè)用戶的興趣相似度:

Jaccard公式:

計(jì)算余弦相似度:

得到用戶的興趣相似度后,選擇與用戶興趣最相似的K個(gè)用戶,將他們的興趣物品(并排除目標(biāo)用戶已反饋過(guò)的物品),推薦給目標(biāo)用戶。

算法缺點(diǎn)

  • 隨著網(wǎng)站用戶數(shù)目越來(lái)越大,計(jì)算用戶興趣相似矩陣越來(lái)越困難;
  • 運(yùn)算時(shí)間復(fù)雜度和空間復(fù)雜度與用戶數(shù)增長(zhǎng)近似于平方關(guān)系。

因此,亞馬遜推出了-item CF。

基于物品的協(xié)同過(guò)濾(Item Collaborative Filtering)

User CF的基礎(chǔ)邏輯是給用戶推薦和他之前喜歡的物品相似的物品,步驟如下:

  1. 計(jì)算物品之間的相似度;
  2. 根據(jù)物品的相似度和用戶的歷史行為給用戶生成推薦列表。

通過(guò)計(jì)算喜歡物品 i 的用戶中有多少也喜歡物品 j,來(lái)計(jì)算兩個(gè)物品的相似度

得到物品的相似度后,選擇與其最相似的K個(gè)物品集合,推薦給目標(biāo)用戶。

User CF與Item CF算法的對(duì)比

推薦系統(tǒng)的評(píng)估維度

評(píng)估一個(gè)推薦系統(tǒng)的質(zhì)量,需要綜合多個(gè)維度進(jìn)行評(píng)估,核心維度如下:

  • 用戶滿意度:用戶后續(xù)行為反饋,調(diào)研
  • 預(yù)測(cè)準(zhǔn)確度:準(zhǔn)確度/召回率
  • 覆蓋率:對(duì)物品長(zhǎng)尾的挖掘能力,注意馬太效應(yīng)的影響
  • 多樣性:用戶興趣類(lèi)型分布
  • 新穎性:排除用戶歷史反饋物品,排除熱門(mén)物品
  • 驚喜度:非用戶歷史興趣,但是滿意
  • 信任度:透明度,推薦機(jī)制解釋程度
  • 實(shí)時(shí)性:是否可以針對(duì)用戶行為實(shí)時(shí)進(jìn)行反饋
  • 健壯性:防攻擊,反作弊
  • 商業(yè)目標(biāo)達(dá)成情況

冷啟動(dòng)

除了以上所述,搭建推薦系統(tǒng),還需要考慮的一個(gè)重要問(wèn)題就是“冷啟動(dòng)”,涉及冷啟動(dòng)的場(chǎng)景主要有以下三類(lèi):

1. 用戶冷啟動(dòng)

一個(gè)新用戶,沒(méi)有任何歷史行為數(shù)據(jù),怎么做推薦。

2. 物品冷啟動(dòng)

一個(gè)新上線的物品,沒(méi)有用戶對(duì)它產(chǎn)生過(guò)行為,怎么推薦給感興趣的用戶。

3. 系統(tǒng)冷啟動(dòng)

一個(gè)新開(kāi)發(fā)的網(wǎng)站,沒(méi)有用戶數(shù)據(jù),怎么做個(gè)性化推薦。

根據(jù)系統(tǒng)的場(chǎng)景屬性,可以設(shè)計(jì)不同的冷啟動(dòng)方式:

  • 提供非個(gè)性化推薦;
  • 利用用戶注冊(cè)信息如年齡性別等做粗顆粒度推薦;
  • 利用用戶社交關(guān)系;
  • 新用戶要求對(duì)一系列物品進(jìn)行反饋;
  • 對(duì)應(yīng)新物品,利用內(nèi)容屬性推薦給相似物品感興趣用戶;
  • 專(zhuān)家搭建多維度標(biāo)簽體系。

設(shè)計(jì)一個(gè)健全的推薦系統(tǒng),算法和策略需要綜合考慮多項(xiàng)因素,包括服務(wù)器、計(jì)算資源成本,人力成本,可持續(xù)性和可擴(kuò)展性等。

高質(zhì)量的推薦系統(tǒng)會(huì)使用戶對(duì)系統(tǒng)產(chǎn)生依賴(lài),因此,推薦系統(tǒng)不僅能為用戶提供個(gè)性化服務(wù),還能與用戶建立長(zhǎng)期穩(wěn)定的關(guān)系,提高用戶忠誠(chéng)度,防止用戶流失。

希望我的梳理可以給到一些啟發(fā)和參考。

 

本文由 @orca 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。

題圖來(lái)自Unsplash,基于CC0協(xié)議。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 目前還沒(méi)評(píng)論,等你發(fā)揮!