本文主要讲解基于用户(User-CF)和基于物品(Item-CF)的协同过滤推荐算法的原理
推荐算法主要基于用户历史行为信息获取数据,找到相似的用户和商品,并对用户进行推荐可能感兴趣的商品。
对用户进行推荐主要有两类:
1.基于用户的协同过滤(User-CF)
用户A对商品y的喜好 = 用户B对商品y的喜好程度 * 用户A和B的相似度
2.基于商品的协同过滤(Item-CF)
用户A对商品y的喜好 = 用户A对商品x的喜好程度 * 商品x和y的相似度
根据实际例子过一遍,我们就可以很直观地理解了什么是User-CF和Item-CF,也能很清楚知道两者的区别。
一.基于用户的协同过滤(User-CF)
User-Item表
| NIKE | ADIDAS | VANS | TATA | 斐乐 |
A | 4 | 5 | 4 | 5 | 4 |
B | 3 | 4 | 4 | 2 | 3 |
C | 2 | 3 | 3 | 4 | 3 |
D | 3 | 5 | 4 | - | 3 |
E | 4 | 3 | 3 | 4 | ? |
明说明:表格中数字代表用户对相应商品的评分
现在需要看E对斐乐的评分,分别看E与用户A、B、C、D的相似度:
(注意:以下计算相似度的方法并不唯一,还有缺失值的处理也是不唯一,具体问题具体分析,这里主要呈现的是如何基于用户之间的关系来判断用户对未知商品的评分或者兴趣度)
User-CF得出用户E对斐乐的评分是3.11
这里主要将目标用户E和其他用户的相似度算出,并相应地乘以他们对目标商品地评分累加之后地平均值即可。
二.基于商品的协同过滤(Item-CF)
Item-User表
| A | B | C | D | E |
NIKE | 4 | 3 | 2 | 3 | 4 |
ADIDAS | 5 | 4 | 3 | 5 | 3 |
VANS | 4 | 4 | 3 | 4 | 3 |
TATA | 5 | 2 | 4 | - | 4 |
斐乐 | 4 | 3 | 3 | 3 | ? |
现在需要看用户E对斐乐的评分,分别看斐乐和NIKE、ADIDAS、VANS、TATA的相似度:
Item-CF得出用户E对商品斐乐地评分是3.43
总结:User-CF和Item-CF是协同过滤推荐算法地两种典型方法,是推荐系统中常用的方法,本文以简单的实际案例展示两个方法的原理计算过程,对于刚入门的小伙伴来说是非常地简单易懂了。
另外:本文地相似度计算方法和缺失值填充方法并不是唯一的,我只是举个简单的方法让读者可以直观理解User-CF和Item-CF。
相似度方法的计算可以后续再做了解,希望本篇文章对你有用。