大学本科有关的论文模板材料_第1页
大学本科有关的论文模板材料_第2页
大学本科有关的论文模板材料_第3页
大学本科有关的论文模板材料_第4页
大学本科有关的论文模板材料_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大学本科毕业设计(论文)绪论研究背景进入到21世纪,计算机、物联网和云计算技术迅猛发展,当今社会互联网大数据发展迅速,电子商务与物流产业逐渐成熟,我国电商行业的市场规模迅速扩大,在2022年,淘宝的总在线商品数量已经超过2.5亿。同年,达到了一年2415.1亿的销售额,根据《中国电子商务报告(2022)》显示全球电子商务交易额达到了43.83万亿元,比上年增长3.5%,网络购物已经成为人们生活中不可分割的一部分,截止至2022年12月网购用户规模达到8.45亿,相比于2021年12月上涨了319万人,即在中国有60%的人会使用网购。从市场主体根据图1.1【12】可以看出装修鞋帽、针纺织品商家占比最高达到总数的25%,同比增长11.9%,从商品品类数据根据表1.1以得出装修鞋帽、针纺织品占总零售额的22.62%,同比增长2.6%。[12]随着商品总类和市场主体的增长,能得出消费者在选购心仪服时是会面临信息超载等问题变得难以抉择,对于C2C、B2C电子商务平台,消费者想从海量信息数据筛选出自己喜欢的商品比较困难,对于B2B、C2M的电子商务平台,生产厂商和经销商来说想让自己的产品引起消费者的注意也不是易事。对于现代社会“人找信息”的传统服务模式已经逐渐落后,依据用户信息与历史数据进行自动筛选的服务模式——推荐系统应运而生,它不局限于把消费者看作网站的浏览者,更是网络内容的控制者。目前,淘宝、天猫、拼多多、京东等电商平台对简单个性化推荐功能已经进行应用,目的是为了实现商家的营销,但从消费者出发的个性化推荐应用少之又少,基于此,本文设计和实现基于大数据的装修推荐系统具有重要的实践意义。图1-12022年全国网络零售各类别店铺数量占比表1-12022年2022年全国网络零售市场各类零售额占比及同比增速商品品类网络零售额占比(%)网络零售额同比增长(%)装修鞋帽、针织纺品22.62%2.60%日用品14.62%3.30%家用电器和影像器材10.34%7.70%通讯器材7.45%7.40%粮油、食品7.32%15.60%化妆品6.41%6.40%文化办公用品6.34%10.10%家具5.33%-2.50%体育、娱乐用品3.65%10.80%其他商品2.98%8.50%五金、电料2.65%7.60%金银珠宝2.25%27.30%建筑及装潢材料1.99%16.40%汽车1.51%-6.60%饮料1.26%14.30%中西药品1.23%43.60%书报杂志1.02%4.30%烟酒1.00%19.10%电子出版物及音像制品0.03%-2.40%1.2研究目的和意义1.2.1研究目的随着计算机、物联网、云计算技术的飞速进步,我们正于一个数据爆炸的时代,人们接收到的信息量变得越来越大。并且由于互联网的普及使得数据量极具增加,传统数据的处理技术已经无法处理如今庞大的数据量和数据规模,人们开始意识到数据的价值,因此大数据技术诞生,并尝试用大数据技术来处理分析数据,人们从此进入大数据时代。通过对大数据技术的研究,产生了各类推荐系统,从电商平台的装修推荐系统到图书网站相关体裁和内容的图书推荐,使人们的生活产生了翻天覆地的变化。人们对自己喜好的个性化装修需求已经难以满足,为了满足人们对个性化装修的需求,本系统构建了一种基于大数据技术的装修推荐系统,根据推荐算法和数据库建立相应模型,通过迭代运算进行修正,使模型可以根据使用者的个人信息、历史数据、收藏信息等为其推荐装修,通过大数据技术分析实现消费者费者对于装修的个性化购买需求。1.2.2研究意义个性化装修推荐系统开发主要解决装修信息过量的问题。目前在淘宝、天猫、京东、拼多多等电商网站中,大量的装修信息导致人们在筛选的过程中耗费了巨大的时间和精力。使用户的使用体验几句下降,而基于大数据的个性化装修推荐系统可以能够在一定程度上提高按照用户需求选择装修的效率和精度,可以对用户个人信息、历史数据、收藏信息、购买行为数据进行分析,并且能够通过迭代运算出用户更加感兴趣的装修从而进行推荐。用户在电商平台进行购物,具有跨越空间和节省时间的购买优势,电商平台相较于实体商家,运营成本和时间成本较低,且购买方式便捷,因此成交订单数量要远大于实体店铺,通过大数据技术实现的个性化装修推荐系统可以贴近或完全符合消费者的购买意愿增强消费者购物的满足感,从而产生用户黏度,提高消费者在本平台的留存率。1.3国内外研究现状1.3.1国外研究现状Jung等对基于协同过滤的装修推荐系统进行了分析发现了协同过滤不能反映用户的全部数据的不足,并使用基于语义网络的个性化装修推荐系统,可以在没有用户偏好数据的情况下进行推荐;Sekozawa等基于AHP技术分析用户喜好,再通过装修的相关性形成聚类,并分析市场篮子,因此,该系统可以协调适合个别客户口味的衣服。它还可以根据过去的销售数据推荐其他衣服。Seo,Y

