版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大学生毕业求职推荐系统设计与实现Thedesignandimplementationoftherecommendationsystemforgraduatestoapply致谢大学阶段的学习生活即将结束,回顾以往,各位老师的细心教导以及同学们的关怀照顾一直陪伴在我的学习和生活中,我走出的每一步都有他们的影子,都离不开他们对我的帮助。在此,我要向他们表示我的诚挚谢意。值此本论文最终完成之际,我首先要深深地感谢我的导师王逢州副教授,他在毕业设计开题之初对我进行精心的辅导和帮助、在我论文开题过程中,不断的提出改进方案,这些都是我顺利完成毕业设计及论文的关键,俗话说完事开头难,导师对我的帮助是十分重要的。其次,今日论文的完稿,还承蒙一样对我进行悉心指导的徐海学院的老师们。在平日的计算机专业课程的学习中,是你们教会了我专业技能,知识的学习方法以及系统化解决问题的思想,是我毕业设计强有力的技术支持。最后,感谢我的家人和朋友对我的支持和帮助。1绪论摘要大学生作为社会的鲜活血液,全国各大高校每年为社会输送数以万计的专业人才。但是由于人数增加造成了严重的就业问题,毕业生无法顺利、高效地寻找到适合自己的工作。而学校毕业生就业管理更多是仅提供招聘信息发布功能,并不具备信息推荐功能。因此,设计一套满足就业要求的推荐系统,为大学毕业生提供一个便捷的资源查找方式,对提升大学生就业率具有十分重要的意义。就业推荐系统的开发基于了当前流行的Spark技术,使用MongoDB、Redis数据库,方便数据的存取。项目后台代码的编写采用了SpringBoot作为开发框架,Flume和kafka作为日志收集工具。项目整体使用了大数据相关技术,结合现有理论技术研究完成相对应功能的分析与设计。论文首先对研究背景进行阐述,分析了当前大学生就业问题以及相关研究现状,进而确定了接下的主要研究工作。其次由于大数据对推荐系统的影响,确定了大数据与就业相结合实现就业推荐系统。并对系统功能模块进行了分析:数据初始化、离线推荐服务、实时推荐服务等具体模块,确定了其提供的功能要点。接下来就系统实现进行了详细的实施,给出了各功能的具体实现方法,算法分析过程等。最后,论文对整个研究分析工作进行总结,指出优势和不足,对下一阶段的研究工作进行展望。该论文有图9幅,表10个,参考文献22篇。关键词:大数据;就业;推荐;高效;集群AbstractAsthefreshbloodofthesociety,collegestudentssendthousandsofprofessionaltalentstothesocietyeveryyear.However,duetotheincreaseinthenumberofpeople,therearemanyproblems,graduatescan’tfindtheirownjobssmoothlyorefficiently.Theemploymentmanagementofschoolgraduatesonlyprovidesthefunctionofreleasingrecruitmentinformation,anddoesnothavethefunctionofinformationrecommendation.Therefore,itisgoodtodesignasetofrecommendationsystemtomeettheemploymentrequirementsandprovideaconvenientwaytofindresourcesforcollegegraduates.Thedevelopmentoftheemploymentrecommendationsystemisbasedonthecurrentpopularsparktechnology,usingMongoDBandRedistofacilitatedataaccess.Springbootisusedasthedevelopmentframework,flumeandKafkaareusedasthelogcollectiontools.Thewholeprojectusesbigdatarelatedtechnology,combinedwiththeexistingtheoreticaltechnologyresearchtocompletethecorrespondingfunctionanalysisanddesign.Firstly,thepaperexpoundstheresearchbackground,analyzesthecurrentemploymentproblemsofcollegestudentsandrelatedresearchstatus,andthendeterminesthefollowingmainresearchwork.Secondly,becauseoftheinfluenceofbigdataontherecommendationsystem,thecombinationofbigdataandemploymentisdeterminedtorealizetheemploymentrecommendationsystem.Andthesystemfunctionmodulesareanalyzed:datainitialization,offlinerecommendationservice,real-timerecommendationserviceandotherspecificmodules,andthekeypointsofitsfunctionsaredetermined.Next,theimplementationofthesystemiscarriedoutindetail,andthespecificimplementationmethodofeachfunctionandthealgorithmanalysisprocessaregiven.Finally,thepapersummarizesthewholeresearchandanalysiswork,pointsouttheadvantagesanddisadvantages,andlooksforwardtothenextstageofresearchwork.Thispaperhas9figures,10tablesand22references.Keywords:Bigdata;employment;recommendation;efficiency;clusterration目录摘要…………………=1\*ROMANI目录…………………=5\*ROMANV1绪论………………11.1研究背景与意义…………………11.2同类系统研究与应用现状………11.3研究的内容以及主要工作……………………11.4论文结构安排………………12推荐系统研究……………………72.1个性化推荐系统概述……………72.2个性化推荐方法…………………72.3技术支持…………72.4项目可行性………………………73系统整体分析与设计……………213.1系统设计思路……………………73.2系统整体分析……………………73.3离线推荐模块分析………………73.4实时推荐模块分析………………73.5数据库分析………………………73.6相关问题与算法…………………74系统详细设计与实现…………714.1系统环境………………………714.2数据库设计与实现……………724.3登录功能设计与实现…………764.4离线推荐服务设计与实现……………………714.5实时推荐服务设计与实现……………………724.6其他数据展示设计……………765系统测试…………213.1系统测试目的……………………73.2系统测试及使用方法……………73.3系统测试结果及分析……………76总结与展望……………………716.1回顾与总结……………………716.2展望……………76参考文献…………111翻译部分…………115ContentsAbstract……………=1\*ROMANIContents………………=5\*ROMANV1Introduction………………………11.1researchbackgroundandsignificance……11.2researchandapplicationstatusofsimilarsystems…11.3researchcontentandmainwork……………11.4paperstructurearrangement………………12ThestudyofRecommendedsystem……………72.1personalizedrecommendationsystem………72.2personalizedrecommendationmethod………72.3technicalsupport……………72.4projectfeasibility…………73Overallanalysisanddesignofthesystem………………213.1systemdesignidea……………73.2overallsystemanalysis……………………73.3offlinerecommendationmoduleanalysis…………………73.4realtimerecommendationmoduleanalysis………………73.5databaseanalysis……………73.6relatedproblemsandalgorithms…………74Detaileddesignandimplementationofthesystem……714.1systemenvironment…………714.2databasedesignandImplementation……724.3designandimplementationofloginfunction…………764.4designandimplementationofofflinerecommendation………………714.5designandimplementationofreal-timerecommendation……………724.6otherdatadisplaydesign…………………765Systemtest……………………215.1purposeofsystemtest………75.2systemtestandusemethod…………………75.3systemtestresultsandanalysis…………76SummaryandProspect…………716.1reviewandsummary…………716.2outlook…………76References…………111Translationpart…………………1151绪论1Introduction1.1研究背景与意义(researchbackgroundandsignificance)随着互联网技术的发展,人类已经完全进入到了信息化社会和网络时代。时间来到了2020年,这一年中国的网民数量达到了9亿之多,较2018年底的网名数量增加了7000多万,互联网的普及率高达64%。绝大多数的网名使用移动终端设备上网,尤其是使用手机上网的比例已经达到了99%之多,说互联网已经是“手机的天下”都不为过,各类信息的获取和传播速度呈现爆炸性增长。这些数据无不意味着人们已经加速进入了信息超载的时代。所谓信息超载[1]是指信息的量超出了个人或系统的能够承受和利用的范围,导致的后果是信息的有效利用率降低。面对海量的信息,通过简单的查找关键字的方式已经无法快捷方便的获取我们想要的信息。例如我们目前查找信息的多使用百度,Google等搜索引擎。这种无差别的信息检索方式,虽然在一定程度上可以让我们获取到一些特定的信息需求,但是更多的用户们渴望有较强针对性地获取我们想要的信息。而为了解决信息过于庞大,加之搜索引擎具有一定的局限性等因素,因此结合大数据技术而产生了一系列的个性推荐系统。同Baidu、Google等传统的搜索引擎想比较,推荐系统的优势更加明显,表现更加可圈可点。推荐系统不仅会展示固定的结果,它还会通过研究用户模型以及用户的偏向喜好,将用户感兴趣、更加适合用户的内容呈现出来,满足个性化的推荐信息展示。运用传统搜索引擎搜索查找特定信息时,用户键入关键词后,只会呈现包含其关键字的一系列信息,用户需要在海量信息中通过筛选获取有用的信息。而在信息超载时代,这一系列信息是积极庞大的,很难有较好的用户体验。而个性推荐系统在一定程度上解决了这项难题,该系统通过分析一些特定的信息,例如用户的使用记录,兴趣偏好等再通过特定的计算方法,针对不同的用户来做个性化推荐展示,可以更好的发现用户的潜在要求,并挖掘出用户最可能感兴趣的内容通过及时处理展示给用户。目前,推荐系统主要应用于电子商务领域[2],电商公司根据不同用户的偏好设置,浏览历史和收藏记录等信息,将用户可能感兴趣的产品或商品推荐给用户,大大减少用户的浏览检索时间,提高用户的使用满意度以及商品销量。跟着高校扩招,每一年高校应届毕业生的数量逐年递增,屡创新高,就业的压力不容小觑;由于我国的人口基数大,加上并不十分完善的高校就业指导,造成了大学生“毕业即失业”这一重大问题。大学生们寒窗苦读二十余载,却不能顺利的在毕业后找到工作,甚至于都找不到任何工作。就业问题仍是社会和国家的亟待解决的重要问题,如何有效提升就业效率以及提高就业质量一直是人们所关注的热点问题。就业的方式有很多种,一方面可以学校推荐就业,但是这种情况毕竟只是少数人,更多的同学则是通过浏览网上的招聘信息或者通过人才市场来寻找适合自己的工作,效果并不是很理想。网上查找信息虽然很方便,但由于信息过于繁杂,信息量及其庞大,势必会增大毕业生的对于工作的检索难度。在互联网时代,如今的就业信息都集中在网上,通过网络搜索的方式获取信息。目前网上有很多第三方就业信息服务网站,例如:智联招聘、前程无忧、Boss直聘等,都可以根据简单的关键字推荐工作,但是推荐的就业信息总不尽如人意。这些网站虽然提供信息,但大多数还是让用户自己筛选甄别信息,费时费力而且结果很难让人满意。但是如果网站可以实现符合个人情况的就业信息推荐,那么大学生就业难的问题便能得到很大程度的缓解。大学生就业推荐系统便是在这种情况下随之诞生的。1.2同类系统研究与应用现状(researchandapplicationstatusofsimilarsystems)推荐系统的研究开始于20世纪90年代[3][4]1995年3月,卡耐基梅隆大学的RobertArmstrong等人在美国人工智能协会上提出了个性化导航系统WebWatcher;斯坦福大学的MarkoBalabanovic等人在同一会议上推出了个性化推荐系统LIRAO;1997年,AT&T实验室提出了基于协同过滤的个性化推荐[5]系统PHOAKS和ReferralWebO。随着电子商务的兴起,个性化推荐系统逐渐成为电子商务IT技术的一项重要研究内容。2001年,IBM公司在其电子商务平台Websphere中增加了个性化功能,以便商家开发个性化电子商务网站。ACM自2007年在美国举办了第一届推荐系统国际会议(ACMConferenceonRecommendersystems,简称Recsys)之后又连续举办了5届。在实际应用方面,国外的较为著名的推荐系统有Groupiens网上新闻过滤系统、Jester笑话推荐系统、Rmgo音乐推荐系统、Amazon的图书推荐系统、Netmx网络视频推荐系统和Youtube视频推荐系统等。其中最为著名的是Amazon的推荐系统,采用基于项目内容的协同过滤推荐技术[6],利用用户对物品的评分来计算与用户历史喜好物品相似的最近邻集合,然后选取推荐值最高的若干物品推荐给用户。与国外相比,虽然国内对推荐系统的研究起步较晚,但是随着国内互联网的广泛普及,加之网络用户数量逐年上升,特别是电子商务的快速发展,推荐系统尤其是个性化推荐系统越来越多地获得了研究学者和企业应用者的青睐和追捧,越来越多的公司将推荐系统应用到各自的业务系统中,以提高用户的体验效果来获取用户的长久地持续性关注[7]。这一现象在电子商务方面的表现尤为突出,较为著名的有京东商城、当当网、阿里巴巴等购物网站的推荐系统,多媒体方面则有优酷网、土豆等视频网站的推荐模块,腾讯、新浪等也在各自的社交应用中使用了相应的推荐系统[8]。1.3研究的内容以及主要工作(researchcontentandmainwork)随着高校扩招的趋势越来越强烈,大学毕业生的数量也是逐年增加,就业问题己经成为急需解决的社会问题,越来越多的大学生无法在毕业之后顺利找到心仪的工作,“毕业即失业”既是一句调侃,同样是目前毕业生所面临的最现实的问题。就业的影响因素主要包括大学毕业生对就业前景的期望、大学毕业生自我评价职业素质、大学生入职及之后的薪资待遇问题等。问题主要体现在两个层次一方面是务实问题,毕业生主要对此问题慎重考虑,他们都比较注意实用,对于择业单位、工作工种等考虑得较多,对未来生活开销、之处等问题考虑较深。因此他们更多考虑的是职位的薪资问题。另一方面则是就业方向问题。这一部分毕业生选择的更多是先就业,后择业:其次是先择业后就业,而选择继续深造的比例最小,这也是由于就业较为困难,加之即将步入社会对外来生活充满恐惧。因此,当毕业生面对这些压力的时候,小心谨慎的人还是占大多数。当然,毕业除了选择就业以外,也有不少同学选择“继续深造”,这些人更看重知识的重要性,希望拥有更多的知识充实自己。由于社会的进步以及人们素质的不断提高,大学生们对自己的要求也在逐年提高,选择考研深造的同学逐年增减,另一方面由于社会竞争压力大,一些同学急需提升自己的核心竞争力而选择继续深造。分析其利弊可以发现:大学毕业生的这种做法能够有效缓解就业压力,并且能够进一步地提高自身素质,从而使我国的人才结构得到一定的改善,增加了高级人才的储备,提高我国的国际竞争力。但是这种现象也从另一方面反映出大学毕业生普遍具有较弱的心理素质,害怕过早走入社会,不愿离开校园这座安全的象牙塔,难以承受社会的压力。而在竞争十分残酷的就业市场中,有部分大学毕业生宁愿选择逃避现实,降低就业风险,也不愿意面对真实的现实。若这一现象的比例不断上升,那么中低档人才很有可能会出现断档的现象,这对于国家的建设发展还是有一定影响的。通过以上分析,就业问题不仅与社会生存压力有关,也与学生是否具有良好的心理素质有关。因此,各类高校以及学院急需对学生提供一定的就业指导以及心理方面的培训,综合锻炼学生的各方面素质,提高学生的竞争力以及抗压能力。学生心理素质需要高校进行一定的就业指导帮助,但就业环境则是社会急需解决的问题。目前涉及到为学生提供就业服务的网站并不算少,而且发展速度极快。这些基于WEB的招聘网站,一般设有企业招聘、学生求职、就业培训等展示窗口及功能页面,为求职大学生提供就业岗位介绍、为招聘企业提供了岗位展示的平台,但是其功能结构并不十分完善,还有一定的局限性,例如针对毕业生的专业方向提供指导,如何针对个人的不同情况提供个性化推荐服务,如何保证信息的及时性和真实性。因此,开发具有推荐功能的就业系统变得十分迫切以及必要。因此,本文针对大学生就业问题设计了就业推荐系统,系统主要包含了离线推荐和实时推荐体系,协同过滤算法、基于内容的推荐等算法相结合,提供了混合推荐服务。本文内容包括了从前端页面、后台业务、数据处理、算法分析与实现等内容的展示,以及对系统未来发展的展望。1.4论文结构安排(paperstructurearrangement)本论文阐述了针对大学生就业推荐系统进行的详细的研究设计与实现过程及结果,总体分为六个章节。第一章与第二章简述了就业问题与推荐系统的研究现状,结合当前的技术以及现实意义分析系统的可行性并加以表述论证。第三章至第五章为对系统的理论分析,设计和实现以及最后的系统测试部分,根据系统功能的不同分类设计不同的功能模块,并根据各功能模块所需技术及要求不同分别对其进行详细分析并实现具体模块。第六章为对项目整体分析、设计和实现阶段的总结以及系统将来的优化完善。系统设计完成的心得以及对自己将来发展的期待与展望。2推荐系统研究2ThestudyofRecommendedsystem2.1个性化推荐系统概述(personalizedrecommendationsystem)我们已经迈入信息超载的时代,除搜索引擎以外,个性化推荐系统即将成为人们获取有效信息的强有力工具[9],并且已经有众多学者针对此技术及系统进行研究。所谓个性化推荐系统是指通过分析用户的个人信息、用户的历史行为以及用户的个人偏好来预测用户对某些资源的喜好程度[10],并根据不同用户喜好将其可能感兴趣的内容推荐显示在页面上[11]。推荐系统一般包含三个主要功能模块:数据收集,数据处理以及推荐展示模块,收集功能主要是收集用户基本信息,记录用户使用记录以及获取用户提前勾选的兴趣爱好等信息,按照这些信息所显示的结果并针对不同的用户做出个性化推荐。个性化推荐算法[12]作为推荐系统的核心对系统执行效率具有重大意义。如图2.1所示,展示了一般个性推荐系统的主要数据类型及其流向,将用户的相关信息例如偏好,历史行为等数据和从信息源获取到的处理信息对比甄别,通过个性化推荐算法计算将特定信息推荐展示给用户[13]。个性化推荐系统是不同于普通的搜索引擎的特殊搜索工具,它运用高效的信息处理技术从庞大的信息库中搜寻与用户填写的偏好,浏览记录等相关的信息并做出相应处理,从而实现信息的高效过滤,大大提高了用户检索有效数据的效率。个性化推荐既离我们很远,又离我们很近。推荐系统已经广泛应用与生活的方方面面,例如天猫、京东、爱奇艺、搜狐视频、百度等这些我们经常使用的应用均已使用个性推荐系统,他们总是会弹出我们感兴趣的内容,十分便捷。我们目前的生活已经被各式各样的推荐信息所包围,未来我们的生活必将出现更多类型的推荐系统来提高我们做事的效率,而推荐系统作为机器学习[14]的一部分,已经对我们的生活产生重大的影响,随着未来机器学习的深入及应用,我们的生活必将更加美好。图2.1个性化推荐系统的通用模型2.2个性推荐方法(personalizedrecommendationmethod)基于内容的推荐基于内容推荐,是基于内容的信息过滤技术的发展[15],不需要获取相关物品的任何外部信息,例如评价信息,是否收藏等,该算法只需要根据用户的历史浏览记录中提取物品的特征向量,并建立起该用户的偏好模型。再计算出推荐物品的特征向量集,并同用户的偏好模型匹配,计算结束后将结果排序,匹配度最高的前N个对象即为该用户的推荐对象,这便是基于内容的推荐策略。其实现的基本过程如图2.2所示,执行需要有两方面的数据支持:用户历史偏好描述和候选物品的特征描述。而在实际环境中,物品的特征描述很多,好比说一本书的种类,或者是一部电影的导演,乃至一首音乐的风格,而每个用户所关心的物品特征又因人而异。对于视频、音频等非结构化的文件来说,根据现有技术还无法提取出预期相关的唯一的约束性标识,但对于文本文件来说获取表示却十分容易。图2.2基于内容的推荐原理图以文本描述的物品为例,简单说明一下基于内容的推荐[16]的整体流程,步骤如下:第一步:内容表示。需要把物品的特征转换为结构化的数据来表示,所用方法中最著名的就是向量空间模型法,该方法会将文本内容转化为空间向量并进行运算,转化过程常用TF-IDF算法,把文本内容中权重较大的关键词提取出来,描述为一个n维的空间向量作为该文本的特征信息。第二步:计算用户历史偏好与涉及物品特征之间的相似性。用户历史偏好可以用下面的形式来表示。U用户历史偏好与物品特征的相似度可以用如下公式表示。sin公式中,向量U表示用户的偏好,向量J表示物品的特征。第三步:产生结果。相似度计算完成后,将其进行排序,最终相似度最高的前N个对象即为用户的个性推荐,这些对象的集合便是个性推荐系统生成的结果。基于内容的推荐,其优点是不依赖用户的操作行为,而是根据被分析对象内在的属性而进行分析,此方法简单、有效,推荐结果直观且容易理解,并不会存在数据稀疏的问题;但其缺点则是受限于推荐对象特征提取能力,很难出现新的推荐结果,往往推荐结果不会发生变化,且新用户会发生冷启动问题,即新用户没用使用记录或收藏记录而无法做出推荐。协同过滤算法协同过滤推荐的基本思想[13]是,如果用户在历史上有过相同的兴趣偏好,那么他们在将来也会有相同的兴趣爱好,利用与当前用户相似度较高的其他用户来预测当前用户对特定资源的喜好程度。比如说,用户小赵和小李,他们的历史记录非常相似,而小赵最近在网上购买了一见外套,而小李没有购买,那么小赵就很可能向小李推荐这件外套。而系统预测小李可能购买的外套可以通过分析小赵的兴趣偏好,进而找出最有希望被购买的外套,这种方式是用户在隐式地与他人相互协作,因此称之为协同过滤CCF,(CollaboraoveFiltermg)技术。协同过滤推荐策略是目前运用最多的推荐策略之一,因为这种推荐策略最大优势就是对被推荐人没有任何要求,无论是结构化的文本信息,还是非结构化的视频、音频等信息都可以作为推荐对象。其输入数据是给定的用户一物品评分矩阵,输出数据一般是Top.N项推荐物品列表或表示当前用户对物品喜欢程度的预测数值协同过滤推荐策略分两类:基于用户的协同过滤推荐以及基于物品的协同过滤推荐。2.3技术支持(technicalsupport)目前,国内外对于基于大数据的就业推荐平台的研究主要根据电商大数据推荐平台的研究进行的,主要技术要点分为Hadoop平台生态圈和spark平台生态圈。这两大技术是构成大数据推荐系统平台的关键核心支撑。Hadoop是并行计算框架与分布式文件平台,其核心技术包括HDFSMapReduce。MapReduce是Hadoop的分布式计算模式,而HDFS则为分布式计算存储提供了底层技术支撑。数据爬虫部分则应用可分布式的特点获取的海量日志和大量相关数据。通过爬虫获取的海量数据则通过分布存储的方式存储,主要依托Hbase实现。而Mahout是一个集成了机器学习和数据挖掘的分布式框架,它的顺利运行离不开Hadoop底层分布式框架的支持,有Hadoop作为系统底层。其还利用了Storm技术实现基于内存的实时流处理过程,同时集群的搭建还离不开Zookeeper服务。Zookeeper类似Tomcat是一个针对大型分布式平台的可靠协调平台,具有封装好且不易出错的特点,进为用户提供简单易用的接口、高效的运行平台以及稳定的生产环境。在国内对于大数据在就业推荐平台的研究中[17],刘顺文搭建了基于Hadoop的整体大数据处理框架,并从离线数据和在线实时数据两个维度分别对用户职位模型进行架构,并以此为推荐模块,进行就业推荐。邓广彪等以Hadoop的大数据处理集群为框架,使用学生历史信息和就业信息并结合学生本人的个人情况,建立就业推荐模型。另外,学者在研究如何运用大数据技术处理就业推荐上都十分注重Hadoop数据处理集群的易构性。总之,国内对于Hadoop技术在就业推荐平台的运用上还处于初级阶段,目前呈现研究成果少,研究层次浅,研究较新的态势。spark立足于内存计算,包含流处理和图计算等多种计算范式[18]。虽然spark与Hadoop有相似之处,但spark还是有别于Hadoop的新的集群计算框架。首先,Spark采用内存集群计算的方式来优化集群计算中特定类型数据的工作负载,以缩短数据访问时间。其次,spark引入弹性分布式数据集(RDD)的抽象,以防数据丢失,确保缓存数据中RDD的持久性.Yarn提供了分布式集群资源管理和调度的框架。同时Spark的组件sparkR为R软件提供访问spark的包,摆脱了R单机运行的命运,使得R的任务可以作为spark集群上的job,极大的扩展了R的数据处理能力以及其本身的兼容性。国内对于spark在推荐上的研究还停留在基于spark的推荐方案的和推荐算法上[19],车晋强等用spark技术探讨了分层过滤推荐算法。郑风飞等则将矩阵分解算法的研究融入到spark技术中。而不同于基于运用情境的研究,其中一部分学者则主要集中在有关系统时效性的研究上。就spark的执行效率运用协同过滤算法进行改进[20]。各个学者对spark技术的研究各有千秋,且具有深刻见解。然而,就spark技术结合就业推荐方面的研究则是少之又少。但技术上研究的已较为成熟,由此对有关现实生活中的实际运用已经起到了事半功倍的效果。2.4项目可行性(projectfeasibility)本章系统的介绍了大数据就业推荐平台国内外的研究现状,并对国内外就业推荐平台以及大数据就业推荐平台研究发展现状混合趋势进行了分析[21]。分析并验证了基于大数据技术实现大学生就业推荐平台研究的可行性,并从具有大数据特色的推荐算法的角度进行了综合性的阐述以及概括,论证了推荐算法在就业推荐系统上的可能性及可操作性。结合现阶段有关推荐系统的研究以及先进技术,研究基于大数据的就业推荐平台是比较成熟的,这也是本研究的研究基础所在,也使得大学生就业推荐系统的设计与实现变为可能,并具有社分钟要的现实意义。3系统总体分析与设计3Overallanalysisanddesignofthesystem3.1系统设计思路(systemdesignidea)系统整体实现思路为从第三方网站获取相应就业信息,将获取到的信息以一定方式存储到本地或服务器上,推荐系统读取数据并将其进行不同的处理方式以得到用户想要的数据资源,经过处理的数据资源会通过后端服务并将数据以可视化的形式展示给用户,用户便可以获取到符合自身偏好与兴趣的相关信息。整体流程如图3.1所示:爬虫爬虫离线推荐爱你离线推荐爱你网站爬取数据展示后端处理数据加载数据展示后端处理数据加载提取数据特殊处理 请求分析 实时推荐实时推荐图3.1数据处理流程3.2系统整体分析(overallsystemanalysis)集群框架:本系统放弃了经常使用的Hadoop,而改为使用Spark作为技术支撑。Spark是一种与Hadoop类似的开源集群计算环境,但是两者之间仍然存在许多不同之处:与Hadoop相比Spark在负载方面的饮用几表现更为优秀。并且Spark启用了内存作为分布数据集,除了能够提供交互式查询外,还对迭代工作负载进行了优化。和Hadoop相比,Spark具有更快的运行速度和计算速度。而且Spark提供了大量的库,包括SparkCore、SparkSQL、SparkStreaming等等类库。使得开发者可以在同一个引用程序中无缝使用这些库,也为本系统的开发提供了很多便捷条件。大学生就业推荐系统关键模块为数据处理部分。海量的就业信息汇聚在一起,如何有效的,高速的将所需信息筛选出来,这便是系统所要重点处理的技术要点。项目后台使用SpringBoot搭建。SpringBoot的优点快速开发,特别适合构建微服务系统,另外给我们封装了各种经常使用的套件,比如mybatis、hibernate、redis、mongodb等;并且其支持运行内嵌容器,如tomcat、Jetty;还具有强大的开发包并且支持热启动等等。页面展示使用thymeleaf框架。thymeleaf的实现机制相较于其他模板引擎更加的优雅。由于各种绑定与控制采用属性的方式,可以使得模板不破坏html原有的语法结构,因此使用thymeleaf框架技术定义出来的模板是可以被正常渲染的。这样在改模板和测试就会非常方便。数据处理模块使用Scala作为开发语言,Scala底层是由java语言实现的,因此在使用方面不会存在困难。另一方面由于大数据本身是计算数据的,而Scala既有面向对象的特性,又有计算数据的功能。而重要的一点是spark框架是使用Scala语言编写的,数据处理使用Scala语言再合适不过了。3.3离线推荐模块分析(offlinerecommendationmoduleanalysis)推荐系统搭建之初便会存储一定的就业信息,系统可以根据公司职位的往年好评度来将就业信息在离线条件下推荐给用户,这便是系统的离线推荐服务。离线推荐服务,顾名思义是在离线条件下进行运行的模块,无需记录用户的使用记录或者偏好,而是综合利用用户所有的历史数据,通过特定的离线统计算法和离线推荐算法对存储数据进行统计与筛选,并且将筛选的数据通过计算的存储到没存数据库中,且数据结果短时间内不会发生太大变化,离线推荐服务主要计算一些可以预先进行统计和计算的指标,为实时计算和前端业务相应提供数据支撑。离线推荐服务主要分为统计推荐、基于隐语义模型的协同过滤推荐以及基于内容的相似推荐。离线统计服务:业务采用SparkCore+SparkSQL技术实现,完成对相关数据的统计任务。离线推荐服务:业务采用SparkCore+SparkMllib技术实现,结合ALS算法对存储的数据进行操作用来实现推荐功能。基于隐语义模型的协同过滤推荐项目采用ALS作为协同过滤算法[22],根据MongoDB中的用户评分表计算离线的用户职位推荐列表以及职位相似度矩阵。通过ALS训练出来的Model来计算所有当前用户职位的推荐列表,主要思路下:1、userId和jobId做笛卡尔积,产生(userId,jobId)的元组2、通过模型预测(userId,jobId)对应的评分。3、将预测结果通过预测分值进行排序。4、返回分值最大的K个职位,作为当前用户的推荐列表。5、最后生成的数据结构如下:将数据保存到MongoDB的UserRecs表中职位相似度矩阵通过ALS计算职位相似度矩阵,该矩阵用于查询当前职位的相似职位并为用户提供实时推荐系统服务。离线计算的ALS算法,算法最终会为用户、职位分别生成最终的特征矩阵,分别是表示用户特征矩阵的U(mxk)矩阵,每个用户由k个特征描述;相对应职位,每个物品也由k作为特征描述,并计算每个对象的特征矩阵。V(nxk)表示物品特征矩阵,每一行是一个k维向量,虽然我们并不知道每一个维度的特征意义是什么,但是k个维度的数学向量表示了该行对应职位的特征。所以,每个职位用V(nxk)每一行的向量表示其特征,于是任意两个职位p:特征向量为,职位q:特征向量为之间的相似度sim(p,q)可以使用和的余弦值来表示:数据集中任意两个职位间相似度都可以由公式计算得到,职位与职位之间的相似度在一段时间内基本是固定值。最后将生成的数据存储到MongoDB的JobRecs表,方便数据持久化。3.4实时推荐模块分析(realtimerecommendationmoduleanalysis)实时与离线最大的不同在于使用的数据产生的时间不同,且运算方式也不同,而其应用在推荐系统上最大的不同则是实时推荐的结果反映了最近一段用户的兴趣偏好,而离线推荐结果则不同,它会分析用户一直以来的使用记录并分析计算结果。在实时推荐中由于时间性能上要满足实时或者准实时的要求,所以算法的计算量不能太大,避免复杂、过多的计算造成用户体验的下降。因此,推荐精度的准确度不很很高。实时推荐系统更关心推荐结果的动态变化能力,只要更新推荐结果的理由合理即可,至于推荐的精度要求则可以适当放宽。具体功能如下:日志采集服务:通过利用Flume-ng对业务平台中用户对于职位的一次评分行为进行采集,实时发送到Kafka集群。消息缓冲服务:项目采用Kafka作为流式数据的缓存组件,接受来自Flume的数据采集请求。并将数据输送到系统的实时推荐部分。实时推荐服务:项目采用SparkStreaming作为实时推荐系统的技术支持,通过接收Kafka中缓存的数据,再经过推荐算法特定的计算处理方式,并将计算结果更新到MongoDB数据库并与之前的结果进行合并。并且对于实时推荐算法,主要有两点需求:(1)用户本次评分、或最近几个评分记录后,系统可以明确地更新推荐结果并展示给用户;(2)计算量不大,满足响应时间上的实时或者准实时要求;因此实时推荐经分析后算法过程如下:实时推荐算法输入一个数据类型为<userId,jobId,rate,timestamp>的对象,而核心内容包括:获取userId最近K次评分、获取与特定职位最相似K个职位、计算候选职位的推荐优先级、更新对userId的实时推荐结果。3.5数据库分析(databaseanalysis)就业信息数据集的获取可以通过分布式爬虫的方式进行获取,得到相应数据后,通过一定的分析数据,在确认数据模型后通过一定的筛选方式将数据分类分别地加载到MongoDB数据库中。数据模型如下:Job【职位数据表】字段名字段类型字段描述字段备注jobIdInt职位的IDnameString职位的名称categoriesString职位所属类别每一项用“|”分割netUrlString职位招聘网站tagsString职位的标签每一项用“|”分割Rating【用户评分表】字段名字段类型字段描述字段备注userIdInt用户的IDjobIdInt职位的IDscoreDouble职位的分值timestampLong评分的时间Tag【职位标签表】字段名字段类型字段描述字段备注userIdInt用户的IDjobIdInt职位的IDtagString职位的标签timestampLong评分的时间User【用户表】字段名字段类型字段描述字段备注userIdInt用户的IDusernameString用户名passwordString用户密码timestampLong用户创建的时间RateMoreJobsRecently【最近职位评分个数统计表】字段名字段类型字段描述字段备注jobIdInt职位的IDcountInt职位的评分数yearmonthString评分的时段yyyymmRateMoreJobs【职位评分个数统计表】字段名字段类型字段描述字段备注jobIdInt职位的IDcountInt职位的评分数AverageJobsScore【职位平均评分表】字段名字段类型字段描述字段备注jobIdInt职位的IDAvgDouble职位的平均评分JobRecs【职位相似性矩阵】字段名字段类型字段描述字段备注jobIdInt职位的IDRecsArray[(jobId:Int,score:Double)]该职位最相似的职位集合UserRecs【用户职位推荐矩阵】字段名字段类型字段描述字段备注userIdInt用户的IDRecsArray[(jobId:Int,score:Double)]推荐给该用户的职位集合StreamRecs【用户实时职位推荐矩阵】字段名字段类型字段描述字段备注userIdInt用户的IDrecsArray[(jobId:Int,score:Double)]实时推荐给该用户的职位集合业务数据库:项目采用非关系型数据库MongoDB作为主要的业务数据库,负责平台业务逻辑数据的存储。由于数据量较大且价值不高加之MongoDB数据库的存取速度快。缓存数据库:项目采用Redis作为缓存数据库,由于系统涉及排行榜这种短时间内部会有太大变动的数据要求,使用Redis可以大大加快数据的读写速度,是性能最快的Key-value数据库。其主要为实时推荐系统部分数据高速获取的技术支撑。3.6相关问题与算法(relatedproblemsandalgorithms)冷启动处理问题整个推荐系统更多的是依赖于用于的偏好信息进行职位的推荐,那么就会存在一个问题,对于新注册的用户是没有任何偏好信息记录的,那这个时候推荐就会出现问题,导致没有任何推荐的项目出现。处理这个问题便是当用户首次登陆时,为用户提供一个交互式的窗口来获取用户对于分类信息的偏好,让用户勾选预设的兴趣标签。获取到用户的偏好之后,系统就可以直接给出相应类型职位的推荐。解决了新用户的推荐结果展示问题,也称为冷启动问题。4系统详细设计与实现4Detaileddesignandimplementationofthesystem4.1系统环境(systemenvironment)系统主要开发工具为IDEA,VScode作为辅助工具。以Java作为只要开发语言,使用Scala完成数据处理模块。具体其他工具环境如下所示:MongoDB作为主要业务数据库,存储大量相关业务数据,如职位信息、用户信息、以及生成的推荐列表等。Redis作为缓存数据库,主要存储离线推荐排行榜等一些不会经常性变化的数据,使用Redis可以加快系统读取数据的速度,方便系统的及时响应。Spark搭建集群环境。Spark是专为大规模数据处理而设计的快速通用计算引擎,更为主要的是Spark和Scala能够紧密集成,其中的Scala可以像操作本地集合对象一样轻松地操作分布式数据集,十分方便系统的开发。Flume和kafka作为日志收集工具,kafka作为分布式消息的中间过程,其具有一定的存储功能;为flume执行的整个过程的细节都可以通过用户自行调整。与flume相比kafka更合适做日志缓存功能,flume则更适合做日志存储功能,因为其数据采集功能效率及质量比kafka更优。。系统业务部分的代码编写采用SpringBoot框架,方便使用支持其他技术而在前端页面部分拟采用Thymeleaf作为前端框架来完成前端页面编写的工作。4.2数据库设计与实现(databasedesignandImplementation)从第3部分的数据库分析我们得到一定的数据格式,并且为原始数据定义几个样例类,通过SparkContext的textFile方法从文件中读取数据,并转换成DataFrame,再利用SparkSQL提供的write方法进行数据的分布式插入。数据文件可以使用基于分布式爬虫在特定的一段时间后在Spark集群上运行,爬取最新的就业信息。相关数据资源获取后,再次执行数据加载模块以达到数据更新的效果。数据加载模块的代码执行会根据数据的更新进行对数据库的增加或删除。这样便起到了用户获取的信息不回滞后太多,保证了系统的及时性与实用性。4.3登录功能设计与实现(designandimplementationofloginfunction)有关账号的造作功能主要分为注册和登录两个部分。系统启动完成会自动跳转到主页上,而此时用户名以及登录信息为空,在点击其他功能按钮或链接跳转石则需要用户登录,需输入自己的用户名和密码进行账户登录。如果是系统的新用户,还未拥有账号密码时,便需要用户点击注册跳转到注册页面进行账号注册。账户信息主要存储在user数据库中,注册账户时系统会进行查询,如果数据库中存在相同的账号则用户无法注册该账户,反之可以进行注册。登录账户时通过对数据库进行查询,如果可以根据账户密码查询到相对应的信息,那么用户即可登录,反之提示账户密码错误,请重新登录。登录成功后。用户名会显示在网站左上角,方便用户观察登录状态,还有注销按钮可以退出账户,保护用户信息。用户登录成功后,页面的左上角会显示用户名提醒用户现在为登录状态,其带有个人中心的按钮,用户可以点击跳转进入页面填写自己的兴趣偏好,年龄性别等基础信息,方便系统做数据采集的工作。用户使用完成后,退出本系统时需要注销账户,以免造成信息的泄露和丢失。4.4离线推荐服务设计与实现(designandimplementationofofflinerecommendation)执行离线统计服务将从MongoDB中读取相关数据,根据特定的执行算法完成对职位平均评分统计、最近职位评分个数统计、职位评分个数统计三种对象进行运行计算实现预期推荐结果,并将计算结果再存入MongoDB中以便之后使用;离线推荐服务从MongoDB中加载数据,通过ALS算法分别将用户推荐结果矩阵、职位相似度矩阵写回到MongoDB中。具体操作如下:新建recommender的子项目OfflineRecommender,引入spark、scala、mongo和jblas的依赖经过前期的构建样例类、声明配置、创建SparkSession等步骤,便可以加载数据并开始计算模型。数据集中任意两个职位间相似度都可以由公式计算得到,职位与职位之间的相似度在一段时间内基本是固定值。最后将生成的数据存到MongoDB的JobRecs表中,离线推荐服务基本完成。在上述模型训练的过程中,我们直接给定了隐语义模型的rank,iterations,lambda三个参数。虽然定义了模型,但仍需考虑最优参数的选取工作及结果,因此需要对模型进行评估。可以通过计算均方根误差(RMSE)的方式得到最优参数,进而预测与实际之间可能存在的误差。RMSE=通过多次对不同参数值进行调整,将得到的RMSE顺序排列,得到最小的RMSE值是所对应的参数值就是模型的最优选择。4.5实时推荐服务设计与实现(designandimplementationofreal-timerecommendation)实时推荐服务的实现主要依靠获取用户的使用记录来实时更新数据以达到“实时”的效果。日志的获取离不开Flume框架,其将获取业务的运行日志以及日志的更新记录,并将其获取到的日志实时推传输到Kafka中。Kafka在系统中起到一个中间人的作用,其在收到这些日志信息之后,通过内置的Stream过滤获取到的日志信息,经过一定的处理后将结果发送到另外一个Kafka队列中;系统将监听这个Kafka队列,并且实时获取到经过处理的数据流,并将数据流与存储在Redis中的相关数据进行融合,并提交给实时推荐算法,完成对用户新的推荐结果计算;计算完成获取到结果之后,最终将新的计算结果和MongoDB中已经存在的推荐结果进行合并,得到最终的推荐结果。业务服务器在接收用户评分的时候,默认会将该评分情况以userId,jobId,rate,timestamp的格式插入到Redis中该用户对应的队列当中,在实时算法中,只需要通过Redis客户端获取相对应的队列内容即可。在离线推荐模块的建设中,已经完成了职位相似度矩阵的计算,因此每个职位的相似矩阵以及与之相似的若干个职位则很容易被获取到:从MongoDB中读取JobRecs数据,从jobId在simHash对应的子哈希表中获取相似度前K大的那些职位。输出是数据类型为Array[Int]的数组,表示与jobId最相似的职位集合,并命名为candidateJobs以作为候选职位集合。更新实时推荐结果当计算出候选职位的推荐优先级的数组updatedRecommends<jobId,E>后,这个数组将被发送到Web后台服务器,与后台服务器上userId的上次实时推荐结果recentRecommends<jobId,E>进行合并、替换并选出优先级E前K大的职位作为本次新的实时推荐。具体而言:a.合并:将updatedRecommends与recentRecommends并集合成为一个新的<jobId,E>数组;b.替换(去重):当updatedRecommends与recentRecommends有重复的商品jobId时,recentRecommends中jobId的推荐优先级由于是上次实时推荐的结果,于是将作废,被替换成代表了更新后的updatedRecommends的jobId的推荐优先级;c.选取TopK:在合并、替换后的<jobId,E>数组上,根据每个job的推荐优先级,选择出前K大的商品,作为本次实时推荐的最终结果。4.6其他数据展示设计(otherdatadisplaydesign)办公管理部分,此部分将数据库中记录的各项就业数据通过一定的数据分析和处理过程将结果通过表格、扇形图等图形化的方式将分析结果展现出来,具体结果有就业数据检测、就业数据统计、就业数据分析、就业数据预测。数据统计查询分析部分,主要展示签约情况、就业情况以及就业率等。可以直观地观察到就业趋势以及就业成功率的查看,方便用户掌握就业方向及规律。就业咨询服务,提供职位咨询以及就业指导两大功能。在用户浏览职位信息时,对一些只职位信息存在疑问的话可以通过此功能进行相关问题的咨询与解答。弥补了当前就业系统只提供职位,不提供就业指导,问题解答等问题的短板。离线管理,展示离校流程、离校手续、户籍迁出登记和信息查询统计等信息。大学生作为初次接触社会的群体,以往总是学校解决学生们的户籍、档案、学习等问题。而大学毕业生即将踏入社会,离校手续、户籍档案问题都需要自行解决。而本功能提供了离校流程以及手续的查询工作,还有户籍迁出迁入登记信息的展示,大大解决了学生们就业问题的后顾之忧。由于技术水平以及现实原因等因素,以上一部分模块功能只做了离线处理,并未有实际用途。5系统测试5Systemtest5.1系统测试目的(purposeofsystemtest)为保证本推荐系统的正常运行以及对可能出现问题的功能进行检测,系统测试是一个比不可少的环节以及关键,而系统测试的目的在于寻找系统开发时是否存在漏洞与缺陷,运行时是否可以正常工作,保证业务逻辑不会出错。最重要的则是验证系统是否满足用户需求。系统测试需要系统在真实的工作环境下运行工作,并与需求作比较,通过真实运行检验软件配置是否合格,系统与运行环境的配置能够相互兼容。在这个过程中发现软件是否存在与设计文档不相符或与之矛盾的地方。在实际运行环境下运行系统,是对计算机进行的测试,目的是为了发现系统可能存在的缺陷并针对发现的问题进行解决并提高产品质量。另外,系统测试的测试用例应根据需求分析说明书来设计,并在实际使用环境下来运行。系统测试一般使用黑盒测试技术,并由独立的测试人员完成。5.2系统测试及使用方法(systemtestandusemethod)系统测试的主要内容包括:(一)、功能测试根据用户需求,通过软件测试系统是否能够正常,满足用户的功能需求,软件系统功能的正确性是关系到该系统质量的重要因素,软件系统功能测试是必须进行的,必须认真完成,放在系统测试的第一位。(二)、性能测试性能测试是主要测试软件系统处理指令的速度情况,检验软件的性能。(三)、界面测试界面测试是测试系统在运行时是够具有良好的可操作性和友好的界面效果,界面测试的目的是测试系统能否最大程度的满足客户的使用要求,通过测试发现程序的不足,并加以改进。本系统主要进行功能测试,并准备使用黑盒测试方法。黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。十分适合本系统进行系统功能测试。5.3系统测试结果及分析(systemtestresultsandanalysis)系统首页:首页主要包含主要的功能按钮以及主要信息的展示,页面右上角为登录以及注册功能展示,通过点击相应链接即可跳转相应功能页面。系统拥有简单的模糊查找的功能,在站内搜索框中填写相应关键字,单击搜索即可得到对应信息。其他皆为信息展示,都可以动过点击的方式链接其他信息页面,以便获取其对应的详细信息。注册登录界面,可以填写用户名,密码以及再次输入密码来注册用户信息,还具有选择用户类型的选项,分为毕业生和公司两个角色。支持第三方绑定找回密码,并且页面具有直接跳转登录页面的功能。登录成功后显示用户名,即可点击对应链接跳转相对应信息的详细介绍页面。推荐列表展示,具体分为如下展示信息。校内招聘信息以及校外招聘为离线推荐模块,推荐招聘信息为实时推荐模块。系统功能测试基本通过,大学生推荐就业系统功能基本完善,有的模块还是不够精细,但是总体效果还是可以的。在测试过程中发现部分错误,但已及时更正,测试之后的就业推荐系统已经比较完善了。但是有部分的界面展示还不是很友好,期待以后的改进与提高。6总结与展望6SummaryandProspect6.1回顾与总结(reviewandsummary)互联网和信息传播途径的高速发展,人们获取信息的速度已经越来越快,随之而来的是对海量信息的提取过滤以得到人们想要得到的关键信息。而为了处理这些大规模的数据,大数据技术随之出现:云计算、Hadoop、Hbase、Mahout、Spark等技术应运而生,迅速在各大领域中得到应用。在便捷的数据服务方面,除了传统的搜索引擎以外,个性化推荐系统也收到各大学者以及开发爱好者的广泛关注,个性化推荐可以有针对性的进行信息推荐,可以大大减少信息的搜索时间,提高效率。在信息超载时代,云计算,Spark等技术和个性化推荐结合在一起成为最佳搭档。利用Spark提供的集群以及相关数据采集分析技术,以其高效的计算能力以及便捷的信息处理能力,来为个性化推荐系统保驾护航,对于解决实际问题具有重要的现实意义。应届毕业的大学生因为求职渠道相对匮乏、对个人的职业追求不太明确等原因,加之在就业难的大环境下,大量重复,繁杂的就业信息充斥在身边,导致找一份合适的符合个人实际情况的工作变得十分困难。本文针对这些实际问题,利用Spark集群以及相关技术组件,构建了一个大学生就业推荐系统。具体构建如下:1、利用分布式爬虫,爬取第三方就业网站的就业信息。2、以MongoDB作为核心数据库,辅以Redis作为缓存数据库搭建系统。3、利用Spark拥有的类库,结合基于内容的相似推荐以及物品的协同过滤推荐设计完成了离线推荐服务与实时推荐服务等模块的搭建。4、以SpringBoot和thymeleaf为技术框架搭建了业务系统部分具体成果如下:把个性推荐系统与Spark技术相结合,考虑到项目实用性问题,把基于内容的相似推荐进行了改进,使得算法不在基于用户的历史记录,从而克服了冷启动问题;有将基于内容的相似推荐与基于物品的协同过滤进行并行运行,使得项目的整体运行速度有所提升。最后通过实验和系统测试,本系统基本可以为用户提供一定的个性化推荐服务,是有十分重要的现实意义的,但是本系统仍会存在一些不足:1、本系统目前只是在本地所配置的虚拟环境中搭建运行,还有待于在大规模集群环境中进行检验。因为本系统一些数据初始值设定为默认值或是经验值,因此结论并不十分真实有效,还需要在实际应用中收集反馈信息以更正数据参数。2、本系统注重于数据的分析处理工作,忽略了一些数据来源问题。初始化数据来源于爬虫,并且对其爬取的结果并未做详细的处理而直接进行使用,这便会造成数据存在一些不相关的内容和冗余数据,对最后的展示效果有一定的影响。6.2展望(outlook)虽然本系统使用Spark完成了大学生就业推荐系统的基本搭建,但所实现的功能以及技术使用与前沿技术相比,仍有较大差距。希望在未来的学习过程中逐步完善目前发现的一些问题,并且通过更深层次的学习弥补系统实现中存在的一些尚未涉及到的理念,以及系统逻辑的欠缺。推荐系统一方面是大数据技术的使用,另一方面则是算法的实现方法。不同的算法实现方式不同,最终完成计算的时间就会天差地别。因此在今后的学习中,不仅要学习先进的科学技术,同样要提升自己的算法分析能力,加强对数据计算的学习研究,努力提升自己的专业竞争力,争取将来设计出对社会发展具有影响力的项目系统。参考文献参考文献[1]高风丽,孙连山.个性化推荐系统概述[J].技术与市场,2015,22(2):78-79.[2]李文海,许舒人.基于Hadoop的电子商务推荐系统的设计与实现[J].计算机工程与设计,2014,35(1):130-136.[3]李翠萍,蓝梦薇,邹友本等.大数据与推荐系统[J].大数据,2015(3).[4]朱阳勇,孙婧.推荐系统研究进展[J].计算机科学与探索,2015(5):513-525.[5]王强.基于协同过滤的个性化推荐算法研究及系统实现[D].西南交通大学,2017.[6]尚立.基于协同过滤的改进课程推荐算法[J].科技传播,2020,12(5):132-134.[7]BinGuo,XingXie,LinaYao,YongLi,CeciliaMascolo,XiaHu.Specialissueonrecommendersystem[J].SpringerSingapore,2019,1(4).[8]陈垲冰.基于协同过滤的个性化推荐算法研究及应用[D].五邑大学,2019.[9]周千元.基于Spark的个性化推荐系统的研究[D].中南林业科技大学,2019.[10]P.Cordero,M.Enciso,D.López,A.Mora.Aconversationalrecommendersystemfordiagnosisusingfuzzyrules[J].ElsevierLtd,2020,154.[11]陈洁敏,汤庸,李建国等.个性化推荐算法研究[J].华东师范大学学报:自然科学版,2014(5):8-15.[12]单京晶.基于内容的个性化推荐系统研究[D].东北师范大学,2015.[13]SoroushOjagh,MohammadRezaMalek,SaraSaeedi,SteveLiang.Alocation-basedorientation-awarerecommendersystemusingIoTsmartdevicesandSocialNetworks[J].ElsevierB.V.,2020,108.[14]孟晓龙.基于机器学习的推荐技术研究[D].吉林大学,2016.[15]ChuanWan,LibiaoZhang.Large-ScaleDataRecommendedRegulateAlgorithmBasedonDistributedIntelligentSystemModelunderCloudEnvironment[J].SpringerUS,2017,22(4).[16]单京晶.基于内容的个性化推荐系统研究[D].东北师范大学,2015.[17]刘勇.大数据背景下基于网络结构的推荐系统的研究[D].北京交通大学,2015.[18]李宇翔,李帅,宋艳琼,张福泉,周湘贞.基于Spark平台的K均值聚类算法的人力资源推荐[J].济南大学学报(自然科学版),2020(5):1-6.[19]刘辉,郭梦梦,潘伟强.个性化推荐系统综述[J].常州大学学报,2017,29(03):51-59.[20]蔡衡.推荐系统中的协同过滤算法研究[D].吉林大学,2015.[21]FacebookInc.;PatentIssuedforSystemsAndMethodsForRecommendingContentItems(USPTO10,592,807)[J].InternetBusinessNewsweekly,2020.[22]王娜娜.基于时间权重和用户兴趣变化的协同过滤算法[J].皖西学院学报,2020,36(2):40-45.附录翻译部分英文原文Introduction”Recruitingishard.It’sjustfindingtheneedleinthehaystack”saidSteveJobswhilesummarizingoneofthemajorchallengesoforganizationsinthe21stcentury.However,notonlyorganizationshavetofindtheneedleinthehaystack,alsojobseekersthemselvesarelookingfortheircallingwhichfitsbesttheirpersonalvalues,attitudes,skills,andcapabilities[1].Jobseekersscreenplen
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乌海职业技术学院《政治经济学》2025-2026学年期末试卷
- 上海城建职业学院《档案学》2025-2026学年期末试卷
- 电气工程师电气系统设计考试题目及答案
- C12-NBD-phytoceramide-t18-0-12-0-C12-NBD-phytosphingosine-t18-0-12-0-生命科学试剂-MCE
- 稀土挤压工操作知识评优考核试卷含答案
- 水煤浆制备工安全意识强化模拟考核试卷含答案
- 流体装卸操作工岗前常识考核试卷含答案
- 活体水产品购销员岗前纪律考核试卷含答案
- 减粘裂化装置操作工风险识别评优考核试卷含答案
- 半导体分立器件和集成电路键合工安全实操强化考核试卷含答案
- 阿克苏热力管理办法
- 西科大雷达对抗原理讲义
- 西工大航空发动机燃烧学讲义
- 数智企业经营沙盘模拟实训教程-财务规则
- 上肢CT检查技术
- 学堂在线 雨课堂 学堂云 自我认知与情绪管理 章节测试答案
- 湖南专升本2024数学试卷
- 透析患者肌肉痉挛的护理
- 货架安装安全管理制度
- DeepSeek+AI大模型与数字化运维平台建设方案
- 2025年江西省上饶市婺源县英语七年级第二学期期中教学质量检测试题含答案
评论
0/150
提交评论