劉月學(xué)
[摘 要] 通過(guò)分析推薦書目的作用,在幾種傳統(tǒng)圖書推薦服務(wù)方式的基礎(chǔ)上,嘗試將數(shù)據(jù)挖掘中的關(guān)聯(lián)規(guī)則引入到圖書館書目推薦的工作中。基于借閱實(shí)例,利用關(guān)聯(lián)原則和Apriori算法對(duì)讀者借閱記錄進(jìn)行分析,從而為讀者提供個(gè)性化的圖書推薦服務(wù)。文章指出這種書目推薦方式對(duì)圖書館和讀者都具有重要的意義。
[關(guān)鍵詞] 圖書館;數(shù)據(jù)挖掘;關(guān)聯(lián)規(guī)則;書目;個(gè)性化信息服務(wù)
[中圖分類號(hào)] TP311.13 [文獻(xiàn)標(biāo)識(shí)碼] A [文章編號(hào)] 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
現(xiàn)代圖書館肩負(fù)著為讀者推薦優(yōu)秀書目并同時(shí)提供所推薦圖書的使命。如何從大量的館藏中快速地推薦給讀者適合其閱讀的圖書,是一個(gè)棘手的難題。為了解決此問(wèn)題,本文嘗試?yán)脭?shù)據(jù)挖掘領(lǐng)域的相關(guān)理論和技術(shù)進(jìn)行圖書館的書目推薦工作,從而在技術(shù)層面解決這個(gè)難題。
1 基本概念概述
1.1 圖書推薦服務(wù)概述
目前,傳統(tǒng)的圖書推薦服務(wù)主要有以下幾種方式:
1.1.1 暢銷書排行。這種推薦方式就是按照?qǐng)D書銷售量的多少來(lái)向讀者推薦當(dāng)前最暢銷的書,比如當(dāng)當(dāng)網(wǎng)和亞馬遜等網(wǎng)上書店的暢銷書排行榜等。這種方式是向用戶推薦銷量靠前的書,實(shí)施起來(lái)比較簡(jiǎn)單,便于操作,可信度比較高。
1.1.2 相關(guān)書籍推薦。相關(guān)書籍推薦是以某一本書為基礎(chǔ)的推薦,比如,用戶在借閱或?yàn)g覽某本書時(shí),圖書館的工作人員以這本書為基礎(chǔ),向其推薦與該書的內(nèi)容、主題相關(guān)、相似或相同的書,將這些相關(guān)圖書的基本信息,比如館藏地點(diǎn)、購(gòu)買鏈接等信息反饋給讀者。這種圖書推薦方式屬于主動(dòng)推薦,具有一定的難度,這種推薦方式要求推薦人員具有一定的專業(yè)知識(shí),并且知識(shí)廣泛,熟悉館藏圖書。
1.1.3 基于用戶興趣的推薦。此種推薦模式,是完全基于讀者的閱讀需求和閱讀興趣,匹配最適合的讀者和最適合讀者興趣的圖書,即為人找書、為書找人,核心點(diǎn)在于如何把控不同讀者的閱讀興趣。由于此方式具有較高的主動(dòng)性和個(gè)體性,能根據(jù)不同讀者的需求推薦書目,因此被廣泛應(yīng)用于基于數(shù)據(jù)挖掘的個(gè)性化圖書推薦中。
1.2 數(shù)據(jù)挖掘概述
數(shù)據(jù)挖掘就是從大量的應(yīng)用數(shù)據(jù)中提取出有用的信息、知識(shí)的過(guò)程, 提取出來(lái)的知識(shí)和信息是人們事先不知道的,是通過(guò)對(duì)已知數(shù)據(jù)進(jìn)行分析而發(fā)現(xiàn)的[1]。
數(shù)據(jù)挖掘具有以下三點(diǎn)特征:
第一,它是對(duì)海量的原始數(shù)據(jù)進(jìn)行挖掘提取,比如,在圖書推薦服務(wù)中,數(shù)據(jù)挖掘就是對(duì)大量的讀者借閱原始數(shù)據(jù)進(jìn)行挖掘,進(jìn)而為讀者推薦滿足其個(gè)性化需求的圖書。而在挖掘借閱數(shù)據(jù)之前,還要對(duì)其進(jìn)行整理,因?yàn)檫@些原始數(shù)據(jù)之間本身存在一定的干擾。第二,數(shù)據(jù)挖掘是探索性挖掘,在挖掘之前,并不知道挖掘的結(jié)果是什么,會(huì)怎么樣,不具有驗(yàn)證性。第三,數(shù)據(jù)挖掘是從大量原始數(shù)據(jù)中發(fā)現(xiàn)從未被發(fā)現(xiàn)的信息,其結(jié)果容易被理解和接受,對(duì)人們有用。
數(shù)據(jù)挖掘應(yīng)用在高校圖書館的圖書推薦中,就是分析借閱數(shù)據(jù)的相關(guān)性從而為讀者進(jìn)行個(gè)性化書目推薦。用戶在借閱某些類別的圖書時(shí),往往會(huì)同時(shí)借閱其它類別的圖書,因此,通過(guò)利用數(shù)據(jù)挖掘中的關(guān)聯(lián)分析功能,尋找存在于圖書管理系統(tǒng)中的原始借閱記錄的相關(guān)性,從而得到最適合用戶的推薦書目,這個(gè)過(guò)程稱為基于數(shù)據(jù)挖掘的書目推薦。
1.3 推薦書目數(shù)據(jù)挖掘流程
基于數(shù)據(jù)挖掘的書目推薦主要包括三個(gè)層面:數(shù)據(jù)庫(kù)層、數(shù)據(jù)挖掘?qū)雍陀脩艚缑鎸印?/p>
數(shù)據(jù)庫(kù)層是基礎(chǔ),主要包含讀者的借還書記錄、讀者信息等大量的數(shù)據(jù)。數(shù)據(jù)挖掘就是預(yù)先加工處理數(shù)據(jù)庫(kù)層中的信息,映射成易被讀取的數(shù)據(jù),再傳遞給數(shù)據(jù)挖掘?qū)?。在?shù)據(jù)挖掘?qū)?,需要采取相?yīng)的算法,轉(zhuǎn)換成可執(zhí)行程序,然后對(duì)數(shù)據(jù)庫(kù)層送來(lái)的數(shù)據(jù)實(shí)施挖掘,在一定規(guī)則下完成對(duì)圖書進(jìn)行推薦,同時(shí)將推薦結(jié)果反饋給用戶界面層。在用戶界面層,通過(guò)人和機(jī)器之間的對(duì)話來(lái)傳遞相關(guān)的指令,比如最小支持度和最小置信度等,通過(guò)這些指令等來(lái)調(diào)整圖書推薦結(jié)果的準(zhǔn)確度,并將結(jié)果呈現(xiàn)給用戶。數(shù)據(jù)挖掘的流程如圖1所示。
2 基于數(shù)據(jù)挖掘的書目推薦算法
關(guān)聯(lián)規(guī)則分析是數(shù)據(jù)挖掘中最常用的方法,本文將采用關(guān)聯(lián)規(guī)則進(jìn)行書目推薦。以下是基于數(shù)據(jù)挖掘的書目推薦算法:
關(guān)聯(lián)規(guī)則算法通常可以用項(xiàng)集X和項(xiàng)集Y來(lái)表示,并且項(xiàng)集X和項(xiàng)集Y相互獨(dú)立,不重合,即:X∩Y=?。項(xiàng)集X和項(xiàng)集Y之間的規(guī)則滿足如下的條件:這兩個(gè)項(xiàng)集有用并且這兩個(gè)項(xiàng)集之間的規(guī)則具有一定的普遍性,即有趣度。比如,設(shè)I={i1,i2,…,im}是項(xiàng)的集合,任務(wù)相關(guān)的數(shù)據(jù)D是數(shù)據(jù)庫(kù)事務(wù)的集合,其中每個(gè)事務(wù)T是項(xiàng)的集合,使得T?I。每一個(gè)事務(wù)有一個(gè)標(biāo)志符,稱做TID。設(shè)A是一個(gè)項(xiàng)集,事務(wù)T包含A當(dāng)且僅當(dāng)A?T。關(guān)聯(lián)規(guī)則是形如A=>B的蘊(yùn)涵式,其中A?I,B?I,并且A∩B=?。[2]
2.1 支持度和置信度
當(dāng)規(guī)則A==>B(在事務(wù)集D中成立),具有支持度s,D中事務(wù)包含A∪B(即A和B二者的全部)的百分比,它是概率P(A∪B)也即支持度。
當(dāng)規(guī)則A===>B(在事務(wù)集D中成立),具有置信度c,D中包含A的事務(wù)同時(shí)也包含B的百分比,這是條件概率P(B|A)也即置信度。即
Support(A==>B)=P(A∪B)
Confidence(A==>B)=P(B|A)
為方便統(tǒng)計(jì),筆者用0%~100%之間的值,而不是用0~1之間的值表示支持度和置信度。
2.2 Apriori算法
關(guān)聯(lián)規(guī)則挖掘問(wèn)題通??梢员环殖蓛蓚€(gè)部分:第一部分為找到所有與關(guān)聯(lián)規(guī)則相關(guān)的頻繁項(xiàng)集;第二部分是在第一部分產(chǎn)生頻繁項(xiàng)集的基礎(chǔ)上產(chǎn)生強(qiáng)關(guān)聯(lián)規(guī)則(既滿足最小支持度閾值(min_sup)又能滿足最小置信度閾值(min_conf)的規(guī)則稱做強(qiáng)規(guī)則)。在用關(guān)聯(lián)規(guī)則進(jìn)行挖掘的過(guò)程中,中心問(wèn)題要迅速、高效地找出事務(wù)數(shù)據(jù)庫(kù)中的全部頻繁項(xiàng)集。尋找頻繁項(xiàng)集要采用一些算法,通常采用的經(jīng)典算法是Apriori算法,但采用這種算法會(huì)存在效率低下的問(wèn)題,因?yàn)槊看芜B接產(chǎn)生太多的候選項(xiàng)集,導(dǎo)致在算法運(yùn)行過(guò)程中需要一次一次的掃描數(shù)據(jù)庫(kù),每次都需要對(duì)掃描結(jié)果進(jìn)行判斷和比較,所耗費(fèi)的工作量比較大。
Apriori算法流程:
先由候選項(xiàng)目集產(chǎn)生的逐層迭代,找出頻繁項(xiàng)目集。
輸入:事務(wù)數(shù)據(jù)庫(kù)D和最小支持度min_sop。
輸出:D中的頻繁項(xiàng)目集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;
找到頻繁項(xiàng)目集后,接著產(chǎn)生關(guān)聯(lián)規(guī)則。
算法如下:
算法:產(chǎn)生關(guān)聯(lián)規(guī)則。
輸入:頻繁項(xiàng)目集L和最小置信度閩值(min_conf)。
輸出:關(guān)聯(lián)規(guī)則。
l)對(duì)于L中的每一個(gè)頻繁項(xiàng)目集1,產(chǎn)生1的所有非空子集。
2)對(duì)于1的每一個(gè)非空子集S,如果滿足大于等于最小置信度,則輸出規(guī)則。
3 基于數(shù)據(jù)挖掘的圖書推薦在圖書館的應(yīng)用
3.1 圖書借閱中的關(guān)聯(lián)規(guī)則
在讀者借閱記錄數(shù)據(jù)中,假設(shè)項(xiàng)集I是借閱數(shù)據(jù)的集合,假設(shè)D為借閱歷史數(shù)據(jù)庫(kù),D={R1,R2,…,Rn}。Ri是關(guān)于讀者借閱信息的記錄,并且1≤i≤n,Ri={Ci,Ij},Ci為讀者標(biāo)志,Ij是對(duì)讀者借閱書目信息的記錄,1≤j≤m。設(shè)事務(wù)T包含A,并且滿足A?T。關(guān)聯(lián)規(guī)則是形如Rx∩Ry的蘊(yùn)涵式,其中Rx?D,Ry?D,并且Rx∩Ry=?。
3.2 關(guān)聯(lián)規(guī)則在圖書館中的應(yīng)用實(shí)例
本文通過(guò)簡(jiǎn)單的借閱實(shí)例來(lái)說(shuō)明管理規(guī)則數(shù)據(jù)挖掘如何應(yīng)用在圖書館的書目推薦中。以9位讀者所借閱的5本書為例子,Rx為讀者的編號(hào),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。
在這個(gè)數(shù)據(jù)庫(kù)中,關(guān)聯(lián)規(guī)則的確定需要分兩步來(lái)實(shí)現(xiàn):第一,找出滿足最小支持度的項(xiàng)集,這個(gè)是根據(jù)假設(shè)的最小支持度(假設(shè)為2)來(lái)進(jìn)行查找的;第二,根據(jù)設(shè)定的最小置信度的值來(lái)查找符合其閾值的關(guān)聯(lián)規(guī)則。
假設(shè)書目I1,I2,I3,I4,I5分別代表5本書目信息,Sups代表該書的借閱次數(shù),則I1,I2,I3,I4,I5對(duì)應(yīng)的借閱次數(shù)分別為5、5、7、3、2。
滿足最小支持度計(jì)數(shù)的集合L1,L1為{I1}、{I2}、{I3}、{I4}、{I5},{I1}、{I2}、{I3}、{I4}、{I5}對(duì)應(yīng)的Sups值分別為5、5、7、3、2。
由L1產(chǎn)生滿足最小支持度計(jì)數(shù)的集合C2,C2為{I1,I2}、{I1,I3}、{I1,I4}、{I1,I5}、{I2,I3}、{I2,I4}、{I2,I5}、{I3,I4}、{I3,I5}、{I4,I5},其對(duì)應(yīng)的Sups值分別為2、4、2、1、3、2、1、1、3、0。
滿足最小支持度的L2為{I1,I2}、{I1,I3}、{I1,I5}、{I2,I3}、{I2,I4}、{I2,I5},其對(duì)應(yīng)的Sups值分別為2、4、1、3、2、1。
由頻繁項(xiàng)集產(chǎn)生強(qiáng)關(guān)聯(lián)規(guī)則:
Confidence(A=>B)=P(A|B)=Support count(A∪B)/Support count(A)
基于找出的頻繁項(xiàng)集I{I1,I2,I5}可以產(chǎn)生的強(qiáng)關(guān)聯(lián)規(guī)則:
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%,則產(chǎn)生強(qiáng)規(guī)則。
即是說(shuō),當(dāng)讀者借閱了I1,I5,應(yīng)該為其推薦I2;當(dāng)讀者借閱了I5,應(yīng)該為其推薦I1,I2。
基于找出的頻繁項(xiàng)集I{I2,I3,I4}可以產(chǎn)生的強(qiáng)關(guān)聯(lián)規(guī)則:
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%,則產(chǎn)生強(qiáng)規(guī)則。
也就是說(shuō),當(dāng)讀者借閱了I2,I3,應(yīng)為其推薦I4;
當(dāng)讀者借閱了I2,I4,應(yīng)為其推薦I3;
當(dāng)讀者借閱了I3,I4,應(yīng)為其推薦I2。
在這個(gè)實(shí)例中,本文將支持度假設(shè)為1,在實(shí)際應(yīng)用中,支持度需要根據(jù)專家和讀者的意見進(jìn)行調(diào)整。
4 結(jié)語(yǔ)
圖書書目的推薦工作意義重大。本文將數(shù)據(jù)挖掘中的關(guān)聯(lián)規(guī)則應(yīng)用在圖書館的書目推薦中,借助讀者的借閱信息,很方便快捷的為讀者推薦其感興趣的圖書。這種推薦方法對(duì)圖書館和讀者來(lái)說(shuō)都具有重要的意義。對(duì)圖書館來(lái)說(shuō),圖書館通過(guò)數(shù)據(jù)挖掘?qū)^藏圖書推薦給讀者,提高了館藏的利用率,突出為讀者個(gè)性服務(wù)宗旨;另外,讀者能很容易的拿到自己需要的圖書,省時(shí)高效,事半功倍。因?yàn)槊课蛔x者的借閱記錄千差萬(wàn)別,而這種推薦方式又是基于讀者借閱記錄進(jìn)行推薦的,所以,這種推薦方式能滿足每位讀者的個(gè)性化需求,是所有推薦方式中最具有個(gè)性化的一種書目推薦方式。
參考文獻(xiàn):
[1] 荊月敏.基于數(shù)據(jù)挖掘的圖書館書目推薦服務(wù)研究[D].太原:中北大學(xué),2014.
[2] 陳定權(quán).關(guān)聯(lián)規(guī)則與圖書館書目推薦[J].情報(bào)理論與實(shí)踐,2009(6):81-84.