LFM是一种基于机器学习的方法,具有比较好的理论基础。这个方法和基于邻域的方法(比如UserCF、ItemCF)相比,各有优缺点。下面将从不同的方面对比LFM和基于邻域的方法。
LFM | LFM | 基于邻域的方法 |
---|---|---|
理论基础 | 具有比较好的理论基础,是一种学习方法。 通过优化一个设定的指标建立最优的模型 | 一种基于统计的方法,没有学习过程。 |
离线计算的空间复杂度 | 对于M个用户和N个物品: LFM: O(F * (M+N)) | UserCF: O(M * M) ItemCF: O(N * N) |
离线计算的时间复杂度 | M 用户,N 物品,K 用户对物品的行为记录 一般情况下,LFM要稍高于UserCF和ItemCF,因为该算法需要多次迭代 如果F个隐类,迭代S次 : O(K * F * S) K/N > FS UserCF时间复杂度 < LFM K/M > FS ItemCF时间复杂度 < LFM | UserCF: O(N * (K/N)^2) ItemCF: O(M * (K/M)^2) |
在线实时推荐 | 需要计算用户对所有物品的兴趣权重,排名,返回权重最大的N个物品不能进行在线实时推荐。 | 将相关表缓存在内存中,可以在线进行实时的预测。 |
推荐解释 | 无法提供推荐解释。 | ItemCF算法支持很好的推荐解释,可以利用用户的历史行为解释推荐结果, |