劉超慧,韓傳福,陳天成,孔先進
(鄭州航空工業(yè)管理學院 智能工程學院,河南 鄭州 450046)
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展和移動終端設備的普及,以用戶為核心的信息生產(chǎn)模型造成了信息的爆炸式增長,公眾很難在海量信息中迅速、準確地找到所需的信息,面臨著嚴峻的“信息過載”問題。以推薦系統(tǒng)為代表的信息過濾技術(shù),是解決“信息過載”問題的常用方法。推薦系統(tǒng)依據(jù)用戶的歷史行為和數(shù)據(jù),通過建立模型來挖掘用戶需求和潛在興趣,進而從海量信息中為用戶篩選所需的信息[1]。
協(xié)同過濾算法是眾多推薦算法中使用最廣泛、最有效的算法之一,已成功應用于許多商業(yè)推薦系統(tǒng),但其仍存在著一些亟待解決的問題,例如冷啟動、數(shù)據(jù)稀疏和馬太效應。對此許多學者進行了卓有成效的研究工作。于洪等人提出基于時間窗口的時間數(shù)據(jù)權(quán)重,將用戶興趣分為長期和短期兩類,更好地反映出了用戶興趣變化規(guī)律,提高了推薦精度[2];趙文濤等人提出基于時間的Logistic權(quán)重函數(shù)與用戶特征屬性進行加權(quán)的新的相似度度量模型[3];蘭艷等人利用衰減因子建立非線性時間加權(quán)函數(shù),賦予評分不同的時間權(quán)重,提高了推薦的準確性[4]。上述文獻雖然考慮了用戶興趣隨時間的變化,卻未注意到熱門物品對用戶評分的影響,對推薦精度有一定的影響。
謝修娟等人引入物品流行度與位置信息,提高了推薦結(jié)果的多樣性[5];孫紅等人通過添加物品熱門懲罰因子,優(yōu)化了皮爾遜相似度計算,提高了推薦質(zhì)量[6];AHM H J等人通過研究物品熱門程度的影響,使用啟發(fā)式算法對用戶相似性度量進行優(yōu)化,緩解了傳統(tǒng)協(xié)同過濾算法的冷啟動問題[7];焦富森等人考慮物品質(zhì)量和用戶評分傾向性對用戶打分的影響,提高推薦效果[8]。這些算法雖彌補了傳統(tǒng)算法過分考慮熱門物品對評分的影響,卻未考慮用戶興趣隨時間遷移的情況,無法動態(tài)追蹤用戶的興趣變化。
本文在基于皮爾遜相似度的基礎(chǔ)上進行改進實驗,提出了一種融合物品熱門懲罰因子和時間權(quán)重的相似度計算方法,彌補了傳統(tǒng)算法的缺陷。在Movies-100k數(shù)據(jù)集上進行實驗,實驗結(jié)果顯示融合后的算法可以有效追蹤用戶興趣的變化和降低熱門物品對用戶評分的影響,提高推薦精度。
協(xié)同過濾算法是一種基于用戶特征和行為數(shù)據(jù)的推薦算法,依據(jù)用戶的過去行為查找用戶或物品的最近鄰集,以計算用戶對物品的偏好,主要包括基于領(lǐng)域、圖、關(guān)聯(lián)規(guī)則和知識的推薦算法,其中使用最廣泛的是基于領(lǐng)域的方法。
(1)歐幾里得相似度
(1)
其中,sim(userx,usery)為用戶x和用戶y之間的相似度,Ix,y為用戶x、y的公共評分集,Rx,i為用戶x對物品i的評分,Ry,i為用戶y對物品i的評分。
(2)余弦相似度

(2)
(3)修正余弦相似度
sim(userx,usery)=
(3)

(4)皮爾遜相關(guān)系數(shù)
sim(userx,usery)=
(4)
皮爾遜相關(guān)系數(shù)通常用于計算兩個變量之間的相關(guān)性,其值域為[-1,1]。當該值大于0時,表示兩個變量正相關(guān);當該值小于0時,表示兩個變量負相關(guān);而該值為0表示不相關(guān)。皮爾遜相似度計算過程考慮了用戶的評分偏好,以避免在用戶對同一項目進行評分時因不同的評估習慣而引起的差異。
利用MovieLens-100K數(shù)據(jù)集對四種相似度計算方法進行性能分析,實驗結(jié)果如圖1所示。

