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