本文用到的符号标识
1、item-based cf
基本过程:
计算相似度矩阵
cosine相似度
皮尔逊相似系数
参数聚合进行推荐
根据用户项目交互矩阵 \(a\) 计算相似度矩阵 \(w\):
这样,用户对整个项目列表的偏好值可以如下计算:
\[{ {\tilde a_i}^t}={ a_i^t} \times w\]
例如,对于 j 号物品,用户的偏好值如此计算:
\[{ {\tilde a_{(u,j)}}}=\sum_{i\in { a_u^t}}{ { a_{(u,i)}}}w_{(i,j)}\]
由于交互矩阵 \(a\) 的稀疏性,矩阵 \(w\) 也应该是稀疏的。
2、slim: sparse linear methods for top-n recommender systems
- 现有的两种推荐系统
基于邻居的协同过滤(代表,item-based cf)
【特点】:能快速生成推荐,推荐质量不高,没有从数据中学习。
基于模型的方法(代表,矩阵分解 mf 模型)
【特点】:模型训练慢,推荐质量高。
相比于以上两种方法,slim 既高效,推荐质量又高。
- slim 关键思想
保留 item-knn 的稀疏矩阵 \(w\) 的特点。
通过从 \(a\) 中自学习矩阵 \(w\) 来提高推荐性能。
学习过程
\[l(\cdot) =\frac{1}{2} ||a-aw||_f^2 \frac{\beta}{2} ||w||_f^2 \lambda||w||_1 \]\[ {subject\ \ to\ \ }w\geq0, {diag}(w)=0\]
其中:
\({diag} = 0\) 约束同一项目与自己的相似度不加入计算。
\(l1\) 正则化约束使得矩阵$ w $稀疏
弗罗贝尼乌斯范数类似于矩阵的平方,用来防止数据过拟合
可以看到,实际上这个过程是可以并行执行的。
slim 的 paper 中使用了坐标下降和软阈值的方法来实现问题的求解。
使用特征选择可以减少 slim 的计算量。文章中使用了item-knn 的方式选择了与待估项目相似度靠前的作为特征选择方式。
3、fism:factor item similarity models for top-n recommender systems
论文主要完成了以下四个工作:
将基于项目的隐因子的方法扩展到 top-n 问题,这使得它们能够有效地处理稀疏数据集;
使用结构方程建模方法评估基于项目的隐因子方法。
同时使用均方误差和排名误差来评估该模型
观察各种参数的影响,因为与偏置,邻居协议和引起模型的稀疏性有关。
- 相关工作
slim
nsvd(rating prediction)
\[\hat r_{ui}=b_u b_i \sum_{j\in \mathbb{r}_u^ } {p}_j q_i^t\]
扩展了item-knn,学习item之间的相似度。使用每个项目的隐因子内积作为相似度。
svd
- 动机与模型比较
传统的 item-knn 包括 slim 对交互矩阵 \(a\) 的处理按行或列独立,因此,如果两个 item 都没有评价记录,则这两个处理方法都会将两个 item 的相似度置为 0 ,这是不合理的。
mf 模型考虑到了这个问题,但是它的效果不如 slim。
与 nsvd 和 svd 比较:
fism 解决 top-n;svd 解决 rating prediction
fism 采用基于结构方程建模的回归方法。
评估某个 item 时,不使用用户对于该 item 的评分信息。
p.s. 这影响了相似度矩阵对角线元素对评估的影响,fism评估时去掉了对角线元素,而svd等保留了,这使得隐因子很大的情况下fism表现得比 svd 好