楊玉枝
(廣東嶺南職業(yè)技術學院圖書館,廣東廣州 510663)
在當今世界,書籍的種類和數量急劇增加,高校學生難以準確、快速地找到自己喜歡的書籍。讀者在網上搜索書籍,往往會有數以千計的結果,因此,讀者要花大量的時間和精力來查找所需的書籍。此外,讀者的需求也是多種多樣的,不同專業(yè)、不同愛好的讀者的需求是不同的。在信息技術飛速發(fā)展的今天,高校圖書館要利用數據挖掘技術為讀者提供更好的服務。
圖書推薦系統(tǒng)主要是利用讀者信息、圖書信息、讀者歷史借閱等信息,對讀者的潛在需求進行預測,從而生成推薦結果,進而為讀者提供個性化服務。推薦算法主要有:內容推薦算法、圖結構推薦算法、數據挖掘推薦算法等。推薦算法的基礎是將自己感興趣的圖書推薦給讀者。協(xié)作篩選是目前應用最廣泛、效率最高的一種推薦方法[1]。本文旨在探討基于協(xié)同過濾算法的圖書推薦系統(tǒng)的建設,重點從其體系結構、功能結構、核心協(xié)同過濾算法等方面進行深入探討。圖書推薦系統(tǒng)的實現(xiàn)將有助于讀者更好地查找自己喜歡的書籍,從而更好地滿足讀者的個性化需求。
本文介紹一種基于協(xié)同過濾算法的圖書推薦系統(tǒng),它由四個層面組成:表示層、Web服務層、應用服務層、數據庫服務層。
1.表示層:主要實現(xiàn)系統(tǒng)外人員與圖書推薦系統(tǒng)之間的交互,完成信息的輸入、輸出和顯示。
2.Web服務層:它的任務是處理來自圖書推薦系統(tǒng)表現(xiàn)層次的各類業(yè)務請求,并在處理完請求后發(fā)布相關信息。
3.應用服務層:主要承擔圖書推薦系統(tǒng)的業(yè)務和邏輯操作,并針對特定的業(yè)務提供多種Web服務。
4.數據服務層:主要承擔圖書推薦系統(tǒng)中各類數據的存儲、組織和管理等工作。
協(xié)作篩選算法主要是收集用戶的基本信息、借閱信息、評估信息,然后根據用戶信息的收集,建立用戶的評估矩陣,再利用評估矩陣計算用戶的相似性,得出被推薦用戶的鄰近集合,最后根據相鄰用戶的距離來進行推薦。協(xié)作篩選的推薦算法分為兩個方面。一是使用基于內存的協(xié)作篩選方法,通過相似的統(tǒng)計方法來獲取相似的鄰集。二是使用基于模型的協(xié)作篩選算法,通過使用歷史資料建立推薦模型,并對其進行評估和完善,最終確定推薦結果。本文所述的兩種合作過濾算法均是以用戶為基礎進行協(xié)作過濾[2]。
筆者對用戶的相關數據進行了分析,得到用戶的評價矩陣R。這里m代表使用者數量,n代表被評價目標數量,rij代表使用者i在項目j上的得分。若得分為非數字類型,則可將其轉換成數值,則矩陣R可如下表達:
最近鄰集是一組用戶,其具有很高的相似性。我們可以利用用戶評估矩陣求出用戶間的相似度,從而獲得最相近的用戶群。產生最近矩陣的過程,實質上就是利用R矩陣求出目標用戶U的相似性,并將使用者集合按遞減順序排列的過程,其計算方法為:1.余弦相似度的計算,當余弦數值增加時,相似度增加;2.皮爾森相關系數法,它克服余弦相似性法忽視用戶得分比例差異的缺點,使算法的相似性得到一定的改善;3.改進的余弦相似性計算方法,如關聯(lián)系數法,通過修改用戶的分數,改善計算的相似性。我們在計算用戶的相似性之后,可以產生如下的相鄰關系:
1.將其他使用者與目標使用者的相似性按照先前的算法進行計算,篩選出相似性高于設定值(0.70)的使用者集合。2.將符合條件的使用者集合按照與目標使用者的相似性,按照遞減順序排列,選取最前面的N個使用者作為其最近的鄰接組。
在公式(1)中,sim(i,j)代表使用者i和使用者j之間的相似性,Ri,d代表目標使用者的最近鄰集j對于某個項d的得分,以及使用者i和使用者j對于所有項的平均得分分別是Ri和Rj。盡管協(xié)同過濾算法已經獲得業(yè)界的普遍認同,但是仍然存在以下問題。
1.評價數據的稀缺性問題,在用戶評價不高的情況下,推薦效果會受到較大的影響。2.在傳統(tǒng)的協(xié)同過濾方法中,用戶可以在不同的階段進行評價,其忽視用戶的興趣度隨著時間的推移而變化。3.傳統(tǒng)的協(xié)同過濾方法僅從用戶自身或項目自身的單個維度進行相似度的聚類,而忽視了用戶與目標之間的關聯(lián)性。4.忽視用戶的特征會對推薦結果造成一定的影響,不同特征的使用者可能會有不同的興趣,而特征相似的使用者也會有相似的愛好。因此,在生成使用者的最近鄰集時,我們要注意到使用者的特征,以便能提升推薦結果的品質[3]。筆者主要針對用戶興趣度隨時間遷移、用戶與對象的關聯(lián)度、用戶特征等因素,提出一種基于用戶特征的協(xié)同過濾算法。
傳統(tǒng)的協(xié)作篩選方法沒有引入時間維度,只把各個階段的評估結果當作同等的權重,忽略了興趣隨著時間的流逝而逐漸減弱的特征。通常情況下,用戶的興趣會隨時間而變化,因此,從短期來看,用戶的早期評估在推薦算法中的比例要低一些,而近期的評估則要高一些。德國心理學家艾賓浩斯對時間與興趣之間的關系進行了分析,得出了一個結論:興趣是一種非線性的。我們能夠根據人們的興趣轉移規(guī)律提出一個基于時間的興趣度遷移函數,如圖1所示。隨著時間的推移,用戶對該項目得分的權重值呈遞減趨勢,其變化趨勢是隨著時間的推移而變化的。Interest(u,t)是反映使用者最近評價的權重較大的非線性遞減函數,其權重值通常為0~1。一般情況下,興趣的變化具有線性下降和指數下降的趨勢。
圖1 興趣度隨時間遷移函數
如圖1所示,根據興趣度隨時間遷移曲線,改進后的算法引入公式(2)考慮用戶興趣隨著時間變化對推薦結果的影響。
在(2)式中,D(u、i)代表使用者存取項的最近和最后的時間區(qū)間,m和n是不變的,并且隨著時間的推移,感興趣程度對推薦結果的影響可以由m和n的數值來控制。
傳統(tǒng)的協(xié)同篩選算法忽略了用戶和對象的相關性對推薦結果的影響,僅考慮了用戶和對象個體的相似度,忽略了用戶和對象的內在聯(lián)系。該算法將使用者u和對象i相關函數Relevance(u,i)用于考慮使用者對特定對象的興趣。
假設所有由使用者U評價的項是集Iu,且i與Iu中的項具有高度相似性,則使用者U感興趣的內容有高度相似性,且使用者U感興趣的專案與使用者U的相似性較高,即i項對于生成用戶U的推薦結果有較大的參考意義。因此,我們可以定義Relevance(u,i)的功能,以評價在特定時期內項i對使用者U的影響值,正如式(3):
在公式(3)中,sim(i,j)表示項目i和集合Iu中項目的相似性,j∈Iu,Σsim(i,j)表示i和集合Iu的總體相似度,Iu表示集合Iu中的項目數。改進后的算法引入用戶和對象相關度函數Relevance(u,i),根據特定用戶對某一項目的相關度推薦,也就是按照用戶對項目的興趣度賦予相應的權重值。
不同功能的使用者會有不同的愛好,而擁有同樣功能的使用者也會有類似的愛好,所以在生成最近的鄰集時,使用者的特征是非常重要的。該方法可以構造出一個特定的使用者,以幫助提升鄰近的建議的精確性[4]。一方面,不同專業(yè)的讀者所擁有的知識儲備也會影響到他們的學習興趣,例如,計算機專業(yè)的學生對信息技術的興趣更大,會計專業(yè)的學生對財務的興趣更大。同一領域的讀者對同一類別的圖書也會產生類似的興趣。因此,我們可以采用專業(yè)、年齡、性別等不同的用戶特性對算法進行優(yōu)化。
我們可以根據用戶的專業(yè)屬性對協(xié)同過濾算法進行改進,根據用戶的專業(yè)構造一棵倒立的專業(yè)樹(見圖2)。
圖2 專業(yè)樹
如果專業(yè)樹中的專業(yè)m,n為根結點,則其高度為0。假設使用者i的專業(yè)是m,使用者j的專業(yè)是n,則使用者i與使用者j在專業(yè)特征方面的使用者相似性是Major(i,j),如計算式(4):
比如,一個使用者i的專業(yè)是馬克思,而使用者j的專業(yè)是知識論,他的公共最近的父系是哲學,高度是2,專業(yè)樹的高度H是4,則Major(i,j)的數值是0.5,即使用者與專業(yè)特征的相似性是0.5。
我們根據用戶性別特性對協(xié)同過濾算法進行改進,假定用戶i、j的性別分別為m、n,則用戶性別相似度Sex(i,j)可表示為:
協(xié)同過濾算法是基于使用者的年齡特征而進行的,假設使用者i是m,而使用者j是n,那么,我們可以將使用者的年齡相似性Age(i,j)表示為:
綜合考慮專業(yè)、性別及年齡特性,我們可以得出用戶特性相似度公式(7):
式(7)中,α和β都是一個小于1的正整數,其功能是控制使用者的特征對使用者的相似性的影響。該算法的數值可以根據試驗數據進行優(yōu)化,得到最優(yōu)的建議。
本文提出了一種新的基于協(xié)同過濾的新算法,它可以分析讀者的專業(yè)、性別、年齡。根據用戶的特性相似度,我們可以很好地解決傳統(tǒng)算法所遇到的新的用戶問題[5]。圖3顯示了該算法的工作流程。
圖3 改進后算法的推薦流程
1.收集讀者數據,包括讀者的基本數據以及讀者對借閱書籍的評價。2.基于讀者對借閱書籍的評價建立一個“讀者評價矩陣”。同時,基于讀者的基本信息產生一組讀者特征。3.讀者評價矩陣是基于讀者興趣的時間函數(式2)修改的,因此,在修改后的評價矩陣中,讀者的興趣會隨著時間的推移而改變。4.基于讀者對書籍的關聯(lián)函數(式3),計算出讀者對該書籍的感興趣程度,并基于該數值矩陣,計算出該用戶的相似性。同時,讀者特征相似性采用方程式(7)來計算。5.對讀者的相似性進行綜合運算,并產生與目標讀者的鄰近關系。6.基于所產生的讀者最近鄰區(qū)集合,對被評價對象的評價進行預測,從而得到一個推薦結果。
筆者選用的個性化圖書推薦系統(tǒng)包含了4 000位讀者對10 000冊書籍的評價,每位讀者對10冊以上的書籍進行評價。筆者將評價結果轉換成(01)上的數值,評分越高,表明讀者對該書籍的感興趣程度越高。其中,查準率公式(8)如下:
在(8)式中,Hits將正確的結果數推薦給讀者,以N代表讀者的全部評分,并根據讀者對書籍的評分計算出推薦書的正確率,如圖4所示。
圖4 算法改進前后查準率對比圖
實驗分析表明,采用傳統(tǒng)的協(xié)同過濾方法可以使推薦結果的準確率從70%提升到75%,從而使推薦效果得到顯著改善,這將能夠在一定程度上提高讀者的借閱率。
協(xié)同過濾算法是個性化推薦系統(tǒng)的基本算法,其在不同的個性化推薦方案中得到廣泛的應用。筆者在改進后的用戶協(xié)同過濾算法的基礎上,根據高校圖書館的實際情況和用戶輸出的數據,利用多源數據的相似性權重以及時間衰減模型對上述問題進行改進,并取得了較好的效果。目前,高校圖書館中經常會出現(xiàn)新的圖書,這些圖書沒有人借閱,導致出現(xiàn)圖書的冷啟動問題。因此,我們將協(xié)同過濾算法融入圖書館的圖書推薦中,將能夠更好地提高圖書的借閱率。