《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 一種改進(jìn)的缺失數(shù)據(jù)協(xié)同過(guò)濾推薦算法
一種改進(jìn)的缺失數(shù)據(jù)協(xié)同過(guò)濾推薦算法
2016年微型機(jī)與應(yīng)用第17期
周明升1,2,韓冬梅1
1. 上海財(cái)經(jīng)大學(xué) 信息管理與工程學(xué)院,上海 200433;2.上海外高橋保稅區(qū)聯(lián)合發(fā)展有限公司,上海 200131
摘要: 協(xié)同過(guò)濾推薦算法是推薦系統(tǒng)研究的熱點(diǎn),近年來(lái),在亞馬遜、淘寶等商業(yè)系統(tǒng)中獲得應(yīng)用。在實(shí)際應(yīng)用過(guò)程中,協(xié)同過(guò)濾推薦面臨數(shù)據(jù)稀疏和準(zhǔn)確性低的問(wèn)題。作為推薦基礎(chǔ)的用戶(hù)產(chǎn)品(項(xiàng)目)矩陣通常非常稀疏(存在大量缺失數(shù)據(jù)),從而導(dǎo)致推薦結(jié)果不準(zhǔn)確。文章試圖在缺失數(shù)據(jù)情況下提高協(xié)同過(guò)濾推薦的準(zhǔn)確性,聚焦以下兩個(gè)方面:(1)用戶(hù)相似度、產(chǎn)品(項(xiàng)目)相似度計(jì)算;(2)缺失數(shù)據(jù)預(yù)測(cè)。首先,用增強(qiáng)的皮爾森相關(guān)系數(shù)算法,通過(guò)增加參數(shù),對(duì)相似度進(jìn)行修正,提高用戶(hù)、產(chǎn)品(項(xiàng)目)相似度計(jì)算的準(zhǔn)確率。接著,提出一種同時(shí)考慮了用戶(hù)和產(chǎn)品(項(xiàng)目)特征的缺失數(shù)據(jù)預(yù)測(cè)算法。算法中,對(duì)用戶(hù)和產(chǎn)品(項(xiàng)目)分別設(shè)置相似度閾值,只有當(dāng)用戶(hù)或產(chǎn)品(項(xiàng)目)相似度達(dá)到閾值時(shí),才進(jìn)行缺失數(shù)據(jù)預(yù)測(cè)。預(yù)測(cè)過(guò)程中,同時(shí)使用用戶(hù)和產(chǎn)品(項(xiàng)目)相似度信息,以提高準(zhǔn)確度。在模型基礎(chǔ)上,用淘寶移動(dòng)客戶(hù)端的數(shù)據(jù)集進(jìn)行了驗(yàn)證,實(shí)驗(yàn)結(jié)果表明所提算法比其他推薦算法要優(yōu)異,對(duì)數(shù)據(jù)稀疏性的魯棒性要高。
Abstract:
Key words :

  周明升1,2,韓冬梅1
 ?。?. 上海財(cái)經(jīng)大學(xué) 信息管理與工程學(xué)院,上海 200433;2.上海外高橋保稅區(qū)聯(lián)合發(fā)展有限公司,上海 200131)

       摘要:協(xié)同過(guò)濾推薦算法是推薦系統(tǒng)研究的熱點(diǎn),近年來(lái),在亞馬遜、淘寶等商業(yè)系統(tǒng)中獲得應(yīng)用。在實(shí)際應(yīng)用過(guò)程中,協(xié)同過(guò)濾推薦面臨數(shù)據(jù)稀疏和準(zhǔn)確性低的問(wèn)題。作為推薦基礎(chǔ)的用戶(hù)產(chǎn)品(項(xiàng)目)矩陣通常非常稀疏(存在大量缺失數(shù)據(jù)),從而導(dǎo)致推薦結(jié)果不準(zhǔn)確。文章試圖在缺失數(shù)據(jù)情況下提高協(xié)同過(guò)濾推薦的準(zhǔn)確性,聚焦以下兩個(gè)方面:(1)用戶(hù)相似度、產(chǎn)品(項(xiàng)目)相似度計(jì)算;(2)缺失數(shù)據(jù)預(yù)測(cè)。首先,用增強(qiáng)的皮爾森相關(guān)系數(shù)算法,通過(guò)增加參數(shù),對(duì)相似度進(jìn)行修正,提高用戶(hù)、產(chǎn)品(項(xiàng)目)相似度計(jì)算的準(zhǔn)確率。接著,提出一種同時(shí)考慮了用戶(hù)和產(chǎn)品(項(xiàng)目)特征的缺失數(shù)據(jù)預(yù)測(cè)算法。算法中,對(duì)用戶(hù)和產(chǎn)品(項(xiàng)目)分別設(shè)置相似度閾值,只有當(dāng)用戶(hù)或產(chǎn)品(項(xiàng)目)相似度達(dá)到閾值時(shí),才進(jìn)行缺失數(shù)據(jù)預(yù)測(cè)。預(yù)測(cè)過(guò)程中,同時(shí)使用用戶(hù)和產(chǎn)品(項(xiàng)目)相似度信息,以提高準(zhǔn)確度。在模型基礎(chǔ)上,用淘寶移動(dòng)客戶(hù)端的數(shù)據(jù)集進(jìn)行了驗(yàn)證,實(shí)驗(yàn)結(jié)果表明所提算法比其他推薦算法要優(yōu)異,對(duì)數(shù)據(jù)稀疏性的魯棒性要高。
  關(guān)鍵詞:協(xié)同過(guò)濾;推薦系統(tǒng);缺失數(shù)據(jù)預(yù)測(cè);數(shù)據(jù)稀疏性 

