基于用戶(hù)的協(xié)同過(guò)濾,適用于物品較少扁凛,用戶(hù)也不太多的情況忍疾。如果用戶(hù)太多了,針對(duì)每個(gè)用戶(hù)的購(gòu)買(mǎi)情況來(lái)計(jì)算哪些用戶(hù)和他品味類(lèi)似谨朝,效率很低下卤妒。如果商品很多,每個(gè)用戶(hù)購(gòu)買(mǎi)的商品重合的可能性很小字币,這樣判斷品味是否相似也就變得比較困難了则披。
還有一類(lèi)智能推薦算法,是“基于物品的協(xié)同過(guò)濾”洗出。消費(fèi)者每天都在買(mǎi)買(mǎi)買(mǎi)士复,行為變化很快,但是物品每天雖然也有變化翩活,但是和物品總量相比變化還是少很多阱洪。這樣,就可以預(yù)先計(jì)算物品之間的相似程度菠镇,然后再利用顧客實(shí)際購(gòu)買(mǎi)的情況找出相似的物品做推薦冗荸。
由于物品整體變化不大,所以這個(gè)相似程度不用每天都算利耍,節(jié)省計(jì)算資源蚌本;同時(shí),可以只給某一樣商品只備選5個(gè)相似商品隘梨,推薦時(shí)只做這5個(gè)相似物品的加權(quán)評(píng)分程癌,避免對(duì)所有商品都進(jìn)行加權(quán)評(píng)分,以避免大量計(jì)算轴猎。這么說(shuō)有點(diǎn)抽象席楚,還是看一個(gè)例子吧。
還是用上一篇文章的例子税稼,目的是給A推薦一部電影
首先是計(jì)算電影之間的相似度烦秩,方法還是有很多垮斯,這次用Pearson相關(guān)系數(shù)來(lái)做,公式為:
公式看起來(lái)復(fù)雜只祠,其實(shí)可以分成6個(gè)部分分別計(jì)算就好了兜蠕,我們選《尋龍?jiān)E》(X)和《小門(mén)神》(Y)作為例子,來(lái)算一下相似度抛寝,則
X=(3.5熊杨,5.0,3.0)
Y=(3.0盗舰,3.5晶府,2.0)
數(shù)字就是評(píng)分,因?yàn)橹挥腥齻€(gè)人同時(shí)看了這兩個(gè)電影钻趋,所以X川陆,Y兩個(gè)向量都只有三個(gè)元素。按照公式逐步計(jì)算:
1. x和y的乘積再求和:3.5×3.0+5.0×3.5+3.0×2.0 = 34
2. x求和乘以y求和蛮位,再除以個(gè)數(shù):((3.5+5.0+3.0)×(3.0+3.5+2.0))/ 3 = 32.58
3. x的平方和:3.52+5.02+3.0^2 = 46.25
4. x和的平方除以個(gè)數(shù):((3.5+5.0+3.0)^2)) / 3 = 44.08
5. y的平方和:3.02+3.52+2.0^2 = 25.25
6. y和的平方除以個(gè)數(shù):((3.0+3.5+2.0)^2)) / 3 = 24.08
最終把這幾塊的結(jié)果帶入到整體的公式中:得出相關(guān)系數(shù)為0.89较沪。
按照這種方法,需要兩兩計(jì)算電影的相似性失仁,最終結(jié)果如下表:
相關(guān)系數(shù)取值為【-1尸曼,1】,1表示完全相似萄焦,0表示沒(méi)關(guān)系控轿,-1表示完全相反。結(jié)合到電影偏好上拂封,如果相關(guān)系數(shù)為負(fù)數(shù)茬射,比如《老炮兒》和《唐人街探案》,意思是說(shuō)烘苹,喜歡《老炮兒》的人,存在厭惡《唐人街探案》的傾向片部。
然后就可以為A推薦電影了镣衡,思路是:A只看過(guò)兩個(gè)電影,然后看根據(jù)其他電影與這兩個(gè)電影的相似程度档悠,進(jìn)行加權(quán)評(píng)分廊鸥,得出應(yīng)該推薦給A的電影,具體方法可以列一個(gè)表:
用A看過(guò)的電影的評(píng)分辖所,和其他電影的相似度相乘(紅框)惰说,然后再把相乘后的結(jié)果加和(綠框),得出最后的推薦度缘回。這里可以看到吆视,應(yīng)該向A推薦《尋龍?jiān)E》典挑,和上一篇文章用基于用戶(hù)的協(xié)同過(guò)濾算法結(jié)果是一致的。
#總結(jié)#
推薦算法的幾個(gè)基本思想:
- 根據(jù)和你共同喜好的人來(lái)給你推薦(基于用戶(hù)的)
- ?根據(jù)你喜歡的物品找出和它相似的來(lái)給你推薦(基于物品的)
- 根據(jù)你給出的關(guān)鍵字來(lái)給你推薦(退化成搜索算法)
- 根據(jù)上面的幾種條件組合起來(lái)給你推薦
經(jīng)過(guò)多年的發(fā)展啦吧,思想還是這些思想您觉,變化的地方在于計(jì)算相似度的衡量標(biāo)準(zhǔn)上,進(jìn)而衍生出了各種計(jì)算相似度的算法授滓,各種算法的優(yōu)劣體現(xiàn)在相似度判定的準(zhǔn)確度以及算法的計(jì)算速度和占用的計(jì)算資源:
- 歐氏距離算法
- 余弦距離算法
- Jaccard距離算法
- 皮爾遜距離算法
- ……