目录
1、LFM算法原理
2、LFM数学原理
3、应用场景
4、python实现
5、总结
算法原理:LFM(later factor model)是一种基于矩阵分解的召回算法,输入UI点展矩阵,输出是P和Q两个矩阵。
建模公式:
损失函数求解:
梯度下降法求解L2平方损失LFM与Item CF比较:
理论基础:LFM采用平方损失函数进行最小化求解,特征是隐特征,由模型习得;ItemCF基于公式计算,缺少学习过程,因此两者理论基础上前者更充分。
离线空间时间复杂度:ItemCF 空间复杂度是item的平方,LFM空间复杂度是user*F(隐因子数)+item*F。后者空间复杂度更低;时间复杂度处于一个数量级。
在线推荐与推荐解释:LFM根据模型产出的user向量*item向量离线计算出用户喜爱列表,取toplike存入redis,如果item数量多,则计算时间复杂度高;ItemCF离线计算通常只计算某个类别下的item sim列表,然后取topk,离线存储供在线推荐。实时响应方面,用户有新行为时LFM不能对用户实时行为进行模型重新训练和感知,后者重新计算item sim列表时间复杂度更低,响应更灵活。
应用场景:
计算用户的toplike:计算user对item的喜爱度得分取top,完成用户喜爱度列表。
计算物品的topsim:对item矩阵离线计算相似度,完成在线item点击实时推荐。
计算item的topic:使用聚类算法,完成item按簇分类。
Python实现:https://github.com/SolodanceMagicq/RecommendSys/tree/master/LFM
总结:LFM是传统机器学习中基于矩阵分解的思想,将UI矩阵分解为User和Item两个矩阵,然后利用余弦相似度等距离公式,计算用户对物品的喜好得分。与ItemCF相比有较强的理论基础,缺点是计算时间复杂度高(梯度下降法求解损失函数)
网友评论