温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
协同
过滤
算法
改进
实验
对比
分析
张小雷
本栏目责任编辑:王力数据库与大数据技术Computer Knowledge and Technology电脑知识与技术第18卷第35期(2022年12月)第18卷第35期(2022年12月)协同过滤算法改进实验及对比分析张小雷(阜阳职业技术学院 图文信息中心,安徽 阜阳 236031)摘要:在协同过滤推荐算法中融入时间因素对其进行改进,为了验证改进后的算法能够把推荐的准确度给提高,使用Python编程语言,在电影数据集Movielens中的ml-lm数据集下进行实验,对比传统与改进算法之间的MAE值。文章介绍了实验的目的、评价指标、理论知识、过程和结果。通过实验的结果可以明显看出这种改进后的算法能够提高推荐的准确度。关键词:协同过滤;推荐算法;改进;MAE;实验中图分类号:G642文献标识码:A文章编号:1009-3044(2022)35-0064-03开放科学(资源服务)标识码(OSID):1概述当用户面对海量的商品不知道该如何选择的时候,推荐系统能够很直接地把用户和商品给联系起来,把那些用户有意向购买的商品挖掘出来,对用户进行推荐1。在一个推荐系统中,最重要的就是推荐算法,其直接影响着对用户推荐的结果2。协同过滤推荐算法是一种用得非常多的推荐算法,其思想是先找出用户或者物品以往的数据信息,根据这些数据信息把与之相似的用户或者物品给找到,通过计算他们的相似度,来确定用户是否真的对此类东西有兴趣,就能够对他们做出推荐3。但是随着时间的推移用户的一些行为和习惯都会发生变化,所以在协同过滤推荐算法中融入时间因素对其进行改进4。为了验证这种改进的推荐算法能否提高推荐的准确度,在实验中与传统算法的准确度进行了比较,为提高推荐系统的推荐质量寻找新的方法。2实验目的比较传统的协同过滤算法与融入时间因素后的改进的协同过滤算法的推荐准确度,为提高推荐系统的推荐质量寻找新的方法。3实验评价指标为了比较算法的准确度,实验中采用平均绝对误差(MAE)作为准确度的评价指标5,公式为:MAE=imi=1m|yi-yi|公式里,yi是实验选取的测试集里的真实的值,yi是预测的值,m是实验中选取的样本的数量。实验结果中MAE越是小,就意味着其所预测的准确度就越是高。4实验理论知识4.1算法介绍协同过滤推荐算法是一种用得非常多的推荐算法。有基于用户的协同过滤(UserCF)算法和基于物品的协同过滤(ItemCF)算法6。在实际的推荐过程中,时间的变化是不能够忽视的因素,随着时间的变化,用户的购买行为和用户的购买习惯会发生一些变化7。把时间因素融入协同过滤算法中可以反映用户最近的购买行为和习惯8,将算法进行改进后它的工作流程如图1所示:图1 改进的算法流程4.2改进UserCF算法在对UserCF算法改进中,主要在计算相似度时对算法进行了改进,UserCF 算法中计算相似度的公式为:Wuv=|N(u)N(v)|N(u)N(v)收稿日期:2022-05-04基金项目:阜阳职业技术学院校级自然科学重点项目:基于借阅记录的个性化图书推荐系统研究(2021KYXM07)作者简介:张小雷(1987),男,安徽阜阳人,实验师,硕士,研究方向为推荐算法、计算机网络、计算机教学。E-mail:http:/Tel:+86-551-65690963 65690964ISSN 1009-3044Computer Knowledge and Technology电脑知识与技术Vol.18,No.35,December202264DOI:10.14004/ki.ckt.2022.2147数据库与大数据技术本栏目责任编辑:王力Computer Knowledge and Technology电脑知识与技术第18卷第35期(2022年12月)第18卷第35期(2022年12月)在公式里面,N(u)与N(v)是用户u与v有行为的物品集。改进后,增加时间衰减函数并惩罚热门商品9后,用户u与v的相似度公式为:Wuv=i N(u)N(v)1lg(1+N(i)f(|tui-tvi|)|N(u)N(v)改进后构造出新的算法TF-UserCF算法。4.3改进ItemCF算法在对ItemCF算法改进中,主要在计算相似度时对算法进行了改进,ItemCF 算法中计算相似度的公式为:Wuv=|N(i)N(j)|N(i)N(j)在公式里面,N(i)与N(j)是跟物品i与j产生交互的用户的集合。改进后,增加时间衰减函数并降低活跃用户的权重10,物品i与j的相似度公式为:Wij=u N(i)N(j)1lg(1+N(u)f(|tui-tuj|)|N(i)N(j)改进后构造出新的算法TF-ItemCF算法。5实验过程5.1实验环境准备在计算机的选择方面,使用联想台式机,具体配置为:Intel Core i5-3470 3.20GHz的CPU,8GB内存,64位Windows 10的操作系统。在软件方面,使用的编程语言是 python 编程语言,数据库为MySQL数据库,在PyCharm中开发实现。5.2实验数据准备在这次的实验里面,以电影数据集Movielens中的ml-lm 数 据 集 来 分 析 实 验。分 析 该 数 据 集,在PyCharm 中运行Python 代码查看数据集中的ratings.dat文件,结果如图2所示:图2 用户电影评分分布图由图2可知,数据集中用户数量为6040个,电影的数量为3952部,总共的评分记录为1000209条,评分范围是15分。在PyCharm中运行Python代码查看数据集中的movies.dat文件,结果如图3所示。由图3可知,数据集中总共有18种类型的电影,各类型分布不均,最多的 Drama 占到 25%,最少的Film-Noir只占到0.7%。在实验开始前,要将数据集提前进行相应的处理,把数据集都拆分成80%的训练数据和20%的测试数据,拆分数据集代码为:图4 拆分数据集代码截图图3 电影信息图图5 UserSimilarityBest函数代码截图65本栏目责任编辑:王力数据库与大数据技术Computer Knowledge and Technology电脑知识与技术第18卷第35期(2022年12月)第18卷第35期(2022年12月)5.3实验步骤做两组实验,比较传统算法与改进算法的MAE值。第一组实验比较 UserCF 算法与改进后的 TF-UserCF算法的MAE值。首先在传统UserCF算法中增加时间衰减函数,构造出计算用户相似度的 UserSimilarityBest 函数,代码为:然后把邻居的个数K值从5开始每次增加5,直到UserCF算法与改进后的TF-UserCF算法的MAE值趋于平稳,最终K值增加到40。比较这两种算法的MAE值,如图6所示:图6 两种算法的MAE值的比较第二组实验比较 ItemCF 算法与改进后的 TF-ItemCF算法的MAE值。首先在传统ItemCF算法中增加时间衰减函数,构造出计算物品相似度的 ItemSimilarityBest 函数,代码为:图7 ItemSimilarityBest函数代码截图然后把邻居的个数K值从5开始每次增加5,直到ItemCF算法与改进后的TF-ItemCF算法的MAE值趋于平稳,最终K值增加到40。比较这两种算法的MAE值,如图8所示:图8 两种算法的MAE值的比较5.4实验结果分析通过上述两组实验可以看出,无论是传统的UserCF算法还是传统的ItemCF算法,改进后的算法在相同的K值下MAE值都比传统的要低。在对传统协同过滤算法中加入的时间因素进行了改进之后,可以提升算法的准确度。6结束语在传统的协同过滤推荐算法中加入了时间因素并对其加以改进,使用电影数据集Movielens中的ml-lm数据集进行实验来对比改进后算法和传统算法的准确度。通过实验研究,可以发现这种改进后的算法可以提高推荐的准确度。在本次实验中只使用了一种数据集来做实验,在以后的实验研究中,为了使实验的结果更加准确,将尝试使用更多的数据集来做实验。参考文献:1 高长元,黄凯,王京,等.基于商品属性值和用户特征的协同过滤推荐算法J.计算机工程与科学,2017,39(12):2333-2339.2 陶志勇,崔新新.一种融合用户与项目属性的协同过滤算法的设计与实现J.计算机应用与软件,2019,36(2):12-18,102.3 张小雷,孙刚,彭余辉.融合时间因素的协同过滤图书推荐算法J.阜阳职业技术学院学报,2021,32(2):51-54.4 张小雷.基于协同过滤和隐语义模型的图书推荐算法研究与实现D.阜阳:阜阳师范大学,2021.5 纪佳琪,姜学东.深度协同过滤推荐模型研究J.计算机应用与软件,2020,37(7):240-245.6 刘景昊.基于协同过滤的推荐系统算法研究J.中国电子商务,2013(6):157.7 刘恒友.基于时间效应的推荐算法研究D.哈尔滨:哈尔滨工业大学,2013.8 高阳团.推荐系统开发实战M.北京:电子工业出版社,2019.9 彭余辉,张小雷,孙刚.基于内容和协同过滤加权融合的音乐推荐算法J.安庆师范大学学报(自然科学版),2021,27(2):44-48,53.10 兰艳,曹芳芳.面向电影推荐的时间加权协同过滤算法的研究J.计算机科学,2017,44(4):295-301,322.【通联编辑:王力】66