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