趙 亮,陳平華,廖威平
廣東工業大學 計算機學院,廣州510006
推薦系統是解決信息過載問題的有效手段,但也面臨著冷啟動和數據稀疏的問題。為解決這些問題,有學者提出了社會化推薦方法,根據用戶之間的社交關系構建社交網絡,根據社交關系和用戶興趣進行推薦[1-2]。傳統基于用戶社交網絡的社會化推薦僅利用用戶社交網絡來改善推薦系統的數據稀疏和冷啟動問題,沒有考慮用戶-項目歷史信息對推薦的影響,導致推薦效果不佳。近年來,基于潛在因子的推薦方法在學術界和工業界都取得了巨大成功,矩陣分解(Matrix Factorization,MF)是解決數據稀疏問題應用較廣的推薦算法。給定具有稀疏反饋的用戶項目交互矩陣,基于潛在因子的模型假設每個用戶和項目都可以嵌入一個潛在空間中,然后通過降維的方法將用戶評分矩陣分解為用戶特征矩陣和項目特征矩陣,以此獲得用戶和項目的潛在關系。為了提升推薦性能,文獻[3]將非對稱用戶相似性方法融入矩陣模型,獲得提升推薦準確率效果。文獻[4]將項目屬性耦合關系作為隱含信息融入矩陣模型,推薦效果也獲得了提升。矩陣分解方法易于擴展,如果在矩陣分解的基礎上融合用戶社交關系和用戶-項目歷史信息不僅能緩解數據稀疏問題,而且能進一步提高推薦準確率。
隨著社交網絡平臺的普及,基于社交網絡的推薦已經成為提升推薦算法性能的一個有前景的研究方向[5]。用戶在社交網絡中的關系能夠反映出用戶之間的興趣愛好在一定程度上是相似的,相互聯系較為緊密的人群具有相似的興趣愛好的可能性越大[6]。孟祥武等人[7]在比較社會化推薦關鍵技術后認為融合社交關系是社會化推薦的難點之一。有研究人員提出利用用戶社交關系或用戶之間的信任關系構建社會化推薦模型[8-9]。文獻[10]提出使用信任機制改進協同過濾算法,用以提高推薦系統性能。文獻[11]構建了基于用戶朋友關系的社交網絡項目推薦模型,用于預測社交網絡中用戶喜歡的項目,文獻[6]提出融合用戶信任度和用戶項目二部圖的模型用來預測用戶對項目的評分。
卷積神經網絡(Convolutional Neural Network,CNN)已經應用在很多不同的領域,比如圖像[12]、文本[13]等。Kipf 等人[14]將卷積神經網絡推廣到具有不規則結構的圖上,稱其為圖卷積神經網絡(Graph Convolutional Networks,GCN),其核心思想是以消息傳遞或信息擴散的方式學習用戶或項目的潛在嵌入表示。Van den Berg 等人[15]研究GCN 的擴展應用,通過學習從節點的本地鄰居采樣和聚合特性來生成嵌入,提出通過在用戶-項目交互圖上傳遞消息來學習用戶和項目的潛在嵌入的Grap-SAGE模型。有研究人員結合高效的隨機游走和圖卷積策略開發了PinSage[16],用于生成包含圖結構和節點特征信息的節點嵌入。這些將GCNs 應用于推薦系統的嘗試,證明了圖卷積神經網絡可以用來學習用戶或項目的潛在嵌入表示。
圖卷積神經網絡可以用來處理知識圖譜、社交網絡、蛋白質交互網絡等具有不規則空間結構的圖或圖網絡。其基本思想是以圖的消息傳遞或信息擴散方式生成節點。具體來說,每個節點通過聚合來自鄰居的消息得到節點的嵌入表示,以此類推,鄰居的消息來自各自鄰居的鄰居。利用這種消息傳遞機制,能將圖中節點的特征信息和其結構信息聚合,即把一個節點在圖中的高維鄰接信息降維到低維的向量表示,可以捕捉到圖的全局信息,從而更好地表示節點特征。使用圖卷積神經網絡可以將節點特征信息和圖的結構信息聚合,輸入用戶社交網絡結構圖和用戶-項目歷史交互信息,以生成包含社交網絡結構信息和用戶特征的節點潛在嵌入表示。圖卷積神經網絡傳播過程如圖1所示,每一層的傳播公式如(1)所示:


