王仲鈺 劉凱俐



摘 要:高校圖書館系統與商業系統相比,普遍存在用戶信息少、項目評分嚴重缺失的問題,極大地影響了個性化推薦的準確率。構建某高校近200名學生圖書借閱記錄作為算例,利用多維屬性間關聯規則數據挖掘技術,采用協同過濾算法、關聯算法對不同用戶群體圖書借閱數據進行分析,探索具有針對性的圖書推薦服務策略,提升圖書館服務能力。
關鍵詞:圖書推薦;關聯算法;協同過濾算法
中圖分類號:TB 文獻標識碼:A doi:10.19311/j.cnki.1672-3198.2019.35.113
高校圖書館圖書推薦系統旨在根據用戶閱讀習慣為其推薦有針對性的個性化圖書。目前主流推薦算法主要有協同過濾算法、關聯規則算法和基于社交網絡的推薦等。其中協同過濾算法應用非常廣泛,例如Amazon、當當、淘寶、Ringo音樂推薦系統、Jester推薦系統等。例如Ringo音樂推薦系統先根據用戶對音樂的評分進行計算相似度,再根據相似度分到不同的興趣組,對同一組內用戶進行推薦。Jester推薦系統會隨機生成n篇笑話,用戶給這n篇笑話作出評分,之后系統會根據用戶的評價找出和其相似的用戶,再根據相似的用戶對該用戶作出推薦。協同過濾算法雖然推薦效果會隨時間推移不斷提高,但是面臨數據稀疏性和冷啟動等問題,影響推薦效果。為此不少學者對算法做出了改進。比如,有學者提出利用神經網絡來解決數據的稀疏性問題,利用神經網絡來預測填充空缺值,可以緩解數據的稀疏性。也有學者提出融合項目的屬性和用戶的特征來計算相似,預測評分進行推薦,在一定程度上緩解了冷起動問題。關聯規則算法最初是針對商場購物籃問題提出的,意圖挖掘不同商品之間的關聯性,優化貨架布局以提高銷售額。關聯規則算法包括經典的Apriori算法、串行算法、并行分布式算法、基于圖或序列的關聯算法等,該算法能夠根據眾多用戶購買或借閱記錄間物品的關聯性,發掘新的興趣點。基于社交網絡的推薦核心思想是根據社交網絡中熟人興趣點為目標用戶提供推薦。有學者認為,產生自熟人間的推薦更容易滿足用戶的需求。典型的利用基于社交網絡進行推薦的例子有Facebook、Twitter、新浪微博等好友推薦系統。
不同推薦算法各有優劣,本文擬通過算法融合搭建有效且高效的圖書館推薦系統。考慮到高校圖書系統的用戶一般僅能登錄自己賬戶,社交性不明顯,故采取協同過濾和關聯分析融合的推薦算法,從用戶相似性和書籍關聯性兩個維度進行圖書推薦。
有學者做過類似的研究,例如李文華首先利用Apriori算法計算圖書相似性,然后根據用戶的年齡、性別、專業等特征用協同過濾算法計算用戶相似性,結合兩個維度相似性進行圖書推薦。張戈一則將兩種算法的推薦評分線性耦合成綜合評分來進行推薦。本文的不同之處在于依據用戶借閱記錄計算相似性,同時為了避免數據稀疏性的問題,利用中圖分類法將圖書分成可接受數量的種類,然后根據用戶對不同種類書籍的借閱次數計算用戶相似度,推薦最近鄰用戶中最受歡迎的書籍。再利用最近鄰用戶的借閱記錄進行關聯分析,補充推薦強關聯書籍。
1 系統搭建
系統的核心算法包括協同過濾算法和關聯分析算法,前者用于發掘目標用戶的鄰近集并進行推薦,后者在此基礎上補充推薦強關聯書籍。
1.1 協同過濾算法
協同過濾算法包括兩種:基于用戶的協同過濾和基于物品的協同過濾,二者關注點不同。
根據系統特點,采取基于用戶的協同過濾。算法包括四個步驟:
(1)構建評分矩陣。用戶的評分矩陣可以用mxn階矩陣E表示,元素eij表示第i個用戶對第j個物品的評分。對于某些不能直接收集用戶評分數據的對象,在使用推薦算法時,可以采取基于時間、購買、借閱、查詢等行為的評分數據確定辦法。值得注意的是,應用基于用戶的協同過濾算法時,若物品維度很高,即n較大,則數據稀疏性嚴重,直接影響推薦算法的有效性。圖書冊數數不勝數,以單本圖書為物品對象則維度之高難以想象,算法基本不可行。故本系統根據中圖分類法將圖書分成可接受數量的種類,以此為物品對象構建評分矩陣。
(2)用戶相似度計算。計算用戶相似度的目的是找到目標用戶的最近鄰用戶集,計算方法一般有Pearson相關性、夾角余弦、修正的夾角余弦方法。考慮到用戶數量龐大,算法維度高,為提高算法效率采取夾角余弦方法計算用戶相似度,計算公式為:
其中xy表示兩個向量的內積,數值越小則相似度越高。
(3)確定最近鄰用戶集。根據第二步計算的用戶相似度搜尋目標用戶的最近鄰用戶集。搜索方法一般有K均值方法(又成K-最近鄰算法或者KNN算法,K-Nearest Neighbor)和設閾值法。KNN算法選擇相似度最大的K個用戶作為當前用戶的相似近鄰,而設閾值法則將相似度大于閾值的用戶全部納入最近鄰用戶集。
(4)產生推薦列表。采取TOP-N方法產生推薦列表,即統計最近鄰用戶的所有借閱記錄(排除目標用戶已經借閱過的書籍),推薦最近鄰用戶集中最受歡迎的N本書。
1.2 關聯算法
以目標用戶的最近鄰用戶借閱記錄為對象,采取經典Apriori算法挖掘關聯規則。計算步驟如下:
(1)掃描最近鄰用戶的所有借閱記錄,產生候選1項集。
(2)根據設定的最小支持度進行剪枝,生成頻繁l項集。
(3)排列組合生成候選2項集,根據設定的最小支持度進行剪枝,生成頻繁2項集。
(4)重復以上步驟,直到不再產生頻繁集。
(5)輸出滿足最小支持度和最小置信度的強關聯規則,置信度計算方法為:
confidenceA=>B=supportA=>BsupportA=support_countA∪Bsupport_countA
(6)根據強關聯規則,推薦相應書籍。
1.3 系統構架
首先,對采用基于用戶的協同過濾方法對借書記錄庫中的數據進行分析處理,得到每個用戶的臨近集。其次,提取目標用戶及其鄰近集用戶的借書記錄,作為后續推薦分析的數據基礎。然后,從兩種路徑進行推薦:(1)將鄰近用戶借書目錄按借閱次數進行排序,推薦排名TOP-N的書籍;(2)基于鄰近集用戶的借書記錄進行關聯分析,找出其中與目標用戶借閱記錄有強關聯的關聯規則,推薦相關書籍。最后,將兩種路徑得到的推薦書籍去重,并排除目標用戶已借閱的數據,進行綜合推薦。
2 算例應用
我們共收集了241名用戶的圖書借閱記錄,經過處理后得到一個241*22矩陣,作為協同過濾處理的原始數據,截取部分記錄如圖2所示。
2.1 協同過濾推薦
(1)用戶相似度計算。
對241條用戶的借閱記錄,計算兩兩之間的余弦相似度,第i行第j列的值為1減去用戶i和用戶j之間的余弦相似度后的值,則數值越小相似度越高,值為0表示完全相同。計算結果表示為一個241*241的對稱矩陣,且對角線上的值均為0。
(2)尋找最近鄰。
選取某一具體用戶為例(用戶ID為149),從用戶數據庫中提取該用戶的借閱記錄,如表2所示。其中,第二排表示各類數據的借閱總數,第三排表示具體的借閱書籍,用編號表示。
從用戶庫中找出與該用戶相似度最高的K鄰近集(K=20),其鄰近集由157、183、154、165、153、143、156、142、147、146、160、151、65、141、8、169、124、161、158、145號用戶組成,讀取他們的借閱記錄,如表3所示。
(3)產生推薦列表。
對鄰近集用戶所有已借閱的書籍,根據借閱次數的大小進行排序,推薦排名靠前的幾本書。149號用戶臨近集書籍借閱統計情況如表4所示。排除149號用戶已借閱的,推薦1,3,4,10,12,52這6本書。
2.2 關聯規則推薦
基于20位臨近用戶的借閱記錄進行分析,挖掘其中的關聯規則,并對比用戶149的借閱記錄,找出與其相關的關聯規則,如圖4所示。所以將1、4、9、10、81這5本書推薦給149號用戶。
2.3 推薦結果
綜合以上兩種方法,149號用戶的最終推薦列表由6本來自協同過濾推薦列表的圖書和5本來自關聯規則推薦列表的圖書去重后組成,形成的推薦書單包括 1、3、4、9、10、12、52、81這8本書。一本圖書若同時出現在兩個推薦列表中,說明該圖書既符合目標用戶的相似用戶的閱讀口味,又與目標用戶借閱過的圖書關聯度很高,因此它的其推薦優先度最高(如本例中圖書1,4,10),余下圖書則隨機排列。
其中,編號1、3、4、9、10、12這6本書都屬于文學類書籍,而149號用戶讀書記錄中最多的也是文學類的,可以看出推薦結果與其興趣較一致。編號81的這本書屬于經濟類,149號用戶也借閱過經濟類的書,所以也可以認為是興趣內的推薦。而編號52的這本書屬于社科類的圖書,149號用戶借閱歷史中沒有這類的圖書,它是根據149號相近用戶的借閱情況進行推薦的,所以149號用戶很有可能會對它感興趣,并且這類推薦有利于用戶本身的興趣擴展,這也是本文推薦算法的優勢之一。
3 總結
推薦系統在實際中的應用非常廣泛,但在高校圖書館的應用不足。具體來說存在著數據有效利用率低和圖書館查詢系統無法滿足用戶偏好需求并提供個性化服務兩個方面的問題。因此,本文面向高校圖書館這個對象,將協同過濾算法和關聯規則算法有效結合起來,構建了一種面向高校圖書館的混合圖書推薦系統。
參考文獻
[1]陳淑英,徐劍英,劉玉魏,等.關聯規則應用下的高校圖書館圖書推薦服務[J].圖書館論壇,2018:1-5.
[2]張若冉.基于用戶興趣變化的高校圖書館個性化圖書推薦研究[J].農業圖書情報學刊,2017,29(11):10-14.
[3]郝紅紅.基于關聯規則可視化技術的個性圖書推薦系統研究[D].秦皇島:燕山大學,2012.
[4]王小虎.關聯規則挖掘綜述[J].計算機工程與應用,2003,(33):190-193.
[5]張皓.面向社交網絡的個性化推薦算法的研究[D].北京:北京郵電大學,2018.
[6]李文華.基于Apriori關聯分析與協同過濾的圖書推薦算法[J].電腦知識與技術,2017,13(33):32-33+35.
[7]張戈一,朱月琴,呂鵬飛,等.耦合協同過濾推薦與關聯分析的圖書推薦方法研究[J].中國礦業,2017,26(S1):425-430.
[8]Matook S,Brown S A,Rolf J.Forming an Intention to Act on Recommendations Given via Online Social Networks[J].European Journal of Information Systems,2015,24(1):76-92.
[9]Sarwar B.,Karypis G.,Konstan J.,et al.Item-based collaborative filtering recommendation algorithms[J].Proc 10th Int'1 WWW Conf,Hong Kong,2001:1-5.
[10]T.Q.Lee,Y.Park,Y.T.Park.A time-based approach to effective recommender systems using implicit feedback[J].Expert Systems with Applications,2008,34(4):3055-3062.
[11]Y.L.Chen,L.C.Cheng.A novel collaborative filtering approach for recommending ranked items[J].Expert Systems with Applications,2008,34(4):2396-2405.
[12]M.H.Yang,Z.M.Gu.Personalized recommendation based on partial similarity of interests[J].Advanced Data Mining and Applications Proceedings,2006,(3):509-516.