姜書浩,張立毅,周 娜
(1.天津大學電氣自動化與信息工程學院,天津 300072; 2.天津商業(yè)大學信息工程學院,天津 300134)
推薦系統(tǒng)在過去的十年中已經(jīng)成為強大的工具,用戶通過它可以根據(jù)自己的偏好瀏覽海量信息[1],同時有效地提高了使用的滿意度和忠誠度。個性化推薦系統(tǒng)目的是為用戶推薦可能感興趣的信息或物品(如音樂、電影、書籍等),并且已經(jīng)廣泛地應用于電子商務、社交、新聞以及電子學習等領域[2]。
推薦系統(tǒng)最常用的2種方法是基于內(nèi)容的推薦和協(xié)同過濾推薦。基于內(nèi)容推薦根據(jù)用戶已經(jīng)評分的項目內(nèi)容推斷出用戶的個人偏好信息,并根據(jù)對項目的特征描述和用戶偏好特征向用戶推薦可能感興趣的項目[3],因此基于內(nèi)容的推薦依賴于對項目和用戶的描述性數(shù)據(jù)。而協(xié)同過濾推薦不依賴于項目的顯示特征描述,它根據(jù)與其興趣相似的用戶已評分項目來預測用戶的偏好。近些年來協(xié)同過濾技術得到了更加廣泛的應用,但是仍然存在稀疏性、可擴展性以及過度擬合等問題。
首先,協(xié)同過濾技術最大的特點在于它僅僅依據(jù)用戶對項目的評分,完全獨立于所推薦項目的具體類別。所以采用協(xié)同過濾技術進行推薦的項目往往是分值較高的項目,而內(nèi)容可能與用戶期望獲得的推薦大相徑庭。例如,向某個特定用戶推薦劇情類電影,結果計算出k個評分最相似的電影,但類型可能完全不同。也就是說,協(xié)同過濾技術中的相似度計算僅僅依賴于用戶對項目的評分,而預測項目內(nèi)容可能與已評分項目毫無關聯(lián)。
其次,傳統(tǒng)的協(xié)同過濾方法假設用戶偏好是固定不變的,忽略了用戶興趣隨時間的變化。例如,一位電子商務專業(yè)的本科生在高中時對歷史書的評價很高,但是隨著他進入大學后對歷史書的評價可能有很大的變化。因此,大多數(shù)研究工作中對新數(shù)據(jù)的分析要比相對陳舊的數(shù)據(jù)分析更為重要[4],當然,僅僅考慮最新的數(shù)據(jù)也不能對用戶偏好進行完整的描述。
本文主要通過引入項目類別信息來改進現(xiàn)有的協(xié)同過濾算法,并根據(jù)時間為每個項目評分設定不同的權重值,反映用戶偏好隨時間的變化。該算法使用與預測項目類別相關的項目計算相似性值,以產(chǎn)生更好地反映真實偏好的近鄰集合。同時算法還設定了2個權重計算的原則:如果歷史的評分數(shù)據(jù)不是周期性的,那么用戶最近的數(shù)據(jù)值比早期的數(shù)據(jù)值權重更高;用戶早期感興趣的項目評分分值的權重適當減弱,而近期和周期的評分分值權重適當提高。
協(xié)同過濾算法目前是個性化推薦使用最廣泛的方法,很多優(yōu)化和改進的算法被用來解決個性化推薦中的稀疏性、可擴展性以及運算復雜度等問題[5-8]。Chakraborty[9]采用k-中心點對用戶和項目進行聚類,來解決計算復雜度的問題。Yang等[10]提出了一種基于項目聚類預測的協(xié)同過濾方法,提高了推薦算法的可擴展性。Acilar等[11]提出了一種基于人工免疫網(wǎng)絡算法的協(xié)同過濾模型,解決了稀疏性和可擴展性的問題。上述的研究在進行相似性計算時考慮了項目類別帶來的影響,但是忽視了時間因素對協(xié)同過濾的影響。
在協(xié)同過濾算法中,相似性計算是影響推薦質(zhì)量的一個關鍵因素,它可以對系統(tǒng)的整體性能和推薦結果產(chǎn)生重大影響[12]。用戶偏好的相似性計算是生成最近鄰的最重要的方法,但是用戶的偏好會隨時間的變化而變化,因此對用戶進行相似性計算時應該考慮時間因素的影響。一些研究在用戶偏好的計算中考慮了時間因素的影響[13-15],另外一些研究通過動態(tài)的方法預測用戶的偏好變化。Liu等[16]通過關鍵詞查詢圖來表達用戶的動態(tài)搜索,采用非線性逐步遺忘協(xié)同過濾算法,顯示了用戶的偏好隨時間的動態(tài)變化。Xiong等[17]建立用戶-項目-時間三維向量,利用向量分解的方式研究用戶行為的動態(tài)變化。Huang等[18]提出了一種加入時間衰減序列模式的新的協(xié)同推薦方法來準確地模擬和預測客戶的購買模式。Koren[19]通過將時間序列分段聚類,將每個分類作為一個隱狀態(tài)得到狀態(tài)轉移概率矩陣,建立關于分段的隱馬爾科夫模型,對用戶的未來行為狀態(tài)進行預測。Jeon等[20]提出了一種自適應的用戶分析方法,該方法根據(jù)用戶的喜好隨著時間推移和區(qū)域變化動態(tài)的更新策略。
用戶偏好相似性計算的依據(jù)是用戶對不同項目的評分,但是用戶在不同時間階段的評分對于用戶當前偏好狀態(tài)的影響權重也應各不相同。涉及時間因素的評價分為3種:近期評分、早期評分和周期性評分。上述研究成果關于時間的影響研究都是片面的,本文提出的基于用戶偏好動態(tài)變化的協(xié)同過濾推薦算法,在基于項目類別的基礎上,對3種時間因素相關的評分對個性化推薦的影響進行了深入研究。
協(xié)同過濾方法分為基于模型的協(xié)同過濾和基于記憶的協(xié)同過濾這2種方式?;谀P偷乃惴ㄊ紫韧ㄟ^構建用戶評分模型來提供項目推薦。模型可以用貝葉斯網(wǎng)絡、聚類以及基于規(guī)則方法等建立[21]?;谟洃浀膮f(xié)同過濾算法利用整個用戶項目數(shù)據(jù)集來生成預測,分為基于用戶的方法和基于項目的方法。
協(xié)同過濾系統(tǒng)的目標是提高用戶的推薦質(zhì)量。目前的協(xié)同過濾系統(tǒng)的主要依據(jù)用戶顯式或隱式的數(shù)據(jù),并基于用戶(項目)的最近鄰預測用戶的偏好。然而,現(xiàn)實世界中的用戶興趣隨時間的動態(tài)變化將導致系統(tǒng)偏離用戶需求。本文提出一種改進的基于項目的協(xié)同過濾算法,其前提假設是用戶的興趣并不是固定不變的,它隨著時間的變化而變化。該算法將項目評分時間引入權重函數(shù),每個分值的權重根據(jù)時間確定,時間較遠的評分數(shù)據(jù)權重較低,時間較新的評分和周期性的評分權重較高。
建立項目評分矩陣用于發(fā)現(xiàn)項目之間的相似性。任何物品如書籍、視頻等內(nèi)容計算機都很難自動進行分析,算法首先基于項目的屬性對項目進行分類。例如,在電影分類中,根據(jù)每部電影的內(nèi)容類型可以將電影分為動作、戲劇、喜劇、動畫等類型。通過這種方式將項目和用戶分成子矩陣,每個子矩陣是由屬于類型g和至少對該類型電影進行過一次評分的用戶組成,稱之為類型g的子矩陣:
其中,ng是屬于類別g的項目的數(shù)目,mg是至少評價了一個類別g的項目的用戶數(shù)目,Ru,i是用戶u對項目i的評分。
最近鄰集的產(chǎn)生最重要的是計算項目之間的相似性。該算法相似性的計算是基于與預測項目種類相關的項目,不是所有項目。子矩陣Ag(g=1,…,G)中,使用皮爾森相關系數(shù)計算項目i和項目j(i=j,j=1,…,ng)之間的相似性權重,如公式(1)[21]:
(1)
在計算項目i與類別g中每一個項目的相似性權重之后,用戶u對未評分項目i的預測評分可以通過公式(2)計算得出。
(2)
(3)
其中,α為時間權重,計算公式為式(4);β為重要性權重,計算公式為式(6);γ為評分率權重,計算公式為式(7)。將3個權重值α、β和γ相結合為權重函數(shù)。當α=1,β=1和γ=1時,f(u,i)的計算結果為1,所以權重函數(shù)的取值范圍為[0,1],Ru(td)表示用戶u在td時間的評分。
(4)
時間權重α是一種具有指數(shù)形式的單調(diào)遞減函數(shù),用來表示用戶興趣隨時間的變化。α∈[0,1],Itr為用戶2次連續(xù)評分之間的平均間隔時間,其中t由公式(5)計算得出。
(5)
式(5)中,t0表示用戶最后一次評分的時間,td表示用戶u對子矩陣Ag的項目最后評分時間。
(6)
重要性權重β表示類別g對于用戶u的重要性,β∈[0,1]。Sug為用戶u對屬于Ag的項目的評分之和,Su為用戶u的評分總和。
(7)
評分率權重γ∈[0,1],其中Nug表示用戶u對屬于Ag且評過分的項目的數(shù)目;Nu表示用戶u評分過的項目的總數(shù)。
用戶的偏好會隨著時間而變化。一個很久以前對某個項目或者內(nèi)容感興趣的用戶現(xiàn)在可能對同一個項目毫不在意,因為他的興趣偏好已經(jīng)轉移到別的項目上去了。在用戶的興趣不斷變化的背景下,較近的時間段的評分通常比較早期時間的評分更能反映用戶當前的興趣偏好,也更加重要。當前時間與最后一次評價同一類別項目的時間之間的間隔就顯得非常重要了,因此引入權重函數(shù),換句話說,就是衡量屬于目標類別的項目有多長時間沒有被評分了。該值很小也就是時間很短,表明用戶對這樣的項目還是有很大的興趣,當然,在某些環(huán)境下或者因為某些原因,用戶因為長時間不使用該網(wǎng)站(系統(tǒng))造成這樣的情況,這并不意味著用戶對這些項目失去了興趣,僅僅是因為用戶這段時間沒有評價過該項目而已。
另一方面,人們通常有不同的習慣。有些用戶對電影更感興趣,所以經(jīng)?;〞r間看電影,而其他人可能很長時間才看一場電影。例如,2個用戶,第一個每天看好幾部電影,而第二個每個月才看一部電影。在這種情況下,對于第一個用戶來說一個月前看到的電影已經(jīng)是非常久遠的了,對于第二個用戶來說時間是最近的。也就是說,周期長度是每個人的相對值,因此公式(5)中需要將(t0-td)值除以目標用戶連續(xù)2次評分之間平均時間間隔。
此外,最近被評分的項目并不一定意味著用戶對其有特殊偏好,也有可能是用戶最近對其進行了低評。區(qū)分一個項目最近被用戶評分還是低評,權重函數(shù)計算時考慮了最后一次評分的分值(Ru(td))。例如,僅考慮時間權重α作為權重函數(shù),不考慮β與γ的值,假設項目i和項目j在t=1時的評分分別是0和5,則對應的權重函數(shù)分別是0.367和0.846,可以看出評分值對權重函數(shù)的結果有較大的影響,也就意味著權重函數(shù)能正確反映評分值的高低。
根據(jù)上述研究,可以看出時間權重增加了用戶近期行為的影響,降低了用戶歷史偏好行為的影響,同時考慮了用戶的偏好特征(Ru(td))和行為習慣((t0-td)的平均評價周期)。有些用戶的偏好是有周期性的,因此如果有人長期不評價某一類別的項目,并不一定意味著他不會再去選擇這類項目。重要性權重和評分率權重都考慮了用戶周期性偏好的問題。
為了處理用戶偏好隨時間變化的情況,本文引入一種新的不依賴于任何閾值的權重函數(shù),同時考慮α、β和γ,也就是通過公式(3)計算權重函數(shù)。
輸入:用戶項目矩陣A,時間戳矩陣B和項目類別集C。
輸出:預測用戶項目矩陣P。
算法過程:
1)將矩陣A根據(jù)項目類別C劃分為g次矩陣Ag(g=1,…,G)。
2)根據(jù)公式(1)計算生成目標項目子矩陣Ag的近鄰集合。
3)根據(jù)公式(3)和矩陣B計算目標項目的權重函數(shù)。
4)根據(jù)公式(2)計算預測用戶項目矩陣P。
5)回歸預測用戶項目矩陣P。
實驗采用的數(shù)據(jù)集是公開的數(shù)據(jù)集MovieLens的子集。MovieLens數(shù)據(jù)集包含943個用戶對1682部電影的100000個評分數(shù)據(jù),評分的范圍為1~5,用戶集是隨機選擇至少為20部電影評過分的用戶。將數(shù)據(jù)子集劃分為80%的訓練集和20%的測試集。
電影信息包含在電影文件中,類型主要分為:動作、冒險、動畫、兒童、喜劇、犯罪、紀錄片、戲劇、幻想、黑色電影、恐怖、音樂、神秘、浪漫、科幻、驚悚片、戰(zhàn)爭和西部。
平均絕對誤差(MAE)是一種被廣泛使用的度量方法,它通過比較測試數(shù)據(jù)集中對用戶推薦項目的預測分值與實際用戶評分的誤差情況來反映推薦的準確性[22-24]。MAE首先計算N個相應的評分預測對的絕對誤差,然后計算平均值。MAE越低,推薦系統(tǒng)預測用戶評分的準確性就越高。
1)類別因素在皮爾森相關度量中的影響。
在第一個實驗中,在相似性計算中采用皮爾森相關系數(shù)與考慮項目類別因素這2種方法進行比較,結果如圖1所示。顯然,采用考慮類別因素計算相似性可以有效提高協(xié)同過濾的預測準確性。傳統(tǒng)的協(xié)同過濾使用所有鄰居項目,其中包括內(nèi)容上與目標項目毫無關系的項目,而本文提出的方法僅僅考慮與預測項目種類相關的項目。類別屬性的引入意味著預測的基礎是相似性計算僅考慮內(nèi)容相似的鄰居的評分。
圖1 皮爾森相關系數(shù)與考慮項目類別因素的MAE對比
2)時間權重對準確性的影響。
實驗中,對采用時間權重與無時間權重的協(xié)同過濾算法進行比較,結果如圖2所示,系統(tǒng)的預測準確性隨著時間權重參數(shù)個數(shù)的增加而逐步提高。當相似性值大于等于0.4,且權重函數(shù)僅考慮評分時間的遠近問題,此時權重函數(shù)為公式(8),通過對歷史數(shù)據(jù)降低權重來減少歷史偏好的影響,提高了預測準確性。原因是用戶的興趣隨著時間的推移而變化,最近的項目評分在預測當前用戶的偏好項目方面可能起到更重要的作用,而早期的評分數(shù)據(jù)對最終推薦的貢獻度相對較小。
f(u,i)=e-(t0-td)
(8)
如果最后一次評分項目的類別與目標項目類別相同,則權重函數(shù)為公式(9),預測準確率進一步提高,因為最近評分的項目如果得分較高的話,這說明用戶目前對這類項目有很高的興趣偏好。
(9)
雖然前面介紹了評價時間(t0-td)對系統(tǒng)推薦質(zhì)量的影響,但是這一指標具有個體差異性,所以有必要通過評分的平均時間間隔來考慮每個用戶的行為習慣。此時權重函數(shù)為公式(10),其中t由公式(5)計算得出,從圖2可以看出,通過引入評價時間和平均評價周期后,在不同相似性值的情況下,MAE值均顯著低于傳統(tǒng)方法。
圖2 權重函數(shù)不同情況下與傳統(tǒng)協(xié)同過濾的MAE對比
f(u,i)=e-t
(10)
最后,從圖2中可以看出,如果權重函數(shù)采用時間權重α,系統(tǒng)的預測準確性會進一步提高,這是因為如果用戶最近的評價是積極的,時間權重函數(shù)將增加對用戶最近行為的考量。
3)重要性權重和評分率權重對預測準確性的影響。
實驗中將重要性權重和評分率權重的方法與無權重的方法進行比較,結果如表1所示,當相似性值高于0.4時,單獨考慮2種權重方法的MAE值均優(yōu)于無權重函數(shù)的協(xié)同過濾的MAE值。原因是相同的,就是這2個加權函數(shù)為用戶經(jīng)常評價的項目提供了更多的推薦機會。
表1 3種方式的MAE對比
相似性值協(xié)同過濾重要性權重α評分率權重β00.8161.8121.7970.10.8211.7651.7010.20.8391.6491.5940.30.9621.4821.4650.41.2431.1881.1630.51.5020.9360.8920.61.9620.6680.6340.72.4680.4810.4700.82.7610.3900.389
4)與經(jīng)典的基于項目的協(xié)同過濾算法比較。
表2中顯示了傳統(tǒng)協(xié)同過濾、時間權重、重要性權重、評分率權重以及完整權重參數(shù)共5種情況下MAE的最佳結果。實驗還比較了完整權重函數(shù)的協(xié)同過濾算法與經(jīng)典的基于項目的協(xié)同過濾算法。圖3顯示了完整權重與傳統(tǒng)協(xié)同過濾的推薦方法的比較,從相似值大于等于0.4開始,相對于經(jīng)典的協(xié)同過濾能夠給出更高的推薦準確度、更低的MAE值。融合了3個權重函數(shù)組合的推薦算法增加了用戶最近時期個人偏好的推薦權重,更真實地反映用戶當前的興趣并滿足用戶的推薦需求。
表2 權函數(shù)中各參數(shù)最佳MAE結果的比較
傳統(tǒng)協(xié)同過濾f(u, i)=αf(u, i)=βf(u, i)=γf(u, i)=(α+β)2×γ0.8160.4810.390.3890.36
圖3 傳統(tǒng)協(xié)同過濾與完整權重函數(shù)的MAE對比
協(xié)同過濾算法在以往的研究中已經(jīng)通過各種各樣的算法得到改進和優(yōu)化。本文在基于項目的協(xié)同過濾框架下,引入了一種不依賴于任何閾值的新的簡單加權函數(shù),考慮了項目類別因素和用戶興趣隨時間的變化,建立基于用戶偏好動態(tài)變化的協(xié)同過濾推薦模型。通過實驗驗證,考慮用戶的行為習慣和周期性需求,新算法在推薦準確性方面明顯優(yōu)于傳統(tǒng)的協(xié)同過濾算法。
近年來,時間信息在協(xié)同過濾中占有越來越重要的地位,而用戶偏好中的時間效應在推薦中起著越來越重要的作用。本文只考慮了時間因素對于推薦準確性的影響,下一步工作將重點研究時間因素對于推薦多樣性的影響。