劉超慧,韓傳福,陳天成,孔先進(jìn)
(鄭州航空工業(yè)管理學(xué)院 智能工程學(xué)院,河南 鄭州 450046)
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展和移動(dòng)終端設(shè)備的普及,以用戶(hù)為核心的信息生產(chǎn)模型造成了信息的爆炸式增長(zhǎng),公眾很難在海量信息中迅速、準(zhǔn)確地找到所需的信息,面臨著嚴(yán)峻的“信息過(guò)載”問(wèn)題。以推薦系統(tǒng)為代表的信息過(guò)濾技術(shù),是解決“信息過(guò)載”問(wèn)題的常用方法。推薦系統(tǒng)依據(jù)用戶(hù)的歷史行為和數(shù)據(jù),通過(guò)建立模型來(lái)挖掘用戶(hù)需求和潛在興趣,進(jìn)而從海量信息中為用戶(hù)篩選所需的信息[1]。
協(xié)同過(guò)濾算法是眾多推薦算法中使用最廣泛、最有效的算法之一,已成功應(yīng)用于許多商業(yè)推薦系統(tǒng),但其仍存在著一些亟待解決的問(wèn)題,例如冷啟動(dòng)、數(shù)據(jù)稀疏和馬太效應(yīng)。對(duì)此許多學(xué)者進(jìn)行了卓有成效的研究工作。于洪等人提出基于時(shí)間窗口的時(shí)間數(shù)據(jù)權(quán)重,將用戶(hù)興趣分為長(zhǎng)期和短期兩類(lèi),更好地反映出了用戶(hù)興趣變化規(guī)律,提高了推薦精度[2];趙文濤等人提出基于時(shí)間的Logistic權(quán)重函數(shù)與用戶(hù)特征屬性進(jìn)行加權(quán)的新的相似度度量模型[3];蘭艷等人利用衰減因子建立非線(xiàn)性時(shí)間加權(quán)函數(shù),賦予評(píng)分不同的時(shí)間權(quán)重,提高了推薦的準(zhǔn)確性[4]。上述文獻(xiàn)雖然考慮了用戶(hù)興趣隨時(shí)間的變化,卻未注意到熱門(mén)物品對(duì)用戶(hù)評(píng)分的影響,對(duì)推薦精度有一定的影響。
謝修娟等人引入物品流行度與位置信息,提高了推薦結(jié)果的多樣性[5];孫紅等人通過(guò)添加物品熱門(mén)懲罰因子,優(yōu)化了皮爾遜相似度計(jì)算,提高了推薦質(zhì)量[6];AHM H J等人通過(guò)研究物品熱門(mén)程度的影響,使用啟發(fā)式算法對(duì)用戶(hù)相似性度量進(jìn)行優(yōu)化,緩解了傳統(tǒng)協(xié)同過(guò)濾算法的冷啟動(dòng)問(wèn)題[7];焦富森等人考慮物品質(zhì)量和用戶(hù)評(píng)分傾向性對(duì)用戶(hù)打分的影響,提高推薦效果[8]。這些算法雖彌補(bǔ)了傳統(tǒng)算法過(guò)分考慮熱門(mén)物品對(duì)評(píng)分的影響,卻未考慮用戶(hù)興趣隨時(shí)間遷移的情況,無(wú)法動(dòng)態(tài)追蹤用戶(hù)的興趣變化。
本文在基于皮爾遜相似度的基礎(chǔ)上進(jìn)行改進(jìn)實(shí)驗(yàn),提出了一種融合物品熱門(mén)懲罰因子和時(shí)間權(quán)重的相似度計(jì)算方法,彌補(bǔ)了傳統(tǒng)算法的缺陷。在Movies-100k數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果顯示融合后的算法可以有效追蹤用戶(hù)興趣的變化和降低熱門(mén)物品對(duì)用戶(hù)評(píng)分的影響,提高推薦精度。
協(xié)同過(guò)濾算法是一種基于用戶(hù)特征和行為數(shù)據(jù)的推薦算法,依據(jù)用戶(hù)的過(guò)去行為查找用戶(hù)或物品的最近鄰集,以計(jì)算用戶(hù)對(duì)物品的偏好,主要包括基于領(lǐng)域、圖、關(guān)聯(lián)規(guī)則和知識(shí)的推薦算法,其中使用最廣泛的是基于領(lǐng)域的方法。
(1)歐幾里得相似度
(1)
其中,sim(userx,usery)為用戶(hù)x和用戶(hù)y之間的相似度,Ix,y為用戶(hù)x、y的公共評(píng)分集,Rx,i為用戶(hù)x對(duì)物品i的評(píng)分,Ry,i為用戶(hù)y對(duì)物品i的評(píng)分。
(2)余弦相似度
(2)
(3)修正余弦相似度
sim(userx,usery)=
(3)
(4)皮爾遜相關(guān)系數(shù)
sim(userx,usery)=
(4)
皮爾遜相關(guān)系數(shù)通常用于計(jì)算兩個(gè)變量之間的相關(guān)性,其值域?yàn)閇-1,1]。當(dāng)該值大于0時(shí),表示兩個(gè)變量正相關(guān);當(dāng)該值小于0時(shí),表示兩個(gè)變量負(fù)相關(guān);而該值為0表示不相關(guān)。皮爾遜相似度計(jì)算過(guò)程考慮了用戶(hù)的評(píng)分偏好,以避免在用戶(hù)對(duì)同一項(xiàng)目進(jìn)行評(píng)分時(shí)因不同的評(píng)估習(xí)慣而引起的差異。
利用MovieLens-100K數(shù)據(jù)集對(duì)四種相似度計(jì)算方法進(jìn)行性能分析,實(shí)驗(yàn)結(jié)果如圖1所示。
圖1 四種相似度計(jì)算方法的對(duì)比
實(shí)驗(yàn)結(jié)果表明,皮爾遜相似度隨著近鄰人數(shù)的增加,平均絕對(duì)誤差逐漸降低,皮爾遜相似性的結(jié)果對(duì)分?jǐn)?shù)的絕對(duì)值不敏感,更側(cè)重分?jǐn)?shù)間的相對(duì)值。與余弦相似度不同的是,皮爾遜相似度考慮了不同用戶(hù)評(píng)分的不同平均值;與修正余弦相似度相比,其去中心化的方式不同。本文以皮爾遜相似度計(jì)算方法為基礎(chǔ)開(kāi)展項(xiàng)目研究。
協(xié)同過(guò)濾算法依據(jù)用戶(hù)對(duì)物品評(píng)估的差異計(jì)算相似度,忽略了物品的熱門(mén)程度或必需性對(duì)相似度的影響。一些大眾的、受歡迎的熱門(mén)物品,并不能充分反映用戶(hù)的“個(gè)性”和潛在的愛(ài)好,也不能表明用戶(hù)之間具有很強(qiáng)的相似性。這時(shí),應(yīng)減少其對(duì)用戶(hù)相似性度量的影響和貢獻(xiàn)。例如,對(duì)于給予《戰(zhàn)狼2》評(píng)分很高的兩個(gè)觀(guān)影用戶(hù),很難依據(jù)這部熱門(mén)影片判定這兩個(gè)用戶(hù)具有相同的興趣愛(ài)好,相反,如果兩人都觀(guān)看過(guò)小眾的音樂(lè)劇影片,則可以反映出用戶(hù)具有相似的興趣和愛(ài)好。
因此冷門(mén)的物品可以更好地反映用戶(hù)之間的相似性,而且冷門(mén)程度越高,相似性越強(qiáng)??紤]到用戶(hù)的相似度會(huì)受熱門(mén)物品的影響,故添加了物品熱門(mén)懲罰因子作為加權(quán)系數(shù),以抑制熱門(mén)物品的影響。
本文引入熱門(mén)物品懲罰因子作為加權(quán)系數(shù),改進(jìn)了皮爾遜相似度計(jì)算方法[9],物品出現(xiàn)的次數(shù)越多,則表明該物品越大眾化,該物品對(duì)用戶(hù)的興趣相似性的貢獻(xiàn)也越小。引入懲罰因子的皮爾遜相似度計(jì)算方法如式(5)所示:
sim1(userx,usery)=
(5)
其中,N(i)表示物品i出現(xiàn)的次數(shù)。由懲罰項(xiàng)可知,N(i)越大,ln(1+N(i))的倒數(shù)越小,則此物品對(duì)于用戶(hù)間的相似度貢獻(xiàn)越小。改進(jìn)后的計(jì)算方法可以減弱熱門(mén)物品的影響。
協(xié)同過(guò)濾算法對(duì)用戶(hù)訪(fǎng)問(wèn)的物品同等對(duì)待,沒(méi)有充分考慮最近訪(fǎng)問(wèn)的物品對(duì)用戶(hù)興趣的衡量的貢獻(xiàn)。最近訪(fǎng)問(wèn)的物品信息更能反映用戶(hù)的興趣特征,而早期評(píng)估數(shù)據(jù)應(yīng)占有較小的比重,因?yàn)橛脩?hù)的興趣會(huì)伴隨著時(shí)間的變化而發(fā)生改變,用戶(hù)感興趣的物品很可能類(lèi)似于其最近訪(fǎng)問(wèn)過(guò)的物品。因此,引入了基于用戶(hù)評(píng)估時(shí)間的數(shù)據(jù)權(quán)重,以增加推薦生成過(guò)程中最近訪(fǎng)問(wèn)數(shù)據(jù)的權(quán)重。幾個(gè)相關(guān)的定義如下:
定義1最早評(píng)價(jià)物品時(shí)刻Tfirst:表示用戶(hù)第一次評(píng)價(jià)物品的時(shí)間點(diǎn)。
定義2最后評(píng)價(jià)物品時(shí)刻Tfinal:表示用戶(hù)最后一次評(píng)價(jià)物品的時(shí)間點(diǎn)。
定義3評(píng)價(jià)某物品時(shí)刻t:表示一個(gè)用戶(hù)評(píng)價(jià)某一個(gè)物品的時(shí)間點(diǎn)。
改進(jìn)的非線(xiàn)性遺忘函數(shù)如式(6)所示:
(6)
其中,參數(shù)α∈[0,1],α的值影響權(quán)重隨時(shí)間的變化速度,值越大權(quán)重增長(zhǎng)越快;f(t)值域是[1/e, 1],該遺忘函數(shù)符合人的遺忘理論中收斂性的特點(diǎn),f(t)的值越大,表明用戶(hù)對(duì)此物品的評(píng)分時(shí)間越新,對(duì)推薦結(jié)果的貢獻(xiàn)越大。基于時(shí)間數(shù)據(jù)權(quán)重的皮爾遜相似度計(jì)算方法如式(7)所示:
sim2(userx,usery)=
(7)
物品熱門(mén)懲罰因子在考慮到用戶(hù)相似度受熱門(mén)物品影響的同時(shí),充分考慮冷門(mén)物品對(duì)度量用戶(hù)興趣特征的貢獻(xiàn)。依據(jù)時(shí)間數(shù)據(jù)權(quán)重構(gòu)造的非線(xiàn)性遺忘函數(shù),增大了最近物品對(duì)用戶(hù)興趣的影響,考慮了用戶(hù)興趣的變化趨勢(shì)。融合熱門(mén)物品懲罰因子和時(shí)間權(quán)重的相似度模型如式(8)所示:
sim3(userx,usery)=(1-β)×sim1(userx,usery)+β×sim2(userx,usery)
(8)
其中β∈[0,1],表示兩種相似度融合權(quán)重,根據(jù)不同推薦系統(tǒng),可動(dòng)態(tài)調(diào)整β的值。
本文提出的改進(jìn)算法模型彌補(bǔ)了傳統(tǒng)算法未考慮熱門(mén)物品和時(shí)間數(shù)據(jù)權(quán)重對(duì)用戶(hù)相似度計(jì)算的缺陷,利用KNN算法得到目標(biāo)用戶(hù)的近鄰集,采用式(9)計(jì)算目標(biāo)用戶(hù)對(duì)物品的預(yù)測(cè)評(píng)分。
(9)
其中,px,i為目標(biāo)用戶(hù)x對(duì)物品i的預(yù)測(cè)評(píng)分,Nx表示目標(biāo)用戶(hù)x的近鄰用戶(hù)集,選取其前N個(gè)目標(biāo)用戶(hù)未評(píng)估的物品組成Top-N推薦集。
改進(jìn)的協(xié)同過(guò)濾算法兼顧了熱門(mén)物品對(duì)用戶(hù)評(píng)分的影響和用戶(hù)的興趣隨時(shí)間的變化,較傳統(tǒng)算法更符合實(shí)際生活,提高了推薦的精度,算法1給出了詳細(xì)的算法描述。
算法1:基于懲罰因子和時(shí)間權(quán)重的協(xié)同過(guò)濾推薦算法
輸入:目標(biāo)用戶(hù)u,用戶(hù)-物品評(píng)分矩陣R,近鄰用戶(hù)個(gè)數(shù)K,推薦結(jié)果個(gè)數(shù)N,參數(shù)α、β的值;
輸出:目標(biāo)用戶(hù)u的K個(gè)近鄰用戶(hù),TOP-N物品推薦集。
(1)利用文中改進(jìn)的非線(xiàn)性遺忘函數(shù)f(t)(式(6)),計(jì)算用戶(hù)-物品評(píng)分矩陣R1;
(2)計(jì)算目標(biāo)用戶(hù)u的關(guān)聯(lián)用戶(hù)集Ru;
(3)利用本文提出的融合型皮爾遜相似度計(jì)算模型(式(8)),計(jì)算與u相似度最高的前K個(gè)近鄰用戶(hù)集Nu;
(4)利用組合KNN推薦算法預(yù)測(cè)目標(biāo)用戶(hù)未評(píng)價(jià)物品的評(píng)分px,i;
(5)選擇評(píng)分較高的前N項(xiàng)物品TOP-N為目標(biāo)用戶(hù)u推薦結(jié)果集。
本文選取明尼蘇達(dá)大學(xué)GroupLens小組發(fā)布的MovieLens-100K數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)分析(https://grouplens.org/datasets/movielens/100k/),數(shù)據(jù)主要來(lái)自研究人員對(duì)電影中不同用戶(hù)群體的評(píng)分調(diào)查,u.data文件包含從1 682個(gè)電影項(xiàng)目943個(gè)用戶(hù)評(píng)分中選取的100 000條評(píng)估數(shù)據(jù)。選取70%用作訓(xùn)練集,剩余30%用作測(cè)試集。為了有效緩解數(shù)據(jù)稀疏性,這些用戶(hù)至少參與了20部電影的評(píng)估。采用五級(jí)評(píng)分制,評(píng)分越低,用戶(hù)對(duì)電影的喜愛(ài)程度就越低。
平均絕對(duì)誤差(Mean Absolute Error,MAE)是推薦系統(tǒng)中最常用的標(biāo)準(zhǔn),用以衡量推薦算法的質(zhì)量。其原理是把實(shí)驗(yàn)結(jié)論與實(shí)際結(jié)果之間的偏差當(dāng)作度量,推薦的準(zhǔn)確率與MAE值的大小成反比,即MAE值越小表示推薦算法的質(zhì)量越好,MAE計(jì)算方法如式(10)所示:
(10)
其中,|Ix|為被用戶(hù)x評(píng)分的物品集大小。
為了比較本文提出的算法與傳統(tǒng)算法的推薦精度,設(shè)計(jì)了3組實(shí)驗(yàn)進(jìn)行分析。
(1)實(shí)驗(yàn)1:計(jì)算分析權(quán)重值α與平均絕對(duì)誤差MAE的關(guān)系。實(shí)驗(yàn)中目標(biāo)用戶(hù)的近鄰用戶(hù)集數(shù)KN=25,α∈[0,1],按步長(zhǎng)0.1進(jìn)行實(shí)驗(yàn)分析,實(shí)驗(yàn)結(jié)果如圖2所示。
圖2 α與MAE的關(guān)系
實(shí)驗(yàn)結(jié)果顯示,在α∈[0,0.1]內(nèi),MAE隨α的增大而減小,且α取0.1時(shí)MAE值最小,故本實(shí)驗(yàn)選取α=0.1作為非線(xiàn)性遺忘函數(shù)的參數(shù)取值。
(2)實(shí)驗(yàn)2:計(jì)算式(8)中兩種相似度融合權(quán)重β與平均絕對(duì)誤差MAE的關(guān)系。實(shí)驗(yàn)中目標(biāo)用戶(hù)的近鄰用戶(hù)集數(shù)KN=25,β∈[0,1],按步長(zhǎng)0.1進(jìn)行實(shí)驗(yàn)分析,實(shí)驗(yàn)結(jié)果如圖3所示。
圖3 β與MAE的關(guān)系
根據(jù)實(shí)驗(yàn)結(jié)果可知,在β∈[0,0.8]內(nèi),MAE隨β的增大而減小,且β取0.8時(shí)MAE值最小,故本實(shí)驗(yàn)選取參數(shù)β=0.8作為改進(jìn)相似度的融合權(quán)重取值。
(3)實(shí)驗(yàn)3:分析比較鄰近人數(shù)與MAE值的關(guān)系。利用相同的實(shí)驗(yàn)數(shù)據(jù),對(duì)傳統(tǒng)的協(xié)同過(guò)濾算法與本文的融合算法的推薦精度進(jìn)行比較,實(shí)驗(yàn)結(jié)果如圖4所示。
圖4 推薦算法的MAE比較
實(shí)驗(yàn)結(jié)果顯示,隨著近鄰用戶(hù)數(shù)量的增加,兩種推薦算法的平均絕對(duì)誤差MAE均呈現(xiàn)下降趨勢(shì),并趨于平穩(wěn)。其原因是近鄰用戶(hù)數(shù)量增加時(shí),推薦計(jì)算參考的用戶(hù)也增多,精準(zhǔn)度也逐漸上升。本文提出的融合算法比傳統(tǒng)算法更穩(wěn)定,隨著近鄰用戶(hù)數(shù)量的增加,平均絕對(duì)誤差逐漸降低,最高降低了26.9%,而當(dāng)近鄰用戶(hù)較少時(shí),推薦質(zhì)量也優(yōu)于傳統(tǒng)的協(xié)同過(guò)濾算法,這表明融合算法在一定程度上可以緩解傳統(tǒng)推薦算法的冷啟動(dòng)問(wèn)題。
本文對(duì)比分析了傳統(tǒng)協(xié)同過(guò)濾算法中常用的四種用戶(hù)相似度計(jì)算,在指出其不足的基礎(chǔ)上進(jìn)行改進(jìn)。充分考慮冷門(mén)物品對(duì)度量用戶(hù)興趣特征的貢獻(xiàn),引入了物品熱門(mén)懲罰因子;增大最近物品對(duì)用戶(hù)興趣影響的權(quán)重,以反映用戶(hù)興趣的動(dòng)態(tài)變化,提出了基于時(shí)間數(shù)據(jù)權(quán)重的非線(xiàn)性遺忘函數(shù)。進(jìn)一步提出了基于懲罰因子和時(shí)間權(quán)重的用戶(hù)相似度融合算法,實(shí)驗(yàn)結(jié)果表明,平均絕對(duì)誤差(MAE)減小幅度較大,可更好地發(fā)現(xiàn)用戶(hù)的興趣,進(jìn)行更有效的推薦,克服了傳統(tǒng)算法的不足。
該算法引入了物品熱門(mén)懲罰因子和時(shí)間權(quán)重,在提高準(zhǔn)確率的同時(shí),也增加了計(jì)算的復(fù)雜。未來(lái)的研究方向包括以下兩個(gè)方面:其一,在不降低推薦精度的前提下提高推薦的廣度,以便減少用戶(hù)的審美疲勞,防止推薦馬太效應(yīng);其二,進(jìn)行畫(huà)像分析,為用戶(hù)提供更好的個(gè)性化推薦服務(wù)。