(Seo,Yian)

等使用分层神经网络(H-CNN)提出了一个输出分层信息的知识嵌入分类器模型,提高了装修推荐的精度,降低了损耗;Paul,A

(Paul,Agyemang)

等提出贝叶斯个性化排名系统可以根据特定的购物者、学生和研究人员的互动来帮助他们,这说明了通过生成智能推荐(如装修、书籍和其他相关信息)的巨大改进能力。然而,对于这些用户来说,在网上找到想要的装修和书籍是很复杂的,并且受到各种因素(例如,视觉外观和时间)的影响。因此,传统的个性化推荐方法仅对用户-产品交互数据进行建模,将提供不令人满意的推荐结果。在本文中,我们建议将视觉、时间和顺序信息结合起来进行个性化推荐。Su,XP

(Su,Xueping)

等提出随着经济的不断发展,消费者对个性化装修的需求也越来越受到关注。但是,现有装修推荐系统的推荐质量不足以满足用户的需求。在浏览在线装修时,面部表情是了解用户偏好的突出信息。本文提出了一种基于用户情感分析的自动个性化装修推荐的新方法。首先,面部表情按多类SVM进行分类。接下来,使用混合RCNN获得的表达强度计算用户的多兴趣值。最后,融合多兴趣值,进行个性化推荐。实验结果表明,所提方法比其他算法具有显著的改进效果。Delianidi,M

(Delianidi,Marina)

提出当长期用户模型不可用时,无法应用传统的推荐方法,例如协同过滤。在本文中,出了两种基于会话的推荐方法,用于通用电子商务框架中的匿名浏览。我们使用图表来表示数据,其中项目根据出现顺序或它们共同出现的顺序连接到会话并相互连接。在第一种方法中,称为分层序列概率(HSP),使用项目在图中某些结构上出现的概率生成建议。具体来说,给定会话期间的当前项目,要创建推荐的下一个项目的列表,我们首先计算以每个候选人的下一个项目结束的所有可能的连续三元组的概率,然后是所有候选项目对的概率,最后是建议项目的概率。在我们的第二种方法中,称为循环项目共现(RIC),我们根据线性循环机制产生的加权分数生成推荐列表,使用当前项目和所有项目之间的共现概率。我们使用四个基于会话的数据集将我们的方法与三个最先进的图形神经网络(GNN)模型进行了比较,其中一个数据集包含我们从皮革装修电子商店收集的数据。在推荐有效性方面,我们的方法在许多数据集上具有有利的竞争力,而生成图表和生成建议的时间要短得多。1.3.2国内研究现状中国国内的装修推荐系统还不成熟过于依赖装修标签不考虑是否适合消费者。和其他国家相比还有很大的差距。之后,中国很多研究人员根据装修推荐系统进行研究,取得了很大的成果。

