賈彭慧,劉鑫一,孔亞斌,郗佳林
(長安大學 信息工程學院,陜西 西安 710064)
信息技術和互聯網的高速發展使人們逐漸進入了信息過載的時代[1]。推薦系統[2]因其可以根據用戶需求和歷史行為主動為用戶提供個性化服務而成為解決這一問題的有效手段。
按照組成部分,推薦系統可分為三大類:基于內容的推薦系統、協同過濾(collaborative filtering,CF)推薦系統和混合推薦系統[3]。在推薦系統中,協同過濾[4]的應用最為廣泛,在商業中取得了巨大的成就,其中包括著名的電子商務網站Amazon.com[5]。協同過濾可分為基于用戶的協同過濾推薦算法(user-based collaborative filtering,UBCF)[6]和基于物品的協同過濾推薦算法[7]。文中以UBCF算法為基礎展開研究。
雖然上述文獻提到的方法在一定程度上提高了推薦系統的精確性,但仍然存在一些不足之處:(1)某些領域的專家用戶匱乏,在數據稀缺的情況下無法直接形成專家數據集;(2)在用戶中挖掘的專家數據集是固定的,并沒有為每個用戶建立個性化的專家數據集;(3)現有的專家用戶評估模型只考慮了用戶自身的因素,并沒有對用戶之間的關系進行考量。
針對上述問題,文中提出了一種基于專家動態生成的協同過濾推薦算法(dynamically generated expert-based collaborative filtering,DGECF)。該算法通過計算用戶之間的交叉性、信任性以及趨同性三項指標值和專家因子值動態地為每個用戶挖掘出特定的專家數據集,然后通過計算用戶與所挖掘專家數據集之間的相似度來預測評分,最終完成推薦。實驗結果表明,該算法可以提高推薦系統的精確性。
在實際生活中,每個領域都有專業知識較為全面的人,稱這些人為專家。通常對用戶而言,專家的意見有較高的參考價值。為了提高推薦系統的精確性,DGECF算法為每個訓練用戶(訓練集中的用戶,簡稱訓練用戶)動態地挖掘專家數據集,再通過計算測試用戶(測試集中的用戶,簡稱測試用戶)與他所對應專家數據集的相似度進行預測評分。圖1給出了DGECF算法的概述圖,其中包括4部分:

圖1 DGECF算法概述圖
(1)動態專家挖掘方法:該方法分為三部分,首先計算訓練用戶的指標值;其次計算專家因子值;最后根據近鄰算法為每個用戶建立特定的專家數據集。這部分內容將在第三節中給出詳細介紹。
(2)計算測試用戶與專家的相似度:文中采用一種改進的余弦相似度計算方法[13],該方法在計算用戶u和專家e之間的相似度Sim(u,e)時,考慮了兩個用戶共同評定的物品數量,即調整因子,計算公式如下:
(1)
其中,Sue表示用戶u和專家e共同評價物品的集合,Nu∩e表示用戶u和專家e共同評定物品的數量,Nu表示用戶u評定物品的數量,Ne表示專家e評定物品的數量。
(3)預測測試用戶評分:采用Resnick公式[12]的變形,用戶u對物品i的預測評分如下:
邊坡穩定性影響因素選取應遵循獨立性原則,防止各因素之間存在交叉情況,以避免造成指標隸屬度的“冗余值”,導致評價結果的不準確。筆者結合眾多文獻研究,現將各影響因素分為三類兩級指標:(1)自然因素:年均降雨量C11、地下水影響C12、植被覆蓋現狀C13、(2)設計因素:坡高C21、坡角C22、排水條件C23、加固強度C24和(3)地質因素:巖體類型C31、風化程度C32、不利結構面影響C33、坡體結構C34、黏聚力C35、摩擦角C36。
(2)