0引言
  協(xié)同過(guò)濾推薦算法(Collaborative Filtering Recommendation Algorithm),通過(guò)收集相似用戶(hù)或產(chǎn)品(項(xiàng)目)的評(píng)分信息來(lái)預(yù)測(cè)用戶(hù)興趣,從而進(jìn)行產(chǎn)品(項(xiàng)目)的推薦。對(duì)用戶(hù)或產(chǎn)品(項(xiàng)目)的相似性進(jìn)行計(jì)算,通過(guò)用戶(hù)產(chǎn)品(項(xiàng)目)矩陣來(lái)預(yù)測(cè)用戶(hù)偏好。根據(jù)角度不同,協(xié)同過(guò)濾推薦分為基于用戶(hù)的方法和基于產(chǎn)品(項(xiàng)目)的方法。算法中,計(jì)算用戶(hù)或產(chǎn)品(項(xiàng)目)之間的相似度是關(guān)鍵步驟,常見(jiàn)的相似度計(jì)算方法有:皮爾森相關(guān)系數(shù)算法(Pearson Correlation Coefficient Algorithm,PCC)[1]和空間向量相似度算法(Vector Space Similarity Algorithm,VSS)[2]。
  實(shí)際應(yīng)用中,因?yàn)橛脩?hù)產(chǎn)品(項(xiàng)目)矩陣的稀疏性(存在大量缺失數(shù)據(jù)),造成推薦結(jié)果不準(zhǔn)確,許多研究試圖解決矩陣的數(shù)據(jù)稀疏性問(wèn)題。Wang Jun等人構(gòu)建了一種概率框架,通過(guò)已有數(shù)據(jù)來(lái)預(yù)測(cè)用戶(hù)-產(chǎn)品(項(xiàng)目)矩陣中的值[3]。XUE G R等人提出了一種同時(shí)基于內(nèi)容和建模的協(xié)同過(guò)濾框架,通過(guò)平滑算法,預(yù)測(cè)用戶(hù)產(chǎn)品(項(xiàng)目)矩陣中的缺失數(shù)據(jù)[4]。MA H等人提出綜合考慮用戶(hù)信息和產(chǎn)品(項(xiàng)目)信息來(lái)預(yù)測(cè)缺失數(shù)據(jù)的方法[5],對(duì)協(xié)同過(guò)濾算法進(jìn)行了改進(jìn)。這些方法可以取得比傳統(tǒng)協(xié)同過(guò)濾算法更好的結(jié)果,但基于概率或聚類(lèi)的平滑算法沒(méi)有區(qū)分同一組內(nèi)用戶(hù)的差別。同時(shí),預(yù)測(cè)用戶(hù)-產(chǎn)品(項(xiàng)目)矩陣中的所有缺失數(shù)據(jù)也可能為當(dāng)前用戶(hù)的推薦帶來(lái)負(fù)面影響。
  為解決上述問(wèn)題,本文采用增強(qiáng)的皮爾森相關(guān)系數(shù)來(lái)衡量用戶(hù)間與產(chǎn)品(項(xiàng)目)間的相似性(并進(jìn)行修正),綜合考慮用戶(hù)信息和產(chǎn)品(項(xiàng)目)信息,提出一種改進(jìn)的缺失數(shù)據(jù)預(yù)測(cè)算法:當(dāng)且僅當(dāng)預(yù)測(cè)缺失數(shù)據(jù)會(huì)為當(dāng)前用戶(hù)的推薦帶來(lái)積極影響時(shí)(相似度達(dá)到閥值)才進(jìn)行缺失數(shù)據(jù)預(yù)測(cè),否則不進(jìn)行預(yù)測(cè)。在完成缺失數(shù)據(jù)預(yù)測(cè)后,進(jìn)行協(xié)同過(guò)濾推薦。實(shí)驗(yàn)顯示,本文所提方法比傳統(tǒng)方法效果要好。
