孫 紅,韓 震
(上海理工大學(xué),上海 200093) (上?,F(xiàn)代光學(xué)系統(tǒng)重點(diǎn)實(shí)驗(yàn)室,上海 200093) E-mail :1114580685@qq.com
隨著信息與互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,過(guò)去信息閉塞與匱乏的時(shí)代已經(jīng)一去不復(fù)返,相反,人們進(jìn)入了一個(gè)信息過(guò)載的時(shí)代.在這個(gè)時(shí)代當(dāng)中,無(wú)論是消費(fèi)者還是生產(chǎn)者,都會(huì)遇到一個(gè)棘手的問(wèn)題:對(duì)于爆炸式增長(zhǎng)的信息量,如何從大量信息中快速、準(zhǔn)確獲取自己需要的信息[1].在這種背景下,為了解決信息過(guò)載的問(wèn)題,推薦系統(tǒng)應(yīng)運(yùn)而生.推薦系統(tǒng)不需要用戶(hù)提供明確的需求,而是通過(guò)收集和分析用戶(hù)的歷史行為對(duì)用戶(hù)進(jìn)行興趣建模,之后根據(jù)建立好的興趣模型主動(dòng)給用戶(hù)推薦所需的信息.推薦系統(tǒng)應(yīng)用于多個(gè)領(lǐng)域,在電影視頻推薦領(lǐng)域,Netflix比賽是標(biāo)志性的視頻推薦系統(tǒng)比賽,旨在提高視頻推薦系統(tǒng)的推薦效果[2],另外尤其是在電子商務(wù)平臺(tái)領(lǐng)域中,例如eBay,亞馬遜,天貓,京東等等,推薦系統(tǒng)的推薦效果好壞對(duì)電子商務(wù)的發(fā)展有著巨大的影響[3].由此可見(jiàn)推薦系統(tǒng)的重要性,推薦系統(tǒng)的性能好壞最主要取決于推薦算法的優(yōu)劣.傳統(tǒng)的推薦算法有基于內(nèi)容的推薦、基于標(biāo)簽的推薦、協(xié)同過(guò)濾推薦和混合推薦等等[4,5].隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,數(shù)據(jù)結(jié)構(gòu)變得多樣化和復(fù)雜化,對(duì)傳統(tǒng)的推薦算法構(gòu)成了一定的挑戰(zhàn),傳統(tǒng)算法的不足之處也越來(lái)越明顯.例如,基于內(nèi)容的推薦算法原理是提取用戶(hù)購(gòu)買(mǎi)過(guò)的物品的特征,根據(jù)這些特征尋找具有相似性的物品推薦給用戶(hù),但這導(dǎo)致算法無(wú)法處理具有非結(jié)構(gòu)性特征的數(shù)據(jù),而且無(wú)法將數(shù)據(jù)量化,這就對(duì)算法的使用領(lǐng)域產(chǎn)生了約束[6].協(xié)同過(guò)濾算法通過(guò)相似度計(jì)算,為目標(biāo)用戶(hù)發(fā)現(xiàn)具有相同興趣的近鄰用戶(hù),并對(duì)近鄰用戶(hù)進(jìn)行分析,將近鄰用戶(hù)感興趣的物品推薦給目標(biāo)用戶(hù),幫助挖掘目標(biāo)用戶(hù)的潛在興趣,彌補(bǔ)了基于內(nèi)容的推薦算法的不足.但協(xié)同過(guò)濾算法仍有一定的缺陷,例如需要解決數(shù)據(jù)稀疏問(wèn)題,用戶(hù)之間相似度的計(jì)算是基于共同評(píng)價(jià)過(guò)的物品,如果共同評(píng)價(jià)過(guò)的物品太少,則相似度計(jì)算結(jié)果就不是很準(zhǔn)確[7].針對(duì)這一問(wèn)題,近年來(lái)國(guó)內(nèi)外的學(xué)者提出了各種改進(jìn)的推薦算法,文獻(xiàn)[8]通過(guò)分析用戶(hù)之間的信任與親密度來(lái)建立信任模型,很好的解決了新注冊(cè)用戶(hù)的冷啟動(dòng)問(wèn)題;文獻(xiàn)[9]考慮物品熱門(mén)程度來(lái)改進(jìn)用戶(hù)之間相似度的計(jì)算方法,一定程度上提高了推薦的準(zhǔn)確度,但熱門(mén)程度只考慮了物品評(píng)價(jià)次數(shù)的絕對(duì)頻數(shù),沒(méi)有考慮到相對(duì)頻率,無(wú)法消除數(shù)據(jù)集規(guī)模大小給相似度計(jì)算帶來(lái)的影響;文獻(xiàn)[10]基于Jaccard相似度公式引入了物品流行度來(lái)改進(jìn)相似度計(jì)算,達(dá)到了挖掘冷門(mén)項(xiàng)目,提高推薦結(jié)果的覆蓋范圍的優(yōu)化目的,但其將評(píng)分記錄數(shù)據(jù)轉(zhuǎn)換成隱性反饋數(shù)據(jù),注重用戶(hù)對(duì)物品是否反饋,忽略了用戶(hù)反饋物品的興趣量化程度,丟失了評(píng)分?jǐn)?shù)據(jù)的量化特征,對(duì)推薦的精確性有一定的影響;文獻(xiàn)[11]提出了基于熱門(mén)物品懲罰和用戶(hù)興趣變化的協(xié)同過(guò)濾算法,引入熱門(mén)物品懲罰項(xiàng)來(lái)優(yōu)化相似度計(jì)算,引入用戶(hù)興趣變化來(lái)優(yōu)化預(yù)測(cè)評(píng)分計(jì)算模型;文獻(xiàn)[12]通過(guò)分析物品熱門(mén)程度的影響,利用啟發(fā)式算法對(duì)用戶(hù)相似性度量方法進(jìn)行優(yōu)化,解決冷啟動(dòng)問(wèn)題;文獻(xiàn)[13]定量研究物品的熱門(mén)度與推薦精度之間的權(quán)衡,并以此改進(jìn)傳統(tǒng)協(xié)同過(guò)濾算法,處理推薦系統(tǒng)中的長(zhǎng)尾數(shù)據(jù);文獻(xiàn)[14]通過(guò)先對(duì)物品項(xiàng)目進(jìn)行聚類(lèi)分析,然后再進(jìn)行推薦處理,提高了推薦系統(tǒng)的準(zhǔn)確性,并且降低了改進(jìn)算法的時(shí)間復(fù)雜度,但沒(méi)有解決數(shù)據(jù)稀疏的問(wèn)題.
針對(duì)基于皮爾遜相似度的傳統(tǒng)協(xié)同過(guò)濾算法,本文考慮到物品熱門(mén)程度對(duì)用戶(hù)相似性的影響,對(duì)皮爾遜相關(guān)系數(shù)進(jìn)行優(yōu)化達(dá)到性能提升的目的.本文首先描述傳統(tǒng)協(xié)同過(guò)濾算法原理及評(píng)價(jià)指標(biāo),之后提出了一種基于物品熱門(mén)因子優(yōu)化相似度計(jì)算的改進(jìn)算法,利用海量的MovieLens數(shù)據(jù)集在spark大數(shù)據(jù)分布式處理平臺(tái)進(jìn)行實(shí)驗(yàn)并得到實(shí)驗(yàn)結(jié)果.
協(xié)同過(guò)濾(Collaborative Filtering,簡(jiǎn)稱(chēng)CF),簡(jiǎn)單來(lái)說(shuō)是利用某個(gè)興趣相投、擁有共同經(jīng)驗(yàn)之近鄰用戶(hù)的喜好來(lái)推薦感興趣的資訊給目標(biāo)用戶(hù),個(gè)人透過(guò)合作的機(jī)制給予資訊相當(dāng)程度的回應(yīng)(如評(píng)分)并記錄下來(lái)以達(dá)到過(guò)濾的目的,進(jìn)而幫助別人篩選資訊,回應(yīng)不一定局限于特別感興趣的,特別不感興趣資訊的紀(jì)錄也相當(dāng)重要.傳統(tǒng)協(xié)同過(guò)濾算法可以分為基于用戶(hù)的協(xié)同過(guò)濾(User-CF)和基于物品的協(xié)同過(guò)濾(Item-CF).User-CF基本思想是將目標(biāo)用戶(hù)對(duì)所有物品的偏好作為一個(gè)向量來(lái)計(jì)算用戶(hù)之間的相似度,找到 K個(gè)近鄰用戶(hù)后,根據(jù)近鄰用戶(hù)的相似度權(quán)重以及他們對(duì)物品的偏好,預(yù)測(cè)目標(biāo)用戶(hù)沒(méi)有偏好的未涉及物品,計(jì)算得到一個(gè)排序的物品列表作為推薦.Item-CF的原理和User-CF 類(lèi)似,只是在計(jì)算近鄰時(shí)采用物品本身,而不是從用戶(hù)的角度,因此本文從User-CF角度進(jìn)行改進(jìn).
通過(guò)User-CF算法產(chǎn)生推薦結(jié)果主要經(jīng)過(guò)三個(gè)步驟:相似度計(jì)算、選擇近鄰用戶(hù)、評(píng)分預(yù)測(cè).通過(guò)相似度計(jì)算得到目標(biāo)用戶(hù)與其他用戶(hù)的相似度,選擇相似度最高的K個(gè)用戶(hù)作為近鄰用戶(hù),分析近鄰用戶(hù)對(duì)物品的評(píng)價(jià)與評(píng)分來(lái)對(duì)目標(biāo)用戶(hù)未涉及的物品進(jìn)行預(yù)測(cè)評(píng)分,根據(jù)預(yù)測(cè)評(píng)分將物品進(jìn)行排序作為推薦結(jié)果[15].
根據(jù)相似度主要計(jì)算出目標(biāo)用戶(hù)的近鄰用戶(hù),根據(jù)近鄰用戶(hù)的興趣來(lái)挖掘目標(biāo)用戶(hù)的潛在偏好,因此相似度計(jì)算方法十分重要.用戶(hù)對(duì)物品的評(píng)分?jǐn)?shù)據(jù)可用一個(gè)m×n的矩陣表示,其中,m為用戶(hù)的數(shù)量,n為物品的數(shù)量,第j行第k列的元素Rj,k表示用戶(hù) j對(duì)物品 k 的評(píng)分.用戶(hù)—物品評(píng)分矩陣可由表1所示.用戶(hù)i和用戶(hù)j的相似度通過(guò)兩用戶(hù)共同評(píng)價(jià)過(guò)的物品的評(píng)價(jià)差異來(lái)衡量.主要的計(jì)算方法有歐氏距離和皮爾遜相關(guān)系數(shù)等.
表1 用戶(hù)—物品評(píng)分矩陣Table 1 User-Item rating matrix
用戶(hù)i和用戶(hù)j的相似度記作sim(i,j).文獻(xiàn)[9]說(shuō)明了皮爾遜相似性在應(yīng)用中要優(yōu)于歐氏距離,這主要是由于歐氏距離在計(jì)算相似性時(shí)沒(méi)有反映用戶(hù)間的相關(guān)性.而皮爾遜相關(guān)系數(shù)用于度量?jī)蓚€(gè)變量X和Y之間的線性相關(guān),利用皮爾遜相關(guān)系數(shù)作為用戶(hù)相似度度量,優(yōu)勢(shì)在于:用戶(hù)只要對(duì)物品的評(píng)分在整體上趨于一致,就認(rèn)為用戶(hù)之間有較強(qiáng)的相似性,更為合理地體現(xiàn)實(shí)際應(yīng)用中用戶(hù)之間存在的相似性.因此,本文也是在皮爾遜相似度基礎(chǔ)之上提出了一種改進(jìn)算法的方法.
皮爾遜相似度計(jì)算公式如式(1):
(1)
(2)
預(yù)測(cè)準(zhǔn)確度.平均絕對(duì)誤差(MAE)是最常用也是最有效的評(píng)價(jià)指標(biāo),其反映的是系統(tǒng)正確預(yù)測(cè)用戶(hù)對(duì)物品偏好的能力,MAE的值越小,則表明系統(tǒng)推薦的準(zhǔn)確率就越高.假設(shè)測(cè)試集中對(duì)用戶(hù)i的物品推薦列表為T(mén)i,則計(jì)算公式如下式(3)所示:
(3)
式中,|Ti|表示為用i戶(hù)推薦列表中物品的數(shù)量.
分類(lèi)準(zhǔn)確率.分類(lèi)任務(wù)目的就是給目標(biāo)用戶(hù)推薦最相關(guān)的n個(gè)物品.準(zhǔn)確率和召回率是衡量分類(lèi)效果的重要標(biāo)準(zhǔn),可以很好的評(píng)測(cè)推薦算法的精度,準(zhǔn)確率和召回率的值越高,表示推薦質(zhì)量越好.設(shè)Ni為用戶(hù)i喜歡的物品集合,則準(zhǔn)確率計(jì)算如下公式(4)所示:
(4)
準(zhǔn)確率描述的是推薦列表中有多少比例的推薦物品發(fā)生在測(cè)試集里的用戶(hù)—物品評(píng)分記錄中.
召回率表示有多少比例的測(cè)試集里的用戶(hù)—物品評(píng)分記錄包含在推薦列表中.計(jì)算公式如下式(5)所示:
(5)
傳統(tǒng)的協(xié)同過(guò)濾算法通過(guò)比較用戶(hù)共同評(píng)分過(guò)的物品交集,根據(jù)物品的評(píng)分差值進(jìn)行用戶(hù)相似度計(jì)算.這種相似度計(jì)算模型沒(méi)有考慮到物品熱門(mén)程度或者物品必需程度對(duì)相似度的影響.對(duì)于這些大眾性的熱門(mén)物品或者生活必需物品,絕大多數(shù)用戶(hù)都會(huì)購(gòu)買(mǎi)或者評(píng)價(jià),這些熱門(mén)物品無(wú)法體現(xiàn)或者較少地體現(xiàn)用戶(hù)的“個(gè)性”和潛在的興趣愛(ài)好,也就無(wú)法表現(xiàn)出用戶(hù)間的強(qiáng)相似性,這時(shí)應(yīng)該減弱它們對(duì)用戶(hù)相似度度量的影響和貢獻(xiàn).例如,兩個(gè)用戶(hù)都買(mǎi)過(guò)《新華字典》,但這不能說(shuō)明兩個(gè)用戶(hù)具有相似性,因?yàn)榻^大多數(shù)人都買(mǎi)過(guò)《新華字典》,無(wú)法體現(xiàn)用戶(hù)的興趣特征;反之,若兩個(gè)用戶(hù)都買(mǎi)過(guò)冷門(mén)的《推薦系統(tǒng)實(shí)踐》,則可以反映用戶(hù)擁有相似的興趣愛(ài)好,說(shuō)明用戶(hù)比較相似.因此,冷門(mén)物品更能反映用戶(hù)之間的相似性,若用戶(hù)對(duì)同一件冷門(mén)物品進(jìn)行過(guò)購(gòu)買(mǎi)或者評(píng)價(jià)一致等行為,說(shuō)明用戶(hù)具有相似性,冷門(mén)程度越高,則相似性越強(qiáng).考慮到物品熱門(mén)程度,本文對(duì)相似性度量方法進(jìn)行改進(jìn)來(lái)提高算法性能.
基于3.1節(jié)分析內(nèi)容,需要引入一個(gè)物品熱門(mén)因子來(lái)量化物品熱門(mén)程度對(duì)用戶(hù)相似性度量的影響或貢獻(xiàn).文獻(xiàn)[9]總結(jié)得出了皮爾遜相關(guān)系數(shù)在度量用戶(hù)相似度時(shí)要優(yōu)于歐氏距離和余弦相似度,因此本文在皮爾遜相關(guān)系數(shù)基礎(chǔ)上融合物品熱門(mén)因子來(lái)改進(jìn)相似度計(jì)算方法.
3.2.1 物品熱門(mén)程度
物品熱門(mén)程度使用物品的評(píng)分頻率來(lái)衡量,即所有用戶(hù)中有多少比例的用戶(hù)對(duì)物品進(jìn)行了評(píng)價(jià)行為.計(jì)算公式如下式(6)所示:
(6)
式中,fc表示物品c的熱門(mén)程度,|M|表示用戶(hù)的總數(shù)量,|mc|表示對(duì)物品c進(jìn)行了評(píng)價(jià)的用戶(hù)數(shù)量,很明顯,fc取值介于0和1之間,fc值越接近1,則表明物品c越熱門(mén).同時(shí),采用評(píng)分頻率fc而不是評(píng)分次數(shù)|mc|來(lái)衡量熱門(mén)程度,這就避免了評(píng)分次數(shù)|mc|的絕對(duì)性,比如物品c的評(píng)分次數(shù)很大,但用戶(hù)基數(shù)總量更大,這就說(shuō)明物品c不是很熱門(mén),盡管|mc|的值很大.
3.2.2 物品熱門(mén)因子
物品熱門(mén)因子pf衡量物品熱門(mén)程度f(wàn)對(duì)用戶(hù)相似性度量的貢獻(xiàn).物品熱門(mén)程度f(wàn)值越小,則其對(duì)用戶(hù)相似度的貢獻(xiàn)應(yīng)該越大,即熱門(mén)因子pf值越大.物品熱門(mén)因子pf與熱門(mén)程度f(wàn)成反比,計(jì)算公式如式(7)所示:
(7)
公式(7)其中,pfc稱(chēng)為物品c的熱門(mén)因子,代表物品c熱門(mén)程度對(duì)用戶(hù)相似度的貢獻(xiàn).α參數(shù)稱(chēng)之為平衡參數(shù),其取值范圍為α>0,表示物品的熱門(mén)程度對(duì)熱門(mén)因子的影響因數(shù).熱門(mén)因子與熱門(mén)程度的函數(shù)關(guān)系可由圖1表現(xiàn)出來(lái).
圖1 熱門(mén)因子與熱門(mén)程度Fig.1 Popular factors and frequency
分別對(duì)α取0.3、0.4、0.5、0.6、0.7等值,從圖1中可以看出熱門(mén)因子pf的取值范圍均為(1,+∞),表明對(duì)不同熱門(mén)程度的物品都獎(jiǎng)勵(lì)了其對(duì)用戶(hù)相似度的貢獻(xiàn),但獎(jiǎng)勵(lì)程度不同,f越小,表明物品越冷門(mén),pf值越大,對(duì)相似度貢獻(xiàn)就越大;f越大,表明物品越熱門(mén),pf值接近為1,對(duì)相似度基本上沒(méi)有貢獻(xiàn),與冷門(mén)物品相比相當(dāng)于懲罰了熱門(mén)物品對(duì)相似度的貢獻(xiàn),pf與f成反比關(guān)系.同時(shí),平衡參數(shù)α越大,pf整體向上移動(dòng),對(duì)相似度的貢獻(xiàn)就越大.
3.2.3 皮爾遜相似度改進(jìn)
本文在皮爾遜相似度基礎(chǔ)上融合物品熱門(mén)因子來(lái)進(jìn)行改進(jìn),改進(jìn)后的皮爾遜相似度sim(i,j)′計(jì)算方法如下公式(8):
(8)
在公式(8)中增加了物品熱門(mén)因子pf來(lái)達(dá)到用戶(hù)相似度改進(jìn)的目的.對(duì)公式(8)與公式(1)進(jìn)行對(duì)比發(fā)現(xiàn),在計(jì)算改進(jìn)的用戶(hù)相似度sim(i,j)′時(shí)融入了用戶(hù)共同評(píng)價(jià)過(guò)的每一個(gè)物品的熱門(mén)因子.若用戶(hù)i和j共同評(píng)價(jià)過(guò)的物品里有冷門(mén)物品,則相應(yīng)的熱門(mén)因子pf大于1,sim(i,j)′>sim(i,j),表明用戶(hù)i和j具有更強(qiáng)的相似性;若用戶(hù)i和j共同評(píng)價(jià)過(guò)的物品基本上都是熱門(mén)物品,則相應(yīng)的熱門(mén)因子pf接近為1,sim(i,j)′≈sim(i,j),表明用戶(hù)i和j的相似性沒(méi)有得到加強(qiáng),熱門(mén)物品的熱門(mén)程度對(duì)用戶(hù)相似性沒(méi)有多大貢獻(xiàn).因此,改進(jìn)后的用戶(hù)相似度計(jì)算模型能夠更為合理和更為準(zhǔn)確的描述用戶(hù)之間相似性.
通過(guò)分析物品熱門(mén)程度對(duì)用戶(hù)相似性的影響,融入物品熱門(mén)因子來(lái)改進(jìn)皮爾遜相似度計(jì)算方法,挖掘出與目標(biāo)用戶(hù)更加相似的近鄰用戶(hù),根據(jù)更加相似的近鄰用戶(hù)可以向目標(biāo)用戶(hù)推薦更為準(zhǔn)確的物品,從而達(dá)到改進(jìn)協(xié)同過(guò)濾算法的目的.融合物品熱門(mén)因子的協(xié)同過(guò)濾改進(jìn)算法的基本步驟如下:
算法:融合物品熱門(mén)因子的協(xié)同過(guò)濾改進(jìn)算法輸入:用戶(hù)物品評(píng)分矩陣R,目標(biāo)用戶(hù)v,近鄰用戶(hù)數(shù)為K,物品推薦數(shù)目為H,平衡參數(shù)α.輸出:目標(biāo)用戶(hù)v的推薦列表Tv,包含H個(gè)推薦物品步驟1. 根據(jù)平衡參數(shù)α利用式(6)和式(7)計(jì)算每個(gè)物品的熱門(mén)因子步驟2. 利用式(8)計(jì)算目標(biāo)用戶(hù)v和其他用戶(hù)i之間的相似度sim(v,i)'步驟3. 對(duì)sim(v,i)'從大到小進(jìn)行排序,取前K個(gè)用戶(hù)組成近鄰用戶(hù)集合Uv步驟4. 利用式(2)對(duì)每個(gè)鄰近用戶(hù)i∈Uv計(jì)算目標(biāo)用戶(hù)v對(duì)物品的預(yù)測(cè)評(píng)分步驟5. 對(duì)得到的預(yù)測(cè)評(píng)分進(jìn)行從大到小排序,取前H個(gè)預(yù)測(cè)評(píng)分對(duì)應(yīng)的物品組成目標(biāo)用戶(hù)v的推薦列表Tv,返回給目標(biāo)用戶(hù)v
本文數(shù)據(jù)采用的是MovieLens電影評(píng)分的三個(gè)版本數(shù)據(jù)集,數(shù)據(jù)集中包含user-id,movie-id,rating等本文需要的信息.數(shù)據(jù)集規(guī)模詳細(xì)信息見(jiàn)表2所示,將改進(jìn)后的算法應(yīng)用到電影推薦中.
表2 MovieLens數(shù)據(jù)集介紹Table 2 Introduction of MovieLens datasets
數(shù)據(jù)集評(píng)分記錄規(guī)模按指數(shù)增長(zhǎng),所有數(shù)據(jù)集中的每個(gè)用戶(hù)都至少對(duì)20部電影進(jìn)行了評(píng)分,評(píng)分最高分為5分,最低分為1分.分?jǐn)?shù)越高表示用戶(hù)對(duì)電影越喜歡.
由于待處理的數(shù)據(jù)量比較大,評(píng)分記錄最高達(dá)到了1000萬(wàn)條記錄,因此本文采用spark大數(shù)據(jù)處理平臺(tái).Spark是開(kāi)源的、基于內(nèi)存的計(jì)算框架,適合進(jìn)行spark Streaming數(shù)據(jù)流處理、spark SQL數(shù)據(jù)庫(kù)互動(dòng)、MLlib機(jī)器學(xué)習(xí)等,因此spark可成為下一代用途廣泛的大數(shù)據(jù)運(yùn)算平臺(tái).使用spark大數(shù)據(jù)技術(shù)可以極大的提高計(jì)算效率和節(jié)約時(shí)間.
本文搭建了具有4節(jié)點(diǎn)的spark分布式計(jì)算平臺(tái)作為實(shí)驗(yàn)環(huán)境.spark集群的環(huán)境配置信息與圖2所示.
實(shí)驗(yàn)一共進(jìn)行兩次,隨機(jī)選取數(shù)據(jù)集中的80%數(shù)據(jù)作為訓(xùn)練集,剩下的20%數(shù)據(jù)作為測(cè)試集,選定近鄰用戶(hù)數(shù)目K為10,電影推薦數(shù)目H選定為25部.第一次實(shí)驗(yàn)利用MAE指標(biāo)來(lái)驗(yàn)證改進(jìn)算法的性能提升,并描述平衡參數(shù)對(duì)改進(jìn)算法性能的影響,找出最優(yōu)平衡參數(shù);第二次實(shí)驗(yàn)利用大小規(guī)模不同的數(shù)據(jù)集,對(duì)傳統(tǒng)算法、文獻(xiàn)[9]改進(jìn)算法、本文改進(jìn)算法進(jìn)行性能比較,從準(zhǔn)確率和召回率上驗(yàn)證本文改進(jìn)算法在不同規(guī)模的數(shù)據(jù)集中性能依然良好.
圖2 spark集群環(huán)境Fig.2 Environment of spark cluster
當(dāng)α=0時(shí),熱門(mén)因子pf=1,對(duì)衡量用戶(hù)相似度沒(méi)有任何貢獻(xiàn),sim(i,j)′=sim(i,j),此時(shí),算法為傳統(tǒng)的基于皮爾遜相似度的協(xié)同過(guò)濾算法.因此,平衡參數(shù)從0開(kāi)始取值到1,步長(zhǎng)為0.1,采用評(píng)分記錄為10萬(wàn)條的數(shù)據(jù)集1進(jìn)行實(shí)驗(yàn),選定近鄰用戶(hù)數(shù)K為10,電影推薦數(shù)目H為25部.使用平均絕對(duì)誤差MAE指標(biāo)來(lái)分析不同 值下的算法性能,其中描述的是傳統(tǒng)協(xié)同過(guò)濾算法.實(shí)驗(yàn)結(jié)果如圖3所示.
圖3 不同α值對(duì)應(yīng)MAE值對(duì)比Fig.3 Comparison of MAE values with different alpha
從圖3的實(shí)驗(yàn)結(jié)果中可以看出,未改進(jìn)的傳統(tǒng)算法MAE值達(dá)到了0.802,隨著α增加到0.5時(shí),本文改進(jìn)算法的MAE值減小到最小值,為0.758,降低了5.48%;但當(dāng)α繼續(xù)增大,MAE值開(kāi)始增大,當(dāng)α=1時(shí),MAE值為0.828,算法表現(xiàn)比傳統(tǒng)算法還要差,這表明平衡參數(shù)α需要調(diào)優(yōu).
結(jié)合圖1熱門(mén)因子與熱門(mén)程度關(guān)系圖中可以看出,當(dāng)α值比較小時(shí),冷門(mén)物品與熱門(mén)物品對(duì)相似度的貢獻(xiàn)pf差別不是很明顯,對(duì)熱門(mén)物品的懲罰力度相對(duì)不大,盡管MAE值有所下降,改進(jìn)算法性能有所上升,但未達(dá)到最佳性能;當(dāng)α值比較大時(shí),則過(guò)分的獎(jiǎng)勵(lì)了冷門(mén)物品對(duì)用戶(hù)相似度的貢獻(xiàn),比如,有兩個(gè)用戶(hù)共同評(píng)價(jià)過(guò)的物品只有一個(gè)冷門(mén)的物品p,這表明這兩個(gè)用戶(hù)相似性并不大,但改進(jìn)后的算法認(rèn)為這兩個(gè)用戶(hù)具有很強(qiáng)的相似性并進(jìn)行推薦行為.導(dǎo)致了MAE值上升,改進(jìn)算法的推薦準(zhǔn)確率下降.因此,需要找出最優(yōu)的平衡參數(shù)α.圖3表明在MovieLens電影推薦數(shù)據(jù)集中,α的最優(yōu)參數(shù)可選為0.5.
采用不同數(shù)據(jù)規(guī)模的數(shù)據(jù)集對(duì)改進(jìn)算法的性能進(jìn)行驗(yàn)證,α取實(shí)驗(yàn)一中得出的最優(yōu)值0.5,利用準(zhǔn)確率(Precision)和召回率(Recall)評(píng)價(jià)指標(biāo)進(jìn)行評(píng)價(jià).由于實(shí)驗(yàn)數(shù)據(jù)規(guī)模比較大,數(shù)據(jù)集3的評(píng)分記錄達(dá)到了1000萬(wàn)條,因此本文采用spark分布式大數(shù)據(jù)處理平臺(tái)進(jìn)行實(shí)驗(yàn),將本文改進(jìn)算法同時(shí)與傳統(tǒng)算法和文獻(xiàn)[9]改進(jìn)算法進(jìn)行對(duì)比.實(shí)驗(yàn)結(jié)果如圖4召回率對(duì)比,圖5準(zhǔn)確率對(duì)比所示.
圖4 召回率結(jié)果對(duì)比Fig.4 Comparison of recall
在圖4、圖5中,算法1表示傳統(tǒng)算法,算法2表示文獻(xiàn)[9]改進(jìn)算法,算法3表示本文改進(jìn)算法.
圖5 準(zhǔn)確率對(duì)比Fig.5 Comparison of precision
根據(jù)圖4和圖5實(shí)驗(yàn)結(jié)果顯示,本文改進(jìn)算法和文獻(xiàn)[9]改進(jìn)算法無(wú)論是在召回率還是準(zhǔn)確率指標(biāo)上,都比傳統(tǒng)算法有很大的性能提升.另外,對(duì)比本文改進(jìn)算法與文獻(xiàn)[9]改進(jìn)算法實(shí)驗(yàn)數(shù)據(jù)發(fā)現(xiàn),本文算法在召回率和準(zhǔn)確率上均略?xún)?yōu)于文獻(xiàn)[9]改進(jìn)算法.并且當(dāng)評(píng)分記錄數(shù)據(jù)規(guī)模從10萬(wàn)條增加到100萬(wàn)條、1000萬(wàn)條時(shí),文獻(xiàn)[9]改進(jìn)算法在召回率和準(zhǔn)確率上基本沒(méi)有變化,而本文改進(jìn)算法隨著數(shù)據(jù)規(guī)模的擴(kuò)增,在召回率和準(zhǔn)確率上都有小幅度的上升.當(dāng)數(shù)據(jù)規(guī)模達(dá)到了1000萬(wàn)條時(shí),本文改進(jìn)算法性能已經(jīng)比較明顯地優(yōu)于文獻(xiàn)[9]改進(jìn)算法,在召回率上和準(zhǔn)確率上分別高于文獻(xiàn)[9]改進(jìn)算法14.4%和10.9%.這主要是由于文獻(xiàn)[9]改進(jìn)算法采用物品評(píng)分頻數(shù)來(lái)衡量物品熱門(mén)程度,這就導(dǎo)致了當(dāng)數(shù)據(jù)規(guī)模擴(kuò)增時(shí),盡管物品c的評(píng)分頻數(shù)|mc|增大,但用戶(hù)總數(shù)量|M|更大,也就是說(shuō)有更少比例的用戶(hù)對(duì)物品c進(jìn)行評(píng)價(jià)或購(gòu)買(mǎi)行為,物品c的熱門(mén)程度沒(méi)有增加,但文獻(xiàn)[9]改進(jìn)算法在計(jì)算用戶(hù)相似度時(shí)會(huì)引入更大的物品c熱門(mén)懲罰因子,不能準(zhǔn)確的度量用戶(hù)之間相似性.而本文改進(jìn)算法采用物品評(píng)分頻率衡量熱門(mén)程度f(wàn),避免了在數(shù)據(jù)規(guī)模過(guò)大的情況下評(píng)分頻數(shù)|mc|對(duì)用戶(hù)相似度帶來(lái)的絕對(duì)性影響,因此具有更好的推薦性能.
本文首先對(duì)傳統(tǒng)的基于皮爾遜相似度的協(xié)同過(guò)濾算法進(jìn)行了分析,指出傳統(tǒng)算法在相似性計(jì)算方法上的不足之處并進(jìn)行了算法改進(jìn),改進(jìn)算法考慮了物品熱門(mén)程度對(duì)用戶(hù)相似度的貢獻(xiàn).實(shí)驗(yàn)結(jié)果顯示,在MAE,準(zhǔn)確率和召回率等指標(biāo)上改進(jìn)算法要比傳統(tǒng)算法表現(xiàn)得更好.除了考慮物品熱門(mén)程度因素外,推薦系統(tǒng)需要根據(jù)具體應(yīng)用來(lái)提高推薦質(zhì)量,例如在電影推薦中,用戶(hù)的年齡,物品的標(biāo)簽,電影的導(dǎo)演和演員等因素都可以影響推薦效果,需要研究人員根據(jù)具體場(chǎng)景改進(jìn)或融合算法.另外,推薦系統(tǒng)需要大量的數(shù)據(jù)作為支撐,本文中使用的spark數(shù)據(jù)分布式處理平臺(tái)作為近年來(lái)最流行的大數(shù)據(jù)處理平臺(tái),十分適合用于推薦系統(tǒng)后臺(tái)數(shù)據(jù)分析與處理,基于spark平臺(tái)開(kāi)發(fā)推薦系統(tǒng)也是未來(lái)工程實(shí)現(xiàn)的發(fā)展方向之一.
[1] Xiang Liang.Recommendation system practice[M].Beijing:Posts & Telecom Press,2012:2-4.
[2] Thangiah S R,F(xiàn)ergany A,Wilson B,et a1.School bus routing in rural school districts[C].Proceedings of the 9th International Conference on Computer-Aided Scheduling of Public Transport,Spring,2008:209-232.
[3] Tao Yong-cai,Zhang Ning-ning,Shi Lei,et al.Researching on the dynamic management of data copy of cloud computing data in heterogeneous environment [J].Journal of Chinese Computer Systems,2013,34 (7):1487-1492.
[4] Goldberg D,Nichols D,Oki B M,et al.Using collaborative filtering to weave an information tapestry[J].Communications of the ACM,1992,35(12):61-70.
[5] Xu Hai-ling,Wu Xiao,Li Xiao-dong,et al.Comparison study of Internet recommendation system[J].Software Journal,2009,20(2):350-362.
[6] Pera M S,Ng Y K.A group recommender for movies based on content similarity and popularity[J].Information Processing & Management,2013,49(3):673-687.
[7] Ma Hong-wei,Zhang Guang-wei,Li Peng,et al.Survey of collaborative filtering algorithms[J].Journal of Chinese Computer Systems,2009,30(7):1282-1288.
[8] Tang X,Chen M.Reputation-based recommendation trust model in the interoperable environment[C].International Conference on Electronics,Communications and Control.IEEE,2011:2226-2228.
[9] Zhou Hai-ping,Huang Cou-ying,Liu Ni,et al.Collaborative filtering recommendation algorithm based on rating prediction[J].Journal of Data Acquisition & Processing,2016,31(6):1234-1241.
[10] Hao Li-yan,Wang Jing.Collaborative filtering top n-recommendation algorithmBased on item popularity[J].Computer Engineeringand Design,2013,34(10):3497-3501.
[11] Wang Dao-ping,Li Zhi-long,Yang Cen.Knowledge push algorithm based on hot item punishment and user interest change[J].Systems Engineering,2014,32(1):118-123.
[12] Ahn H J.A new similarity measure for collaborative filtering to alleviate the new user cold-starting problem[J].Information Sciences,2008,178(1):37-51.
[13] Steck H.Item popularity and recommendation accuracy[C].ACM Conference on Recommender Systems,Recsys 2011,Chicago,II,Usa,October.DBLP,2011:125-132.
[14] Sun Hui,Ma Yue,Yang Hai-bo,et al.Collaborative filtering recommendation algorithm by optimizing similarity and clustering users[J].Journal of Chinese Computer Systems,2014,35(9):1967-1970.
[15] Park J,Kim B I.The school bus routing problem:a review[J].European Journal of Operational Research,2010,202(2):311-319.
附中文參考文獻(xiàn):
[1] 項(xiàng) 亮.推薦系統(tǒng)實(shí)踐[M].北京:人民郵電出版社,2012:2-4.
[3] 陶永才,張寧寧,石 磊,等.異構(gòu)環(huán)境下云計(jì)算數(shù)據(jù)副本動(dòng)態(tài)管理研究[J].小型微型計(jì)算機(jī)系統(tǒng),2013,34(7):1487-1492.
[5] 許海玲,吳 瀟,李曉東,等.互聯(lián)網(wǎng)推薦系統(tǒng)比較研究[J].軟件學(xué)報(bào),2009,20(2):350-362.
[7] 馬宏偉,張光衛(wèi),李 鵬.協(xié)同過(guò)濾推薦算法綜述[J].小型微型計(jì)算機(jī)系統(tǒng),2009,30(7):1282-1288.
[9] 周海平,黃湊英,劉 妮,等.基于評(píng)分預(yù)測(cè)的協(xié)同過(guò)濾推薦算法[J].數(shù)據(jù)采集與處理,2016,31(6):1234-1241.
[10] 郝立燕,王 靖.基于項(xiàng)目流行度的協(xié)同過(guò)濾TopN推薦算法[J].計(jì)算機(jī)工程與設(shè)計(jì),2013,34(10):3497-3501.
[11] 王道平,李志隆,楊 岑.基于熱門(mén)物品懲罰和用戶(hù)興趣變化的知識(shí)推送算法[J].系統(tǒng)工程,2014,32(1):118-123.
[14] 孫 輝,馬 躍,楊海波,等.一種相似度改進(jìn)的用戶(hù)聚類(lèi)協(xié)同過(guò)濾推薦算法[J].小型微型計(jì)算機(jī)系統(tǒng),2014,35(9):1967-1970.
本刊檢索與收錄
國(guó)內(nèi)
中文核心期刊
中國(guó)學(xué)術(shù)期刊文摘(中英文版)收錄
中國(guó)科學(xué)引文數(shù)據(jù)庫(kù)(CSCD)來(lái)源期刊
中國(guó)科技論文統(tǒng)計(jì)源期刊
中國(guó)期刊全文數(shù)據(jù)庫(kù)(CJFD)收錄期刊
中國(guó)科技期刊精品數(shù)據(jù)庫(kù)收錄期刊
中國(guó)學(xué)術(shù)期刊綜合評(píng)價(jià)數(shù)據(jù)庫(kù)(CAJCED)收錄期刊
中國(guó)核心期刊(遴選)數(shù)據(jù)庫(kù)收錄期刊
中文科技期刊數(shù)據(jù)庫(kù)收錄期刊
國(guó)際
英國(guó)《科學(xué)文摘》(INSPEC)
荷蘭《文摘與引文數(shù)據(jù)庫(kù)》(SCOPUS)
俄羅斯《文摘雜志》(AJ,VINITI)
美國(guó)《劍橋科學(xué)文摘(自然科學(xué))》CSA(NS); Cambridge Scientific Abstracts(Natural Science)
美國(guó)《劍橋科學(xué)文摘》CSA(T);Cambridge Scientific Abstracts(Technology)
美國(guó)《烏利希期刊指南》UPD(Ulrich′s Periodicals Directory)
日本《日本科學(xué)技術(shù)振興機(jī)構(gòu)中國(guó)文獻(xiàn)數(shù)據(jù)庫(kù)》(JST,China)
波蘭《哥白尼索引》(IC, Index of Copurnicus)