网站首页  词典首页

请输入您要查询的论文:

 

标题 基于协同过滤算法的IT书籍推荐系统设计与实现
范文 孙晓娟+千博+王圣涛



摘要:随着IT行业的飞速发展,IT从业人员也越来越多,如何在茫茫书海中选择适合自己的IT书籍是一个非常重要的问题。设计了一个IT书籍推荐系统,系统基于B/S模式,采用LAMP架构体系,将协同过滤算法加入网站系统中,以实现IT书籍的个性化推荐。实验结果表明,个性化书籍推荐系统能够通过用户行为挖掘用户兴趣,从而为用户推荐适合自己的IT书籍。关键词:协同过滤;IT书籍推荐;个性化推荐;LAMP架构 DOI 10.11907/rjdk.162819中图分类号:TP319 A 文章编号:16727800(2017)004007003
0引言随着信息技术和互联网的发展,人们逐渐从信息匮乏的时代进入到信息过載时代[1]。而个性化推荐系统是解决信息过载的一个有效途径,推荐系统通过分析用户的历史行为给用户的兴趣建立模型,从而主动推荐能够满足用户兴趣和需求的信息。 设计一个IT书籍个性化推荐系统,可方便IT从业人员的专业书籍遴选,减少不必要的重复工作。IT书籍推荐系统可以通过分析用户行为,发现用户兴趣,从而实现个性化的书籍推荐。1个性化推荐 基于邻域的推荐算法是业内使用最广泛的个性化推荐算法[2],主要依赖某个用户的相似用户或某物品的相似物品产生推荐。根据用户—物品评分矩阵,计算用户或物品的相似度,找到最相似的K个邻居,计算当前用户与未操作物品的相关度,以推荐列表形式推荐相关度最高的物品。该类算法主要包括基于用户的协同过滤和基于物品的协同过滤两种。在实际中,由于项目需求不同,个性化推荐模型也有一定差异,但几乎所有推荐模型都包括用户行为搜集模块、用户日志分析模块以及个性化推荐算法模块[34]。具体模型如图1所示。]1.1基于用户的协同过滤算法 基于用户的协同过滤算法的基本思想是:兴趣相似的用户可能会对相同物品感兴趣[56]。因此,当要给用户A个性化推荐物品时,可以先找到与其有相似兴趣的其他用户,然后把那些其他用户喜欢、而用户A没有听说过的物品推荐给A。该算法的推荐过程主要分为两步:
第一步:找到和目标用户兴趣度相似的用户集合。其中计算用户u和v的相似度方法主要有余弦相似度(公式1)、皮尔逊相关系数(公式2)等[78],ru,i为用户u对物品i的评分;u和v分别是用户u和用户v在各自所评物品集上的均值。第二步:得到用户之间的兴趣相似度后,找到该集合中用户喜欢,且目标用户没有听说过的物品推荐给目标用户[9]。使用公式(3)计算用户u对物品i的感兴趣程度[10],S(u,K)包含和用户u兴趣最接近的K个用户,N(i)是对物品i有过行为的用户集合。]1.2基于物品的协同过滤算法基于物品的协同过滤算法的基本思想是:通过分析用户的行为记录,计算物品之间的相似度,物品A和物品B具有很大相似度的原因是因为喜欢物品A的用户也大都喜欢物品B[11]。该算法的推荐过程也分为两步:第一步:计算物品之间的相似度。这里采用改进的余弦相似度[12]:第二步:得到物品之间的相似度后,根据公式(5)计算用户对物品的兴趣度[1314]。按兴趣度从高到低排序后,取其前N个值作为最终结果推荐给用户。〖AKr-〗i表示物品i的平均分,S(i,K)表示和物品i相似的K个物品集合,N(u)表示用户u评分过的物品。2IT书籍推荐系统设计]2.1系统总体架构 IT书籍推荐系统主要由前台展示页面、后台数据库系统和推荐引擎三大部分组成[15]。其中,前台展示页面是用户与系统进行交互的接口,用户可以看到并寻找自己感兴趣的书籍,同时系统也会自动化地给用户推荐一个书籍列表;后台数据库系统主要用来记录用户信息、书籍信息以及用户行为所产生的数据;推荐引擎是实现个性化推荐最重要的模块[1617],本系统针对新注册用户,利用热门推荐进行书籍推荐,当用户进行评分,产生行为数据后,采用协同过滤算法来实现个性化推荐[18]。图2为系统的总体架构。
2.2系统功能模块设计 对于整个IT书籍推荐系统而言,书籍和用户是两大主体。为实现给用户个性化推荐IT书籍,系统主要需要3大模块:用户模块、书籍模块、评分模块(产生推荐)。系统功能模块设计如图3所示。
用户管理模块主要实现对用户的管理,根据权限分为普通用户和系统管理员;书籍管理模块主要实现对书籍的管理,在后台实现书籍添加、修改信息、删除书籍,在前台实现书籍展示等功能;评分模块是联系用户与书籍、实现书籍个性化推荐的重要模块。]2.3数据库设计 根据系统功能需求,设计的IT书籍推荐系统主要涉及5张表:用户基本信息表、书籍信息表、评分信息表、用户相似度表和书籍相似度表。各个表之间的关系如图4所示。
用户基本信息表负责存储用户基本信息,包括用户userid、用户名、密码、邮箱、角色(管理员或普通用户)等;书籍信息表包括书籍编号、书籍名称、书籍作者、出版年份、出版社、封面缩略图、书籍内容、创建时间、更新时间、点击次数;评分信息表包括记录id、用户userid、书籍id、评分值、评分时间。用户相似度表和书籍相似度表是通过协同过滤算法计算得到的信息,是个性化推荐的直接来源。3系统实现 系统基于B/S架构,采用现今比较流行的LAMP开发环境。其中L指Linux系统;A指Apache,是一个被广泛使用的网站服务器软件;M指MySQL数据库软件;P指PHP程序开发语言。同时使用MVC开发模式,实现在浏览器上以网站的形式提供推荐服务。]3.1用户管理模块 用户管理模块是Web系统的必备功能。考虑到前后台分离的安全性问题,在设计用户数据表时,加入了角色字段来区分是普通用户还是系统管理员。其中,管理员拥有管理普通用户以及增加、删除、修改书目的权限。普通用户登陆后则可以获得推荐服务以及对书目进行评分。普通网站所具有的注册、登陆、密码修改、找回密码等功能本系统也都具备。]3.2书籍管理模块 出于安全性及减少噪声信息的考虑,该部分也是由管理员负责管理。书籍管理模块中书籍的增加、删除、更新是在后台实现的,前台功能是用来展示书籍列表,书籍信息的展示根据用户是否登录略有不同。数目的添加、删除、修改与通常网站类似,这里不再赘述。以下对于书籍信息展示功能进行说明,图5为书籍展示流程模块。
如果用户未登录,则提醒用户登录获取推荐服务;如果用户已经登录,则根据用户历史信息向其推荐书籍。推荐的书籍排在常规书单后面,选取的书籍是利用协同过滤推荐算法计算出的用户未评分但兴趣度最高的6本书。]3.3评分管理模块 用户评分动作发生在书籍详细信息的界面,只有当用户登录时才能查看自己对本书籍的评分状态,从而添加或更改评分,流程如图6所示。 如果用户未登录,则提示用户登陆参与评分,获取更优的推荐服务;如果用户已登录,则判断用户是否已对这本书籍进行了评分。如果没有评分,显示评分表单,用户可以对其进行评分。如果用户已经对本书籍进行了评分但是需要更改评分,点击页面上的修改按钮则可以重新进行评分操作。
4系统评估 系统设计实现后,为了验证推荐算法的应用效果,在实验室随机邀请若干同学进行注册,网站后台通过捕捉用户的显性和隐性行为特征进行个性化推荐。其中,显性行為是用户对书籍的主动评分,隐性行为是用户对某一书籍的点击次数等。系统根据捕捉到的信息,将其存入后台数据库,并通过推荐算法的处理,最终实现对用户的个性化书籍推荐。
以wangshengtao同学为例,系统通过分析其在网站上的行为特征,发现他对Java方向比较感兴趣,图7是系统为其推荐的书单。在后期的用户调查阶段,wangshengtao表示对推荐结果较为满意。
5结语 本文简单介绍了协同过滤算法,设计并实现了基于协同过滤算法的IT书籍推荐系统。系统基于B/S模式,采用LAMP架构,通过将推荐算法融入网站后台中,系统能够通过分析用户行为,从而实现为用户个性化地推荐IT书籍。实验结果表明,系统能够准确地为用户推荐书籍,具有一定实用性与稳定性。
参考文献:[1]CHARU C AGGARWAL.An introduction to recommender systems[M].Springer International Publishing,2016.
[2]J BOBADILLA, F ORTEGA, A HERNANDO, et al. Recommender systems survey[J]. KnowledgeBased System,2013,46(1):109132.
[3]项亮.推荐系统实践[M].北京:人民邮电出版社,2012.
[4]YUESHEN XU, JIANWEI YIN. Collaborative recommendation with user generated content[J].Engineering Applications of Artificial Intelligence, 2015.
[5]THOMAS QUIROZ,OSCAR M SALAZAR,DEMETRIO A OVALLE.Adaptable and adaptive humancomputer interface to recommend learning objects from repositories[C].Learning and Collaboration Technologies , 2016: 539549.
[6]YUESHEN XU,ZHIYUAN CHEN,JIANWEI YIN,et al.Learning to recommend with user generated content[C].International Conference on WebAge Information Management,2015:221232.
[7]王小亮. 基于协同过滤的个性化推荐算法的优化和应用[D]. 杭州:浙江工商大学, 2010.
[8]SUVASH SEDHAIN, SCOTT SANNER, DARIUS BRAZIUNAS, et al. Social collaborative filtering for coldstart recommendations[C]. Proceedings of the 8th ACM Conference on Recommender Systems, 2014:345348. [9]JASON C HUNG,JINGDE WENG,YUNGHUI CHEN.A recommendation system based on mining human portfolio for museum navigation[C].Evolving Systems,2016:145158.
[10]BIROL CILOGLUGIL, MUSTAFA MURAT INCEOGLU.A felder and silverman learning styles model based personalization approach to recommend learning objects[C].Computational Science and Its ApplicationsICCSA 2016:386397.
[11]LEI GUO,JUN MA,ZHUMIN CHEN,et al.Learning to recommend with social contextual information from implicit feedback[C].Soft Computing,2015:13511362. [12]王伟杰. 基于评分预测的协同推荐若干问题研究[D].上海:华东师范大学,2014.
[13]YEHUDA KOREN.Factorization meets the neighborhood:a multifaceted collaborative filtering model[C]. Proceeding of the 14th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining,2008:426434.
[14]J BOBADILLA, F ORTEGA, A HERNANDO, et al. Recommender systems survey[J]. KnowledgeBased System, 2013, 46(1):109132.
[15]王国霞, 刘贺平.个性化推荐系统综述[J].计算机工程与应用,2012,48(7):6676.
[16]VERSTRPEN K, GOETHALS B. Unifying nearest neighbors collaborative filtering[C]. ACM RecSys, 2014: 177184.[17]LIU X, ABERER K. Towards a dynamic topN recommendation framework[C]. ACM RecSys,2014: 217224.[18]BRESSE JS, HECKERMAN D, KADIE C. Empirical analysis of predictive algoithms for collaborative filtering[C]. Proc 14th Cof Uncertainty in Artificial Intelligence Madison,2008:4352.
(责任编辑:黄健)
随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/2/10 19:44:35