圖1 圖卷積神經網絡傳播過程
矩陣因子分解算法的基本思想是認為用戶和項目都有自己的特征,用戶興趣受少數因素的影響,將稀疏且高維的用戶項目評分矩陣分解為用戶和項目兩個低維矩陣。矩陣分解假設用戶對項目的評分是通過用戶的特征和項目的特征共同決定的,其評分預測是由兩個特征矩陣相乘得到。模型抽象為公式(2)所示:

其中,U ∈Rm×d代表用戶特征矩陣,V ∈Rn×d代表項目的特征矩陣。d代表特征向量的維度,m是用戶數目,n是項目的個數。模型的特征矩陣可以通過最小化目標函數獲得。

公式(3)中Iij表示用戶i對項目j是否有評分,若有評分則Iij值為1,否則為0。rij是預測評分,通過公式(4)計算得到,其中u是所有用戶的平均值,bu和bv代表用戶和項目的偏置。Ui和Vj的內積表示預測評分,(Rij-rij)2代表真實值和預測值的平方誤差。λ是避免模型在參數學習過程中產生過擬合的正則項,α是學習率。
3.3.1 算法基本思想
矩陣分解的基本形式通過用戶對項目的評分模式推導出描述用戶和項目特征的向量因子,進而計算用戶對項目評分的近似。它在求解過程中以全局角度來描述用戶和項目的特征,忽略了用戶的潛在信息可能對推薦結果帶來的影響,用戶的相似性是一種重要的潛在信息。
2013年11月1日,鄭全意主動轉崗到北京市昌平區食品藥品稽查大隊,擔任食品分隊隊長,正式成為執法戰線的一員。面相和藹的鄭全意,骨子里卻有著一股韌勁和一腔熱忱。深知萬事開頭難,他在入職前做了大量的“功課”—翻看資料、找前輩討教。但還是沒有想到,舉報真的來臨時,自己還面臨著那么多的困難—沒有車輛,沒有制服,甚至沒有一個比較完整的部門通訊錄。
社交網絡同質性理論表明具有相似特征的個體有選擇彼此作為朋友的傾向,所謂“物以類聚,人以群分”[6]。考慮用戶間的社交關系和用戶自身興趣特征,提出融合社交網絡用戶潛在因子和矩陣分解的推薦算法(即SGCN-MF算法)。
SGCN-MF算法認為相似用戶在經過矩陣分解后的用戶特征向量表示是近似的。如用戶u1和u2相似,那么他們的特征向量也是相似的,使用余弦相似度來度量用戶特征向量的相似程度。算法使用圖卷積神經網絡訓練用戶的社交關系網絡和用戶特征,得到用戶節點的低維特征向量表示,使用相似度函數計算用戶之間的相似性,并將用戶潛在信息融入矩陣分解模型。使用文獻[17]提出的引入用戶數量nui和項目數量nvj來約束目標函數對用戶或項目偏移的加權正則化方法改進目標函數,融合后的算法目標函數如下:

上述目標函數中的第一項來自于矩陣分解模型;第二項和第三項分別是防止項目和用戶特征矩陣過擬合的正則項;第四項代表用戶相似性潛在信息,其中NUi表示用戶Ui相似的k個近鄰用戶集合。其中,sim(Ui,Uk)是相似度函數,其計算方法如公式(8)所示,采用余弦相似性函數,其中d是圖卷積神經網絡訓練得到的用戶特征向量維度。使用梯度下降法最小化目標函數來求解用戶和項目的特征矩陣,令Si=Ui-sim(Ui-Uk)Uk,使用公式(9)、(10)來更新U 和V 。


3.3.2 算法步驟
SGCN-MF算法描述如下:
輸入:用戶社交網絡圖G=( )V,E ;用戶-項目歷史交互信息矩陣X ;用戶項目評分矩陣R。
輸出:目標用戶u對項目i的預測評分值。
步驟1使用圖卷積神經網絡學習用戶社交網絡圖G 和用戶-項目歷史交互矩陣X ,得到用戶節點的低維向量空間的編碼嵌入。
步驟2匹配用戶-項目交互矩陣R 和社交網絡圖G 中的用戶,并使用公式(8)計算社交網絡中用戶間的相似度。
步驟3選取社交網絡中k個近似的用戶融入矩陣分解模型。
步驟4使用梯度下降法求解矩陣分解模型分解后的用戶和項目特征矩陣,利用公式(9)、(10)更新U 和V ,并計算項目的預測評分。
SGCN-MF的算法模型如圖2所示。