韩丰泽利用系统推荐和消费者收藏、反复浏览商品,他们提出了基于装修个性化推荐的装修推荐算法。这是通过消费者喜好和倾向针对其推荐符合其需求和计算消费者或商品间的相似性的方式得出的结论。连同装修的内容一起计算装修的类似度,向用户推荐用户浏览过的装修;司梦楚等通过利用利用用户的历史浏览、点击、分享、加购和以购买等项目数据建立偏好模型,再通过提取其中的内容属性形成特征矩阵,通过分析用户模型和特征矩阵的相似度来为用户进行个性化推荐,但随着浏览记录数据的增加,这种方法难以准确的推荐用户喜欢的服饰;许晴晴对利用了数据挖掘等新模型的个性化装修推荐系统进行了分析,发现了用户模型不稳定,难以建模、推荐的精确度较低、系统的计算量过大三个问题,使用了基于内容的推荐算法、协同过滤推荐算法、混合推荐算法优化装修推荐系统,使其能够更加精准的进行个性化推荐;刘振娟等通过基于神经网络通过图像提取装修属性,建立用户偏好模型和基于时间因子的用户兴趣模型,将二者进行融合并进行数据采集与处理进行个性化推荐。但此方法存在调整因子对推荐的影响,导致精确度不够;甘美辰、李敏在《纺织学报》杂志《女装搭配推荐系统的设计与实现》。本文基于设计要素与装修风格的关系分析和女装属性的关联规则构建装修推荐系统。实现了的模型,根据用户的装修搭配、品类搭配、风格搭配、色彩大悲进行包含各种各样的意义的发掘,综合用户的评分、评论等计算装修推荐系数。实验结果表明,关系分析可以有效地挖掘用户对某些项目的潜在兴趣;杨怡然、吴巧英通过基于内容的推荐算法和协同过滤算法等基础上与新型技术结合形成智能推荐算法,实现更高效精准的推荐;李圆、于淼为了提高对用户推荐系统的准确性和提高用户使用体验对相关文献和研究现状和发展趋势进行分析,说明了相关技术的各自特点,归纳并总结了研究现状和应用情况,说明了未来发展趋势;王梦云等利用国内外对于装修推荐系统相关文献的发文量、关键词进行可视化分析并对发展趋势进行总结。并从中整理了装修推荐系统核心的技术和方法;王宁等提出传统的协同过滤算法计算相似度的方式过于单一,通过利用用户评分权重、项目优劣性等改进因子等方式,改进相似度的计算方式,降低了平均误差,使得得出的推荐结果更加精确;蒋文娟等提出基于协同过滤算法的个性化推荐系统可以分析用户的收藏信息并计算相似度从而给用户提供更有效的服务,提高用户的体验。1.4本文的主要研究内容本文的主要研究内容为:第一部分序论:序论主要描述了课题研究的背景,对装修推荐系统的研究意义和研究目的进行分析和说明,并对国内外的研究现状进行调查和整合。第二部分相关理论基础:该部分对本课题使用到的相关理论基础进行整理描述,主要包括大数据相关理论,大数据的概念和特征,基于内容的推荐、基于物品协同过滤推荐算法和TOP-K算法等。第三部分需求分析:该部分对系统的需求进行分析,分析了当前存在的装修推荐系统所存在的问题,为了解决这些问题需要实现的系统功能需求。第四部分系统设计:分析系统实现所需要的流程,对系统整体架构的设计,设计离线推荐和实时推荐模块的算法流程。第五部分系统的实现:这个部分简单地介绍系统的开发环境,利用图片展示系统的功能实现,测试系统的功能模块,对bug进行调试。

