劉國麗,徐洪楠,譚有倩
(1.河北工業(yè)大學人工智能與數(shù)據(jù)科學學院,天津 300401; 2.河北工業(yè)大學廊坊分校,河北 廊坊 065008)
互聯(lián)網(wǎng)時代導致的信息過載現(xiàn)象,促使電子商務社區(qū)對推薦算法進行大量改進,以提供一種智能機制,從與用戶相關的海量數(shù)據(jù)中過濾出可用的信息。協(xié)同過濾是推薦系統(tǒng)中應用最廣泛的推薦技術之一[1]。傳統(tǒng)的協(xié)同過濾算法主要是依靠鄰居用戶進行推薦,這樣僅依賴鄰居用戶所得到的推薦結果往往不是很可靠。在現(xiàn)實生活的社交網(wǎng)絡中,不僅有興趣相似的鄰居用戶,還存在具有某些特定領域知識并且閱歷廣泛的社區(qū)專家[2]。在人們的日常生活中,人們傾向于咨詢專家,聽取專家意見。專家的建議更具有說服力,也會影響用戶的感知[3]。因此,越來越多的學者將專家信任因素考慮到推薦系統(tǒng)中。
針對目前協(xié)同過濾推薦算法存在的鄰居用戶相似度、專家信任度計算不準確、冷啟動等原因導致的推薦準確度低的問題,國內(nèi)外學者進行了大量研究。李炎等人[4]從用戶空間角度對相似度以及評分預測進行改進,在提高了算法準確率的同時也降低了算法的時間復雜度,但忽略了項目本身的冷門程度對相似度的影響。Hafed等人[5]引入項目場景相似度的概念,對相似度計算公式進行改進,提出了一種新的基于場景的協(xié)同過濾推薦算法,最終利用聚類矩陣和用戶的評分矩陣生成推薦,有效地緩解了稀疏性問題,提高了推薦精度。Gou等人[6]將信任感知和領域專家推薦相結合,通過信任感知網(wǎng)絡解決不能直接計算某些用戶的信任值的問題,但在相似度計算上,忽略了用戶的評分時間對相似度的影響。李普聰?shù)热薣7]借鑒社會心理學人際信任建立機制,將“用戶-項目”單層網(wǎng)絡擴展為“用戶-用戶-項目”雙層網(wǎng)絡,根據(jù)用戶之間的信任確定資源分配,提高了推薦的準確度和多樣性。Wu等人[8]認為進行預測時的關鍵問題是檢測不可信用戶提供的不可靠數(shù)據(jù),從此角度,提出了一種新的可信性感知預測方法,采用兩階段K-means聚類來識別不可信用戶,不僅提高了預測精度,而且提高了方法的魯棒性。Ahlem等人[9]提出了一種基于信任的服務推薦機制,該機制分為2個階段,第一階段根據(jù)用戶的社會概況以及某段時間內(nèi)的互動來對用戶進行信任檢測;第二階段將社會性和協(xié)作性結合起來,根據(jù)專業(yè)水平向用戶推薦適當?shù)姆?,該機制有效地提高了推薦精度。Zheng等人[10]將專家信任考慮到推薦算法中,有效地緩解了數(shù)據(jù)稀疏性和冷啟動問題,但是在計算專家信任時,只考慮到了用戶的評分數(shù)量,忽略了專家自身的社會閱歷的影響。
上述算法雖然在提高推薦精度方面有一定的效果,但仍存在需要改進的地方,這體現(xiàn)在如下4個方面:1)已有的協(xié)同過濾推薦算法在計算相似度時,忽略了2個用戶對同一項目評分時間所蘊含的隱偏好,本文通過用戶的評分時間以及項目的產(chǎn)生時間形成隱偏好因子對相似度進行改進;2)考慮到2個用戶公共偏好項目的冷門程度對相似度的影響,設置項目冷門因子,冷門因子越大,則2個用戶公共偏好項目的冷門程度越高,該項目在用戶的興趣權重分配值越大,對相似度計算影響越大;3)鑒于以往專家信任的計算未考慮到專家的閱歷值對信任值的影響,通過設置時間跨度因子體現(xiàn)專家的閱歷值,專家的閱歷越豐富,專家的評分越可靠,對用戶的評分預測更加準確;4)上述算法對冷啟動問題考慮仍不夠全面,當用戶不存在評分時,無法找出其鄰居用戶,因此無法進行有效的推薦。本文通過用戶自身所具有的屬性,找出與待測用戶屬性相似的用戶,并聯(lián)合專家用戶來緩解冷啟動問題。
針對傳統(tǒng)推薦算法所存在的問題,本文提出一種結合專家信任的協(xié)同過濾推薦算法CFRAET(Collaborative Filtering Recommendation Algorithm based on Expert Trust)。傳統(tǒng)的推薦算法將所有的用戶群都作為選擇最鄰居用戶的參考群,隨著用戶群的增加,不僅會降低系統(tǒng)的性能,還會造成嚴重的數(shù)據(jù)稀疏問題[11]。因此,本文首先參考文獻[12],根據(jù)用戶的相似度進行聚類,將興趣點相同的用戶分到同一個社區(qū)簇中。本文算法從相似度、專家信任度和緩解冷啟動3個方面進行研究。
對于個性化推薦來說,最核心的部分是相似度的計算。在相似度計算方法中,Pearson相關系數(shù)[13]和Jaccard相似系數(shù)[14]是應用較為廣泛的2種。Pearson相關系數(shù)是根據(jù)2個用戶的共同評分項計算相似度,適用于評分數(shù)目較多的數(shù)據(jù)集,但是忽略了2個用戶公共評分項目所占的比例問題;Jaccard相似系數(shù)僅關注用戶是否對項目進行過評分,而不考慮用戶對項目的評分值。因此Jaccard相似系數(shù)主要用于計算有限集合中樣本之間的相似度,適用于稀疏度高的數(shù)據(jù)集。本文參考文獻[15]中的方法,通過引入加權系數(shù),將Pearson相關系數(shù)和Jaccard相似系數(shù)結合在一起,有效地利用2種方法的優(yōu)點,使相似度計算更加準確,計算如公式(1)所示:
(1)
其中,Ix,y表示用戶x、y的共同評分項集合,Rx,i、Ry,i分別表示用戶x、y對項目i的評分,ˉRx表示用戶x的平均評分,Nx、Ny分別表示用戶x、y的評分項目集合,加權系數(shù)如公式(2)所示:
(2)
其中,Ix表示用戶x已評分的項目集合,Iy表示用戶y已評分的項目集合。
公式(1)雖將2種相似度計算方法的優(yōu)點相結合,但是僅通過評分計算用戶的相似度仍存在偏差。因此,本文將從公共評分項目蘊含的用戶隱偏好及項目本身的冷門程度2個方面對相似度進行改進。
1.1.1 引入用戶隱偏好
在現(xiàn)實生活中,當有新的項目產(chǎn)生時,人們會通過各種渠道提前了解到該項目的相關信息。以電影為例,當有新的電影即將上映時,電影所屬的公司會對該電影進行宣傳,用戶可以通過各種渠道提前了解到電影的相關信息,如電影類型、演員陣容、電影內(nèi)容等。用戶會對該電影有一個定位,如果用戶喜歡該電影,通常會盡早地觀看其感興趣的電影并對其評分;反之,如果用戶不喜歡該電影,可能在電影上映很久以后才做出評分。電子產(chǎn)品中的手機也存在類似情況,每當有新型手機即將上市時,手機的廠家都會舉辦發(fā)布會,目的是讓用戶可以提前了解到手機的性能。若用戶覺得該產(chǎn)品滿足自己各方面的要求,用戶就會在產(chǎn)品正式銷售的第一時間去購買并評價該產(chǎn)品;反之,若該手機的某些指標沒有滿足用戶的要求,該用戶有可能會延遲購買的時間,或拒絕購買該產(chǎn)品??紤]到上述現(xiàn)象,可以認為用戶對項目評分的時間與商品的產(chǎn)生時間在一定程度上反應用戶對項目的偏好。因此,本文通過引入相對時間的概念來體現(xiàn)用戶對項目的隱偏好。相對時間主要通過用戶對項目的評分時刻與項目本身的產(chǎn)生時刻的差值來計算,相對時間值越大,表示用戶對項目的隱偏好越小,反之,則越大。其計算如公式(3)所示:
pre(x,i)=URtime(x,i)-MRtime(i)
(3)
其中,URtime(x,i)表示用戶x評價項目i的時刻,MRtime表示項目i的產(chǎn)生時刻。
考慮到2個用戶對項目的隱偏好對相似度計算的影響,計算出2個用戶的隱偏好差值,通過公式(4)對其進行規(guī)范化處理:
(4)
(5)
1.1.2 引入項目冷門因子
傳統(tǒng)的結合專家信任的協(xié)同過濾推薦算法在計算相似度時,注重用戶評分及用戶自身屬性帶來的影響,但忽略了項目本身冷門程度對相似度的影響。通常情況下,若2個用戶的共同偏好項越冷門,則該項目在相似度計算中權重也較大。因此,本文引入項目的冷門因子來對相似度進行改進。
對于每個項目,首先通過公式(6)計算出對該項目未評過分的用戶數(shù)目,即項目的冷門度:
Unpopi=n-count(Rx,i>0)
(6)
其中,n表示用戶的總個數(shù),count(Rx,i>0)表示對項目i做出過評分的用戶數(shù)量。
對用戶公共評分項進行冷門因子的度量。2個用戶的共同評分項集合Ix,y中會出現(xiàn)以下3種情況:
情況1 2個用戶同時喜歡的項目集合。
情況2 2個用戶同時不喜歡的項目集合。
情況3 一個用戶喜歡而另一個用戶不喜歡的項目集合。
對于情況1和情況2,2個用戶對同一項目具有相同的偏好,此時,項目冷門因子對相似度的影響較大,采用公式(7)進行計算:
(7)
其中,Unpopmax表示項目的最大冷門度,其取值為Unpopi中的最大值,Unpopmin表示項目的最小冷門度,其取值為Unpopi中的最小值。
對于情況3,2個用戶對同一項目的偏好不同,此時項目冷門因子對相似度的影響將會降低。本文采用2個用戶的評分差值來降低冷門因子對相似度產(chǎn)生的影響,采用公式(8)進行計算:
(8)
冷門因子介于0與1之間。通過公式(9)計算2個用戶公共評分項集合的冷門因子的平均值:
(9)
(10)
專家信任度表明用戶向網(wǎng)絡中的其他用戶提供可靠信息的能力,該能力與用戶儲備的知識以及經(jīng)驗息息相關。景民昌等人[16]認為專家信任度與用戶對項目的評分數(shù)量成正比,即用戶的評分次數(shù)越多,則專家信任度值越高。專家信任度值計算方法如公式(11)所示:
(11)
實際生活中,專家信任度不僅與評分數(shù)量有關,還與用戶的閱歷豐富程度有關[17]。本文從用戶評分時間出發(fā),考慮到不同閱歷值對專家評分的影響,當用戶閱歷豐富時,用戶會有更多的機會接觸各式各樣的項目,做出的評價就會更加可靠,專家信任度會更高。本文引入時間跨度因子反映專家的閱歷豐富程度,計算方法如公式(12)所示:
(12)
時間跨度因子φx不是一個固定的數(shù)值,會隨著用戶對項目評分的時間不同而發(fā)生變化。φx變化時,用戶的專家信任度也會發(fā)生變化。本文專家信任度計算如公式(13)所示:
TStrust(x)=trust(x)·φx
(13)
專家信任度是選取專家的重要依據(jù),但僅計算出專家信任度還不能完成目標用戶的推薦,還應選出目標用戶所在社區(qū)簇中的專家用戶。通常有2種方法確定各社區(qū)簇中專家數(shù)目,第一種方法是固定專家的數(shù)目,即每個社區(qū)簇中專家的數(shù)目相同。由于每個社區(qū)簇中的用戶數(shù)目是不確定的,如果固定專家的數(shù)目,可能出現(xiàn)整個社區(qū)簇中全是專家的極端情況。第二種方法是按照比例選取社區(qū)簇中專家的數(shù)目,該方法不僅會避免第一種方法中極端情況的產(chǎn)生,同時符合實際情況。因此,本文首先對社區(qū)簇內(nèi)的每個用戶按照專家信任度進行排序,然后按比例確定相應數(shù)目的用戶作為該社區(qū)簇內(nèi)的專家進行推薦。專家選取方法如公式(14)所示:
Expert(s)=Nums×γ
(14)
其中,Expert(s)表示第s個社區(qū)簇中的專家數(shù)量,Nums表示第s個社區(qū)簇中的全部用戶數(shù)量,γ表示專家用戶數(shù)所占該社區(qū)簇總人數(shù)的比例。
用戶冷啟動問題,即用戶不存在評分記錄,用戶不存在評分記錄則無法找出其鄰居用戶進行推薦。針對用戶冷啟動問題,本文考慮到相同屬性的用戶具有相似的興趣愛好,可以通過目標用戶的自身屬性尋找鄰居用戶。本文首先選出對待預測項目已評分的用戶,其次對其中的專家用戶采用專家信任度;對其中的普通用戶,計算其與目標用戶的屬性相似度,最后通過屬性相似用戶與專家用戶共同為冷啟動用戶產(chǎn)生推薦。
不同屬性對用戶興趣的影響不同,其中,年齡和性別對興趣的影響最大[18]。例如:對年齡而言,兒童傾向于觀看卡通類影片,青少年傾向于動作類影片,中年人傾向于觀看家庭倫理類影片,老年人則傾向于觀看紀錄片;對性別而言,男性傾向于觀看斷案推理類或者科幻動作類影片,女性傾向于看情感生活類或者喜劇類影片。因此,本文選取年齡和性別來計算用戶之間的屬性相似度。
1.3.1 用戶屬性預處理
為了方便屬性相似度的計算,首先對數(shù)據(jù)集中的屬性作數(shù)值化處理。對于性別,本文用“1”表示女性,“0”表示男性。對于年齡,由于在某一年齡段內(nèi)用戶興趣愛好偏差不大,比如,13~17歲更傾向于看校園劇,因此,根據(jù)年齡分段如表1所示。將年齡分段之后,考慮到不同年齡段間的差異程度各不相同,比如,年齡段一與年齡段二的差異要遠小于年齡段一與年齡段六的差異,因此本文通過順序編碼的方式將各個年齡段數(shù)值化,這樣,在反應不同年齡段的差異的同時,也可降低因編碼方式對相似度計算產(chǎn)生的影響。
表1 年齡數(shù)值化表
1.3.2 用戶屬性相似度
用戶x與用戶y的屬性相似度計算如公式(15)所示:
其中,xage表示用戶x的年齡,yage表示用戶y的年齡,xsex表示用戶x的性別,ysex表示用戶y的性別,λ表示權衡因子,用來調(diào)節(jié)性別和年齡的比例。
根據(jù)相似度將目標用戶劃分到相應的社區(qū)簇內(nèi),通過公式(10)計算出目標用戶與所在社區(qū)簇中其他用戶的相似度,并選出其鄰居用戶。通過公式(13)計算出用戶的專家信任度,并按照一定比例選出專家用戶。通過目標用戶所在社區(qū)簇中的相似用戶以及專家用戶共同為該用戶進行評分預測。改進后的評分預測如公式(16)所示:
(16)
其中,Px,i表示用戶x對項目i的預測評分,TStrust(x1)表示第s個社區(qū)簇內(nèi)的專家的信任值,x1表示社區(qū)簇內(nèi)專家用戶,Rx1,i表示專家的評分,x2表示社區(qū)簇內(nèi)相似用戶,K表示用戶x的相似用戶數(shù)量。α、β是平衡因子,用來調(diào)節(jié)專家用戶與相似用戶的比例。
通過公式(16)可以看出評分預測的前提是用戶有過評分記錄,通過評分記錄可找出目標用戶的相似用戶,對于冷啟動用戶,公式(16)便不再適用。
在用戶不存在評分記錄或者評分記錄極少,無法通過評分推斷其興趣愛好的情況下,可以通過專家用戶為其推薦。專家用戶評分客觀,具有權威性,傳統(tǒng)的協(xié)同過濾推薦算法使用專家用戶為冷啟動用戶進行推薦,雖然可以有效地解決冷啟動問題,但是在個性化推薦方面有所欠缺[19]。本文采用用戶的自身屬性來解決傳統(tǒng)的推薦方法中個性化方面欠缺的問題。將屬性相似用戶與專家用戶聯(lián)合起來產(chǎn)生推薦,能有效地彌補傳統(tǒng)算法中的不足。
冷啟動用戶的評分預測方法如公式(17)所示:
px,i=
(17)
其中,k表示社區(qū)簇個數(shù),集合U為對項目i評過分的用戶集合。
基于以上對算法的改進,本文提出的CFRAET算法流程如下:
Step1根據(jù)2個用戶的評分時間以及項目的產(chǎn)生時間生成用戶隱偏好因子。
Step2根據(jù)用戶的評分矩陣計算出項目的冷門因子。
Step3根據(jù)用戶參與評分項目的時間,計算每個用戶的時間跨度因子,將時間跨度因子加入專家信任度的計算公式中,計算出每個用戶的專家信任度。
Step4將用戶隱偏好因子及項目冷門因子加入到相似度計算公式中,計算出用戶間的相似度。
Step5將目標用戶依據(jù)相似度劃分到相應的社區(qū)簇中。
Step6判斷用戶的評分數(shù)量是否為冷啟動用戶,即用戶對項目的評分數(shù)目是否為0。若為冷啟動用戶,此時跳轉到Step8進行推薦,否則采用Step7進行推薦。
Step7在目標用戶所在社區(qū)簇中確定其鄰居用戶和專家用戶,通過二者共同為目標用戶產(chǎn)生推薦。
Step8通過專家用戶與目標用戶的屬性相似用戶進行推薦。
CFRAET算法流程圖如圖1所示。
圖1 CFRAET算法流程圖
本文采用Grouplens工作組提供的MovieLens-100k公開數(shù)據(jù)集來驗證本文提出的算法CFRAET的有效性,該數(shù)據(jù)集包括943個用戶、1682部電影以及每位用戶對電影的評分數(shù)據(jù),評分數(shù)據(jù)采用五分制進行評分,共計10萬條[20]。在進行實驗之前,將實驗數(shù)據(jù)集劃分為訓練集和測試集2個部分,其中80%數(shù)據(jù)作為訓練數(shù)據(jù)集,另外20%數(shù)據(jù)作為測試數(shù)據(jù)集。
實驗所用環(huán)境為Windows10-64位操作系統(tǒng),16 GB內(nèi)存。算法由Python語言實現(xiàn),IDE為Pycharm。
2.2.1 基于預測的評分值進行評估
基于模型預測值的評價是指通過比較模型預測值與實際評分值,以模型的準確性為基礎的評價方法。本文采用平均絕對誤差MAE(Mean Absolute Error)測量預測評分與用戶的真實評分之間的平均絕對偏差。MAE值越小,推薦精度越高[21]。MAE計算方法如公式(18)所示:
(18)
2.2.2 根據(jù)推薦結果進行評估
基于模型推薦結果的評估是一種通過將模型的推薦結果與用戶的實際選擇進行比較來衡量模型有效性的方法。本文采用了準確率Precision來衡量,Precision值越高,該模型推薦效果越好[22]。準確率計算方法如公式(19)所示:
(19)
其中,R(x)表示對用戶x推薦的項目個數(shù),T(x)表示測試集合中用戶x的結果集合。R(x)∩T(x)表示正確推薦給用戶u的項目個數(shù)。
2.3.1 確定社區(qū)簇數(shù)目
MovieLen數(shù)據(jù)集中所包含的電影類型如表2所示,共19種。從表2可以看出,有些電影類型是相似的,比如兒童類和卡通類,犯罪類、懸疑類和恐怖類,可以將喜歡這些類型的用戶劃分到一個社區(qū)簇中。經(jīng)過分析可以得出,社區(qū)簇個數(shù)k不會超過10個,并且不會低于3個。因此本文從3~10依次取k的值,通過觀察不同的社區(qū)簇個數(shù)所對應的MAE來確定k的值,實驗結果如圖2所示。
表2 電影類型
圖2中u1~u5皆是將原數(shù)據(jù)集按照80%數(shù)據(jù)作為訓練數(shù)據(jù)集,另20%數(shù)據(jù)作為測試數(shù)據(jù)集進行分割得到的,它們各自有不相交的測試集。從圖2可知,當社區(qū)簇k為8時,對應的MAE值最小,因此,確定k=8。
圖2 MAE隨社區(qū)簇個數(shù)變化圖
2.3.2 確定相似用戶數(shù)量
相似用戶對最終的評分預測起至關重要的作用,如果數(shù)量過小,則會喪失許多關鍵信息;反之,如果數(shù)量過多,則有可能將與用戶興趣相反的用戶考慮進去,導致評分預測出現(xiàn)較大的誤差。因此本文分別將相似用戶的數(shù)量K取為5、10、15、20、25、30,通過觀察相應數(shù)量對MAE的影響來決定相似用戶的數(shù)量,結果如圖3所示。當相似用戶數(shù)量K取值為20時,同時兼顧了較好的MAE值和Precision值,最終確定相似用戶數(shù)量K=20。
圖3 Precision與MAE隨相似用戶數(shù)變化圖
2.3.3 確定冷啟動問題相關參數(shù)
年齡和性別對用戶興趣愛好都有所影響,但其對興趣愛好的影響程度不同。因此,需要確定年齡和性別的權重平衡因子λ。對冷啟動用戶進行評分預測時,專家用戶與屬性相似用戶所起的作用也不同。專家用戶評分客觀,但推薦結果缺乏個性化,屬性相似用戶則可以彌補個性化方面的不足,但二者權重不同,因此,需要確定出兩者的權重平衡因子θ。本文實驗數(shù)據(jù)選用的是MovieLens-100k數(shù)據(jù)集,將數(shù)據(jù)集經(jīng)過8∶2隨機抽取3個等量子數(shù)據(jù)集。將λ和θ從0.1~0.9依次取值,比較本算法在不同λ和θ下的MAE值。經(jīng)過實驗得出,當λ=0.6,θ=0.7時,算法的MAE最小,由此確定2個因子取值。
2.3.4 確定專家比例
根據(jù)巴萊特定律,即在任何一組東西中,最重要的只占其中小部分,約為20%,其余80%盡管是多數(shù),卻是次要的思想。本文專家用戶的比例選取將以20%為中心,從15%~25%中取值,同時評分預測中專家的權重系數(shù)α將從0.3逐步增加至0.7,不同參數(shù)所對應的MAE的變化如圖4所示。
圖4 MAE隨專家比例變化圖
由圖4可知,當社區(qū)簇中的專家比例為19%時,算法對應的MAE最小。在評分預測公式中,當α取0.4,相似用戶所占比例β取0.6時,算法的MAE最小,即用戶不僅會聽取同社區(qū)簇專家,同時還會聽取相似用戶的意見。綜上所述,α=0.4,β=0.6,γ=0.19。
2.4.1 對比實驗
為驗證本文創(chuàng)新點的有效性。本文將引入以下算法進行對比試驗。傳統(tǒng)的基于用戶的協(xié)同過濾推薦算法UCF、文獻[16]中的基于專家信任的協(xié)同過濾推薦算法EPT、文獻[15]中的UCCFRIET、綜合用戶特征及專家信任的協(xié)作過濾推薦算法UCECF[23]及一種帶偏置的專家信任推薦算法IBETA[24]進行對比實驗。
對比算法在不同相似用戶數(shù)目K下的MAE值如表3所示,MAE值變化情況如圖5所示。
表3 算法在不同相似用戶數(shù)目下的MAE值
圖5 算法在不同相似用戶下的MAE變化圖
對比算法在不同相似用戶數(shù)目K下的Precision值如表4所示,Precision值變化情況如圖6所示。
表4 算法在不同相似用戶數(shù)目下的準確率
圖6 算法在不同相似用戶數(shù)下準確率變化圖
經(jīng)實驗驗證,本文提出的算法CFRAET的MAE值最低且Precision值最高。如表3所示,當K=5時,本文算法的MAE值為0.702,小于其他對比算法;在表4中,當K=5時,本文方法Precision為0.318,高于其他對比算法,當K取其他值時,表3和表4也呈現(xiàn)相同結果。綜上,本文提出的結合專家信任的協(xié)同過濾推薦算法CFRAET在一定程度上均優(yōu)于傳統(tǒng)算法。
2.4.2 通用性證明實驗
為驗證本文算法的通用性,本文引入了數(shù)據(jù)集Jester[25],該數(shù)據(jù)集包含了73421名用戶對100個笑話的評分。該數(shù)據(jù)集的稀疏度為44.2%。首先是確定實驗參數(shù),在Jester數(shù)據(jù)集中,根據(jù)觀察不同參數(shù)所對應的MAE來確定各個參數(shù),參數(shù)取值如表5所示。
表5 Jester數(shù)據(jù)集中各參數(shù)取值
將表5中的參數(shù)代入計算公式中,通過實驗得出不同鄰居用戶下推薦的MAE和Precision值,結果如表6、表7所示。
表6 算法在不同相似用戶數(shù)目下的MAE值
表7 算法在不同相似用戶數(shù)目下的準確率
通過表6和表7可以看出,本文提出的CFRAET算法在不同領域數(shù)據(jù)集中仍有良好的表現(xiàn)。如表6、表7所示,與傳統(tǒng)的基于用戶的協(xié)同過濾推薦算法相比較,本文算法MAE降低了11%,Precision提高了20%。綜上,驗證了本文算法在不同數(shù)據(jù)集上的效果優(yōu)于其他算法的同時,也驗證了本文算法的通用性。
2.4.3 消融實驗
本文通過消融實驗進一步驗證本文所提出的創(chuàng)新點的效果。為方便對比實驗結果,本文設計了以下算法:
1)相似度改進有效驗證算法IEVAS(Improved Effective Verification Algorithm of Similarity)。該算法在CFRAET的基礎上,將本文的改進相似度部分去掉,相似度計算公式采用公式(1)進行相似度的計算。
2)專家信任度改進有效驗證算法IEVAET(Improved Effective Verification Algorithm for Expert Trust)。該算法在CFRAET的基礎上,將本文對專家信任度改進的部分去掉,采用公式(11)進行專家信任度的計算。
3)冷啟動改進有效驗證算法IEVACS(Improved Effective Verification Algorithm for Cold Start)。該算法在CFRAET的基礎上,將本文對冷啟動用戶的預測方式去掉,只采用專家用戶為冷啟動用戶進行推薦。
消融實驗的推薦結果如表8、表9所示。
表8 算法在不同相似用戶數(shù)目下的MAE值
表9 算法在不同相似用戶數(shù)目下的準確率
通過表8和表9可以看出,本文算法從相似度、專家信任度及緩解冷啟動3個方面提出的改進均在一定程度上提高了算法的推薦精度,但3個方面的改進對算法的影響各不相同。如表8和表9所示,當K=5時,在IEVAS、IEVAET、IEVACS這3個算法中,IEVAET算法的MAE最大,Precision值小,說明專家信任度的改進對CFRAET的推薦效果影響最大,其次是冷啟動的改進,最后是相似度的改進。當K取其他值時,表8和表9也呈現(xiàn)相同的結果。綜上,本文做出的3個方面的改進均提高了算法的推薦精度。
本文針對傳統(tǒng)協(xié)同過濾推薦算法中相似度計算不準確及冷啟動問題,提出了一種結合專家信任的協(xié)同過濾推薦算法。該算法在對相似度計算改進中,一方面從用戶角度考慮,通過2個用戶對同一項目的評分時間所反應出2個用戶的隱偏好對相似度計算進行改進;另一方面從項目角度考慮,通過項目冷門因子對相似度計算進行改進。計算專家信任度時,通過時間跨度因子對專家信任度計算公式進行改進。針對用戶的冷啟動問題,該算法利用社區(qū)簇中的專家用戶及屬性相似的用戶共同為目標用戶產(chǎn)生推薦。通過實驗證明,本文算法的平均絕對誤差及準確率均優(yōu)于傳統(tǒng)算法。未來的工作將擴大實驗數(shù)據(jù)集進一步驗證算法的有效性,同時注重運用深度學習技術更深層次挖掘用戶之間的隱偏好以及影響專家信任的因素。