1相似度計(jì)算及修正
  1.1相似度計(jì)算

  RESNICK P等人已經(jīng)證明,基于皮爾森相關(guān)系數(shù)(PCC)的協(xié)同過(guò)濾,其效果通常比基于空間向量相似度算法(VSS)等方法要好,因?yàn)樗紤]了不同用戶(hù)打分標(biāo)準(zhǔn)不同的因素[1]。在基于用戶(hù)的協(xié)同過(guò)濾算法[6]中,皮爾森相關(guān)系數(shù)(PCC)被用于定義有相同產(chǎn)品(項(xiàng)目)評(píng)分的不同用戶(hù)a和u之間的相似度,如下:
  QQ圖片20160926203015.png

  其中,Sim(a,u)定義了用戶(hù)a與用戶(hù)u之間的相似度,產(chǎn)品(項(xiàng)目)i是用戶(hù)a和用戶(hù)u都評(píng)過(guò)分的產(chǎn)品(項(xiàng)目)。ra,i是用戶(hù)a對(duì)產(chǎn)品(項(xiàng)目)i的評(píng)分,ra是用戶(hù)a的平均評(píng)分。基于產(chǎn)品(項(xiàng)目)的方法[7]可以類(lèi)似得出(本文不再贅述)。
  1.2相似度修正
  MCLAUGHLIN M R等人研究發(fā)現(xiàn),皮爾森相關(guān)系數(shù)(PCC)有時(shí)會(huì)高估用戶(hù)之間的相似性,特別是當(dāng)用戶(hù)正好對(duì)一些產(chǎn)品(項(xiàng)目)打分相似,而整體相似度不同時(shí)[8]。為解決這一問(wèn)題,本文引入相關(guān)性權(quán)重指標(biāo),對(duì)相似度計(jì)算進(jìn)行修正,如下:
  QQ圖片20160926203019.png

  式(2)在一定程度上解決了數(shù)據(jù)稀疏性問(wèn)題(僅有少量產(chǎn)品(項(xiàng)目)被用戶(hù)評(píng)分),但當(dāng)|Ia∩Iu|遠(yuǎn)比γ大時(shí),相似度Sim′(a,u)將大于1,為此,筆者進(jìn)行了變換,改進(jìn)如下:
  QQ圖片20160926203023.png

  其中,|Ia∩Iu|是用戶(hù)a和用戶(hù)u都評(píng)價(jià)過(guò)的產(chǎn)品(項(xiàng)目)集個(gè)數(shù)。
