基于数据挖掘的书目推荐研究
2017-07-04刘月学
刘月学
[摘 要] 通过分析推荐书目的作用,在几种传统图书推荐服务方式的基础上,尝试将数据挖掘中的关联规则引入到图书馆书目推荐的工作中。基于借阅实例,利用关联原则和Apriori算法对读者借阅记录进行分析,从而为读者提供个性化的图书推荐服务。文章指出这种书目推荐方式对图书馆和读者都具有重要的意义。
[关键词] 图书馆;数据挖掘;关联规则;书目;个性化信息服务
[中图分类号] TP311.13 [文献标识码] A [文章编号] 1671-0037(2017)4-91-3
Research on Booklist Recommendation based on Data Mining
Liu Yuexue
(Library of Xinyang Agricultural and Forestry University, Xinyang Henan 464000)
Abstract: By analyzing the effects of the recommended books, this paper tried to introduce the association rules of data mining to the library booklist recommendation on the basis of several traditional book recommendation and service models. Based on specific cases of borrowing, it adoptd the association rules and Apriori algorithm to analyze the borrowing records of readers, ao as to provide personalized book recommendation service for readers. The paper pointed out that this model of booklist recommendation had great importance for both the library and the readers.
Key words: library; data mining; association rules; booklist; personalized information service
现代图书馆肩负着为读者推荐优秀书目并同时提供所推荐图书的使命。如何从大量的馆藏中快速地推荐给读者适合其阅读的图书,是一个棘手的难题。为了解决此问题,本文尝试利用数据挖掘领域的相关理论和技术进行图书馆的书目推荐工作,从而在技术层面解决这个难题。
1 基本概念概述
1.1 图书推荐服务概述
目前,传统的图书推荐服务主要有以下几种方式:
1.1.1 畅销书排行。这种推荐方式就是按照图书销售量的多少来向读者推荐当前最畅销的书,比如当当网和亚马逊等网上书店的畅销书排行榜等。这种方式是向用户推荐销量靠前的书,实施起来比较简单,便于操作,可信度比较高。
1.1.2 相关书籍推荐。相关书籍推荐是以某一本书为基础的推荐,比如,用户在借阅或浏览某本书时,图书馆的工作人员以这本书为基础,向其推荐与该书的内容、主题相关、相似或相同的书,将这些相关图书的基本信息,比如馆藏地点、购买链接等信息反馈给读者。这种图书推荐方式属于主动推荐,具有一定的难度,这种推荐方式要求推荐人员具有一定的专业知识,并且知识广泛,熟悉馆藏图书。
1.1.3 基于用户兴趣的推荐。此种推荐模式,是完全基于读者的阅读需求和阅读兴趣,匹配最适合的读者和最适合读者兴趣的图书,即为人找书、为书找人,核心点在于如何把控不同读者的阅读兴趣。由于此方式具有较高的主动性和个体性,能根据不同读者的需求推荐书目,因此被广泛应用于基于数据挖掘的个性化图书推荐中。
1.2 数据挖掘概述
数据挖掘就是从大量的应用数据中提取出有用的信息、知识的过程, 提取出來的知识和信息是人们事先不知道的,是通过对已知数据进行分析而发现的[1]。
数据挖掘具有以下三点特征:
第一,它是对海量的原始数据进行挖掘提取,比如,在图书推荐服务中,数据挖掘就是对大量的读者借阅原始数据进行挖掘,进而为读者推荐满足其个性化需求的图书。而在挖掘借阅数据之前,还要对其进行整理,因为这些原始数据之间本身存在一定的干扰。第二,数据挖掘是探索性挖掘,在挖掘之前,并不知道挖掘的结果是什么,会怎么样,不具有验证性。第三,数据挖掘是从大量原始数据中发现从未被发现的信息,其结果容易被理解和接受,对人们有用。
数据挖掘应用在高校图书馆的图书推荐中,就是分析借阅数据的相关性从而为读者进行个性化书目推荐。用户在借阅某些类别的图书时,往往会同时借阅其它类别的图书,因此,通过利用数据挖掘中的关联分析功能,寻找存在于图书管理系统中的原始借阅记录的相关性,从而得到最适合用户的推荐书目,这个过程称为基于数据挖掘的书目推荐。
1.3 推荐书目数据挖掘流程
基于数据挖掘的书目推荐主要包括三个层面:数据库层、数据挖掘层和用户界面层。
数据库层是基础,主要包含读者的借还书记录、读者信息等大量的数据。数据挖掘就是预先加工处理数据库层中的信息,映射成易被读取的数据,再传递给数据挖掘层。在数据挖掘层,需要采取相应的算法,转换成可执行程序,然后对数据库层送来的数据实施挖掘,在一定规则下完成对图书进行推荐,同时将推荐结果反馈给用户界面层。在用户界面层,通过人和机器之间的对话来传递相关的指令,比如最小支持度和最小置信度等,通过这些指令等来调整图书推荐结果的准确度,并将结果呈现给用户。数据挖掘的流程如图1所示。
2 基于数据挖掘的书目推荐算法
关联规则分析是数据挖掘中最常用的方法,本文将采用关联规则进行书目推荐。以下是基于数据挖掘的书目推荐算法:
关联规则算法通常可以用项集X和项集Y来表示,并且项集X和项集Y相互独立,不重合,即:X∩Y=?。项集X和项集Y之间的规则满足如下的条件:这两个项集有用并且这两个项集之间的规则具有一定的普遍性,即有趣度。比如,设I={i1,i2,…,im}是项的集合,任务相关的数据D是数据库事务的集合,其中每个事务T是项的集合,使得T?I。每一个事务有一个标志符,称做TID。设A是一个项集,事务T包含A当且仅当A?T。关联规则是形如A=>B的蕴涵式,其中A?I,B?I,并且A∩B=?。[2]
2.1 支持度和置信度
当规则A==>B(在事务集D中成立),具有支持度s,D中事务包含A∪B(即A和B二者的全部)的百分比,它是概率P(A∪B)也即支持度。
当规则A===>B(在事务集D中成立),具有置信度c,D中包含A的事务同时也包含B的百分比,这是条件概率P(B|A)也即置信度。即
Support(A==>B)=P(A∪B)
Confidence(A==>B)=P(B|A)
为方便统计,笔者用0%~100%之间的值,而不是用0~1之间的值表示支持度和置信度。
2.2 Apriori算法
关联规则挖掘问题通常可以被分成两个部分:第一部分为找到所有与关联规则相关的频繁项集;第二部分是在第一部分产生频繁项集的基础上产生强关联规则(既满足最小支持度阈值(min_sup)又能满足最小置信度阈值(min_conf)的规则称做强规则)。在用关联规则进行挖掘的过程中,中心问题要迅速、高效地找出事务数据库中的全部频繁项集。寻找频繁项集要采用一些算法,通常采用的经典算法是Apriori算法,但采用这种算法会存在效率低下的问题,因为每次连接产生太多的候选项集,导致在算法运行过程中需要一次一次的掃描数据库,每次都需要对扫描结果进行判断和比较,所耗费的工作量比较大。
Apriori算法流程:
先由候选项目集产生的逐层迭代,找出频繁项目集。
输入:事务数据库D和最小支持度min_sop。
输出:D中的频繁项目集Lo
方法:
l)L1=find--frequen_1一itemsets(D):
2) For(k=2;Lk-l≠?;k++){
3) Ck=Apriori-gen(Lk-1,min_sup);
4) for each transaction t∈D{//scan D for counts
5) Ct=subset(Ck,t);//get the subset of t that are candidates
6) for each candidate C∈Ct
7) c.count++:
8) }
9)Lk={e∈Ck|c.eount≥min_suP}
10)}
11)return L=UkLk;
找到频繁项目集后,接着产生关联规则。
算法如下:
算法:产生关联规则。
输入:频繁项目集L和最小置信度闽值(min_conf)。
输出:关联规则。
l)对于L中的每一个频繁项目集1,产生1的所有非空子集。
2)对于1的每一个非空子集S,如果满足大于等于最小置信度,则输出规则。
3 基于数据挖掘的图书推荐在图书馆的应用
3.1 图书借阅中的关联规则
在读者借阅记录数据中,假设项集I是借阅数据的集合,假设D为借阅历史数据库,D={R1,R2,…,Rn}。Ri是关于读者借阅信息的记录,并且1≤i≤n,Ri={Ci,Ij},Ci为读者标志,Ij是对读者借阅书目信息的记录,1≤j≤m。设事务T包含A,并且满足A?T。关联规则是形如Rx∩Ry的蕴涵式,其中Rx?D,Ry?D,并且Rx∩Ry=?。
3.2 关联规则在图书馆中的应用实例
本文通过简单的借阅实例来说明管理规则数据挖掘如何应用在图书馆的书目推荐中。以9位读者所借阅的5本书为例子,Rx为读者的编号,Ix为书目信息,R1借的图书为I1、I3、I4,R2借的图书为I2、I4,R3借的图书为I2、I3、I5,R4借的图书为I1、I2、I4,R5借的图书为I1、I3,R6借的图书为I2、I3,R7借的图书为I3、I5,R8借的图书为I1、I3、I5,R9借的图书为I1、I2、I3。
在这个数据库中,关联规则的确定需要分两步来实现:第一,找出满足最小支持度的项集,这个是根据假设的最小支持度(假设为2)来进行查找的;第二,根据设定的最小置信度的值来查找符合其阈值的关联规则。
假设书目I1,I2,I3,I4,I5分别代表5本书目信息,Sups代表该书的借阅次数,则I1,I2,I3,I4,I5对应的借阅次数分别为5、5、7、3、2。
满足最小支持度计数的集合L1,L1为{I1}、{I2}、{I3}、{I4}、{I5},{I1}、{I2}、{I3}、{I4}、{I5}对应的Sups值分别为5、5、7、3、2。
由L1产生满足最小支持度计数的集合C2,C2为{I1,I2}、{I1,I3}、{I1,I4}、{I1,I5}、{I2,I3}、{I2,I4}、{I2,I5}、{I3,I4}、{I3,I5}、{I4,I5},其对应的Sups值分别为2、4、2、1、3、2、1、1、3、0。
滿足最小支持度的L2为{I1,I2}、{I1,I3}、{I1,I5}、{I2,I3}、{I2,I4}、{I2,I5},其对应的Sups值分别为2、4、1、3、2、1。
由频繁项集产生强关联规则:
Confidence(A=>B)=P(A|B)=Support count(A∪B)/Support count(A)
基于找出的频繁项集I{I1,I2,I5}可以产生的强关联规则:
I2∧I1=>I5,Confidence=1/2=50%
I1∧I5 =>I2,Confidence=1/5=20%
I2∧I5 =>I1,Confidence=1/5=20%
I1 =>I2∧I5,Confidence=1/1=100%
I2 =>I1∧I5,Confidence=1/1=100%
I5 ==>I1∧I2,Confidence=1/2=50%
如果最小置信度阈值为20%,则产生强规则。
即是说,当读者借阅了I1,I5,应该为其推荐I2;当读者借阅了I5,应该为其推荐I1,I2。
基于找出的频繁项集I{I2,I3,I4}可以产生的强关联规则:
I2∧I3==>I4,Confidence=1/3=33%
I2∧I4==>I3,Confidence=1/7=14%
I3∧I4==>I2,Confidence=1/5=20%
I2==>I3∧I4,Confidence=1/1=100%
I3==>I2∧I4,Confidence=1/2=50%
如果最小置信度阈值为20%,则产生强规则。
也就是说,当读者借阅了I2,I3,应为其推荐I4;
当读者借阅了I2,I4,应为其推荐I3;
当读者借阅了I3,I4,应为其推荐I2。
在这个实例中,本文将支持度假设为1,在实际应用中,支持度需要根据专家和读者的意见进行调整。
4 结语
图书书目的推荐工作意义重大。本文将数据挖掘中的关联规则应用在图书馆的书目推荐中,借助读者的借阅信息,很方便快捷的为读者推荐其感兴趣的图书。这种推荐方法对图书馆和读者来说都具有重要的意义。对图书馆来说,图书馆通过数据挖掘将馆藏图书推荐给读者,提高了馆藏的利用率,突出为读者个性服务宗旨;另外,读者能很容易的拿到自己需要的图书,省时高效,事半功倍。因为每位读者的借阅记录千差万别,而这种推荐方式又是基于读者借阅记录进行推荐的,所以,这种推荐方式能满足每位读者的个性化需求,是所有推荐方式中最具有个性化的一种书目推荐方式。
参考文献:
[1] 荆月敏.基于数据挖掘的图书馆书目推荐服务研究[D].太原:中北大学,2014.
[2] 陈定权.关联规则与图书馆书目推荐[J].情报理论与实践,2009(6):81-84.