陸 航,師智斌,劉忠寶
1.中北大學(xué) 大數(shù)據(jù)學(xué)院 大數(shù)據(jù)與網(wǎng)絡(luò)安全研究所,太原030051
2.中北大學(xué) 軟件學(xué)院,太原030051
協(xié)同過濾算法是當(dāng)前推薦系統(tǒng)中應(yīng)用最廣泛的推薦算法,在互聯(lián)網(wǎng)各個(gè)領(lǐng)域都有實(shí)際的應(yīng)用價(jià)值,如商品推薦[1]、音樂推薦[2]、新聞推薦[3]。其中基于用戶的協(xié)同過濾算法主要依據(jù)用戶對(duì)項(xiàng)目的歷史評(píng)分行為計(jì)算用戶之間相似度找到最近鄰居,預(yù)測(cè)對(duì)項(xiàng)目的評(píng)分,然后將評(píng)分最高的前n 個(gè)項(xiàng)目推薦給用戶。但是,隨著協(xié)同過濾推薦算法在實(shí)際中的應(yīng)用,也暴露出來許多問題。例如存在著用戶和項(xiàng)目的冷啟動(dòng)問題,數(shù)據(jù)稀疏性問題,可擴(kuò)展性問題[4]。其中用戶相似度計(jì)算不準(zhǔn)確也是影響推薦不準(zhǔn)確的一個(gè)主要因素之一[5]。針對(duì)這個(gè)問題,許多學(xué)者展開研究。其中考慮評(píng)分差異性是提高相似度計(jì)算的一種有效方法。文獻(xiàn)[6]通過對(duì)歐氏距離進(jìn)行歸一化來消除不同維度之間的衡量尺度來計(jì)算用戶相似度。文獻(xiàn)[7]定義了一種評(píng)分差異度來優(yōu)化傳統(tǒng)的相似性度量方法。上述方法雖然一定程度上提高了推薦效果,但是方法單一,只考慮到用戶對(duì)項(xiàng)目的顯式評(píng)分信息。
研究人員發(fā)現(xiàn)挖掘用戶對(duì)項(xiàng)目?jī)?nèi)在的隱式信息,如興趣偏好,能極大提高推薦的準(zhǔn)確性。文獻(xiàn)[8]將用戶項(xiàng)目評(píng)分矩陣轉(zhuǎn)換為用戶項(xiàng)目屬性評(píng)分矩陣,提出了基于用戶對(duì)項(xiàng)目屬性偏好的協(xié)同過濾算法。文獻(xiàn)[9]通過標(biāo)簽來計(jì)算用戶的偏好和項(xiàng)目特征的相似度實(shí)現(xiàn)項(xiàng)目的個(gè)性化推薦。文獻(xiàn)[10]將專家預(yù)設(shè)的標(biāo)簽信息引入到相似度計(jì)算過程中,彌補(bǔ)了評(píng)分矩陣稀疏性問題。上述方法盡管能夠部分反映用戶的興趣偏好,同時(shí)有效地利用標(biāo)簽來解決數(shù)據(jù)稀疏性問題,但是沒有考慮到用戶的興趣會(huì)隨時(shí)間發(fā)生變化并且忽略了標(biāo)簽在項(xiàng)目中所占權(quán)重問題。
針對(duì)以上問題,本文從用戶興趣和評(píng)分差異兩方面出發(fā),提出了一種融合用戶興趣和評(píng)分差異的協(xié)同過濾推薦算法(Collaboration Filtering recommendation algorithm based on User Interest and Rating Difference,CF-UIRD)。首先,利用TF-IDF的思想計(jì)算用戶的項(xiàng)目標(biāo)簽權(quán)重,并且在指數(shù)衰減函數(shù)基礎(chǔ)上融入時(shí)間窗口,更加精準(zhǔn)地反映用戶的興趣變化;然后在歐氏距離基礎(chǔ)上設(shè)計(jì)了一種考慮用戶評(píng)判準(zhǔn)則差異、用戶影響差異、項(xiàng)目影響差異等影響因子的評(píng)分差異相似性度量算法;最后綜合考慮用戶興趣和評(píng)分差異來評(píng)估用戶的最終相似度,找出目標(biāo)用戶的鄰居用戶,預(yù)測(cè)項(xiàng)目評(píng)分,生成推薦列表。
用戶項(xiàng)目評(píng)分矩陣R 如表1 所示。其中n 表示項(xiàng)目總數(shù),m 表示用戶總數(shù),Rmn表示用戶m 對(duì)項(xiàng)目n 的評(píng)分。在表1上做預(yù)處理,若用戶m 對(duì)項(xiàng)目n 有評(píng)分則將評(píng)分置為1;若沒有評(píng)分則將評(píng)分置為0,構(gòu)成m×n的用戶項(xiàng)目選擇矩陣R′。
項(xiàng)目標(biāo)簽矩陣F 如表2 所示。其中s 表示標(biāo)簽總數(shù),n 表示項(xiàng)目總數(shù),F(xiàn)ns表示項(xiàng)目n 是否包含標(biāo)簽s,若項(xiàng)目n 包含標(biāo)簽s,則Fns的值為1,否則Fns的值為0。
用戶標(biāo)簽偏好矩陣P 如表3所示。其中m 表示用戶總數(shù),s 表示標(biāo)簽總數(shù),Pms表示用戶m 對(duì)標(biāo)簽s 的偏好程度。
文獻(xiàn)[11]中闡釋了傳統(tǒng)相似性度量方法存在的一些缺陷,并引入了用戶間評(píng)分差異度這一概念:對(duì)于任意兩個(gè)用戶,對(duì)同一項(xiàng)目的評(píng)分差異越小則兩個(gè)用戶的喜好越相近,即兩個(gè)用戶之間的相似度越高;反之如果兩個(gè)用戶之間的評(píng)分差異越大則兩個(gè)用戶的喜好越不相近,相似度越低。其中歐式距離常用來計(jì)算用戶評(píng)分差異,值越大說明個(gè)體間的差異越大,反之越小。
一般來說,用戶對(duì)項(xiàng)目的評(píng)分能夠較精準(zhǔn)的反映用戶對(duì)項(xiàng)目的喜愛程度,而標(biāo)簽標(biāo)注作為一種用戶行為,蘊(yùn)含了用戶對(duì)項(xiàng)目?jī)?nèi)容和屬性的深入理解[12]。文獻(xiàn)[13]通過對(duì)項(xiàng)目的標(biāo)簽進(jìn)行簡(jiǎn)單的計(jì)數(shù)統(tǒng)計(jì)來求得用戶對(duì)項(xiàng)目標(biāo)簽的偏好向量,但是這種方法在計(jì)算用戶對(duì)標(biāo)簽興趣偏好時(shí)會(huì)出現(xiàn)熱門標(biāo)簽權(quán)重較大的問題,這樣就導(dǎo)致了被用戶選擇過的稀缺標(biāo)簽很難給用戶進(jìn)行推薦造成權(quán)重偏差,降低了推薦結(jié)果的準(zhǔn)確性并且未能充分反映用戶的興趣偏好。針對(duì)以上問題,本文引入TF-IDF的思想對(duì)用戶的項(xiàng)目標(biāo)簽偏好進(jìn)行計(jì)算。
TF-IDF 是一種加權(quán)技術(shù),采用一種統(tǒng)計(jì)方法來評(píng)估某一個(gè)特征詞在一個(gè)語料庫中的重要程度[14]。將其思想應(yīng)用到用戶偏好計(jì)算上,若用戶選擇某個(gè)標(biāo)簽越頻繁,這個(gè)標(biāo)簽被選擇的人數(shù)又越少并且這個(gè)標(biāo)簽在整個(gè)標(biāo)簽集中的占比越小,則認(rèn)為用戶對(duì)這個(gè)標(biāo)簽的偏好程度越高。公式如下:
表1 用戶-項(xiàng)目評(píng)分矩陣
表2 項(xiàng)目-標(biāo)簽矩陣
表3 用戶-標(biāo)簽偏好矩陣
由公式(1)能夠推出,若一個(gè)標(biāo)簽選擇人數(shù)較多且在整個(gè)標(biāo)簽集中的自身占比較高,即熱門標(biāo)簽,則計(jì)算結(jié)果偏低;若用戶選擇冷門標(biāo)簽,相較于其他用戶而言,用戶更關(guān)注此標(biāo)簽且該標(biāo)簽對(duì)于該用戶的重要程度更高,這樣就能在一定程度上很好的區(qū)分和明確用戶的偏好,提高推薦準(zhǔn)確率。
傳統(tǒng)的推薦算法在處理用戶對(duì)標(biāo)簽的偏好時(shí)常用1/0 值來標(biāo)注用戶是否使用此標(biāo)簽,這意味著隨著時(shí)間的變化這些標(biāo)簽值是靜態(tài)的,在推薦過程中所起的作用是相同的,這樣就導(dǎo)致在推薦信息時(shí)產(chǎn)生低時(shí)效的問題[15]。例如用戶以前喜歡功夫片,現(xiàn)在喜歡喜劇片,若不考慮興趣變化,就會(huì)造成推薦誤差。實(shí)際上用戶的興趣是動(dòng)態(tài)變化的,用戶所標(biāo)注的標(biāo)簽也會(huì)發(fā)生變化,在標(biāo)簽系統(tǒng)中,標(biāo)簽具有實(shí)時(shí)性,它隱含著用戶的興趣轉(zhuǎn)變信息[16]。相較于用戶的早期行為,用戶的近期行為更能反映用戶的當(dāng)前興趣,如果要精準(zhǔn)預(yù)測(cè)用戶的當(dāng)前興趣,就要在預(yù)測(cè)過程中使用戶近期標(biāo)注的標(biāo)簽比早期標(biāo)注的標(biāo)簽擁有更高的權(quán)重,即對(duì)時(shí)間屬性賦予合適的權(quán)值,這樣就能有效降低過時(shí)信息的重要性和有效緩解推薦項(xiàng)目老化問題,提高推薦質(zhì)量,產(chǎn)生較好的推薦效果。文獻(xiàn)[16]提出了一種適應(yīng)用戶興趣變化的指數(shù)衰減函數(shù),公式如下:
其中,tui表示用戶u 對(duì)項(xiàng)目i 的評(píng)價(jià)時(shí)間,tnow表示用戶評(píng)價(jià)項(xiàng)目的最大時(shí)間,Tatt表示衰減系數(shù),代表用戶興趣衰減快慢。Tui表示用戶u 對(duì)項(xiàng)目i 的時(shí)間加權(quán)值,即信息的衰減程度,取值范圍在(0,1)之間,tui距離當(dāng)前時(shí)間越近,則tnow-tui差值越小,Tui值越大,表示用戶近期行為對(duì)預(yù)測(cè)有更重要的價(jià)值。
雖然指數(shù)衰減函數(shù)可以通過衰減項(xiàng)目影響力,即用戶興趣權(quán)重來衡量用戶長(zhǎng)期興趣,但是用戶的興趣也不是每分每秒都會(huì)發(fā)生改變,即沒有考慮用戶興趣存在短期的穩(wěn)定性。例如:用戶今天喜歡功夫片,不能認(rèn)為第二天用戶就不喜歡功夫片,這之間存在一個(gè)興趣轉(zhuǎn)變的時(shí)間緩沖期,為此引入一個(gè)時(shí)間窗口值Twin來表示用戶興趣保持穩(wěn)定的時(shí)間周期,對(duì)式(2)進(jìn)行改進(jìn),如下所示:
公式(3)將時(shí)間窗口引入到指數(shù)衰減函數(shù)中,彌補(bǔ)了指數(shù)衰減函數(shù)的不足,綜合兩者的優(yōu)勢(shì)提高了準(zhǔn)確率,更加有效地緩解了信息過期對(duì)推薦結(jié)果的負(fù)面影響,提高推薦質(zhì)量。
根據(jù)前面分析,提出了考慮用戶興趣變化的用戶興趣相似性度量算法(User Interest similarity measurement,UI)。首先將改進(jìn)后的指數(shù)衰減函數(shù)添加到基于項(xiàng)目標(biāo)簽權(quán)重的用戶偏好中得到用戶的興趣偏好,然后將值填充到用戶標(biāo)簽矩陣中,公式如下:
最后對(duì)歐式距離進(jìn)行歸一化后,根據(jù)填充后的用戶標(biāo)簽矩陣計(jì)算UI,公式如下:
文獻(xiàn)[11]在求解用戶評(píng)分差異時(shí),雖然考慮了用戶評(píng)判準(zhǔn)則差異這個(gè)事實(shí),消除了平均值差異對(duì)結(jié)果的影響,但是沒有考慮到用戶影響差異和項(xiàng)目影響差異對(duì)計(jì)算結(jié)果準(zhǔn)確性的影響。因此本文在計(jì)算用戶評(píng)分差異度時(shí)設(shè)計(jì)了一種考慮用戶評(píng)判準(zhǔn)則差異,用戶影響差異和項(xiàng)目影響差異的度量方法。
在計(jì)算用戶評(píng)分差異度時(shí),要考慮用戶評(píng)判準(zhǔn)則差異這個(gè)事實(shí)。因?yàn)橛械挠脩粝矚g給項(xiàng)目打高分,有的用戶則喜歡打低分。例如:在5分制的評(píng)分系統(tǒng)中,用戶1總是給喜歡的項(xiàng)目打5分,而不喜歡的項(xiàng)目打3分;用戶2總是給喜歡的項(xiàng)目打3分,而不喜歡的項(xiàng)目打1分。如果用戶1 和2 同時(shí)對(duì)某個(gè)項(xiàng)目評(píng)分都是3 分,用傳統(tǒng)的歐式距離進(jìn)行計(jì)算評(píng)分差異度就會(huì)得到用戶1和2具有相同偏好的錯(cuò)誤結(jié)論。因此對(duì)于消除用戶評(píng)判準(zhǔn)則差異十分關(guān)鍵。
其次,要考慮到用戶之間的影響差異。傳統(tǒng)的相似度公式在計(jì)算用戶之間的相似性時(shí)普遍認(rèn)為用戶之間的影響差異為0,而且傳統(tǒng)的歐氏距離在計(jì)算用戶之間相似度時(shí)僅利用共同評(píng)分項(xiàng)目,忽略了其他評(píng)分項(xiàng)目對(duì)相似度計(jì)算時(shí)的影響。例如:用戶1 對(duì)4 個(gè)項(xiàng)目評(píng)分分別為(3,3,-,-),用戶2 對(duì)4 個(gè)項(xiàng)目的評(píng)分分別為(3,3,2,5),如果只考慮共同評(píng)分項(xiàng)目,用戶1和2的相似度計(jì)算結(jié)果完全相同,但實(shí)際情況是用戶1只能用一半的項(xiàng)目評(píng)分去和用戶2匹配,計(jì)算時(shí)忽略了各自評(píng)分項(xiàng)目對(duì)相似度計(jì)算時(shí)的影響。為了體現(xiàn)出不同用戶之間相互影響程度的差異性,在計(jì)算用戶評(píng)分差異時(shí)引入用戶影響差異度,定義如下:
其中,I(u,v)表示用戶u 對(duì)用戶v 的影響差異。Iu∩Iv表示用戶u 和v 共同評(píng)分項(xiàng)目集合,Iu表示用戶u 評(píng)分項(xiàng)目的集合。用戶評(píng)分項(xiàng)目越少,對(duì)其他用戶的影響差異就越小。
在計(jì)算用戶之間評(píng)分差異度時(shí),由于項(xiàng)目影響的差異化,會(huì)影響計(jì)算結(jié)果的準(zhǔn)確性。一個(gè)項(xiàng)目如果質(zhì)量較高或較低,那么多數(shù)人對(duì)其評(píng)分都會(huì)很高或很低,利用傳統(tǒng)歐氏距離計(jì)算用戶之間的相似度結(jié)果就會(huì)偏高,而事實(shí)上這是由于項(xiàng)目自身質(zhì)量過高或過低導(dǎo)致,而并非用戶之間擁有共同的偏好所致,這種項(xiàng)目在計(jì)算用戶相似度時(shí)應(yīng)該讓其影響度變小。針對(duì)上述情況,本文引入項(xiàng)目影響差異度Ii來解決項(xiàng)目自身質(zhì)量過高或過低對(duì)用戶相似性計(jì)算時(shí)導(dǎo)致結(jié)果偏高的影響,如下所示:
其中,Ii為項(xiàng)目i 的影響差異度,利用用戶對(duì)項(xiàng)目i 的評(píng)分標(biāo)準(zhǔn)差來表示,z 為評(píng)價(jià)過項(xiàng)目i 的用戶個(gè)數(shù),ru為用戶u 對(duì)項(xiàng)目i 的評(píng)分,σ 為項(xiàng)目i 的平均分。對(duì)于一個(gè)項(xiàng)目,若用戶對(duì)其評(píng)分高低不同,則該項(xiàng)目能夠很好地區(qū)分用戶偏好,影響差異度權(quán)值Ii變大;相反,若用戶對(duì)其評(píng)分大致相同,則該項(xiàng)目不能很好區(qū)分用戶興趣偏好,影響差異度權(quán)值Ii變小。為了讓其計(jì)算結(jié)果保持在(0,1)區(qū)間,在計(jì)算時(shí),對(duì)其進(jìn)行最大最小歸一化處理。
綜合考慮上述差異影響因子,在用戶項(xiàng)目評(píng)分矩陣基礎(chǔ)上,提出了用戶評(píng)分差異相似性度量算法(Ratings Differential similarity measurement,RD)。公式如下:
其中,uˉ和vˉ分別表示用戶u 和v 評(píng)價(jià)項(xiàng)目的平均分,ui和vi分別表示用戶u 和v 對(duì)項(xiàng)目i 的評(píng)分,通過兩者相減來消除評(píng)判準(zhǔn)則差異對(duì)結(jié)果帶來的影響;I(u,v)為用戶u 和v 之間的影響差異度;Ii為項(xiàng)目i 的影響差異度。sim2(u,v)值越大,用戶u 和用戶v 的相似度越高。
文獻(xiàn)[17]指出,對(duì)于不同的推薦系統(tǒng),應(yīng)根據(jù)項(xiàng)目和用戶的數(shù)量相對(duì)關(guān)系選擇更加高效的推薦算法,基于用戶相似性的推薦模型更加適用于用戶數(shù)遠(yuǎn)少于項(xiàng)目數(shù)的情況。本文根據(jù)用戶之間相似度來進(jìn)行推薦,其中時(shí)間復(fù)雜度可以評(píng)估算法的效率,假設(shè)推薦系統(tǒng)中有m個(gè)用戶,n 個(gè)項(xiàng)目,其中用戶數(shù)遠(yuǎn)少于項(xiàng)目數(shù),原始的歐氏距離衡量?jī)蓚€(gè)用戶之間相似度的時(shí)間復(fù)雜度為O(n),對(duì)歐氏距離改進(jìn)后的用戶評(píng)分差異相似性度量算法的時(shí)間復(fù)雜度為O(mn),但是m 遠(yuǎn)小于n,因此本文提出的用戶評(píng)分差異相似性度量算法在時(shí)間復(fù)雜度增加不大的情況下可以明顯提升用戶之間相似度的準(zhǔn)確率,從而提高了推薦的質(zhì)量。
本文提出了融合用戶興趣偏好和評(píng)分差異的協(xié)同過濾推薦算法(CF-UIRD)。首先通過對(duì)sim1(u,v)和sim2(u,v)線性組合,得到融合用戶興趣和評(píng)分差異的綜合相似度,公式如下:
其中,權(quán)重λ ∈(0,1),大小在實(shí)驗(yàn)中確定,當(dāng)兩個(gè)用戶沒有共同評(píng)分項(xiàng)目時(shí)λ 為1。sim(u,v)值越大,兩個(gè)用戶差異性越小,相似度越高。
然后在得到目標(biāo)用戶綜合相似度之后,對(duì)項(xiàng)目進(jìn)行評(píng)分預(yù)測(cè),最后進(jìn)行推薦,公式如下所示:
算法融合用戶興趣偏好和評(píng)分差異的推薦算法
輸入目標(biāo)用戶u,項(xiàng)目評(píng)分矩陣R,項(xiàng)目標(biāo)簽矩陣F,用戶標(biāo)簽矩陣P,鄰居個(gè)數(shù)k。
輸出目標(biāo)用戶對(duì)待評(píng)分項(xiàng)目的預(yù)測(cè)評(píng)分Pui,MAE值。
步驟1 將用戶項(xiàng)目評(píng)分矩陣R 做預(yù)處理,構(gòu)建用戶項(xiàng)目選擇矩陣R′;
步驟2 根據(jù)公式(4)計(jì)算用戶興趣偏好,并對(duì)用戶標(biāo)簽矩陣P 進(jìn)行填充;
步驟3 在填充后的用戶標(biāo)簽矩陣上,根據(jù)公式(5)計(jì)算sim1(u,v);
步驟4 在用戶項(xiàng)目評(píng)分矩陣R 上根據(jù)公式(8)計(jì)算sim2(u,v);
步驟5 根據(jù)公式(9),計(jì)算綜合相似度sim(u,v);
步驟6 根據(jù)公式(10)計(jì)算用戶對(duì)于候選項(xiàng)目的預(yù)測(cè)評(píng)分Pui;
步驟7 根據(jù)下文的公式(11)計(jì)算MAE值。
本文提出的融合用戶興趣和評(píng)分差異協(xié)同過濾算法主要有兩部分組成,一部分是考慮用戶興趣變化的用戶相似性度量算法,這部分算法充分利用項(xiàng)目標(biāo)簽和時(shí)間因素,刻畫了用戶的真實(shí)興趣偏好,通過用戶的興趣偏好來計(jì)算用戶之間的相似度;另一部分是用戶評(píng)分差異相似性度量算法,這部分算法綜合考慮用戶評(píng)判準(zhǔn)則差異,用戶影響力差異和項(xiàng)目影響力差異有效緩解了因?yàn)橛脩粼u(píng)分習(xí)慣不同,用戶之間評(píng)價(jià)項(xiàng)目數(shù)量不同和項(xiàng)目質(zhì)量過高過低造成的不能很好區(qū)分用戶偏好和計(jì)算結(jié)果偏差問題,從而進(jìn)一步提高了用戶之間偏好準(zhǔn)確度;最后通過融合這兩部分算法能夠更加準(zhǔn)確刻畫用戶偏好,對(duì)于用戶之間共同評(píng)價(jià)項(xiàng)目稀少,僅依靠用戶項(xiàng)目評(píng)分計(jì)算用戶之間相似性導(dǎo)致計(jì)算結(jié)果偏差,推薦準(zhǔn)確率低的問題,這時(shí)可以通過用戶對(duì)項(xiàng)目標(biāo)簽的興趣偏好來計(jì)算用戶之間的相似度,對(duì)單方面依靠用戶項(xiàng)目評(píng)分計(jì)算用戶之間相似度造成的誤差進(jìn)行修正,找到最近鄰居,對(duì)用戶未評(píng)分項(xiàng)目進(jìn)行評(píng)分預(yù)測(cè),進(jìn)行推薦,從而有效緩解因?yàn)閿?shù)據(jù)稀疏性導(dǎo)致的推薦準(zhǔn)確率下降的問題。
對(duì)算法進(jìn)行時(shí)間復(fù)雜度分析,假設(shè)有m 個(gè)用戶,n個(gè)項(xiàng)目,s 個(gè)標(biāo)簽。步驟2 中計(jì)算用戶對(duì)標(biāo)簽偏好的時(shí)間復(fù)雜度為O(mns),步驟3中計(jì)算用戶之間興趣偏好相似度的時(shí)間復(fù)雜度為O(n),步驟4中計(jì)算用戶之間評(píng)分差異相似性時(shí)間復(fù)雜度為O(mn),步驟5中線性加權(quán)的時(shí)間復(fù)雜度為O(1)。因此,本文算法計(jì)算用戶之間綜合相似度的時(shí)間復(fù)雜度為O(mns)。4.2節(jié)中提到,基于用戶相似性的協(xié)同過濾推薦算法適用于用戶數(shù)遠(yuǎn)少于項(xiàng)目數(shù)的情況,并且項(xiàng)目標(biāo)簽數(shù)在實(shí)際情況中也遠(yuǎn)小于項(xiàng)目數(shù),因此本算法在不影響推薦效率的情況下更加全面準(zhǔn)確的衡量用戶之間相似度,提升推薦質(zhì)量。
本文采用美國(guó)Minnesota 大學(xué)GroupLens 研究小組創(chuàng)建的Movielens100K 數(shù)據(jù)集驗(yàn)證融合用戶興趣偏好和評(píng)分差異的協(xié)同過濾推薦算法。數(shù)據(jù)集中記錄了943個(gè)用戶對(duì)1 682部電影的100 000個(gè)評(píng)分,其中每個(gè)用戶評(píng)分電影至少有20 部,最低分為1 分,最高分為5 分。電影標(biāo)簽為:動(dòng)作、冒險(xiǎn)、動(dòng)畫等18個(gè)標(biāo)簽,每個(gè)電影可能用多個(gè)標(biāo)簽表示。實(shí)驗(yàn)中隨機(jī)將數(shù)據(jù)集的80%作為訓(xùn)練集,20%作為測(cè)試集,在訓(xùn)練集上建立模型,然后在測(cè)試集上對(duì)用戶評(píng)分進(jìn)行預(yù)測(cè)。
平均絕對(duì)誤差MAE(Mean Absolute Error)是檢驗(yàn)推薦系統(tǒng)好壞的常用標(biāo)準(zhǔn),利用訓(xùn)練集中的數(shù)據(jù)經(jīng)過推薦算法得到未評(píng)分項(xiàng)目的預(yù)測(cè)分,然后將預(yù)測(cè)評(píng)分與測(cè)試集中的實(shí)際評(píng)分進(jìn)行比較,偏差越小,準(zhǔn)確性越高。公式如下:
其中,Pui為用戶u 對(duì)于項(xiàng)目i 的預(yù)測(cè)評(píng)分,rui為用戶u對(duì)項(xiàng)目i 的實(shí)際評(píng)分,Test為測(cè)試集。
首先對(duì)算法中的相關(guān)參數(shù)進(jìn)行確定。本文涉及到的參數(shù)有3 個(gè),分別為:表示用戶在一段時(shí)間內(nèi)興趣保持穩(wěn)定的時(shí)間窗口參數(shù)Twin、衰減系數(shù)參數(shù)Tatt和用戶綜合相似度中參數(shù)λ。
實(shí)驗(yàn)1 通過MAE值來確定時(shí)間窗口參數(shù)Twin的值,如圖1所示,在K=60,Tatt的值分別為30、60、90的條件下,MAE的值都是先下降然后再上升,Tatt=30,Twin=6時(shí),MAE 值最小;當(dāng)Tatt分別為60 和90 時(shí),Twin=5 時(shí),MAE 值最小。在后續(xù)的實(shí)驗(yàn)中,將Twin的值設(shè)置為5來進(jìn)行實(shí)驗(yàn),認(rèn)為用戶的興趣在這5天內(nèi)不會(huì)發(fā)生變化。
圖1 不同Twin 值對(duì)應(yīng)的MAE
實(shí)驗(yàn)2 通過MAE 的值來確定最佳時(shí)間衰減參數(shù)Tatt的值,如圖2 所示,在K=60,Twin=5,Tatt的值分別為30、40、50、60、70、80、90 條件下,MAE 的值逐漸下降然后上升,在Tatt=60 時(shí),MAE 值達(dá)到最低,因此,設(shè)置Tatt=60。
圖2 不同Tatt 值對(duì)應(yīng)的MAE
實(shí)驗(yàn)3 確定綜合相似度中參數(shù)λ 的值,當(dāng)λ=0 時(shí),表示通過用戶評(píng)分差異來計(jì)算用戶之間的相似性,當(dāng)λ=1時(shí),表示通過用戶興趣來計(jì)算用戶之間的相似性。如圖3所示,在K 分別為30、60、90的條件下,MAE值逐漸下降后上升,λ=0.2 時(shí),MAE值最小,推薦效果最好。
圖3 不同λ 對(duì)應(yīng)的MAE值
實(shí)驗(yàn)4 在不同近鄰情況下,比較了不同相似度算法的準(zhǔn)確度,其中相似度計(jì)算包括:采用傳統(tǒng)的歐氏距離算法(ED),采用TF-IDF算法(TF-IDF),采用本文第3章提出的考慮用戶興趣變化的用戶興趣相似性度量算法(UI),本文第4章提出的考慮用戶評(píng)分差異的相似性度量算法(RD),最后是融合用戶興趣和評(píng)分差異的協(xié)同過濾推薦算法(CF-UIRD),如圖4所示。隨著近鄰個(gè)數(shù)的增加,5種算法的MAE值逐漸變小,在近鄰等于80之后,MAE的值趨于平緩。本文設(shè)計(jì)的RD算法比傳統(tǒng)的ED算法在推薦準(zhǔn)確度上有顯著的提升,本文設(shè)計(jì)的UI算法比傳統(tǒng)的TF-IDF 算法也有小幅度提升,最后融合用戶興趣和評(píng)分差異得到的CF-UIRD 算法的MAE 值始終小于其他4種推薦算法,推薦準(zhǔn)確度最高。
圖4 5種算法對(duì)應(yīng)的MAE值
本文針對(duì)傳統(tǒng)的基于用戶的協(xié)同過濾算法中用戶相似度計(jì)算不準(zhǔn)確的問題,將用戶對(duì)項(xiàng)目標(biāo)簽的偏好、用戶評(píng)判準(zhǔn)則差異、評(píng)分值差異、用戶影響差異和項(xiàng)目影響差異等因素融入到基于用戶的協(xié)同過濾算法中,并且將指數(shù)衰減函數(shù)和時(shí)間窗口融入到改進(jìn)的用戶興趣偏好中來表示用戶的興趣變化,提出了融合用戶興趣和評(píng)分差異的協(xié)同過濾推薦算法。實(shí)驗(yàn)結(jié)果表明,提出的算法能夠更加準(zhǔn)確的找到目標(biāo)用戶的鄰居集用戶,并且提高了推薦的精度。但是本文的推薦算法是將特征獨(dú)立考慮,并沒有討論特征與特征之間的交互關(guān)系,例如女性喜歡看言情劇,男性喜歡看功夫劇,可以看出用戶的性別和電影的類型之間是有強(qiáng)關(guān)聯(lián)性的。因此,下一步工作將挖掘用戶屬性和電影屬性之間的關(guān)系來進(jìn)一步提升推薦的準(zhǔn)確率。