基于协同过滤和关联分析的图书推荐系统

2019-12-11 10:12王仲钰刘凯俐
现代商贸工业 2019年35期

王仲钰 刘凯俐

摘 要:高校图书馆系统与商业系统相比,普遍存在用户信息少、项目评分严重缺失的问题,极大地影响了个性化推荐的准确率。构建某高校近200名学生图书借阅记录作为算例,利用多维属性间关联规则数据挖掘技术,采用协同过滤算法、关联算法对不同用户群体图书借阅数据进行分析,探索具有针对性的图书推荐服务策略,提升图书馆服务能力。

关键词:图书推荐;关联算法;协同过滤算法

中图分类号:TB 文献标识码:A doi:10.19311/j.cnki.1672-3198.2019.35.113

高校图书馆图书推荐系统旨在根据用户阅读习惯为其推荐有针对性的个性化图书。目前主流推荐算法主要有协同过滤算法、关联规则算法和基于社交网络的推荐等。其中协同过滤算法应用非常广泛,例如Amazon、当当、淘宝、Ringo音乐推荐系统、Jester推荐系统等。例如Ringo音乐推荐系统先根据用户对音乐的评分进行计算相似度,再根据相似度分到不同的兴趣组,对同一组内用户进行推荐。Jester推荐系统会随机生成n篇笑话,用户给这n篇笑话作出评分,之后系统会根据用户的评价找出和其相似的用户,再根据相似的用户对该用户作出推荐。协同过滤算法虽然推荐效果会随时间推移不断提高,但是面临数据稀疏性和冷启动等问题,影响推荐效果。为此不少学者对算法做出了改进。比如,有学者提出利用神经网络来解决数据的稀疏性问题,利用神经网络来预测填充空缺值,可以缓解数据的稀疏性。也有学者提出融合项目的属性和用户的特征来计算相似,预测评分进行推荐,在一定程度上缓解了冷起动问题。关联规则算法最初是针对商场购物篮问题提出的,意图挖掘不同商品之间的关联性,优化货架布局以提高销售额。关联规则算法包括经典的Apriori算法、串行算法、并行分布式算法、基于图或序列的关联算法等,该算法能够根据众多用户购买或借阅记录间物品的关联性,发掘新的兴趣点。基于社交网络的推荐核心思想是根据社交网络中熟人兴趣点为目标用户提供推荐。有学者认为,产生自熟人间的推荐更容易满足用户的需求。典型的利用基于社交网络进行推荐的例子有Facebook、Twitter、新浪微博等好友推荐系统。

不同推荐算法各有优劣,本文拟通过算法融合搭建有效且高效的图书馆推荐系统。考虑到高校图书系统的用户一般仅能登录自己账户,社交性不明显,故采取协同过滤和关联分析融合的推荐算法,从用户相似性和书籍关联性两个维度进行图书推荐。

有学者做过类似的研究,例如李文华首先利用Apriori算法计算图书相似性,然后根据用户的年龄、性别、专业等特征用协同过滤算法计算用户相似性,结合两个维度相似性进行图书推荐。张戈一则将两种算法的推荐评分线性耦合成综合评分来进行推荐。本文的不同之处在于依据用户借阅记录计算相似性,同时为了避免数据稀疏性的问题,利用中图分类法将图书分成可接受数量的种类,然后根据用户对不同种类书籍的借阅次数计算用户相似度,推荐最近邻用户中最受欢迎的书籍。再利用最近邻用户的借阅记录进行关联分析,补充推荐强关联书籍。

1 系统搭建

系统的核心算法包括协同过滤算法和关联分析算法,前者用于发掘目标用户的邻近集并进行推荐,后者在此基础上补充推荐强关联书籍。

1.1 协同过滤算法

协同过滤算法包括两种:基于用户的协同过滤和基于物品的协同过滤,二者关注点不同。

根据系统特点,采取基于用户的协同过滤。算法包括四个步骤:

