劉錦濤,謝穎華
(東華大學 信息科學與技術學院,上海 201620)
隨著信息和互聯網技術的迅速發展,海量的網絡信息資源使得用戶難以在短時間內找到自己感興趣的信息資源,這造成了信息過載問題[1],這種現象的出現嚴重影響了互聯網的發展.推薦系統通過分析用戶的歷史行為來獲得用戶的興趣偏好,從而進行定向的信息資源推薦[2,3],減少用戶因篩選信息而消耗的時間,使得用戶能夠快速獲取到于自己有用的信息資源的推薦.但隨著用戶數和項目數的激增,傳統推薦算法面臨著嚴重的數據稀疏問題.這一問題使得傳統推薦算法計算出的用戶相似度不夠準確,推薦精度不高.因此,改進相似度計算方法、緩解數據稀疏性一直以來是推薦算法研究的重點[4-6].
王巖等將用戶評分分值差異度和用戶評分傾向相似性融入到傳統的協同過濾算法中,并用項目評分的標準差改進皮爾遜相似性,綜合用戶興趣和改進后的皮爾遜相似性得到更準確的用戶相似度[7].Chen 等在余弦相似度和皮爾遜相似度的計算方法中引入平衡參數,利用平衡參數解決不同用戶間評級尺度不同的問題,從而對這兩種方法進行優化[8].隨著深度學習的發展,使用深度學習緩解推薦系統的數據稀疏性問題得到了廣泛地研究[9].目前基于深度學習的推薦模型主要是結合神經網絡和矩陣分解思想,將用戶和項目的獨熱編碼(one-hot)作為模型的輸入,通過嵌入層將稀疏的輸入向量映射為稠密向量,然后利用深度神經網絡結構去非線性地學習用戶和項目潛向量之間的交互結果,最后根據學習到的交互結果來生成推薦列表[10-12].
基于用戶的協同過濾推薦算法是通過用戶-項目評分矩陣,計算出用戶之間的評分相似度,然后對評分相似度進行降序排序,選出與目標用戶相似度高的用戶構成鄰居用戶集.推薦時,根據鄰居用戶計算預測評分,并將預測評分高的項目推薦給目標用戶[13].這種推薦方法源于生活中的經驗假設:若兩個用戶之間的興趣愛好相似,則他們很可能對同一項目有著相似的偏好程度[14].
(1)用戶相似度計算
相似度的計算方法主要有余弦相似性、改進的余弦相似性以及皮爾遜相關系數等[15,16].余弦相似性是兩個用戶之間的評分向量的夾角余弦值,余弦值越大,相似度越高.改進的余弦相似度考慮到不同用戶的評分習慣對相似度計算準確性的影響,在計算相似度時減去用戶的平均評分.皮爾遜相關系數在計算時要首先找出用戶間的共同評分項目集,然后基于該集合使用改進的余弦相似性進行用戶相似度的計算,計算公式如下:

其中,Suv表示用戶u和用戶v的共同評分項目集合,rui和rvi分別表示用戶u和用戶v對項目i的評分,和分別表示用戶u和v的平均評分.
(2)評分預測
用戶相似度計算完成后,篩選出鄰居用戶集.根據鄰居用戶對項目的評分和與目標用戶的相似度來預測目標用戶對項目的評分,計算公式為:

其中,Pui為目標用戶u對項目i的預測評分值,NU(u)為目標用戶u的鄰居用戶集,S im(u,v)表示目標用戶u與鄰居用戶v之間的相似度.
多層感知機(Multi-Layer Perceptron,MLP)指的是有多層隱藏層的神經網絡.相鄰的神經網絡層之間是全連接的.單個神經元的計算是一個前向傳播過程,即通過一個線性函數關系和激活函數向前傳播.
多交互神經網絡通過構建并行的多層感知機來分別學習不同類型實體的隱特征表示.考慮到隱藏層中每層網絡的神經元數目和學習能力不同,學習到的隱特征表示的維度和意義也不相同,多交互神經網絡充分利用每一層的隱表示結果,對每層網絡所學習到的不同類型實體的隱表示進行一次交互操作,最后綜合所有層的交互結果來獲取模型最終的預測結果[17],網絡模型如圖1所示.

圖1 多交互神經網絡模型
2.1.1 挖掘用戶-項目屬性偏好信息
表1顯示出了項目的屬性特征信息,為便于后續計算,做出如下定義:S表示用戶u的評分項目集,N為用戶u的評分項目數,qs表示項目s的流行度(評分用戶數),As表示項目s包含的項目屬性.

表1 項目屬性信息
對于流行度高的項目,用戶選擇它更可能是出于從眾心理而不是因為項目本身的屬性.因此我們引入懲罰因子 γ對流行度超過閾值 φ的項目進行懲罰.定義用戶u對項目屬性a的偏好度Iua如下:


2.1.2 計算用戶-項目屬性偏好相似度
對挖掘出的用戶-項目屬性偏好信息進行降序排序,得到用戶的項目屬性偏好排名,然后使用基于集合(Set Based Measure,SBM)的方法計算用戶間的項目屬性偏好相似度.
SBM是通過計算在不同深度時的兩個排序列表的交集大小來衡量排序列表之間的相似度.假設用戶u和用戶v對項目屬性{a,b,c,d,e}的偏好排序如下:

依次計算它們在深度d時,兩個列表前d個元素構成的兩個集合的交集,以及交集大小相對當前深度的比例,如表2所示.計算出不同深度的交集比例后,我們使用交集比例的平均值來度量用戶之間的項目屬性偏好相似度.計算公式如下:

表2 SBM 方法

在推薦系統中,我們一般只關注用戶最喜愛的那部分項目屬性,并由此進行項目推薦.因此,我們希望在計算兩個排序列表的相似度時,能夠關注top 元素的相對位置權重.在前面例子中,項目屬性數k為5,SBM(u,v)為0.8.假設另有用戶w的項目屬性偏好排序為:[a,b,c,e,d],與列表u相比,列表w是通過交換列表u的最后兩個元素的位置得到的,而列表v是通過交換列表u的前2 個元素的位置得到的,計算出SBM(u,w)為0.95.由此可以看出,SBM自身具有top-weightiness屬性.
協同過濾算法通過計算用戶偏好進行項目推薦,其中傳統的用戶協同過濾算法僅使用評分相似性來選擇與目標用戶具有相似偏好的鄰居用戶,沒有考慮從輔助信息中提取對提升推薦性能有用的信息,數據稀疏性大,推薦精度不高.本文算法根據評分數據挖掘出用戶的項目屬性偏好信息,然后使用SBM方法計算出用戶-項目屬性偏好相似度,并用其改進用戶相似度計算公式.
Jaccard 系數是一種比較常用的用戶相似性計算方法,它使用用戶的共同評分項目在所有評分項目中所占的比例來衡量用戶之間的相似性:

對于共同評分項目,用戶對其的評價可能截然相反的,然而Jaccard 系數在計算用戶相似性時沒有考慮用戶評分差異對用戶偏好的影響,這會導致用戶相似性計算不準確.式(1)的皮爾遜相關系數可以衡量用戶間的評分相似性,但在數據稀疏,用戶之間共同評分項目少的情況下,計算結果會不準確.因此可以使用皮爾遜相關系數來修正Jaccard 系數,修正后的Jaccard 系數如下:

綜合用戶-項目屬性偏好相似度和修正后的Jaccard系數,α為調節參數,表示兩種相似度之間的比重,最終的用戶相似度計算公式如下:

2.3.1 構建多交互神經網絡模型
構建融合用戶-項目屬性偏好信息的多交互神經網絡預測模型,如圖2所示.模型由輸入層、嵌入層、隱藏層和輸出層組成.輸入層輸入用戶和項目的onehot 編碼向量,嵌入層包含用戶-項目屬性偏好向量(user attribute preference vector),用戶嵌入向量(user latent vector),項目屬性特征向量(item attribute feature vector),項目嵌入向量(item latent vector).

圖2 融合用戶-項目屬性偏好的多交互神經網絡模型
模型采用多交互的網絡結構,通過兩個并行的多層隱藏層網絡去分別學習用戶和項目在不同維度空間中的隱特征表示,隱藏層的神經元數目表示要學習的隱特征表示的維度大小.此外,該模型融合了用戶-項目屬性偏好信息,一定程度上緩解了單一評分數據的數據稀疏問題.將用戶-項目屬性偏好向量和用戶嵌入向量拼接后通過多層隱藏層進行非線性交互提取用戶在不同維度空間中的隱特征表示.同樣將項目屬性特征向量和項目嵌入向量拼接后通過多層隱藏層來提取項目在不同維度空間中的隱特征表示.隱藏層采用金字塔型的網絡結構,后一層網絡的神經元數目為前一層網絡神經元數目的一半,選擇tanh 函數作為模型的激活函數.
用Ui表示用戶-項目屬性偏好向量,Uh表示用戶嵌入向量,σ表示激活函數,Wl和bl分別表示第l層隱藏層的權重矩陣和偏差向量,則用戶的各層隱特征表示如下:


同理,對于項目屬性特征向量和項目嵌入向量,通過多層隱藏層網絡得到項目的各層隱特征表示.
在基于深度學習的推薦模型中,MLP 模型將用戶和項目的one-hot 編碼向量通過嵌入層映射到新的維度空間中獲得用戶和項目的嵌入向量(隱特征表示),然后將用戶和項目的嵌入向量拼接后通過多層感知機得到模型的預測評分.然而特征維度大小選取對于預測的準確性有著重要影響,一般需要進行多次實驗來確定合適的特征維度,并且在不同的維度空間中用戶和項目的隱特征表示的意義不同,只使用單一維度空間中的隱特征表示進行預測限制了模型的推薦性能.在本文所使用的多交互神經網絡模型中,模型通過兩個并行的多層隱藏層網絡來分別學習用戶和項目在不同維度空間中的隱特征表示,后一層網絡在前一層網絡提取的隱特征表示的基礎上進一步提取更深層次的隱特征表示.隱藏層中每層網絡的神經元數目和學習能力不同,學習到的用戶和項目的隱特征表示的維度和意義也不同.多交互神經網絡綜合每一層網絡學習到的隱特征表示來提高模型的推薦性能,對每層用戶和項目的隱特征表示進行一次交互操作,最后綜合所有層的交互結果作為模型最終的預測結果.
我們使用3 層感知機模型來獲取每一層用戶和項目的隱特征表示的交互結果,計算公式如下:

其中,zl和xl分別表示第l層的用戶和項目的隱特征表示,Sl表示zl和xl拼接后通過三層感知機模型的交互結果.
在輸出層,將隱藏層每層用戶和項目的隱特征表示的交互結果拼接起來進行一次全連接操作得到模型最終的預測評分:

本文模型是用來進行評分預測任務的,因此選擇基于點的方式來構建損失函數,使用均方誤差作為模型要優化的損失函數:

2.3.2 綜合預測評分
對于評分預測系統,我們首先使用改進后的用戶相似度篩選出鄰居用戶集,并根據評分預測公式計算出預測評分Pui.然后通過融合用戶-項目屬性偏好信息的多交互神經網絡模型獲得模型的預測評分.最終預測結果是這兩種預測評分的動態加權:

其中,CNu表示鄰居集的大小,表示鄰居集中對項目i評分的用戶數,λ為放縮因子.值越大,則由評分預測公式計算出的預測值在最終預測評分中的比重就越大.
在對用戶進行推薦時,使用改進算法預測目標用戶對項目的評分,選擇預測評分高的項目推薦給目標用戶.改進算法的推薦流程如圖3所示.

圖3 改進算法推薦流程圖
MovieLens 數據集是推薦系統中常用的驗證數據集,該數據集有多種規格,如:100 k、1 M和10 M 等.本文實驗使用100 k 數據集,它包含943 位用戶對1682部電影的10 萬條評分信息,評分范圍為1 到5 分.
平均絕對誤差(MAE)和均方根誤差(RMSE)是推薦算法中使用最為廣泛的兩種性能評價指標,它們反映出預測評分的準確性,計算公式如下:

F1-score是精確率(precision)和召回率(recall)的加權平均值,計算公式為:

Precision表示模型預測為正的樣本中實際也為正的樣本占被預測為正的樣本的比例.Recall表示實際為正的樣本中預測也為正的樣本占實際為正的樣本的比例.F1-score是兩者的綜合,F1-score越高,說明模型越穩健.
3.2.1 推薦性能分析
本文的相關參數設置:流行度閾值φ=200,懲罰因子 γ=0.5,調節參 數α=0.3,放縮因子λ=0.2,batchsize為256,隱藏層的網絡層數為3,優化器為Adam,學習率為0.001,正則化率為0.0001.
本文提出的綜合預測模型記為NIAP-CF.實驗將測試集中實際評分高于4 分的樣本標記為正樣本,其余標記成負樣本.在推薦時,由預測評分高于4 分的樣本產生推薦列表.
對于基于用戶相似度的推薦模型,將本文算法與皮爾遜相似性計算方法、Jaccard 相似性計算方法以及文獻[6] 中相似度計算方法(UII-CF) 進行MAE值、RMSE值以及F1-score的比較來驗證本文推薦算法的推薦效果.
圖4和圖5分別顯示了在MovieLens 數據集中本文提出的算法NIAP-CF和其它3 種算法在不同鄰居用戶數下的MAE和RMSE值對比情況.從圖中可以看出,4 種算法的MAE和RMSE值都隨著鄰居用戶數的增加而逐漸減小,并且在選取鄰居用戶數相同時,本文算法的MAE和RMSE值小于其它3 種算法,預測精度最高.此外,本文算法綜合了鄰居集的預測評分和多交互神經網絡模型的預測評分,預測的精度較為穩定,可以在鄰居用戶較少時獲得較高的推薦精度.

圖4 MAE 值對比結果

圖5 RMSE 值對比結果
圖6顯示了在MovieLens 數據集中4 種算法的F1-score值的對比結果.由圖可以看出,在鄰居用戶數相同時,本文算法的F1-score值最大,模型的穩健度優于其它3 種算法.

圖6 F1-score對比
對于基于深度學習的推薦模型,將本文提出的NIAPCF 模型與文獻[10]中He 等提出的GMF 模型、MLP模型以及NeuCF 模型進行對比實驗來驗證本文推薦算法的有效性.
表3顯示了在MovieLens 數據集中本文模型與GMF 模型、MLP 模型以及NeuCF 模型的MAE值、RMSE值以及F1-score的對比情況.從表中可以看出,本文模型的MAE和RMSE值低于其它3 種模型,預測的精度最高,并且本文模型的F1-score最高,模型的穩健度優于其它3 種模型.

表3 MovieLens 數據集對比實驗結果
3.2.2 參數分析
在用戶相似度計算部分,調節參數 α表示用戶-項目屬性偏好相似度和修正后的Jaccard 系數之間的比重,對于計算用戶相似度的準確性有著非常重要的影響.因此,需要確定 α的值來消除其對推薦結果的影響.選取鄰居用戶數為30,觀察MAE值在不同 α取值下的變化情況,結果如圖7所示.從圖中可以看出,當 α值為0.3 時,本文相似性計算方法達到最優.

圖7 MAE 隨α 值的變化情況
在融合用戶-項目屬性偏好信息的多交互神經網絡模型中,用于學習用戶和項目隱特征表示的隱藏層層數是神經網絡中的一個非常重要的參數.我們通過實驗研究隱藏層的網絡層數對模型預測精度的影響.實驗結果如表4所示.由實驗結果可以看出:一定數目的隱藏層層數能夠改善模型的推薦性能.但更深層次的網絡結構會耗費大量的計算資源,在實際中,隱藏層層數的選擇可以根據具體需求來確定.

表4 隱藏層網絡層數對比結果
傳統的用戶協同過濾算法僅通過用戶間的評分相似性來預測評分,沒有考慮從外部輔助信息中提取出對推薦有用的信息,數據稀疏性大,推薦精度不高.本文提出的NIAP-CF 算法首先根據評分矩陣和項目屬性特征矩陣挖掘出用戶的項目屬性偏好信息,然后使用SBM方法計算用戶間的項目屬性偏好相似度,并用其改進用戶相似度計算公式.在進行評分預測時,建立融合用戶-項目屬性偏好信息的多交互神經網絡預測模型,引入動態權衡參數,對由相似度計算出的預測評分和模型的預測評分進行動態加權,從而獲得最終的預測評分.實驗結果表明,與傳統的協同過濾算法相比,本文提出的改進算法降低了評分預測的MAE和RMSE值,提高了推薦精度.