2相关理论基础2.1大数据理论2.1.1大数据概念在微观层面上,大数据技术为数据的存储和分析提供了一种简单的手段,这使得数字化资产变得更为重要。与此同时,它在各行业领域中的应用,可以为产业发展带来新的方向[14]。对于“大数据”(Bigdata)研究机构Gartner给出了这样的定义。“大数据”是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力来适应海量、高增长率和多样化的信息资产。麦肯锡全球研究所给出的定义是:一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征。2.1.2大数据特征大数据特征如下[14]1.数据量大第一个特征是数据量大。大数据的起始计量单位至少是P(1000个T)、E(100万个T)或Z(10亿个T)。2.类型繁多第二个特征是数据类型繁多。包括网络日志、音频、视频、图片、地理位置信息等等,多类型的数据对数据的处理能力提出了更高的要求。3.价值密度低第三个特征是数据价值密度相对较低。如随着物联网的广泛应用,信息感知无处不在,信息海量,但价值密度较低,如何通过强大的机器算法更迅速地完成数据的价值“提纯”,是大数据时代亟待解决的难题。4.速度快、时效高第四个特征是处理速度快,时效性要求高。这是大数据区分于传统数据挖掘最显著的特征。既有的技术架构和路线,已经无法高效处理如此海量的数据,而对于相关组织来说,如果投入巨大采集的信息无法通过及时处理反馈有效信息,那将是得不偿失的。可以说,大数据时代对人类的数据驾驭能力提出了新的挑战,也为人们获得更为深刻、全面的洞察能力提供了前所未有的空间与潜力。2.2推荐算法2.2.1基于内容的推荐 所谓基于内容的推荐算法(Content-BasedRecommendations)是基于标记物相关信息、用户相关信息及用户对标记物的操作行为来构建推荐算法模型,并寻找出物品或内容的内在关系,为用户提供推荐服务[10]。这里的标记物相关信息可以是对标的物文字描述的metadata信息、标签、用户评论、人工标注的信息等。用户相关信息是指人口统计学信息(如年龄、性别、偏好、地域、收入等等)。用户对标的物的操作行为可以是评论、收藏、点赞、观看、浏览、点击、加购物车、购买等。基于内容的推荐算法一般只依赖于用户自身的行为为用户提供推荐,不涉及到其他用户的行为。2.2.2TOP-K推荐算法Top-K方法是一种数据处理操作,旨在从一组数据中选择出前K个最大或最小的元素[13]。在计算机科学和数据分析领域,Top-K方法被广泛应用于排序、搜索和排名等任务。它对于处理海量数据特别有效,例如在1亿个数据中找出访问次数前1000的热点数据,或者在海量搜索字符串中找出搜索频率排在前十的搜索字符串等。在Top-K运算中,K表示要选择的元素的数量。如果需要找到最大的K个元素,则称为Top-K问题;如果需要找到最小的K个元素,则称为Bottom-K问题。常见的Top-K算法包括堆排序(HeapSort)、快速选择(QuickSelect)、分治法(DivideandConquer)等。这些算法利用不同的策略和数据结构来高效地找到Top-K元素,避免对整个数据集进行完全排序或遍历。此外,在分类任务中,Top-K方法也有其独特的应用。例如,在模型输出为分类标签的one-hot编码,且目标为正确标签的情况下,Top-K准确率用于计算预测结果中概率最大的前K个结果包含正确标签的占比。这在类别数很多时特别有用,因为模型虽然不能准确地将真实标签作为最高概率预测出来,但通过学习,真实标签的准确率能够在所有类中处于较靠前的位置。使用Top-K方法时,增加K值可能会带来更多样化的结果,但也可能增加输出错误的风险;而减少K值可能会产生更安全但更低多样性的输出。因此,在实际应用中,需要根据具体需求和场景来选择合适的K值。总之,Top-K方法是一种灵活且强大的数据处理工具,能够高效地处理大量数据并提取出有用的信息,在各种应用中都有重要的作用。2.2.3基于物品的协同过滤算法简单的说就是:基于物品的协同过滤算法是比较著名且使用广泛也是较为成功的推荐算法,主要功能是预测和推荐。算法通过对用户历史行为数据的挖掘发现用户的偏好,将喜好相同的用户分为一组,对喜好相同用户组的用户推荐装修时,根据用户的评分矩阵中的用户数据对相似数据进行提取,从而进行推荐[2]。实现过程为:当已经对用户行为进行分析进而得到用户喜好后,我们可以根据用户喜好计算相似的用户和物品,然后基于相似用户或者物品进行推荐。为用户生成推荐列表是根据用户的历史行为和物品相似度所得出,在计算之前首先要计算两项之间的相似度。用户的历史行为决定了物品之间的相似度。如果只考虑物品内容,那么计算相似度是一种基于内容的推荐。公式如(2-1)所示。(2-1)其中,表示喜欢或购买物品i的用户数量,表示同时喜欢或者购买两个物品的用户数量。(2-2)示计算用户u对物品j的兴趣度。(2-2)其中表示用户u喜欢的物品集合,表示和物品j最相近的K个物品的集合,是物品j和物品i的相似度,是用户u对物品i的兴趣度。算法思想如图2-1所示:图2-1基于物品的协同过滤算法

