基于协同过滤的个性化零食推荐微信公众平台设计与实现.docx
《基于协同过滤的个性化零食推荐微信公众平台设计与实现.docx》由会员分享,可在线阅读,更多相关《基于协同过滤的个性化零食推荐微信公众平台设计与实现.docx(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基于协同过滤的个性化零食推荐微信公众平台设计与实现摘 要 随着社会经济的不断发展和居民消费水平的日益提高,消费者对于零食的需求数量越来越大。但市面上零食的种类很多,用户想要找到一款适合自己口味的零食,需要花费大量的时间和精力。如何快速高效地帮助用户找到自己喜欢的零食是一个问题。由此提出了个性化零食推荐的课题。本课题是设计实现一个基于微信公众平台的零食信息发布系统,每个用户都能将自己喜欢的零食信息发布到系统供其他用户参考,系统会根据用户对零食信息的一些反馈行为,采用协同过滤的算法,为用户个性化推荐零食信息。系统最终经过测试达到了需求标准,并成功的部署在微信公众平台和云服务器上。关键词: 微信公众
2、平台;零食推荐;个性化推荐;协同过滤 Design and implementation of wechat public platform for personalized snack recommendation based on collaborative filteringABSTRACT With the continuous development of social economy and the increasing consumption level of residents, the demand for snacks is growing. But there are m
3、any kinds of snacks on the market. It takes a lot of time and energy for users to find a snack that suits their taste. How to help users find their favorite snacks quickly and efficiently is a problem. Therefore, the topic of personalized snack recommendation is put forward.This topic is to design a
4、nd implement a snack information publishing system based on wechat public platform. Each user can publish their favorite snack information to the system for other users reference. According to some feedback behaviors of users, the system will adopt collaborative filtering algorithm to personalized r
5、ecommend snack information for users. Finally, the system has been tested to meet the requirements and successfully deployed on wechat public platform and cloud server.Key words:Wechat public platform; Snack recommendation; Personalized recommendation; Collaborative filtering目录1. 绪论11.1 背景目的及意义11.2
6、相关工作11.3 本文工作21.4 论文的框架结构22. 需求分析32.1 功能性需求分析32.2 非功能性需求分析42.3 相关技术介绍52.3.1 协同过滤算法52.3.2 微信公众平台52.3.3 Vue.js52.3.4 Django52.4 本章小结53. 推荐算法设计与实现63.1 基于内容的推荐算法63.2 协同过滤算法63.2.1 基于物品的协同过滤算法73.2.2 基于用户的协同过滤算法73.3 系统推荐算法实现93.4 本章小结104. 系统分析与设计114.1 架构设计114.1.1 总体架构114.1.2 部署架构114.2 功能设计114.2.1 零食推荐模块设计12
7、4.2.2 零食搜索模块设计124.2.3 零食管理模块134.2.4 用户中心模块设计134.2.5 后台管理模块设计134.3 数据库设计144.3.1 E-R模型设计144.3.2 表结构设计154.4 本章小结185. 系统实现与测试195.1 系统实现环境要求195.1.1 开发环境195.1.2 运行环境195.2 系统实现195.2.1 微信授权模块195.2.2 零食推荐模块215.2.3 零食搜索模块225.2.4 零食管理模块245.2.5 用户中心模块265.2.6 后台管理模块265.3 系统测试275.3.1 测试目的275.3.2 测试用例275.4 本章小结296
8、. 总结与展望306.1 总结306.2 展望30参考文献31致谢32第1章 绪论1.1 背景目的及意义近年来,中国的零食行业发展速度较快。根据官方数据统计,中国的零食行业总产值从2006年的4240.36亿元到2016年的22156.4亿元,涨幅高达422.51。有相关部门预测,2020年的零食产业规模可能会达到3万亿元。但目前市面上零食的种类很多,消费者想要找到一款满足自己口味的零食需要花费大量的时间和精力。个性化推荐技术的出现解决了这个问题。个性化推荐技术可以从用户的浏览内容、频率和时间等多个方面因素分析每个用户的具体情况,并为用户提供他们可能感兴趣的内容。本课题基于微信公众平台,开发实
9、现了一个零食发布系统,每个用户都能将零食信息上传到系统供其他用户参考,系统根据用户对零食信息的浏览、收藏、评论等反馈行为,通过个性化推荐算法,为用户推荐可能喜欢的零食信息。本课题将个性化推荐技术应用在零食信息系统中,可以帮助消费者更高效地找到他们可能喜欢的零食,从而增强用户体验。1.2 相关工作推荐系统早在90年代就开始被研究,它解决了用户难以在海量的信息中高效地找到所需信息的问题。目前常见的推荐系统有三种,分别是协同过滤推荐、基于内容的推荐和混合推荐。推荐系统在国外,从诞生之时就受到广泛关注,也因此得到了很多成功的研究成果。在1992年,推荐系统第一次被应用在系统中,Goldberg和他的团
10、队将协同过滤算法应用在了邮件管理系统上,从而减轻了工作人员的负担,提高了邮件管理的效率。在1994年,GroupLens提出了基于用户的协同过滤算法,并将该算法其应用在新闻推荐上。该系统会收集每个用户对新闻的评分,并将这些评分储备下来供后期推荐使用。后来,亚马逊第一次将推荐系统成功的应用在电商系统中。当消费者在亚马逊书城下单时,会提示出购买本书籍的用户还购买了其他书籍等信息。国内的推荐系统研究起步较晚,但也有不少研究成果。在2009年7月,北京成立了一家专门研究个性化推荐技术和推荐引擎的公司。在2011年的8月,载言网络科技首次提出了在传统的推荐引擎上添加用户的社交信息和隐形反馈。2011年的
11、9月,百度首页增加了智能推荐功能,可以根据用户行为为用户推荐可能喜欢的网站。个性化推荐的发展过程中面临了各种各样的问题,比如为了解决算法的冷启动和数据稀疏问题,研究者们在原有算法的基础上加入了一些其他参数,对算法进行了改进。有研究者在原有的Pearson相关系数方法上增加惩罚系数机制,改进了Pearson相关系数法,并显著提高了推荐准确性。还有研究者针对评分矩阵稀疏这一问题,提出了根据物品属性和用户特征填充评分矩阵,从而解决了评分矩阵稀疏的问题。个性化推荐系统发展至今已经相对成熟,但个性化推荐系统存在的问题正在被不断研究。目前研究的主流方向有两种,一是在现有的推荐算法基础上优化和改进个性化推荐
12、算法,从而提高个性化推荐算法的准确率。二是如何将个性化推荐算法应用在业务系统中,从而增强用户体验。1.3 本文工作本课题将协同过滤技术应用在零食推荐上,基于微信公众平台设计开发一个个性化零食推荐系统。该系统可供用户发布自己喜欢的零食介绍信息,后台再运用个性化推荐技术为用户推荐可能喜欢的零食信息,由此提升用户对平台的体验度。本文的工作主要包括以下两个方面:应用个性化推荐技术。本系统将个性化推荐技术应用在系统上,根据用户对零食信息的浏览、评论、点赞、收藏等反馈信息和反馈对应的权重,计算出用户对零食的评分,再利用协同过滤算法为用户推荐可能喜欢的零食。搭建个性化零食推荐系统,并运行在微信公众平台。系统
13、实现了零食推荐、零食管理、零食搜索、用户中心、后台管理等模块。系统采用了前后端分离的开发方式,方便维护和功能扩展。同时系统部署在服务器上,采用了CDN加速技术,有效提高了静态资源的加载速度,优化用户体验。第2章 需求分析2.1 功能性需求分析系统主要用例包括微信授权登录、零食信息推荐、零食信息管理、零食信息搜索、个人中心管理、后台信息管理。系统用例图如图2-1所示。图2-1 系统用例图(1) 微信授权登录用户应该可以通过点击微信公众号底部的菜单进行微信自动授权进入到系统中,而不是输入账号密码登录,从而免去繁琐的注册登录步骤。(2) 零食信息推荐作为一款零食推荐系统,零食的推荐自然必不可少。系统
14、应该能够利用个性化推荐算法,在首页为不同的用户推荐不同的零食信息。同时系统需要接受用户对零食信息的反馈,所以应该提供零食浏览、零食点赞、零食收藏、零食评论等反馈功能。(3) 零食信息管理本系统的零食数据库需要不断的完善扩充,系统应提供给用户可以上传零食信息的入口。用户应该可以在系统上传零食介绍、零食图片等信息。(4) 零食信息搜索为了使得用户可以方便地查询到相关的零食信息,系统应提供零食搜索功能,应该可以根据零食关键词查询到相关的零食信息。(5) 个人中心管理用户应该可以看到自己的昵称、头像等个人信息,也应该能对其他用户进行关注操作。(6) 后台信息管理管理员应该能对系统数据信息进行管理,包括
15、零食信息、用户信息、评论信息、推荐信息、轮播图信息、搜索历史信息等。2.2 非功能性需求分析本系统有以下五个方面的非功能性需求:(1) 性能需求在90%的情况下,一般时间段响应时间不超过2秒,高峰时间段不超过5秒。第一次进入系统时间不超过5秒。(2) 安全需求系统要经过授权认证登录后才能进入,在未登录时严禁使用系统的各个功能。用户在系统内只能访问操作权限内的数据。(3) 可维护性需求系统要保证模块化开发,各个模块独立,要易于扩展,编写代码整洁,变量或函数命名规范,关键地方要加注释。(4) 可用性需求在90%的系统故障中,系统最多只需要60秒重启,若系统出现严重故障要在24小时内恢复正常。(5)
16、 易用性需求要求界面美观,操作简单,用户能方便地使用系统的各个功能,无复杂操作。2.3 技术需求分析2.3.1 协同过滤算法协同过滤算法主要分为两个类型,分别是基于物品的协同过滤算法即ItemCF,和基于用户的协同过滤即UserCF。ItemCF算法较为简单,自诞生至今一直被广泛的使用。UserCF算法的推荐效果更显著,能帮助用户发现以前未涉及到的领域,有着悠久的历史10。协同过滤算法认为兴趣和爱好相似的两个用户可能会喜欢相似的物品,或者两个用户可能会对相似的物品表现出相似的兴趣爱好7。其基本思想是根据相似用户的评分或者用户对相似项目的评分进行个性化推荐。2.3.2 微信公众平台微信公众平台是
17、微信官方推出的一款用户服务平台,主要面向个人、组织和企业6。微信公众平台又叫做公众号,它支持多种形式的媒体资源信息1。微信公众平台可以进行二次开发,开发者可以将前端页面链接到公众号底部菜单,用户通过点击菜单进入到应用页面。微信公众平台官方还提供了第三方的api,通过对接开发服务器,可以实现开发服务器与微信公众平台的交互,从而使用微信公众平台丰富的功能。2.3.3 Vue.jsVue是一个目前比较流行的前端框架。Vue的最大特点在于数据驱动视图,开发者只需要通过操作视图绑定的数据,视图就能自动刷新,而不必再获取视图的dom元素更新数据,极大地方便了应用开发。并且Vue有着搭建速度快、学习成本低、
18、使用简单等特点,适合用于应用开发。2.3.4 DjangoDjango是一个web后台开发框架,基于Python开发。使用Django框架可以帮助开发者快速构建web系统框架3。Django还有强大的后台管理功能,只需要通过一些参数化配置,就能实现一个简单的后台管理系统。Django在网上也有大量的学习资源,非常适合开发。2.4 本章小结本章主要对系统进行了功能性需求分析、非功能性需求分析,并对系统开发中可能会用到的技术进行了技术需求分析。第3章 推荐算法设计与实现3.1 协同过滤算法协同过滤算法是根据用户的行为信息进行推荐的。协同过滤算法认为,两个用户或者物品没有直接的联系,内容属性完全不一
19、样,但只要发生过相同的行为,就具有相似性。例如一个用户是年轻女性,而另一个用户是一名老年男性,两个用户信息有着较大差异,但由于他们浏览过相同的东西,就认为他们具有较高的相似度。协同过滤算法分为基于物品的协同过滤算法(ItemCF)和基于用户的协同过滤算法(UserCF)。3.1.1 基于物品的协同过滤算法基于物品的协同过滤算法是为用户推荐他们之间喜欢相似的商品。基于物品的协同过滤算法根据用户对物品的行为信息来计算两个物品是否相似,其核心是目标物品的相似物品,将相似物品推荐给喜欢目标物品的用户。基于物品的系统过滤最大特点是推荐结果可解释。由图3-2可以看出,用户A、用户C、用户D都喜欢物品a,并
20、且他们又都喜欢物品d,可以认为物品a和物品d相似,所以就能将物品d推荐给同样喜欢物品a的用户B。给用户B推荐物品d的原因可以解释为喜欢物品a的用户还喜欢物品d。图3-1 基于物品的协同过滤基于物品的协同过滤算法是根据用户-项目评分矩阵,用相似度计算公式计算出物品的相似性,找到与目标物品相似的k个物品,然后根据用户对物品的历史行为和物品相似度,然后计算用户对物品的兴趣度,再从近邻物品中选取N个用户相似度最高的物品,并形成推荐结果。3.1.2 基于用户的协同过滤算法基于用户的协同过滤算法的基本原理是先将用户的行为信息转换为对物品的评价,再将根据对物品的评价计算出用户的相似性,再把相似用户喜欢的物品
21、推荐给目标用户。由图3-3可以看出,用户A和用户C共同喜欢物品a和物品c,可以认为用户A和用户C相似,用户C即为用户A的临近邻居,所以可以将用户C喜欢的物品d推荐给用户A。图3-2 基于用户的协同过滤在基于用户的协同过滤中,计算用户的相似度非常关键,相似度的计算对推荐结果的准确度有着重要的影响6。常见的计算公式有欧几里得距离公式、余弦相似度公式、Person相关系数等。(1) 欧几里得距离公式欧几里得距离公式用于计算空间内两点之间的实际距离。将用户u1(r11,r12,r1m)和用户u2(r21,r22,r2m)看作空间内的两个点,则他们之间的相似度可以通过欧几里得距离公式来计算,两点之间的距
22、离越短越相似。公式如下:simu1,u2=du1,u2=(r11-r21)2+(r21-r22)2+(r1m-r2m)2(2) 余弦相似度公式余弦相似度的计算方法是获取空间内两个向量的坐标,再利用空间余弦距离公式求得两个向量之间的距离,依此来衡量两个用户直接的相似度。假设控件内有两个向量点X和Y分别代表两个用户,那么利用公式计算两个用户的相似度如下:simX,Y=cos=xyxy(3) Person相关系数皮尔逊相关系的优点是可以根据结果判断人们之间的兴趣爱好的相似程度,他的缺点是在数据不是很规范的情况下往往会把结果趋向于好的结果。相似度的计算公式如下,其中X和Y分别代表两个变量。Px,y=(
23、X-X)(Y-Y)(X-X)2(Y-Y)23.2 零食推荐算法实现本文采用的是基于用户的协同过滤算法。零食推荐系统的构建主要经过四个步骤:计算零食评分,建立用户模型,寻找最近邻居,产生推荐零食。3.2.1 计算零食评分计算零食评分是将用户的反馈行为根据权重转换成用户对零食的评分,影响推荐效果的最主要的因素就是用户对物品的评分。零食推荐系统的反馈行为主要包括浏览反馈、评论反馈、喜欢反馈、收藏反馈,定义对应的权值分别是1、2、3、4。规定零食评分的满分值是10,则将用户的行为转换为评分值就是1到10,若用户对某个零食没有反馈记录就为0分,根据此规则计算出用户对每个零食的评分值。最后将生成的零食评分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 协同 过滤 个性化 零食 推荐 公众 平台 设计 实现
限制150内