圖2 SGCN-MF算法模型圖
本節主要對提出的SGCN-MF 算法進行驗證與評估,使用Filmtrust、Ciao和Epinions數據集作為實驗數據集。Filmtrust 是一個電影分享網站,Epinions 和Ciao 是產品評論網站,它們都允許用戶對項目進行評論和評分,其評分為范圍為1~5,并且包含了用戶的社交網絡信息。數據集的基本組成情況如表1所示。
實驗環境為Ubuntu 16.04系統;Python版本為3.6;tensorflow 版 本 為1.14;CPU 處 理 器 為Intel Core I7 8700K;顯卡為RTX2080;內存大小為64 GB。

表1 數據集分析
為驗證推薦算法的質量,需使用各種評價指標來比較算法的推薦性能,不同評價指標反映的推薦算法性能不同。因此選用評分預測推薦系統中流行的平均絕對誤差(MAE)和均方根誤差(RSME)兩個指標來評價本文的推薦算法性能。MAE和RSME是評分預測推薦系統評價指標中常用的度量方式,其公式如式(11)、(12)所示。使用5 折交叉驗證的方法進行訓練和測試。此外,將數據集隨機分成80%和20%,用于訓練和測試。

其中,T表示待測評分集合,Rij表示用戶Ui對項目Vj的評分,rij則代表模型的預測評分。

圖3 不同嵌入維度下的RSME、MAE值
實驗首先使用傳統MF 算法比較在矩陣分解過程中用戶和項目的特征向量維度對實驗結果的影響,選取了10~200維進行實驗,實驗結果如圖3所示。
從圖3中可以看出,在矩陣分解過程中用戶和項目的特征向量維度為150 維的情況下其MAE 值和RMSE值較低,MF 算法能夠得到較好的推薦效果。因此本文提出的SGCN-MF算法參數設置如下:用戶和項目的特征向量維度設置為150 維,λ1=λ2設置為0.01,λ3設置為0.1,學習率α設置為0.01。
算法在融合用戶社交網絡過程中,待測用戶相似的近鄰個數也會對推薦效果產生不同影響。實驗過程中控制用戶特征向量維度為150 維,選取10~30 個不同的相似用戶數目進行比較,觀察其對推薦效果的影響。實驗結果如圖4、圖5、圖6所示。

圖4 不同近鄰數目在Filmtrust中對推薦的影響

圖5 不同近鄰數目在Ciao中對推薦的影響

圖6 不同近鄰數目在Epinions中對推薦的影響

圖7 不同算法在Filmtrust、Ciao和Epinons數據集上對推薦的影響
從上述實驗結果圖中可以看出,相似用戶的數目會對推薦的效果有影響。當相似用戶的數目為25 時,SGCN-MF 算法在各數據集中的MAE 值和RSME 值均為最低。
最后為了驗證算法與同類算法的性能比較,將其與已有算法如PMF 算法[18]、SocialMF 算法[9]和TrustMF[19]算法在Filmtrust、Ciao 和Epinions 數據集上進行性能的比較。從圖7中可以看出SGCN-MF在推薦效果上優于其他幾種算法。因此融合社交網絡用戶潛在因子來預測用戶評分是有效的,在一定程度上能夠提高推薦系統的準確性。
文章提出一種融合社交網絡用戶潛在因子和矩陣分解的社會化推薦算法,即SGCN-MF算法。與只利用用戶項目評分信息的傳統推薦算法相比,SGCN-MF算法在推薦過程中考慮了用戶的社交關系和用戶特征對推薦結果產生的影響,將用戶社交網絡和用戶-項目歷史信息融入矩陣分解模型。算法使用圖卷積神經網絡學習用戶節點在低維向量空間的嵌入編碼,然后計算相似用戶的潛在信息,將其融入矩陣分解模型,增強了矩陣分解模型的推薦效果。在Filmtrust,Ciao和Epinions數據集上的實驗結果驗證了SGCN-MF算法的推薦性能。
此外,項目的潛在關系也是推薦系統的影響因素,在融合用戶社交關系的基礎上結合項目潛在關系進行推薦是下一步研究的重點。