2.2.4ALS推荐算法ALS:交替最小二乘(alternatingleastsquares)的简称。也称为交替最小二乘法,其求解原理是基于矩阵分解后得到损失函数,通过对分解后得到的矩阵求偏导的方式使损失函数的RMSE值达到最小来获得所求模型的最优值。本文选择基于ALS模型的协同过滤推荐算法的原因是相较于基于用户的和基于项目的协同过滤推荐算法,基于ALS模型的协同过滤推荐算法在面对稀疏数据集时具有更好的处理效果以及更好的可扩展性[11]。在机器学习中,ALS特指使用交替最小二乘求解的一个协同推荐算法。它通过观察到的所有用户给商品的打分,来推断每个用户的喜好并向用户推荐适合的商品。ALS算法通过隐含特征(latentfactor)联系用户兴趣和物品(item),基于用户的行为找出潜在的主题和分类,然后对item进行自动聚类,划分到不同类别/主题(用户的兴趣)。本质是把协同过滤算法进行了一种延伸,把用户的相似性和物品的相似性通过了一个叫做隐向量的方式进行表达。矩阵分解算法将mx×n维的共现矩阵R分解成m×k维的用户矩阵U和k×n维的物品矩阵M相乘的形式。我们的目标就是填充共现矩阵中的空缺值,从而对用户的行为产生预测。其中m是用户数量,n是物品数量,k是隐向量维度,也就是隐含特征个数,只不过这里的隐含特征变得不可解释了,即我们不知道具体含义了,要模型自己去学。k的大小决定了隐向量表达能力的强弱,k越大,表达信息就越强,理解起来就是把用户的兴趣和物品的分类划分的越具体。每个用户和物品都有一个k维的隐向量来表示,因此如果我们想计算某个用户对特定物品的评分或其他隐式行为p;j,只需要计算对应向量的内积即可。ALS的优点:可以分布式计算,处理大数据场景泛化能力强,原论文提到如果采用Tikhonov正则化不论迭代次数多少或者隐藏向量维度多高都不会出现过拟合现象解决了协同过滤中头部效应明显的现象3系统需求分析3.1系统发展现状分析近些年来,随着计算机、物联网、云计算等技术的发展,大数据技术发展迅速,人们选择网购具有时间和空间上的优势,并且在线上购物用户可以在线订购各种商品,也可以了解产品的详细信息、商品的样式与评价,通过详细的装修信息、装修关键词与评价来判断是否需要购买,这是线下购物所无法相比的。同时装修资源正在日益增长,网络购物还可以通过优惠券和直播带货等方式使用户以较为实惠的价格购入装修。基于以上在如今的大环境下一个优秀的个性化装修推荐系统是必不可少的。装修推荐系统可以向用户推荐符合喜好的价格优惠的个性化装修,并且随着用户的继续使用还可以根据用户的个人信息、历史数据、和装修收藏信息进行迭代运算,从而为用户推荐更多符合他们喜好的装修。在我国,以最大的电子商务平台——淘宝网为例,进入网站的主页后,可以看到有一个“猜你喜欢”的栏目。在浏览主页时,还会看到各种不同的装修推荐榜单,以及“装修热销推荐”板块和“风格好店推荐”板块。装修推荐系统最突出的页面是装修详情页。点击任意一款装修的详情页,除了显示装修的基本信息、款式、尺码、生产厂家等,还有“大家都在店里逛”、“店铺推荐”、“根据相似单品推荐”模块。3.2系统存在的问题(1)由于繁杂和巨量的装修信息,使消费者很难从中挑选适合自己的装修,使得要购买装修的消费者视为畏途。(2)由于更新推荐时采用ALS算法使得新的推荐列表与原来的推荐列表大致相同导致用户体验感降低。(3)无法通过用户的喜好对装修进行精准推荐,从而无法提升销量。3.3功能需求分析此装修推荐系统的主要群体是用户,用户是大数据推荐算法的基础,本系统设计了用户模块,其中包含了用户的登录和注册功能,只有用户在系统进行注册且进行登录之后才可以进行装修推荐。装修推荐系统中推荐算法的最大数据来源也是用户,为此本系统设计了装修管理模块,用户不但能在此模块查看装修信息之外,还有收藏装修,为装修做评价等功能,通过这些功能系统可以更轻松的对用户进行个性化装修数据集的建立,能够为用户提供更好的推荐服务。为了实现通过用户的操作进行分析并且对于用户的喜好进行精准推荐,需要实现对系统所用推荐算法并对其进行封装,为了给予用户较好的使用体验本系统设计了实时推荐模块和离线推荐模块。实时推荐模块:对用户登录后进行的浏览、收藏、和评价等一系列操作进行分析通过迭代运算为用户实时推荐符合用户喜好的装修。离线推荐模块:将用户的一系列操作写入数据库后,用户就可以在登录后查看根据自己的历史行为通过迭代运算生成的个性化装修推荐列表。通过将用户模块的功能的简洁设计,便于用户操作,大大提高了用户的使用体验,并通过简洁的操作就能够生成更适合用户需求的装修推荐列表。装修推荐系统中使用最频繁的是系统中已经注册的用户,其主要是用过装修推荐系统生成的推荐列表进行对装修的挑选。对于没注册的新用户,在注册时并未填写对于装修喜好等个人信息,所以新用户暂时无法使用实时推荐和离线推荐模块的功能,当完善个人信息之后,实时推荐和离线推荐模块的功能才能被用户使用。从而根据用户模块的功能进行分析并为用户进行符合喜好的个性化装修推荐,为用户提供更好的服务。3.4用户需求分析 为了给予用户良好的使用体验,同时方便系统对用户进行管理,故对用户类型和用户需求进行分析。用户共分为消费者、卖家、管理员三类。消费者的需求为查询、收藏、评价装修以及查看装修的评价,并希望得到符合消费者洗好的个性化推荐列表。卖家的需求为对新款装修进行上架其中包括上传图片,上传装修尺码信息、上传装修的种类以及下架装修,管理员负责对后台存在的用户信息、商家信息进行管理。

