劉宇航
概要:在大數(shù)據(jù)時代下,越來越多的公共圖書館的服務正在經(jīng)歷由業(yè)務驅(qū)動轉(zhuǎn)型為數(shù)據(jù)驅(qū)動,傳統(tǒng)的圖書推薦多由工作人員進行整理后推薦。文章提出一個基于協(xié)同過濾的推薦算法,利用讀者借閱行為(預約、借書、還書)數(shù)據(jù)進行分析,構(gòu)建出讀者行為評分矩陣、圖書相似矩陣,再利用兩個矩陣進行推薦的方法。結(jié)合廣西壯族自治區(qū)圖書館業(yè)務數(shù)據(jù)測試,該方法確實可以。
關(guān)鍵詞:協(xié)同過濾 讀者行為 公共圖書館 推薦算法
引言
在當今大數(shù)據(jù)時代下,數(shù)據(jù)驅(qū)動使得服務模式發(fā)生變化。公共圖書館的服務策略應該由傳統(tǒng)的被動式服務轉(zhuǎn)變成主動式服務,而主動提供服務的其中一個特征就是提供推送式推薦服務。協(xié)同過濾推薦算法是推薦算法中的經(jīng)典,其實現(xiàn)通常依賴于構(gòu)建用戶物品評分矩陣,然后對用戶偏好或相似物品分析,從而實現(xiàn)推薦。在此基礎的推薦方式上,衍生出許多分析不同特征實現(xiàn)推薦的方式。一種是通過精準把握讀者興趣偏好,實現(xiàn)成功推薦是推薦。其是通過分析資源內(nèi)容和跟蹤讀者在閱讀時產(chǎn)生的瀏覽行為兩個維度進行相似度匹配,從而實現(xiàn)成功推薦。但是這種跟蹤讀者瀏覽行為的方式,局限于數(shù)字資源,而面對實體文獻資料的推薦就顯得力不從心;一種是通過分析圖書語義,既利用LDA計算圖書摘要語義建立偏好模型,實現(xiàn)推薦。這種方式可以利用商業(yè)數(shù)據(jù)庫等方式輕松獲取該文獻的摘要建立模型,但是,該思想的提出是基于高校圖書館,兩類圖書館的定位存在本質(zhì)的不同,因此該算法能否很好的服務公共圖書館有待進一步的研究。還有一種是基于讀者主動標記標簽進行圖書推薦,根據(jù)讀者對興趣資源主動標注,然后利用余弦相似度找到讀者標注的臨近標簽進行資源的推薦。該方法充分利用了讀者的主觀能動性,在一段時間內(nèi)可以較快的推薦出較為準確的資源,但是從長遠來看,該推薦思路極大的受制于讀者主觀意識,隨著主觀意識的改變.可能最后回歸成“RSS式”的推薦。
針對上述研究所產(chǎn)生的問題,本文擬利用一種從多個維度出發(fā),分析讀者行為的方式進行圖書的推薦。首先找到當前圖書館活躍的讀者,盡可能減少不活躍讀者的行為干擾,然后在根據(jù)活躍讀者的行為習慣找到合適的推薦該推薦算法所需的數(shù)據(jù)集公共圖書館易于采集,且該算法從更客觀的角度為讀者推薦圖書,避免了主觀意識對推薦結(jié)果的過分影響,形成“扎堆”推薦。
1基于讀者行為推薦方法
1.1 獲取數(shù)據(jù)集
公共圖書館面向的讀者群體注定公共圖書館的讀者人員成分較為復雜,一些讀者甚至呈現(xiàn)出周期性的變化,因此過多考慮非活躍讀者和未充分考慮活躍讀者都會影響推薦的效果。本文通過讀者借閱行為提出了一套活躍度的計算方法,獲取單位時間可供進行行為分析的數(shù)據(jù)集。通過選取合理的數(shù)據(jù)集,可以一定程度上避免不活躍的用戶和刷分的用戶的行為數(shù)據(jù)的干擾,為實現(xiàn)更為精準的推薦作保障。
通過式l表示出可供分析的數(shù)據(jù)集。Uo表示可供分析的讀者行為的數(shù)據(jù)集,A表示讀者活躍度的平均值,σ表示讀者標準差。
最后選取正負一個標準差內(nèi)的數(shù)據(jù)集作為該讀者可供分析行為的數(shù)據(jù)集。
1.2 方法的描述
協(xié)同過濾算法主要是依據(jù)用戶評分進行推薦的,但本文介紹的是利用讀者行為數(shù)據(jù)進行推薦的,因此需要將用戶行為數(shù)據(jù)轉(zhuǎn)換為潛在的評分。
(1)行為評分的生成
在公共圖書館讀者行為主要產(chǎn)生在文獻的流通上,而流通的主要行為就是預約、借閱和續(xù)借。因此通過選擇合適的顆粒度,可以將借閱時長與續(xù)借時長轉(zhuǎn)換為具體的評分,同時將評分與該單位時間的活躍度相乘可得最終評分,如果用B表示借閱時長,R表示續(xù)借時長,P表示允許預約最大時限和完成預約所需時間的差值,A表示該行為所在時間段的活躍度,可以得到評分公式:
由于并非所有讀者都會閱讀所有的圖書,且并非所有的圖書都有讀者進行借閱,因此Anm是一個稀疏矩陣。
(3)構(gòu)建圖書相似度矩陣
公共圖書館的文獻資料都會使用分類法進行分類,這是判別圖書分類的一個比較重要的依據(jù),但僅此判別是遠遠不足的,還需要從一些客觀條件進行判別。本文還在已進行分類的圖書中,再通過出版時間、頁數(shù)組成三個維度計算出閔可夫斯基距離作為相似度的判別依據(jù)。
由于閔可夫斯基距離計算結(jié)果大小與相似度成反比,因此為方便后續(xù)計算,以D表示閔可夫斯基距離,詳見式4,S表示相似度,可得公式:s=1/D。 當D無限趨近于0時,S趨近于l,當D趨近于正無窮時S趨近于0。本文從三個維度進行計算,因此在式4中P=3。
2實驗過程及討論
2.1 數(shù)據(jù)來源與環(huán)境約束
為驗證基于讀者行為的協(xié)同過濾推薦算法,從廣西壯族自治區(qū)圖書館近5年的業(yè)務經(jīng)辦系統(tǒng)部分業(yè)務數(shù)據(jù)中抽取出實驗數(shù)據(jù)集,部分業(yè)務經(jīng)辦數(shù)據(jù)有83055個讀者和5831720條行為記錄,從中隨機抽取出1000個讀者作為實驗數(shù)據(jù)集。
在讀者行為評分中,活躍度的顆粒度、預約時長、借閱時長、續(xù)借時長的確定,均是建立在廣西壯族自治區(qū)圖書館現(xiàn)行制度下?;钴S度顆粒度約定為1個自然月,單位時長約定為12個月。預約時長、借閱時長和續(xù)借時長分別約定為7、30和10個自然日。根據(jù)上述約定,單個讀者最高評分 Rating max =A(B+ R+P)=1* (30+ 10+7) =47分,最低分為0分。
2.2構(gòu)建讀者行為評分矩陣
通過對數(shù)據(jù)集進行計算出得到用于活躍度的參數(shù)表,如表l。然后根據(jù)活躍度上下限判別讀者行為記錄是否納入計算,納入范圍的行為記錄記人數(shù)據(jù)集。圖1和圖2分別為讀者有效記錄活躍度的散點圖和抖動圖。根據(jù)散點圖可以得到隨機抽取的有效讀者行為記錄活躍度分布較為平均,以y軸負方向為收斂趨勢,符合廣西壯族自治區(qū)圖書館的讀者行為趨勢,因此隨機抽取讀者行為樣本具有代表性。
根據(jù)原始數(shù)據(jù),通過活躍度和行為評分的乘積,得到有效的讀者行為評分,生成矩陣。將實驗數(shù)據(jù)有效的讀者行為評分通過熱力圖繪制后,得到圖3。
2.3 構(gòu)建圖書相似度矩陣廣西壯族自治區(qū)圖書館是依據(jù)第五版《中國圖書館分類法》進行分類,因此將圖書分類法映射為數(shù)據(jù)作為一個維度,配合出版年份,頁數(shù)三個維度計算出相似度。
根據(jù)現(xiàn)有資源庫,隨機抽取出2000本圖書(包含上述讀者行為關(guān)系的圖書),構(gòu)建出相似矩陣。由于相似矩陣龐大,此處采用MysoL數(shù)據(jù)庫進行存儲。將抽取的樣本數(shù)目的閔可夫斯基距離繪制成熱力圖(如圖4),橫坐標軸和縱坐標軸表示2000本書目映射編號。由于橫縱坐標均相同,因此矩陣呈明顯對稱性。
2.4生成推薦矩陣
在獲取了行為評分矩陣和相似度矩陣的基礎上,可以將兩個矩陣相乘,所得的乘積就是加權(quán)評分,而分數(shù)高的就是推薦矩陣。此處通過SQLAlchemy創(chuàng)建數(shù)據(jù)庫表模型,再利用python的numpy庫完成兩個矩陣的相乘得到推薦矩陣。以橫坐標軸為圖書映射編號,縱坐標軸為讀者映射編號繪制出推薦矩陣熱力圖(如圖5所示)。
每個讀者根據(jù)預先設置好的閾值,可以從推薦矩陣中找到超過閾值的圖書,然后將這類圖書推送給對應讀者,即可實現(xiàn)圖書的推薦。
3結(jié)語
個性圖書的推薦屬于是未來的發(fā)展趨勢,本方法能夠利用讀者群體自身的行為動作建立數(shù)據(jù)模型,在根據(jù)此模型對其他相似讀者進行推薦。下一步將對讀者異常行為(預期、損壞等)等動作進行分析,完善推薦模型。
參考文獻
[1]景民昌,于迎輝,基于借閱時間評分的協(xié)同圖書推薦模型與應用[J].圖書情報工作,2012,56(03):117-120.
[2]嚴凡,張霽月.基于圖書語義信息的推薦方法研究[J].圖書館學研究,2018(21):40-45.
[3]向菲,彭昱欣,邰楊芳,一種基于協(xié)同過濾的圖書資源標簽推薦方法研究[J].圖書館學研究,2018(15):46-52.
[4]DeGang Xu,Pan-Lei Zhao.Chun-Hua Yang,WeiHuaGui.Jian-Jun He.A Novel Minkowski-distance-based ConsensusClustering AlgorithmLJl.lnternational Journal of Automation andConlputing,2017,14(01):33-44.