(1)构建评分矩阵。用户的评分矩阵可以用mxn阶矩阵E表示,元素eij表示第i个用户对第j个物品的评分。对于某些不能直接收集用户评分数据的对象,在使用推荐算法时,可以采取基于时间、购买、借阅、查询等行为的评分数据确定办法。值得注意的是,应用基于用户的协同过滤算法时,若物品维度很高,即n较大,则数据稀疏性严重,直接影响推荐算法的有效性。图书册数数不胜数,以单本图书为物品对象则维度之高难以想象,算法基本不可行。故本系统根据中图分类法将图书分成可接受数量的种类,以此为物品对象构建评分矩阵。

(2)用户相似度计算。计算用户相似度的目的是找到目标用户的最近邻用户集,计算方法一般有Pearson相关性、夹角余弦、修正的夹角余弦方法。考虑到用户数量庞大,算法维度高,为提高算法效率采取夹角余弦方法计算用户相似度,计算公式为:

其中xy表示两个向量的内积,数值越小则相似度越高。

(3)确定最近邻用户集。根据第二步计算的用户相似度搜寻目标用户的最近邻用户集。搜索方法一般有K均值方法(又成K-最近邻算法或者KNN算法,K-Nearest Neighbor)和设阈值法。KNN算法選择相似度最大的K个用户作为当前用户的相似近邻,而设阈值法则将相似度大于阈值的用户全部纳入最近邻用户集。

(4)产生推荐列表。采取TOP-N方法产生推荐列表,即统计最近邻用户的所有借阅记录(排除目标用户已经借阅过的书籍),推荐最近邻用户集中最受欢迎的N本书。

1.2 关联算法

以目标用户的最近邻用户借阅记录为对象,采取经典Apriori算法挖掘关联规则。计算步骤如下:

(1)扫描最近邻用户的所有借阅记录,产生候选1项集。

(2)根据设定的最小支持度进行剪枝,生成频繁l项集。

(3)排列组合生成候选2项集,根据设定的最小支持度进行剪枝,生成频繁2项集。

(4)重复以上步骤,直到不再产生频繁集。

(5)输出满足最小支持度和最小置信度的强关联规则,置信度计算方法为:

confidenceA=>B=supportA=>BsupportA=support_countA∪Bsupport_countA

(6)根据强关联规则,推荐相应书籍。

1.3 系统构架

首先,对采用基于用户的协同过滤方法对借书记录库中的数据进行分析处理,得到每个用户的临近集。其次,提取目标用户及其邻近集用户的借书记录,作为后续推荐分析的数据基础。然后,从两种路径进行推荐:(1)将邻近用户借书目录按借阅次数进行排序,推荐排名TOP-N的书籍;(2)基于邻近集用户的借书记录进行关联分析,找出其中与目标用户借阅记录有强关联的关联规则,推荐相关书籍。最后,将两种路径得到的推荐书籍去重,并排除目标用户已借阅的数据,进行综合推荐。

2 算例应用

我们共收集了241名用户的图书借阅记录,经过处理后得到一个241*22矩阵,作为协同过滤处理的原始数据,截取部分记录如图2所示。

2.1 协同过滤推荐

(1)用户相似度计算。

对241条用户的借阅记录,计算两两之间的余弦相似度,第i行第j列的值为1减去用户i和用户j之间的余弦相似度后的值,则数值越小相似度越高,值为0表示完全相同。計算结果表示为一个241*241的对称矩阵,且对角线上的值均为0。

(2)寻找最近邻。

选取某一具体用户为例(用户ID为149),从用户数据库中提取该用户的借阅记录,如表2所示。其中,第二排表示各类数据的借阅总数,第三排表示具体的借阅书籍,用编号表示。

从用户库中找出与该用户相似度最高的K邻近集(K=20),其邻近集由157、183、154、165、153、143、156、142、147、146、160、151、65、141、8、169、124、161、158、145号用户组成,读取他们的借阅记录,如表3所示。