4系统设计4.1总体架构设计采用微服务架构构建装修推荐系统,微服务架构区别于传统的单体软件架构,是一种为了适应当前互联网后台服务的三高需求:高并发、高性能、高可用而产生的的软件架构。微服务架构简单来说就是将单体应用进一步拆分,拆分成更小的服务,每个服务都是一个可以独立运行的项目。微服务架构的优点是服务原子化拆分、独立打包、部署和升级,保证每个微服务清晰的任务划分、有利于扩展,且微服务之间采用Restful等轻量级http协议互相调用。如图4-1所示 图4-1装修推荐系统项目架构图本系统开发使用前后端分离的方式。用户可视化:主要负责实现和用户的交互以及业务数据的展示,主体采用AngularJS2进行实现,部署在Apache服务上。综合业务服务:主要实现JavaEE层面整体的业务逻辑,通过Spring进行构建,对接业务需求。部署在Tomcat上。后端使用的框架为spring-cloud框架。业务数据库:项目采用广泛应用的文档数据库MongDB作为主数据库,主要负责平台业务逻辑数据的存储。后端通过检索存入MongoDB数据库中的数据并将其呈现给用户。缓存数据库:项目采用Redis作为缓存数据库,主要用来支撑实时推荐系统部分对于数据的高速获取需求。日志采集服务:通过利用Flume-ng对业务平台中用户对于商品的一次评分行为进行采集,实时发送到Kafka集群。消息缓冲服务:项目采用Kafka作为流式数据的缓存组件,接受来自Flume的数据采集请求。并将数据推送到项目的实时推荐系统部分。实时推荐服务:项目采用SparkStreaming作为实时推荐系统,通过接收Kafka中缓存的数据,通过设计的推荐算法实现对实时推荐的数据处理,并将结构合并更新到MongoDB数据库。离线统计服务:批处理统计性业务采用SparkCore+SparkSQL进行实现,实现对指标类数据的统计任务。离线推荐服务:离线推荐业务采用SparkCore+SparkMLlib进行实现,采用ALS算法进行实现。4.2总体功能结构设计根据用户历史系好进行装修的精准推荐是装修推荐系统的核心,为了能够给予用户更好的使用感且为了方便对用户和系统的管理,将装修推荐系统分为五个模块:用户模块,装修管理,装修收藏,装修评价,装修推荐列表模块。图4-2装修推荐系统结构功能图(1)用户模块:用户包含消费者、商家、管理员三类,包含用户注册和用户登录和完善个人信息三个个功能。精准装修推荐通过用户注册和登录功能之后的完善个人信息实现,方便管理不同用户的信息。(2)装修管理模块:包括装修信息和装修分类子模块,可以查看装修信息。(3)装修收藏:包括添加收藏和删除收藏功能,用户可以将喜欢的装修加入到收藏夹中,也可以将收藏夹中的装修删除,装修推荐列表可以通过用户收藏信息进行推荐。(4)装修评价:包括添加装修评价和修改和删除装修评价,用户可以根据对自己的喜好对装修进行评价,系统通过用户的评价经过迭代预算计算出用户感兴趣的装修并实现精准推荐。并且实时根据用户的装修评价更新推荐。装修推荐模块分为实时推荐和离线推荐。离线推荐模块:离线推荐的结果将被时间表程序定期写入到ClothesRecs和UserRecs。用户可以通过查询userId并且显示写入的结果。实时推荐模块:用户可以通过前端页面点击进入装修详情页,通过Clothes获取装修推荐列表。实时推荐模块是根据用户的历史行为数据进行分析运算生成的结果。也是装修推荐系统不可或缺的一部分。在该模块中的推荐算法为:当用户对浏览过的装修进行评价后,推荐算法利用机制迭代运算并分析用户的行为,分析并计算高评分的符合用户喜好的装修,从而生成符合用户喜好的装修分类数据集并返回前端向用户进行展示。4.3功能模块设计(1)用户模块管理功能包括用户的注册,登录等功能,用户模块功能流程图如图4-3所示。图4-3用户模块流程图(2)装修管理模块功能:在登录后可以在首页查看装修和我的装修收藏。装修管理流程如图4-4所示图4-4装修管理流程图(3)装修推荐功能模块:用户在登录到系统后,通过搜索引擎查找装修,系统通过用户搜索的关键词为用户进行装修材质,装修款式,使用季节进行筛选,并结合评价和价格为用户推荐符合喜好的装修,并在首页对用户进行推荐,用户还可以查看爆款装修列表和高分装修列表。装修推荐功能如图4-5所示图4-5装修推荐流程图4.4数据库设计4.4.1数据库MongoDB是一个基于分布式文件存储的数据库,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。本系统数据库使用MongoDB数据库存储文本数据,MongoDB数据库将存放用户信息和装修信息。用户的评价数据将被存储到Redis数据库中,为实时处理提供高速的数据传输数据格式为每一个userId里面保存多个ChothesId:rates。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。与关系数据库相比,MongoDB的速度快100倍,并且MongDB的优势在于它的性能和可扩展性上。MongoDB的特点1、高性能MongoDB提供高性能的数据持久性。对嵌入式数据模型的支持减少了数据库系统上的IO活动。索引支持更快的查询,并且包含嵌入式文档和数组的键。文本索引解决搜索的需求;TTL索引解决历史数据自动过期的需求;地理位置索引可用于构建各种O2O应用;2、高可用性MongoDB的复制工具称为副本集(reolicaset),它包含提供自动故障转移和数据冗余。3、高可用性MongoDB提供了水平可扩展性作为其核心功能的一部分。分片将数据分布在一组集群的机器上。(海量数据存储、服务能力水平扩展)从3.4起,MongoDB支持基于片键创建数据区域,在一个平衡的集群中,MongoDB将一个区域所覆盖的读写只定向到该区域内的那些片。4、丰富的查询支持MongoDB支持丰富的查询语言,支持读写(CRUD)操作、比如数据聚合、文本搜索、地理空间查询等。5、其他特点如动态模式、灵活的文档模型。Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis

