1.基于規(guī)則的推薦系統(tǒng)
? ? 1.1優(yōu)點(diǎn):
???????1.1.1簡(jiǎn)單直觀输吏;解釋性強(qiáng)
? ? ? ? 1.1.2開發(fā)以及維護(hù)簡(jiǎn)單
? ? 1.2缺點(diǎn):
? ? ? ? 1.2.1結(jié)果單一。
? ? ? ? 1.2.2馬太效應(yīng):馬太效應(yīng)是出自《圣經(jīng) 馬太福音》的一個(gè)典故色洞,社會(huì)學(xué)中的一種強(qiáng)者越強(qiáng)弱者越弱的現(xiàn)象,也就是說推薦系統(tǒng)是否會(huì)使被關(guān)注的事物更加被關(guān)注冠胯,被忽視的事物更加被忽視火诸。常用的協(xié)同過濾就有馬太效應(yīng)。比較簡(jiǎn)單的測(cè)試指標(biāo)就是信息熵荠察。
? ? ? ? 1.2.3較為依賴主觀經(jīng)驗(yàn)
2.熱門推薦
????2.1優(yōu)點(diǎn)(同上)
? ? 2.2缺點(diǎn):
? ? ? ? 2.2.1結(jié)果單一
? ? ? ? 2.2.2馬太效應(yīng)
? ? 2.3熱門推薦需要考慮的因素:
? ? ? ? 2.3.1時(shí)效性:推薦的時(shí)效性很好理解置蜀。
? ? ? ?2.3.2 推薦物品的質(zhì)量:推薦物品的質(zhì)量表示推薦給用戶需要考慮用戶對(duì)該物品是否感興趣。
? ? ? ? 2.3.3用戶與用戶行為的權(quán)重:用戶和用戶行為的權(quán)重表示某個(gè)用戶多次訪問與某個(gè)用戶很少訪問兩者是有很大的區(qū)別的
3.基于內(nèi)容的推薦系統(tǒng)
利用用戶的已知屬性或者興趣偏好悉盆,與物品內(nèi)容的屬性進(jìn)行匹配盯荤,以此為用戶推薦新的感興趣的物品。
基于用戶畫像的推薦
基于關(guān)鍵詞向量的推薦
? ? 3.1優(yōu)點(diǎn):
????????用戶之間是相互獨(dú)立的
????????可解釋型較強(qiáng)
????????可以推薦新的物品
????3.2缺點(diǎn):
? ? ? ? 3.2.1缺乏新穎度
? ? ? ? 3.2.2很難對(duì)新用戶進(jìn)行推薦(冷啟動(dòng)較弱)焕盟。這里可以考慮給熱門推薦秋秤;或者根據(jù)用戶的地域信息給出相應(yīng)的推薦;或者根據(jù)用戶實(shí)時(shí)行為數(shù)據(jù)進(jìn)行實(shí)時(shí)推薦
4.協(xié)同過濾
4.1基于近鄰的協(xié)同過濾:他關(guān)注的是用戶之間的相似度或者是物品之間的相似度脚翘。
? ? 4.1.1 Item-based?
????定義:基于Item-based推薦表示的是根據(jù)物品的相似性灼卢,某個(gè)用戶買了某個(gè)物品后,通過物品的相似性得到一些與該物品相類似的商品推薦給該用戶来农。對(duì)于物品 A鞋真,根據(jù)所有用戶的歷史偏好,喜歡物品 A 的用戶都喜歡物品 C沃于,得出物品 A 和物品 C 比較相似涩咖,而用戶 C 喜歡物品 A,那么可以推斷出用戶 C 可能也喜歡物品 C繁莹。
????應(yīng)用場(chǎng)景:
????當(dāng)Item的數(shù)量遠(yuǎn)小于User的數(shù)量時(shí)檩互,考慮用Item-based
????當(dāng)Item的比較穩(wěn)定時(shí),考慮用戶Item-based
? ? 4.1.2 User-based
????定義:基于user-based推薦表示的是根據(jù)用戶的相似度蒋困,某個(gè)用戶購買了相關(guān)的商品時(shí)盾似,與該用戶相似的用戶也購買了那些物品推薦給他。 對(duì)于用戶 A雪标,根據(jù)用戶的歷史偏好零院,這里只計(jì)算得到一個(gè)鄰居 - 用戶 C,然后將用戶 C 喜歡的物品 D 推薦給用戶 A村刨。
????應(yīng)用場(chǎng)景:
????當(dāng)user的數(shù)量遠(yuǎn)小于Item的數(shù)量時(shí)告抄,考慮用User-based
????當(dāng)Item不是特別穩(wěn)定時(shí),考慮用User-based
? ??4.1.3 相似度的計(jì)算方法
????????余弦相似度
????????皮爾森相關(guān)系數(shù)
????????jaccard相似系數(shù)
????????不論鄰居的“遠(yuǎn)近”嵌牺,只取最近相似的 K 個(gè)打洼,作為其鄰居涯竟。如圖 中的 A稳诚,假設(shè)要計(jì)算點(diǎn) 1 的 5- 鄰居,那么根據(jù)點(diǎn)之間的距離,我們?nèi)∽罱?5 個(gè)點(diǎn)李破,分別是點(diǎn) 2,點(diǎn) 3堕战,點(diǎn) 4默刚,點(diǎn) 7 和點(diǎn) 5。但很明顯我們可以看出芭毙,這種方法對(duì)于孤立點(diǎn)的計(jì)算效果不好筋蓖,因?yàn)橐」潭▊€(gè)數(shù)的鄰居,當(dāng)它附近沒有足夠多比較相似的點(diǎn)退敦,就被迫取一些不太相似的點(diǎn)作為鄰居粘咖,這樣就影響了鄰居相似的程度,比如圖 1 中侈百,點(diǎn) 1 和點(diǎn) 5 其實(shí)并不是很相似瓮下。
? ? 4.2基于(隱語義)模型的協(xié)同過濾
? ? 4.2.1將物品和用戶映射到相同的語義空間進(jìn)行計(jì)算相似度。主要用到的方法就是矩陣分解设哗。
? ? 4.2.2因子分解
????4.2.3 SVD唱捣,SVD++
????????????ALS矩陣分解(Spark MLlib)
? ??????????應(yīng)用矩陣分解的原因是由于用戶和物品構(gòu)成的矩陣在實(shí)際的應(yīng)用場(chǎng)景中,往往都是稀疏的或者存在缺失值的情況网梢。這個(gè)時(shí)候很難補(bǔ)充或者很難準(zhǔn)確的給出相應(yīng)的物品推薦震缭,并且復(fù)雜度較高。通過矩陣分解可以解決這類問題战虏。在FM算法當(dāng)中也有用到類似的原理拣宰。
????????把這個(gè)評(píng)分矩陣記為R,其中的元素表示user對(duì)item的打分烦感,“巡社?”表示未知的,也就是要去預(yù)測(cè)的手趣,現(xiàn)在問題:如何去預(yù)測(cè)未知的評(píng)分值呢晌该?對(duì)任意一個(gè)矩陣A,都有它的滿秩分解:
? ? ? ? SVD++:戶對(duì)商品的打分不僅取決于用戶和商品間的某種關(guān)系绿渣,還取決于用戶和商品獨(dú)有的性質(zhì)朝群,我們希望將這些性質(zhì)用基線評(píng)分(baseline estimates)來表示。例如中符,我們希望得到小明對(duì)電影《泰坦尼克號(hào)》的評(píng)分姜胖,首先我們得到所有電影的評(píng)分均值$\mu$為3.7分。然后淀散,我們得知該電影非常好看右莱,評(píng)分可能比平均分高0.5.另外蚜锨,小明是一個(gè)非常苛刻的觀眾慢蜓,評(píng)分可能比平均分低0.3.我們得到小明對(duì)電影《泰坦尼克號(hào)》的基線評(píng)分3.7+0.5-0.3=3.9分亚再。SVD++將損失函數(shù)第一項(xiàng)為總的平均分,bu為用戶u的屬性值胀瞪,bi為商品i的屬性值针余,再加入懲罰項(xiàng)目。
? ? 4.3 深度學(xué)習(xí)與矩陣分解
? ? 很多推薦系統(tǒng)大會(huì)有兩派意見:
? ? 不鼓勵(lì)使用深度學(xué)習(xí)(神經(jīng)網(wǎng)絡(luò))在推薦系統(tǒng)中凄诞,因?yàn)榭山忉屝暂^差;
????另外鼓勵(lì)的原因是高效忍级,準(zhǔn)確帆谍,大廠都在用。
????RecSys 2019最佳論文認(rèn)為現(xiàn)有深度學(xué)習(xí)加推薦算法帶來的基本上都是偽提升轴咱?《Are We Really Making Much Progress? A Worrying Analysis of Recent Neural Recommendation Approaches》闡述了兩者沖突汛蝙。
5.推薦系統(tǒng)的一般步驟?
? ??5.1召回
????????根據(jù)用戶長(zhǎng)期穩(wěn)定的興趣和即時(shí)的目標(biāo),得到可以推薦給用戶的物品候選集
????????結(jié)合具體的業(yè)務(wù)邏輯進(jìn)一步得到候選集
? ? 5.2排序
????????得到候選集后朴肺,需要對(duì)候選集中的物品進(jìn)行排序窖剑。
????????傳統(tǒng)的排序方式:相關(guān)系數(shù),重要性
????????point-wise戈稿,pair-wise西土,list-wise(遲點(diǎn)另開章節(jié)單獨(dú)評(píng)測(cè))三者排序中,關(guān)于ndcg鞍盗,pk和rmse的評(píng)測(cè)參考需了。
? ??????這里排序的模型可以考慮使用的特征類型:用戶特征肋乍、物 品特征、用戶-物品交互 特征敷存、場(chǎng)景特征等
? ? 5.3過濾/規(guī)則匹配
? ??????過濾一些bad case
? ??????根據(jù)用戶的歷史行為過濾一些用戶已經(jīng)購買過的物品
????5.4推薦系統(tǒng)的評(píng)價(jià)指標(biāo)
????????正確率墓造,召回率,F(xiàn)1值锚烦,ROC曲線觅闽,AUC值
????????轉(zhuǎn)化率相關(guān)的指標(biāo)
????????銷售額
????????排序相關(guān)的指標(biāo)
????????用戶體驗(yàn)相關(guān)的指標(biāo)
????????覆蓋率:用戶的覆蓋率和物品的覆蓋率
參考:
svd和als損失函數(shù)的分析:http://www.reibang.com/p/fc7391471d39
推薦系統(tǒng)源碼(數(shù)據(jù),benchmark挽牢,cpu等占用)分析:https://github.com/microsoft/recommenders
優(yōu)化的ALS和正則svd:https://blog.csdn.net/Hemk340200600/article/details/88633646#2RSVD_48
帶正則表達(dá)的svd源代碼:https://github.com/alabid/PySVD
推薦系統(tǒng)中矩陣分解的總結(jié):https://blog.csdn.net/qq_19446965/article/details/82079367
ALS和SVD源代碼分析(spark):http://spark.apache.org/docs/1.5.2/mllib-collaborative-filtering.html#collaborative-filtering
推薦系統(tǒng)粗分類:https://blog.csdn.net/lipengcn/article/details/80373744
推薦系統(tǒng)細(xì)分類https://blog.csdn.net/evillist/article/details/76269733
point-wise谱煤,pair-wise,list-wise:https://blog.csdn.net/weixin_34005042/article/details/86264976
point-wise禽拔,pair-wise刘离,list-wise:https://www.cnblogs.com/ljy2013/p/6889881.html
SVD++室叉,ASVD:https://blog.csdn.net/evillist/article/details/76269733
ALS和SVD具體協(xié)同操作:https://blog.csdn.net/Hemk340200600/article/details/88633646#2RSVD_48
常見的SVD優(yōu)化:https://blog.csdn.net/qq_19446965/article/details/82079367
深度矩陣分解模型理論及實(shí)踐:http://www.reibang.com/p/63beb773f100
RecSys 2019最佳論文:https://www.zhihu.com/question/336304380/answer/759069150
2019年快速ALS的代碼作者: appearance or functional complementarity: Which aspect affects your decision making?:https://www.sciencedirect.com/science/article/pii/S0020025518308077
基于屬性的相似度度量來捕獲項(xiàng)目之間的隱式關(guān)系:https://link.springer.com/chapter/10.1007/978-3-319-11749-2_1
何向南的關(guān)于推薦系統(tǒng)的文章:http://staff.ustc.edu.cn/~hexn/
RecSys 2019 - DeepLearning RS Evaluation:https://github.com/MaurizioFD/RecSys2019_DeepLearning_Evaluation