(一)个性化推荐的相关技术
通过研究我们了解到,推荐系统的核心部分是推荐技术,离开了各种推荐技术的支持,个性化推荐是无法完成的。由于每种技术都有自己的优缺点,也都有一定的局限性,所以到底采用哪种推荐技术,需要根据应用领域和研究的对象而定。目前,电子商务网站主要使用的技术是信息检索、关联规则以及信息过滤;而以网页为研究对象和推荐对象的网站主要采用协同过滤推荐;而图书馆类的应用主要采用协同过滤、聚类和关联规则等技术。
1.信息检索和过滤技术
(1)检索技术
信息检索是指信息按一定的方式组织起来,并根据信息用户的需要找出有关的信息的过程和技术。根据该定义可以知道,检索分为两个过程。第一个过程就是将信息按照计算机可以理解的方式组织起来,我们称其为索引;第二个过程就是将相关信息找出来,我们称之为查询。通常意义上的信息检索就是信息检索过程的第二个过程,也就是我们常说的信息查询。
信息检索技术是我们获取知识的捷径、科学研究的向导,也是终身教育的基础。充分地利用检索技术,能够使我们迅速获取相关的基础数据,提高工作效率。
(2)过滤技术
信息过滤是指遵循用户的要求设置阈值,通过运用工具或实施算法从动态的信息流中选取用户需要的信息或剔除用户不需要的信息的方法和过程。过滤技术也是个性化推荐的基础,尤其是在大数据时代,网络上的冗余数据太多,通过过滤,可以将无关数据过滤掉,提高网络的运转效率。
2.聚类技术
什么是聚类?聚类就是将根据算法将任意的目标对象集合划分成由相似的对象组成的多个类的过程。随着在数据挖掘、个性化推荐、模式识别等领域的大量的应用,聚类技术正在变得越来越重要。而且随着近年来数据量不断激增,对数据进行聚类处理越来越有必要,应用范围也在不断扩大,除了上述的应用外,近年来还被用于统计科学、地理学和市场营销等。
由聚类所生成的类是一组相似数据对象组成的集合,而不同类中的数据则差别较大。聚类分析与普通的分类是不同的。区别是:分类其实是从特定的数据中挖掘模式,做出判断的过程,是事先定义好类别,而且类别数不变。比如Gmail邮箱里有垃圾邮件分类器,一开始的时候可能什么都不过滤,在日常使用过程中,用户人工对于每一封邮件点选“垃圾”或“不是垃圾”,过一段时间,Gmail就体现出一定的智能,能够自动过滤掉一些垃圾邮件了。这是因为在点选的过程中,其实是给每一条邮件打了一个“标签”,这个标签只有两个值,要么是“垃圾”,要么“不是垃圾”,Gmail就会不断研究哪些特点的邮件是垃圾,哪些特点的不是垃圾,形成一些判别的模式,这样当一封新的邮件到来,就可以自动把邮件分到“垃圾”和“不是垃圾”这两个我们人工设定的分类的其中一个。而聚类则不是,聚类的目的也是把数据分类,但是事先是不知道如何区分的,完全是算法自己来判断各条数据之间的相似性,相似的就放在一起。在聚类的结论出来之前,完全不知道每一类有什么特点,一定要根据聚类的结果通过人的经验来分析,看看聚成的这一类大概有什么特点。[2]
就机器学习的角度来看,聚类属于无监督学习,用于对未知数据进行类别划分。聚类技术取得成功有赖于其简单、直观的特点。聚类运算并不关心原始数据集中到底有几类或者是否存在分类,只要按照一个标准去运算总能得到符合标准的多个类别。在商业应用中,可以根据一定的标准将客户划分为不同的消费群体,进而可以分析汇总该消费群体的消费习惯,在数据挖掘中,可以独立运行工作,挖掘一些深层的数据分布信息,然后进行下一步的探索。
当然,从聚类的运算结果看,经过聚类运算后,可以得到多个符合标准的类别,但是如果要进行下一步运算,还需要借助工具或相应的算法进行后续的分析。由于聚类运算要计算数据之间的距离,如果数据中存在取值范围与其他数据差异较大的特殊值会对聚类结果有很大影响,因此还要预先进行规格化处理。
本质上讲,聚类运算就是根据事物相互之间的差异属性来进行区分,将属性差异小于指定标准值的事物聚为一类,由此产生的同类事物往往具有高度的相似性。将聚类运算应用到推荐算法中,能够有效地降低时间复杂度和空间复杂度。因此笔者的研究也引用了聚类运算,用以提高算法的效率。
3.关联规则
关联规则指的是事物之间的相互关联,通常用一个事物的变化来推测另一个事物的变化。在后续的发展中,广泛应用于商业模式中,用以分析用户的购买习惯。
关联规则算法中经常用到的参数主要是最小支持度和置信度。支持度是指一个项集在总项集中出现的概率。通常使用百分比来表示,有时也会采用项集出现的次数表示。在使用中通常需要设置最小支持度,低于最小支持度的数据会被过滤掉;置信度表示在先决条件发生的情况下,由频繁项集推导出结果的可能性。比如频繁项集为X→Y,X为先决条件,当X发生时,Y发生的可能性即为置信度。
关联规则经常被用于数据挖掘中,采用这种方法挖掘主要分为两个阶段:寻找高频项目组和产生关联规则。
第一阶段:寻找高频项目组。所谓高频就是说某个项目组出现的频率要达到一定的标准。这个标准被称为项目组的支持度。举例来说,通过统计数据我们发现,借阅《C语言程序基础》的用户经常借阅《C语言编程100例》,我们为这两本书建立一个项目组:《C语言程序基础》《C语言编程100例》,如果该项目组的支持度大于一个我们设置的最小值,则称该项目组为高频项目组。
第二阶段:产生关联规则。这一过程主要是根据上一步中产生的高频项目组来形成一定的规则。如果某一规则在一定条件限制下所求得的置信度大于或等于最小置信度,则称此规则为强关联规则。
目前,关联规则挖掘技术已经被广泛地应用到各个行业当中,而且很多推荐系统的应用也都以关联规则作为辅助,来解决实际问题。在保险业务方面,通过关联规则查询索赔要求组合,可以判断出哪些行为是欺诈,需要做进一步的调查。在医疗方面,通过关联规则查找各种治疗方案,可找出可能的治疗组合;在银行方面,通过关联规则查找数据库,可以对顾客进行分析,当客户打电话时,就可以查出用户的特点、对什么产品感兴趣,这样,销售代表可以为客户推荐感兴趣的服务等。
目前使用关联规则的算法主要有:使用候选项集找频繁项集的Apriori算法、Savasere等设计的基于划分的算法,还有J.Han等提出的不产生候选挖掘频繁项集的方法——FP-树频集算法,该算法主要是为了改进Apriori算法的缺陷,避免重复搜寻数据库,提高运算效率。
(二)个性化推荐算法
1.基于关联规则的推荐算法
顾名思义,该类算法以关联规则为核心,通过统计寻找项目之间的潜在关系,然后建模,根据模型推荐相应的项目。比如:有很多人喜欢猫,经过统计发现,买过猫的人大多都会同时再买猫粮,我们认为猫和猫粮就存在关联规则。由于关联规则能帮助销售方发现用户购买物品的潜在联系,所以在零售业方面已经取得了巨大成功。
基于关联规则的推荐系统能够成功与其成熟的算法是分不开的,在1993年第一个算法提出以后,研究者们陆续提出了很多有效的关联规则算法。截至目前,出现得比较经典的算法有三类:基于频繁项集的算法、基于划分的算法和FP-树频集算法。
(1)基于频繁项集的算法
该类算法是一种基于关联规则的最具影响力的推荐算法。它通过候选集生成和情节的向下封闭检测两个阶段来挖掘频繁项集,是应用最广泛的一类算法,较为经典的有Apriori算法和AIS算法,其中以Apriori算法最为著名。
Apriori算法是一种很重要的数据挖掘算法,通过对数据之间的关联进行分析,往往能挖掘对决策制定非常有意义的重要信息,因此,它被广泛地应用于多个领域,如股票市场、市场推广、安全检测、高校管理等。
Apriori使用一种称作逐层搜索的迭代方法,首先找频繁项集是1的元素即频繁“1项集”,记作X,然后,在这基础上找频繁项集是2的元素,记作X2,以此类推,用“K项集”搜索“K+1项集”。直到不能找到“K+1项集”然后根据最小置信度的设置,产生关联规则。也就是先找出每个频繁项集的非空子集,然后查看这些子集的置信度,如果不低于算法设置的最小置信度,那么输出该频繁项集,即可以作为关联规则。
(2)基于划分的算法
基于划分的算法是由Savasere等设计的,算法的基本思想是:首先对数据库进行分块,每个分块不能太大,不能大于当前内存的容量,然后每次处理一个分块,计算出该分块的所有频集,并不断重复运算,直至产生所有分块的所有频集,最后将这些频集合并即可。取得这些频集的并集之后,通过计算频集的支持度,生成关联规则。该算法的优点是分解问题,并行处理,提高了效率。但是缺点是随着数据量的增加,会产生计算瓶颈,一个是在每个独立的处理器计算频集时,另一个是在多个处理器之间产生全局候选时。
(3)FP-树频集算法
该算法称作FP-growth,也被称作FP-增长算法,以上述的Apriori算法为基础构建,但进行了适当改进,因此其效率明显高于Apriori算法。不同于Apriori算法的”产生-测试”,FP-树频集算法从一个特定的树形结构中寻找频繁项对,即在一起出现频率较高的项目集合。通过树形结构的处理,使得算法执行速度提高很多,要比Apriori算法快两个数量级以上。
严格地说Apriori和FP-Tree都是寻找频繁项集的算法,但是Apriori算法需要多次扫描数据库,同时会产生大量频繁项集,针对这些问题,研究人员提出了FP-树频集算法。该算法也采用了分块的思想,不过这里采用的是先整后零,先将数据库中的所有频集放进一棵FP-tree,然后根据树形结构特点,将该树分解成多棵子树,每棵子树对应着一个条件库,最后,依次对这些子树进行处理,求得相关关联规则。实验表明,该算法能够很好地适应长短不一的关联规则,同时,由于其改善了Apriori算法的缺陷,在效率上有巨大的提高,因此广受欢迎。
2基于内容过滤的推荐算法
基于内容的推荐也是一种比较成熟的算法,它不依赖用户的评分,而是以用户选择的项目内容为依据,来计算用户之间的相似性,进而进行相应的推荐。在推荐过程中不需要用户对项目的评价意见,其核心思想是基于信息检索和信息过滤,是对这两项技术的扩展和延续。基于内容过滤的推荐算法根据用户的历史信息,如分享、收藏的文档等,来构造用户的偏好文档,然后计算该文档和待预测项目的相似度,根据TOP-N思想,将最相似的项目推荐给用户。
基于内容推荐方法的优点是:首先,与其他推荐算法不一样,它不需要用户的评价信息,而且不需要其他用户的数据,因此,也就不存在数据稀疏问题。其次,该算法过程比较简单,容易实现,采用的技术都相对比较成熟,如关于分类学习方面的技术。但该算法的核心思想是利用项目特征信息,由于现在的很多信息比如音乐、视频等与文字信息不同,很难提取有效的项目特征,也就导致无法形成精确的推荐,虽然选择也有多种提取各种多媒体信息的方法,但都还不够成熟,无法实际推广应用。
3.基于协同过滤的推荐算法
协同过滤推荐依赖用户的评分信息,通过用户已有的评分信息,来预判用户对未知项目或商品的喜好程度,然后进行推荐。因其操作简单,性能优异而备受关注,近年来,已成为研究者眼中的热门关注点。协同过滤通过已有评分来寻找当前用户的最近邻,并根据这些邻居的评分信息来分析这些邻居对商品的感兴趣程度,然后从中选取评分取值高的推荐给用户。
协同过滤的思想是“物以类聚,人以群分”,要想知道一个用户的兴趣爱好,最好的途径就是找到与该用户具有共同爱好的用户。很多人在购物时或者做决定时,会或多或少地受身边朋友的影响,协同过滤正是把这种情况巧妙地应用到了电子商务推荐系统中,获得了不错的效果。最经典的例子就是看电影,用户通常不愿意在寻找电影上花费时间,因此最快获知哪部电影更好或者评分更高的办法就是询问自己的朋友,通过朋友的推荐,快速定位到喜欢的电影。而这里询问的朋友,往往是跟自己兴趣相投的,这就是协同过滤的核心思想。(www.xing528.com)
协同过滤作为近几年的热门推荐算法,相对于其他算法,具有很多优点。最主要的是对用户和数据都没什么要求。能够处理各种复杂数据,例如音频、视频等。而且,其获得用户数据通常是隐式的,即通过别的用户的评分信息来获得的,对当前用户没有要求,因此,用户的参与度低。另外,协同过滤算法产生的推荐集合是根据最相似用户的兴趣生成的,所以,推荐的内容往往不是目标用户访问过的,这样就有了推荐新信息的能力。
4.基于聚类的推荐算法
聚类算法又被称为群集分析,从最早提出发展至今已有六十多年,其准则是将大量数据按照一定准则分为不同类别,尽可能使相似度高的个体划为同一类,与分类不同,聚类属于非监督学习,适合于探索未知领域,在大数据环境下,这种特性优势更加明显。因此,近年来聚类算法发展迅速,研究者们从不同的方向提出了上百种聚类算法。按照其工作原理来划分,可以划分为五大类:基于划分的聚类、基于层次的聚类、基于密度的聚类、基于网格的聚类、基于模型的聚类明。最常见的有两类:一类是基于划分的聚类算法,比较常见的有K-means算法、K-medoids算法、CLARANS算法;另一类是基于分层的聚类算法,比如BIRCH算法、DBSCAN算法和CURE算法等。其实,不管哪种类型的算法,只要选择恰当,都能够提高推荐算法的速度,能够提供更好的推荐效率。其中最典型的、最为常见的算法是K-means算法。
K-means算法是一种基于划分的聚类算法,由J.B.Mac Queen在1967年提出,是最简单也是最成熟的聚类算法,应用十分广泛。其大致思想就是把数据分为多个类别,每个类别都有一个聚类中心,这个聚类中心是通过计算该类中所有数据的平均值而得到的,可以保证该类中所有数据与其距离相比于与其他聚类中心的距离是最小的。总之一句话,就是把最相似的数据划分为一类,相似的定义有多种,最常见的是以欧式距离最小为相似。这种算法是求对应某一初始聚类中心向量V的最优分类,使得评价指标最小。算法采用误差平方和准则函数作为聚类准则函数下面,我们描述一下Kmeans算法的过程。
第一步,输入K的值,即我们希望将数据集经过聚类得到K个分组。从数据集中随机选择K个数据点作为初始的聚类中心。
第二步,对集合中每一个数据,计算与每一个聚类中心的距离,并将数据放入距离最小的聚类中心所属的数据簇。
第三步,对每个数据簇的数据进行重新计算,选出新的聚类中心。如果新的数据中心和原始的数据中心之间的距离小于某一个指定的阅值,则聚类算法收敛。算法终止。反之,则重复第二步和第三步,直到聚类中心没有变化为止。
通过该过程我们可以看出,每一次得重新计算,会使得同一个数据分组中的数据更加相似,边缘化的数据会越来越少,而不同分组之间的数据距离更大,尽量使得聚类结果的边界清晰。当算法终止时,聚类结果就达到了最优。
K-means算法的优点是简单、快速,尤其在簇内距离很小而簇间距离很大时,效果非常好,而且可以做到在数据集规模变大时,复杂度没有骤然的增大。尽管如此,K-means算法也有许多问题。
(1)K值难以确定
在K-means算法中,K值是很重要的,往往会影响聚类结果,但是K值却很难确定。通常我们并不知道K值到底多大,往往是通过经验或实验选取一个相对恰当的K值,所以,这样选出来的K值通常不具有通用性,处理另外的问题时,可能K值又需要另外指定。但是有一点是可以肯定的,因为Kmeans经常用于数据预处理,所以其K值通常不会很大,一般的做法是指定一个K值的范围,比如2到9,利用枚举法,在每个K值上都运行K-means算法,为了防止出现局部最优解的情况,在每个K值上要反复运行多次。
目前,确定K值有三种方法,第一种方法是采用经验值。根据同类问题中以往采用的K值和最终的结果对比,最终选择一个K值;第二种方法,可以将数据随机分为K个组,然后计算分组中心,将中心作为聚类中心的起始点,然后逐步调整,但是这样选出来的K值往往不准;第三种方法是围绕聚类的思想,通过数据的区域密度计算K值。首先选取数据密度最大的区域作为聚类的第一个中心点,然后设定一个距离d,寻找d以外的对象,并测定各个对象的数据密度,再选出数据密度最高的对象作为下一个聚类中心,以此类推,最后确定K值。
(2)聚类结果的不确定
K值确定后,K-means算法面临的又一个难题就是K个聚类中心的选取,最简单的选取方法是随机选,但是这样容易带来聚类结果的不确定。聚类结果会随着选取的中心点不同而变化,可能会出现同一个应用,在不同的应用场景下,聚类的结果差异很大,而且由于运算的特殊性,很可能导致局部最优,而不是全局最优,从而导致推荐结果不准确。
目前,针对该问题也有许多优化的方法,第一种是计算距离最远点。开始计算时,首先任意选择一个点,作为第一个分组的聚类中心,然后分别计算其他所有点与该点的距离,选择距离最大的点作为第二个分组的聚类中心,接下来计算剩余的点与已经选择的两个聚类中心的距离,依然选择距离最大的点作为第三个分组的聚类中心……依次类推,最后确定K个聚类中心。这种方法看似随机,但实际上存在着一定的稳定性,因此这种方法的效果非常好。第二种是方法是结合其他聚类结果运算。先根据其他聚类算法(如层次聚类)得到聚类结果,然后从结果中每个分类选一个点作为当前聚类的K个聚类中心。
(3)数据量大、算法时间开销大
K-means算法的计算过程是对距离的迭代计算,在运算过程的空间复杂度和时间复杂度会很高,有时会对孤立数据敏感,更增加了迭代次数,造成开销过大,最终影响聚类的效率。
5.混合推荐算法
通过学习我们知道,各种推荐方法都有自己的优缺点,例如:关联规则在处理数据要求比较单一的情况时,效率要明显好于其他算法,而协同过滤在应对数据的多样性要求方面具有比较明显的优势,能有效降低拟合问题,因此,当数据的多样性要求较高时,可以采用协同过滤算法,实现跨越推荐;而当数据要求比较单一的时候,可以采用关联规则的推荐技术。所以在实际应用中,经常采用将多种技术融合的方法即混合推荐。混合推荐没有什么固定的组合模式,也没有什么特殊要求,只看最后的结果,就是组合后的算法要能够成功地弱化各自原有的缺点,而且要发挥各个算法的优势。这几年因为信息越来越多,形式也越来越多样化,对于混合推荐算法的要求越来越多,所以,近年来出现的混合算法比较多,比如聚类与协同过滤的混合、协同过滤与关联规则的混合等。
那么,两种算法或者多种算法如何有机地融合在一起呢?根据前人的研究经验,在组合方式上,有多种思路,具体如下。
加权:每种推荐技术得出的预测结果都有一个评分,根据实际需要,分别对结果赋予不同的权重,然后计算最终的评分,并由该评分来决定最终推荐结果。
变换:当在某个应用中有多种场景的情况下,采用变换,比如说我们采用基于内容的推荐和协同过滤推荐,在算法运行之初,由于没有必需的评分信息,只能使用基于内容推荐的方式,但是随着时间的推移,数据越来越多后,便可以转换为协同过滤推荐。
混合:这种方式只是简单地合并多种推荐技术给出的多种推荐结果。以上三种是常见的融合方式,尤其是加权组合,是最常见的。另外还有特征组合、层叠、特征扩充、元级别等多种思路,这里不再一一介绍。
(三)个性化图书推荐算法的选择
要实现图书馆个性化推荐,第一个问题就是面临选择哪种推荐技术和推荐算法,但是通过上面对推荐技术和推荐算法的介绍,可以知道,很多技术和算法都有各自的特性和适用范围,往往通用性不高,选择一种算法往往要看具体的应用、数据和环境,由于高校图书馆用户和图书数据具有不同于其他数据的特点,因此需要在研究时有针对性地选择。而且由于各种算法的局限性,在选择时可以考虑多种算法组合。
1.高校图书馆用户及项目分析
高校图书馆是高校科研的重要元素,资源丰富、种类繁多。既有纸质的图书和期刊,也有很多的电子文献。按照图书馆用户的需求不同大致可以分为两类:一是专业图书,主要是为了广大师生的学习和科研而出版,通常这部分图书的用户比较固定也相对较少,而且借阅的时间会比较长;二是休闲图书,我们也可以称其为非专业图书,这些书种类繁多,借阅频率很高,数据相对丰富,借阅的用户也是各个专业的师生都有,分布较广泛。
目前,所有的高校图书馆都实现了图书的自动化管理,馆藏图书的信息都已经存入了数据库,为图书馆数字化管理和个性化推荐提供了前提,比较先进的图书馆已经建立了数字图书馆、图书馆,甚至有些图书馆已经开始使用二维码、RFID等物联网技术。不管使用哪种技术,图书信息体现到数据库中就是一条记录,记录了图书的ID、书名、作者、出版社和内容提要等,除此之外,往往还有一些借阅记录,包括ID、借阅人、借阅时间、归还时间等信息。
一般的公益性图书馆往往用户比较杂、也不固定,而高校图书馆面向的是高校的广大师生,用户群体稳定而明确,而且具有天然的分类信息,就是各自所属的学院和专业。而且现在高校对于师生信息已经实现了数字化管理,广大师生的信息均已经录入到了管理数据库中,教师的信息主要包括工号、姓名、工作部门、职称、年龄、学历等,而学生的信息则包括学号、姓名、学院、专业、年龄、性别、爱好等。这些信息都将决定着用户的借阅需求和借阅习惯。比如教师可以分为教学人员和行政管理人员,他们各自的需求往往是不同的,而学生中有本科生、有研究生,各自的需求和借阅习惯肯定都是不一样的。
2.各种算法与图书推荐的适用性分析
通过对个性化推荐算法的介绍可以知道,基于内容的算法以用户的历史信息为依据,构建用户的兴趣模型,很少需要用户的介入,使用的技术也比较成熟,常被用于微博等社交网络的推荐,但是也存在着新用户、数据稀疏和复杂属性无法提取的问题。但是分析图书馆用户和图书数据的特点后可以发现,图书馆的数据基本都是普通的文本信息和图片信息,而且其主要作用是文本信息,所以不存在复杂属性问题,而且高校图书馆用户信息是比较容易获取的,而且相对一般的社交网络用户注册的信息来说,学校师生的信息可以算得上十分丰富了,而且用户的信息都是准确的,不存在网站注册时用户用假信息的问题。因此基于内容的推荐算法与图书馆个性化推荐结合,可以有效地扬长避短,为用户带来更好的使用体验,提高推荐的满意度。
基于关联规则的推荐算法是从用户的过往信息中发现频繁项从而发现物品之间的前后关系,然后在算法中推荐有关联的物品。当数据较为充足时,关联规则算法的效率会非常高,但是当数据量比较少时效率会打折扣,而且会有一个明显的缺陷,对于非频繁事件是无法推荐的。将关联规则推荐算法与图书推荐结合时,就会出现刚采购的新书是没有办法被推荐的,甚至借阅量小的图书也很难被推荐。而且非专业书籍的借阅量很可能会远远大于专业书籍,如果仅靠关联规则的频繁项选择来推荐图书的话,专业书籍会很难进入被推荐集合,但是专业图书推荐对于高校图书馆来说又是必不可少的。因此,关联规则可用于在数据量比较大时提高推荐精度。笔者根据关联规则的思想,提出了匹配树的概念,用以提高推荐的准确率。
聚类算法能够在无监督的情况下,将项目分为多种类别,每个类别中的数据都是相似的,通常在推荐算法实施前对数据进行预处理。其优点是简单、直观,运行速度也比较快。因推荐系统发展的需求,聚类技术近年来发展很快,大约出现了上百种聚类算法,在具体的应用过程中,聚类算法的选择取决于应用环境和应用目的,例如涉及距离总和最小的问题,适合用Kmeans算法,而图像识别问题,可以采用基于密度的聚类算法。将聚类算法与图书推荐结合,可以对图书信息进行前期处理,提高推荐的效率。笔者中将聚类用于协同过滤推荐算法的数据预处理,是为了将距离比较近的图书划分到同一个类中,因此选用聚类技术中的基于划分的聚类,将K-means聚类算法与协同过滤算法结合起来,实现个性化推荐。
协同过滤算法是近年来推荐系统中频繁应用的算法,其优点是高效、个性化强,可操作性好。协同过滤的运算主要是依据用户的评分数据,通过评分数据计算当前用户的相似用户,发现他们的共同兴趣,进而形成推荐,可以发现用户的新异兴趣,从整体看达到了热门推荐的效果,也可以通过评分信息计算与用户已选择项目相似度高的项目形成推荐,可以尽量满足用户的个性化需求。整体对比来看,协同过滤具有更大的优势,个性化程度更高。将协同过滤算法与图书推荐结合,可以充分地利用高校图书馆资源丰富和师生信息相对比较多这一优势。
综上所述,各种推荐算法都有自己的特点和适用环境,需要结合应用目的来进行选择,而且从各种文献和资源的研究发现,单靠单一算法进行推荐的思想已经落伍了,因此在最终的选择上,笔者选择了基于聚类的推荐和协同过滤推荐两种算法,融入了基于内容算法的思想,并通过关联规则来提高推荐准确度,通过对多种算法进行结合、改进,形成独有的混合推荐算法,弥补单一算法的不足,与图书馆个性化推荐更好地融合,从而提高推荐效率。
3.图书馆个性化图书推荐策略的提出
综合前面介绍的算法特点和算法选择可以知道,现在的推荐系统往往都是结合多种推荐算法来弥补单一算法的不足,因此,要研究一个高效的图书馆推荐系统,就要选择合适的算法,应对图书推荐中出现的各种情况,并能形成对图书馆用户的个性化推荐。笔者基于前面对多种算法的分析,提出了一种混合推荐算法。该算法融合了多种算法的优势,改变了相似度的计算方法,能为图书馆个性化推荐带来更有效的推荐效果。
在混合推荐策略中,推荐系统会首先对用户、图书数据进行预处理,并在处理后的图书聚类中创建匹配树,然后采用协同过滤,寻找目标用户的最近邻,并产生推荐集,若此时推荐集为空,则利用改进的算法,计算用户和项目的相似性,产生候选推荐集,利用匹配树过滤候选推荐集,然后向用户推荐过滤后的结果。
这种混合的图书推荐策略,可以有效解决新用户、新兴趣问题,同时克服了多样性不足的问题,因为传统的推荐算法是根据用户的历史数据进行推荐,往往只能推荐与用户已经用过的物品相似的物品,会出现很大的局限性,而多种算法的结合弥补了单一算法的不足,使得推荐图书的个性化程度提高,推荐结果也更为精确。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。