您好,欢迎来到爱玩科技网。
搜索
您的当前位置:首页基于python的用户协同过滤推荐系统的综合研究

基于python的用户协同过滤推荐系统的综合研究

来源:爱玩科技网
第33卷第4期圆园员9年第4期技术与教育Vol.33No.4

TECHNIQUE&EDUCATIONNO.4.2019

基于Python的用户协同过滤推荐系统的综合研究

(吉林工业职业技术学院经管与艺术学院,吉林吉林132013)

要:信息技术的广泛应用给人们生活带来显著的便利之一就是人们的沟通方式从线

下面对面转变为线上使用社交媒体。微博是诸多社交媒体中颇具影响力的一个,为解决用户在海量信息中迅速找到自己感兴趣话题的问题,介绍基于用户的协同过滤推荐系统在微博中的应用,并结合着业界最新的Python技术去做推荐系统的设计与实现。

微博;协同过滤;推荐系统关键词:Python;中图分类号:G622.3

文献标识码:A

1引言

创建于2006年的Twitter()是一家美国社交网络服务及微博服务网站,是微博客的典型应用,也是国际上著名的微博之一。2007年国内第一个颇具社交色彩的在线平台饭否网上线,直至2009年微博在国内才逐渐兴起,这都是社交网络发展历史上十分重要的里程碑。自微博出现之后,越来越多的人开始使用和关注微博,这就使得微博的人气越来越高[1]。微博的发展是可以预见的,在未来微博肯定会获得越来越多的认可。

关注和分享功能是微博的重要功能,微博使用者可以通过客户端分享自己的感想,随时传递相关信息。随着技术的发展,微博传递的信息量越来越大,功能越多越多,使得整体的系统性越来越完善。但需要注意的是,随着越来越多人的使用和流量的增加,“大咖”的信息发布频率提升,微博的体量也变得越来越大。如何在如此庞大的海量信息中找到用户真正想要的信息将会直接制约着软件的整体使用效率,也会直接影响用户的体验感觉。近些年来虽然有很多学者都对相关的推荐机制做出了研究,比如华南理工大学

的融合社交信息的个性化推荐研究[2]和哈尔滨工业大学有关知识词条推荐的算法研究等[3]。但是在实际研究中把Python作为技术基础引入到基于用户的协同过滤推荐系统设计中相对比较少,原因如下:⑴Python的爬虫技术为数据的搜集提供便利;⑵Python中丰富的框架和模块以及简洁语句可以显著缩短系统设计周期。为此,本文结合Python这个时下很热门的技术,讨论如何做好基于微博用户的协同过滤推荐系统设计工作。

2推荐系统的内涵及重要性

2.1推荐系统的价值

互联网发展至今已经给用户带来了很大便利,满足了用户对于信息需求的渴望。网络迅速发展所带来的海量信息给人们带来了便利也产生了很多的困扰,对于绝大部分用户来说,他们很难从海量信息中分辨出真正对自己有意义的信息,在新技术的提供下,信息的效率在很多时候不仅没有提升,反而遭遇到了下降,造成信息超载。

通过研究推荐算法和协同系统可以解决信息超载的问题。推荐算法可以解决在互联

作者简介:张阳(1986—),男,硕士,助教。研究方向:计算机应用技术,人工智能。

14技术与教育

息爆炸的背下传统搜索引擎所无法提供的信息质量问题。推荐系统的优势在于结合用户的兴趣偏好做出系统性的计算,找到用户的潜在兴趣,使得用户期望的信息可以在技术的帮助下得以真正实现,进而做到精准的信息推送。

随着web技术的日益成熟,推荐系统的可用性比过去提升了层次,使得其商业价值得到了真正的凸显。越来越多的系统提供商开展了基于自身业务的个性化推荐服务,推荐算法也得到了越来越多的学者关注和认可,因此在相关的项目中做好个性化推荐和具体领域的融合研究是十分有价值的做法[4]。

2.2协同过滤推荐系统的重要性

协同过滤推荐技术是推荐系统中应用最早、最广泛和最成功的技术。协作型过滤算法是人们对于一群人的喜好做出技术上的搜集和归纳,进而找到与目标用户相近的一小群人,再对这一小群人做出相关的标签处理,使他们所关注的信息能够得到真正的推荐,组合成一个推荐列表。在此基础上,对推荐列表的信息做出排名,最终运用信息技术将排名的信息推荐给用户,进而满足他们的需要。

