基于时间衰减的协同过滤推荐算法

Sincetimefactorisnotconsideredincalculatingscorematrixintraditionalcollaborativefiltering,theaccuracyforrecommendationislimited.Inordertosolvethisproblem,weproposeamethod,whichintegratesthetimefactorintotheuserscorematrix.Inthismethod,firsttheforgettingcurveandthememoryperiodareincorporatedintothealgorithmasthetimefactor.ThenEbbinghausforgettingcurveisfittedwithpotentialfunction.Thiswaycangetmorecorrectcorrelationfunctionbetweentimeandinterestdecay.Finallyalltheresultsareimportedintotheuserscorematrix,andthenthematrixisappliedincollaborativefilteringrecommendationalgorithm.Thefactors,whichaddthememorycycletothescore,makethetargetuserpredictthepredictedprojectscoremoreaccurately.Theexperimentsshowthattheresultsobtainedwiththeproposedmethodaremuchmoreaccuratethanthatoftheoriginalone.

本文通过Python的matplotlib包,对艾宾浩斯遗忘曲线进行拟合,输入曲线数据,即天数和记忆量,观察形状,可以用指数函数进行拟合,结果如图1所示。

最终的艾宾浩斯遗忘曲线的拟合公式为:

设用户集U={U1,U2,…,Un},项目集合M={M1,M2,…,Mn}。

记忆周期因子的表达式如式(7)所示:

最终的评分预测公式为:

式中:Sim(u,ui)表示目标用户u和用户ui的相似度;N为用户u及用户ui共同参与的项目数;gui,s为用户ui赋予项目s的分值。

输入:数据集S

输出:推荐影片的评分矩阵并选出Top20

//遍历数据集S中的用户

3根据式(3),计算Wt,即每个用户对于已经评分的项目的遗忘值

4endfor//遍历结束

//遍历数据集中的用户

//找到用户i和用户j共同评分过的项目

//遍历项目集中共同评分过的项目

8通过式(4)计算用户间相似度

9endfor

10endfor

11选出每个用户相似度最高的10个用户,获得相似用户矩阵USER

//遍历相似用户

//找到相似用户接触过但是目标用户没接触的项目,获取项目集合Mnew

14通过式(6)预测目标用户对Mnew的评分,获取评分最高的N个MnewTopN

15endfor

16returnMnewTopN

实验所用数据集为MovieLensml-1M版本数据集,由984个用户,2000个电影,以及10万条评分组成。

平均绝对误差计算公式为:

式中:ru,i为用户u的实际评分值;Pu,i为用户u的预测评分值。

本文改进的算法与传统的算法相比,实验结果如图3所示。

图3是对所有用户的MAE取出并进行均值计算获得的最终结果,现随机取出20个用户,用折线图来表示其MAE的一个趋势,如图4所示更直观地看出新算法的MAE值

在总体上普遍小于传统CF算法。

本文的改进算法与传统的算法相比,在推荐准确度方面有所提高,实验结果如图5所示。

由图5可以看出,基于改进的协同过滤算法比传统的协同过滤算法在条件相同的情况下,命中率更高。

THE END
1.推荐算法协同过滤协同过滤是迄今为止最成功的推荐系统技术,被应用在很多成功的推荐系统中。电子商务推荐系统可根据其他用户的评论信息,采用协同过滤技术给目标用户推荐商品。 协同过滤算法主要分为基于启发式和基于模型式两种。 其中,基于启发式的协同过滤算法,又可以分为基于用户的协同过滤算法(User-Based)和基于项目的协同过滤算法(Item...https://www.jianshu.com/p/5463ab162a58
2.基于流形近邻的协同过滤算法AET为了比较基于欧氏距离的协同过滤算法和基于最小最大距离的协同过滤算法,此处变化邻居数,加权方案取01VD,记使用欧氏距离的协同过滤方案为ECF,得到的实验结果如图2所示。 从图2可以看出,使用流形近邻的协同过滤算法优于使用欧氏距离的协同过滤算法。 3.3不同流形邻居数对实验结果的影响 ...http://www.chinaaet.com/article/3000016485
1.算法篇协同过滤协同过滤算法那么,在一个在线个性化推荐系统中,当一个用户A需要个性化推荐时,可以先找到和他有相似兴趣的其他用户,然后把那些用户喜欢的、而用户A没有听说过的物品推荐给A。这种方法称为基于用户的协同过滤算法。 算法核心:当一个用户A需要个性化推荐时,可以先找到他有相似兴趣的其他用户,然后把那些用户喜欢的、而用户A...https://blog.csdn.net/m0_37739193/article/details/119388606
2.协同过滤算法概述与python实现协同过滤算法基于内容(usr协同过滤(Collaborative Filtering)作为推荐算法中最经典的类型,包括在线的协同和离线的过滤两部分。所谓在线协同,就是通过在线数据找到用户可能喜欢的物品,而离线过滤,则是过滤掉一些不值得推荐的数据,比比如推荐值评分低的数据,或者虽然推荐值高但是用户已经购买的数据。 协同过滤的模型一般为m个物品,m个用户的数据,只...https://cloud.tencent.com/developer/article/1102304
3.利用数据分析量化协同过滤算法的两大常见难题但是对于一些老大难问题怎样分析数据,业内目前还没有一些较为全面和体系化的方法论。2018年在成都举行的 ICCCBDA 2018 会议刊登了一篇题为 Quantitative Analysis of Matthew Effect and Sparsity Problem in Recommender Systems 的论文,尝试着精准量化协同过滤算法中的两个常见难题:马太效应和稀疏性问题。https://www.51cto.com/article/595775.html
4.用Python实现协同过滤的教程python协同过滤 在 用户 —— 物品(user - item)的数据关系下很容易收集到一些偏好信息(preference),比如评分。利用这些分散的偏好信息,基于其背后可能存在的关联性,来为用户推荐物品的方法,便是协同过滤,或称协作型过滤(collaborative filtering)。 这种过滤算法的有效性基础在于: 用户的偏好具有相似性,即用户是可分类的...https://www.jb51.net/article/63730.htm