目 录
摘要 I
Abstract II
1.绪论 1
1.1 引言 1
1.2 研究现状 2
1.3 本文主要研究内容 2
1.4 本文主要框架 3
2. 推荐算法介绍 4
2.1协同过滤推荐算法 4
2.2基于内容的推荐算法 4
2.3基于关联规则的推荐算法 5
2.4基于聚类的推荐算法 5
2.5推荐算法研究方向 6
3.基于时间加权的协同推荐算法基础 7
3.1时间加权的协同推荐算法思想 7
3.2时间加权的协同推荐算法过程 9
4.基于经验时间的协同推荐算法基础 10
4.1算法的提出 10
4.2算法思想 10
4.2.1筛选项目集 11
4.2.2项目相似性 12
4.2.3最近邻居查询 12
4.2.4目标用户评测 12
4.3算法核心代码设计 13
5.实验结果分析 17
5.1实验数据用例 17
5.2推荐度量指标 18
5.3实验分析 18
6.结论 20
基于经验时间的协同推荐
摘要
信息推荐服务在当今社会中被越来越多的电子商务系统和数字图书馆系统所采用。协同推荐系统通过分析用户的兴趣,在用户群中找到与特定用户的相似用户,综合这些相似用户对某一信息的评价,形成对指定用户对此信息的喜好程度的预测。当前大多数协同过滤算法存在着精确性、数据稀疏和冷启动等主要问题,导致最终的推荐效果受到制约。
本文具体根据在线读书系统的应用特点,在传统协同推荐算法的基础上,为考虑读者经验对于推荐效果的影响,提高系统效率,提出用户经验时间,将用户的经验时间划分为两类:与目标用户经验时间相近为一类,经验时间较大的用户群为一类。综合考虑这两类经验时间对用户的推荐结果产生的影响,通过仿真实验测试,结果表明该方法能够提高系统效率。
关键字: 经验时间,协同推荐,系统效率
Experiential-time-based collaborative recommendation
Abstract
Nowadays, information recommendation in the society is being adopted by more and more electronic commerce system and the digital library system. By analyzing the interest in collaborative recommend system of users in their group with similar users, comprehensiving these similarities to a certain information,can it form evaluation information that depends on the degree of affection of predictions. Most of the current collaborative algorithms exist the problems of accuracy, the data sparse and cold starting and other major issues, leading to the final recommendation effects conditioned.
This thesis according to the characteristics application of on-line reading system, takes in the traditional collaborative recommendation algorithm which was based on experience to recommend for readers to account the effects, improves the system efficiency, and leads the user experience time. User experience time will be divided into two categories: target users experience with similar experience for a time, others for a bigger user groups. Considering these two kinds of users experience time of the impact of recommending results, by doing the simulation experiment results to indicate that the method can improve the efficiency of the system.
Keywords: experiential time, collaborative recommendation,efficiency of the system
基于经验时间的协同推荐
1.绪论
1.1引言
当今现实生活中,信息量增速迅猛。普通的网络用户在交错复杂的信息中常常会出现无从入手的问题。传统的人工处理数据不仅效率低,而且灵活性差,涵盖面窄。于是人们开始探索,将人工数据挖掘与计算机系统相结合。在处理网络商品推荐问题中,如何能够最大程度的满足用户的需求,带给用户最大可参考性,从而促进消费,满足供需。解决这些问题的关键在于将网络信息从被动接受用户的请求转化为主动为用户提供参考,从而实现电子商务系统对用户的主动信息服务。协同过滤推荐算法在电子商务推荐系统中是应用最成功的推荐技术之一[1-3]。推荐系统是为解决Internet上的信息过载问题而提出的一种智能代理系统,能从Internet的大量信息中向用户推荐出符合其兴趣偏好或需求的资源[4]。协同推荐算法能够有效的处理数据之间的相关信息,不仅可以对藏在海量数据后的关系进行挖掘, 还可以对用户专业特征、使用偏好的分析而预测用户的行为,同时蕴涵在大量数据中的潜在的关系和模式信息也为智能推荐系统的构建提供了可能。
受到现实生活中人们通常寻求朋友建议这一现象的启发,协同推荐系统向目标用户推荐具有相似兴趣和喜好的邻居过去所喜爱的项目。协同推荐算法的研究依赖于用户在评分体系架构中的评测分数,并以此预测出用户未评分项目的评分。协同推荐系统通过分析用户的兴趣,在用户群中找到与特定用户的相似用户,综合这些相似用户对某一信息的评价,形成对指定用户对此信息的喜好程度的预测。当前大多数协同过滤算法存在着精确性、数据稀疏和冷启动等主要问题,导致最终的推荐效果受到制约。
传统的协同推荐算法并没有考虑用户的兴趣随时间的推移而发生变化,导致推荐的信息可能是过时的或不是用户当前最感兴趣的信息,影响了算法的准确性。因此,本文在传统协同推荐算法和基于时间加权的协同过滤推荐算法[5]研究的基础上,提出了基于经验时间的协同推荐算法。笔者考虑将用户的经验时间划分为两类:与目标用户经验时间相近为一类,经验时间较大的用户群为一类。并利用实验数据集对传统算法和本文提出的改进算法的精确度进行了比较。
1.2研究现状
协同推荐系统通过预测用户对项目的喜好程度来为用户进行信息过滤,将知识发现技术加以应用,生成个性化推荐。协同推荐是一种常用的减少信息过载的技术,已经成为了个性化推荐系统的一种主要工具。推荐系统和个性化推荐技术研究已广泛应用于国内外,逐渐成为研究热点。如Amazon,CDNOW,eBay等众多国外知名电子商务网站已经将协同推荐系统集成到运营系统中。然而现有大多数协同过滤算法存在着几个主要问题:精确性,数据稀疏和冷启动问题[6]。冷启动问题包括新用户与新项目问题[6],研究系统内未被用户评价过的项目进行的评分预测或新用户本身尚未对任何产品产生兴趣的问题,在协同推荐质量方面起了很大的提高作用,也保证了算法的推荐准确性。
目前国内外主要对协同推荐问题中的算法效率、稀疏矩阵问题、冷启动问题进行研究。国内B2C网站虽然在个性化和自动化推荐方面存在差距[7],但随着中国电子商务的蓬勃发展,推荐系统的理论研究正逐步深入,国内网站的协同推荐解决方法较原先的分类浏览和基于内容检索等方法更加智能化。近年来国内外学者对协同推荐系统的研究尽管已取得了很大的发展,但个性化服务技术仍有很多值得研究和探讨的方向,未来国内外的研究将在隐私保护与安全问题、特殊项目推荐问题、解释协同过滤系统等方向发展。
1.3 本文主要研究内容
本文主要在前人研究的基础上,针对协同推荐中寻找最近邻居时,由于用户评分矩阵是稀疏矩阵,计算效率比较低,同时针对本系统图书在线浏览存在时间以及用户知识经验问题们提出一种基于经验时间的协同推荐算法。
该算法主要过程:在求候选近邻集时,考虑选取一部分经验丰富的用户,结合与该用户经验相似的一部分用户群,综合其二者形成用户集;将目标用户与候选近邻集中的用户逐一求其相似性并按照相似度从大至小进行排序,并取前若干项作为最近邻居集;通过最相似的用户群体的评分预测出目标用户对未评分项目的评分结果,预测值较大则予以推荐。该算法将其中排序的步骤放置线外时间进行,与前人的研究相比,缩短了系统计算时间,大大提高了系统开销,能够有效针对用户经验时间特性进行项目推荐。
1.4 本文主要框架
第一部分:绪论主要阐述了协同推荐研究的意义以及研究的现状。
第二部分:主要介绍当前较为常用的协同推荐算法思想,应用领域,以及未来的研究方向。
第三部分:介绍基于时间加权的协同推荐算法基础、具体过程以及它的不足之处,为笔者阐述改进后的算法奠定了基础。
第四部分:介绍本文提出的基于经验时间的协同推荐算法的思想、详细流程以及对第三章改进后的优越性。
第五部分:对基于时间加权的协同推荐算法和基于经验时间的协同推荐算法进行模拟仿真实验,并对仿真结果进行分析。
最后对文章进行总结并提出今后的研究方向。
2.推荐算法介绍
当前推荐方法主要有协同过滤推荐、基于内容的推荐、聚类技术、关联规则、基于图的Horting图技术、基于模型的推荐方法。
2.1协同过滤推荐算法
协同过滤推荐算法是在信息过滤和信息系统中正在逐渐成为一项很受市场欢迎的技术。协同过滤推荐算法通过用户对项目的评分以及附加的信息,对尚未评分的项目进行评分预测,将评分最高的项目或者项目组推荐给用户。用户的偏好获取是协同过滤推荐算法的前提。用户信息的获取主要是通过用户对给定信息的评价。评价包括显示评价和隐式评价两类。显示评价是基于用户有意识的表达对项目的认可程度,通常使用特定区间的整数值来表达用户的偏好程度,用户数据库中的信息随着用户的不断使用而随时更新;隐式评价不需要用户主动参与,协同推荐系统通过挖掘用户的浏览记录、购物记录,自动跟踪,来获取用户的偏好信息。
协同过滤的优点是能够过滤难以进行机器自动基于内容分析的信息,如电影、音乐;能够基于一些抽象的概念进行过滤,如信息质量、品位;推荐的新颖性。因此,这种技术在电子商务中得到了广泛的应用,如Amazon、豆瓣、当当等等都采用了协同过滤推荐技术来提高服务质量。
协同过滤推荐算法的缺点是用户对商品的评价比较稀疏,这样基于用户的评价所得到的用户间的相似性有可能不准确;并且随着用户和商品的增多,造成数据量增大,系统的性能会越来越低;还有一种情况就是如果从来没有用户对某一商品加以评价,则这个商品就不可能被推荐。因此,现在的电子商务推荐系统都综合采用了几种协同推荐技术相结合的方法来尽可能提高推荐效率和质量。
2.2基于内容的推荐算法
基于内容过滤的推荐算法主要采用人工智能、自然语言处理、概率统计和机器学习等技术进行过滤。该算法通过相关特征的属性来定义项目或对象,系统基于用户评价对象的特征,学习用户的兴趣,依据用户资料与想要预测项目的匹配程度进行推荐,努力向用户推荐与其以前喜欢的产品相似的产品。在这类方法中,历史信息用来反映项目之间的关系,如一个项目的购买经常导致另一个项目或一组项目的购买。因此该算法是利用用户与项目之间建立矩阵,分析每个项目的相似性,在此基础上计算被推荐的前N个项目。
基于内容的推荐算法的优点是简单并且有效,容易对推荐某个产品的原因作出解释,并且可以根据用户本身的兴趣爱好向其推荐其他用户不感兴趣的产品。缺点是特征提取的能力有限,过分细化,完全基于内容的推荐系统不能为用户发现新的且有可能用户会感兴趣的资源,只能发现和用户已有的兴趣相似的资源。这种方法比较容易受限制,在较为容易分析内容的商品推荐中比较适用,而对于一些较难提取出内容的商品,如唱片、电影、图像等就可能无法产生用户满意的推荐结果。与协同过滤推荐算法相比,推荐效率较低。
2.3基于关联规则的推荐算法
基于关联规则的推荐可以解释为发现有趣的关联或相关的频繁项集。著名的商品购物车分析就是采取关联规则,发现用户经常一起买的产品, 其直观的说法就是用户在购买某些商品的时候去购买另外一些商品的倾向估计。
关联规则挖掘过程主要包含两个阶段:第一阶段必须先从资料集合中找出所有的高频项目组,第二阶段再由这些高频项目组中产生关联规则。关联规则挖掘的相关算法可分为Apriori算法[12]即使用候选项集找频繁项集、基于划分的算法和FP-树频集算法。
就目前而言,关联规则已经被广泛应用在西方金融行业企业中。它可以预测银行客户需求,同时,一些知名的电子商务站点也从关联规则中受益。电子购物网站使用关联规则进行挖掘,然后对用户有意要一起购买的产品设置捆绑包;也有一些购物网站使用关联规则设置相应的交叉销售,即购买某种商品的顾客会看到相关的另外一种商品的广告。由于许多应用问题更加复杂,大量研究从不同的角度对关联规则做了扩展,将更多的因素集成到关联规则挖掘方法之中,以此丰富关联规则的应用领域,拓宽支持管理决策的范围。例如考虑属性之间的类别层次关系,时态关系,多表挖掘等。近年来围绕关联规则的研究主要集中于两个方面,即扩展经典关联规则能够解决问题的范围,改善经典关联规则挖掘算法效率和规则兴趣性。
2.4基于聚类的推荐算法
随着人类科学技术的发展,对分类的要求越来越高,以致有时仅凭经验和专业知识难以确切地进行分类,于是人们逐渐地把数学工具引用到了分类学中,形成了数值分类学,之后又将多元分析的技术引入到数值分类学形成了聚类分析。聚类分析内容非常丰富,系统聚类法、序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。聚类分析计算方法主要有如下几种:划分法,层次法,基于密度的方法,基于网格的方法,基于模型的方法。基于模型的推荐方法主要有贝叶斯方法[9], SVD方法,协同推荐pLSA模型[10]等。聚类广泛应用于在商业中,可以帮助市场分析人员从消费者数据库中区分出不同的消费群体来,并且概括出每一类消费者的消费模式或习惯。它作为数据挖掘中的一个模块,可以作为一个单独的工具以发现数据库中分布的一些深层的信息,并且概括出每一类的特点,或者把注意力放在某一个特定的类上以作进一步的分析;并且,聚类分析也可以作为数据挖掘算法中其他分析算法的一个预处理步骤。
2.5推荐算法研究方向
当前,电子商务推荐系统的研究内容和研究方向主要包括:推荐方法研究、实时性研究、推荐质量研究、多种数据多种方法的集成、数据挖掘在推荐系统中的应用、用户隐私保护研究等。其中,协同推荐算法是电子商务系统的核心部分,其他研究内容皆是以推荐算法研究作为出发点。本文主要研究基于经验时间的协同推荐算法与基于时间加权的协同推荐算法二者比较,突出基于经验时间的协同推荐算法的优越性,因此下面主要介绍与此相关的研究。
3.协同推荐算法
传统协同推荐推荐是基于用户相似性,是系统推荐算法的基础,但仅考虑用户不够的,文献[5]给出考虑时间因素的协同推荐算法,本节介绍经典的协同推荐算法,再进一步介绍基于时间加权的协同推荐算法基础作为文本算法的基础。
3.1
3.2经典的协同推荐算法
经典的协同推荐推荐过程分为三个阶段:输入数据表达;计算目标用户;最近邻居产生推荐项目集合。该算法分为三个阶段:
第一阶段:输人数据表达。
输入通常表示为的用户项评估矩阵表示,用户数,表示项数,表示第个用户对第个项日的评估数值。
第二阶段:最近邻居形成。
协同推荐最重要的步骤是目标用户邻居的形成。邻居是指与目标用户具有相同兴趣的用户。两个用户间的相似性用相似度来度量。邻居关系的计算算是为了对每一个用户找到一个邻居用户集合,,使得。用户相似性的度量这里采用Pearson相关相似性[11]为:
(公式3.1)
其中是目标用户对项目c的评分,是目标用户u的平均评分值。是用户i对项目c的评分,是用户i的平均评分值。邻居用户的确定根据预先设定的邻居数,选择最大的前个最近邻居用户。
第三阶段:预测推荐项目集合。
得到目标用户最近邻居集合后,设目标用户已评价项目集合为,则目标用户对任意项的预测评分可通过邻居用户对项目的评分得到,计算方法[14]:
其中表示目标用户与最近邻居用户的相似性度量,表示用户对项目的评分,和分别表示用户和用户对项目的平均评分。
通过上述方法预测用户对未评分项目的评分,然后取其中个排在前面且不属于的项作为推荐集。
3.3基于时间加权的协同推荐算法
3.3.1 算法思想
考虑如下问题,某个用户在过去时间段对某本书评分较高,而另一个用户在现在时间段对该书产生兴趣,对该书本也赋予较高的评分。按照相关相似性计算用户的最近邻居,这两个用户将是邻居用户。但是,利用不同用户在不同时间段内的评分值来判断它们是最近邻居显然是不合理的。一般来说,应该在同一时间段或相近时问段内比较目标用户与各个基本用户对项目评分之间的相似性,以此寻找最近邻居才是正确的。
时间加权的协同推荐算法在求的最近邻居集后,求目标用户对项目预测评分时候(即第三阶段),在公式3.2中,应用时间函数对预测评分值进行加权,用 代替 ,此处的t在不同时间函数中有不同约定,f(t)是一个时间单调函数,并且权重值始终保持在的范围内;也就是说,用户最近数据贡献度更大,过去数据反映用户以往的偏好,因此占较小的权重。
f(t)是一个时间函数最为常用有:
1)f(t)=e-t 此处t指tuj-tij的绝对值的量化值。(t是指目标用户评价时间tuj与评分用户tij的
。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。