毕业设计类全套文件的下载平台

游戏推荐系统的设计与实现

  • 上传者:小徐
  • 文件大小:12633 (KB)
  • 文档格式:.docx

文档分类: 计算机与科学

< / 71 >

还剩... 页未读,继续阅读

免费阅读已结束,点击付费阅读剩下 ...

阅读已结束,您可以下载文档离线阅读

关于本文

  • 本文标题:游戏推荐系统的设计与实现.docx
  • 链接地址:https://wk.sbvv.cn/view/21543.html
  • 内容摘要:摘要互联网的出现和普及给用户带来了大量的信息,满足了用户在信息时代对信息的需求,但随着网络的迅速发展,相对应的网上信息量出现了大幅增长,导致用户在面对大量信息时无法从中筛选与分辨信息的可用与否,最终导致其对信息的利用效率反而出现了下降情况。为了应对并解决这一问题,推荐系统应运而生。其能根据用户的信息需求、兴趣等,通过个性化计算将用户感兴趣的信息、产品等推荐给用户。游戏推荐系统正是其中之一。本文研究并实现了一种结合web技术与深度学习中相似度计算的游戏推荐系统设计方案:基于对排名模型的多方向分析与设计,本方案可以在保证系统界面的美观与简洁的同时实现推荐形式的多元化以及用户使用的简便化;同时可以实现游戏推荐,游戏评分,游戏搜索等多元可靠的系统功能;并且可以根据用户个体以及总体对所需信息的获取与反馈情况实时对推荐内容进行更新与修正。关键词:深度学习,网页设计,相似度算法,评分推荐,关联推荐DesignandImplementationofGameRecommendeystemAbstractTheemergenceandpopularizationoftheInteethasbroughtalotofinformationtouseandmettheneedsofuseforinformationintheinformationage。HoweverwiththerapiddevelopmentofthenetworkthecorrespondingamountofinformationontheInteethasincreasedsignificantlywhichmakesuseunabletoscreenanddistinguishtheavailabilityofinformationinthefaceofalargeamountofinformationandultimatelyleadstoadeclineintheutilizationefficiencyofinformatioituation。Inordertosolvethisproblemrecommendatioystemcameintobeing。Accordingtotheinformationneedsandinterestsofuseitcanrecommendtheinformationandproductsthatuseareinterestedintousethroughpeonalizedcalculation。Gamerecommendatioystemisoneofthem。Thispapetudiesandimplementsagamerecommendeystemdesigchemecombiningwebtechnologyandsimilaritycalculationindeepleaing:BasedonthemultidirectionalanalysisanddesignofrankingmodelthisschemecaneurethebeautyandsimplicityofthesysteminterfacerealizethediveificationofrecommenderformsandthesimplificationofuseruseandrealizegamerecommendationgamescoringandgamesearchatthesametimeItcanupdateandmodifytherecommendedcontentinrealtimeaccordingtotheuseindividualandoverallinformationacquisitionandfeedback。KeyWords:deepleaingwebdesignsimilarityalgorithmscorerecommendationrelatedrecommendation目录摘要IAbstractIII1引言1插图或附表清单VII2游戏推荐系统开发技术22。1推荐技术22。1。1推荐问题的表述方式22。1。2推荐系统的设计目标22。1。3推荐系统的基本模型32。1。4相似度算法42。2深度学习52。2。1深度学习概念及模型62。2。2Teorflow框架62。3Web设计与数据挖掘72。3。1Django框架简述82。3。2网络爬虫82。4数据库92。4。1Mysql93游戏推荐系统需求分析103。1可行性分析103。2功能需求分析103。3非功能需求分析114游戏推荐系统设计134。1总体设计134。2功能模块详细设计134。3数据库设计154。3。1数据库创建154。3。2数据库信息收集204。4前端设计234。4。1登录注册界面设计234。4。2系统主界面设计244。4。3个人空间界面设计274。4。4游戏搜索界面设计274。4。5游戏信息界面设计285游戏推荐系统功能实现305。1用户管理模块实现305。1。1注册模块实现305。1。2登录模块实现305。1。3个人空间模块实现325。2游戏推荐模块实现345。2。1关联推荐模块实现345。2。2排行推荐模块实现365。2。3偏好推荐模块实现405。3游戏搜索模块实现415。4游戏评论模块实现426游戏推荐系统性能测试446。1测试用例446。1。1注册功能测试用例446。1。2登录功能测试用例456。1。3搜索功能测试用例466。1。4评论功能测试用例476。1。5排行推荐功能测试用例496。1。6偏好推荐功能测试用例516。1。7关联推荐功能测试用例526。1。8个人空间功能测试用例546。2测试结果分析557结论56参考文献57在学取得成果61致谢63插图或附表清单图21评分系统评分示例4图22通用深度学习框架6图23YadaKatsutoshi对数据科学的定义7图24服务科学流程图7图41游戏推荐系统功能模块图13图42数据库表15图43对象定义代码18图44网络爬虫代码20图45部分sql文件23图46登录界面23图47注册界面24图48系统主界面25图49个人空间界面27图410游戏搜索界面28图410游戏信息界面28图51注册功能代码30图52登录功能代码31图53个人空间功能代码33图54关联推荐功能代码35图55排行推荐功能代码36图56偏好推荐功能代码41图57搜索功能代码42图58评论功能代码43表61注册功能测试用例表44表62登录功能测试用例表45表63搜索功能测试用例表46表64评论功能测试用例表47表65排行推荐功能测试用例表49表66偏好推荐功能测试用例表51表67关联推荐功能测试用例表52表68个人空间功能测试用例表54引言1946年2月14日,世界上第一台电子计算机在美国宾夕法尼亚大学问世。1952年,世界上第一款电子井字棋游戏诞生在电子管计算机上。70年代电子游戏作便已经作为一种商业娱乐媒体进入人们的生活,成为当时日本、美国和欧洲一个重要娱乐工业的基础。时至今日,电子游戏的发展虽然起起落落,经历了无数次的低谷与险阻,但在东方的索尼,任天堂,西方的微软,动视等多家企业的努力下,游戏产业百花齐放。尤其是在国内的游戏市场,游戏已渐渐不再是家长大人们所认定的电子毒品,而是成为了一种时尚的娱乐手段,逐渐走入千家万户。随着互联网的出现和普及,电子商务的诞生与发展,游戏业界进入了数字化,电子化的时代。每年都有几乎数不清的新游戏进入市场,用户难以从中快速筛选适合其需求的游戏信息,造成了信息获取效率的停滞甚至降低。由于传统游戏信息的获取形式主要集中于图书杂志,网页搜索以及广告推广等形式上,无法实现对用户目标信息的筛选获取,因此依靠推荐系统可以根据用户的信息需求、兴趣等,将用户感兴趣的信息、产品等推荐给用户的性能特点,游戏推荐系统应运而生。如今的游戏推荐系统大致分为游戏平台自有的以及第三方的评测推荐系统。前者由于平台间竞争以及用户保密等诸多问题大多对用户在该平台上的行为进行预测来完成推荐系统的设计,后者则因为可能存在的游戏开发商进行的幕后交易导致系统推荐不可靠。因此,有必要出现一款能满足用户个人需要以及大众潮流的安全可靠,推荐公平的推荐系统。本文研究并实现了一种基于python语言,结合深度学习与web设计的游戏推荐系统设计方案。出于对推荐系统推荐多样性的考量,本系统设计上也着眼于不同形式的推荐形式,包含有协同过滤推荐以及基于内容推荐,以达到提高用户对于系统的满意度的目的。游戏推荐系统开发技术2。1推荐技术推荐系统是一种预测用户对商品和信息的喜好的模型,可以帮助用户发现自己感兴趣的信息和商品。构建推荐系统时,既要考虑效率,也要考虑有效性;既要考虑用户心理,也要考虑用户的行为;既要考虑商品和信息的外在属性,又要考虑商品和信息的相互关联[2]。由于其综合性和复杂性,推荐系统可以看成是数据库、自然语言处理、机器学习、信息检索、算法甚至心理学等领域的综合与交叉[2]。2。1。1推荐问题的表述方式在讨论推荐系统的相关设计前首先要解决的便是推荐问题的表述问题,目前推荐问题总体有存在有两种表述模型[2]:预测模型:通常的预测模型是在采用定量预测法进行预测时建立的预测数学模型。它可以在一定程度上揭示事物间的内在规律性,预测时将其作为计算预测值的直接依据。任何一种具体的预测方法都是以其所要解决的特定问题所对应的数学模型为特征[2]。对于推荐系统而言是对用户物品组合的评分值进行预测[2]。最重要的工作是建立预测数学模型。假设用户对物品喜好的数据是可用可靠的,则对于m个用户与n个物品,做mxn的不完全矩阵。使用矩阵中的已知值进行训练,之后对矩阵中的缺失值,即推荐结果进行预测[2]。排名模型:顾名思义,所谓排名模型即为通过排名方式建立的推荐模型[2]。具体而言,当向用户做推荐时若不需要预测得到用户对某个特定的产品评分时,即向用户推荐前k(topk)种产品或为某个产品确认k(topk)种对其感兴趣的用户,这即为推荐问题的排名模型。2。1。2推荐系统的设计目标推荐系统其主要目的是增加产品销量。通过把仔细筛选后的物品推荐给用户,推荐系统便能使相关物品得到用户的关注,从而达到提高销量的目的[2]78。一般推荐系统操作上和技术上的目标包含:相关性:推荐系统最重要的操作目标是推荐与用户相关的产品[2]。其目的是为了最大程度对接用户的兴趣点,使用户可能在该产品上产生消费兴趣。但相关性仅仅只是推荐系统的主要操作目标,其并不充分,因此在推荐系统设计上依旧有着多种重要程度稍逊于相关性的设计目标。新颖性:即推荐系统所推荐的内容是用户所未曾见过的,则其设计上便是有用的[2]。考虑到对用户而言,多次重复的推荐同一内容会导致其在心理上产生乏味与无趣,因此设计上必须对尽量降低推荐内容的重复率,提高推荐的多样性。意外性:即推荐的产品出乎用户的意料[2]。其与新颖性类似但并不相同,本质上是推荐用户意象之外的产品。其相对应的推荐算法目的在于向用户推荐与其兴趣并无相关性的产品。着眼于意外性的推荐系统往往能够在保证其推荐多样性的同时激发用户的兴趣。提高推荐的多样性:由于推荐系统在设计上通常采用列出一个关于推荐产品的topk推荐列表[2],当所有的推荐物品都非常相似时,用户一个都不喜欢的风险也随之而来[2]。当推荐列表包含有多种不同类型的产品时,其能大量提高用户从中得到其需求产品的可能性,以避免用户在使用推荐系统服务时不会出现厌烦的情况。2。1。3推荐系统的基本模型推荐方法是整个推荐系统中最核心、最关键的部分,在很大程度上决定了推荐系统性能的优劣。目前常用可行的推荐方法对应基本模型有:基于内容的推荐:基于内容的推荐(ContentbasedRecommendation)是建立在产品的描述性属性上做出推荐的[2]。其不需要依据用户对项目的评价意见,更多地通过机器学习的形式从关于产品的特征描述事例中得到用户的兴趣资料[2]。在基于内容的推荐系统中,产品或对象是通过相关的特征的属性来定义,系统基于用户评价对象的特征,学习用户的兴趣,考察用户资料与待预测部分的相匹配程度。用户的资料模型取决于所用学习方法,常用的有决策树、神经网络和基于向量的表示方法等[2]。基于内容的用户资料需要有用户的历史数据,用户资料模型可能随着用户的偏好改变而发生变化。协同过滤推荐:协同过滤推荐(CollaborativeFilteringRecommendation)一般采用最近邻技术,利用用户的历史喜好信息计算用户之间的距离,然后利用目标用户的最近邻居用户对商品评价的加权评价值来预测目标用户对特定商品的喜好程度,系统从而根据这一喜好程度来对目标用户进行推荐[2]。其设计思路基于:为一用户找到他真正感兴趣的内容的方法是首先找到与此用户有相似兴趣的其他用户,然后将他们感兴趣的内容推荐给此用户。其本质是基于其他用户对某一内容的评价来向目标用户进行推荐。基于协同过滤的推荐系统是从用户的角度来进行相应推荐的,而且是自动的,即用户获得的推荐是系统从购买模式或浏览行为等隐式获得的,不需要用户努力地找到适合自己兴趣的推荐信息[2]。其中一种较为常见的形式便是利用评分系统:推荐算法的设计受跟踪评分算法的影响[2]。评分是由用户对产品的喜爱程度决定,其值可连续可不连续。通常采用的是离散性质的评分数,这样的评分被称为区间评分法,例如5星评分机制。图21评分系统评分示例[2]基于关联规则推荐:基于关联规则的推荐(AssociationRulebasedRecommendation)是以关联规则为基础,把已购商品作为规则头,规则体为推荐对象。关联规则挖掘可以发现不同商品在销售过程中的相关性。设计规则就是在一个交易数据库中统计购买了商品集X的交易中有多大比例的交易同时购买了商品集Y,其直观的意义即用户在购买某些商品的时候有多大倾向去购买另外一些商品[2]。相比于其他模型,其存在着确定关联规则耗时长,难以解决同义性问题的缺陷。2。1。4相似度算法相似度度量即计算个体间的相似程度,相似度度量的值越小,说明个体间相似度越小,相似度的值越大说明个体差异越大。对于多个不同的文本或者短文本对话消息要来计算他们之间的相似度如何,一个好的做法就是将这些文本中词语,映射到向量空间,形成文本中文字和向量数据的映射关系,通过计算几个或者多个不同的向量的差异的大小,来计算文本的相似度。相似度算法大致上存在有以下几类:欧几里得度量(euclideanmetric)(也称欧氏距离)是一个通常采用的距离定义,指在m维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。欧几里得距离是数据上的直观体现,看似简单,但在处理一些受主观影响很大的评分数据时,效果则不太明显。欧几里得度量公式:Peaon相关系数是用协方差除以两个变量的标准差得到的,虽然协方差能反映两个随机变量的相关程度,但其数值上受量纲的影响很大,不能简单地从协方差的数值大小给出变量相关程度的判断。为了消除这种量纲的影响,于是就有了相关系数的概念。当两个变量的方差都不为零时,相关系数才有意义。若要使用Peaon相关系数算法进行相似度计算,要求两个变量独立,连续且存在有线性关系,二者均符合正态分布且其二元分布也符合正态分布。其适用于计算相似度的两变量存在较大差别的情况。Peaon相关系数公式:余弦相似度亦或者说余弦距离是用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小的度量。余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,这就叫余弦相似性[2]。相比欧氏距离,余弦距离更加注重两个向量在方向上的差异。余弦相似度公式:2。2深度学习深度学习来源于机器学习,机器学习是一门专门研究计算机怎样模拟或实现人类的学习行为,以实现获取新的知识与技能,持续不断改造知识结构以达到改善自身的性能的学科。最早的机器学习程序来源于1959年美国的塞缪尔。其设计了一个下棋程序,该程序具有学习能力,可以在不断的对弈中学习改善其下棋的技艺。仅仅7年,该程序就学习达到了击败职业棋手的地步。自此之后,机器学习的潜力表露无疑,引发了人们对机器潜力的探究,深度学习随之诞生。2。2。1深度学习概念及模型深度学习是机器学习与神经网络、人工智能、图像化建模、优化、模式识别与信号处理等技术融合后产生的一个领域[1]。在严谨的学术期刊中,这个新型学科的模型一直受严肃理智的学者所推崇[1]。毫无疑问,深度学习网络是神经网络革命性发展的里程碑。图22通用深度学习框架[1]输入数据传递给模型,经过多个非线性层进行过滤,最后一层包含分类器(决定改对象所属的种类)[1]。需要使用深度学习解决的问题有以下的特征:深度不足会导致出现问题,具有与人脑类似的深度结构,同时满足认知过程逐层进行,逐步抽象。这导致了用于实际问题的深度神经网络可能具有10层以上的隐藏层。这也导致了其拓扑结构的简易度的高度不稳定。网络中的层越多,它可以识别的特征就越多[1]。不幸的是,网络中的层越多,计算所需的时间就越长,并且训练起来就越困难。2。2。2Teorflow框架TeorFlow提供Python语言下提供有四个不同版本[1]:CPU版本(teorflow)、包含GPU加速的版本(teorflowgpu),以及它们的每日编译版本(tfnightly、tfnightlygpu)。安装Python版TeorFlow可以使用模块管理工具pippip3或anaconda在终端直接运行。TeorFlow的开发过程重点在于构建数据流图。数据流图使用节点和线的有向图描述数学计算:节点表示施加的数学操作,也可以表示数据输入的起点和输出的重点或读取写入持久变量的重点;线表示节点之间的输入输出关系,其可以输运“size可动态调整”的多维数组,即张量(Teor),一个张量中主要保存了三个属性:名字(name)、维度(shape)和类型(type)。一旦输入端的所有张量准备好,节点将被分配到各种计算设备完成异步并行地执行运算。2。3Web设计与数据挖掘Web设计,亦或者说网页设计是按照公司开发者或开发目标希望向访问者传播的信息(包括产品信息,服务项目,核心理念等),进行网站功能策划,然后进行的页面设计美化工作。根据开发语言的不同市面上存在着多种类的开发框架:如Java的SSM(Spring+SpringMVC+Mybatis),C的Raphte以及Python的Django和Flask。本文主要介绍并使用的是Django框架。随着互联网技术逐步发展与壮大,商家、政府以及其它组织为了将其当前服务接入电子商务这一领域,必须对其当前的服务模式进行全面的改进革新。为了实现这一目标,服务科学便成为了可靠正确的理论来源。服务科学研究如何使用科学的方法和原则进行管理服务的组织过程和资源,以达到提高服务的效果和效率的目标。图23YadaKatsutoshi对数据科学的定义[6]图24服务科学流程图[6]作为服务科学的一环,数据挖掘(DataMining),就是从大量数据中获取有效的、新颖的、潜在有用的、最终可理解的模式的非平凡过程。在本文所描述的设计中,其更偏向于从大量数据中获取有效的信息,且由于数据来源于网络,该数据挖掘的表现形式被称为网络爬虫。2。3。1Django框架简述Django是高水准的Python编程语言所驱动的开源模型,是同时具有视图,控制器风格的Web应用程序框架。通过该框架程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。其同时也兼容大量功能丰富高效的第三方插件。Django框架的核心组件有:用于创建模型的对象关系映射,为最终用户设计较好的管理界面,URL设计,对设计者友好的模板语言以及缓存系统。2。3。2网络爬虫网络爬虫是一个自动提取网页的程序。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列直到满足系统的一定条件后停止。作为改进型网络爬虫,聚焦爬虫则注重于对数据的针对性筛选。所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索。常见网页爬取策略有广度优先和最佳优先两种:广度优先搜索策略是指在抓取过程中,在完成当前层次的搜索后,才进行下一层次的搜索。当为覆盖尽可能多的网页时,一般使用广度优先搜索方法。广度优先搜索可与网页过滤技术结合使用,以达到聚焦爬虫的效果;也可以通过认为与初始URL在一定链接距离内的网页有更大的可能性存在与目标主题相关的内容,通过对其的爬取实现聚焦爬虫。最佳优先搜索按照一定的网页分析算法,预测候选URL与目标网页的相似度,或与主题的相关性,并选取评价最好的一个或几个URL进行抓取。它只访问经过网页分析算法预测为“有用”的网页。但由于其为一种局部最优算法,导致其爬取路线上将会有大量的与主题相关的网页被视为无用而遭到忽略。2。4数据库数据库(Database)简单来说是按照数据结构来组织,存储以及管理数据的建立在计算机存储设备上的仓库。用户可以对文件中的数据进行新增、截取、更新、删除等操作。严格来说则是长期储存在计算机内有组织且可共享的数据集合。2。4。1MySQLMySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言结构化查询语言(SQL)进行数据库管理。其代码开源,任。。。
  • 版权声明:知知范文网 本站所有内容的版权归相应内容作者或权利人所有,本站不对涉及的版权问题负法律责任。
  • 内容来源:本站所有内容均有网络公开等合法途径整理而来,该资料仅作为交流学习使用,并无任何商业目的,任何访问,浏览本站,购买或者未购买的人,就代表已阅读,理解本条声明
  • 免责声明:内容所标价格,是对本站搜集、整理资料以及本站运营必须费用支付的适当补偿,资料索取者尊重版权方的知识产权,谢谢!

关于我们 - 网站声明 - 网站地图 - 友情链接 - 网站客服客服 - 联系我们

copyright@长治毕知网络科技有限公司
ICP备案号:晋ICP备2022002585号