王右雪,蘇清華,胡中波
(長江大學信息與數學學院,湖北 荊州 434023)
更快更精準的推薦結果一直是國內外專家在推薦算法領域所追求的目標。當前被廣泛關注的推薦算法之一是協同過濾推薦算法[1]。協同過濾推薦誕生于20世紀90年代,它在解決無特定目標的信息檢索問題上有著顯著的優越性[2]。常用的協同過濾算法依次經過數據表示、查找最近鄰集合和項目評分推薦等3個階段來完成推薦[3]。在數據表示階段,根據用戶對項目的評分數據構建用戶對項目的評分矩陣,對于矩陣有降維[4]、填充[5]、變形為圖的結構[6]等代表性方法;在查找最近鄰階段,以用戶間相似性作為標準尋找到目標用戶的相似近鄰集合,尋找方法除皮爾遜相關系數法、余弦相似度[7]等原始方法外還有與智能算法、用戶信息相結合的改進算法[8,9];在項目評分預測階段,要做到先對用戶的未評分進行評分,然后根據評分產生推薦結果。
由于評分預測方法直接關系到最后推薦結果的優劣,所以評分預測受到多位學者的重視。自1994年Resnick提出基于平均分的預測公式后,Resnick公式成為了推薦系統領域最常見的評分公式[10,11],但在其之后也有諸多學者對評分公式加以改進。Srisuwan P提出了一種基于貝葉斯的評分公式[12];羅亞引入了瀏覽時長的標簽,以便做出更好的決策[13];雷鳴和朱明引入情感的懲罰度概念[14],以達到改善推薦效果的目的。
以上基于Resnick公式的改進方法均有效地提升了評分預測的效果,但若能在此階段挖掘出用戶更精準的個性化差異信息,或許能獲得更精準的推薦結果。基于這一思路,筆者提出一類使用BP神經網絡優化評分預測的協同過濾推薦算法(簡記為BP-RF)。BP-RF算法的核心思想是:提出一種基于用戶評分頻數的BP神經網絡優化評分預測模型,替換相應推薦算法中的Resnick模塊。為了檢驗BP-RF算法類的性能,筆者應用上述思想改進了皮爾遜推薦(PFC)[7]、模糊混合用戶推薦(FHUR)[8]和改進的Top-N推薦(ITop-N)[15]等3種代表性的算法。試驗結果表明,BP-RF算法框架能夠有效地降低各推薦算法計算結果的平均絕對誤差MAE,對于稀疏數據,改進的算法仍然可以提升系統的推薦精準度。

圖1 推薦算法流程圖
協同過濾推薦算法自1992年被提出來后一直是被廣泛研究和應用的推薦方法之一[16]。協同過濾推薦算法主要通過對歷史數據的分析,找到用戶可能感興趣的項目推薦給用戶。可以分為圖1所示的數據表示、查找最近鄰集合和項目評分推薦3個階段。
在數據表示階段中,將用戶對項目的原始評分用矩陣R:
(1)
來表示,其中Rij代表用戶i對項目j的評分。
在查找最近鄰階段中,將2個用戶的相似度作為衡量用戶距離的標準。用戶間相似度有著多種計算方法,常見的有以原始的余弦相似性[7]等方法為代表的距離值衡量用戶相似度算法、以皮爾遜相關系數[7]等算法為代表的非絕對距離值衡量相似度算法、以模糊混合用戶推薦[8]為代表的結合用戶信息的推薦方法。計算目標用戶與其他用戶的相似度后,選擇最相似的Top-N個用戶標記為相似近鄰集合NB-Su。
在尋找到相似近鄰集合后,需要根據集合內各用戶的評分預測目標用戶的評分。在這一過程中最常使用的是Resnick評分公式[10],計算方法如下:
(2)

