張小川,周澤紅,向 南,桑瑞婷
(1.重慶理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院, 重慶 400054;2.重慶理工大學(xué) 兩江國(guó)際學(xué)院, 重慶 401135)
從網(wǎng)易云音樂的歌單、亞馬遜的商品到抖音的短視頻,推薦系統(tǒng)已經(jīng)改變了用戶的瀏覽習(xí)慣。推薦系統(tǒng)由于具有幫用戶做出合適選擇的能力在網(wǎng)絡(luò)技術(shù)發(fā)展的時(shí)代下越來越有意義。
目前,推薦系統(tǒng)中主流的推薦算法有基于內(nèi)容的推薦、矩陣分解推薦、基于知識(shí)的推薦、協(xié)同過濾推薦、混合推薦等算法,其中協(xié)同過濾算法是基于用戶對(duì)商品的評(píng)分或其他行為(如購(gòu)買)來為用戶提供個(gè)性化的推薦,不需要了解用戶或商品的大量信息,不必進(jìn)行內(nèi)容分析,可較好地實(shí)現(xiàn)跨類別項(xiàng)目的推薦[1-2]。該算法根據(jù)目標(biāo)用戶的近鄰用戶(具有相似興趣的用戶)對(duì)物品的用戶偏好預(yù)測(cè)(推測(cè))目標(biāo)用戶對(duì)物品的偏好從而進(jìn)行推薦。因此,協(xié)同過濾算法被廣泛應(yīng)用于推薦系統(tǒng)中。協(xié)同過濾算法有CF based user (基于用戶的協(xié)同過濾)和CF based item(基于項(xiàng)目于的協(xié)同過濾) 兩種。由于本文所研究的算法場(chǎng)景是項(xiàng)目增長(zhǎng)量大于用戶增長(zhǎng)量的電影等場(chǎng)景,計(jì)算項(xiàng)目相似度比用戶相似度復(fù)雜,故本文選擇在基于用戶的協(xié)同過濾算法基礎(chǔ)上進(jìn)行研究。
在日常生活中,朋友經(jīng)常一起購(gòu)物,是因?yàn)榕笥褜?duì)商品有相似的喜好。協(xié)同過濾也是在這類場(chǎng)景下產(chǎn)生的一種算法。它可以根據(jù)目標(biāo)用戶的朋友(近鄰)購(gòu)買的商品,對(duì)目標(biāo)用戶實(shí)現(xiàn)較為準(zhǔn)確的推薦。協(xié)同過濾算法主要根據(jù)歷史評(píng)分?jǐn)?shù)據(jù)進(jìn)行推薦,而隨著用戶和項(xiàng)目的急速增長(zhǎng),用戶只能對(duì)有限的項(xiàng)目進(jìn)行評(píng)分,項(xiàng)目也只能得到有限用戶的評(píng)分,評(píng)分?jǐn)?shù)據(jù)變得越來越稀疏[3],嚴(yán)重影響了推薦算法的準(zhǔn)確性。在數(shù)據(jù)稀疏的情形下真正具有相似興趣的用戶也不能被有效提取出來。
針對(duì)上述問題,專家學(xué)者提出了一系列的解決辦法。李文海等[4]提出了用默認(rèn)值填充缺失數(shù)據(jù)的矩陣填充技術(shù)。韓亞楠等[5]提出采用用戶平均評(píng)分填充評(píng)分矩陣缺失值。李遠(yuǎn)博等[6]提出用PCA對(duì)評(píng)分矩陣降維,保留信息量最大的幾個(gè)特征,在保證不影響結(jié)果的提前下緩解數(shù)據(jù)稀疏性帶來的影響。鄧愛林等[7]通過基于項(xiàng)目的協(xié)同過濾算法對(duì)用戶未評(píng)分項(xiàng)目進(jìn)行評(píng)分預(yù)測(cè),將評(píng)分預(yù)測(cè)值填充到評(píng)分稀疏矩陣中。陳宗言等[8]通過引入項(xiàng)目的特征,計(jì)算項(xiàng)目間特征的相似度,預(yù)測(cè)用戶對(duì)未評(píng)分項(xiàng)目的評(píng)分,填充稀疏矩陣。Elahi M等[9]提出了主動(dòng)學(xué)習(xí),有選擇地選擇要呈現(xiàn)給用戶的項(xiàng)目以獲得其評(píng)分并最終提高推薦準(zhǔn)確性。Najafabadi M K等[10]引入用戶與項(xiàng)目的隱式交互記錄,計(jì)算基于特征的項(xiàng)目相似度實(shí)現(xiàn)推薦。王潘潘等[11]提出了一種改進(jìn)的加權(quán) Slope one 協(xié)同過濾推薦算法,計(jì)算相似度選擇最近鄰,用Slope one算法預(yù)測(cè)值填充用戶未評(píng)分項(xiàng)。Kim K等[12]通過社交網(wǎng)絡(luò)分析(SNA)和聚類技術(shù)來提高準(zhǔn)確性。Tong C等[13]結(jié)合時(shí)間對(duì)用戶和項(xiàng)目的影響,提出了TimeTrustSVD,一種集成時(shí)間信息、信任關(guān)系和評(píng)價(jià)得分的協(xié)同過濾模型。肖文強(qiáng)等[14]引入用戶共同評(píng)分權(quán)重、物品時(shí)間差因素以及流行物品權(quán)重,將興趣相似的用戶聚成一類,在類內(nèi)應(yīng)用推薦算法分別為用戶進(jìn)行推薦。孟桓羽等[15]通過建立基于圖的評(píng)分?jǐn)?shù)據(jù)模型,將傳統(tǒng)的協(xié)同過濾算法與圖計(jì)算及改進(jìn)的KNN算法相結(jié)合來提高推薦準(zhǔn)確度。張海霞等[16]引入加權(quán)異構(gòu)信息來緩解數(shù)據(jù)稀疏性造成的推薦不準(zhǔn)確問題。
上述學(xué)者提出的方法都可以在一定程度上緩解數(shù)據(jù)稀疏性問題,但都沒有考慮到項(xiàng)目間存在的相關(guān)性,或者僅考慮到兩個(gè)項(xiàng)目之間的關(guān)聯(lián)關(guān)系[17]。為了緩解稀疏性問題,本文提出了基于關(guān)聯(lián)規(guī)則的協(xié)同過濾改進(jìn)算法。即設(shè)置相似度閾值,選定目標(biāo)用戶的k個(gè)近鄰用戶,若選擇的k個(gè)近鄰與目標(biāo)用戶的相似度不小于閾值,則按協(xié)同過濾算法推薦,否則應(yīng)用關(guān)聯(lián)規(guī)則技術(shù)進(jìn)行推薦。協(xié)同過濾算法按照傳統(tǒng)的基于用戶的協(xié)同過濾算法進(jìn)行推薦,而用關(guān)聯(lián)規(guī)則技術(shù)進(jìn)行推薦則先應(yīng)用Apriori算法,挖掘出強(qiáng)關(guān)聯(lián)規(guī)則,從而發(fā)現(xiàn)項(xiàng)目間的關(guān)聯(lián)關(guān)系,以支持度和置信度的乘積作為推薦度進(jìn)行推薦。
基于用戶的協(xié)同過濾算法的推薦思想是:如果某些用戶評(píng)分高的項(xiàng)目重合度高,那么這些用戶是興趣度相似的用戶,對(duì)其他項(xiàng)目的評(píng)分也相似。該算法首先建立用戶項(xiàng)目評(píng)分矩陣,然后根據(jù)目標(biāo)用戶與其他用戶的共同評(píng)分項(xiàng)計(jì)算出目標(biāo)用戶與其他用戶之間的相似度,用相似度選取目標(biāo)用戶的近鄰,目標(biāo)用戶對(duì)未評(píng)分項(xiàng)目的評(píng)分依據(jù)近鄰用戶對(duì)該項(xiàng)目的評(píng)分進(jìn)行預(yù)測(cè),最后選取評(píng)分高的項(xiàng)目進(jìn)行推薦。
評(píng)估相似度的方法有多種,如余弦相似度及調(diào)整的余弦相似度、皮爾遜相關(guān)系數(shù)(Pearson相關(guān)系數(shù))、Jaccard相似系數(shù)、Tanimoto系數(shù)(廣義Jaccard相似系數(shù))、對(duì)數(shù)似然相似度等。其中常用的3種相似度度量方法是:余弦相似度,修正的余弦相似度,Pearson相關(guān)系數(shù)。
要對(duì)目標(biāo)用戶進(jìn)行推薦首先要建立用戶評(píng)分矩陣,假設(shè)數(shù)據(jù)中有m個(gè)用戶n個(gè)項(xiàng)目,數(shù)據(jù)轉(zhuǎn)化的m行n列的評(píng)分矩陣見式(1)。其中:i行j列的元素Rij代表的是用戶i對(duì)項(xiàng)目j的評(píng)分;?代表的未評(píng)分或缺失值。
(1)
用戶i和j相似度的計(jì)算方法是:首先得到用戶i和用戶j共同評(píng)分的所有項(xiàng)目,然后通過相似度計(jì)算方法計(jì)算用戶i和j的相似度,記為sim(i,j)。
余弦相似度:用兩個(gè)向量的余弦值作為衡量相似度的標(biāo)準(zhǔn),兩個(gè)向量夾角越小,相似度越強(qiáng)。設(shè)Iij是用戶i和j共同評(píng)分的項(xiàng)目集合,Ric是用戶i對(duì)項(xiàng)目c的評(píng)分,Rjc是用戶j對(duì)項(xiàng)目c的評(píng)分,則
(2)
(3)
(4)
考慮到用戶之間評(píng)分尺度不同這個(gè)重要因素,選擇修正余弦相似度和Pearson相似度。經(jīng)實(shí)驗(yàn)證明:Pearson相似度效果最好,本文選擇Pearson相似度計(jì)算方法。
根據(jù)上述選出的相似度計(jì)算方法計(jì)算目標(biāo)用戶與其他用戶的相似度,將相似度降序排序,選擇前k個(gè)作為該目標(biāo)用戶的鄰居集。
選擇好目標(biāo)用戶i的最近鄰居集合為NBSi,根據(jù)鄰居集中鄰居對(duì)目標(biāo)用戶未評(píng)分項(xiàng)目的評(píng)分預(yù)測(cè)目標(biāo)用戶的評(píng)分。目標(biāo)用戶i對(duì)未評(píng)分項(xiàng)目c的預(yù)測(cè)評(píng)分計(jì)算公式為
(5)
由于互聯(lián)網(wǎng)推動(dòng)的電子商務(wù)的發(fā)展,用戶數(shù)目和項(xiàng)目數(shù)目呈指數(shù)級(jí)增長(zhǎng),而一個(gè)用戶對(duì)項(xiàng)目的購(gòu)買能力有限,只會(huì)購(gòu)買龐大項(xiàng)目中的少數(shù)項(xiàng)目而且用戶不一定對(duì)購(gòu)買過的項(xiàng)目都進(jìn)行評(píng)分,因而造成用戶評(píng)分?jǐn)?shù)據(jù)極度稀疏,某一個(gè)用戶的評(píng)分項(xiàng)目不及總項(xiàng)目的1%。相似度計(jì)算依靠的是用戶間的共同評(píng)分,數(shù)據(jù)稀疏情況下,相似度計(jì)算方法不能準(zhǔn)確計(jì)算用戶間的相似度,從而無法選擇和目標(biāo)用戶興趣品味相似的鄰居集,導(dǎo)致目標(biāo)用戶對(duì)未評(píng)分項(xiàng)目評(píng)分預(yù)測(cè)不準(zhǔn)確,影響推薦質(zhì)量。
為了降低數(shù)據(jù)稀疏性造成的推薦效果不佳的影響,本文在計(jì)算相似度時(shí)先統(tǒng)計(jì)用戶與鄰居的共同評(píng)分項(xiàng)目數(shù),設(shè)置計(jì)算相似度的最小共同項(xiàng)目數(shù),當(dāng)共同評(píng)分的項(xiàng)目數(shù)小于設(shè)置值時(shí)則將相似度設(shè)置為0。然后設(shè)置相似度閾值,若選擇的鄰居集中的用戶與目標(biāo)用戶的相似度都不小于閾值,則按協(xié)同過濾算法推薦,否則應(yīng)用關(guān)聯(lián)規(guī)則技術(shù)進(jìn)行推薦。
關(guān)聯(lián)規(guī)則是數(shù)據(jù)挖掘技術(shù)中挖掘項(xiàng)目相關(guān)性的一類規(guī)則,最早由Agrawal等于1993年提出[18],能夠揭示項(xiàng)集之間的關(guān)聯(lián)。關(guān)聯(lián)規(guī)則技術(shù)最初應(yīng)用在零售業(yè)中,把具有相關(guān)性的商品進(jìn)行打包銷售?;陉P(guān)聯(lián)規(guī)則的推薦算法利用關(guān)聯(lián)規(guī)則挖掘出項(xiàng)目間的相關(guān)性,將用戶未購(gòu)買但與已購(gòu)買項(xiàng)目相關(guān)性大的項(xiàng)目推薦給用戶。其中Apriori算法[19]是最經(jīng)典的關(guān)聯(lián)規(guī)則挖掘算法。
關(guān)聯(lián)規(guī)則挖掘已經(jīng)被廣泛采用來提升推薦質(zhì)量,挖掘用戶的興趣度模式。關(guān)聯(lián)規(guī)則形如X={x1,x2,…,xm}?Y={y1,y2,…,yn},意味著用戶購(gòu)買了X則很大程度上可能會(huì)購(gòu)買Y。其中,X和Y分別稱為關(guān)聯(lián)規(guī)則的前項(xiàng)和后項(xiàng)。常用的關(guān)聯(lián)規(guī)則挖掘算法有Apriori算法和FP-Growth算法兩種。本文選擇最為經(jīng)典的Apriori算法。以下是關(guān)聯(lián)規(guī)則相關(guān)概念。
定義1 項(xiàng)集: 項(xiàng)集是項(xiàng)的集合。一條購(gòu)買記錄中每一個(gè)item為一個(gè)項(xiàng),包含k個(gè)項(xiàng)的項(xiàng)集稱為k項(xiàng)集。
定義2 支持度(support):假設(shè)規(guī)則X?Y,支持度表示X作為前項(xiàng)Y作為后項(xiàng)在所有事務(wù)中同時(shí)出現(xiàn)的概率。最小支持度是X、Y同時(shí)出現(xiàn)的最小概率,是評(píng)估支持度的一個(gè)閾值。
(6)
定義3 置信度(confidence):假設(shè)規(guī)則X?Y,置信度表示在購(gòu)買X的情況下購(gòu)買Y的概率。最小置信度是評(píng)估置信度可靠性的一個(gè)閾值,表示關(guān)聯(lián)規(guī)則的最低可靠性。
(7)
定義4 頻繁項(xiàng):經(jīng)常出現(xiàn)在一塊的物品的集合。也就是關(guān)聯(lián)規(guī)則的支持度不低于最小支持度的前后項(xiàng)組成的項(xiàng)集稱為頻繁項(xiàng),否則為非頻繁項(xiàng)。
定義5 強(qiáng)關(guān)聯(lián)規(guī)則:支持度不小于最小支持度且置信度不小于最小置信度的規(guī)則。
Apriori算法主要包含兩個(gè)步驟:首先找出事務(wù)數(shù)據(jù)庫(kù)中所有不小于用戶指定的最小支持度的數(shù)據(jù)項(xiàng)集(頻繁項(xiàng)集);然后利用頻繁項(xiàng)集結(jié)合最小置信度生成強(qiáng)關(guān)聯(lián)規(guī)則。此算法基于性質(zhì):若一個(gè)項(xiàng)集是非頻繁項(xiàng)集,則它的所有超集也是非頻繁項(xiàng)集。該算法有兩個(gè)關(guān)鍵步驟分別為連接步和剪枝步。
關(guān)聯(lián)規(guī)則挖掘所需的數(shù)據(jù)為事務(wù)型數(shù)據(jù),一條事務(wù)型記錄代表一次交易(購(gòu)買),所以需將數(shù)據(jù)轉(zhuǎn)化為事務(wù)型數(shù)據(jù)。
采用Apriori算法進(jìn)行數(shù)據(jù)挖掘,其輸入為:處理成事務(wù)型的數(shù)據(jù)集,最小支持度minSupport,最小置信度minConfidence;其輸出為:強(qiáng)關(guān)聯(lián)規(guī)則。具體步驟如下:
1) 掃描全部數(shù)據(jù)集,產(chǎn)生候選1-項(xiàng)集C1;
2) 根據(jù)最小支持度,由候選1-項(xiàng)集C1產(chǎn)生頻繁1-項(xiàng)集L1;
3) 對(duì)k>1,重復(fù)執(zhí)行步驟4)、5)、6);
4)由Lk執(zhí)行連接和剪枝操作,產(chǎn)生候選(k+1)-項(xiàng)集C(k+1);
5) 根據(jù)最小支持度,由候選(k+1)-項(xiàng)集C(k+1),產(chǎn)生頻繁(k+1)-項(xiàng)集L(k+1);
6) 若L不空,則k=k+1,轉(zhuǎn)步驟4);否則,轉(zhuǎn)步驟7);
7) 根據(jù)最小置信度,由頻繁項(xiàng)集過濾掉低于最小置信度的規(guī)則產(chǎn)生強(qiáng)關(guān)聯(lián)規(guī)則。
協(xié)同過濾算法中計(jì)算相似度的方法是Pearson相關(guān)系數(shù)度量方法,依據(jù)的是用戶對(duì)項(xiàng)目的顯式評(píng)分,而在數(shù)據(jù)稀疏性的情況下,評(píng)分?jǐn)?shù)很少會(huì)導(dǎo)致相似度計(jì)算不準(zhǔn)確影響推薦精度。因此,對(duì)于由于共同評(píng)分?jǐn)?shù)目稀少而不能用傳統(tǒng)協(xié)同過濾算法準(zhǔn)確推薦的則用關(guān)聯(lián)規(guī)則進(jìn)行推薦,緩解數(shù)據(jù)稀疏造成的負(fù)面影響。
由上述Apriori算法得出的強(qiáng)關(guān)聯(lián)規(guī)則組成集合Rrules,本文對(duì)Rrules里的關(guān)聯(lián)規(guī)則進(jìn)行拆分,拆分為關(guān)聯(lián)規(guī)則后表示為只有一個(gè)項(xiàng)目的形式,即將關(guān)聯(lián)規(guī)則拆分成多對(duì)一或一對(duì)一的形式,拆分形式如下:
(8)
令S為規(guī)則的支持度,C為規(guī)則的置信度,recom為規(guī)則的推薦度,可得:
recom(X?Y)=S(X?Y)·C(X?Y)
(9)
本文結(jié)合項(xiàng)目間的關(guān)聯(lián)關(guān)系,利用數(shù)據(jù)挖掘中的關(guān)聯(lián)規(guī)則技術(shù)緩解數(shù)據(jù)稀疏性對(duì)推薦質(zhì)量的影響?;陉P(guān)聯(lián)規(guī)則計(jì)算用戶對(duì)項(xiàng)目預(yù)測(cè)評(píng)分的公式為
(10)
MAI的形成:首先,找出后項(xiàng)為目標(biāo)項(xiàng)目的關(guān)聯(lián)規(guī)則;其次,將找到的關(guān)聯(lián)規(guī)則按推薦度值降序進(jìn)行排列;最后,設(shè)置推薦度閾值,提取不小于推薦度閾值的關(guān)聯(lián)規(guī)則,這些關(guān)聯(lián)規(guī)則的前項(xiàng)組成MAI。
設(shè)置用戶間的相似度閾值為α,利用Pearson相關(guān)性度量方法計(jì)算目標(biāo)用戶i和其他用戶間的相似度,然后對(duì)相似度進(jìn)行降序排序,選擇前k個(gè)用戶作為目標(biāo)用戶的最近鄰,m為第k個(gè)用戶,則用戶i對(duì)項(xiàng)目c的預(yù)測(cè)評(píng)分值計(jì)算公式如下:
(11)
首先介紹實(shí)驗(yàn)環(huán)境和所選用的數(shù)據(jù)集,然后介紹實(shí)驗(yàn)內(nèi)容,最后根據(jù)選用的數(shù)據(jù)集將本文算法與傳統(tǒng)算法相比較得出實(shí)驗(yàn)結(jié)果。
實(shí)驗(yàn)環(huán)境如下:筆記本,CPU為 @1.60 GHz 1.80 GHz,內(nèi)存8 GB,編程環(huán)境Anaconda-Spyder(python 3.6)。
實(shí)驗(yàn)數(shù)據(jù)集:美國(guó)明尼蘇達(dá)大學(xué)GroupLens小組給出的100k的movieLens 數(shù)據(jù)集。采用該數(shù)據(jù)集中的u.data,包含完整的用戶數(shù)據(jù)集,有943個(gè)用戶對(duì)1 682個(gè)項(xiàng)目的100 000個(gè)評(píng)分。每位用戶至少有20個(gè)評(píng)分?jǐn)?shù)據(jù)。用戶和項(xiàng)目從1開始連續(xù)編號(hào),數(shù)據(jù)是隨機(jī)排列的。這個(gè)列表是以用戶id|項(xiàng)目id|時(shí)間戳分割的一個(gè)列表。評(píng)分集合為{1,2,3,4,5},評(píng)分越大證明用戶對(duì)所評(píng)電影越滿意。實(shí)驗(yàn)中將數(shù)據(jù)隨機(jī)分成10份,一份作為測(cè)試集,其余作為訓(xùn)練集。
評(píng)估推薦系統(tǒng)性能的指標(biāo)有很多,如平均絕對(duì)誤差、均方根誤差、召回率、準(zhǔn)確率、覆蓋率、多樣性、流行度、F1指標(biāo)和AUC等。本文采用平均絕對(duì)誤差MAE(mean absolute error)和均方根誤差RMSE(root mean squared error)來評(píng)估推薦系統(tǒng)的性能。MAE、RMSE主要計(jì)算預(yù)測(cè)評(píng)分值與用戶真正評(píng)分值之間的誤差程度,MAE、RMSE值越小,推薦系統(tǒng)的推薦性能就越好。
(12)
(13)
其中:u為用戶;i為項(xiàng)目;T為測(cè)試集;rui為用戶u對(duì)用戶i的真實(shí)評(píng)分;為用戶u對(duì)用戶i的預(yù)測(cè)評(píng)分。
本文將實(shí)驗(yàn)分為兩部分,首先是對(duì)影響關(guān)聯(lián)規(guī)則質(zhì)量的指標(biāo)最小支度、最小置信度進(jìn)行比較,選擇最佳值作為接下來實(shí)驗(yàn)的基礎(chǔ);然后將本文提出的算法與傳統(tǒng)算法相比較,證明本文算法的有效性。
3.3.1選擇關(guān)聯(lián)規(guī)則最優(yōu)支持度、置信度的實(shí)驗(yàn)
在進(jìn)行關(guān)聯(lián)規(guī)則實(shí)驗(yàn)前,要對(duì)數(shù)據(jù)進(jìn)行處理。由于關(guān)聯(lián)規(guī)則挖掘輸入的是事務(wù)型數(shù)據(jù),因此要將數(shù)據(jù)集的數(shù)據(jù)處理成事務(wù)型數(shù)據(jù),再進(jìn)行實(shí)驗(yàn)。將評(píng)分不小于3的視為購(gòu)買,加入事務(wù)項(xiàng),否則視為不購(gòu)買。
在關(guān)聯(lián)規(guī)則挖掘算法中,最小支持度和最小置信度是影響關(guān)聯(lián)規(guī)則的兩個(gè)主要因素。為了獲取關(guān)聯(lián)規(guī)則的最優(yōu)最小支持度、置信度,設(shè)計(jì)如下實(shí)驗(yàn):通過設(shè)置一系列關(guān)聯(lián)規(guī)則推薦算法的最小支持度和最小置信度,觀察關(guān)聯(lián)規(guī)則數(shù)目隨最小支持度和最小置信度的變化規(guī)律。實(shí)驗(yàn)結(jié)果如圖1所示。考慮到數(shù)據(jù)量較大,設(shè)置的支持度范圍為15%~40%。實(shí)驗(yàn)首先將最小支持度設(shè)為15%,觀察最小置信度在20%~70%的MAE和RMSE的變化,找出最佳最小置信度。然后,設(shè)置最小置信度為找出的最佳最小置信度,觀察最小支持度在15%~40%的MAE和RMSE的變化,找出最佳最小支持度。實(shí)驗(yàn)結(jié)果如圖2、3所示。
圖1 最小支持度在不同置信度下與規(guī)則數(shù)目的關(guān)系
由圖1可以看出:在最小置信度一定的情況下,關(guān)聯(lián)規(guī)則推薦算法的規(guī)則數(shù)隨著最小支持度的增加不斷下降直至規(guī)則數(shù)為0,而在最小支持度一定的情況下,置信度越大,規(guī)則數(shù)目越少。由此可知,最小支持度、置信度太小,規(guī)則數(shù)太多,關(guān)聯(lián)規(guī)則質(zhì)量比較低;最小支持度、置信度太大,則會(huì)把有效規(guī)則過濾掉。因而,在合適的最小支持度、置信度時(shí)關(guān)聯(lián)規(guī)則質(zhì)量較高。
圖3 最小置信度為0.5,最小支持度與MAE、RMSE的關(guān)系
由圖2可知:在最小支持度設(shè)置為0.15,最小置信度在0.5時(shí)MAE、RSME最小,算法獲得最優(yōu)推薦質(zhì)量,最佳最小置信度為0.5。由圖3可知:在最佳最小置信度下,最小支持度為0.2時(shí),MAE、RSME最小,算法獲得最優(yōu)推薦質(zhì)量。因此,當(dāng)最小支持度為0.2,最小置信度為0.5時(shí),關(guān)聯(lián)規(guī)則推薦算法取得最優(yōu)推薦質(zhì)量。
3.3.2 本文算法有效性實(shí)驗(yàn)
為了驗(yàn)證本文提出的基于關(guān)聯(lián)規(guī)則的協(xié)同過濾改進(jìn)算法的有效性,在上述最佳最小支持度、置信度條件下,將基于關(guān)聯(lián)規(guī)則的協(xié)同過濾算法(ARCF)與傳統(tǒng)基于用戶的協(xié)同過濾算法(UCF)、基于用戶平均值填充的協(xié)同過濾算法(UACF)進(jìn)行對(duì)比實(shí)驗(yàn)。在測(cè)試數(shù)據(jù)集上,這些算法在不同最近鄰上的性能表現(xiàn)見圖4、5。
由圖4、5可以發(fā)現(xiàn):本文提出的算法的MAE、RMSE平均都比傳統(tǒng)協(xié)同過濾算法小,即本文算法推薦的準(zhǔn)確度更高??梢缘贸?,關(guān)聯(lián)規(guī)則技術(shù)的引入可以提高推薦準(zhǔn)確性,一定程度緩解數(shù)據(jù)稀疏性問題。當(dāng)近鄰數(shù)目為90時(shí),基于關(guān)聯(lián)規(guī)則的協(xié)同過濾推薦算法推薦質(zhì)量最優(yōu)。
圖4 三種算法在不同鄰居數(shù)目下MAE的比較
圖5 三種算法在不同鄰居數(shù)目下RMSE的比較
協(xié)同過濾算法由于其簡(jiǎn)單、可實(shí)現(xiàn)跨項(xiàng)目推薦等優(yōu)點(diǎn)成為目前在推薦系統(tǒng)中應(yīng)用最廣泛、最成功的推薦算法,但是該算法的實(shí)現(xiàn)依賴用戶項(xiàng)目的顯式評(píng)分?jǐn)?shù)據(jù)。當(dāng)今互聯(lián)網(wǎng)行業(yè)蓬勃發(fā)展,各種線上網(wǎng)站發(fā)展迅速,用戶量和數(shù)據(jù)量急速上升,由于用戶購(gòu)買能力有限造成的評(píng)分?jǐn)?shù)據(jù)稀疏性越來越嚴(yán)重,因而協(xié)同過濾算法推薦效果不佳。針對(duì)數(shù)據(jù)稀疏性問題,本文考慮到項(xiàng)目間存在的關(guān)聯(lián)關(guān)系,提出了基于關(guān)聯(lián)規(guī)則的協(xié)同過濾改進(jìn)算法。設(shè)置相似度閾值,若選擇的鄰居集中的近鄰用戶與目標(biāo)用戶的相似度都不小于閾值,按協(xié)同過濾算法推薦,否則應(yīng)用關(guān)聯(lián)規(guī)則技術(shù)進(jìn)行推薦。經(jīng)過實(shí)驗(yàn)證明:基于關(guān)聯(lián)規(guī)則的協(xié)同過濾改進(jìn)算法在一定程度上緩解了數(shù)據(jù)稀疏性,提高了推薦精度。在基于關(guān)聯(lián)規(guī)則的推薦算法中,如果數(shù)據(jù)中具有關(guān)聯(lián)關(guān)系的項(xiàng)目較少,提取出來的強(qiáng)關(guān)聯(lián)規(guī)則就較少,關(guān)聯(lián)規(guī)則起不到應(yīng)有的推薦作用。解決此問題是下一步的研究工作。