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