APP下载

基于协同过滤推荐算法的图书推荐研究

2017-06-02房振伟徐海燕廖真

数字技术与应用 2017年4期
关键词:协同过滤推荐系统

房振伟 徐海燕 廖真

摘要:随着信息技术以及互联网技术的飞速发展,在面对这个信息量过载的时代,我们基本无法从海量的信息当中快速有效的找到自己所需的信息。传统的推荐算法也已经无法满足的人们的需求。协同过滤是推荐系统中最为广泛使用和最成功的技术之一,以其出色的速度和健壮性,在理论和实践中都取得了快速的发展,并且已经在全球互联网领域炙手可热。针对当前高校传统数字图书馆已无法为用户提供准确的图书推荐服务,本文以图书推荐为例,提出了在协同过滤技术上的图书个性化推荐系统研究以及实现过程,并總结其优缺点。

关键词:推荐系统;协同过滤;图书推荐

中图分类号:TP301 文献标识码:A 文章编号:1007-9416(2017)04-0147-01

1 协同过滤算法介绍

在1992年Goldberg等学者首先提出来协同过滤一词,他们将协同过滤技术使用到Tapestay的一个系统中,该系统主要是想解决Xerox公司在Palo Alto的研究中心信息过载问题。而协同过滤又常被用于分辨其为特定用户可能感兴趣的物品,因此这些结论也常用来对其他相似顾客对有些物品感兴趣的分析。到目前为止,基于协同过滤推荐的技术和方法在实际的应用系统中能取得重大成就的同时,国内外学者也在理论上对协同过滤的推荐技术进行研究和改进,着力于提高个性化推荐的效果。协同过滤算法以其出色的计算速度和健壮性,在全球范围内特别是在互联网领域中,炙手可热,同时相较其他算法,协同过滤具有以下两个优势:第一,对推荐对象无特殊要求、对于复杂切抽象的资源也同样能够实现推荐;其次,只需要显式或者隐试的用户使用过的历史数据,而并不需要有关用户本身的属性、知识,并且不会对用户的推荐体验,带来一些负面影响[1]。

目前主要由两类协同过滤算法:其一是基于用户的协同过滤算法(user-based collaborative filtering)、还有基于物品的协同过滤算法(item-based collaborative filtering )和Slope One算法。由于基于用户的协同过滤算法存在数据稀疏性和算法扩展性两个重大问题。因此本文介绍的系统,所采用的是基于物品的协同过滤算法。

2 对协同过滤算法过程的分析

(1)收集用户偏好。本项目中就是收集用户的借阅历史。(2)计算物品(即已借图书)之间的相似度,这是协同过滤推荐算法中最关键的一步。在协同过滤中,两个物品是否能产生相似度,往往是因为它们共同被很多用户所认同,也就是说,每个用户都可以通过用户本身对物品的历史兴趣列表,从而给物品贡献相似度。在这里面蕴含一个假设条件,那就是每个用户对物品的兴趣,基本都局限在某些方面,因此,如果两个物品,能够属于许多用户的兴趣列表,那么这两个物品,就有可能就属于有限的几个领域,反过来说,如果两个物品能够属于很多用户的兴趣列表,那么也就有可能属于同一领域,从而来判断他们有很大的相似度[2]。

传统的计算相似度的方法有三种:基于余弦(Cosine-based)的相似度计算、基于关联(Correlation-based)的相似度计算和调整的余弦(Adjusted Cosine)相似度计算。经研究,在我们的图书推荐系统中,采用以下公式:

其中|N(i)|和|N(j)|分别表示喜欢物品I和物品j的用户数量(变量),而|N(I)∩N(j)|是即喜欢物品i同时也喜欢物品j的用户数量。此公式限制了物品j的权重,可以避免了对热门物品所进行的推荐,从而也能够提高为用户所推荐自己喜欢物品的准确性。

详细计算物品相似度的代码如图1所示,其中C[i][j]记录了同时喜欢物品i和物品j的用户数。

通过上述图、公式等得到物品相似度后,ItemCF也通过以下公式来计算用户u对一个物品j的兴趣度:

其中,N(u)是作为用户喜欢的物品的一个集合,而S(j,K)是同物品j最相似的,K个物品的集合,Wji 表示物品j同i的相似度,而rui是用户u对物品i的兴趣情况。这个公式的所表示含义是:和该用户历史上感兴趣的物品,越相似的物品,越有可能在用户的推荐列表中所获得比较高的排名[3]。其实现代码如:

由此可见,协同过滤推荐算法具备强大的功能和较高的效率。我们一共选取了8700个学生的借阅信息进行研究,并对其推荐结果进行有效分析,我们得出结论:(1)借书越多的用户,其推送准确率越高。(2)能够获取图书数据越完整的信息和字段越多,推送越准确。

在研究中我们发现对于借书较少产生的推荐不是十分准确,通过研究发现,系统根据少量的数据,该算法的使用不容易准确掌握用的兴趣爱好;对于从未借书的同学不会产生数据。这便是协同过滤算法的稀疏性问题。

3 结语

本文介绍了协同过滤算法的主要思想,并以图书推荐系统为例,详细介绍其主要思想以及算法,采取相关方法来降低热门商品的推荐率,以更好匹配用户偏好相似度。基于协同过滤技术的图书推荐系统,对提高图书馆的服务效率具有重要意义,同时也具有较好的推广价值,该系统能够通过用户的借阅历史进行有效推荐,随着时间变化以及借阅历史馆藏信息等相关因素的发生变化,读者兴趣会发生变化时,系统也能主动向读者推荐其可能感兴趣的图书。该系统能够实现高校图书推荐的个性化与准确性的统一。今后系统的升级版将重点研究如何解决算法的稀疏性以及如何提高图书推荐质量的问题。

参考文献

[1]项亮.推荐系统实践[M].第一版.人民邮电出版社,2012.

[2]Thomas H.Cormen.算法导论[M].第二版.机械工业出版社,2006.

[3]马宏伟.协同过滤推荐算法综述[J].小型微型计算机系统,2009(7):1282-1288.

猜你喜欢

协同过滤推荐系统
基于用户偏好的信任网络随机游走推荐模型
改进的协同过滤推荐算法