任永功,張?jiān)迄i,張志鵬
(遼寧師范大學(xué)計(jì)算機(jī)與信息技術(shù)學(xué)院,遼寧 大連 116000)
進(jìn)入互聯(lián)網(wǎng)時(shí)代以來,人們能夠獲取的信息資源愈加豐富,這些信息資源在方便人們生活的同時(shí)也帶來了一定的問題,人們需要花費(fèi)更多的時(shí)間和精力去搜索對(duì)他們有用的信息,因此“信息超載(information overload)”所帶來的問題越來越嚴(yán)重。推薦系統(tǒng)(RS,recommendation system)[1]能夠有效地解決信息超載問題,通過為用戶推薦滿足其需求的對(duì)象,實(shí)現(xiàn)個(gè)性化服務(wù)。
協(xié)同過濾(CF,collaborative filtering)[2]是目前推薦系統(tǒng)領(lǐng)域應(yīng)用最廣泛且最成功的推薦技術(shù)之一。協(xié)同過濾就是根據(jù)用戶模型找到與之匹配的信息,然后將這些信息推薦給用戶,或者建立具有相似興趣的用戶群,在用戶群中進(jìn)行信息推薦。協(xié)同過濾通常分為 2 類:基于用戶的協(xié)同過濾(UBCF,user-based collaborative filtering)和基于物品的協(xié)同過濾(IBCF,item-based collaborative filtering)[3]。基于用戶的協(xié)同過濾技術(shù)隨著用戶數(shù)量的增加,其算法時(shí)間復(fù)雜度不斷加大,具有一定的缺陷;基于物品的協(xié)同過濾技術(shù)是目前研究的熱點(diǎn)方向。
在實(shí)際應(yīng)用中,用戶和物品數(shù)量不斷增加,導(dǎo)致數(shù)據(jù)稀疏程度增大,從而使協(xié)同過濾推薦算法的準(zhǔn)確性降低[4]。對(duì)于這一問題,國內(nèi)外眾多研究者開展了大量工作,給出一些解決辦法,可以概括為4 類。1)填充矩陣:使用用戶-物品矩陣行和列的加權(quán)平均值、眾數(shù)、中位數(shù)等對(duì)稀疏矩陣進(jìn)行填充,以改善數(shù)據(jù)的稀疏性[5],這種方法雖然對(duì)稀疏數(shù)據(jù)改善直觀、顯著,但對(duì)空值的預(yù)測(cè)會(huì)產(chǎn)生較大偏差,影響后續(xù)計(jì)算的準(zhǔn)確性。2)新相似性方法:有效利用用戶評(píng)分?jǐn)?shù)據(jù)中所包含的各種有用信息,計(jì)算用戶或物品之間的相似度,與傳統(tǒng)的相似性計(jì)算方法相比,這種方法具有更高的穩(wěn)定性,但它并沒有從根本上改變?cè)u(píng)分矩陣的稀疏程度,導(dǎo)致推薦質(zhì)量改善程度有限[6]。3)推薦結(jié)果融合:將不同方法計(jì)算出的用戶對(duì)物品喜愛程度進(jìn)行綜合,根據(jù)綜合結(jié)果對(duì)用戶進(jìn)行推薦,與單一推薦結(jié)果的計(jì)算方法相比,這種方法可以提高推薦質(zhì)量[7],但其計(jì)算結(jié)果的可解釋性差,方法的準(zhǔn)確性會(huì)受到融合機(jī)制的影響。4)基于內(nèi)容的方法:通過建立用戶描述文件和物品內(nèi)容文件,把最符合用戶描述的物品內(nèi)容匹配給用戶[8],但很多物品內(nèi)容是非結(jié)構(gòu)化的,難以對(duì)內(nèi)容進(jìn)行分析,導(dǎo)致該方法使用受限。
針對(duì)現(xiàn)有方法的缺點(diǎn),本文提出一種基于粗糙集規(guī)則提取的協(xié)同過濾推薦算法,該算法首先通過提取用戶屬性、物品屬性和用戶對(duì)物品的評(píng)分,構(gòu)建決策表,利用粗糙集理論對(duì)決策表進(jìn)行約簡(jiǎn),依次求出表中每一條規(guī)則的核值,通過核值決策規(guī)則,找出所有決策規(guī)則的約簡(jiǎn),提取規(guī)則;然后根據(jù)規(guī)則對(duì)未評(píng)分的用戶進(jìn)行評(píng)分,有效填充評(píng)分矩陣中的缺失值,緩解協(xié)同過濾算法在相似度計(jì)算階段由于數(shù)據(jù)稀疏性引起的推薦問題。最后,在MovieLens 數(shù)據(jù)集上與已有的3 種推薦算法進(jìn)行對(duì)比分析,實(shí)驗(yàn)結(jié)果表明,相比于已有的算法,本文算法具有更大的優(yōu)越性。
隨著數(shù)據(jù)量的急劇增加,網(wǎng)站中用戶和物品數(shù)量越來越多,很多用戶通常只會(huì)對(duì)自己所喜歡的物品進(jìn)行認(rèn)真準(zhǔn)確的評(píng)分,導(dǎo)致可以用來計(jì)算用戶-物品之間相似度的數(shù)據(jù)非常有限,甚至經(jīng)常會(huì)出現(xiàn)2 個(gè)用戶或2 個(gè)物品之間沒有共同評(píng)分,相似度無法計(jì)算,從而使推薦系統(tǒng)的質(zhì)量難以保證。因此,如何解決好數(shù)據(jù)稀疏性問題顯得越來越重要。
針對(duì)上述問題,國內(nèi)外眾多研究者從不同角度展開一系列研究,并給出一系列解決辦法。部分研究者從填充矩陣的角度出發(fā),提出將用戶對(duì)未評(píng)分物品的評(píng)分設(shè)為一個(gè)固定缺省值,或者設(shè)為用戶的平均評(píng)分[5],以緩解矩陣的稀疏性問題。鄧愛林等[9]提出一種基于項(xiàng)目評(píng)分預(yù)測(cè)(IRP,item rating prediction)的協(xié)同過濾算法。IRP 使用基于物品的協(xié)同過濾算法對(duì)用戶進(jìn)行預(yù)測(cè)評(píng)分,然后對(duì)用戶評(píng)分項(xiàng)中的評(píng)分空值進(jìn)行填充,在填充后的數(shù)據(jù)集上對(duì)用戶之間的相似度進(jìn)行計(jì)算。鄭荔平等[10]提出了一種基于粗糙集的協(xié)同過濾算法,首先利用用戶評(píng)分?jǐn)?shù)量和用戶的評(píng)分值對(duì)用戶進(jìn)行分類,然后利用粗糙集屬性約簡(jiǎn)的方法剔除對(duì)用戶分類影響較小的物品,形成更小的用戶-物品評(píng)分矩陣,以降低數(shù)據(jù)的稀疏性和規(guī)模。張鋒等[11]按照用戶評(píng)分向量交集大小選取候選鄰居集合,使用BP 神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)用戶對(duì)物品的評(píng)分,緩解候選鄰居評(píng)分?jǐn)?shù)據(jù)的稀疏性問題。
部分研究者有效利用用戶評(píng)分?jǐn)?shù)據(jù)中所包含的各種有用信息,計(jì)算用戶或物品之間的相似度,孟桓羽等[12]通過建立基于圖的評(píng)分?jǐn)?shù)據(jù)模型,將傳統(tǒng)的協(xié)同過濾算法與圖計(jì)算及改進(jìn)的KNN 算法結(jié)合,提出一種基于圖和K 近鄰模型的協(xié)同過濾推薦算法。冷亞軍等[13]提出一種兩階段最近鄰選擇(TPNS,two-phase neighbor selection)算法。TPNS首先計(jì)算用戶之間的近鄰傾向性,將近鄰傾向性較高的用戶組合為初始近鄰集合;接著按照初始近鄰集合計(jì)算目標(biāo)用戶和其他用戶之間的等價(jià)關(guān)系相似性,修正目標(biāo)用戶的初始近鄰集合,獲得最近鄰集合。于洪等[14]根據(jù)用戶時(shí)間權(quán)重值的大小和用戶對(duì)新項(xiàng)目的偏愛程度,在充分考慮用戶、標(biāo)簽、項(xiàng)目屬性、時(shí)間等信息基礎(chǔ)上,獲得個(gè)性化的預(yù)測(cè)評(píng)分值公式。朱敬華等[15]提出了融合用戶相似性、地理位置相似性和信任關(guān)系的混合推薦模型。
上述改進(jìn)方法在一定程度上緩解了稀疏性對(duì)推薦準(zhǔn)確性的影響,但還不能直觀、準(zhǔn)確地改善稀疏數(shù)據(jù),并且對(duì)已有評(píng)分信息的利用還很不充分,基于此,本文提出一種基于粗糙集規(guī)則提取的協(xié)同過濾算法。
由于現(xiàn)實(shí)生活中用戶-物品評(píng)分矩陣往往是稀疏的,基于物品的協(xié)同過濾算法無法產(chǎn)生較好的推薦。本文將粗糙集理論融入基于物品的協(xié)同過濾中,通過粗糙集理論提取規(guī)則,預(yù)先對(duì)用戶-物品評(píng)分矩陣中的空值進(jìn)行有效的填充,緩解用戶-物品評(píng)分矩陣中數(shù)據(jù)稀疏性的問題,提高推薦的準(zhǔn)確性。
粗糙集(rough set)理論是Pawlak[16]在1982 年提出的一種能夠定量分析處理不精確、不一致、不完整信息與知識(shí)的數(shù)學(xué)工具。粗糙集理論方法能夠從決策表中提取經(jīng)過屬性約簡(jiǎn)和值約簡(jiǎn)的規(guī)則,在保證決策表決策能力不變的情況下,去除冗余屬性,提供簡(jiǎn)潔并且正確的決策規(guī)則。
利用粗糙集理論提取規(guī)則的過程即為對(duì)決策表進(jìn)行值約簡(jiǎn)的過程。首先,刪除決策表中的冗余屬性,即對(duì)決策表進(jìn)行屬性約簡(jiǎn),屬性約簡(jiǎn)是利用粗糙集理論挖掘規(guī)則的關(guān)鍵,屬性約簡(jiǎn)的結(jié)果將直接影響規(guī)則挖掘的結(jié)果[17]。其次,對(duì)約簡(jiǎn)后的決策表進(jìn)行值約簡(jiǎn)。決策表中每一條實(shí)例均可視為一條規(guī)則,冗余屬性值也包含在其中。決策規(guī)則的約簡(jiǎn)是將每條規(guī)則中的不必要條件分別進(jìn)行消除,針對(duì)每條決策規(guī)則依次刪除冗余屬性值,以便使規(guī)則最小化。決策規(guī)則相對(duì)于決策表而言,它的形式更加簡(jiǎn)潔,又盡可能地保留了決策表中的信息。
粗糙集基于不可分辨關(guān)系,給出知識(shí)表達(dá)系統(tǒng)的模型,設(shè)知識(shí)表達(dá)系統(tǒng)S=(U,A,Va,f),其中,U表示對(duì)象的非空有限集合,稱為論域;A表示屬性的非空有限集合;Va表示屬性a∈A的屬性值的取值范圍,即屬性a的值域;f:UA→Va是一個(gè)信息函數(shù),它為每個(gè)對(duì)象的各種屬性賦予一個(gè)信息值,即對(duì)任意a?A,x?U,都有f(x,a)?Va。知識(shí)表達(dá)系統(tǒng)也叫作信息系統(tǒng),也可用S=(U,A)表示,其中,U={u1,u2,...,un},A={a1,a2,...,an}。A中的元素稱為屬性,C∪D=A,C∩D=?,C稱為條件屬性集,D稱為決策屬性集。決策表是同時(shí)具有條件屬性集和決策屬性集的知識(shí)表達(dá)系統(tǒng)。
在知識(shí)表達(dá)系統(tǒng)S=(U,A,Va,f)中,設(shè)R∈A,則不可分辨關(guān)系IND(R)={(x,y)∈U2|a(x)=a(y),a∈R},不可分辨關(guān)系實(shí)際上就是一種等價(jià)關(guān)系。
粗糙集利用上、下近似集逼近不精確對(duì)象,為推理不精確知識(shí)提供了新思路。對(duì)于?X?U,有RX={x∈U|[x]R?x} 表示X的下近 似 ;={x∈U|[x]R∩X≠?}表示X的上近似。其中[x]R表示包含元素X∈U的R等價(jià)類,R是U上的一個(gè)等價(jià)關(guān)系;posR(x)=RX稱為X的R正域,negR(x)=U-X稱為X的R負(fù)域。posR(x)或RX是根據(jù)知識(shí)R判斷U中一定屬于X的元素的集合;根據(jù)知識(shí)R判斷U中有可能屬于X的元素的集合;negR(x)是根據(jù)知識(shí)R判斷U中一定不屬于X的元素的集合。
在知識(shí)發(fā)現(xiàn)和信息系統(tǒng)分析等領(lǐng)域,知識(shí)約簡(jiǎn)有著重要的應(yīng)用意義。知識(shí)能否進(jìn)行約簡(jiǎn)取決于知識(shí)之間的依賴性,這種依賴性所賦予的知識(shí)的重要性往往是知識(shí)約簡(jiǎn)的啟發(fā)式信息。核是所有約簡(jiǎn)計(jì)算的基礎(chǔ),核包含在所有約簡(jiǎn)之中,在知識(shí)約簡(jiǎn)中,核是不能消去的知識(shí)特征的集合。令C和D為等價(jià)關(guān)系族,R為不可分辨關(guān)系,若pos(c-|R|)(D)=pos(c)(D),則稱R為C中D不必要的,否則R為C中D必要的。C中所有D必要的原始關(guān)系構(gòu)成的集合稱為C的D核,簡(jiǎn)稱為核,記作coreD(C)。
本文首先對(duì)數(shù)據(jù)進(jìn)行填充,利用粗糙集理論提取規(guī)則,對(duì)未被用戶評(píng)分的物品進(jìn)行評(píng)分,構(gòu)建新的用戶-物品評(píng)分矩陣,根據(jù)新評(píng)分矩陣計(jì)算物品之間相似度,最后,利用加權(quán)求和的方法對(duì)物品進(jìn)行預(yù)測(cè)評(píng)分,并為用戶進(jìn)行推薦,具體步驟如下。
1)對(duì)用戶-物品評(píng)分表進(jìn)行填充。建立決策表S=(U,A),A中包含用戶屬性、物品屬性和評(píng)分信息,其中用戶屬性和物品屬性為條件屬性,物品評(píng)分為決策屬性。根據(jù)決策表,刪除具有相同條件屬性和決策屬性的集合,得到新的決策表S1=(U1,A)。在S1中尋找等價(jià)關(guān)系族,令C和D為等價(jià)關(guān)系族,R是不可分辨關(guān)系,若pos(c-|R|)(D)=pos(c)(D),則刪除R,得到?jīng)Q策表S2=(U1,A1),對(duì)其中每一條U1,依次去掉一個(gè)屬性值,若沒有出現(xiàn)與該規(guī)則不一致的規(guī)則,則刪除該屬性值,依次求出表中每一條規(guī)則的核值,得到核值表。通過核值表的核值決策規(guī)則,找出所有決策規(guī)則的約簡(jiǎn),提取決策規(guī)則。根據(jù)決策規(guī)則,提取用戶屬性、物品屬性和評(píng)分信息,構(gòu)建評(píng)分表,對(duì)原始的用戶-物品評(píng)分表進(jìn)行填充。
2)計(jì)算物品之間相似度。2 個(gè)物品之間相似性計(jì)算的基本思想是先分離出所有對(duì)這2 個(gè)物品進(jìn)行評(píng)分的用戶,然后根據(jù)相似性計(jì)算技術(shù)計(jì)算這2 個(gè)物品之間的相似性。本文選用余弦相似性計(jì)算方法,這種方法將2 個(gè)物品作為m維空間中的2 個(gè)矢量,并用這2 個(gè)矢量之間夾角的余弦值定義2 個(gè)物品之間的相似度。
其中,“·”表示2 個(gè)矢量之間的點(diǎn)積,分子為2個(gè)物品評(píng)分矢量的內(nèi)積,分母為2 個(gè)物品矢量模的乘積。
3)預(yù)測(cè)評(píng)分。通過排列物品之間的相似性,找到物品i的鄰居集合,通過目標(biāo)用戶u對(duì)物品i鄰居的評(píng)分值進(jìn)行加權(quán)求和,得到最終的預(yù)測(cè)結(jié)果。
其中,S(i)表示物品i的k近鄰集合,sim(i,j)表示物品i和物品j之間的相似度,和分別表示物品i和物品j所有評(píng)分的均值,ru,j表示用戶u對(duì)物品j的實(shí)際評(píng)分。
4)產(chǎn)生推薦。通過預(yù)測(cè)評(píng)分,將用戶對(duì)物品的喜愛程度進(jìn)行排列,將排在前面的物品推薦給用戶。
算法1粗糙集規(guī)則提取的協(xié)同過濾算法
輸入用戶-物品評(píng)分表
輸出為目標(biāo)用戶推薦的N個(gè)物品
傳統(tǒng)基于物品的協(xié)同過濾算法,對(duì)于物品相似度迭代計(jì)算只需要進(jìn)行一次,沒有反復(fù)的迭代計(jì)算。假設(shè)用戶-物品評(píng)分矩陣中有n個(gè)物品,那么,傳統(tǒng)的基于物品的協(xié)同過濾算法的時(shí)間復(fù)雜度為O(n2)。
從算法描述中能夠看出,本文算法可以分為3個(gè)部分。第一部分,通過粗糙集理論對(duì)決策表進(jìn)行約簡(jiǎn);第二部分,計(jì)算物品之間相似度;第三部分,預(yù)測(cè)評(píng)分。算法的時(shí)間開銷主要來源于前2 個(gè)部分。在通過粗糙集理論對(duì)決策表進(jìn)行約簡(jiǎn)時(shí),要把每n個(gè)項(xiàng)目的m個(gè)屬性依次進(jìn)行刪除并計(jì)算,因此,時(shí)間復(fù)雜度為O(mn);在計(jì)算物品相似度階段,對(duì)于物品相似度迭代計(jì)算只需要計(jì)算一次,并沒有反復(fù)的迭代計(jì)算,時(shí)間復(fù)雜度為O(n2)。因此,本文算法的時(shí)間復(fù)雜度為O(mn)+O(n2)。但在實(shí)際計(jì)算的過程中,物品的屬性個(gè)數(shù)m并不會(huì)很大,所以本文算法的時(shí)間復(fù)雜度為O(n2)。相對(duì)于傳統(tǒng)的相似度計(jì)算算法,也需要迭代物品的個(gè)數(shù),時(shí)間復(fù)雜度為O(n2)。因此本文算法在原有算法的基礎(chǔ)上沒有產(chǎn)生更高的消耗。
本節(jié)通過實(shí)驗(yàn)分析,驗(yàn)證所提推薦算法的性能。
為了評(píng)價(jià)算法的性能,本文采用MovieLens 數(shù)據(jù)集中2 個(gè)不同規(guī)模的數(shù)據(jù)集來進(jìn)行實(shí)驗(yàn)。
1)MovieLens-100K 數(shù)據(jù)集。該數(shù)據(jù)集包含了943 個(gè)用戶對(duì)1 682 部電影的10 萬次評(píng)分,其中每位用戶至少對(duì)20 部電影進(jìn)行過評(píng)分,評(píng)分采用5級(jí)評(píng)分制。
2)MovieLens-1M 數(shù)據(jù)集。該數(shù)據(jù)集包含了6 040 個(gè)用戶對(duì)3 952 部電影的100 萬次評(píng)分,其中每位用戶至少對(duì)20 部電影進(jìn)行過評(píng)分,評(píng)分采用5 級(jí)評(píng)分制。
本文使用交叉驗(yàn)證來確定模型的有效性,并對(duì)得到的結(jié)果進(jìn)行分析。將原始數(shù)據(jù)集按照4:1 隨機(jī)劃分為2 個(gè)互補(bǔ)子集,并選取80%為訓(xùn)練集,20%為測(cè)試集。首先對(duì)訓(xùn)練集進(jìn)行分析,然后驗(yàn)證對(duì)測(cè)試集影響。為了減少可變性,本文使用不同的劃分進(jìn)行多輪交叉驗(yàn)證,并對(duì)每次驗(yàn)證的結(jié)果進(jìn)行平均,本文實(shí)驗(yàn)進(jìn)行了五重交叉驗(yàn)證。
為了衡量所提方法的性能,本文使用了平均絕對(duì)誤差(MAE,mean absolute error)、均方根誤差(RMSE,root mean squared error )和精度(Precision)作為評(píng)估指標(biāo)。MAE 和RMSE 指標(biāo)顯示了預(yù)測(cè)與實(shí)際值之間的平均誤差,這些值越低,表示推薦系統(tǒng)的推薦效果越好。MAE 和RMSE 分別定義為
其中,ri,j表示用戶i對(duì)物品j的實(shí)際評(píng)分,r'i,j表示用戶i對(duì)物品j的預(yù)測(cè)評(píng)分,N表示測(cè)試集中包含的評(píng)分?jǐn)?shù)量。
Precision 表示推薦系統(tǒng)為用戶推薦的物品中用戶實(shí)際喜歡的物品所占的比例,比例越大,說明算法推薦精度越高。Preci sion 定義為
其中,R(u)表示根據(jù)用戶在訓(xùn)練集上的行為給用戶做出的推薦列表;T(u)表示用戶在測(cè)試集上的行為列表,即用戶喜歡的商品;絕對(duì)值表示列表長(zhǎng)度。
為了驗(yàn)證本文所提算法對(duì)推薦性能的影響,在相同的相似度計(jì)算條件下,將本文算法 RECF(rough sets rule extraction collaborative filtering)與下述3 種算法進(jìn)行比較。
1)基于物品的協(xié)同過濾(IBCF,item-based collaborative filtering)算法[3]。只利用評(píng)分信息,通過度量物品間余弦相似度,進(jìn)而基于物品最近鄰進(jìn)行預(yù)測(cè)推薦。
2)固定缺省值的評(píng)分填充算法[5]。將用戶對(duì)未評(píng)分物品的評(píng)分設(shè)為一個(gè)固定的缺省值,本文設(shè)為物品的平均評(píng)分(MVCF,mean value collaborative filtering),利用物品歷史評(píng)分信息,計(jì)算物品平均評(píng)分,對(duì)評(píng)分矩陣進(jìn)行填充,然后采用與IBCF 相同的策略進(jìn)行預(yù)測(cè)推薦。
3)基于粗糙集的協(xié)同過濾(RSCF,rough set collaborative filtering)算法[10]。利用用戶評(píng)分?jǐn)?shù)量和用戶的評(píng)分值,對(duì)用戶進(jìn)行分類,利用粗糙集屬性約簡(jiǎn)的方法剔除對(duì)用戶分類影響較小的物品,形成更小的用戶-物品評(píng)分矩陣,然后采用與IBCF 相同的策略進(jìn)行預(yù)測(cè)推薦。
本文選取鄰居數(shù)為20、25、30、35、40、45,分別對(duì)上述3 種算法以及本文所提算法的MAE 和RMSE 進(jìn)行計(jì)算。計(jì)算結(jié)果如表1 和表2 所示。
圖1 展示了在MovieLens-100K 數(shù)據(jù)集下4 種算法的結(jié)果比較。圖2 展示了在MovieLens-1M 數(shù)據(jù)集下4 種算法的結(jié)果比較。實(shí)驗(yàn)結(jié)果表明,本文算法相比于另外3 種算法具有較好的推薦結(jié)果,證明了通過粗糙集理論預(yù)先進(jìn)行規(guī)則提取,能有效解決數(shù)據(jù)稀疏性對(duì)推薦系統(tǒng)造成的負(fù)面影響。
本文選取推薦列表長(zhǎng)度為4、6、8、10,鄰居數(shù)為20、30、40、50、60,分別對(duì)4 種算法的推薦精度進(jìn)行計(jì)算,表1 展示了在MovieLens-100K 數(shù)據(jù)集下4 種算法Precision 的結(jié)果比較。表2 展示了在MovieLens-1M 數(shù)據(jù)集下4 種算法Precision 的結(jié)果比較。當(dāng)推薦長(zhǎng)度一定時(shí),隨著鄰居數(shù)量的增長(zhǎng),4 種算法的推薦精度總體上呈下降趨勢(shì),當(dāng)鄰居數(shù)量和推薦長(zhǎng)度一定時(shí),本文算法的推薦精度大多都高于另外3 種算法。
表1 MovieLens-100K 數(shù)據(jù)集下4 種算法推薦Precision 比較
表2 MovieLens-1M 數(shù)據(jù)集下4 種算法推薦Precision 比較
由于數(shù)據(jù)的稀疏性,IBCF 不能給出準(zhǔn)確的預(yù)測(cè);MVCF 參考的是大多數(shù)人平均水平的建議,不能進(jìn)行較好的填充,也無法給出較好的預(yù)測(cè);RSCF雖然能刪除一些低質(zhì)量的評(píng)分,對(duì)推薦結(jié)果有一定的改進(jìn),但遇到?jīng)]有歷史評(píng)分的物品或用戶便沒有辦法為其進(jìn)行推薦;本文算法通過粗糙集理論進(jìn)行規(guī)則提取,預(yù)先對(duì)物品進(jìn)行評(píng)分,可以在解決稀疏性問題的同時(shí),一定程度上解決冷啟動(dòng)問題。相比于另外3 種對(duì)比算法,本文算法在3 個(gè)指標(biāo)上都有更好的結(jié)果,說明將粗糙集理論引入?yún)f(xié)同過濾推薦算法中,通過粗糙集理論預(yù)先進(jìn)行規(guī)則提取,能有效解決數(shù)據(jù)稀疏性對(duì)推薦系統(tǒng)所造成的負(fù)面影響。
圖1 4 種算法在MovieLens-100K 數(shù)據(jù)集的結(jié)果比較
圖2 4 種算法在MovieLens-1M 數(shù)據(jù)集的結(jié)果比較
從圖1 和圖2 中MAE 和RMSE 的變化趨勢(shì)可以看出,4 種算法的MAE 和RMSE 都會(huì)隨著鄰居數(shù)量的變化而變化,當(dāng)鄰居數(shù)量選取較少時(shí),由于只參考了少數(shù)人的意見,導(dǎo)致預(yù)測(cè)評(píng)分受個(gè)人因素影響較大,不能給出準(zhǔn)確的預(yù)測(cè);當(dāng)鄰居數(shù)量選取過多時(shí),由于加入較多低質(zhì)量評(píng)分,會(huì)對(duì)預(yù)測(cè)產(chǎn)生負(fù)面的影響,導(dǎo)致MAE 和RMSE 有所升高,但這些低質(zhì)量評(píng)分對(duì)推薦系統(tǒng)的影響會(huì)隨著鄰居數(shù)量的增多而趨于穩(wěn)定。通過以上分析可以得出,當(dāng)鄰居數(shù)量選取適中時(shí),推薦系統(tǒng)的性能最好。由表1和表2 可以看出,本文算法的推薦精度總體上高于另外3 種算法。當(dāng)推薦長(zhǎng)度一定時(shí),推薦精度大多會(huì)隨著鄰居數(shù)量的增多而降低;當(dāng)鄰居數(shù)量較小時(shí),本文算法可以達(dá)到比較理想的推薦效果。
綜上,本文所提算法相比于另外3 種算法在MAE、RMSE 和Precision 這3 個(gè)指標(biāo)中均有明顯提高,驗(yàn)證了將粗糙集理論提取的規(guī)則引入推薦系統(tǒng)中,能正確對(duì)較稀疏的用戶-物品矩陣進(jìn)行填充,更好地反映用戶偏好,從而提高推薦系統(tǒng)的性能,為用戶提供更加準(zhǔn)確的推薦。
本文分析了協(xié)同過濾算法中數(shù)據(jù)稀疏性對(duì)推薦質(zhì)量的影響。由于現(xiàn)有的改進(jìn)方法還不能充分利用已有的評(píng)分信息直觀、準(zhǔn)確地改善稀疏數(shù)據(jù),本文提出一種基于粗糙集規(guī)則提取的協(xié)同過濾算法,通過粗糙集理論進(jìn)行規(guī)則提取并填充稀疏矩陣,緩解數(shù)據(jù)稀疏性問題。實(shí)驗(yàn)表明,本文算法有效提升了稀疏數(shù)據(jù)中的推薦精度。本文利用用戶及物品的一些屬性信息,對(duì)評(píng)分進(jìn)行填充,忽略用戶社交關(guān)系、時(shí)間信息等,在未來工作中,要將更多信息融入推薦過程中,以進(jìn)一步改善協(xié)同過濾算法的推薦性能。