圖1 四種相似度計算方法的對比
實驗結(jié)果表明,皮爾遜相似度隨著近鄰人數(shù)的增加,平均絕對誤差逐漸降低,皮爾遜相似性的結(jié)果對分數(shù)的絕對值不敏感,更側(cè)重分數(shù)間的相對值。與余弦相似度不同的是,皮爾遜相似度考慮了不同用戶評分的不同平均值;與修正余弦相似度相比,其去中心化的方式不同。本文以皮爾遜相似度計算方法為基礎(chǔ)開展項目研究。
協(xié)同過濾算法依據(jù)用戶對物品評估的差異計算相似度,忽略了物品的熱門程度或必需性對相似度的影響。一些大眾的、受歡迎的熱門物品,并不能充分反映用戶的“個性”和潛在的愛好,也不能表明用戶之間具有很強的相似性。這時,應減少其對用戶相似性度量的影響和貢獻。例如,對于給予《戰(zhàn)狼2》評分很高的兩個觀影用戶,很難依據(jù)這部熱門影片判定這兩個用戶具有相同的興趣愛好,相反,如果兩人都觀看過小眾的音樂劇影片,則可以反映出用戶具有相似的興趣和愛好。
因此冷門的物品可以更好地反映用戶之間的相似性,而且冷門程度越高,相似性越強。考慮到用戶的相似度會受熱門物品的影響,故添加了物品熱門懲罰因子作為加權(quán)系數(shù),以抑制熱門物品的影響。
本文引入熱門物品懲罰因子作為加權(quán)系數(shù),改進了皮爾遜相似度計算方法[9],物品出現(xiàn)的次數(shù)越多,則表明該物品越大眾化,該物品對用戶的興趣相似性的貢獻也越小。引入懲罰因子的皮爾遜相似度計算方法如式(5)所示:
sim1(userx,usery)=
(5)
其中,N(i)表示物品i出現(xiàn)的次數(shù)。由懲罰項可知,N(i)越大,ln(1+N(i))的倒數(shù)越小,則此物品對于用戶間的相似度貢獻越小。改進后的計算方法可以減弱熱門物品的影響。
協(xié)同過濾算法對用戶訪問的物品同等對待,沒有充分考慮最近訪問的物品對用戶興趣的衡量的貢獻。最近訪問的物品信息更能反映用戶的興趣特征,而早期評估數(shù)據(jù)應占有較小的比重,因為用戶的興趣會伴隨著時間的變化而發(fā)生改變,用戶感興趣的物品很可能類似于其最近訪問過的物品。因此,引入了基于用戶評估時間的數(shù)據(jù)權(quán)重,以增加推薦生成過程中最近訪問數(shù)據(jù)的權(quán)重。幾個相關(guān)的定義如下:
定義1最早評價物品時刻Tfirst:表示用戶第一次評價物品的時間點。
定義2最后評價物品時刻Tfinal:表示用戶最后一次評價物品的時間點。
定義3評價某物品時刻t:表示一個用戶評價某一個物品的時間點。
改進的非線性遺忘函數(shù)如式(6)所示:
(6)
其中,參數(shù)α∈[0,1],α的值影響權(quán)重隨時間的變化速度,值越大權(quán)重增長越快;f(t)值域是[1/e, 1],該遺忘函數(shù)符合人的遺忘理論中收斂性的特點,f(t)的值越大,表明用戶對此物品的評分時間越新,對推薦結(jié)果的貢獻越大。基于時間數(shù)據(jù)權(quán)重的皮爾遜相似度計算方法如式(7)所示:
sim2(userx,usery)=
(7)

