[模型基础] 传统推荐算法

传统推荐算法中,主要包含:协同过滤算法 (CF)、基于内容的推荐、混合推荐。
此外,还有常用的隐因子模型,因子分解机 (FM)。
那么它们都有什么区别呢?

协同过滤算法

(物以类聚,人以群分)

算法
协同过滤算法包含两类:基于用户的协同过滤算法、基于物品的协同过滤算法。
(1)基于用户的协同过滤算法,
找到与该用户相似的其他用户,并把其他用户交互的物品推荐给该用户。

(2)基于物品的协同过滤算法,
找到与该用户交互物品相似的其他物品,并推荐给该用户。

可以发现,协同过滤算法的中心思想是计算相似度,在一张庞大的用户-物品交互矩阵(评分矩阵)中,矩阵中的值是用户对物品的打分(rating)。当以用户为主,各个用户向量的长度为物品的个数,值为各个物品的rating,计算各个用户的相似度;当以物品为主,各个物品向量的长度为用户的个数,值为交互过该物品的用户对其的rating,计算各个物品的相似度。

缺点

  1. 针对用户冷启动、物品冷启动,由于没有历史交互记录,无法通过协同过滤算法进行推荐。
  2. 当用户/物品增多的时候,同时需要维护一张巨大的用户/物品相似度列表,算法的计算成本也在增加。

计算相似度的方法有很多,比如可以使用余弦相似度找到相似用户/物品。在实现上可以使用sklearnfaiss等工具包进行相似度的计算。

基于内容的推荐

基于内容的推荐,顾名思义是根据物品的内容进行推荐,适用于文本领域,比如新闻推荐等。
但实际上,针对非文本领域的推荐,也可以使用基于内容的推荐,但是核心在于构建用户/物品的画像,根据该画像来找相似用户/物品,即根据用户/物品本身包含的特征,找到相似的用户/物品,来进行推荐。(可以发现基于内容的推荐,同样需要计算相似度,只不过计算相似度的内容变成了用户/物品的特征,而不是交互的评分)
在这里插入图片描述

混合推荐

是多角度、多因素的综合考量下的算法。

隐因子模型

(LFM,Latent Factor Model)

上述协同过滤已经知道可以根据用户-物品交互的评分矩阵计算相似度进行推荐,评分矩阵中存在用户-物品之间没有交互记录的空值,如何将这些空值进行补充,即预测用户对该物品的打分,可以使用LFM模型,LFM模型认为用户对某物品的交互出于多个隐性因子的考量,通过将评分矩阵(用户×物品)分解为用户隐因子矩阵(用户×隐因子)和物品隐因子矩阵(隐因子×物品)的形式。

因子分解机 (FM)

FM(Factorization Machine)主要目标是:解决数据稀疏的情况下,特征怎样组合的问题。

  • 二阶组合特征
  • FM有一个衍生算法FFM(Field-aware FM),大概思路是将特征进行分组,学习出更多的隐式向量V,FM可以看做FFM只有一个分组的特例。FFM复杂度比较高,比较适合高度稀疏数据;而FM可以应用于非稀疏数据,更加通用。

参考:

  1. 协同过滤之冷启动:https://www.jianshu.com/p/03bf81f9f6d9
  2. 推荐系统(4)-基于内容的推荐系统:https://zhuanlan.zhihu.com/p/98295397
  3. 推荐系统-隐因子模型(LFM):https://blog.csdn.net/sinat_22594309/article/details/86576757
  4. 前深度学习时代–从协同过滤CF到因子分解机模型FM(附FM模型python实现)。:https://zhuanlan.zhihu.com/p/160244758
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值