2缺失數(shù)據(jù)預(yù)測(cè)
  基于用戶(hù)的協(xié)同過(guò)濾算法通過(guò)相似用戶(hù)的評(píng)分來(lái)預(yù)測(cè)缺失數(shù)據(jù),根據(jù)不同情況,本文的預(yù)測(cè)方法如下:
  模型1:當(dāng)S(u)≠,且S(i)≠時(shí),即用戶(hù)相似度和產(chǎn)品(項(xiàng)目)相似度均達(dá)到閾值(分別為η和θ)時(shí),缺失數(shù)據(jù)預(yù)測(cè)為:
  QQ圖片20160926203028.png

  其中λ的取值范圍為[0,1]。
  模型2:當(dāng)S(u)=,但S(i)≠時(shí),即產(chǎn)品(項(xiàng)目)存在相似產(chǎn)品(項(xiàng)目),但用戶(hù)與其他用戶(hù)的相似度小于閾值η時(shí),缺失數(shù)據(jù)預(yù)測(cè)為:
  QQ圖片20160926203032.png

  模型3:當(dāng)S(u)≠,但S(i)=時(shí),即用戶(hù)存在相似用戶(hù),但產(chǎn)品(項(xiàng)目)與其他產(chǎn)品(項(xiàng)目)的相似度小于閾值θ時(shí),缺失數(shù)據(jù)預(yù)測(cè)為:
  QQ圖片20160926203036.png

  模型4:當(dāng)S(u)=,且S(i)=時(shí),即用戶(hù)與其他用戶(hù)的相似度小于閾值,且產(chǎn)品(項(xiàng)目)與其他產(chǎn)品(項(xiàng)目)之間的相似度小于閾值時(shí),缺失數(shù)據(jù)預(yù)測(cè)為:
  QQ圖片20160926203041.png

3實(shí)驗(yàn)分析
  3.1數(shù)據(jù)集

  用淘寶移動(dòng)客戶(hù)端的數(shù)據(jù)進(jìn)行試驗(yàn)分析,該數(shù)據(jù)集來(lái)自阿里巴巴天池大數(shù)據(jù)研究平臺(tái),為公開(kāi)數(shù)據(jù)。數(shù)據(jù)集中有超過(guò)104萬(wàn)條記錄,來(lái)自723個(gè)用戶(hù)對(duì)53 383個(gè)產(chǎn)品(項(xiàng)目)的評(píng)分。用戶(hù)產(chǎn)品(項(xiàng)目)矩陣的稀疏度為:1 048 575/(723×53 383)=2.72%。本文隨機(jī)獲取500個(gè)用戶(hù)數(shù)據(jù),并將其分為兩部分:取300個(gè)作為訓(xùn)練集,剩余的200個(gè)作為測(cè)試集(實(shí)際用戶(hù)集)。對(duì)不同用戶(hù)集,推薦產(chǎn)品(項(xiàng)目)數(shù)分別取10個(gè)、20個(gè)和30個(gè)。
  3.2比較方法
  用絕對(duì)平均誤差(Mean Absolute Error,MAE)作為衡量指標(biāo)。MAE被定義為:
 QQ圖片20160926203046.png

  其中,ru,i為用戶(hù)u對(duì)產(chǎn)品(項(xiàng)目)i的評(píng)分, r^u,i表示用本文方法預(yù)測(cè)的用戶(hù)u對(duì)產(chǎn)品(項(xiàng)目)i的評(píng)分,N為測(cè)試分?jǐn)?shù)的個(gè)數(shù),MAE值越小算法越好。
  3.3實(shí)驗(yàn)結(jié)果
  通過(guò)實(shí)驗(yàn),本文改進(jìn)的缺失數(shù)據(jù)協(xié)同過(guò)濾算法(IMDP)與其他推薦算法進(jìn)行比較,包括:基于用戶(hù)的皮爾森相關(guān)系數(shù)算法(UPCC)和基于產(chǎn)品(項(xiàng)目)的皮爾森相關(guān)系數(shù)算法(IPCC)、基于平滑和聚類(lèi)的皮爾森相關(guān)系數(shù)算法(SCBPCC)[4]、相似融合算法(SF)[3]、特征模型算法(AM)[9]。
  實(shí)驗(yàn)中,設(shè)定:用戶(hù)相似性與產(chǎn)品相似性的權(quán)重系數(shù)λ=0.6,不同用戶(hù)間同時(shí)評(píng)論的產(chǎn)品(項(xiàng)目)數(shù)參數(shù)γ=30,不同產(chǎn)品(項(xiàng)目)被同時(shí)評(píng)論的用戶(hù)數(shù)參數(shù)δ=30,用戶(hù)相似度閾值η=0.5,產(chǎn)品(項(xiàng)目)相似度閾值θ=0.5。
  實(shí)驗(yàn)表明(如表1所示),本文算法綜合考慮了用戶(hù)相似度、產(chǎn)品(項(xiàng)目)相似度,對(duì)相似度進(jìn)行了修正,設(shè)置了預(yù)測(cè)閾值,更加合理,在不同訓(xùn)練集、不用產(chǎn)品(項(xiàng)目)數(shù)情況下,推薦效果比其他方法要優(yōu)異。本文算法在不同樣本量、產(chǎn)品(項(xiàng)目)數(shù)下,MAE值均比較低,保持了較高的穩(wěn)定性。

