推荐系统之LFM与邻域方法对比

LFM在topN推荐时,重要参数有四个:1.隐特征的个数F 2.学习率alpha 3.正则化参数lambda 4.正负样本比例ratio

通过实验发现,ratio对算法性能影响最大(控制变量法)。随着负样本的增多,LFM的准确率和召回率有明显的提高,但是覆盖率不断降低,新颖度不断降低。在movielens数据集上的结果,可以发现LFM总是优于itemcf和usercf,但是LFM不适合稀疏的数据集。

LFM与基于邻域方法对比:

1.理论基础:LFM具有好的理论基础,通过优化指标来学习模型,而itemcf,usercf(这里指传统的,现在一线互联网中隐式召回方法多采用w2v,孪生网络之类来学习相似度)是一种基于统计的方法,没有学习过程。

2.离线计算的空间复杂度:基于邻域的方法需要维护一张相关性表。在离线计算相关表的时候,若用户/物品数很多,将占据很大的内存。例物品数为M,用户数为N,用户相关表需O(M * M),LFM需 O(F*(M+N))。LFM大量节省了了内存。

3.离线计算的时间复杂度:假设有M个用户,N个物品,K条用户对物品的记录。usercf计算用户相关表的时间复杂度是O(N*(K/N)^2),而itemcf计算物品相关表的时间复杂度是O(M*(K/M)^2)。对于LFM,如果用F个隐类,迭代S次,那么他的计算复杂度是(K*F*S)。总体来说两者时间复杂度差别不大

4.在线实时推荐:usercf和itemcf在线服务算法需要将相关表缓存在内存中,然后可以在线进行实时推荐。以itemcf算法为例,一旦用户喜欢了新的物品,就可以查询内存中的相关表将和该物品相似的其他物品推荐给用户。因此一旦用户有了新的行为,而且该行为被实时地记录到后台的数据库系统中,他的推荐列表就会发生变化。而lfm需要计算所有物品的兴趣权重,效率太低,不能在线实时计算而需要离线将所有用户的推荐结果存储在数据库中。

5.推荐解释:itemcf算法支持很好的推荐解释,它可以利用用户的历史行为解释推荐结果,但lfm无法提供这样的解释。

猜你喜欢

转载自blog.csdn.net/weixin_38526306/article/details/86709713