高 艷,劉海峰
(山西農(nóng)業(yè)大學(xué)信息學(xué)院 山西 太谷 030800)
高校圖書館擁有大量的學(xué)生圖書流通數(shù)據(jù),具體包含圖書借閱時(shí)間、學(xué)生姓名、學(xué)生專業(yè)、學(xué)生所在院系、借閱圖書名稱、圖書索引號(hào)等,充分利用這些數(shù)據(jù),集合大數(shù)據(jù)技術(shù),可以發(fā)現(xiàn)學(xué)生借閱圖書之間的關(guān)系,預(yù)測(cè)學(xué)生對(duì)圖書的需求情況,有效進(jìn)行學(xué)生個(gè)性化圖書的推薦,從而更好地確定圖書館圖書的購(gòu)置方向,加大圖書館圖書的流通效率,創(chuàng)新圖書館管理服務(wù),更好地發(fā)揮圖書館的作用。下面具體介紹大數(shù)據(jù)相關(guān)算法在圖書流通數(shù)據(jù)中的應(yīng)用。
Apriori算法是最有影響力的關(guān)聯(lián)規(guī)則算法,由Agrawal等[1]在1993年提出。主要應(yīng)用于零售行業(yè)的購(gòu)物行為分析,如著名的沃爾瑪超市的根據(jù)顧客的購(gòu)物行為,發(fā)現(xiàn)啤酒和尿布之間的關(guān)聯(lián)關(guān)系。同理,在圖書的流通數(shù)據(jù)中也可以應(yīng)用Apriori關(guān)聯(lián)規(guī)則算法發(fā)現(xiàn)學(xué)生借閱圖書之間的關(guān)聯(lián)關(guān)系。
Apriori算法是基于兩階段頻集思想實(shí)現(xiàn)的。第一步,尋找所有滿足用戶預(yù)先設(shè)定最小支持度的頻繁項(xiàng)集。第二步,根據(jù)頻繁項(xiàng)集產(chǎn)生強(qiáng)關(guān)聯(lián)規(guī)則,并繼續(xù)尋找滿足用戶設(shè)定最小置信度的強(qiáng)關(guān)聯(lián)規(guī)則[2]。在此應(yīng)用中,支持度是指兩類圖書A和B在總的借閱次數(shù)(N)中同時(shí)出現(xiàn)的概率,即A類與B類圖書同時(shí)被借閱的概率。置信度是指借閱A類圖書同時(shí)借閱B類圖書的概率[3]。
例如:如表1所示5條學(xué)生借閱圖書的數(shù)據(jù),ID為2019533123的學(xué)生同時(shí)借閱了H、K兩類圖書,ID為2019533226的學(xué)生同時(shí)借閱了B、H、K兩類圖書…,利用Apriori規(guī)則就可以算出這些學(xué)生所借圖書類別之間的關(guān)聯(lián)規(guī)則,將支持度設(shè)置為0.5,最后得出關(guān)聯(lián)規(guī)則如表2所示。從表2可以看出,H類圖書和I類圖書以及H類圖書和K類圖書之間有很大的關(guān)聯(lián)關(guān)系,即借閱了K類圖書的學(xué)生一定會(huì)借閱H類圖書,借閱了H類圖書再借閱K類圖書的概率為60%,借閱了I類圖書的學(xué)生一定會(huì)借閱H類圖書,借閱了H類圖書再借閱I類圖書的概率為60%。(注:由于數(shù)據(jù)集只選擇了一少部分?jǐn)?shù)據(jù),所以在計(jì)算出的關(guān)聯(lián)規(guī)則中會(huì)出現(xiàn)置信度為1的結(jié)果,在真實(shí)的大量數(shù)據(jù)集中一般不會(huì)出現(xiàn)置信度為1即100%的情況,即不會(huì)出現(xiàn)借閱了一類圖書一定會(huì)借閱另外一類圖書的情況。另外,圖書類別根據(jù)實(shí)際情況也可以進(jìn)行進(jìn)一步的細(xì)分)。
表1 學(xué)生借閱圖書數(shù)據(jù)集
表2 關(guān)聯(lián)規(guī)則表
得到關(guān)聯(lián)規(guī)則后,圖書館人員在圖書擺放的位置方面可以進(jìn)行一定的調(diào)整,另外也可以根據(jù)關(guān)聯(lián)規(guī)則進(jìn)行圖書的個(gè)性化推薦。
聚類方法包含基于密度的聚類、基于層次的聚類、基于距離的聚類算法等。K-Means算法是典型的基于距離的聚類算法。即該算法通過評(píng)價(jià)兩個(gè)對(duì)象的距離來(lái)確定是否聚為一類。
K-means算法的具體步驟是:
(1)隨機(jī)選取K個(gè)對(duì)象作為初始的聚類中心。
(2)分別計(jì)算樣本中其他樣本對(duì)象到K個(gè)對(duì)象的距離,按照最小距離分配原則進(jìn)行聚類。
(3)根據(jù)聚類結(jié)果,重新計(jì)算K個(gè)聚類中心
(4)重復(fù)上述(2)(3)步驟,直到聚類中心不再發(fā)生變化。
在圖書的流通數(shù)據(jù)中,記錄著讀者的借閱數(shù)量以及讀者借閱圖書的類型信息,利用這些信息可以進(jìn)行K-Means聚類,將讀者分為不同的類別(如可分為經(jīng)常借閱圖書的讀者,借閱圖書量一般的讀者,不經(jīng)常借閱圖書的讀者,根據(jù)實(shí)際情況類別還可以進(jìn)一步細(xì)分),根據(jù)聚類的結(jié)果針對(duì)不同的讀者進(jìn)行不同的服務(wù)[4]。如針對(duì)經(jīng)常借閱和借閱量一般的讀者,進(jìn)一步根據(jù)這些讀者喜歡借閱圖書的類型,圖書館可以在有一些相關(guān)類別新書的時(shí)候,針對(duì)這些讀者進(jìn)行個(gè)性化的推薦,以及針對(duì)現(xiàn)在借用圖書的情況推薦相關(guān)的圖書。針對(duì)不經(jīng)常借閱圖書的讀者,圖書館應(yīng)該加強(qiáng)自身的宣傳和服務(wù),引導(dǎo)更多的讀者走進(jìn)圖書館。
根據(jù)圖書流通數(shù)據(jù)中,可以得到不同種類的圖書被借閱的次數(shù)。根據(jù)圖書被借閱的次數(shù)進(jìn)行K-means聚類,可以將圖書分為不同的類別(如經(jīng)常被借閱的圖書;借閱次數(shù)一般的圖書;不經(jīng)常被借閱的圖書,也可以根據(jù)實(shí)際情況將圖書類別進(jìn)行進(jìn)一步細(xì)分)。針對(duì)經(jīng)常借閱的圖書類別可以在之后的圖書購(gòu)置中加大該類圖書的購(gòu)置,加強(qiáng)這些類別圖書的建設(shè)。針對(duì)不經(jīng)常借閱的圖書還需要圖書管理人員對(duì)其原因進(jìn)行分析,是因?yàn)檫@些圖書出版的時(shí)間比較早,還是其他一些因素,以便做進(jìn)一步的處理。
推薦算法主要包含基于內(nèi)容的推薦算法、基于協(xié)同過濾的推薦算法以及混合推薦算法。
基于內(nèi)容的推薦系統(tǒng)在圖書推薦中的應(yīng)用表現(xiàn)為從圖書流通數(shù)據(jù)中分析用戶之前喜歡的圖書類別,進(jìn)而推薦同樣類別的其他圖書。基于內(nèi)容的推薦算法的原理如圖1所示。根據(jù)圖書流通數(shù)據(jù),分析得出用戶U1喜歡TP(計(jì)算機(jī)技術(shù))類別的圖書B1,于是將TP類別的圖書B2推薦給用戶U1,F(xiàn)0類別的圖書就不推薦給用戶U1了。
圖1 基于內(nèi)容的推薦算法原理
協(xié)同過濾算法包含基于用戶的協(xié)同過濾和基于物品的協(xié)同過濾,基于用戶的協(xié)同過濾在圖書推薦中的應(yīng)用原理如圖2所示,具體表現(xiàn)為如果用戶U1借閱了圖書B1,跟用戶U1興趣一致的用戶U2、U3借閱了圖書B2,則可以把圖書B2推薦給用戶U1。這里怎么得到U1和U2興趣一致,可根據(jù)上面介紹的聚類算法,也可以通過讀者借閱圖書的情況,應(yīng)用余弦公式或者皮爾遜相關(guān)系數(shù)計(jì)算讀者之間的相似度。基于物品的協(xié)同過濾在圖書推薦中的應(yīng)用原理如圖3所示,表現(xiàn)為如果用戶U1借閱了圖書B1,同時(shí)根據(jù)圖書流通數(shù)據(jù)發(fā)現(xiàn)借閱了圖書B1的讀者還有用戶U2、U3,同時(shí)U2、U3用戶都借閱了圖書B2,則可以把圖書B2推薦給用戶U1。根據(jù)以上描述會(huì)發(fā)現(xiàn)基于用戶的協(xié)同過濾主要是根據(jù)跟用戶自己興趣一致的人喜歡的圖書進(jìn)行推薦,而基于物品的協(xié)同過濾是根據(jù)都喜歡同一個(gè)圖書的其他用戶喜歡的圖書進(jìn)行推薦。
圖2 基于用戶的協(xié)同過濾原理
圖3 基于物品的協(xié)同過濾原理
混合推薦算法,即在實(shí)際的應(yīng)用中可以將基于內(nèi)容的推薦算法以及基于用戶和基于物品的推薦算法一起使用給用戶進(jìn)行推薦。
推薦算法是大數(shù)據(jù)技術(shù)在互聯(lián)網(wǎng)中最廣泛的應(yīng)用,將推薦算法應(yīng)用到圖書流通數(shù)據(jù)分析中,可以更好地提高圖書館的個(gè)性化服務(wù)水平,也能提高圖書的流通效率,對(duì)有效利用圖書資源有很重大的作用。
文章在介紹關(guān)聯(lián)規(guī)則原理的基礎(chǔ)上介紹了學(xué)生借閱圖書之間的關(guān)聯(lián)規(guī)則,在實(shí)際的圖書流通數(shù)據(jù)中還可能存在學(xué)生專業(yè)與圖書之間的關(guān)聯(lián)規(guī)則,可以進(jìn)行進(jìn)一步的研究。在聚類算法方面文章只介紹了K-Means算法,還可以具體研究其他聚類算法在圖書流通數(shù)據(jù)分析中的應(yīng)用。在個(gè)性化推薦方面,除了可以根據(jù)圖書流通數(shù)據(jù)進(jìn)行圖書推薦,還可以根據(jù)讀者相關(guān)查詢的日志記錄進(jìn)行進(jìn)一步的推薦。另外這些算法的實(shí)現(xiàn)可以直接應(yīng)用軟件Weka進(jìn)行實(shí)現(xiàn),也可以用編程語(yǔ)言及相關(guān)庫(kù)來(lái)完成(如用python語(yǔ)言及sklearn庫(kù)),如果實(shí)際中圖書流通數(shù)據(jù)量特別大,還可以在hadoop大數(shù)據(jù)平臺(tái)基礎(chǔ)上應(yīng)用Mahout組件來(lái)完成[5]。