基于内容的电子图书推荐系统B10040101毕设论文.docx
《基于内容的电子图书推荐系统B10040101毕设论文.docx》由会员分享,可在线阅读,更多相关《基于内容的电子图书推荐系统B10040101毕设论文.docx(52页珍藏版)》请在冰点文库上搜索。
基于内容的电子图书推荐系统B10040101毕设论文
南京邮电大学
毕业设计(论文)
题目
基于内容的电子图书推荐系统
专业
计算机科学与技术
学生姓名
王欣源
班级学号
B10040101
指导教师
许棣华
指导单位
计算机学院、软件学院
日期:
2014年03月10日至2014年06月10日
毕业设计(论文)原创性声明
本人郑重声明:
所提交的毕业设计(论文),是本人在导师指导下,独立进行研究工作所取得的成果。
除文中已注明引用的内容外,本毕业设计(论文)不包含任何其他个人或集体已经发表或撰写过的作品成果。
对本研究做出过重要贡献的个人和集体,均已在文中以明确方式标明并表示了谢意。
论文作者签名:
日期:
年月日
摘要
随着信息技术和互联网的发展,人们逐渐从信息匮乏的时代步入了信息过载的时代。
面对信息过载,推荐系统应运而生。
本文是实现基于内容的电子图书推荐系统,帮助人们快速找到自己需要的图书。
本文首先阐述了推荐系统产生的背景,并分析比较了几种推荐系统算法,重点阐述了基于内容的推荐算法的优缺点。
然后对本系统的功能进行了模块划分,分为管理员实现的功能模块、用户实现功能模块和系统向用户推荐图书模块。
推荐图书模块采用基于内容的推荐算法,它使用关键词代表图书的内容特征向量,根据用户对图书的操作行为计算出用户的配置文件,并通过采用Jaccard算法计算出与用户配置文件相似性较大的图书推荐给用户。
最后通过采用Myeclipse8.5开发平台和MySql数据库,编码实现了本系统。
关键词:
基于内容;信息过载;推荐系统;电子商务;电子图书推荐
ABSTRACT
WiththedevelopmentofinformationtechnologyandtheInternet,peoplegraduallyfallfromalackofinformationeraintotheeraofinformationoverload.Facingtheproblemofinformationoverload,recommendersystemcameintobeing.Werealizedacontents-basedelectronicbookrecommendersystem,helpingpeoplequicklyfindthebookthattheyneed.
Firstly,thebackgroundoftherecommendersystemisdescribedinthispaper.Meanwhileweanalysisseveralrecommendationalgorithmsandfocusontheadvantagesandthedisadvantagesofthecontent-basedrecommendationalgorithminthispaper.Thenaccordingtothefunctions,thissystemisdividedintothreeparts,suchastheuser’sfunctionmodule,theadministrator’sfunctionmoduleandtherecommendationmodule.Content-basedrecommendationalgorithmisadoptedintherecommendationmodule,whichusesthekeywordstorepresentthefeaturevectorofthebookscontent,andformtheuser’sprofilesbasedontheusersoperatebehavioronbooks.Thesimilaritybetweenthebooksandtheuser’sprofileiscalculatedbyJaccardalgorithm.Afterthat,themostsimilarbooksarerecommendertotheuser.Finally,thissystemisimplementedontheplatformofMyeclipse8.5.
Keywords:
content-based;informationoverload;recommendersystem;
electronicbusiness;e-bookrecommendation
第一章绪论
1.1课题产生的背景及意义
一.课题产生的背景
近年来,随着信息技术和网络的快速发展与崛起,互联网已逐渐成为人们搜集和提供信息的常用渠道,并逐步渗透到各个领域包括传统的流通领域。
这一变化促成了电子商务的形成,越来越多的商家在网上建立在线店铺,向消费者展示自己的产品信息,消费者也逐渐习惯于网上查询自己需要产品的信息。
这种全新的生活理念标志着人类进入了一个崭新的时代。
然而问题随之产生,信息过载的时代不同于以往,对于信息消费者言而,在众多信息中找到自己需要的信息是一件非常困难的事情;对于信息生产者而言,让自己生产的信息脱颖而出,受到广大用户的关注,也是一件非常困难的事情。
面对产品信息的“海洋”,显而易见,消费者快速并且有效的挑选出自己所需要所感兴趣的产品是十分困难的,此时推荐系统应运而生。
电子商务推荐系统通过识别消费者的消费偏好,模拟导购人员向客户提供建议,帮助客户完成了购买,从而使消费者尽量避免信息过多所带来的麻烦,同时也为自己产品营销带来了利润,更重要的是为自己的电子商务系统保留住了一定的客户源。
二.课题的目的及意义
推荐系统的任务就是在用户和信息之间建立一个桥梁,一方面帮助了消费者发现对自己有价值是自己感兴趣和需要的信息,另一方面让信息能够展现在对它感兴趣的用户面前,从而实现信息消费者和信息生产者的双赢。
其实质就是在海量数据挖掘基础上建立的一种高级商务智能平台,以帮助电子商务网站为其用户提供智能的、个性化的决策支持和信息服务,从而避免用户在海量数据前无所适从。
1.2推荐系统研究现状
从上世纪90年代中期提出推荐系统的概念,直到现在,蓬勃兴起的网上交易、电子商务等,伴随着信息技术的进步,为推荐系统提供了良好的契机和发展的平台,推荐系统得到了飞速的发展。
急需并且巨大的应用需求,为推荐系统带来了广泛的关注。
不仅很多国内外学者都在研究推荐系统,ACM也屡次把推荐系统作为研讨主题,甚至众多国内外期刊也纷纷将推荐系统作为专题报道。
一.国外推荐系统研究现状
在用户模型方面,常用的用户建模技术有向量空间模型、用户评价矩阵,以及机器学习技术。
国外的研究提出了使用智能代理技术来分析顾客的需求,建立用户模型,并据此提供推荐服务。
也有人提出了一个利用神经网络和遗传K-means算法来获取用户偏好的方法。
通常系统中应用的推荐算法最多的是协同过滤的技术,针对协同过滤的改进提出了使用分解技术减少特征向量的维数,来提高最近邻居的搜索速度,并且对用户最近邻居项采用赋值权重的方法来优化算法,提高推荐质量。
由于传统的协同过滤技术仅仅根据用户显式评分产生推荐结果,很多研究者提出通过web挖掘技术获取用户隐式评分,因此,各种数据挖掘技术也开始应用到推荐系统中,以提高推荐系统的精度。
学者们也关注了推荐系统的可移植性和信任的问题。
基于对等网络环境,通过在客户端对用户信息进行控制,使得用户即使在离线时也能进行推荐。
另外推荐系统的实时性,算法的可伸缩性,用户的信任等等融合了信息获取,数据挖掘,人机交互,自然语言处理,心理学,社会行为研究等相关领域都是最近研究的热点。
下面给出一些研究型推荐系统实例:
(1)GroupLens:
用于推荐新闻信息组的自动协同过滤推荐系统。
该系统通过自动搜索与用户评分信息最邻近的用户,然后根据最接近的评分信息产生最终的推荐结果,支持用户数量大的情况。
(2)MovieLens:
用于推荐电影的研究型自动协同过滤推荐系统。
与GroupLens不同,MovieLens是一个基于web的推荐,系统通过浏览器进行用户评分数据的收集与推荐结果显示。
(3)FAB:
用于推荐web页面的基于内容的过滤和协同过滤混合的推荐系统。
其特点是综合了基于内容过滤的推荐和过滤推荐的优点,同时支持两种类型的推荐服务。
(4)Ringo:
用于提供音乐推荐服务的研究型协同过滤推荐系统。
Ringo系统可以向用户推荐他们喜欢的音乐,预测用户不喜欢的音乐,也可以预测用户对特定音乐的评分。
表1.1一些采用推荐技术的网站
系统
推荐内容类型
网址
MovieF
电影
Movielens
电影
http:
//movielens.umn.edu/
R
电影
http:
//
A
图书
Phoaks
网站
Yenta
寻友
http:
//foner.www.media.mit.edu/
Lauch
音乐
CDN
CD唱片
Grouplens
Usenet新闻
http:
//www.grouplens.org/
InternetWatcher
网页
Jester
笑话幽默
http:
//shadow.ieor.berkeley.edu/humor
除了研究型推荐系统之外,推荐在电子商务领域也运用的如火如荼。
推荐的应用领域包括推荐电子图书、电影、CD、新闻、旅游等。
表1.1列出了一些应用了推荐技术的网站以及他们推荐的主要内容。
二.国内推荐系统研究现状
目前国内的研究多集中在推荐系统的理论和技术方面,并取得了丰硕的成果。
针对协同过滤中评价矩阵的稀疏性,提出了一种优化算法和一种基于项目评分预测的协同过滤推荐算法,并且在计算目标用户的最近邻居时采用一种新相似性计算方法。
针对算法的可扩充性,又提出了基于项目聚类的协同过滤推荐算法,这些都显著地提高推荐系统的推荐质量。
以上各类推荐技术都有各自的优点和缺点,因此许多研究者提出结合多种过滤技术,以克服各自的缺点。
例如基于内容和合作模式的信息推荐机制,基于语义相似性的资源协同过滤技术。
同时也对稀疏问题和冷启动问题做了研究,将推荐系统的应用领域扩展到了数字图书馆。
在应用方面,国内在个性化推荐方面做的比较好的网站有淘宝网,当当网,京东,易迅,豆瓣,土豆,优酷,人人等。
三.基于内容的推荐系统的研究进展
历史上,最初的基于内容的推荐(content-basedrecommendation)是协同过滤技术的延续与发展,它不需要依据用户对项目的评价意见,而是依据用户已经选择的产品信息,进而进行相应的推荐。
随着机器学习技术的发展,目前基于内容的推荐系统可以对用户建立配置文件和对产品建立特征向量,通过分析已经购买(或收藏)过的内容,建立或更新用户的配置文件。
系统可以比较用户配置文件与产品特征向量之间的相似度,并直接向用户推荐与其配置文件具有相似性最大的产品。
基于内容的推荐算法的根本在于信息的获取与信息的过滤,而在文本信息在这两方面研究的较为成熟,现有很多基于内容的推荐系统都是通过分析产品的文本信息进行推荐。
然而现在的产品不仅仅只有文本信息,当推荐系统需要推荐电影音乐图片等涉及到自动提取多媒体数据的内容特征时,基于内容的推荐系统不可避免的会有技术上的困难。
并且各种领域应用推荐不仅仅是想对户已有的兴趣进行推荐,还希望能够挖掘到用户潜在的兴趣,推广更多的信息。
基于如上一些原因,现在基本不存在单纯的只是基于内容的推荐算法了,它可能混合了协同过滤或者其他的一些算法,将对用户的推荐做到尽可能的完美。
1.3推荐系统研究内容及论文组织结构
一.推荐系统研究内容
推荐系统依据用户的兴趣爱好或需求(即记录用户的历史行为)来推荐可能符合用户兴趣或需求的产品,这个过程也被称为个性化推荐。
由于推荐系统可以帮助商户完成个性化营销,进而达到提升销售量,创造最大的利润的目的,很多电子商务企业开始重视并积极推广推荐系统在电子商务系统中的应用。
国内外很多学者也进行了相关的研究工作,推荐系统的研究主要包括以下几个方面:
1.用户信息获取
推荐系统早期只需要简单的获得用户的信息,但随着推荐系统发展和完善,推荐系统已经不单单可以获得用户的信息,还可以实现同用户进行交互。
为达到这一目的,就需要考虑到用户多方面的兴趣和用户兴趣转变的情况,并且将数据挖掘应用到用户信息获取中,还可以挖掘用户的隐性需求和爱好。
2.推荐算法的研究
要想个性化推荐易于接受并且获得用户的认可,关键要设计出精确、高效的个性化推荐算法。
目前的推荐算法有多种,有基于内容的推荐,基于协同过滤的推荐,基于混合的推荐和基于物品的推荐等算法。
每个推荐算法有各自的优缺点,为了摒弃各自推荐的弊端,达到推荐结果的高精度和高覆盖率的目的,可以将各种推荐方法混合使用。
不仅如此,信息获取、人工智能以及模糊推荐等相关领域的引入也扩宽了推荐算法的思路。
3.推荐系统的评价问题
为达到推荐系统为广大用户所易于接受的目的,必须给出产品被推荐的理由,同时对推荐系统作出客观综合的评价。
因此,推荐的准确性和可靠性是两个很重要的方面。
对推荐结果准确性的判断和把推荐结果展示给用户以及如何获取用户对推荐结果的反馈评价都是值得深入研究的热点。
二.论文的组织结构
本文的结构安排如下:
本章分析了推荐系统的产生原因,研究的内容,历史发展进程,国内外的研究现状以及基于内容的推荐系统的研究进展。
第二章详细介绍基于内容的推荐系统的理论基础及相关的算法,实现这个系统会用到工具的介绍。
第三章会简要说明系统概要,系统的需求分析和数据库的设计。
第四章会介绍系统的详细设计。
第五章是一个总结,包括了本系统的测试结果和优缺点,以及展望等。
第二章相关理论技术及工具
2.1推荐系统算法及比较
推荐系统发展至今,已经提出了很多很好的算法。
当今时代所用的推荐算法主要有:
基于内容推荐、协同过滤推荐、基于关联规则推荐、基于效用推荐、基于知识推荐和组合推荐。
下面分别进行介绍。
1.基于内容推荐
基于内容的推荐(Content-basedRecommendation)是信息过滤技术的继承和发展,它不需要依据用户对项目的评价而是根据项目内容作出推荐,更多地需要用机器学习的方法从项目内容的特征向量中得到用户的兴趣爱好。
在基于内容的推荐系统中,项目是通过特征向量来表示的,系统根据用户选择的项目的特征向量,学习用户兴趣的配置文件,计算出用户配置文件与待预测项目的相匹配程度。
2.协同过滤推荐
协同过滤推荐(CollaborativeFilteringRecommendation)技术是推荐系统中应用最早和最为成功的技术之一。
它通常采用最近邻技术,利用用户的评价矩阵信息计算用户之间的距离,然后利用该用户的最近邻居用户对商品评价的加权评价值来预测目标用户对特定商品的喜好程度,系统从而根据这一喜好程度来对目标用户进行推荐。
基于协同过滤的推荐系统可以说是从用户的角度来进行相应的推荐,而且是自动的,即用户获得的推荐是系统从购买模式或浏览行为等隐式获得的,不需要用户努力地找到适合自己兴趣的推荐信息,如填写一些调查表格等。
协同过滤最大优点是对推荐对象没有特殊的要求,能处理非结构化的复杂对象,如音乐、电影、图片等。
3.基于关联规则的推荐
基于关联规则的推荐(AssociationRule-basedRecommendation)是以关联规则为基础,把已购商品作为规则头,规则体为推荐对象。
关联规则挖掘可以发现不同商品在销售过程中的相关性,在零售业中已经得到了成功的应用。
关联规则就是在一个交易数据库中统计购买了商品X的交易中有多大比例的交易同时购买了商品Y,其直观的意义就是用户在购买某些商品的时候去购买另外一些商品的倾向性。
比如购买牛奶的同时很多人会同时购买面包,还有很著名的购买纸尿片的人会购买啤酒。
4.基于效用的推荐
基于效用的推荐(Utility-basedRecommendation)是建立在对用户使用项目的效用情况上计算的,其核心问题是如何为用户创建效用函数。
因此,用户爱好模型很大程度上是由系统所采用的效用函数决定的。
基于效用推荐的好处是它能把非产品的属性,如提供商的可靠性和产品的可得性等考虑到效用计算中。
5.基于知识的推荐
基于知识的推荐(Knowledge-basedRecommendation)在某种程度是可以看成是一种推理技术,它不是建立在用户需要和偏好基础上推荐的。
基于知识的方法因它们所用的功能知识不同而有明显区别。
效用知识是一种关于一个项目如何满足某一特定用户的知识,因此能解释需要和推荐的关系。
所以用户资料可以是任何能支持推理的知识结构,它可以是用户已经规范化的查询,也可以是一个详细的用户需要的表示。
6.组合推荐
各种推荐方法都有优缺点,在实际中,组合推荐(HybridRecommendation)经常被采用。
组合推荐一个最重要原则就是通过组合后要能避免或弥补各自推荐技术的弱点。
研究和应用最多的是内容推荐和协同过滤推荐的组合。
最简单的做法就是分别用基于内容的方法和协同过滤推荐方法去产生一个推荐预测结果,然后用某方法组合其结果。
各种推荐算法都有各自的优缺点,接下来会介绍各种推荐算法的比较。
由于协同过滤的推荐算法和基于内容的推荐算法是比较基础和主流的推荐算,主要比较这两种算法的好坏。
协同过滤推荐系统在实际系统中得到了广泛的应用,因为有以下的优点:
1.具有推荐新信息的能力,可以发现用户潜在的但自己尚未觉察的兴趣偏好。
2.能够推荐艺术品、音乐、电影等难以进行内容分析的产品。
虽然协同过滤推荐系统应用广泛,但是也面临着很多问题。
比如,不能对新用户进行有效的推荐(冷启动问题),打分矩阵存在稀疏问题等。
同基于协同过滤的推荐系统相比,基于内容的推荐系统的优点如下:
1.可以处理新产品问题(冷启动)。
由于新用户没有选择信息,新产品没有被选信息,因此协同过滤推荐系统无法处理这类问题。
但是基于内容的推荐系统可以根据用户和产品的配置文件进行相应的推荐。
2.实际生活中用户对产品的打分信息非常少,协同过滤系统就会由于打分稀疏性的问题,受到很大的限制。
基于内容的推荐系统可以不受打分稀疏性问题的约束。
3.能推荐当前非流行的产品,能够发现隐藏的“暗信息”,使一些比较冷门的信息能够推荐出来。
4.通过列出推荐项目的内容特征,可以解释为什么推荐这些产品。
但是基于内容的推荐系统也存在很明显的缺陷。
基于内容的推荐系统不可避免地受到信息获取技术的约束,例如自动提取多媒体数据(图形、视频流、声音流等)的内容特征具有技术上的困难,这方面的相关应用受到了很大限制。
并且难以挖掘用户的潜在兴趣,只能发现和用户已有兴趣类似的资源。
本推荐系统对电子图书的推荐采用的是基于内容的算法,正是考虑到了图书的内容信息是由文本信息来表示,由于基于内容的算法比较容易分析文本内容,并且容易向用户解释产生推荐的原因。
表2.1还列出了一些主要推荐算法优缺点的对比。
表2.1主要推荐算法对比
推荐方法
优点
缺点
基于内容推荐
推荐写过直观,容易解释;
不需要领域知识;
复杂属性不好处理;新用户问题;
难以挖掘新兴趣;
协同过滤推荐
发现新兴趣;不需要领域知识;
推荐个性化、自动化程度高;
能处理复杂的非结构化对象;
稀疏问题;新用户问题;
可扩展性问题;
基于规则推荐
能发现新兴趣;
不需要领域知识;
规则抽取难,耗时;
产品名统一性问题;
个性化程度低;
基于效用推荐
无冷启动和稀疏问题;
对用户偏好变化敏感;
能考虑非产品特征;
用户必须输入效用函数;
推荐是静态的,灵活性差;
属性重叠问题;
基于知识推荐
能把用户需求映射到产品上;
能考虑非产品属性;
知识难获得;
推荐是静态的;
2.2基于内容的推荐算法
根据基于内容推荐原理,生成推荐的过程主要分为三步:
1.提取特征信息。
为项目提取出来一些特征向量来表示该项目。
2.用户配置文件生成。
由用户过去喜欢项目的特征,来推算用户的喜好特征。
3.产生推荐。
计算出用户配置文件和项目特征向量间的相似度,推荐相似度大的项目。
一.特征向量的提取
在获取信息时,最常用的方法就是TF—IDF方法。
该方法是找到出现次数最多的词。
但如果一个词在所有的文章中出现次数的都比较多,那么这个词很大程度上不能反映这篇文章的内容;而某个词比较少见,但是在这篇文章中出现多次,那么它就很大程度上可以反映这篇文章的内容,即我们所需要的关键词。
我们需要加一个调整系数,较常见词赋予较小的权重,较少见的词赋予较大的权重。
这个权重叫做“逆文档频率”(IDF)。
知道了“词频”(TF)和“逆文档频率”(IDF)以后,将这两个值相乘,就得到了一个词的TF-IDF值。
某个词对文章的重要性越高,它的TF-IDF值就越大。
实现如下:
设有N个文本文件,关键词ki在ni个文件中出现,设fij为关键词ki在文件dj中出现的次数,那么ki在dj中的词频TFij定义为:
(2.1)
其中分母的最大值可以通过计算dj中所有关键词kz的频率得到。
在许多文件中同时出现的关键词对于表示文件的特性,区分文件的关联性是没有贡献的.因此TFij与这个关键词在文件中出现数的逆(IDFi)一起使用,IDFi的定义为:
(2.2)
那么,一个文件dj可以表示为向量dj=(w1j,w2j,⋯,wkj),其中
(2.3)
二.用户配置文件的建立
在学习用户喜好的配置文件时,也有多种方法。
1.最近邻方法(k-NearestNeighbor,简称kNN)。
对于一个新的item,最近邻方法首先找用户u已经评判过并与此新item最相似的k个item,然后依据用户u对这k个item的喜好程度来判断其对此新item的喜好程度。
2.Rocchio算法。
Rocchio算法是信息检索中处理相关反馈(RelevanceFeedback)的一个著名算法。
该算法获得用户u的profile
的方法为:
(2.4)
其中
表示itemj的属性,
与
分别表示已知的用户u喜欢与不喜欢的item集合;而
与
为正负反馈的权重,它们的值由系统给定。
在获得
后,对于某个
给定的itemj,我们可以使用
与
的相似度来代表用户u对j的喜好程度。
Rocchio算法的一个好处是
可以根据用户的反馈实时更新,其更新代价很小。
3.决策树算法(DecisionTree,简称DT)。
当item的属性较少而且是结构化属性的时候,决策树可以产生简单直观、容易让人理解的结果。
而且可以把决策树的决策过程展示给用户u,告诉他为什么这些item会被推荐。
4.线性分类算法(Linear