MF SLIM FISM的关系
把SLIM与MF相结合,将物品的相似度矩阵 分解成
两个低维矩阵,用户对某物品的评分,等于他过去评分过的物品在
中对应的向量和
中该物品向量内积的和,这就是FISM算法。相比SLIM的稀疏处理,变为分解降维。
下图展示了SLIM、MF、FISM之间的关系:
为什么提出FISM
由于模型本身的限制,SLIM只能描述有共现物品之间的关系。当item 和item
没有同时被任一用户购买时,物品之间的相似性为0,SLIM无法刻画item之间的传递相似性关系。作者提出FISM,通过学习物品之间的相似矩阵来改进推荐结果,将两个未被同时购买的item通过第三个物品关联起来。
通过上面我们知道SLIM不能计算未被同一用户同时评分后的item与item之间的相似度。但比如像matrix factorization方法,将数据映射到低维空间,在一定程度上就解决了这个问题。但矩阵分解方法的效果一致都逊色于SLIM。FISM在这方面就受到NSVD和SVD++的启发。学习低维的隐向量空间,来帮助捕获item之间的关联相似度。
FISM与NSVD的差异在于:
- FISM是top-N推荐而NSVD解决的是rating prediction问题。
- FISM采用基于结构方程建模的回归方法。
- 评估某个item时,不使用用户对于该item的评分信息。
FISM评分估计
在FISM中,user 对未评分的item
的评分由对应矩阵分解得到的估计代替:
这里 是用来控制估计值与真实值的一致程度的。 举个极端例子:
- 当
时,预测分数是相似物品评分的平均值。当所有物品都相似于预测物品时,就会得到一个很高的分数。
- 当
时,预测分数是相似物品评分的总和。当只有少量物品与预测物品相似时,仍会得到一个很高的分数。
- 大多数情况下,最优的选择往往都在两者之间。
就是用来平衡用户打过分的items中大概有多少会是相似的。