协同过滤——基于模型的算法

本文深入探讨了协同过滤的基于模型的方法,包括特征值分解、奇异值分解(SVD)及其改进版SVD++。重点介绍了SVD的基本原理和优化目标,以及如何通过SVD、SVD++和时间敏感模型提升推荐系统的准确性。此外,还讨论了基于邻域的SLIM算法和融合边信息的邻域模型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 概述

基于模型的方法也叫做基于学习的方法,通过定义一个参数模型来描述用户与物品,用户与用户(或者物品与物品)之间的关系,然后通过优化过程得到模型参数。

基于模型的方法有一些优势:

  • 可以捕获数据中的高层模式和趋势,对异常值有更高的鲁棒性,这将有助于得到更精确更稳定的推荐结果。
  • 需要更少的内存空间。
  • 参数都是离线学习的,在线的推荐过程会更快。

** 基于模型的方法可以分成2类:分解方法和自适应近邻学习方法。**

1.1 基于分解的方法

1.1.1 分解相似度矩阵:特征值分解

使用秩为n的矩阵W表示用户之间或者物品之间的相似度,然后通过用更低的秩k的Q来近似W:
W ^ = Q Q T \hat{W} = QQ^T W^=QQT

求解因子矩阵Q等同于计算矩阵W的特征值分解:
W = V D V T W = VDV^T W=VDVT

1.1.2 分解评分矩阵:奇异值分解(SVD)

通过分解用户–物品的评分矩阵,同样可以解决冷启动和覆盖受限的问题。在这种方法中,一个 ∣ U ∣ × ∣ V ∣ |U| \times |V| U×V的用户–物品评分矩阵R可以近似为 R ^ = P Q T \hat{R} = PQ^T R^=PQT,其中P是一个 ∣ U ∣ × k |U| \times k U×k的用户因子矩阵,Q是一个 ∣ V ∣ × k |V| \times k V×k的物品因子矩阵。

可以通过求解R的奇异值分解(SVD)来获得:

R = U ∑ V T R = U\sum V^T R=UVT

基于模型的协同过滤基本原理是,将用户对商品的评分矩阵A分解为2个(ALS)或者3个矩阵(SVD),然后就是这些矩阵相乘的结果,根据矩阵相乘结果与原有评分矩阵的误差作为损失函数计算优化。
SVD的基本原理见:【参考周志华《机器学习》P402】
5.png!

SVD模型可以转换为一个基于相似度的方法,该方法认为用户 u u u的画像由他评分过的物品隐式的决定,因此用户 u u u的因子向量可以通过评分后的物品 j j j的因子向量权重组合得到。这就是SVD++。除此以外还有FISM,NSVD等。

在SVD++的基础上再引入时间因子,可以进一步提高预测的准确度。

1.1.3 SVD、SVD++、时间敏感模型

这三个模型越来越复杂,引入的因子也在增多,所以准确性提升,但计算效率下降。

1.2 基于邻域的学习方法

最新研究表明,从数据中自动学习邻域相比于预定义相似度计算存在一些优势。

(1)稀疏线性邻域模型
一个典型的邻域–学习推荐模型是SLIM算法,一个新的评分可以被预测为:
r ^ u i = r u w i T \hat {r}_{ui} = r_uw_i^T r^ui=ruwiT
其中向量 r u r_u ru是评分矩阵R的第u行,向量 w i w_i wi中的非零元素对应物品 i i i的近邻集合。

SLIM的详细内容请P43或者见https://blog.youkuaiyun.com/weixin_39064571/article/details/78835939https://blog.youkuaiyun.com/weixin_39064571/article/details/78835939

(2)融入边信息的稀疏邻域模型
在当今互联网时代,用户的属性信息(如年龄性别LBS)或物品的描述信息更容易获取,这些信息可以被融入SLIM模型。

2 SVD与LFM

矩阵分解模型把用户和物品2方面的信息映射到一个维度为 f f f的联合隐含义空间中,用户-物品之间的交互(评分)可由该空间的内积来建模。

2.1 基本原理

  • 每一个用户 u u u都与一个 f f f维向量 p u p_u pu相关联,每一个物品 i i i都与一个 f f f维向量 q i q_i qi相关联。
  • 给定一个物品 i i i q i q_i qi向量的每个维度值的大小代表了该物品具备这些因子的程度(例如电影的喜剧程度是5,科幻程度是1)。
  • 给定一个用户 u u u p u p_u pu向量的每个维度值的大小代表了用户对这些因子的喜爱程度(例如对喜剧的喜爱程度是0.1,对科幻的喜爱程度是0.5)。
  • 点积 q i p u T q_ip_u^T qipuT表示用户对物品的喜爱程度。

关于使用到的矩阵

  • 用户对物品的评价矩阵是: R = ∣ U ∣ × ∣ T ∣ R = |U| \times |T| R=U×T
  • 用户因子矩阵是: P = ∣ U ∣ × f P = |U| \times f P=U×f
  • 物品因子矩阵是: Q = ∣ T ∣ × f Q = |T| \times f Q=T×f
  • 预测的用户对物品的评分矩阵是: R ^ = P Q T \hat{R} = PQ^T R^=PQT

2.2 计算逻辑及优化目标

具体而言,对于用户 u u u对物品 i i i的评分,我们可以这样计算:
r ^ u i = μ + b i + b u + q i T p u \hat{r}_{ui} = \mu + b_i + b_u + q_i^Tp_u r^ui=μ+bi+bu+qiTp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值