基于协同过滤的购物推荐系统毕业论文
2020-02-19 20:10:43
摘 要
网络的诞生和发展,改变了传统信息交流的方式,解决了传统信息传播的局限性。其中,网络购物作为一种与传统交易截然不同的商业模式迅猛发展。通过网络来进行信息交换和商品买卖无论是对企业还是个人都是便捷的。但是,由于网络信息量的不断增加,面对铺天盖地的数据,消费者和数据提供者都迎来了巨大的挑战,由此,提供个性化的数据成为了一种迫切的需求。
系统使用MVC框架搭建出一个商城系统,该系统实现了网络商城的注册登陆、查看商品、搜索商品、分类别浏览商品、加入移除购物车、添加订单、查看订单信息、评论等功能。在网站后台管理员开源对商品类别、商品信息的增删查改、用户信息的管理、订单的处理等功能。
致力于协同过滤推荐系统的设计与实现。系统个性化推荐引擎的工作原理是通过获取系统中用户产生的各项数据,并对此进行分析,给出用户推荐商品。
关键词:电子商城系统,商品推荐,协同过滤
Abstract
The birth and development of the network has changed the way traditional information is exchanged and solved the limitations of traditional information dissemination. Among them, online shopping has developed rapidly as a business model that is completely different from traditional transactions. The exchange of information and the sale of goods through the Internet are convenient for both enterprises and individuals. However, due to the increasing amount of information on the Internet, consumers and data providers are facing enormous challenges in the face of overwhelming data. As a result, providing personalized data has become an urgent need.
The system uses the MVC framework to build a mall system that implements the functions of registering and logging in to the online mall, viewing merchandise, searching for merchandise, browsing merchandise by category, adding shopping carts, adding orders, viewing order information, and comments. In the back-end of the website, the administrator open-sources the functions of adding and deleting product categories and product information, managing user information, and processing orders.
Committed to the design and implementation of collaborative filtering recommendation system. The system personalized recommendation engine works by acquiring various data generated by users in the system, and analyzing the data to give the user recommended products.
Key Words:Electronic mall system, product recommendation, collaborative filtering
目录
第1章 绪论 1
1.1 课题研究背景 1
1.2 研究现状 1
1.3 系统实现相关技术 2
1.3.1 Spring 2
1.3.2 Tomcat 2
1.3.3 MySQL 2
1.3.4 协同过滤推荐方法 3
1.4 系统达成目的 3
1.5 论文组织结构 3
第2章 需求分析 4
2.1 用户购物需求 4
2.1.1 商品查看 4
2.1.2 账号需求 4
2.1.3 购买需求 5
2.2 系统管理需求 5
2.2.1 商品管理 5
2.2.2 订单管理 5
2.2.3 网站设置 5
2.2.4 用户管理 5
2.3 非功能性设计 6
2.3.1 可用性 6
2.3.2 吞吐量 6
2.3.3 并发用户数 6
2.3.4 可靠性 6
第3章 系统分析与设计 7
3.1 系统结构设计 7
3.2 总体功能设计 8
3.3 推荐算法设计 9
3.3.1 基于用户的协同过滤算法 9
3.3.2 基于商品协同过滤的算法 10
3.3.3 数据冷启动 11
3.4 数据库设计 11
3.4.1 数据库概要设计 11
3.4.2 数据库实体设计 12
第4章 系统实现 16
4.1 用户模块 16
4.1.1 用户注册与登陆 16
4.1.2 商品推荐 16
4.1.3 商品浏览 17
4.1.4 购物车模块 18
4.1.5 用户订单模块 18
4.2 系统管理员模块 19
4.2.1 系统管理员登陆 19
4.2.2 管理员管理用户 19
4.2.3 商品管理 19
4.2.4 类别管理 20
4.2.5 订单管理 21
第5章 总结与展望 22
5.1总结 22
5.2展望 22
参考文献 23
致 谢 24
第1章 绪论
1.1 课题研究背景
时代的变化与互联网的发展使得互联网在我们的日常生活中起到了越来越重要的作用,人们日常生活对网络的依赖性越来越大,我们生活的方方面面都时刻与互联网保持这紧密的联系。网络的诞生和发展,改变了传统信息交流的方式,解决了传统信息传播的局限性。其中,网络购物作为一种与传统交易截然不同的商业模式迅猛发展。通过网络来进行信息交换和商品买卖无论是对企业还是个人都是便捷的。这样不仅方便了消费者,也节省了企业的成本[1]。但是,由于网络信息量的不断增加,这让人们在信息过载的网络中处于非常迷茫的状态,面对铺天盖地的数据,消费者和数据提供者都迎来了巨大的挑战,对于消费者来说,如果从过量的商品中得到自己关心,自己需要的数据难度极大;对于信息提供者,如何使得自己的信息提供的更加准确,也越来越难。由此,提供个性化的数据成为了一种迫切的需求。
基于该问题,出现了能够准确且高效地分析并向用户提供信息的系统。 这就是推荐系统。推荐系统的主要任务是快速有效地找到他们想要的东西。
目前使用较多,最受欢迎的就是以谷歌搜索为代表的搜索引擎基于用户输入的关键字搜索和响应内容的特征可以使人们大放异彩,但是当用户无法显式的表达自己的需求时,搜索引擎也将无能为力。
推荐系统建立在搜索引擎的基础上,集成了搜索引擎原有的优点。不仅为用户筛选出需要的信息,而且推荐系统不需要输入关键字,而是凭借用户的历史操作记录筛选出用户需要的信息。
1.2 研究现状
推荐系统是一个非常大的领域,各自有各自的特点。目前不论是国际上还是国内的公司都在尝试使用机器学习的方式来构建自己的推荐系统。它能够对各种复杂的特征进行计算机建模,例如字节跳动、淘宝等公司,都成功创建了自己的推荐系统,并使用在自家的产品中[3]。
在协同过滤研究的学术领域,自从上世纪90年代开始,就出现了第一批研究协同过滤的文章,学术界对协同过滤一直维持在非常高的研究水平,推荐算法也慢慢成为一门被独立研究的学科。近年来,国际学术界也对计算机网络信息集成的推荐进行了大量研究[4]:
(1)ACM组织设立了推荐系统年会(ACM recommender system)来研究推荐系统。
(2)推荐算法的文章在人机交互、数据挖掘和机器学习的顶级会议(SIGCHI,KDD,SIGIR,WWW等)中也在逐年增加。
(3) 数据分析领域的期刊也刊载了许多推荐算法内容的文章。其中,美国密歇根大学也早就在2006年就开授了关于推荐系统的课程。
而商城推荐系统,结合互联网经济与网上商城的研究,具有广泛的研究和应用前景。
1.3 系统实现相关技术
本系统主要采用Java语言开发,前端页面采用JSP展示,数据库采用Mysql开源数据库
1.3.1 Spring
Spring是一个轻量级Java 开发框架,于2003年出现。它旨在解决企业级应用开发的复杂性和冗余问题,致力于Java应用程序应用的各个层级的层解决方案,而不单单关注某一层的解决方案[5]。Spring的优势之一就是其对整体结构的分层,分层架构的设计允许开发人员可以自由挑选使用哪一种组件,而不必考虑系统由于架构而导致的局限性,同时为Java大型应用程序的研发提供可以高度自由的框架[6]。但是,Spring的用途不仅仅只局限于服务器端的开发。不管从简单性、耦合度,还是可测试性的角度来说,任何Java开发人员都通过Spring来使得自己的程序收益。Spring的核心技术就是控制反转(IOC)和面向切面(AOP)这两个功能。简单来说,Spring就是一个高度分层的一站式轻量级开源框架。
Spring具有很多优良的特点,主要体现在以下方面:
(1)方便解耦,简化开发 (高内聚低耦合)
(2)AOP编程的支持:AOP(Aspect Oriented Programming)意味面向切面编程。通过预先编译的方式和运行期动态代理的方式来实现系统代码的统一接口的一种手段,可以便捷的对各功能实现访问鉴权、日志记录等功能。
(3)声明式事务:本质上就是对接口前后进行拦截,在接口处加入一个事务,这样可以考虑实际场景对事务进行提交或者回滚。其与一般事务的最大优点就是不用在业务逻辑中杂糅事务代码,只需要再配置文件中进行配置或者使用注解的方式,就可以将事务加入到业务逻辑中。
1.3.2 Tomcat
Tomcat是一个免费的开放源代码的WEB服务器,归属于轻量级应用服务器。是Apache软件基金会中的一个核心项目,由Apache组织、Sun公司以及其他一些开源组织和爱好者一起开发得到。因为Tomcat性能稳定、开源免费,所以深深收到了程序工作者的喜爱,还得到了很多软件开发公司的支持,种种原因,都使得Tomcat服务器成为了目前互联网上相对流行的Web服务器。一般JavaWeb的学习开发者一般都会选择使用Tomcat服务器[7]。
1.3.3 MySQL
MySQL是一个由C和C 语言编写的小型关系数据库管理系统,与其他大型数据库相比,MySQL具有较高的使用速度并增加了应用的灵活性。由于MySQL是开源的,任何人都可以在通用公共许可证的允许下下载代码,并根据使用者的需求不同对代码进行不同的修改。MySQL因为其速度块、可靠性高和适应性强等特性而备受欢迎[8]。
1.3.4 协同过滤推荐方法
协同过滤方法是目前最流行的推荐算法之一,它通过挖掘当前用户过去的喜好,预测用户可能会感兴趣的东西。例如两名用户A和B,他们的历史购买记录有很多相同的部分。但是如果A购买了一件商品,但是B没有购买这个物品,就会认为B有很大概率会购买该商品,将该物品推送给B用户。这样的推荐会让用户方便的看到自己感兴趣的商品,大大提高用户的用户体验。对于商家来说,这样的推荐可以增加自己的商品销量。
人们对该算法的优缺点和性能情况都十分了解,其主要优势是推荐的准确度高,而缺点则表现在对于新用户没法进行推荐,对数据量的要求比较大[9]。
1.4 系统达成目的
系统使用MVC框架搭建出一个商城系统,该系统实现了网络商城的注册登陆、查看商品、搜索商品、分类别浏览商品、加入移除购物车、添加订单、查看订单信息、评论等功能。在网站后台管理员开源对商品类别、商品信息的增删查改、用户信息的管理、订单的处理等功能。同时,为了对网站基本信息的方便修改,管理员也可以在后台对其修改。
便于用户在众多的数据中找到自己想要的数据,设计并实现一套推荐算法用于商品的推荐。
在充分发挥MVC设计模式的优点同时,要进一步考虑系统的耦合性、复用性、移植性、灵活性、扩展性和应用性能等。
1.5 论文组织结构
第一章介绍了系统的研究背景、当前国内外的相关研究的发展情况,简要介绍了该系统需要用到的相关技术,并介绍了系统了最重要达到的目标。
第二掌介绍了对系统的需求分析,主要从用户的购物需求、系统管理方面的需求,以及非功能性,例如可靠性、复用性、性能等几方面介绍。
第三章是对系统的进行分析与设计,包括系统的总体结构、总体功能的设计,并详细介绍了推荐算法的设计,最后并对数据库进行了详细的设计说明。
第四章主要是对系统的实现,包括普通用户的商品模块,还有系统管理员模块,核心是对商品的购买流程。
第五章表达了对该系统的总结和展望。
第2章 需求分析
需求分析针对用户的需求进行了详细的描述,它从整体上概括了将要开发的应用软件的功能。只有明确了这些需求后,开发人员才能对每一个需求做出合理的设计,得到出预期的结果。
需求分析是软件开发过程中一个非常必要的步骤,它为后面的开发流程定下了目标,指明了方向。如果一个问题,在需求分析阶段发现,解决它只需要一个小时,如果在开发过程中发现,解决它就需要十倍的时间,而在测试阶段发现并解决它就至少要一百倍的时间。同时,如果需求不明确,最终的结果达不到用户的条件,系统的研发工作就难以在规定的时间内完成,造成更大的损失。由此可见,好的需求分析可以使得系统在开发过程中少走弯路,大量节省开发所用时间。
我们将通过功能性需求分析,非功能性需求分析,以达到如下目的:对系统的全部功能进行整体性的描述,确保能够准确,完整的描述全部功能。分析实现系统所需的全部资源,以此为标准对软件进行设计;为系统的实施做出规划,保证满足需求的同时保证程序的可复用性。
2.1 用户购物需求
商品推荐系统是根据用户不同喜好与需求、依靠电子商城来进行商品推荐的。因此要实现商品推荐系统首先需要实现一个电子商城的主要功能。
2.1.1 商品查看
优秀的商城物品推荐系统,第一点需要的应该是满足用户友好条件。在访问网站没有登陆的时候,用户依然可以查看网站的商品,包括商品目录和商品详情页,也可以使用商城的搜索功能通过关键字查询商品。
然而庞大的商品数量会让用户难以选择,所以需要进行推荐用户可能喜欢的商品,展示在首页,让用户方便选择与购买。
2.1.2 账号需求
用户可以在网站的首页进入注册页面从而注册自己的账号,然后通过自己的账号密码就可以使用商城的购买功能,评论功能等。
系统需要记录用户在系统中操作的数据,包括浏览记录,购物车记录,购买记录,评论记录等,这些功能都需要用户在登陆之后才能被记录。进入系统后,用户就被允许使用相应的功能了。在用户登录系统后,商城会为用户保持Session信息,这样,用户一段时间内再次打开网站时就不需要重新登陆系统。
登出:当用户想要结束自己在该商城系统的浏览时,用户可以选择等出系统,与登陆相对,用户登出之后就会在系统中删除该用户的session,系统就不会在记录用户的操作,这样用户如果再想要执行例如购买,加入购物车等功能就需要再次输入账号密码登陆。这样设计可以在一定程度上保证用户的信息安全。
2.1.3 购买需求
商品购买:商品购买这部分是系统的核心功能,也是整个系统的核心目的,该模块需要提供商品选择,订单生成,修改提供订单以及支付这四种功能给用户。
管理购物车:用户在浏览网站时可以将商品加入购物车,之后,可以在购物车页面查询自己曾加入进来的商品,在这里,可针对某一种商品对数量进行修改、在购物车中删除该商品以及清空整个购物车等功能。
订单功能:用户在购物车页面可以挑选想要的商品提交订单,也可以在商品详情处直接购买提交订单,在提交订单时需要用户填写收货人的相关信息,核对信息无误后提交订单,之后需要用户扫描二维码支付,顾客提交订单之后可在电子商城查询该订单的信息,当商城管理员发货之后可以确认收货,确认收货之后用户可以对该商品进行评价。
2.2 系统管理需求
2.2.1 商品管理
商城管理员可以对商品、订单、用户等信息进行管理,当用户登陆后如果该登陆角色是管理员角色,那么可以登陆后台查看平台管理信息。
商品管理功能主要包括为商城增加新的商品,同时也可以对旧商品的信息做出更改。
为了刺激用户的购买欲,向用户展示当前商品的折扣,可以展示当前商品的原价和折扣价[10]。
商品类别管理:每一种商品都属于一种类别,管理员可以增加和修改商品类别。
2.2.2 订单管理
管理员可以在系统后台执行订单管理。通过此功能,管理员可以查看到各用户的基本订单信息和详细订单信息,管理员可以对订单的状态做出更改,当用户支付过后,管理员就可以选择在系统中对该商品发货
2.2.3 网站设置
管理员可以对网站的基本信息进行修改,包括网站的名称,首页的标题等信息。这些信息会显示在网站的首页。
2.2.4 用户管理
管理员可以对其他用户进行管理,设置该用户是否是管理员,同时当发现某用户的信息操作可疑时,可以直接在系统中冻结用户,不让用户登陆。
2.3 非功能性设计
2.3.1 可用性
考虑人性因素,界面操作应符合用户或其他参与者通常的操作习惯,避免使用一般色盲人群难以辨认的颜色,快捷、无措的操作响应处理极为重要,用户极可能不愿意等待超过5秒的响应时间。
2.3.2 吞吐量
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: