王仲鈺 劉凱俐
摘 要:高校圖書館系統(tǒng)與商業(yè)系統(tǒng)相比,普遍存在用戶信息少、項(xiàng)目評(píng)分嚴(yán)重缺失的問題,極大地影響了個(gè)性化推薦的準(zhǔn)確率。構(gòu)建某高校近200名學(xué)生圖書借閱記錄作為算例,利用多維屬性間關(guān)聯(lián)規(guī)則數(shù)據(jù)挖掘技術(shù),采用協(xié)同過濾算法、關(guān)聯(lián)算法對(duì)不同用戶群體圖書借閱數(shù)據(jù)進(jìn)行分析,探索具有針對(duì)性的圖書推薦服務(wù)策略,提升圖書館服務(wù)能力。
關(guān)鍵詞:圖書推薦;關(guān)聯(lián)算法;協(xié)同過濾算法
中圖分類號(hào):TB 文獻(xiàn)標(biāo)識(shí)碼:A doi:10.19311/j.cnki.1672-3198.2019.35.113
高校圖書館圖書推薦系統(tǒng)旨在根據(jù)用戶閱讀習(xí)慣為其推薦有針對(duì)性的個(gè)性化圖書。目前主流推薦算法主要有協(xié)同過濾算法、關(guān)聯(lián)規(guī)則算法和基于社交網(wǎng)絡(luò)的推薦等。其中協(xié)同過濾算法應(yīng)用非常廣泛,例如Amazon、當(dāng)當(dāng)、淘寶、Ringo音樂推薦系統(tǒng)、Jester推薦系統(tǒng)等。例如Ringo音樂推薦系統(tǒng)先根據(jù)用戶對(duì)音樂的評(píng)分進(jìn)行計(jì)算相似度,再根據(jù)相似度分到不同的興趣組,對(duì)同一組內(nèi)用戶進(jìn)行推薦。Jester推薦系統(tǒng)會(huì)隨機(jī)生成n篇笑話,用戶給這n篇笑話作出評(píng)分,之后系統(tǒng)會(huì)根據(jù)用戶的評(píng)價(jià)找出和其相似的用戶,再根據(jù)相似的用戶對(duì)該用戶作出推薦。協(xié)同過濾算法雖然推薦效果會(huì)隨時(shí)間推移不斷提高,但是面臨數(shù)據(jù)稀疏性和冷啟動(dòng)等問題,影響推薦效果。為此不少學(xué)者對(duì)算法做出了改進(jìn)。比如,有學(xué)者提出利用神經(jīng)網(wǎng)絡(luò)來解決數(shù)據(jù)的稀疏性問題,利用神經(jīng)網(wǎng)絡(luò)來預(yù)測填充空缺值,可以緩解數(shù)據(jù)的稀疏性。也有學(xué)者提出融合項(xiàng)目的屬性和用戶的特征來計(jì)算相似,預(yù)測評(píng)分進(jìn)行推薦,在一定程度上緩解了冷起動(dòng)問題。關(guān)聯(lián)規(guī)則算法最初是針對(duì)商場購物籃問題提出的,意圖挖掘不同商品之間的關(guān)聯(lián)性,優(yōu)化貨架布局以提高銷售額。關(guān)聯(lián)規(guī)則算法包括經(jīng)典的Apriori算法、串行算法、并行分布式算法、基于圖或序列的關(guān)聯(lián)算法等,該算法能夠根據(jù)眾多用戶購買或借閱記錄間物品的關(guān)聯(lián)性,發(fā)掘新的興趣點(diǎn)?;谏缃痪W(wǎng)絡(luò)的推薦核心思想是根據(jù)社交網(wǎng)絡(luò)中熟人興趣點(diǎn)為目標(biāo)用戶提供推薦。有學(xué)者認(rèn)為,產(chǎn)生自熟人間的推薦更容易滿足用戶的需求。典型的利用基于社交網(wǎng)絡(luò)進(jìn)行推薦的例子有Facebook、Twitter、新浪微博等好友推薦系統(tǒng)。
不同推薦算法各有優(yōu)劣,本文擬通過算法融合搭建有效且高效的圖書館推薦系統(tǒng)??紤]到高校圖書系統(tǒng)的用戶一般僅能登錄自己賬戶,社交性不明顯,故采取協(xié)同過濾和關(guān)聯(lián)分析融合的推薦算法,從用戶相似性和書籍關(guān)聯(lián)性兩個(gè)維度進(jìn)行圖書推薦。
有學(xué)者做過類似的研究,例如李文華首先利用Apriori算法計(jì)算圖書相似性,然后根據(jù)用戶的年齡、性別、專業(yè)等特征用協(xié)同過濾算法計(jì)算用戶相似性,結(jié)合兩個(gè)維度相似性進(jìn)行圖書推薦。張戈一則將兩種算法的推薦評(píng)分線性耦合成綜合評(píng)分來進(jìn)行推薦。本文的不同之處在于依據(jù)用戶借閱記錄計(jì)算相似性,同時(shí)為了避免數(shù)據(jù)稀疏性的問題,利用中圖分類法將圖書分成可接受數(shù)量的種類,然后根據(jù)用戶對(duì)不同種類書籍的借閱次數(shù)計(jì)算用戶相似度,推薦最近鄰用戶中最受歡迎的書籍。再利用最近鄰用戶的借閱記錄進(jìn)行關(guān)聯(lián)分析,補(bǔ)充推薦強(qiáng)關(guān)聯(lián)書籍。
1 系統(tǒng)搭建
系統(tǒng)的核心算法包括協(xié)同過濾算法和關(guān)聯(lián)分析算法,前者用于發(fā)掘目標(biāo)用戶的鄰近集并進(jìn)行推薦,后者在此基礎(chǔ)上補(bǔ)充推薦強(qiáng)關(guān)聯(lián)書籍。
1.1 協(xié)同過濾算法
協(xié)同過濾算法包括兩種:基于用戶的協(xié)同過濾和基于物品的協(xié)同過濾,二者關(guān)注點(diǎn)不同。
根據(jù)系統(tǒng)特點(diǎn),采取基于用戶的協(xié)同過濾。算法包括四個(gè)步驟:
(1)構(gòu)建評(píng)分矩陣。用戶的評(píng)分矩陣可以用mxn階矩陣E表示,元素eij表示第i個(gè)用戶對(duì)第j個(gè)物品的評(píng)分。對(duì)于某些不能直接收集用戶評(píng)分?jǐn)?shù)據(jù)的對(duì)象,在使用推薦算法時(shí),可以采取基于時(shí)間、購買、借閱、查詢等行為的評(píng)分?jǐn)?shù)據(jù)確定辦法。值得注意的是,應(yīng)用基于用戶的協(xié)同過濾算法時(shí),若物品維度很高,即n較大,則數(shù)據(jù)稀疏性嚴(yán)重,直接影響推薦算法的有效性。圖書冊數(shù)數(shù)不勝數(shù),以單本圖書為物品對(duì)象則維度之高難以想象,算法基本不可行。故本系統(tǒng)根據(jù)中圖分類法將圖書分成可接受數(shù)量的種類,以此為物品對(duì)象構(gòu)建評(píng)分矩陣。
(2)用戶相似度計(jì)算。計(jì)算用戶相似度的目的是找到目標(biāo)用戶的最近鄰用戶集,計(jì)算方法一般有Pearson相關(guān)性、夾角余弦、修正的夾角余弦方法。考慮到用戶數(shù)量龐大,算法維度高,為提高算法效率采取夾角余弦方法計(jì)算用戶相似度,計(jì)算公式為:
其中xy表示兩個(gè)向量的內(nèi)積,數(shù)值越小則相似度越高。
(3)確定最近鄰用戶集。根據(jù)第二步計(jì)算的用戶相似度搜尋目標(biāo)用戶的最近鄰用戶集。搜索方法一般有K均值方法(又成K-最近鄰算法或者KNN算法,K-Nearest Neighbor)和設(shè)閾值法。KNN算法選擇相似度最大的K個(gè)用戶作為當(dāng)前用戶的相似近鄰,而設(shè)閾值法則將相似度大于閾值的用戶全部納入最近鄰用戶集。
(4)產(chǎn)生推薦列表。采取TOP-N方法產(chǎn)生推薦列表,即統(tǒng)計(jì)最近鄰用戶的所有借閱記錄(排除目標(biāo)用戶已經(jīng)借閱過的書籍),推薦最近鄰用戶集中最受歡迎的N本書。
1.2 關(guān)聯(lián)算法
以目標(biāo)用戶的最近鄰用戶借閱記錄為對(duì)象,采取經(jīng)典Apriori算法挖掘關(guān)聯(lián)規(guī)則。計(jì)算步驟如下:
(1)掃描最近鄰用戶的所有借閱記錄,產(chǎn)生候選1項(xiàng)集。
(2)根據(jù)設(shè)定的最小支持度進(jìn)行剪枝,生成頻繁l項(xiàng)集。
(3)排列組合生成候選2項(xiàng)集,根據(jù)設(shè)定的最小支持度進(jìn)行剪枝,生成頻繁2項(xiàng)集。
(4)重復(fù)以上步驟,直到不再產(chǎn)生頻繁集。
(5)輸出滿足最小支持度和最小置信度的強(qiáng)關(guān)聯(lián)規(guī)則,置信度計(jì)算方法為:
confidenceA=>B=supportA=>BsupportA=support_countA∪Bsupport_countA
(6)根據(jù)強(qiáng)關(guān)聯(lián)規(guī)則,推薦相應(yīng)書籍。
1.3 系統(tǒng)構(gòu)架
首先,對(duì)采用基于用戶的協(xié)同過濾方法對(duì)借書記錄庫中的數(shù)據(jù)進(jìn)行分析處理,得到每個(gè)用戶的臨近集。其次,提取目標(biāo)用戶及其鄰近集用戶的借書記錄,作為后續(xù)推薦分析的數(shù)據(jù)基礎(chǔ)。然后,從兩種路徑進(jìn)行推薦:(1)將鄰近用戶借書目錄按借閱次數(shù)進(jìn)行排序,推薦排名TOP-N的書籍;(2)基于鄰近集用戶的借書記錄進(jìn)行關(guān)聯(lián)分析,找出其中與目標(biāo)用戶借閱記錄有強(qiáng)關(guān)聯(lián)的關(guān)聯(lián)規(guī)則,推薦相關(guān)書籍。最后,將兩種路徑得到的推薦書籍去重,并排除目標(biāo)用戶已借閱的數(shù)據(jù),進(jìn)行綜合推薦。
2 算例應(yīng)用
我們共收集了241名用戶的圖書借閱記錄,經(jīng)過處理后得到一個(gè)241*22矩陣,作為協(xié)同過濾處理的原始數(shù)據(jù),截取部分記錄如圖2所示。
2.1 協(xié)同過濾推薦
(1)用戶相似度計(jì)算。
對(duì)241條用戶的借閱記錄,計(jì)算兩兩之間的余弦相似度,第i行第j列的值為1減去用戶i和用戶j之間的余弦相似度后的值,則數(shù)值越小相似度越高,值為0表示完全相同。計(jì)算結(jié)果表示為一個(gè)241*241的對(duì)稱矩陣,且對(duì)角線上的值均為0。
(2)尋找最近鄰。
選取某一具體用戶為例(用戶ID為149),從用戶數(shù)據(jù)庫中提取該用戶的借閱記錄,如表2所示。其中,第二排表示各類數(shù)據(jù)的借閱總數(shù),第三排表示具體的借閱書籍,用編號(hào)表示。
從用戶庫中找出與該用戶相似度最高的K鄰近集(K=20),其鄰近集由157、183、154、165、153、143、156、142、147、146、160、151、65、141、8、169、124、161、158、145號(hào)用戶組成,讀取他們的借閱記錄,如表3所示。
(3)產(chǎn)生推薦列表。
對(duì)鄰近集用戶所有已借閱的書籍,根據(jù)借閱次數(shù)的大小進(jìn)行排序,推薦排名靠前的幾本書。149號(hào)用戶臨近集書籍借閱統(tǒng)計(jì)情況如表4所示。排除149號(hào)用戶已借閱的,推薦1,3,4,10,12,52這6本書。
2.2 關(guān)聯(lián)規(guī)則推薦
基于20位臨近用戶的借閱記錄進(jìn)行分析,挖掘其中的關(guān)聯(lián)規(guī)則,并對(duì)比用戶149的借閱記錄,找出與其相關(guān)的關(guān)聯(lián)規(guī)則,如圖4所示。所以將1、4、9、10、81這5本書推薦給149號(hào)用戶。
2.3 推薦結(jié)果
綜合以上兩種方法,149號(hào)用戶的最終推薦列表由6本來自協(xié)同過濾推薦列表的圖書和5本來自關(guān)聯(lián)規(guī)則推薦列表的圖書去重后組成,形成的推薦書單包括 1、3、4、9、10、12、52、81這8本書。一本圖書若同時(shí)出現(xiàn)在兩個(gè)推薦列表中,說明該圖書既符合目標(biāo)用戶的相似用戶的閱讀口味,又與目標(biāo)用戶借閱過的圖書關(guān)聯(lián)度很高,因此它的其推薦優(yōu)先度最高(如本例中圖書1,4,10),余下圖書則隨機(jī)排列。
其中,編號(hào)1、3、4、9、10、12這6本書都屬于文學(xué)類書籍,而149號(hào)用戶讀書記錄中最多的也是文學(xué)類的,可以看出推薦結(jié)果與其興趣較一致。編號(hào)81的這本書屬于經(jīng)濟(jì)類,149號(hào)用戶也借閱過經(jīng)濟(jì)類的書,所以也可以認(rèn)為是興趣內(nèi)的推薦。而編號(hào)52的這本書屬于社科類的圖書,149號(hào)用戶借閱歷史中沒有這類的圖書,它是根據(jù)149號(hào)相近用戶的借閱情況進(jìn)行推薦的,所以149號(hào)用戶很有可能會(huì)對(duì)它感興趣,并且這類推薦有利于用戶本身的興趣擴(kuò)展,這也是本文推薦算法的優(yōu)勢之一。
3 總結(jié)
推薦系統(tǒng)在實(shí)際中的應(yīng)用非常廣泛,但在高校圖書館的應(yīng)用不足。具體來說存在著數(shù)據(jù)有效利用率低和圖書館查詢系統(tǒng)無法滿足用戶偏好需求并提供個(gè)性化服務(wù)兩個(gè)方面的問題。因此,本文面向高校圖書館這個(gè)對(duì)象,將協(xié)同過濾算法和關(guān)聯(lián)規(guī)則算法有效結(jié)合起來,構(gòu)建了一種面向高校圖書館的混合圖書推薦系統(tǒng)。
參考文獻(xiàn)
[1]陳淑英,徐劍英,劉玉魏,等.關(guān)聯(lián)規(guī)則應(yīng)用下的高校圖書館圖書推薦服務(wù)[J].圖書館論壇,2018:1-5.
[2]張若冉.基于用戶興趣變化的高校圖書館個(gè)性化圖書推薦研究[J].農(nóng)業(yè)圖書情報(bào)學(xué)刊,2017,29(11):10-14.
[3]郝紅紅.基于關(guān)聯(lián)規(guī)則可視化技術(shù)的個(gè)性圖書推薦系統(tǒng)研究[D].秦皇島:燕山大學(xué),2012.
[4]王小虎.關(guān)聯(lián)規(guī)則挖掘綜述[J].計(jì)算機(jī)工程與應(yīng)用,2003,(33):190-193.
[5]張皓.面向社交網(wǎng)絡(luò)的個(gè)性化推薦算法的研究[D].北京:北京郵電大學(xué),2018.
[6]李文華.基于Apriori關(guān)聯(lián)分析與協(xié)同過濾的圖書推薦算法[J].電腦知識(shí)與技術(shù),2017,13(33):32-33+35.
[7]張戈一,朱月琴,呂鵬飛,等.耦合協(xié)同過濾推薦與關(guān)聯(lián)分析的圖書推薦方法研究[J].中國礦業(yè),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.