在預測到用戶可能感興趣的項目后,將其推薦給目標用戶后完成推薦過程。
改進的BP-RF算法依然保持常用協同過濾推薦算法的三階段式框架,不同的是,應用一個基于BP神經網絡的評分預測方法替換了推薦算法第3階段中的Resnick模塊。該改進旨在應用BP神經網絡挖掘用戶評分頻數中的差異信息,進而提升算法推薦的精準度。
BP神經網絡理論體系完善,在推薦系統中也有應用[17]。基于BP神經網絡的評分預測方法首先將相似近鄰集合中用戶的評分整理成為各評分項目的評分頻數,然后使用BP神經網絡對數據進行學習訓練,再使用訓練完成的神經網絡進行分數(評分)預測,最后根據預測結果產生Top-N推薦。
使用BP神經網絡進行評分預測,需要統計相似近鄰集中各用戶對不同項目的各評分的總個數,記作Fi=(x1,x2,x3,x4,x5,x6),Fi為項目i的評分頻數。在評分頻數Fi中,xj分別代表用戶近鄰集中評分為j的用戶個數。特別地,當j=6時,xj代表近鄰集中未評分的用戶個數。以下為評分頻數轉化示例。
表1數據是某一用戶的8位相似近鄰對3個項目的評分記錄。以項目1為例,8位用戶評1~5分的個數分別為0,2,1,0,0,并有5位用戶未評分,所以項目1的評分頻數F1=(0,2,1,0,0,5)。同理可得項目2,3的評分頻數分別為:F2=(0,0,1,1,1,5);F3=(0,1,1,2,2,2)。

表1 用戶評分矩陣示例
由于用戶評分具有稀疏性,有極大可能出現未評分項目,這類數據對神經網絡訓練無意義,所以定義集合C1,C2,C3,C4確定可用數據與無用數據。如圖2分類,定義如下:
C1:目標用戶u評分,且近鄰集合中至少有一人評分的項目集合
C2:目標用戶u評分,但近鄰集合中無人評分的項目集合
C3:目標用戶u未評分,但近鄰集合中至少有一人評分的項目集合
C4:目標用戶u未評分,且近鄰集合中無人評分的項目集合
在進行評分預測時,BP神經網絡使用一層神經網絡就可以得到很好的結果。所以,采用三層BP神經網絡(輸入層,隱含層,輸出層)構建預測模型。訓練樣本為LF=[Fd]T,d∈C1,期望輸出值是目標用戶u的正確評分Ru=[Rd]T,d∈C1,網絡訓練完成,進行預測時輸入值是IF=[Fd]T,d∈C2,期望輸出值即為最終的預測結果FRu=[Rd]T,d∈C2。
BP神經網絡的訓練以表1數據為例,假設目標用戶u對項目3未進行評分,則C1=[1,2],C2=[3]。此時訓練樣本LF=[F1,F2]T,期望輸出值Ru=[2,4]T。BP神經網絡整體數據傳輸如圖3所示。

