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