劉宇航



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