李紹華,馮晶瑩,王錚
基于數(shù)據(jù)過濾Apriori算法的圖書推薦模型
李紹華1,2,馮晶瑩2,3,王錚4
(1.大連外國語大學(xué) 創(chuàng)新創(chuàng)業(yè)學(xué)院,遼寧 大連 116044;2.大連理工大學(xué) 軟件學(xué)院,遼寧 大連 116024;3.遼寧警察學(xué)院 公安信息系,遼寧 大連 116036;4.大連外國語大學(xué) 軟件學(xué)院,遼寧 大連 116044)
可以從讀者的圖書借閱記錄中挖掘有價值的數(shù)據(jù),識別讀書偏好,提供個性化的圖書借閱推薦服務(wù)。Apriori算法存在單一用戶的單一借閱記錄在整體數(shù)據(jù)集中變成離群點,導(dǎo)致分析時間和內(nèi)存開銷顯著增加的問題。通過設(shè)定置信度、支持度和過濾度的閾值,對原數(shù)據(jù)集進(jìn)行過濾;再使用Apriori算法對新的數(shù)據(jù)集進(jìn)行關(guān)聯(lián)規(guī)則分析。帶有數(shù)據(jù)過濾的關(guān)聯(lián)規(guī)則算法在圖書借閱記錄數(shù)據(jù)量無論大和小的情況下,分析時間更短,內(nèi)存開銷更小,強關(guān)聯(lián)規(guī)則更強。
圖書推薦;個性化;Apriori算法;數(shù)據(jù)過濾
個性化推薦是通過獲取和分析用戶的行為信息,發(fā)掘用戶的行為偏好,進(jìn)而提供個性化的信息服務(wù)和決策支持[1],其已在新聞資訊、電子商務(wù)、自媒體、短視頻等互聯(lián)網(wǎng)平臺得到廣泛應(yīng)用。個性化圖書推薦起源于亞馬遜電子商務(wù)平臺,根據(jù)用戶的瀏覽和購買記錄,為用戶推薦潛在的感興趣的圖書列表[2]。
個性化推薦系統(tǒng)的核心和關(guān)鍵是推薦算法。張凱涵等[3]提出了一種基于社區(qū)專家信息的協(xié)同過濾推薦算法;成保梅[4]從使用者特性和興趣兩方面對推薦算法進(jìn)行個性化改進(jìn);楊明極等[5]提出由獨立循環(huán)神經(jīng)網(wǎng)絡(luò)算法與注意力機制共同得到音樂推薦列表;李昌盛等[6]提出將規(guī)則挖掘與推薦計算銜接;李濤等[7]將興趣度關(guān)聯(lián)規(guī)則挖掘算法應(yīng)用于氣象觀測設(shè)備一致性檢測?;陉P(guān)聯(lián)規(guī)則的推薦算法可以發(fā)現(xiàn)被推薦物品之間的深層關(guān)系,成為推薦領(lǐng)域的研究熱點之一。
關(guān)聯(lián)規(guī)則推薦算法存在受到數(shù)據(jù)量影響大,干擾推薦性能的問題[8]。根據(jù)用戶的借閱行為[9],本文提出基于數(shù)據(jù)過濾Apriori算法的圖書推薦模型,減少數(shù)據(jù)規(guī)模對推薦算法性能的影響,提供個性化圖書推薦服務(wù)。
Apriori算法是經(jīng)典的關(guān)聯(lián)規(guī)則挖掘算法[10],利用逐層搜索的迭代方法找出數(shù)據(jù)庫中項集的關(guān)系,以形成規(guī)則,其過程由連接(類矩陣運算)與剪枝(去掉那些沒必要的中間結(jié)果)組成,算法流程如圖1所示。
Apriori算法主要包含兩個步驟:
步驟1:找出數(shù)據(jù)集中所有的頻繁項集,所選項集的支持度要大于等于最小支持度。
步驟2:根據(jù)頻繁項集產(chǎn)生強關(guān)聯(lián)規(guī)則,規(guī)則必須滿足最小支持度和最小置信度。
支持度代表了關(guān)聯(lián)數(shù)據(jù)在數(shù)據(jù)集中出現(xiàn)的次數(shù)占總數(shù)據(jù)集的比重,如式(3)。
帶有過濾功能的Apriori算法對獲取到的項集和事務(wù)集進(jìn)行過濾,刪除不滿足閾值的書目,將它們單獨存放起來。圖書館的圖書借閱傾向主要是由閱讀群體所決定的,在一個外語類院校的圖書館中,借閱外國語言文學(xué)方面書籍的讀者占比較大,而在一個綜合性大學(xué)的圖書館中,圖書借閱的傾向往往是由頻繁訪問圖書館的用戶所決定的。圖書館的圖書借閱記錄存在著天然的借閱傾向,如果不是一個新的圖書館或者是借閱記錄十分離散,那么它必將擁有一個或多個的借閱傾向。借助過濾的手段,可以將次要的借閱傾向排除或另行討論。
帶有數(shù)據(jù)過濾的Apriori算法流程如圖2所示。
輸入:數(shù)據(jù)集Dataset、支持度閾值supp、置信度閾值conf、過濾度閾值filter_coefficient。
圖2 帶有過濾的Apriori算法流程圖
步驟1:對整個數(shù)據(jù)集進(jìn)行掃描,刪除不足過濾度閾值的項,生成新的數(shù)據(jù)集NewDataset。
步驟2:對新產(chǎn)生的數(shù)據(jù)集進(jìn)行掃描,得到所有出現(xiàn)過的項進(jìn)行展列,作為1項集。
(1)掃描數(shù)據(jù)集并計算出所有項集的支持度。
本文使用的圖書數(shù)據(jù)集來源于網(wǎng)上的開放數(shù)據(jù)集,經(jīng)數(shù)據(jù)過濾后,產(chǎn)生3張核心數(shù)據(jù)表:用戶信息表(用戶編號、用戶名、密碼、角色、性別、年齡)、圖書評分表(評分編號、ISBN號、用戶編號、評分)和圖書表(ISBN號、書名、作者、出版年份、出版社、圖片、描述)。
設(shè)定所有用戶評分大于0的用戶借閱過當(dāng)前書目,則基于這3張表就可以統(tǒng)計出該數(shù)據(jù)庫中的事務(wù)集合,即每名用戶所借閱的評分大于0的借閱記錄。將其寫成SQL,再通過自動化腳本運行后將其存于文本文件中,每一行數(shù)據(jù)都是一個用戶所有的借閱記錄。如圖3, 4所示。圖4中每一行中的數(shù)據(jù)用空格分割,每一項都代表著一本書的ISBN編號。
圖3 用戶ID的部分查詢結(jié)果
圖4 部分事務(wù)集
實驗選取的圖書借閱記錄總數(shù)為7321條記錄。為保證Apriori算法和帶有過濾的Apriori算法能在有限時間和空間內(nèi)運算出結(jié)果現(xiàn)做如下假定:
假定1 兩種算法的最大時間閾值均為10min,超過時間閾值的算法無論最終是否存在強關(guān)聯(lián)規(guī)則的數(shù)據(jù),記為TLE(Time Limit Exceed),代表運行超時。
假定2 兩種算法的最大內(nèi)存使用空間為14GB,當(dāng)占用空間超過14GB時,認(rèn)為設(shè)置了過低的支持度,導(dǎo)致Apriori算法計算出的強關(guān)聯(lián)規(guī)則過多,記為ME(Memory Error),代表超出內(nèi)存限制。
對在相同支持度和置信度下的傳統(tǒng)Apriori算法和帶有過濾的Apriori算法在不同數(shù)據(jù)規(guī)模下所最終產(chǎn)生的強關(guān)聯(lián)規(guī)則數(shù)量、平均提升度進(jìn)行實驗分析比較。
實驗采用截斷數(shù)據(jù)的處理方式,不同的圖書數(shù)據(jù)集得出的實驗結(jié)果可能不同。所截斷的圖書借閱記錄取決于一段時間內(nèi)全體讀者的共同閱讀傾向的,在實驗中存在分析條數(shù)數(shù)量少但強關(guān)聯(lián)規(guī)則數(shù)量多的情況。
表1 過濾閾值為25%的算法對比
表2 過濾閾值為10%的算法對比
針對小于等于5000條分析數(shù)據(jù)進(jìn)行實驗,設(shè)置過濾閾值為25%和10%,兩種算法的分析比較分別如表3和表4所示;平均提升度對比如圖6所示,過濾閾值越低,表明平均提升度越大。由于數(shù)據(jù)量減少,將支持度調(diào)整至0.0003進(jìn)行實驗。可以看出支持度雖然僅提高了0.0001,但由于此時設(shè)置的支持度較低,得到了較多的強關(guān)聯(lián)規(guī)則,也能從側(cè)面證明了Apriori算法不適合進(jìn)行大數(shù)據(jù)集下的數(shù)據(jù)分析。
圖5 7321條的帶有過濾Apriori平均提升度對比
接著分析兩種算法在借閱記錄小于等于3000條并且在支持度變化較大時的實驗結(jié)果,依舊設(shè)置過濾閾值為25%和10%,兩種算法的分析比較分別如表5和表6所示;平均提升度對比如圖7所示,表明過濾閾值越低,平均提升度越大。由于帶有過濾的關(guān)聯(lián)規(guī)則算法是在小數(shù)據(jù)量范圍下進(jìn)行閾值過濾,此時的推薦效果并不理想,當(dāng)過濾閾值取得足夠低時,兩種算法的結(jié)果并無明顯差異,但是帶有過濾機制的Apriori算法會因為分析規(guī)模更小的數(shù)據(jù)集而更高效地得到強關(guān)聯(lián)規(guī)則,表明帶有過濾機制的Apriori算法在較小數(shù)據(jù)量下可以通過分析更少的數(shù)據(jù)來獲取到相同的強關(guān)聯(lián)規(guī)則結(jié)果,大幅提高算法效率,在需要及時反饋的圖書推薦領(lǐng)域中可以起到重要的作用。
表3 5000條數(shù)據(jù)過濾閾值為25%的算法對比
表4 5000條數(shù)據(jù)過濾閾值為10%的算法對比
表5 3000條數(shù)據(jù)過濾閾值為25%的算法對比
表6 3000條數(shù)據(jù)過濾閾值為10%的算法對比
圖6 5000條的帶有過濾Apriori平均提升度對比
圖7 3000條的帶有過濾Apriori平均提升度對比
最后,進(jìn)行兩種算法性能的橫向比較,統(tǒng)計并比較Apriori算法和過濾閾值為25%的Apriori算法從3000條數(shù)據(jù)至6000條數(shù)據(jù)的算法時間開銷和空間開銷。時間開銷的對比如圖8所示,內(nèi)存開銷的對比如圖9所示。
基于過濾Apriori的圖書推薦算法如何通過抽取強規(guī)則來獲取用戶特征,提高推薦性能,挖掘多領(lǐng)域之間的復(fù)雜關(guān)系,并由此給出更好的推薦,將會是未來重要的研究方向之一。
圖8 隨著數(shù)據(jù)集規(guī)模增大時兩種算法運行時間對比
圖9 隨著數(shù)據(jù)集規(guī)模增大時兩種算法運行內(nèi)存對比
[1] 任明. 智能信息系統(tǒng):以關(guān)聯(lián)知識優(yōu)化數(shù)據(jù)建模的方法和實踐[M]. 浙江:浙江大學(xué)出版社,2012.
[2] Linden G, Smith B, York J, et al. Amazon.com recommendations: item-to-item collaborative filtering[J]. Internet Computing, IEEE, 2003, 7(1): 76-80.
[3] 張凱涵,梁吉業(yè),趙興旺,等. 一種基于社區(qū)專家信息的協(xié)同過濾推薦算法[J]. 計算機研究與發(fā)展,2018, 55(05): 78-86.
[4] 成保梅. 基于協(xié)同過濾的電子商務(wù)個性化推薦算法研究[J]. 現(xiàn)代電子技術(shù),2019, 42(20): 37-39, 44.
[5] 楊明極,劉暢,宋澤. 注意力機制與改進(jìn)RNN的混合音樂推薦算法研究[J]. 小型微型計算機系統(tǒng),2020, 41(10): 2235-2240.
[6] 李昌盛,伍之昂,張璐,等. 關(guān)聯(lián)規(guī)則推薦的高效分布式計算框架[J]. 計算機學(xué)報,2019, 42(06): 1218-1231.
[7] 李濤,郁美辰,陸正邦,等. 基于關(guān)聯(lián)規(guī)則挖掘的氣象觀測設(shè)備一致性檢測算法[J]. 電子測量與儀器學(xué)報,2017, 31(10): 1568-1573.
[8] 紀(jì)文璐,王海龍,蘇貴斌,等. 基于關(guān)聯(lián)規(guī)則算法的推薦方法研究綜述[J]. 計算機工程與應(yīng)用,2020, 56(22): 33-41.
[9] 王井. 一種基于訂閱記錄的圖書協(xié)同過濾推薦方法研究[J]. 情報科學(xué),2020, 38(03): 54-59, 77.
[10] Purdom P W, Gucht D V, Groth D P. Average case performance of the apriori algorithm[J]. Siam Journal on Computing, 2004, 33(5): 1223-1260.
A book recommendation model based on data filtering Apriori algorithm
LI Shao-hua1,2,F(xiàn)ENG Jing-ying2,3,WANG Zheng4
(1.School of Innovation and Entrepreneurship, Dalian University of Foreign Languages, Liaoning Dalian 116044, China;2.School of Software Technology, Dalian University of Technology, Liaoning Dalian 116024, China;3.Police Information Department, Liaoning Police Academy, Liaoning Dalian 116036, China;4.School of Software, Dalian University of Foreign Languages, Liaoning Dalian 116044, China)
It can mine valuable data from readers' book borrowing records, identify reading preferences, and then provide personalized book borrowing recommendation service. Apriori algorithm has the problem that the single borrowing record of a single user becomes an outlier in the whole dataset, which leads to the significant increase of analysis time and memory cost. By setting the threshold of confidence, support and filtering, the original data set is filtered, and then the Apriori algorithm is used to analyze the association rules of the new data set. The association rule algorithm with data filtering has shorter analysis time, less memory cost and stronger association rules in the case of large amount and small amount of data.
book recommendation;personalized;Apriori algorithm;data filtering
2020-12-31
國家自然科學(xué)基金(61806038);遼寧省社會科學(xué)規(guī)劃基金(L15CGL009);大連外國語大學(xué)大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃項目(202110172A247)
李紹華(1981-),男,遼寧莊河人,副教授,博士,主要從事圖書情報、專家系統(tǒng)研究,lishaohua@dlufl.edu.cn。
TP391.3
A
1007-984X(2021)04-0038-06