圖像 001.png

4結(jié)論
  本文提供了一種改進(jìn)的缺失數(shù)據(jù)協(xié)同過(guò)濾方法。通過(guò)判斷用戶(hù)、產(chǎn)品(項(xiàng)目)是否有相似用戶(hù)、產(chǎn)品(項(xiàng)目),決定是否預(yù)測(cè)缺失數(shù)據(jù)。如果需要預(yù)測(cè),則同時(shí)考慮用戶(hù)信息和產(chǎn)品(項(xiàng)目)信息,以提高預(yù)測(cè)準(zhǔn)確度。用淘寶移動(dòng)客戶(hù)端數(shù)據(jù)進(jìn)行了對(duì)比驗(yàn)證,實(shí)驗(yàn)結(jié)果顯示,本文方法比其他推薦方法更加優(yōu)異。
  通過(guò)整合用戶(hù)和產(chǎn)品(項(xiàng)目)信息,采用基于用戶(hù)和產(chǎn)品(項(xiàng)目)的方法,得到了更好的預(yù)測(cè)結(jié)果。接下來(lái),將從以下幾個(gè)方面做進(jìn)一步研究:(1)用戶(hù)相似性和產(chǎn)品相似性的權(quán)重系數(shù)變化對(duì)預(yù)測(cè)結(jié)果的影響;(2)用戶(hù)數(shù)、產(chǎn)品(項(xiàng)目)數(shù)參數(shù)變化對(duì)預(yù)測(cè)結(jié)果的影響;(3)用戶(hù)相似度、產(chǎn)品(項(xiàng)目)相似度閾值的變化對(duì)預(yù)測(cè)結(jié)果的影響;(4)用戶(hù)信息、產(chǎn)品(項(xiàng)目)信息之間關(guān)系的研究等。

       參考文獻(xiàn)
  [1] RESNICK P, IACOVOU N, SUCHAK M, et al. Grouplens: an open architecture for collaborative filtering of netnews[C]. Proceedings of ACM Conference on Computer Supported Cooperative Work, 1994:175 186.
 ?。?] BREESE J S, HECKERMAN D, KADIE C. Empirical analysis of predictive algorithms for collaborative filtering[C]. In Proceedings of the 14th Conference on Uncertainty in Articifical Intelligence, 1998:43 52.
 ?。?] Wang Jun, DEVRIES A P, REINDERS M J T. Unifying userbased and itembased collaborative filtering approaches by similarity fusion[A]. Proceedings of the 29th Annual International ACM SIGIR Conference on Research and Development in Information Retrieval[C].USA:Seatole, 2006:501 508.
 ?。?] XUE G R, LIN C, YANG Q, et al. Scalable collaborative filtering using clusterbased smoothing[C]. Proceedings 28th International ACM SIGIR Conference on Research and Development in Information Retrieval, 2005:114 121.
 ?。?] Ma Hao, KING I, LYU M R. Effective missing data prediction for collaborate filtering[C]. SIGIR 2007: Proceedings of the Intermational ACM SIGIR Conference on Research and Development in Information Retrieval, Amsterdam the Netherlands, 2007:3946.
  [6] 黃創(chuàng)光,印鑒,汪靜,等.不確定近鄰的協(xié)同過(guò)濾推薦算法[J].計(jì)算機(jī)學(xué)報(bào),2010,33(8):13691376.
  [7] 鄧愛(ài)林, 朱揚(yáng)勇, 施伯樂(lè).基于項(xiàng)目評(píng)分預(yù)測(cè)的協(xié)同過(guò)濾推薦算法[J].軟件學(xué)報(bào),2003,14(9):1621 1628.
 ?。?] MCLAUGHLIN M R, HERLOCKER J L. A collaborative filtering algorithm and evaluation metric that accurately model the user experience[C]. International ACM SIGIR Conference on Reseach and Development in Information Retrieral. ACM, 2004:329 336.
 ?。?] HOFMANN T, HOFMANN T. Latent semantic models for collaborative filtering[J]. ACM Transactions on Information Systems, 2004, 22(1):89 115.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。