李琳
(遼寧科技大學(xué) 遼寧省鞍山市 114051)
目前,推薦系統(tǒng)是處理信息過載問題最重要的方法之一,廣泛應(yīng)用于各個領(lǐng)域。協(xié)同過濾算法在推薦系統(tǒng)中廣泛應(yīng)用。現(xiàn)有的推薦算法通常以精確度最大化為推薦目標(biāo),推薦多樣化才能提高用戶的滿意度。在實際應(yīng)用中,多個目標(biāo)之間相互制約,如何通過個性化推薦技術(shù)得到多個目標(biāo)權(quán)衡下的結(jié)果具有重要意義[1]。史曉艷提出一種基于多目標(biāo)的推薦模型提高挖掘潛在興趣和冷門商品的能力[2]。A.Jain 使用多目標(biāo)優(yōu)化方法權(quán)衡普及度和多樣性,具有良好的客觀性[3]。申凱麗將人工免疫算法引入傳統(tǒng)推薦算法中,提高推薦質(zhì)量[4]。本文主要考慮推薦的準(zhǔn)確性和多樣性,利用基于用戶的協(xié)同過濾算法和免疫算法,得到用戶滿意度和項目多樣性均衡的推薦結(jié)果。
鄰域模型是協(xié)同過濾算法中最常見的方法,其結(jié)果直觀且實現(xiàn)相對簡單。主要刻畫項目或用戶之間的相似度,將相似度較高的稱作最近鄰,根據(jù)最近鄰的偏好進行預(yù)測,得到推薦結(jié)果。
相對于單目標(biāo)優(yōu)化,多目標(biāo)優(yōu)化問題更貼近日常生活和工程領(lǐng)域?qū)嶋H問題的模型。實際應(yīng)用中得到同時滿足各個目標(biāo)的最優(yōu)解幾乎是不可能的,只能對這些目標(biāo)進行協(xié)調(diào)處理,得到一個較為滿意的結(jié)果。
在多個目標(biāo)函數(shù)沖突的情況下,多目標(biāo)進化是解決全局尋優(yōu)的有效算法。非支配鄰域免疫算法(NNIA)模擬多樣性抗體共生、少數(shù)抗體激活的現(xiàn)象,通過克隆與遺傳操作,加強稀疏區(qū)域的搜索。NNIA 因為其高效的進化性能,良好的收斂性在解決多目標(biāo)問題上被廣泛應(yīng)用。
用戶評分習(xí)慣會對系統(tǒng)預(yù)測的準(zhǔn)確率造成影響,引入觀測誤差降低影響,將誤差分為兩個部分。一部分是項目觀測誤差,體現(xiàn)項目所獲得的評分情況,另一部分是用戶觀測誤差,體現(xiàn)用戶評分習(xí)慣。計算誤差時以所有評分的均值為基準(zhǔn)。如用戶u 對項目i 的觀測誤差定義為:

bi和bu分別表示項目i 和用戶u 相對于平均分的觀測誤差,具體表示為:


圖1:NO.989 用戶的Pareto 前沿面
改進的評分預(yù)測公式表示為:

準(zhǔn)確性是指用戶對系統(tǒng)推薦項目感興趣的可能性。因為在離線系統(tǒng)中,準(zhǔn)確率在訓(xùn)練集中是未知的,所以采用相似度匹配函數(shù)作為準(zhǔn)確性目標(biāo)函數(shù),表示為:

其中N 為最終推薦列表的長度,R 為候選集,Pu為用戶u 評價過的項目集,fV越小,相似度越高,推薦的準(zhǔn)確率越高。
推薦的多樣性也是需要考慮的重要問題。多樣性目標(biāo)函數(shù)表示為:

fD的值越小,推薦列表中項目之間的相似度越小,多樣性越好。
本文的目標(biāo)函數(shù)包括推薦的準(zhǔn)確性和多樣性兩個方面,以最小化為優(yōu)化模型。最終的目標(biāo)函數(shù)表示為:


表1:準(zhǔn)確度指標(biāo)結(jié)果

表2:多樣性指標(biāo)結(jié)果
使用NNIA,通過實數(shù)編碼對候選集進行編碼,采用均勻交叉算子和單點變異算子進行遺傳操作,對候選解集列表進行進一步優(yōu)化,產(chǎn)生最終推薦列表。免疫優(yōu)化算法產(chǎn)生的是一系列擁有不同推薦目標(biāo)的推薦列表,可根據(jù)用戶具體推薦目標(biāo)進行個性化推薦。
實驗使用Movielens 數(shù)據(jù)集,包含1720 個用戶對3323 部電影的評分?jǐn)?shù)據(jù),隨機選擇80%的數(shù)據(jù)作為訓(xùn)練集,20%作為測試集。設(shè)置候選列表長度為50,最終推薦列表長度N 為10,迭代次數(shù)為200,交叉概率0.8,變異概率0.1。
本實驗在數(shù)據(jù)集中隨機選擇一個用戶。算法為NO.989 用戶提供的解集如圖1,f1 為準(zhǔn)確性指標(biāo)函數(shù)值,f2 為多樣性指標(biāo)函數(shù)值,每個點代表一個推薦列表。
算法有效求得分布均勻的50 個不同的解,解a 為所有解集中準(zhǔn)確性最高,多樣性最差的推薦列表,解b 為所有解集中多樣性最高的列表,但其準(zhǔn)確性不高。隨著推薦準(zhǔn)確性的不斷提高,多樣性的值逐漸下降,說明準(zhǔn)確性和多樣性存在沖突,符合個性化推薦的規(guī)律。
實驗隨機選取連續(xù)10 個用戶,測試用戶編號為420-429。本文算法(User-NNIA)與基于用戶的協(xié)同過濾算法(UserCF)和基于項目的協(xié)同過濾算法(ItemCF)進行比較,結(jié)果如表1所示,8 個用戶推薦列表的平均準(zhǔn)確率高于其他對比算法,2 個用戶的推薦列表準(zhǔn)確率均值小于兩種對比算法,但最大值大于其他對比算法的準(zhǔn)確度值。本文算法所給出的推薦列表不一定是最準(zhǔn)確的,但是可給出比其他兩種比較算法更準(zhǔn)確的推薦結(jié)果,有更大的可能性推測出測試集中用戶喜歡的項目。
推薦多樣性對比結(jié)果如表2所示。7 個用戶推薦列表的多樣性平均值優(yōu)于其他算法,3 個用戶推薦列表的多樣性平均值小于一種對比算法,但是最小值均優(yōu)于對比算法。說明即使本文算法所得到的多樣性平均值不是最好的,其最小值也將優(yōu)于對比算法。
本文提出基于多目標(biāo)免疫優(yōu)化的推薦算法,在不降低準(zhǔn)確度的前提下提高推薦多樣性。算法將協(xié)同過濾算法與多目標(biāo)進化算法相結(jié)合,將推薦問題視為一個多目標(biāo)優(yōu)化問題,解決準(zhǔn)確度與多樣性之間的沖突。