柯秀文
(商丘職業(yè)技術(shù)學(xué)院 軟件學(xué)院,商丘 476001)
隨著現(xiàn)代信息技術(shù)的高速發(fā)展,給社會(huì)各行各業(yè)帶來(lái)了革命性的變革,提供高效、優(yōu)質(zhì)的服務(wù)是很多行業(yè)追求的目標(biāo)。信息技術(shù)的廣泛應(yīng)用為各級(jí)各類圖書(shū)館提供了新的服務(wù)方向和選擇。根據(jù)讀者的需求,提供差異化、高質(zhì)量的個(gè)體服務(wù),是各級(jí)各類圖書(shū)館在新時(shí)期深化圖書(shū)館服務(wù)職能的積極嘗試和有益探索,也是信息服務(wù)的必然需求。傳統(tǒng)的圖書(shū)搜索引擎只能為所有讀者展現(xiàn)相同的圖書(shū)排序結(jié)果,無(wú)法結(jié)合讀者的個(gè)人愛(ài)好提供差異化的檢索結(jié)果,而基于協(xié)同過(guò)濾算法的圖書(shū)推薦系統(tǒng)卻能夠根據(jù)讀者的個(gè)人偏好為其提供差異化的圖書(shū)推薦[1]。
然而,隨著各級(jí)各類圖書(shū)館開(kāi)放程度和服務(wù)質(zhì)量的提升,推薦系統(tǒng)中讀者與圖書(shū)數(shù)量的增加和積累,評(píng)分矩陣數(shù)據(jù)稀疏性問(wèn)題越來(lái)越顯著,此外,傳統(tǒng)的基于內(nèi)存的協(xié)同過(guò)濾算法沒(méi)有考慮時(shí)間因素等上下文信息對(duì)相似度造成的影響,這些都導(dǎo)致圖書(shū)推薦質(zhì)量的下降。因此,本文提出一種改進(jìn)的協(xié)同過(guò)濾算法,以提高圖書(shū)推薦質(zhì)量,實(shí)驗(yàn)證明,改進(jìn)的協(xié)同過(guò)濾算法能夠有效提高圖書(shū)推薦精度。
協(xié)同過(guò)濾( Collaborative Filtering,CF)是當(dāng)前使用最為廣泛的推薦算法之一,這個(gè)概念由 Goldberg等在1992年正式提出[2],它依據(jù)用戶-項(xiàng)目評(píng)分?jǐn)?shù)據(jù),算法基于用戶對(duì)一些項(xiàng)目的評(píng)分進(jìn)行比較,假設(shè)用戶對(duì)一些項(xiàng)目評(píng)分相似,那么用戶對(duì)其他項(xiàng)目評(píng)分也相似[3]。
隨著讀者與圖書(shū)數(shù)量的增加和積累,評(píng)分矩陣數(shù)據(jù)稀疏性問(wèn)題越來(lái)越顯著,為了解決數(shù)據(jù)稀疏環(huán)境下讀者對(duì)圖書(shū)預(yù)測(cè)評(píng)分的準(zhǔn)確度問(wèn)題,提出一種改進(jìn)的協(xié)同過(guò)濾方法 ICF(Improved Collaborative Filtering),從2個(gè)方面改進(jìn)推薦算法:首先,將LDA模型應(yīng)用在圖書(shū)館圖書(shū)推薦上,將讀者和圖書(shū)通過(guò)潛在主題關(guān)聯(lián),將得到的讀者對(duì)圖書(shū)的選擇概率作為預(yù)處理數(shù)據(jù),進(jìn)而將相似度計(jì)算轉(zhuǎn)至低維潛在因素空間,減少數(shù)據(jù)稀疏所帶來(lái)的影響。其次,在相似度計(jì)算時(shí),考慮時(shí)間因素對(duì)讀者圖書(shū)偏好的影響,引入Sigmoid函數(shù),改進(jìn)讀者相似度計(jì)算公式,預(yù)測(cè)讀者對(duì)未選擇圖書(shū)的評(píng)分。
協(xié)同過(guò)濾算法的改進(jìn)主要分為3個(gè)步驟:首先基于LDA(Latent Dirichlet Allocation)模型[4]建立讀者-圖書(shū)概率矩陣,并對(duì)圖書(shū)進(jìn)行聚類,裁剪概率矩陣。其次考慮時(shí)間因素對(duì)讀者偏好動(dòng)態(tài)變化的影響,引入時(shí)間因子sigmoid函數(shù),作為評(píng)分時(shí)間影響權(quán)重,改進(jìn)相似度計(jì)算方法,計(jì)算鄰居讀者。最后利用協(xié)同過(guò)濾算法預(yù)測(cè)讀者對(duì)未選擇圖書(shū)的評(píng)分。
LDA模型通過(guò)主題將文檔和單詞聯(lián)系起來(lái),以實(shí)現(xiàn)對(duì)文本信息的挖掘,在新浪微博等相關(guān)網(wǎng)站上廣泛應(yīng)用。其核心思想是:
Ptopicdocument
本文根據(jù)讀者評(píng)分信息建立讀者圖書(shū)偽文檔,將讀者對(duì)應(yīng)文檔,圖書(shū)對(duì)應(yīng)單詞,每個(gè)讀者喜歡的圖書(shū)種類有很多,每個(gè)圖書(shū)種類由若干圖書(shū)構(gòu)成,讀者的評(píng)分?jǐn)?shù)值對(duì)應(yīng)該圖書(shū)在該讀者圖書(shū)文檔中出現(xiàn)的次數(shù)。基于此建立的讀者-圖書(shū)LDA模型,如圖1所示。
圖1 讀者-圖書(shū)的LDA模型
在圖1各種關(guān)系中,θ是讀者的圖書(shū)主題分布,φ是圖書(shū)主題的圖書(shū)分布,且都滿足Dirichlet分布,α、β分別是θ和φ的超參數(shù),K、N、M分別是圖書(shū)主題數(shù)、圖書(shū)數(shù)和讀者數(shù),Zmn表示讀者m選擇的圖書(shū)n對(duì)應(yīng)的主題,Umn表示讀者m選擇的圖書(shū)n。
假設(shè)系統(tǒng)中有n個(gè)讀者以及m個(gè)圖書(shū),并且讀者i對(duì)圖書(shū)j的評(píng)價(jià)通過(guò)整數(shù)1-5的評(píng)分表示,記做Rij。某讀者j對(duì)圖書(shū)的評(píng)分信息,如表1所示。
在預(yù)處理階段,將表1的相關(guān)信息處理為:讀者Uj=﹛i1,i2,i2,i2,i3,i3,i3,i3,i3,i5,i5﹜。以此類推,可以得到每個(gè)讀者的偽文檔。
以此為基礎(chǔ),本文采用Gibbs Sampling采樣算法訓(xùn)練讀者圖書(shū)LDA主題模型。根據(jù)對(duì)相關(guān)文獻(xiàn)的研究,LDA模型參數(shù)通常取值為α=50/K,β=0.01,K為主題的個(gè)數(shù)。對(duì)讀者圖書(shū)LDA主題模型訓(xùn)練的結(jié)果反映到讀者偏好的讀者-圖書(shū)選擇概率矩陣W,Wij表示在讀者圖書(shū)概率分布θ上讀者u選擇圖書(shū)i的概率。據(jù)此建立起來(lái)的矩陣記錄了任意讀者對(duì)選擇所有圖書(shū)的選擇概率。
為了提高預(yù)測(cè)結(jié)果的精準(zhǔn)度,進(jìn)一步采用聚類算法,根據(jù)圖書(shū)的相關(guān)屬性信息,對(duì)圖書(shū)進(jìn)行聚類。根據(jù)K-Means聚類算法在聚類效果中的良好表現(xiàn),本文采用此方法實(shí)現(xiàn)圖書(shū)的聚類。根據(jù)圖書(shū)聚類的結(jié)果,對(duì)讀者-圖書(shū)選擇概率矩陣進(jìn)行裁剪,以此得到若干讀者-圖書(shū)選擇概率子矩陣,縮小計(jì)算工作,僅在具有相似屬性信息的讀者-圖書(shū)選擇概率子矩陣中進(jìn)行計(jì)算。
協(xié)同過(guò)濾算法的目的是找到和目標(biāo)讀者讀書(shū)偏好相似的讀者集合,根據(jù)讀者-圖書(shū)選擇概率矩陣計(jì)算讀者相似度,這是協(xié)同過(guò)濾算法關(guān)鍵步驟,影響著最終推薦結(jié)果的精準(zhǔn)度。基于傳統(tǒng)協(xié)同過(guò)濾算法讀者相似度計(jì)算依賴于讀者對(duì)圖書(shū)的共同評(píng)分,但忽略了已評(píng)分圖書(shū)的權(quán)重問(wèn)題以及隨時(shí)間變化讀者圖書(shū)偏好改變的可能性。例如:3個(gè)讀者對(duì)同一圖書(shū)有著相同的評(píng)分行為,讀者1和讀者2共同評(píng)分的圖書(shū)發(fā)生在同一時(shí)間段內(nèi),而讀者2和讀者3共同評(píng)分的圖書(shū)發(fā)生并不在一個(gè)時(shí)間段內(nèi),顯然,讀者1和讀者2應(yīng)比讀者2和讀者3有更高的相似度,然而,忽略了時(shí)間因素,利用傳統(tǒng)協(xié)同過(guò)濾算法得到了相等的結(jié)果。
考慮時(shí)間因素對(duì)讀者圖書(shū)偏好的影響,為了提高讀者相似度計(jì)算的精準(zhǔn)度,引入時(shí)間因子sigmoid函數(shù),函數(shù)值作為評(píng)分時(shí)間影響權(quán)重,評(píng)分時(shí)間越接近的讀者,其相似度也就越高,計(jì)算式如公式(1):
(1)
考慮時(shí)間因素對(duì)讀者偏好相似度的影響,本文在皮爾遜相關(guān)系數(shù)基礎(chǔ)上引入時(shí)間因子Sigmoid函數(shù),得到改進(jìn)后的讀者相似度,如式(2)。
Simuv=Suv×Wuv=
(2)
根據(jù)改進(jìn)后的讀者相似度計(jì)算公式完成相似度計(jì)算后,對(duì)結(jié)果進(jìn)行排序,選擇相似度最高的k個(gè)讀者作為目標(biāo)讀者的鄰居讀者。
在目標(biāo)讀者i的讀者-圖書(shū)選擇概率子矩陣中,計(jì)算目標(biāo)讀者u對(duì)目標(biāo)圖書(shū)i的預(yù)測(cè)評(píng)分,如式(3)。
(3)
得到目標(biāo)讀者對(duì)未選擇圖書(shū)的預(yù)測(cè)評(píng)分后,根據(jù)評(píng)分由高到底排序,將評(píng)分最高的前k個(gè)圖書(shū)推薦給該讀者。
本文采用商丘職業(yè)技術(shù)學(xué)院圖書(shū)館信息化管理中心提供的數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),在此數(shù)據(jù)集中,讀者對(duì)自己看過(guò)的圖書(shū)進(jìn)行了評(píng)分,每位讀者評(píng)分?jǐn)?shù)不少于20條,評(píng)分結(jié)果為很好、好、一般、差、很差,分別記做整數(shù)5、4、3、2、1。分值高低反映了讀者對(duì)圖書(shū)滿意度的高低。此數(shù)據(jù)集記錄了2016年8月30日~2017年1月5日其間,1 351位讀者對(duì)2 405本圖書(shū)的143 000個(gè)評(píng)分,此數(shù)據(jù)集原始讀者-圖書(shū)評(píng)分矩陣稀疏度為92.8%。
/N
(4)
得出的結(jié)果平均絕對(duì)偏差越小,推薦精準(zhǔn)度越高,效果越好。
將本文提出的ICF推薦算法與傳統(tǒng)的基于內(nèi)存的協(xié)同過(guò)濾算法進(jìn)行對(duì)比,通過(guò)余弦?jiàn)A角相似度、修正余弦?jiàn)A角相似度和皮爾遜相關(guān)系數(shù)等3 種相似度度量方法作為比較,目標(biāo)讀者最近鄰個(gè)數(shù)分別為(10,20,30,40,50),得出的MAE值,如圖2所示。
圖2 ICF與傳統(tǒng)的協(xié)同過(guò)濾算法比較
實(shí)驗(yàn)表明,3 種傳統(tǒng)的協(xié)同過(guò)濾算法相比較,余弦相似度的MAE值均最大,皮爾遜相關(guān)系數(shù)MAE值均居中,修正余弦相似度MAE值均最小,表明修正算法的有效性,而本文提出的ICF推薦算法,MAE值均最小,明顯優(yōu)于其它3種傳統(tǒng)的協(xié)同過(guò)濾算法,說(shuō)明引入時(shí)間影響因子權(quán)重反映讀者圖書(shū)興趣變化的ICF推薦算法能夠得到更好的推薦效果。
為提高數(shù)據(jù)稀疏環(huán)境下圖書(shū)推薦的質(zhì)量,提出了一種基于LDA的改進(jìn)協(xié)同過(guò)濾推薦算法,基于LDA主題模型得到讀者-圖書(shū)選擇概率矩陣作為計(jì)算讀者相似度的原始數(shù)據(jù)。為了更加準(zhǔn)確地尋找讀者鄰居,本文根據(jù)圖書(shū)屬性對(duì)圖書(shū)進(jìn)行聚類,在聚類內(nèi)部計(jì)算相似讀者,并根據(jù)讀者評(píng)分時(shí)間設(shè)計(jì)一種基于時(shí)間因子權(quán)重的讀者相似度計(jì)算公式,更加準(zhǔn)確地評(píng)估目標(biāo)讀者的鄰居讀者集,從而更準(zhǔn)確地預(yù)測(cè)讀者對(duì)圖書(shū)的評(píng)分。最后,利用商丘職業(yè)技術(shù)學(xué)院圖書(shū)館信息化管理中心提供的數(shù)據(jù)集開(kāi)展實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明,本文提出的方法,比基于余弦相似度、皮爾遜相似度的協(xié)同過(guò)濾算法更加精準(zhǔn),能有效提升圖書(shū)推薦效果。