Sentinel提供高可用,通过Redis

Cluster提供自动分区。Redis的性能非常出色,每秒读110,000次,每秒写81,000次。Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis支持数据的备份,即master-slave模式的数据备份。Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。装修推荐实体装修推荐实体包含:装修ID、用户ID、装修评价加权值。如图4-6所示。图4-6装修推荐实体图2.装修用户权重实体装修用户权重实体包含以下属性:用户ID、装修ID、用户对装修的喜爱权重,如图4-7所示。图4-7装修用户权重实体图3.历史行为实体历史行为实体包含:装修ID、用户ID、收藏、评分,如图4-8所示。图4-8历史行为实体图4.用户实体包含以下项目:用户ID、用户喜好标签1、用户喜好标签2、用户喜好标签3、用户名、性别、年龄、密码,如图4-9所示。图4-9用户实体图5.装修实体装修实体包含以下属性:风格、面料、价格、评价、收藏数、装修关键词1、装修关键词2、装修关键词3、装修ID,如图4-10所示。图4-10装修实体图4.4.2数据集格式Clothes数据集数据格式:clothesId,name,imageUrl,categories,tags,price字段名字段类型字段描述clothestIdInt商品IDnameString商品名称categoriesString商品分类imageUrlString商品图片URLtagsString商品UGC标签priceInt商品价格Ratings数据集数据格式:userId,prudcutId,rating,timestampRating数据集有4个字段,每个字段之间通过“,”分割字段名字段类型字段描述userIdInt用户IDclothesIdInt商品IDscoreDouble评分值timestampLong评分的时间User数据集用户信息表中包含用户ID、用户名、性别、年龄、密码、用户喜好标签1、用户喜好标签2、用户喜好标签3。其中用户喜好标签1、用户喜好标签2、用户喜好标签3,计算装修与用户的标签契合度,通过用户喜好与装修标签的重合度实现基于标签的装修推荐。如表4-7所示。字段名字段含义类型user_id用户IDINTuser_name用户名VARCHARgender性别VARCHARage年龄INTpassword密码VARCHARuser_tag1爱好标签VARCHARuser_tag2爱好标签VARCHARuser_tag3爱好标签VARCHAR4.5算法设计为了实现精准推荐系统中构建了离线推荐和实时推荐两种算法,在系统中没有历史使用记录的用户,系统通过离线推荐算法根据历史数据生成推荐装修列表并将其呈现给用户;实时推荐通过用户在已经存在系统中的浏览、购买、评价等历史记录,通过计算权重后,调用实时推荐算法进行装修推荐。4.5.1离线推荐离线推荐服务是综合用户所有的历史数据,利用设定的离线统计算法和离线推荐算法周期性的进行结果统计与保存,计算的结果在一定时间周期内是固定不变的,变更的频率取决于算法调度的频率。离线推荐功能采用了ALS作为协同过滤算法,通过根据MongoDB中用户评价计算有关用户装修推荐列表及装修相似矩阵。相关概念如下。文本挖掘:也称文本数据挖掘,这个过程旨在将非结构化文本转换为结构化格式,以发现有意义的模式和全新洞察。通过应用高级分析方法,例如朴素贝叶斯、支持向量机(SVM)和其他深度学习算法,企业能够探索和发现非结构化数据中隐藏的关系。隐语义模型:隐语义模型(LatentFactorModel,LFM)是一种机器学习算法,其中包含了隐含因子,类似于神经网络中的隐藏层。在隐语义模型中,我们使用同样的维度来表征(Embedding)条目和用户。对于条目,这个表征就是条目表现出的对应维度的特征强度;对于用户,就是用户表现出的对对应维度特征的偏好强度。隐语义模型可以通过数据不同的特征,挖掘物品间隐型的关联从而做到推荐。例如甲喜欢足球鞋,乙喜欢牛仔裤。通过隐语义分析可得甲喜欢“运动”类的装修,乙喜欢“休闲”类装修。协同过滤:协同过滤,从字面上理解,包括协同和过滤两个操作。所谓协同就是利用群体的行为来做决策(推荐),生物上有协同进化的说法,通过协同的作用,让群体逐步进化到更佳的状态。对于推荐系统来说,通过用户的持续协同作用,最终给用户的推荐会越来越准。而过滤,就是从可行的决策(推荐)方案(标的物)中将用户喜欢的方案(标的物)找(过滤)出来。具体来说,协同过滤的思路是通过群体的行为来找到某种相似性(用户之间的相似性或者标的物之间的相似性),通过该相似性来为用户做决策和推荐。余弦相似度:余弦相似度,又称为余弦相似性,是通过计算两个向量的夹角余弦值来评估他们的相似度。余弦相似度将向量根据坐标值,绘制到向量空间中,如最常见的二维空间。另外,它通常用于文本挖掘中的文件比较。此外,在数据挖掘领域中,会用到它来度量集群内部的凝聚力。4.5.2实时推荐离线推荐是系统通过综合历史数据计算得出的结果,实时推荐应该通过用户最近的行为分析计算生成推荐列表来推荐。实时计算与离线计算应用于推荐系统上最大的不同在于实时计算推荐结果应该反映最近一段时间用户近期的偏好,而离线计算推荐结果则是根据用户从第一次评分起的所有评分记录来计算用户总体的偏好。实时推荐需要系统迅速响应,如果实时推荐继续采用离线推荐中的ALS算法,由于算法运行时间巨大,不具有实时得到新的推荐结果的能力;并且由于算法本身的使用的是评分表,用户本次评分后只更新了总评分表中的一项,使得算法运行后的推荐结果与用户本次评分之前的推荐结果基本没有多少差别,从而给用户一种推荐结果一直没变化的感觉,很影响用户体验。因此不能使用ALS。为了实现系统快速响应,应将数据进行提前加载,只需要在已经存在的数据集上再进行少量的迭代运算就可实现实时推荐功能推荐结果的动态变化,只需要有合理的理由去更新推荐结果,另外由于要满足时间行能上的实时要求,故算法不应有过大的计算量,防止过大的计算量导致用户使用体验不佳。所以精度不是很高,且实施推荐功能更注重动态变化,推荐的理由只要合理即可。精度可以是当放宽。实时推荐流程:Flume从综合业务服务的运行日志中读取日志更新,并将更新的日志实时推送到Kafka中;Kafka在收到这些日志之后,通过kafkaStream程序对获取的日志信息进行过滤处理,获取用户评分数据流【UID|MID|SCORE|TIMESTAMP】,并发送到另外一个Kafka队列;SparkStreaming监听Kafka队列,实时获取Kafka过滤出来的用户评分数据流,融合存储在Redis中的用户最近评分队列数据,提交给实时推荐算法,完成对用户新的推荐结果计算;计算完成之后,将新的推荐结构和MongDB数据库中的推荐结果进行合并。算法设计:总体目标:通过用户对某件装修进行的评价,系统选择了与这件装修类型相似的M件装修作为这件装修的替代品。用过装修的优先顺序向用户进行推荐。通过用户最近的几次评价计算出没件装修的“优先推荐度”。除此之外,通过根据计算得出的最后一个推荐结果根据优先级进行合并运算,得到新的推荐结果。先获取用户u最近的K个评分,按时间顺序记为RK;获取装修p中最相似的K个装修集合,命名为S;然后,计算每个备选装修q的推荐优先级。计算公式如下:(4-1)式中:Rr表示用户u对装修r的评分;sim(q,r)表示装修q与装修r的相似度,最小相似度设定为1.2。当q和r的相似度低于1.2的阈值时,被认为是不相关的,可以忽略。Sim_Sum表示q和RK中相似度大于最小阈值的装修数。Incount表示RK中与书Q相似且自评较高的装修数(>=6);recrect表示RK中与装修Q相似且自评较低的装修数(<6)。参考文献[1]韩丰泽.基于深度学习的装修推荐系统分析[J].西部皮革,2022,44(18):[2]许晴晴.装修智能推荐系统在电子商务平台中的应用[J].黑龙江纺织,2021,(04):[3]牛蒙蒙,吴长姣,卢业虎等.面向网购的装修尺码推荐系统构建与应用——以女式T恤为例[J].现代纺织技术,2022,30(03):[4]杨怡然,吴巧英.智能化装修搭配推荐研究进展[J].浙江理工大学学报(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论