(3)产生推荐列表。

对邻近集用户所有已借阅的书籍,根据借阅次数的大小进行排序,推荐排名靠前的几本书。149号用户临近集书籍借阅统计情况如表4所示。排除149号用户已借阅的,推荐1,3,4,10,12,52这6本书。

2.2 关联规则推荐

基于20位临近用户的借阅记录进行分析,挖掘其中的关联规则,并对比用户149的借阅记录,找出与其相关的关联规则,如图4所示。所以将1、4、9、10、81这5本书推荐给149号用户。

2.3 推荐结果

综合以上两种方法,149号用户的最终推荐列表由6本来自协同过滤推荐列表的图书和5本来自关联规则推荐列表的图书去重后组成,形成的推荐书单包括 1、3、4、9、10、12、52、81这8本书。一本图书若同时出现在两个推荐列表中,说明该图书既符合目标用户的相似用户的阅读口味,又与目标用户借阅过的图书关联度很高,因此它的其推荐优先度最高(如本例中图书1,4,10),余下图书则随机排列。

其中,编号1、3、4、9、10、12这6本书都属于文学类书籍,而149号用户读书记录中最多的也是文学类的,可以看出推荐结果与其兴趣较一致。编号81的这本书属于经济类,149号用户也借阅过经济类的书,所以也可以认为是兴趣内的推荐。而编号52的这本书属于社科类的图书,149号用户借阅历史中没有这类的图书,它是根据149号相近用户的借阅情况进行推荐的,所以149号用户很有可能会对它感兴趣,并且这类推荐有利于用户本身的兴趣扩展,这也是本文推荐算法的优势之一。

3 总结

推荐系统在实际中的应用非常广泛,但在高校图书馆的应用不足。具体来说存在着数据有效利用率低和图书馆查询系统无法满足用户偏好需求并提供个性化服务两个方面的问题。因此,本文面向高校图书馆这个对象,将协同过滤算法和关联规则算法有效结合起来,构建了一种面向高校图书馆的混合图书推荐系统。

参考文献

[1]陈淑英,徐剑英,刘玉魏,等.关联规则应用下的高校图书馆图书推荐服务[J].图书馆论坛,2018:1-5.

[2]张若冉.基于用户兴趣变化的高校图书馆个性化图书推荐研究[J].农业图书情报学刊,2017,29(11):10-14.

[3]郝红红.基于关联规则可视化技术的个性图书推荐系统研究[D].秦皇岛:燕山大学,2012.

[4]王小虎.关联规则挖掘综述[J].计算机工程与应用,2003,(33):190-193.

[5]张皓.面向社交网络的个性化推荐算法的研究[D].北京:北京邮电大学,2018.

[6]李文华.基于Apriori关联分析与协同过滤的图书推荐算法[J].电脑知识与技术,2017,13(33):32-33+35.

[7]张戈一,朱月琴,吕鹏飞,等.耦合协同过滤推荐与关联分析的图书推荐方法研究[J].中国矿业,2017,26(S1):425-430.

[8]Matook S,Brown S A,Rolf J.Forming an Intention to Act on Recommendations Given via Online Social Networks[J].European Journal of Information Systems,2015,24(1):76-92.

[9]Sarwar B.,Karypis G.,Konstan J.,et al.Item-based collaborative filtering recommendation algorithms[J].Proc 10th Int'1 WWW Conf,Hong Kong,2001:1-5.

[10]T.Q.Lee,Y.Park,Y.T.Park.A time-based approach to effective recommender systems using implicit feedback[J].Expert Systems with Applications,2008,34(4):3055-3062.

[11]Y.L.Chen,L.C.Cheng.A novel collaborative filtering approach for recommending ranked items[J].Expert Systems with Applications,2008,34(4):2396-2405.

[12]M.H.Yang,Z.M.Gu.Personalized recommendation based on partial similarity of interests[J].Advanced Data Mining and Applications Proceedings,2006,(3):509-516.