如何搭建一個(gè)推薦系統(tǒng)?
筆者重讀《推薦系統(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):
- 解決信息過(guò)載問(wèn)題;
- 挖掘長(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ǔ)邏輯是給用戶推薦和他興趣相似的其他用戶喜歡的物品,步驟如下:
- 找到和目標(biāo)用戶興趣相似的用戶集合;
- 找到這個(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ǔ)邏輯是給用戶推薦和他之前喜歡的物品相似的物品,步驟如下:
- 計(jì)算物品之間的相似度;
- 根據(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é)議。
- 目前還沒(méi)評(píng)論,等你發(fā)揮!