物品熱門懲罰因子在考慮到用戶相似度受熱門物品影響的同時,充分考慮冷門物品對度量用戶興趣特征的貢獻。依據(jù)時間數(shù)據(jù)權(quán)重構(gòu)造的非線性遺忘函數(shù),增大了最近物品對用戶興趣的影響,考慮了用戶興趣的變化趨勢。融合熱門物品懲罰因子和時間權(quán)重的相似度模型如式(8)所示:
sim3(userx,usery)=(1-β)×sim1(userx,usery)+β×sim2(userx,usery)
(8)
其中β∈[0,1],表示兩種相似度融合權(quán)重,根據(jù)不同推薦系統(tǒng),可動態(tài)調(diào)整β的值。
本文提出的改進算法模型彌補了傳統(tǒng)算法未考慮熱門物品和時間數(shù)據(jù)權(quán)重對用戶相似度計算的缺陷,利用KNN算法得到目標用戶的近鄰集,采用式(9)計算目標用戶對物品的預測評分。
(9)
其中,px,i為目標用戶x對物品i的預測評分,Nx表示目標用戶x的近鄰用戶集,選取其前N個目標用戶未評估的物品組成Top-N推薦集。
改進的協(xié)同過濾算法兼顧了熱門物品對用戶評分的影響和用戶的興趣隨時間的變化,較傳統(tǒng)算法更符合實際生活,提高了推薦的精度,算法1給出了詳細的算法描述。
算法1:基于懲罰因子和時間權(quán)重的協(xié)同過濾推薦算法
輸入:目標用戶u,用戶-物品評分矩陣R,近鄰用戶個數(shù)K,推薦結(jié)果個數(shù)N,參數(shù)α、β的值;
輸出:目標用戶u的K個近鄰用戶,TOP-N物品推薦集。
(1)利用文中改進的非線性遺忘函數(shù)f(t)(式(6)),計算用戶-物品評分矩陣R1;
(2)計算目標用戶u的關(guān)聯(lián)用戶集Ru;
(3)利用本文提出的融合型皮爾遜相似度計算模型(式(8)),計算與u相似度最高的前K個近鄰用戶集Nu;
(4)利用組合KNN推薦算法預測目標用戶未評價物品的評分px,i;
(5)選擇評分較高的前N項物品TOP-N為目標用戶u推薦結(jié)果集。
本文選取明尼蘇達大學GroupLens小組發(fā)布的MovieLens-100K數(shù)據(jù)集進行實驗分析(https://grouplens.org/datasets/movielens/100k/),數(shù)據(jù)主要來自研究人員對電影中不同用戶群體的評分調(diào)查,u.data文件包含從1 682個電影項目943個用戶評分中選取的100 000條評估數(shù)據(jù)。選取70%用作訓練集,剩余30%用作測試集。為了有效緩解數(shù)據(jù)稀疏性,這些用戶至少參與了20部電影的評估。采用五級評分制,評分越低,用戶對電影的喜愛程度就越低。
平均絕對誤差(Mean Absolute Error,MAE)是推薦系統(tǒng)中最常用的標準,用以衡量推薦算法的質(zhì)量。其原理是把實驗結(jié)論與實際結(jié)果之間的偏差當作度量,推薦的準確率與MAE值的大小成反比,即MAE值越小表示推薦算法的質(zhì)量越好,MAE計算方法如式(10)所示:
(10)
其中,|Ix|為被用戶x評分的物品集大小。
為了比較本文提出的算法與傳統(tǒng)算法的推薦精度,設計了3組實驗進行分析。
(1)實驗1:計算分析權(quán)重值α與平均絕對誤差MAE的關(guān)系。實驗中目標用戶的近鄰用戶集數(shù)KN=25,α∈[0,1],按步長0.1進行實驗分析,實驗結(jié)果如圖2所示。

圖2 α與MAE的關(guān)系
實驗結(jié)果顯示,在α∈[0,0.1]內(nèi),MAE隨α的增大而減小,且α取0.1時MAE值最小,故本實驗選取α=0.1作為非線性遺忘函數(shù)的參數(shù)取值。
(2)實驗2:計算式(8)中兩種相似度融合權(quán)重β與平均絕對誤差MAE的關(guān)系。實驗中目標用戶的近鄰用戶集數(shù)KN=25,β∈[0,1],按步長0.1進行實驗分析,實驗結(jié)果如圖3所示。

圖3 β與MAE的關(guān)系
根據(jù)實驗結(jié)果可知,在β∈[0,0.8]內(nèi),MAE隨β的增大而減小,且β取0.8時MAE值最小,故本實驗選取參數(shù)β=0.8作為改進相似度的融合權(quán)重取值。
(3)實驗3:分析比較鄰近人數(shù)與MAE值的關(guān)系。利用相同的實驗數(shù)據(jù),對傳統(tǒng)的協(xié)同過濾算法與本文的融合算法的推薦精度進行比較,實驗結(jié)果如圖4所示。

圖4 推薦算法的MAE比較
實驗結(jié)果顯示,隨著近鄰用戶數(shù)量的增加,兩種推薦算法的平均絕對誤差MAE均呈現(xiàn)下降趨勢,并趨于平穩(wěn)。其原因是近鄰用戶數(shù)量增加時,推薦計算參考的用戶也增多,精準度也逐漸上升。本文提出的融合算法比傳統(tǒng)算法更穩(wěn)定,隨著近鄰用戶數(shù)量的增加,平均絕對誤差逐漸降低,最高降低了26.9%,而當近鄰用戶較少時,推薦質(zhì)量也優(yōu)于傳統(tǒng)的協(xié)同過濾算法,這表明融合算法在一定程度上可以緩解傳統(tǒng)推薦算法的冷啟動問題。
本文對比分析了傳統(tǒng)協(xié)同過濾算法中常用的四種用戶相似度計算,在指出其不足的基礎(chǔ)上進行改進。充分考慮冷門物品對度量用戶興趣特征的貢獻,引入了物品熱門懲罰因子;增大最近物品對用戶興趣影響的權(quán)重,以反映用戶興趣的動態(tài)變化,提出了基于時間數(shù)據(jù)權(quán)重的非線性遺忘函數(shù)。進一步提出了基于懲罰因子和時間權(quán)重的用戶相似度融合算法,實驗結(jié)果表明,平均絕對誤差(MAE)減小幅度較大,可更好地發(fā)現(xiàn)用戶的興趣,進行更有效的推薦,克服了傳統(tǒng)算法的不足。
該算法引入了物品熱門懲罰因子和時間權(quán)重,在提高準確率的同時,也增加了計算的復雜。未來的研究方向包括以下兩個方面:其一,在不降低推薦精度的前提下提高推薦的廣度,以便減少用戶的審美疲勞,防止推薦馬太效應;其二,進行畫像分析,為用戶提供更好的個性化推薦服務。