趙 亮,陳平華,廖威平
廣東工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,廣州510006
推薦系統(tǒng)是解決信息過(guò)載問(wèn)題的有效手段,但也面臨著冷啟動(dòng)和數(shù)據(jù)稀疏的問(wèn)題。為解決這些問(wèn)題,有學(xué)者提出了社會(huì)化推薦方法,根據(jù)用戶之間的社交關(guān)系構(gòu)建社交網(wǎng)絡(luò),根據(jù)社交關(guān)系和用戶興趣進(jìn)行推薦[1-2]。傳統(tǒng)基于用戶社交網(wǎng)絡(luò)的社會(huì)化推薦僅利用用戶社交網(wǎng)絡(luò)來(lái)改善推薦系統(tǒng)的數(shù)據(jù)稀疏和冷啟動(dòng)問(wèn)題,沒(méi)有考慮用戶-項(xiàng)目歷史信息對(duì)推薦的影響,導(dǎo)致推薦效果不佳。近年來(lái),基于潛在因子的推薦方法在學(xué)術(shù)界和工業(yè)界都取得了巨大成功,矩陣分解(Matrix Factorization,MF)是解決數(shù)據(jù)稀疏問(wèn)題應(yīng)用較廣的推薦算法。給定具有稀疏反饋的用戶項(xiàng)目交互矩陣,基于潛在因子的模型假設(shè)每個(gè)用戶和項(xiàng)目都可以嵌入一個(gè)潛在空間中,然后通過(guò)降維的方法將用戶評(píng)分矩陣分解為用戶特征矩陣和項(xiàng)目特征矩陣,以此獲得用戶和項(xiàng)目的潛在關(guān)系。為了提升推薦性能,文獻(xiàn)[3]將非對(duì)稱用戶相似性方法融入矩陣模型,獲得提升推薦準(zhǔn)確率效果。文獻(xiàn)[4]將項(xiàng)目屬性耦合關(guān)系作為隱含信息融入矩陣模型,推薦效果也獲得了提升。矩陣分解方法易于擴(kuò)展,如果在矩陣分解的基礎(chǔ)上融合用戶社交關(guān)系和用戶-項(xiàng)目歷史信息不僅能緩解數(shù)據(jù)稀疏問(wèn)題,而且能進(jìn)一步提高推薦準(zhǔn)確率。
隨著社交網(wǎng)絡(luò)平臺(tái)的普及,基于社交網(wǎng)絡(luò)的推薦已經(jīng)成為提升推薦算法性能的一個(gè)有前景的研究方向[5]。用戶在社交網(wǎng)絡(luò)中的關(guān)系能夠反映出用戶之間的興趣愛(ài)好在一定程度上是相似的,相互聯(lián)系較為緊密的人群具有相似的興趣愛(ài)好的可能性越大[6]。孟祥武等人[7]在比較社會(huì)化推薦關(guān)鍵技術(shù)后認(rèn)為融合社交關(guān)系是社會(huì)化推薦的難點(diǎn)之一。有研究人員提出利用用戶社交關(guān)系或用戶之間的信任關(guān)系構(gòu)建社會(huì)化推薦模型[8-9]。文獻(xiàn)[10]提出使用信任機(jī)制改進(jìn)協(xié)同過(guò)濾算法,用以提高推薦系統(tǒng)性能。文獻(xiàn)[11]構(gòu)建了基于用戶朋友關(guān)系的社交網(wǎng)絡(luò)項(xiàng)目推薦模型,用于預(yù)測(cè)社交網(wǎng)絡(luò)中用戶喜歡的項(xiàng)目,文獻(xiàn)[6]提出融合用戶信任度和用戶項(xiàng)目二部圖的模型用來(lái)預(yù)測(cè)用戶對(duì)項(xiàng)目的評(píng)分。
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)已經(jīng)應(yīng)用在很多不同的領(lǐng)域,比如圖像[12]、文本[13]等。Kipf 等人[14]將卷積神經(jīng)網(wǎng)絡(luò)推廣到具有不規(guī)則結(jié)構(gòu)的圖上,稱其為圖卷積神經(jīng)網(wǎng)絡(luò)(Graph Convolutional Networks,GCN),其核心思想是以消息傳遞或信息擴(kuò)散的方式學(xué)習(xí)用戶或項(xiàng)目的潛在嵌入表示。Van den Berg 等人[15]研究GCN 的擴(kuò)展應(yīng)用,通過(guò)學(xué)習(xí)從節(jié)點(diǎn)的本地鄰居采樣和聚合特性來(lái)生成嵌入,提出通過(guò)在用戶-項(xiàng)目交互圖上傳遞消息來(lái)學(xué)習(xí)用戶和項(xiàng)目的潛在嵌入的Grap-SAGE模型。有研究人員結(jié)合高效的隨機(jī)游走和圖卷積策略開(kāi)發(fā)了PinSage[16],用于生成包含圖結(jié)構(gòu)和節(jié)點(diǎn)特征信息的節(jié)點(diǎn)嵌入。這些將GCNs 應(yīng)用于推薦系統(tǒng)的嘗試,證明了圖卷積神經(jīng)網(wǎng)絡(luò)可以用來(lái)學(xué)習(xí)用戶或項(xiàng)目的潛在嵌入表示。
圖卷積神經(jīng)網(wǎng)絡(luò)可以用來(lái)處理知識(shí)圖譜、社交網(wǎng)絡(luò)、蛋白質(zhì)交互網(wǎng)絡(luò)等具有不規(guī)則空間結(jié)構(gòu)的圖或圖網(wǎng)絡(luò)。其基本思想是以圖的消息傳遞或信息擴(kuò)散方式生成節(jié)點(diǎn)。具體來(lái)說(shuō),每個(gè)節(jié)點(diǎn)通過(guò)聚合來(lái)自鄰居的消息得到節(jié)點(diǎn)的嵌入表示,以此類推,鄰居的消息來(lái)自各自鄰居的鄰居。利用這種消息傳遞機(jī)制,能將圖中節(jié)點(diǎn)的特征信息和其結(jié)構(gòu)信息聚合,即把一個(gè)節(jié)點(diǎn)在圖中的高維鄰接信息降維到低維的向量表示,可以捕捉到圖的全局信息,從而更好地表示節(jié)點(diǎn)特征。使用圖卷積神經(jīng)網(wǎng)絡(luò)可以將節(jié)點(diǎn)特征信息和圖的結(jié)構(gòu)信息聚合,輸入用戶社交網(wǎng)絡(luò)結(jié)構(gòu)圖和用戶-項(xiàng)目歷史交互信息,以生成包含社交網(wǎng)絡(luò)結(jié)構(gòu)信息和用戶特征的節(jié)點(diǎn)潛在嵌入表示。圖卷積神經(jīng)網(wǎng)絡(luò)傳播過(guò)程如圖1所示,每一層的傳播公式如(1)所示:
圖1 圖卷積神經(jīng)網(wǎng)絡(luò)傳播過(guò)程
矩陣因子分解算法的基本思想是認(rèn)為用戶和項(xiàng)目都有自己的特征,用戶興趣受少數(shù)因素的影響,將稀疏且高維的用戶項(xiàng)目評(píng)分矩陣分解為用戶和項(xiàng)目?jī)蓚€(gè)低維矩陣。矩陣分解假設(shè)用戶對(duì)項(xiàng)目的評(píng)分是通過(guò)用戶的特征和項(xiàng)目的特征共同決定的,其評(píng)分預(yù)測(cè)是由兩個(gè)特征矩陣相乘得到。模型抽象為公式(2)所示:
其中,U ∈Rm×d代表用戶特征矩陣,V ∈Rn×d代表項(xiàng)目的特征矩陣。d代表特征向量的維度,m是用戶數(shù)目,n是項(xiàng)目的個(gè)數(shù)。模型的特征矩陣可以通過(guò)最小化目標(biāo)函數(shù)獲得。
公式(3)中Iij表示用戶i對(duì)項(xiàng)目j是否有評(píng)分,若有評(píng)分則Iij值為1,否則為0。rij是預(yù)測(cè)評(píng)分,通過(guò)公式(4)計(jì)算得到,其中u是所有用戶的平均值,bu和bv代表用戶和項(xiàng)目的偏置。Ui和Vj的內(nèi)積表示預(yù)測(cè)評(píng)分,(Rij-rij)2代表真實(shí)值和預(yù)測(cè)值的平方誤差。λ是避免模型在參數(shù)學(xué)習(xí)過(guò)程中產(chǎn)生過(guò)擬合的正則項(xiàng),α是學(xué)習(xí)率。
3.3.1 算法基本思想
矩陣分解的基本形式通過(guò)用戶對(duì)項(xiàng)目的評(píng)分模式推導(dǎo)出描述用戶和項(xiàng)目特征的向量因子,進(jìn)而計(jì)算用戶對(duì)項(xiàng)目評(píng)分的近似。它在求解過(guò)程中以全局角度來(lái)描述用戶和項(xiàng)目的特征,忽略了用戶的潛在信息可能對(duì)推薦結(jié)果帶來(lái)的影響,用戶的相似性是一種重要的潛在信息。
2013年11月1日,鄭全意主動(dòng)轉(zhuǎn)崗到北京市昌平區(qū)食品藥品稽查大隊(duì),擔(dān)任食品分隊(duì)隊(duì)長(zhǎng),正式成為執(zhí)法戰(zhàn)線的一員。面相和藹的鄭全意,骨子里卻有著一股韌勁和一腔熱忱。深知萬(wàn)事開(kāi)頭難,他在入職前做了大量的“功課”—翻看資料、找前輩討教。但還是沒(méi)有想到,舉報(bào)真的來(lái)臨時(shí),自己還面臨著那么多的困難—沒(méi)有車輛,沒(méi)有制服,甚至沒(méi)有一個(gè)比較完整的部門通訊錄。
社交網(wǎng)絡(luò)同質(zhì)性理論表明具有相似特征的個(gè)體有選擇彼此作為朋友的傾向,所謂“物以類聚,人以群分”[6]??紤]用戶間的社交關(guān)系和用戶自身興趣特征,提出融合社交網(wǎng)絡(luò)用戶潛在因子和矩陣分解的推薦算法(即SGCN-MF算法)。
SGCN-MF算法認(rèn)為相似用戶在經(jīng)過(guò)矩陣分解后的用戶特征向量表示是近似的。如用戶u1和u2相似,那么他們的特征向量也是相似的,使用余弦相似度來(lái)度量用戶特征向量的相似程度。算法使用圖卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練用戶的社交關(guān)系網(wǎng)絡(luò)和用戶特征,得到用戶節(jié)點(diǎn)的低維特征向量表示,使用相似度函數(shù)計(jì)算用戶之間的相似性,并將用戶潛在信息融入矩陣分解模型。使用文獻(xiàn)[17]提出的引入用戶數(shù)量nui和項(xiàng)目數(shù)量nvj來(lái)約束目標(biāo)函數(shù)對(duì)用戶或項(xiàng)目偏移的加權(quán)正則化方法改進(jìn)目標(biāo)函數(shù),融合后的算法目標(biāo)函數(shù)如下:
上述目標(biāo)函數(shù)中的第一項(xiàng)來(lái)自于矩陣分解模型;第二項(xiàng)和第三項(xiàng)分別是防止項(xiàng)目和用戶特征矩陣過(guò)擬合的正則項(xiàng);第四項(xiàng)代表用戶相似性潛在信息,其中NUi表示用戶Ui相似的k個(gè)近鄰用戶集合。其中,sim(Ui,Uk)是相似度函數(shù),其計(jì)算方法如公式(8)所示,采用余弦相似性函數(shù),其中d是圖卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練得到的用戶特征向量維度。使用梯度下降法最小化目標(biāo)函數(shù)來(lái)求解用戶和項(xiàng)目的特征矩陣,令Si=Ui-sim(Ui-Uk)Uk,使用公式(9)、(10)來(lái)更新U 和V 。
3.3.2 算法步驟
SGCN-MF算法描述如下:
輸入:用戶社交網(wǎng)絡(luò)圖G=( )V,E ;用戶-項(xiàng)目歷史交互信息矩陣X ;用戶項(xiàng)目評(píng)分矩陣R。
輸出:目標(biāo)用戶u對(duì)項(xiàng)目i的預(yù)測(cè)評(píng)分值。
步驟1使用圖卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)用戶社交網(wǎng)絡(luò)圖G 和用戶-項(xiàng)目歷史交互矩陣X ,得到用戶節(jié)點(diǎn)的低維向量空間的編碼嵌入。
步驟2匹配用戶-項(xiàng)目交互矩陣R 和社交網(wǎng)絡(luò)圖G 中的用戶,并使用公式(8)計(jì)算社交網(wǎng)絡(luò)中用戶間的相似度。
步驟3選取社交網(wǎng)絡(luò)中k個(gè)近似的用戶融入矩陣分解模型。
步驟4使用梯度下降法求解矩陣分解模型分解后的用戶和項(xiàng)目特征矩陣,利用公式(9)、(10)更新U 和V ,并計(jì)算項(xiàng)目的預(yù)測(cè)評(píng)分。
SGCN-MF的算法模型如圖2所示。
圖2 SGCN-MF算法模型圖
本節(jié)主要對(duì)提出的SGCN-MF 算法進(jìn)行驗(yàn)證與評(píng)估,使用Filmtrust、Ciao和Epinions數(shù)據(jù)集作為實(shí)驗(yàn)數(shù)據(jù)集。Filmtrust 是一個(gè)電影分享網(wǎng)站,Epinions 和Ciao 是產(chǎn)品評(píng)論網(wǎng)站,它們都允許用戶對(duì)項(xiàng)目進(jìn)行評(píng)論和評(píng)分,其評(píng)分為范圍為1~5,并且包含了用戶的社交網(wǎng)絡(luò)信息。數(shù)據(jù)集的基本組成情況如表1所示。
實(shí)驗(yàn)環(huán)境為Ubuntu 16.04系統(tǒng);Python版本為3.6;tensorflow 版 本 為1.14;CPU 處 理 器 為Intel Core I7 8700K;顯卡為RTX2080;內(nèi)存大小為64 GB。
表1 數(shù)據(jù)集分析
為驗(yàn)證推薦算法的質(zhì)量,需使用各種評(píng)價(jià)指標(biāo)來(lái)比較算法的推薦性能,不同評(píng)價(jià)指標(biāo)反映的推薦算法性能不同。因此選用評(píng)分預(yù)測(cè)推薦系統(tǒng)中流行的平均絕對(duì)誤差(MAE)和均方根誤差(RSME)兩個(gè)指標(biāo)來(lái)評(píng)價(jià)本文的推薦算法性能。MAE和RSME是評(píng)分預(yù)測(cè)推薦系統(tǒng)評(píng)價(jià)指標(biāo)中常用的度量方式,其公式如式(11)、(12)所示。使用5 折交叉驗(yàn)證的方法進(jìn)行訓(xùn)練和測(cè)試。此外,將數(shù)據(jù)集隨機(jī)分成80%和20%,用于訓(xùn)練和測(cè)試。
其中,T表示待測(cè)評(píng)分集合,Rij表示用戶Ui對(duì)項(xiàng)目Vj的評(píng)分,rij則代表模型的預(yù)測(cè)評(píng)分。
圖3 不同嵌入維度下的RSME、MAE值
實(shí)驗(yàn)首先使用傳統(tǒng)MF 算法比較在矩陣分解過(guò)程中用戶和項(xiàng)目的特征向量維度對(duì)實(shí)驗(yàn)結(jié)果的影響,選取了10~200維進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖3所示。
從圖3中可以看出,在矩陣分解過(guò)程中用戶和項(xiàng)目的特征向量維度為150 維的情況下其MAE 值和RMSE值較低,MF 算法能夠得到較好的推薦效果。因此本文提出的SGCN-MF算法參數(shù)設(shè)置如下:用戶和項(xiàng)目的特征向量維度設(shè)置為150 維,λ1=λ2設(shè)置為0.01,λ3設(shè)置為0.1,學(xué)習(xí)率α設(shè)置為0.01。
算法在融合用戶社交網(wǎng)絡(luò)過(guò)程中,待測(cè)用戶相似的近鄰個(gè)數(shù)也會(huì)對(duì)推薦效果產(chǎn)生不同影響。實(shí)驗(yàn)過(guò)程中控制用戶特征向量維度為150 維,選取10~30 個(gè)不同的相似用戶數(shù)目進(jìn)行比較,觀察其對(duì)推薦效果的影響。實(shí)驗(yàn)結(jié)果如圖4、圖5、圖6所示。
圖4 不同近鄰數(shù)目在Filmtrust中對(duì)推薦的影響
圖5 不同近鄰數(shù)目在Ciao中對(duì)推薦的影響
圖6 不同近鄰數(shù)目在Epinions中對(duì)推薦的影響
圖7 不同算法在Filmtrust、Ciao和Epinons數(shù)據(jù)集上對(duì)推薦的影響
從上述實(shí)驗(yàn)結(jié)果圖中可以看出,相似用戶的數(shù)目會(huì)對(duì)推薦的效果有影響。當(dāng)相似用戶的數(shù)目為25 時(shí),SGCN-MF 算法在各數(shù)據(jù)集中的MAE 值和RSME 值均為最低。
最后為了驗(yàn)證算法與同類算法的性能比較,將其與已有算法如PMF 算法[18]、SocialMF 算法[9]和TrustMF[19]算法在Filmtrust、Ciao 和Epinions 數(shù)據(jù)集上進(jìn)行性能的比較。從圖7中可以看出SGCN-MF在推薦效果上優(yōu)于其他幾種算法。因此融合社交網(wǎng)絡(luò)用戶潛在因子來(lái)預(yù)測(cè)用戶評(píng)分是有效的,在一定程度上能夠提高推薦系統(tǒng)的準(zhǔn)確性。
文章提出一種融合社交網(wǎng)絡(luò)用戶潛在因子和矩陣分解的社會(huì)化推薦算法,即SGCN-MF算法。與只利用用戶項(xiàng)目評(píng)分信息的傳統(tǒng)推薦算法相比,SGCN-MF算法在推薦過(guò)程中考慮了用戶的社交關(guān)系和用戶特征對(duì)推薦結(jié)果產(chǎn)生的影響,將用戶社交網(wǎng)絡(luò)和用戶-項(xiàng)目歷史信息融入矩陣分解模型。算法使用圖卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)用戶節(jié)點(diǎn)在低維向量空間的嵌入編碼,然后計(jì)算相似用戶的潛在信息,將其融入矩陣分解模型,增強(qiáng)了矩陣分解模型的推薦效果。在Filmtrust,Ciao和Epinions數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果驗(yàn)證了SGCN-MF算法的推薦性能。
此外,項(xiàng)目的潛在關(guān)系也是推薦系統(tǒng)的影響因素,在融合用戶社交關(guān)系的基礎(chǔ)上結(jié)合項(xiàng)目潛在關(guān)系進(jìn)行推薦是下一步研究的重點(diǎn)。