圖2 數據劃分示意圖 圖3 神經網絡工作圖
BP神經網絡工作分2個部分:首先是訓練樣本正向傳輸,該過程中,輸入信息激活各層的函數直到在輸出層得出結果;然后是輸出數據與期望輸出值的誤差ε計算,誤差ε的反向傳輸可以調節各層權重與閾值,算法偽碼如下:
訓練過程
輸入:訓練樣本LF,期望輸出值Ru,
最大訓練次數:Genmax,迭代次數gen,
學習速率learn
Whilegen Ifgen=1: 初始化神經網絡參數ω,b Else: 修正ωi,b b=b+learn*ε 使用Sigmoid函數預測輸出值 將R′與R的差值ε反饋回神經網絡參數, ε=R′-R gen=gen+1 輸出:訓練完畢的ωi,b 預測過程: 輸出:FRu 圖4 改進后推薦算法 基于BP神經網絡評分預測的推薦算法如圖4所示: 改進后的協同過濾推薦算法(BP-RF)步驟如下: Step1:數據表示。根據用戶瀏覽歷史,構建矩陣R。 Step2:尋找相似用戶集合。選擇一個相似度衡量的標準,并根據標準選擇最相似的N個用戶構成目標用戶的相似近鄰集NB-Su。 Step3:BP神經網絡項目評分預測。使用BP神經網絡根據第2步中的相似近鄰集NB-Su的評分頻數預測目標用戶未評分項的分數進行預測。預測完后根據評分結果推薦給用戶會喜歡的項目,完成推薦。 設計了2組試驗。第1組試驗驗證BP-RF算法框架對推薦算法的提升效果,試驗選取PFC算法、FHUR算法和ITop-N算法作為被BP-RF算法框架提升的對象。其中,PFC算法是經典的推薦算法代表,FHUR算法是挖掘用戶信息的推薦算法代表,ITop-N算法是經過聚類并考慮用戶、項目雙重相似性的算法代表。改進后的算法依次簡記為BP-RF-pfc、BP-RF-fhur和BP-RF-itopn。 試驗過程中的參數設置如下:輸入層節點數:6;隱含層節點數:7;輸出層節點數:1;迭代次數:1000;樣本數據大小:card(C1);學習速率:0.9;容錯率:0.01;激活函數:Sigmoid函數。 第2組試驗是為了驗證BP神經網絡評分預測模塊與算法結合進行推薦后,推薦效果與用戶的評價個數之間的關系。測試集每20個用戶一組畫出其評分個數的箱型圖,然后分析算法改進前后的MAE值與用戶評分個數的關系。 選取推薦領域常用的Movie-lens-100K數據集作為試驗數據集。該數據集內有多組訓練數據與測試數據,選取任意一組訓練數據作為試驗訓練集,對應測試數據前80個用戶集合作為測試集,然后進行試驗。 試驗效果采用平均絕對誤差MAE作為評價指標[18],驗證算法改進的效果。MAE值是通過計算預測的項目評分和實際項目評分之間的偏差度來說明評分預測結果的準確性。MAE值越小,推薦效果越佳。當用戶實際評分集合表示為{qi|i=1,2,…,n},預測的用戶評分值表示為{pi|i=1,2,…,n}時,MAE計算公式為: (3) 圖5 推薦結果對比 圖5是第1組試驗的結果圖,由圖5可以看出,筆者提出的BP神經網絡優化評分預測方法的結果 (每組右側數據)與3種算法未改進前的結果(每組左邊數據)對比,改進后算法顯著提高了推薦效果。對于相對成熟的模糊混合用戶推薦系統和改進后的Top-N算法,MAE值分別降低了4.3%和5.2%,針對原始的皮爾遜推薦算法,改進后算法推薦效率大大提升,使MAE值降低了7.4%。 接下來是測試集的分組試驗。將Movie-Lens-100K的測試數據集每20個用戶劃分為一組并進行箱形圖繪制,然后將每組數據都進行3組算法對比試驗,結果如圖6所示。 圖6 數據集分組分析及試驗數據結果 從圖6可知,第2組測試數據評分密度最均勻小;算法在第2組的推薦效果有所提升,第4組數據平均評分密度較大,但評分密度差異同樣較大,所以推薦質量較第2組略差;在數據的密度不同的情況下,3組算法的MAE值表明:不論數據情況是稀疏或稠密,使用神經網絡進行評分預測均可以改善原始算法的推薦效果。 針對協同過濾算法中Resnick評分模塊及其相近改進模塊的不足,提出了一類應用BP神經網絡優化評分預測的協同過濾推薦算法,該類算法應用BP神經網絡挖掘出用戶評分頻數間的差異信息來指導推薦。在Movie-Lens-100K數據集上的數值試驗展現了該類算法的優越性。此外,BP-RF算法與其他算法融合度較高,可改進多種依靠評分公式產生推薦結果的推薦系統,使用范圍廣泛。
2.2 基于BP神經網絡評分預測的推薦算法

3 試驗
3.1 試驗設計與參數設置
3.2 數據集與評價指標
3.3 試驗結果及其分析


4 結語