基于模型的方法
- 在user-item矩阵比较稀疏的时候,往往不适用于皮尔逊相关系数等方法计算相似度,此时我们可以使用基于模型的方法来解决user-item矩阵稀疏的问题。
- 基于模型的思想:
通过机器学习算法,在数据中找出模式,并将用户与物品间的互动方式模式化。
基于模型的协同过滤方式是构建协同过滤更高级的算法。 - 近邻模型存在的问题:
物品之间存在相关性, 信息量并不随着向量维度增加而线性增加。
矩阵元素稀疏, 计算结果不稳定,增减一个向量维度, 导致近邻结果差异很大的情况存在。
基于模型的算法分类
图模型
- 主要原理:
将用户的行为数据表示为二分图
基于二分图为用户进行推荐
根据两个顶点之间的路径数、路径长度和经过的顶点数来评价两个顶点的相关性
矩阵分解模型
- 主要原理:
根据user-item的潜在表现,我们就可以预测用户对未评分的物品的喜好程度。
把原来的大矩阵, 近似分解成两个小矩阵的乘积, 在实际推荐计算时不再使用大矩阵, 而是使用分解得到的两个小矩阵,例如M x N(M表示user,N表示item),可以拆解为M x K与N x K的两个矩阵,K的值要远小于M和N。通过计算得到两个矩阵U(M x K),V(N x K)。U x V^T ≈ M x N - 基于矩阵分解的方法:
ALS交替最小二乘法:
ALS-WR(加权正则化交替最小二乘法): alternating-least-squares with weighted-λ –regularization将用户(user)对商品(item)的评分矩阵分解为两个矩阵:一个是用户对商品隐含特征的偏好矩阵,另一个是商品所包含的隐含特征的矩阵。在这个矩阵分解的过程中,评分缺失项得到了填充,也就是说我们可以基于这个填充的评分来给用户做商品推荐了。 - ALS的方法:
ALS的矩阵分解算法常应用于推荐系统中,将用户(user)对商品(item)的评分矩阵,分解为用户对商品隐含特征的偏好矩阵,和商品在隐含特征上的映射矩阵。与传统的矩阵分解SVD方法来分解矩阵R(R∈ℝm×n)不同的是,ALS(alternating least squares)希望找到两个低维矩阵,以 R̃ =XY 来逼近矩阵R,其中 ,X∈ℝm×k,Y∈ℝk×n,这样,将问题的复杂度由O(m*n)转换为O((m+n)*k)。计算X和Y过程:首先用一个小于1的随机数初始化Y,并根据公式求X,此时就可以得到初始的XY矩阵了,根据平方差和得到的X,重新计算并覆盖Y,计算差平方和,反复进行以上两步的计算,直到差平方和小于一个预设的数,或者迭代次数满足要求则停止。
如果对损失函数公式不太了解的,或者线性回归最小二乘法不熟悉的同学可以去参考一下西瓜书的第三章。