高 艷,劉海峰
(山西農業大學信息學院 山西 太谷 030800)
高校圖書館擁有大量的學生圖書流通數據,具體包含圖書借閱時間、學生姓名、學生專業、學生所在院系、借閱圖書名稱、圖書索引號等,充分利用這些數據,集合大數據技術,可以發現學生借閱圖書之間的關系,預測學生對圖書的需求情況,有效進行學生個性化圖書的推薦,從而更好地確定圖書館圖書的購置方向,加大圖書館圖書的流通效率,創新圖書館管理服務,更好地發揮圖書館的作用。下面具體介紹大數據相關算法在圖書流通數據中的應用。
Apriori算法是最有影響力的關聯規則算法,由Agrawal等[1]在1993年提出。主要應用于零售行業的購物行為分析,如著名的沃爾瑪超市的根據顧客的購物行為,發現啤酒和尿布之間的關聯關系。同理,在圖書的流通數據中也可以應用Apriori關聯規則算法發現學生借閱圖書之間的關聯關系。
Apriori算法是基于兩階段頻集思想實現的。第一步,尋找所有滿足用戶預先設定最小支持度的頻繁項集。第二步,根據頻繁項集產生強關聯規則,并繼續尋找滿足用戶設定最小置信度的強關聯規則[2]。在此應用中,支持度是指兩類圖書A和B在總的借閱次數(N)中同時出現的概率,即A類與B類圖書同時被借閱的概率。置信度是指借閱A類圖書同時借閱B類圖書的概率[3]。
例如:如表1所示5條學生借閱圖書的數據,ID為2019533123的學生同時借閱了H、K兩類圖書,ID為2019533226的學生同時借閱了B、H、K兩類圖書…,利用Apriori規則就可以算出這些學生所借圖書類別之間的關聯規則,將支持度設置為0.5,最后得出關聯規則如表2所示。從表2可以看出,H類圖書和I類圖書以及H類圖書和K類圖書之間有很大的關聯關系,即借閱了K類圖書的學生一定會借閱H類圖書,借閱了H類圖書再借閱K類圖書的概率為60%,借閱了I類圖書的學生一定會借閱H類圖書,借閱了H類圖書再借閱I類圖書的概率為60%。(注:由于數據集只選擇了一少部分數據,所以在計算出的關聯規則中會出現置信度為1的結果,在真實的大量數據集中一般不會出現置信度為1即100%的情況,即不會出現借閱了一類圖書一定會借閱另外一類圖書的情況。另外,圖書類別根據實際情況也可以進行進一步的細分)。

表1 學生借閱圖書數據集

表2 關聯規則表
得到關聯規則后,圖書館人員在圖書擺放的位置方面可以進行一定的調整,另外也可以根據關聯規則進行圖書的個性化推薦。
聚類方法包含基于密度的聚類、基于層次的聚類、基于距離的聚類算法等。K-Means算法是典型的基于距離的聚類算法。即該算法通過評價兩個對象的距離來確定是否聚為一類。
K-means算法的具體步驟是:
(1)隨機選取K個對象作為初始的聚類中心。
(2)分別計算樣本中其他樣本對象到K個對象的距離,按照最小距離分配原則進行聚類。
(3)根據聚類結果,重新計算K個聚類中心
(4)重復上述(2)(3)步驟,直到聚類中心不再發生變化。
在圖書的流通數據中,記錄著讀者的借閱數量以及讀者借閱圖書的類型信息,利用這些信息可以進行K-Means聚類,將讀者分為不同的類別(如可分為經常借閱圖書的讀者,借閱圖書量一般的讀者,不經常借閱圖書的讀者,根據實際情況類別還可以進一步細分),根據聚類的結果針對不同的讀者進行不同的服務[4]。如針對經常借閱和借閱量一般的讀者,進一步根據這些讀者喜歡借閱圖書的類型,圖書館可以在有一些相關類別新書的時候,針對這些讀者進行個性化的推薦,以及針對現在借用圖書的情況推薦相關的圖書。針對不經常借閱圖書的讀者,圖書館應該加強自身的宣傳和服務,引導更多的讀者走進圖書館。
根據圖書流通數據中,可以得到不同種類的圖書被借閱的次數。根據圖書被借閱的次數進行K-means聚類,可以將圖書分為不同的類別(如經常被借閱的圖書;借閱次數一般的圖書;不經常被借閱的圖書,也可以根據實際情況將圖書類別進行進一步細分)。針對經常借閱的圖書類別可以在之后的圖書購置中加大該類圖書的購置,加強這些類別圖書的建設。針對不經常借閱的圖書還需要圖書管理人員對其原因進行分析,是因為這些圖書出版的時間比較早,還是其他一些因素,以便做進一步的處理。
推薦算法主要包含基于內容的推薦算法、基于協同過濾的推薦算法以及混合推薦算法。
基于內容的推薦系統在圖書推薦中的應用表現為從圖書流通數據中分析用戶之前喜歡的圖書類別,進而推薦同樣類別的其他圖書。基于內容的推薦算法的原理如圖1所示。根據圖書流通數據,分析得出用戶U1喜歡TP(計算機技術)類別的圖書B1,于是將TP類別的圖書B2推薦給用戶U1,F0類別的圖書就不推薦給用戶U1了。

圖1 基于內容的推薦算法原理
協同過濾算法包含基于用戶的協同過濾和基于物品的協同過濾,基于用戶的協同過濾在圖書推薦中的應用原理如圖2所示,具體表現為如果用戶U1借閱了圖書B1,跟用戶U1興趣一致的用戶U2、U3借閱了圖書B2,則可以把圖書B2推薦給用戶U1。這里怎么得到U1和U2興趣一致,可根據上面介紹的聚類算法,也可以通過讀者借閱圖書的情況,應用余弦公式或者皮爾遜相關系數計算讀者之間的相似度。基于物品的協同過濾在圖書推薦中的應用原理如圖3所示,表現為如果用戶U1借閱了圖書B1,同時根據圖書流通數據發現借閱了圖書B1的讀者還有用戶U2、U3,同時U2、U3用戶都借閱了圖書B2,則可以把圖書B2推薦給用戶U1。根據以上描述會發現基于用戶的協同過濾主要是根據跟用戶自己興趣一致的人喜歡的圖書進行推薦,而基于物品的協同過濾是根據都喜歡同一個圖書的其他用戶喜歡的圖書進行推薦。

圖2 基于用戶的協同過濾原理

圖3 基于物品的協同過濾原理
混合推薦算法,即在實際的應用中可以將基于內容的推薦算法以及基于用戶和基于物品的推薦算法一起使用給用戶進行推薦。
推薦算法是大數據技術在互聯網中最廣泛的應用,將推薦算法應用到圖書流通數據分析中,可以更好地提高圖書館的個性化服務水平,也能提高圖書的流通效率,對有效利用圖書資源有很重大的作用。
文章在介紹關聯規則原理的基礎上介紹了學生借閱圖書之間的關聯規則,在實際的圖書流通數據中還可能存在學生專業與圖書之間的關聯規則,可以進行進一步的研究。在聚類算法方面文章只介紹了K-Means算法,還可以具體研究其他聚類算法在圖書流通數據分析中的應用。在個性化推薦方面,除了可以根據圖書流通數據進行圖書推薦,還可以根據讀者相關查詢的日志記錄進行進一步的推薦。另外這些算法的實現可以直接應用軟件Weka進行實現,也可以用編程語言及相關庫來完成(如用python語言及sklearn庫),如果實際中圖書流通數據量特別大,還可以在hadoop大數據平臺基礎上應用Mahout組件來完成[5]。