- Collaborative Filtering
- 协同过滤:很多人在一起听听大家的意见,即看与某人品味相近的人会有什么喜好
- 基本思想:
- 一开始要做一个打分矩阵 :每一行代表了一个用户,每一列可以理解为一个商品
- 矩阵中每一个元素的值可以是是否喜欢某商品,或对某商品打分的分值
- 因为商品可能有几千几万个,但是每个人只买较少商品,所以矩阵可能非常稀疏
- 根据矩阵可以推测、填充缺失值部分(到底是喜欢还是不喜欢,打几分)
- 分为两部分
- 1.Memory-Based CF
- 2.Model-Based CF
- 协同过滤中,天生容易受到影响的因素
- Grey Sheep:例如某人的音乐品味就是和别人差别特别大 ,所以很难用CF推测
- Shilling Attack:类似刷好评,恶意差评,由此使用CF基于已有的数据做判断会大大影响计算结果的精准度
- Cold Start:刚接触某网站,根本没有数据支持(新商品没有被打分,新用户没有给任何商品打分),无法做出合理判断
- User—Based CF(找行和行之间的关系)
- U:代表User
- I:代表Item
- W:相关性计算。找到与某用户有比较好相关性的一些人(正相关、负相关),以他们对商品的打分作为猜测依据
- Item-Based CF(找列和列之间的关系)
- W:相关性计算。找到与第i个商品有较好相关性的商品
- 不同的实现方法
- deviation:偏离、偏差
- Item-Based CF(例子)
- Slope one(斜坡算法)
- 是一种基于项目(Item-based)的协同过滤推荐算法。 Slope one 具有简单和高效的特点,但是忽略了项目评价数目的影响。
- Slope one(斜坡算法)
- Model_Based CF
- 前面的计算都是在数数,能不能转化为模型
- 思路:
- 红线上方为标签,下方为输入,从而转换为分类问题
- 例如I1的输入为4、3、4、2时最后标签为4
- 方法:使用Naive Bayes分类器预测1-5,5个标签哪一个标签最有可能,哪一个标签的后验概率最大
- 计算
- 用到了“拉普拉斯平滑”
- 其他例子
- 喜欢:“10”
- 不喜欢:“01”
- 缺失:“00”
8.4协同过滤
最新推荐文章于 2024-08-20 13:13:08 发布