协同过滤是基于一定的理论假设开展的,如果一个用户想要找到他真正感兴趣的内容,可以结合以下的路径来开展相关的探索。首先找到与用户有相似偏好的用户,然后将这些用户感兴趣的信息推荐给该用户。这种思想类似于在生活中一群朋友具有相同的喜好。此类算法得到了电子商务等相关领域的重视和应用,市场认可度高。

基于用户的协同过滤推荐系统是对协同过滤系统更深一级的探索,是完全从用户角度出发的,结合用户的多元画像自动获取相关的推荐结果。推荐系统中的指数是根据用户的历史使用习惯综合计算中得来的,在整体的推进过程中不需要使用搜索引擎的,节约了成本。

3基于Python的用户协同过滤推荐系统应用

基于用户的协同过滤推荐系统的主要流程有准备数据集、数据处理、获取用户兴趣爱好、用

户数据处理、相似度计算,最后形成推荐列表显示给用户。图1为推荐系统的流程。

数据集↓数据处理↓

获取用户兴趣爱好↓用户数据处理↓相似度计算↓推荐列表↓用户图1推荐系统流程图

3.1收集用户偏好

首先利用Python做用户偏好的收集工作,这是协同过滤推荐系统工作的基础。使用好协同过滤推荐系统,首先要对用户的历史行为数据做出相关的统计来归纳他们的偏好,这是整体设计的第一步。用户拥有很多向系统提供自己偏好的方式,比如对自己喜好的商品做出收藏处理、分享自己的搜索记录等等。除此之外,使用问卷调查方式来统计用户的实际喜好也是业界常用的方式。需要注意的是由于所收集到的用户偏好数据可能存在一定的错误[5],所以必须对这些数据做出相关的预处理。

采取降噪和归一化的方法,对整体数据质量做了处理。这里的降噪处理就涉及到Python的使用,结合实际需求对数据对象函数采取奇异值分解的方法确定保存下来的阶数,再重构去噪。由于奇异值分解的处理对象为矩阵,因此需要将原始的一维数组转化为二维矩阵,重构后的矩阵在按照相反的过程转化为一维数组。

阳基于Python的用户协同过滤推荐系统的综合研究15

3.2数据处理

在对数据做出处理之后,结合不同的分析方法,引入Python对整体数据做出了归纳分组和加权处理,得到用户偏好的矩阵。在实际处理中,第一步是抽取数据,从外部源数据中获取数据,保存为各种格式的文件、数据库等,可以使用Scrapy爬虫技术,通过BaseSpider工具获得数据,如SQL调用数据库在用户偏好矩阵中,行是用户列表,列是物品列表,其中交叉的值就是用户对于物品的偏好评分。第二步是数据加载,从数据库、文件中提取数据,变成DataFrame对象,pandas库的文件读取方法。第三步是数据处理,包括dataframe的准备、类型转化、分类、面元、以及分组聚合,在此基础上将pandas处理为可视化的模式,做好模型的设计基础工作[6]。

笔者试图找到相似的用户或者物品,在充分归纳数据基础之后,可以得出人们对于兴趣方面的相似程度。将每个用户的数据与其他相邻的数据之间做出横向纵向的比较,结合业界常用的几个相似算法找出相互之间的关系。运用欧几里德距离、皮尔逊相关度这两个算法分别对整体的矩阵做出了相关的处理,使用结合相关系数的计算将用户组成一个集合,利用临近用户的评分值来预测用户对整体其他系统以及物品的喜好度。3.3获得推荐3.3.1准备工作

基于协同过滤推荐算法包括基于用户和基于物品的推荐算法。在基于用户的协同过滤推荐算法中,针对用户提交的历史数据进行相关分析。计算用户相似度的基本假设是喜欢相似物品的用户可能有相同的偏好或者相同的行为准则,这需要对用户所提交的历史数据做出相关的研究和判断,并在此基础上探究实际的推荐原理。基于项目的协同过滤推荐算法,也需要建立在一个人喜欢和他曾经喜欢过的项目之间具有一定相似性的假设基础之上,再结合该原理对整体的购买及喜好收藏行为做出相关的评级分析,通过找到用户的历史喜好画像,进而延续性地判断他的真正喜好,对未来的喜好做出预测。3.3.2标签处理

