基于用戶的協(xié)同過濾算法是最古老的一種推薦算法桐玻。早在1992年篙挽,施樂公司的PARC實(shí)驗(yàn)室(IT史上最具影響力的實(shí)驗(yàn)室之一)設(shè)計(jì)了Tapestry系統(tǒng)來進(jìn)行郵件過濾,這也是協(xié)同過濾算法最早的應(yīng)用镊靴;1994年的GroupLens項(xiàng)目是推薦系統(tǒng)的又一個(gè)里程碑铣卡,在該項(xiàng)目中使用了基于用戶的協(xié)同過濾算法來進(jìn)行新聞推薦链韭。
基本算法
UserCF是一種基于用戶歷史行為的推薦算法,它的基本思想如下:為了給用戶A推薦物品煮落,系統(tǒng)會參考K個(gè)與用戶A興趣相近的用戶所喜好的物品敞峭。如果其中有用戶A尚未關(guān)注的物品,就很有可能是用戶A感興趣的蝉仇,系統(tǒng)就可以將這些物品推薦給用戶A旋讹。具體的說,基于協(xié)同過濾的系統(tǒng)轿衔,通常具有以下幾個(gè)特點(diǎn):
- 如何收集用戶喜好
- 如何評價(jià)用戶間的相似程度
- 如何為目標(biāo)用戶進(jìn)行推薦
用戶喜好收集
首先沉迹,系統(tǒng)可以收集用戶對物品的喜好程度。由于協(xié)同過濾算法的輸入是一個(gè)user-item的rating矩陣害驹,所以我們需要在實(shí)際問題中提煉出用戶對物品喜好程度(rating)的數(shù)值表示鞭呕。對于不同的系統(tǒng),有一些不同的實(shí)現(xiàn)
- 評分宛官,顯性評分琅拌,可以歸一化后直接使用
- 投票,顯性評分摘刑,贊作為正評分进宝,踩作為負(fù)評分
- 轉(zhuǎn)發(fā),隱性評分枷恕,按布爾型處理党晋,轉(zhuǎn)發(fā)在一定程度上表現(xiàn)了對物品的喜好
- 收藏,隱性評分徐块,按布爾型處理未玻,收藏在一定程度上表現(xiàn)了對物品的喜好
- 回復(fù)/評論,隱性評分胡控,對回復(fù)和評論的文本內(nèi)容進(jìn)行情感分析可以得到用戶對物品的喜好程度
- 點(diǎn)擊扳剿,隱性評分,用戶的點(diǎn)擊一定程度上反映了物品是否引起了用戶的注意昼激,所以也可以反映用戶的喜好
- 頁面停留時(shí)間庇绽,隱性評分,用戶提留時(shí)間長橙困,說明物品是否引起了用戶的注意瞧掺,缺點(diǎn)是噪音較大
- 購買,隱性評分凡傅,購買物品是用戶喜好的一個(gè)很強(qiáng)的表示
除此之外辟狈,不同的系統(tǒng)還可以根據(jù)自身特點(diǎn)采用不用的用戶行為。如音樂推薦系統(tǒng)中的”完整收聽”,微博用戶推薦系統(tǒng)中的“關(guān)注”等等哼转。
在一個(gè)實(shí)際的系統(tǒng)中明未,用戶的行為往往不是單一的,比如在微博推薦系統(tǒng)中壹蔓,用戶對微博的操作包括點(diǎn)擊瀏覽亚隅、收藏、轉(zhuǎn)發(fā)庶溶、評論等等煮纵。如何組合不同的用戶行為,通常有兩種做法:
- 將不同的行為分組:一般可以分為“查看”和“購買”等等偏螺,然后基于不同的行為行疏,計(jì)算不同的用戶 / 物品相似度。類似于當(dāng)當(dāng)網(wǎng)或者 Amazon 給出的“購買了該圖書的人還購買了 ...”套像,“查看了圖書的人還查看了 ...”
- 根據(jù)不同行為反映用戶喜好的程度將它們進(jìn)行加權(quán)酿联,得到用戶對于物品的總體喜好。一般來說夺巩,顯式的用戶反饋比隱式的權(quán)值大贞让,但比較稀疏;同時(shí)相對于“查看”柳譬,“購買”行為反映用戶喜好的程度更大喳张,但這也因應(yīng)用而異。
Reference
[1]: [Coursera課程:推薦系統(tǒng)導(dǎo)論][1]
[2]: [探索推薦引擎內(nèi)部的秘密美澳,第 2 部分: 深入推薦引擎相關(guān)算法 - 協(xié)同過濾][2]
[3]: 推薦系統(tǒng)實(shí)踐
[4]: Recommender Systems:An Introduction
[5]: Herlocker, Jonathan L., et al. "An algorithmic framework for performing collaborative filtering." SIGIR09. ACM, 1999.
[1]:https://www.coursera.org/learn/recommender-systems/home
[2]:https://www.ibm.com/developerworks/cn/web/1103_zhaoct_recommstudy2/