(4)精確性評估:通過計算測試用戶的預測評分與實際評分的平均絕對誤差(MAE)和均方根誤差(RMSE),評估算法的精確性。
在動態專家挖掘方法中,指標值的選擇關系到整個算法的優劣。文中針對目前專家用戶評估模型沒有對用戶之間的關系進行考量的情況,通過實驗和數據分析,確定選擇用戶之間的交叉性、信任性以及趨同性這三項作為動態專家挖掘的指標值。根據計算得到的指標值,計算專家因子值,最后將專家因子值從小到大進行排序挑選出近鄰專家數據集。
2.1.1 交叉性指標
兩個用戶共同評價物品的數量越多,表示用戶之間的交叉性越強,用戶交叉性指標值的計算如下:
(3)
其中,A(u)表示用戶u與其他用戶之間的交叉性指標,Nu∩v表示用戶u和v共同評價物品的數量,max(N)表示用戶之間共同評價物品數量的最大值。
2.1.2 信任性指標
信任因素在推薦中起到了關鍵作用[15-16],專家通常擁有更多的信任人數,用戶信任性指標值的計算如下:
(4)
其中,T(u)表示用戶u與其他用戶之間的信任性指標,Mu∩v表示用戶u與用戶v共同擁有信任者的數量,max(M)表示用戶之間共同擁有信任者數量的最大值。
2.1.3 趨同性指標
用戶對相同物品的評分越接近,用戶之間的差異性越小。通過計算評分差異的平均值并對其歸一化,進而求得用戶之間的趨同性指標值,公式如下:
(5)
其中,O(u)表示用戶u與其他用戶之間的趨同性指標,rui表示用戶u對物品i的評分值。
對于用戶而言,專家因子的值越大,專家也就越專業。綜合用戶的交叉性指標、信任性指標、趨同性指標,定義專家因子的計算公式,如下:
Exp(e)=α*A(u)+β*T(u)+γ*O(u)
(6)
其中,α,β,γ表示各部分所占權重,α+β+γ=1。
在推薦系統領域中,基于近鄰的方法[17]是最早使用的方法之一,不同的專家會產生不同的推薦效果,根據為每個用戶建立的專家數據集中的專家因子挑選k位近鄰專家作為該用戶的專家數據集。
實驗使用來自基于社交網絡的電影推薦系統FilmTrust數據集(https://www.librec.net/datasets.html)[18]對算法進行驗證。該數據集由兩部分組成,即用戶評分集和信任集。
用戶評分集中包括1 508位用戶對2 071部電影的35 494條評分數據,評分值的范圍是[0.5,4.0],分值的高低代表了用戶對電影的偏好程度。信任集中包括用戶之間的1 853條信任關系評分數據,評分值為1或者空,1代表用戶之間存在信任關系,空值代表用戶之間不信任。
精確性是評估推薦系統過程中最基本的指標之一[19]。文中分別采用MAE和RMSE作為精確性度量標準[20]。
MAE越小,推薦越準確。假設預測用戶評分集合為{p1,p2,…,pn},與之相對應的實際用戶評分集合為{q1,q2,…,qn},n為所有預測評分商品的數目,則MAE的計算公式如下:
(7)
RMSE越小,推薦質量越高,RMSE的計算公式如下:
(8)
文中分別對UBCF算法、RUBCF算法和DGECF算法進行了實驗,通過計算實驗結果的MAE和RMSE對算法的精確性進行評估。為了提高仿真結果的真實性,實驗將FilmTrust數據集中的評分集按照8∶2的比例隨機分成訓練集和測試集。測試用戶中有一些用戶屬于新用戶,即從未有過歷史記錄的用戶。對于新用戶,DGECF算法的實驗處理方法是:首先在測試集中確定新用戶所預測的物品,然后在訓練集中找出對該物品已進行過評分的用戶,最后將這些用戶對該物品評分的均值作為新用戶的評分。在專家因子的公式中,通過枚舉法改變權重值來觀察MAE和RMSE的變化,最終發現當α=0.3,β=0.4,γ=0.3時,精確性最高。
(1)不同算法下MAE和RMSE的比較分析。
UBCF和RUBCF算法都使用余弦相似度作為相似性的度量方法,所不同的是RUBCF算法在UBCF算法的基礎上使用了Resnick公式。為了便于比較,文中提出的DGECF算法選取與UBCF和RUBCF算法相同的近鄰值(50,100,150,200,300,400,500,600,700和全部鄰居)進行預測評分,并計算MAE和RMSE。實驗結果如表1所示。

表1 MAE和RMSE
由表1可以看出,在UBCF算法中,隨著近鄰值k的增加,MAE和RMSE都略微下降,當近鄰值取全部鄰居時,MAE和RMSE最低,分別為:2.122 5和2.334 2;在RUBCF算法中,MAE和RMSE均隨著k的增加呈現出先微量下降后微量上升的趨勢,當k取400時,MAE和RMSE最低,分別為:0.671 6和0.874 3;在DGECF算法中,MAE和RMSE均隨著k的增加先微量下降再微量上升最后趨于平緩,并且當近鄰值k取400時,MAE和RMSE最低,分別為:0.625 8和0.816 0。
(2)不同算法下MAE和RMSE平均值的比較分析。
由表2可以看出,文中提出的DGECF算法的MAE和RMSE平均值最低,分別為:0.627 4和0.818 8,相對于UBCF算法和RUBCF算法,MAE分別降低了75.18%和6.90%,RMSE分別降低了69.73%和6.54%,說明DGECF算法具有更高的精確性。

表2 MAE和RMSE的平均值
傳統協同過濾推薦算法中數據稀疏性嚴重影響推薦精確性的問題,提出了一種基于專家動態生成的協同過濾推薦算法(DGECF),并通過在FilmTrust數據集上的實驗結果驗證了該算法的有效性。下一步將在新用戶與DGECF算法的結合、指標值的選取策略、相似度的計算方法等方面繼續進行研究和完善。