在理论研究的基础上,需要做出实际研究。利用Python爬虫技术总共抓取的数据包将近3900个,每个数据都包括用户的基础信息,如用户名、用户年龄、用户地址、用户教育程度、用户关注信息等,也包括相关的高阶数据,如用户的喜好、用户的收藏以及用户的实际操作等。在此基础上制定了用户的基本数据列表,结合基本数据列表可以看出他们的个人喜好。笔者对这些具体方面做出相关标签处理,如明星、动漫、音乐、旅游、游戏、运动。这些差异都直接反映在用户个人的标签属性上,因此,无论是结合性别还是结合年龄段,都可以很明显看出彼此的不同与相似性。在此基础之上,笔者选取了一些最具代表性的个体作为测试集,包括样本量19个,每个标签都对应了十分显著的个人喜好数据。笔者对所研究的用户都打上了至少一个标签,结合标签的顺序,对整体的权重值做出相关处理,根据用户喜好情况进行统计,绘制出表格。3.3.3相似研究

在获得绘制表格的基础之上,需要对用户期望信息和实际统计结果做出相似性比较,进而去研究实际的信度和效度。在此基础上,对用户可能感兴趣的东西做出推荐,这就涉及到系统构架的建设。系统构架建设共分为三部分。第一部分是数据来源层,系统所需要的数据以及之前所做出的相关表格统计,都在这里安装。第二部分是整个系统的核心部分,即实现协同过滤算法,以及对第一层所提供的数据做出存储和研究。第三层作为推荐结果,结合列表页的方式显示给实际用户。

在数据来源这一层,微博每天都有很多人使用,产生大量的数据,因此结合用户协同过滤推荐系统构架可以对整体的数据做出相关的过滤,在海量信息中找到用户真正期望的信息。在系统核心层设计方面,可以结合系数以及打标签的方式,对于用户做出合理分类,进而为推荐的结果提供和准备重要的基础性数据。在推荐显示层,结合相关算法,在标签基础上对相似的用户群体给出同样的推荐展示,如果整体效果较好,则可以继续下去;如用户退订等就可以及时做出

16技术与教育

调整,重新结合打标签的具体业务方式设计系统,满足实际研究需求。

推荐方法。基于用户的协同过滤推荐方法可以对目标用户标签做出分类,并以此为基础计算用户的相似度,可以在最相近的n个用户相互影响之下,完善整体标签后,做出再结合评分系统来做出处理。

4结语

Python由于自身的简洁性和对于数据分析的强大应用性,非常适用于基于用户的协同过滤

参考文献

[1]邹奕轩,赵海桐,赵紫婷等.基于Python和MySQL的医疗机构药品及耗材信息管理系统的设计与实现[J].中国医学装备,2019(09):115-119.

[2]许可.融合社交信息的个性化推荐研究[D].广州:华南理工大学,2019.[3]汤斌.基于微博的知识词条推荐算法研究[D].哈尔滨:哈尔滨工业大学,2014.[4]李乔娜,陈璐璐,刘兵.车载语音识别率自动化测试研究[J].汽车文摘,2019(10):8-13.[5]周成.Python语言教学策略的探索与实践[J].福建电脑,2019(09):87-.

[6]饶雪峰,郭振军.基于Python的网络程序设计教学改革探索[J].教育教学论坛,2019(39):100-101.

ComprehensiveResearchonUserCollaborativeFilteringRecommendationSystemBasedonPython

ZHANGYang

(SchoolofEconomicManagementandArt,JilinVocationalCollegeofIndustryandTechnology,

Jilin132103,China)

Abstract:Oneofthesignificantconveniencesbroughtbythewideapplicationofinformationtechnologytopeople’slifeisthatpeople’scommunicationmodehaschangedfromofflinetoonline.

Micro-blogisaninfluentialpartofmanysocialmedia.Inordertosolvetheproblemofusersquicklyfindingtheirowntopicsofinterestinmassinformation,thispaperintroducestheapplicationofuser-basedcollaborativefilteringrecommendationsysteminmicro-blog,andcombinesthelatestPythontechnologyintheindustrytodesignandimplementtherecommendationsystem.

Keywords:Python;micro-blog;collaborativefiltering;recommendationsystem

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- aiwanbo.com 版权所有 赣ICP备2024042808号-3

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务