何昊晨,張丹紅
(武漢理工大學(xué)自動(dòng)化學(xué)院,武漢 430070)
(*通信作者電子郵箱zhangdh@whut.edu.cn)
隨著社交網(wǎng)絡(luò)的發(fā)展,利用用戶間的社會(huì)關(guān)系進(jìn)行推薦的方法能利用好友或信任等關(guān)系來改善推薦結(jié)果[1],更好地模擬現(xiàn)實(shí)社會(huì)中的推薦過程,更能體現(xiàn)出人在推薦過程中的作用,因此社會(huì)化推薦成了產(chǎn)業(yè)應(yīng)用的研究熱點(diǎn)。具有一定聯(lián)系的用戶之間的興趣具有一定的關(guān)聯(lián),這是社會(huì)推薦系統(tǒng)的主要基礎(chǔ)[2]。社交推薦系統(tǒng)通過用戶之間的社交信息構(gòu)建社交網(wǎng)絡(luò),可以改善協(xié)作過濾(Collaborative Filtering,CF)并解決冷啟動(dòng)和稀疏性問題。對(duì)于新用戶,只要與其他用戶有直接或間接的社交關(guān)系,就可以通過已知用戶的社交關(guān)系和興趣模式有效地推薦新物品。這種社會(huì)化推薦的策略是合理且科學(xué)的:一方面,社交網(wǎng)絡(luò)分析(Social Network Analysis,SNA)的研究結(jié)果表明,基于網(wǎng)絡(luò)社區(qū)中社交上下文信息的相互關(guān)系,相互關(guān)聯(lián)的用戶之間的興趣愛好和行為規(guī)范相似[3];另一方面,隨著社交網(wǎng)絡(luò)和在線平臺(tái)的廣泛應(yīng)用,在線用戶的行為和習(xí)慣越來越體現(xiàn)出社區(qū)和網(wǎng)絡(luò)的特征[4]。此外,在線社交網(wǎng)絡(luò)的分析結(jié)果展現(xiàn)了社交推薦理論是有效和正確的[5],社交上下文信息無疑可以改善推薦系統(tǒng)。
在線社交網(wǎng)絡(luò)中有相當(dāng)多的研究,其中大部分集中在對(duì)社交圖的結(jié)構(gòu)分析上[6]。社交網(wǎng)絡(luò)的人際關(guān)系,尤其是朋友圈,可以解決冷啟動(dòng)和稀疏性問題,通過社交網(wǎng)絡(luò)之間的關(guān)系能有效推薦用戶喜歡的物品(item)[7],例如音樂[8]、視頻[9]、品牌/產(chǎn)品[10]、首選標(biāo)簽[11]、位置[12]、服務(wù)[13]等。
社交網(wǎng)絡(luò)中的用戶關(guān)系具有多樣性,針對(duì)不同的社交網(wǎng)絡(luò)有許多不同角度的研究,例如Yang等[14]建議使用基于社交網(wǎng)絡(luò)上好友圈中“推斷信任圈”的概念來推薦用戶喜歡的物品。該方法不僅改善了復(fù)雜網(wǎng)絡(luò)中的人際信任,而且減少了大數(shù)據(jù)的負(fù)載;同時(shí),除了人際關(guān)系的影響外,Jiang 等[15]發(fā)現(xiàn)個(gè)人偏好也是社交網(wǎng)絡(luò)中的重要因素。就像人和人之間想法會(huì)互相影響一樣,由于偏好的相似性,通過概率矩陣分解模型構(gòu)造的用戶潛在特征應(yīng)該與他的朋友相似[16]。Huang 等[17]將學(xué)習(xí)者的年齡和班級(jí)作為一個(gè)重要的特征應(yīng)用在用戶關(guān)系的研究中。Zheng 等[18]將文本主題模型融合到社會(huì)化推薦中。Lu 等[19]通過研究發(fā)現(xiàn)了電子商務(wù)系統(tǒng)中信任關(guān)系對(duì)購買行為有非常重要的影響。Yuan 等[20]探索了一種社會(huì)關(guān)系,將成員關(guān)系及其與朋友的結(jié)合作用這兩種不同類型的社會(huì)關(guān)系通過分解過程融合到基于協(xié)作過濾的推薦器中,并發(fā)現(xiàn)了在稀疏數(shù)據(jù)條件下社會(huì)關(guān)系的顯著有效性。用戶的選擇始終與其個(gè)人興趣緊密相關(guān),用戶共享、上傳和評(píng)論他們喜歡的內(nèi)容非常受歡迎。因此,用戶的個(gè)人興趣可以通過它在社會(huì)評(píng)分網(wǎng)絡(luò)中的歷史評(píng)分記錄來披露[21]。李琳等[22]研究了評(píng)論文本對(duì)推薦效果的影響。張宜浩等[23]研究了基于用戶間情感關(guān)系的混合推薦。
大多數(shù)關(guān)于社會(huì)推薦的研究都集中在單一的社會(huì)關(guān)系上,很少有研究討論復(fù)合社會(huì)網(wǎng)絡(luò)在推薦中的復(fù)雜性和多樣性。然而,近年來社交平臺(tái)發(fā)展迅猛,用戶之間的行為和關(guān)系也愈加多樣化。例如,用戶A 關(guān)注用戶B 和用戶C,用戶B 信任用戶C,用戶B 和用戶D 在一個(gè)興趣小組,用戶C 總是在用戶D 的帖子下評(píng)論,用戶A 和用戶C 在個(gè)人資料上具有很高的相似性。這些用戶之間的關(guān)聯(lián)可以構(gòu)成多層復(fù)合網(wǎng)絡(luò),多層社交網(wǎng)絡(luò)迎來了新的挑戰(zhàn)和機(jī)遇,不同的關(guān)系會(huì)不同程度地影響用戶的偏好,進(jìn)而影響用戶的行為,因此通過融合多個(gè)社交網(wǎng)絡(luò)是改善推薦的有效方法。雖然已有一些研究開始涉及多重社交網(wǎng)絡(luò)推薦[24-25],但簡單的線性疊加不能反映多重社交網(wǎng)絡(luò)之間的耦合和非線性關(guān)聯(lián)。文獻(xiàn)[26]對(duì)多種社交網(wǎng)絡(luò)進(jìn)行了分析,采用概率模型對(duì)多種網(wǎng)絡(luò)進(jìn)行融合,構(gòu)建多網(wǎng)絡(luò)的聯(lián)合概率分布,但訓(xùn)練時(shí)缺乏參數(shù)共享和非線性表示。本文基于此背景提出了一種多維社交關(guān)系下的圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Network with Multi-Social Recommendation,GNNMSR)推薦模型,通過對(duì)歷史評(píng)價(jià)、各類社交網(wǎng)絡(luò)構(gòu)成不同維度的網(wǎng)絡(luò)進(jìn)行嵌入,實(shí)現(xiàn)不同社交網(wǎng)絡(luò)對(duì)用戶偏好的注意力集成,并在理論推導(dǎo)和實(shí)驗(yàn)驗(yàn)證中證明其有效性和可擴(kuò)展性。
本文實(shí)驗(yàn)數(shù)據(jù)的來源平臺(tái)為Yelp 和豆瓣電影,這些社會(huì)化服務(wù)平臺(tái)既提供內(nèi)容服務(wù),又提供社交功能。所有m個(gè)用戶表示為(u1,u2,…,um),所有n個(gè)物品表示為(c1,c2,…,cn)。每個(gè)用戶對(duì)每個(gè)物品的評(píng)分構(gòu)成了m×n維實(shí)數(shù)評(píng)分矩陣R,Rij表示用戶ui對(duì)物品cj的評(píng)分,如果Rij=0 表示用戶ui沒有對(duì)物品cj進(jìn)行過評(píng)分或選擇。在不同的推薦系統(tǒng)中,評(píng)分值的設(shè)定是不一樣的,本文根據(jù)Yelp 和豆瓣的設(shè)置,將評(píng)分值設(shè)定為{1,2,3,4,5},評(píng)分越高表示越滿意。本文提出的推薦系統(tǒng)所要達(dá)成的目標(biāo),是根據(jù)用戶的歷史評(píng)分記錄和用戶間的各類社交關(guān)系,預(yù)測(cè)每個(gè)用戶ui對(duì)每個(gè)物品cj的可能評(píng)分,從而可以將預(yù)測(cè)評(píng)分最高的物品推薦給該用戶。傳統(tǒng)的方法主要是基于用戶間單一的關(guān)系,例如關(guān)注、朋友等關(guān)系。然而在社交網(wǎng)絡(luò)中,用戶之間的社會(huì)關(guān)系具有多樣性和復(fù)合性,這些關(guān)系體現(xiàn)了用戶間不同的社交行為和影響程度,因此充分利用用戶間的多維社會(huì)關(guān)系能提高推薦的準(zhǔn)確性。
多重社交網(wǎng)絡(luò)是指用戶和用戶之間的不同類型社交網(wǎng)絡(luò)構(gòu)成的復(fù)合圖模型,假設(shè)用戶間有N維的社交關(guān)系DIM={d1,d2,…,dN},那么多重社交網(wǎng)絡(luò)模型可以表示為{Gs|s∈DIM},Gs=(V,Es)表示第s維的社交關(guān)系構(gòu)成的圖模型。其中頂點(diǎn)集合V表示了所有用戶的集合,m×m大小的矩陣Es表示了第s維社交關(guān)系中用戶和用戶之間的關(guān)系集合,∈Es表示第s維社交關(guān)系中用戶i對(duì)用戶j的關(guān)系強(qiáng)度,Es中頂點(diǎn)到自身的邊都用1 表示。針對(duì)不同類型的社交關(guān)系,主要有以下大類:
1)無符號(hào)關(guān)系。
2)有符號(hào)關(guān)系。
3)其他關(guān)系。
有一些用戶關(guān)系無法通過實(shí)數(shù)進(jìn)行表達(dá)或包含了額外的信息。例如用戶之間的評(píng)論、私信、個(gè)人資料相似程度等,這種情況一般將標(biāo)簽數(shù)據(jù)通過語義計(jì)算轉(zhuǎn)化為符號(hào)變量來構(gòu)成一個(gè)有符號(hào)圖或無符號(hào)圖。
因此,本文所提出的多重社交網(wǎng)絡(luò)下的推薦可以轉(zhuǎn)化為機(jī)器學(xué)習(xí)問題:給定用戶已有的評(píng)分矩陣R和多重社交網(wǎng)絡(luò)圖模型(其多維邊為,計(jì)算用戶的特征模型U和物品的特征模型C,使得用戶特征符合多重社交網(wǎng)絡(luò)的特點(diǎn),并且根據(jù)特征可以計(jì)算每個(gè)用戶對(duì)每個(gè)物品的預(yù)測(cè)評(píng)分,能準(zhǔn)確地反映出用戶對(duì)物品實(shí)際偏好程度。其中:U為k×m維的實(shí)數(shù)特征矩陣;Ui為矩陣U第i列構(gòu)成的一個(gè)k維列向量,表示第i個(gè)用戶的特征。C為k×n維的實(shí)數(shù)特征矩陣,Cj為矩陣第j列構(gòu)成的一個(gè)k維列向量,表示第j個(gè)物品的特征,k表示特征的數(shù)量。
圖神經(jīng)網(wǎng)絡(luò)是一種從卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)和圖嵌入思想啟發(fā)而來的新型拓展神經(jīng)網(wǎng)絡(luò),可以在圖領(lǐng)域?qū)?shù)據(jù)進(jìn)行特征提取和表示,是一種高效、易擴(kuò)展的新型神經(jīng)網(wǎng)絡(luò),在處理圖數(shù)據(jù)方面表現(xiàn)出了強(qiáng)大的功能。圖神經(jīng)網(wǎng)絡(luò)通過對(duì)節(jié)點(diǎn)進(jìn)行描述,并經(jīng)過不斷地更新節(jié)點(diǎn)狀態(tài),得到包含鄰居節(jié)點(diǎn)信息和圖形拓?fù)浣Y(jié)構(gòu)特點(diǎn)的狀態(tài),最終將這些節(jié)點(diǎn)通過特定方法進(jìn)行輸出,得到需要的結(jié)果。
基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)和圖形嵌入的圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Network,GNN)被用于對(duì)圖形結(jié)構(gòu)中的信息進(jìn)行聚合。因此,它們可以對(duì)由元素組成的輸入和/或輸出及其依賴性進(jìn)行建模,并且圖神經(jīng)網(wǎng)絡(luò)可以用循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)內(nèi)核同時(shí)對(duì)圖上的擴(kuò)散過程進(jìn)行建模。
在一個(gè)圖中,每個(gè)節(jié)點(diǎn)由它的特征和相關(guān)的節(jié)點(diǎn)自然地定義。GNN 的目標(biāo)是學(xué)習(xí)一個(gè)狀態(tài)嵌入hu,包含每個(gè)節(jié)點(diǎn)的鄰域信息,其中狀態(tài)嵌入hu是節(jié)點(diǎn)u的z維實(shí)數(shù)向量,可用于產(chǎn)生節(jié)點(diǎn)標(biāo)簽的輸出ou,表示節(jié)點(diǎn)u在某層網(wǎng)絡(luò)輸出的向量。設(shè)f為參數(shù)函數(shù),稱為局部轉(zhuǎn)移函數(shù),在所有節(jié)點(diǎn)間共享,并根據(jù)輸入鄰域更新節(jié)點(diǎn)狀態(tài)。g是局部輸出函數(shù),它描述了輸出是如何產(chǎn)生的。hu和ou定義如下:
其中:xu、xco[u]、hne[u]、xne[u]分別是節(jié)點(diǎn)u的特征、其鄰邊的特征、其附近其他頂點(diǎn)的狀態(tài)嵌入和特征。
GNN 通過網(wǎng)絡(luò)層層迭代對(duì)參數(shù)進(jìn)行訓(xùn)練,針對(duì)損失函數(shù),學(xué)習(xí)f和g的參數(shù),使得預(yù)測(cè)盡可能接近樣本h,大量研究[27-28]表明,GNN是一個(gè)種強(qiáng)大的數(shù)據(jù)建模體系結(jié)構(gòu)。
在推薦系統(tǒng)中,用戶和用戶之間的社交關(guān)系構(gòu)成了圖,用戶和物品之間的評(píng)分選擇行為也構(gòu)成了圖,因此GNN 對(duì)于推薦系統(tǒng)的圖結(jié)構(gòu)具有良好的適應(yīng)性。然而,推薦系統(tǒng)中用戶和物品的關(guān)系更加復(fù)雜,用戶和用戶的社交關(guān)系也存在多重特性,因此需要對(duì)網(wǎng)絡(luò)進(jìn)行優(yōu)化和調(diào)整,才能更好地應(yīng)對(duì)推薦中的各類問題。本文提出的推薦模型通過GNN 對(duì)用戶偏好、物品偏好和多重社交網(wǎng)絡(luò)進(jìn)行融合,通過各個(gè)節(jié)點(diǎn)的本地領(lǐng)域采樣和聚集特征生成嵌入,構(gòu)成整個(gè)網(wǎng)絡(luò)。下面分別來介紹各個(gè)部分的模型。
用戶偏好模型是根據(jù)用戶的歷史評(píng)分記錄來計(jì)算用戶在偏好上的特征模型,可表示為k×m的矩陣UA,用戶i的偏好特征向量為UAi(UAi為矩陣UA第i列構(gòu)成的一個(gè)k維列向量)。本文提供一種基于用戶偏好聚合的圖神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)用戶在偏好上的特征向量UAi,通過網(wǎng)絡(luò)訓(xùn)練這個(gè)用戶和其他用戶在所有物品偏好上的特征,其特征向量可以表示為:
其中:C(i)是用戶i的歷史評(píng)價(jià)(選擇)物品的集合;向量xiz是用戶ui和物品cz之間的偏好特征表示;Aggreitems是物品聚合函數(shù);f表示非線性激活函數(shù)(即修正的線性單位);W和b是神經(jīng)網(wǎng)絡(luò)的權(quán)重和偏差。針對(duì)本文實(shí)驗(yàn)中的特點(diǎn),評(píng)分值為Rij∈{1,2,3,4,5},因此用戶ui對(duì)物品cz的偏好特征向量xiz可以通過多層感知機(jī)(Multi-Layer Perceptron,MLP)對(duì)物品嵌入向量itemz和偏好嵌入向量rater進(jìn)行合并來得到。itemz和rater作為多層感知機(jī)的輸入,輸出用戶ui和物品cz的偏好特征向量,網(wǎng)絡(luò)訓(xùn)練過程可以表示為:
其中⊕表示兩個(gè)向量之間的級(jí)聯(lián)運(yùn)算。itemz和rater是物品向量和偏好向量在GNN 上的圖嵌入。圖嵌入是一種將高維稠密的向量矩陣圖數(shù)據(jù)映射為低維稠密向量的過程,能夠很好地解決圖數(shù)據(jù)難以高效輸入機(jī)器學(xué)習(xí)算法的問題。例如itemz表達(dá)的是m個(gè)用戶是否選擇物品a的向量,原始向量為長度為m、各元素為0 或1 的向量,嵌入后變成一個(gè)低維的向量。rater表達(dá)的是m個(gè)用戶對(duì)物品a的評(píng)分的向量,原始向量為長度為m且各元素取值為0~5 的某個(gè)整數(shù)(包括0 和5)的向量,嵌入后也變成一個(gè)低維向量。
本文物品聚集函數(shù)采用主流的均值算子,即對(duì)xiz向量進(jìn)行逐元素求均值。這種均值聚集函數(shù)是一種線性近似的局部頻譜卷積,因此,函數(shù)可以轉(zhuǎn)化為:
其中:aiz表示cz對(duì)用戶ui在物品潛在特征上的貢獻(xiàn)所體現(xiàn)的注意力權(quán)重。特別地,物品注意力aiz通過兩層神經(jīng)網(wǎng)絡(luò)求參數(shù)的結(jié)構(gòu)也可以稱為注意力網(wǎng)絡(luò)。這個(gè)網(wǎng)絡(luò)的輸入是用戶偏好向量xiz和用戶ui的嵌入向量useri。所以,這個(gè)注意力網(wǎng)絡(luò)訓(xùn)練公式可以表示為:
最終的注意力權(quán)重是通過softmax 函數(shù)對(duì)上述注意力得分進(jìn)行歸一化獲得的,交互對(duì)用戶ui的物品潛在因子的貢獻(xiàn)可以表示為:
通過網(wǎng)絡(luò)訓(xùn)練完成對(duì)aiz的計(jì)算,從而計(jì)算得到用戶的特征表示UAi,整個(gè)網(wǎng)絡(luò)的結(jié)構(gòu)可以如圖1所示。
在社交關(guān)系模型中,考慮到多重社交關(guān)系對(duì)用戶行為的影響,本文引入關(guān)注影響機(jī)制,在每個(gè)維度的社交網(wǎng)絡(luò)中選擇具有代表性的朋友來表征用戶的社交信息。對(duì)于第d維的社交網(wǎng)絡(luò),每個(gè)用戶ui的潛在因子是聚集了他在這個(gè)網(wǎng)絡(luò)中的所有朋友(鄰居)N(i)的潛在因子,因此可以表示為:
其中:Aggreneigbhors表示用戶的鄰居的聚集,同樣采用加權(quán)平均函數(shù)來構(gòu)造該網(wǎng)絡(luò);UΑa表示第a個(gè)用戶根據(jù)用戶偏好模型計(jì)算出來的偏好特征向量;βia表示用戶a對(duì)用戶i的興趣影響,由于用戶之間的影響有強(qiáng)有弱,混合在一起能更廣泛地識(shí)別用戶的興趣,因此通過兩層神經(jīng)網(wǎng)絡(luò)來構(gòu)造用戶的注意力機(jī)制。βia的學(xué)習(xí)過程可以表示為:
以上表示了單社交網(wǎng)絡(luò)中用戶社交特征表征,對(duì)于多維社交網(wǎng)絡(luò),則需要將用戶通過網(wǎng)絡(luò)進(jìn)行嵌入,本文構(gòu)造一個(gè)標(biāo)準(zhǔn)的q層MLP網(wǎng)絡(luò),結(jié)構(gòu)如下:
其中:GSt表示第t層網(wǎng)絡(luò)的參數(shù)向量;Si表示用戶i在多維社交網(wǎng)絡(luò)疊加嵌入后的特征向量。整個(gè)社交網(wǎng)絡(luò)模型的圖神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
根據(jù)用戶偏好模型和多重的用戶社交關(guān)系模型,建立一個(gè)標(biāo)準(zhǔn)MLP 模型將用戶偏好計(jì)算的特征參數(shù)和各個(gè)社交網(wǎng)絡(luò)計(jì)算出來的特征參數(shù)在網(wǎng)絡(luò)中融合訓(xùn)練,以得到最終的用戶特征編碼,網(wǎng)絡(luò)結(jié)構(gòu)如下:
圖1 用戶偏好特征模型網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Network structure of user preference feature model
圖2 用戶社交關(guān)系模型網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Network structure of user social relationship model
其中:GUSt表示第t層網(wǎng)絡(luò)的參數(shù)向量;UAi表示用戶i在用戶偏好模型上嵌入的特征向量;Si表示用戶i在多維社交網(wǎng)絡(luò)疊加嵌入后的特征向量。U表示最終學(xué)習(xí)到的用戶特性模型。
物品特征模型通過用戶聚集來生成每個(gè)物品cj的潛在因子向量Cj,物品受用戶的評(píng)分從而構(gòu)成了物品-用戶的關(guān)聯(lián)網(wǎng)絡(luò),對(duì)于每一個(gè)物品cj,將所有對(duì)該物品進(jìn)行評(píng)分的其他用戶定義為集合UC(j)。因此,構(gòu)造一個(gè)意見感知交互的MLP 網(wǎng)絡(luò),通過物品用戶嵌入編碼usert和用戶偏好嵌入編碼rater作為輸入,輸出用戶交互特征yjt,該網(wǎng)絡(luò)可以表示為:
為了訓(xùn)練每個(gè)物品的潛在因子Cj,將該物品所有評(píng)價(jià)過的用戶集合UC(j)的所有用戶的意識(shí)感知交互進(jìn)行聚集,聚集函數(shù)Aggreusers通過均值聚集來實(shí)現(xiàn),將物品中每個(gè)用戶的特征嵌入進(jìn)行聚集,函數(shù)可以表示為:
將這種偏好通過注意力機(jī)制來表示,因此γjt通過yit和itemj作為輸入,構(gòu)建兩層注意力神經(jīng)網(wǎng)絡(luò)來反饋計(jì)算用戶的重要性權(quán)重。γjt可以準(zhǔn)確描述用戶和物品交互對(duì)于學(xué)習(xí)物品的潛在因子的異質(zhì)影響。γjt訓(xùn)練的網(wǎng)絡(luò)結(jié)構(gòu)可以表示為:
通過網(wǎng)絡(luò)訓(xùn)練完成對(duì)γjt的計(jì)算,從而計(jì)算得到物品的特征表示Cj,網(wǎng)絡(luò)的結(jié)構(gòu)可以如圖3所示。
圖3 物品偏好特征模型網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Network structure of item preference feature model
用戶偏好模型、用戶社交關(guān)系模型和物品偏好模型構(gòu)成了整個(gè)復(fù)雜的圖神經(jīng)網(wǎng)絡(luò),整個(gè)網(wǎng)絡(luò)的結(jié)構(gòu)如圖4 所示。其中最關(guān)鍵的任務(wù)就是要對(duì)網(wǎng)絡(luò)參數(shù)進(jìn)行訓(xùn)練,因此針對(duì)本文的評(píng)分問題,損失函數(shù)定義為:
其中:|R|表示評(píng)分矩陣中存在有用戶i對(duì)物品j評(píng)分的評(píng)分記錄對(duì)的數(shù)量;rij表示用戶i對(duì)物品j的評(píng)分值;rij′表示用戶i對(duì)物品j的評(píng)分預(yù)測(cè)值。本文采用RMSProp(Root Mean Square Prop)[29]作為目標(biāo)函數(shù)的優(yōu)化器,該優(yōu)化器會(huì)隨機(jī)選擇一個(gè)訓(xùn)練實(shí)例,并朝其負(fù)梯度的方向更新每個(gè)模型參數(shù)。該優(yōu)化器可以表示為:
RMSProp 算法在對(duì)權(quán)重W和偏置b進(jìn)行梯度更新時(shí),采用微分平方加權(quán)平均數(shù)和作為學(xué)習(xí)率。其中:SdW和Sdb分別是損失函數(shù)在前t-1輪迭代過程中累積的梯度動(dòng)量;α是動(dòng)態(tài)學(xué)習(xí)率;β是梯度累積的一個(gè)指數(shù),一般取值為0.9;ε是為了避免根號(hào)中為0而設(shè)置的極小值,一般為10-8。該方法有利于消除擺動(dòng)幅度大的數(shù)據(jù),修正擺動(dòng)幅度,使各維度的擺動(dòng)幅度都較?。涣硪环矫嬉彩沟镁W(wǎng)絡(luò)函數(shù)收斂更快。
圖4 整體圖神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)Fig.4 Overall graph neural network model structure
本文涉及到3 類模型的嵌入:用戶偏好模型、物品偏好模型和多重用戶社交模型。通過對(duì)它們進(jìn)行隨機(jī)初始化,在訓(xùn)練階段共同學(xué)習(xí)參數(shù)。由于原始特征非常大,且特征稀疏,因此不能簡單地使用一維向量來表示每個(gè)用戶和每個(gè)物品,而是將高維稀疏特征嵌入到低維潛在空間中,從而更好地訓(xùn)練模型。其中偏好嵌入矩陣取決于評(píng)分范圍,在本文的5 星評(píng)分實(shí)驗(yàn)背景中,偏好嵌入矩陣由5 個(gè)不同的嵌入向量組成,分別表示在1~5分上的得分特征。另外,針對(duì)過擬合問題,本模型采用了dropout 策略,在訓(xùn)練過程中隨機(jī)丟棄一些神經(jīng)元,在更新參數(shù)時(shí)僅有一部分會(huì)被更新,而在預(yù)測(cè)時(shí)不使用dropout,可以實(shí)現(xiàn)對(duì)整個(gè)網(wǎng)絡(luò)的預(yù)測(cè)。
通過用戶偏好模型、用戶社交關(guān)系模型和物品偏好模型,可以對(duì)一個(gè)未知的用戶和物品進(jìn)行評(píng)分預(yù)測(cè)或偏好預(yù)測(cè)。通過用戶和物品的潛在因素,先對(duì)其進(jìn)行串聯(lián),然后輸入到p層MLP進(jìn)行評(píng)分預(yù)測(cè)。
式(19)描述了圖4 上半部分的網(wǎng)絡(luò)訓(xùn)練過程,通過對(duì)訓(xùn)練集中的評(píng)分進(jìn)行反向傳播,最終訓(xùn)練得到特征矩陣U和C,使得誤差最小。通過U和C快速計(jì)算出預(yù)測(cè)的評(píng)分,從而可以選擇評(píng)分最高的物品進(jìn)行推薦。
為了評(píng)估建議的方法,本文使用兩個(gè)數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),即Yelp 和豆瓣電影(Douban Movie),數(shù)據(jù)源來自于相關(guān)的研究[26]。對(duì)于每個(gè)數(shù)據(jù)集,重復(fù)的評(píng)分僅保留最新的評(píng)分。數(shù)據(jù)集的統(tǒng)計(jì)信息如表1所示。
表1 數(shù)據(jù)集統(tǒng)計(jì)Tab.1 Dataset statistics
下面簡單介紹數(shù)據(jù)集中每種記錄類型的主要字段,以便于理解方法和實(shí)驗(yàn):
用戶:〈用戶ID,用戶名〉。
物品:〈物品ID,物品名稱,物品類別〉。
評(píng)分:〈用戶ID,商品ID,評(píng)分時(shí)間,評(píng)分得分〉。豆瓣和Yelp的得分均為{1,2,3,4,5}。
朋友關(guān)系:〈用戶1,用戶2〉。對(duì)于豆瓣數(shù)據(jù)集,用戶1 表示關(guān)注者的編號(hào),用戶2 表示關(guān)注者的編號(hào)。豆瓣數(shù)據(jù)集的朋友關(guān)系是單向的。對(duì)于Yelp 數(shù)據(jù)集,用戶1 和用戶2 之間的關(guān)系是等價(jià)的,因此Yelp 數(shù)據(jù)集的朋友關(guān)系是對(duì)稱的社會(huì)關(guān)系。
組:〈組ID,組名稱,創(chuàng)建時(shí)間,創(chuàng)建者用戶ID〉。在豆瓣中,組由對(duì)某些主題具有相同興趣的用戶組成。在Yelp 中組的表示是事件,這意味著組是從特定事件派生的。例如,“誰參加”和“聽起來很酷”都是一個(gè)組的成員。
組用戶:〈組ID,用戶ID〉。
主題:〈主題ID,主題標(biāo)題,主題文本,創(chuàng)建時(shí)間,創(chuàng)建者用戶ID〉。在豆瓣中,主題是指帖子、日記或討論,可以由其他用戶評(píng)論。在Yelp 中,主題是指談話(對(duì)話),其他用戶也可以評(píng)論。
主題評(píng)論:〈主題ID,評(píng)論ID,評(píng)論文本,創(chuàng)建時(shí)間,創(chuàng)建者用戶ID〉。每個(gè)評(píng)論是用戶對(duì)主題的回復(fù)。
在本文中,基于數(shù)據(jù),構(gòu)造一個(gè)5 維社交網(wǎng)絡(luò),分別為朋友關(guān)系、群組關(guān)系、評(píng)論關(guān)系、主題相似性關(guān)系和行為相似性關(guān)系,關(guān)系強(qiáng)度反映是否好友、群組重疊、評(píng)論傾向、文本主題語義偏好及行為時(shí)間周期趨同等程度。
對(duì)于Douban 和Yelp 而言,評(píng)分?jǐn)?shù)據(jù)非常稀疏,可以通過計(jì)算評(píng)分密度,表示評(píng)分矩陣R中為非零的值的比重。
對(duì)于每個(gè)數(shù)據(jù)集,本文分別隨機(jī)選擇30%、50%、80%作為訓(xùn)練集,其余70%、50%、20%作為測(cè)試集。
平均指標(biāo)采用被廣泛應(yīng)用的2 個(gè)指標(biāo):均方根誤差(Root Mean Square Error,RMSE)和絕對(duì)均值誤差(Mean Absolute Error,MAE),計(jì)算公式如下:
其中:τ是測(cè)試集中的評(píng)分?jǐn)?shù)據(jù)集合;|τ|表示測(cè)試集中存在評(píng)分的用戶物品對(duì)的數(shù)量;是根據(jù)本文方法對(duì)τ中的用戶物品評(píng)分預(yù)測(cè)。RMSE和MAE越小,預(yù)測(cè)性能越好。
為了驗(yàn)證本文提出的多重社交網(wǎng)絡(luò)的深度學(xué)習(xí)方法對(duì)推薦性能的改善,本實(shí)驗(yàn)比較了GNNMSR 和現(xiàn)有主流社會(huì)化推薦方法的結(jié)果,主要比較方法包括以下幾種:
1)概率矩陣分解(Probabilistic Matrix Factorization,PMF)。它是一種基本推薦方法[16],僅使用用戶物品矩陣進(jìn)行推薦。
2)上下文矩陣分解(Context Matrix Factorization,Context MF)方法[15]。該方法超越了傳統(tǒng)的概率矩陣分解,在PMF 的后驗(yàn)分布中增加了項(xiàng)-用戶項(xiàng)發(fā)送方矩陣、用戶-用戶偏好相似度矩陣、項(xiàng)-內(nèi)容相似度矩陣。
3)基于社會(huì)信任集成的協(xié)同主題回歸(Collaborative Topic Regression with Social Trust Ensemble,CTRSTE)[30]。該方法提出了與社會(huì)信任集合的協(xié)作主題回歸,即通過外聯(lián)朋友關(guān)系來改善后驗(yàn)分布,并在PMF 中結(jié)合了隱狄利克雷分配(Latent Dirichlet Allocation,LDA)模型。
4)社交網(wǎng)絡(luò)正則(Social Regularization,SoReg)[31]。它定義了正則化規(guī)范來捕獲社交關(guān)系,它結(jié)合了用戶-物品矩陣,用戶-用戶相似度矩陣和外鏈朋友關(guān)系(友誼關(guān)系矩陣)。
5)基于信任的奇異值分解方法(Trust Singular Value Decomposition,TrustSVD)[30]。該方法結(jié)合了用戶項(xiàng)矩陣和信任鏈接(信任關(guān)系矩陣)進(jìn)行推薦。本文通過用戶之間的友好度和相似度來計(jì)算顯式信任關(guān)系,并將其添加到融合隱式參數(shù)的奇異值分解(Singular Value Decomposition++,SVD++)模型中。
6)用戶評(píng)分行為分析方法(Exploring Users’Rating Behaviors,EURB)[24]。該方法捕獲了三個(gè)基于用戶-用戶關(guān)系的SVD++模型:第一個(gè)關(guān)系是興趣相似度;第二個(gè)關(guān)系是行為相似度,表示評(píng)分和天數(shù)的距離;第三個(gè)關(guān)系是人際評(píng)價(jià)行為的擴(kuò)散。社會(huì)關(guān)系正規(guī)化術(shù)語使用三個(gè)關(guān)系的平均值。
7)符號(hào)社交網(wǎng)絡(luò)推薦(Recommendations in Signed Social Network,RecSSN)[31]。該方法在矩陣分解框架下捕獲簽名社交網(wǎng)絡(luò)的本地和全局信息。朋友圈和敵對(duì)圈在社會(huì)正規(guī)化術(shù)語中都用不同的符號(hào)表示。
本實(shí)驗(yàn)使用Pytorch 作為開發(fā)平臺(tái),涉及到的參數(shù)有特征維度k,多社交網(wǎng)絡(luò)融合MLP 網(wǎng)絡(luò)的層數(shù)q1,用戶總特征融合MLP 網(wǎng)絡(luò)的層數(shù)q2,用戶物品評(píng)分模型MLP 網(wǎng)絡(luò)層數(shù)p,以及其他的網(wǎng)絡(luò)參數(shù)。
通過實(shí)驗(yàn)比較了k=5,10,15,20時(shí)在GNNMSR 上的精度,選擇的平均最優(yōu)的10 和20 作為主要參數(shù)與其他方法進(jìn)行比較。通過比較不同層數(shù)下的精度,選擇q1=q2=10、p=15 作為最終的網(wǎng)絡(luò)層數(shù)。嵌入的維度(embedding size)分別選擇8、16、32、64、128、256 進(jìn)行實(shí)驗(yàn),選擇了64 作為最終的維度。其他的參數(shù)也通過實(shí)驗(yàn)進(jìn)行比較,batch size 取64,學(xué)習(xí)率取0.001,激活函數(shù)采用線性整流線性單元(Rectified Linear Unit,ReLU)能取得最優(yōu)的效果。
本文評(píng)估每種算法的精度的標(biāo)準(zhǔn)為MAE和RMSE。通過選擇不同規(guī)模的訓(xùn)練集(30%,50%,80%)和不同的潛在因子維數(shù)k(k=10,20)進(jìn)行了多次實(shí)驗(yàn),比較結(jié)果如表2~3所示。
表2 豆瓣電影測(cè)試數(shù)據(jù)上的性能比較Tab.2 Performance comparison on Douban Movie test data
根據(jù)實(shí)驗(yàn)結(jié)果分析發(fā)現(xiàn),利用社交網(wǎng)絡(luò)信息進(jìn)行推薦在RMSE 和MAE 方面改善顯著。例如,與基本PMF 相比,任何一種方法都可以提高較多的準(zhǔn)確率;并且,社會(huì)關(guān)系的應(yīng)用越豐富,算法的性能往往越好。這就是為什么TrustSVD、EURB、RcSSN在大多數(shù)情況下勝過PMF、CTRSTE、SoReg的原因。
本文提出的GNNMSR 方法比其他對(duì)比方法獲得更好的效果。與其他對(duì)比方法中表現(xiàn)最佳的結(jié)果相比,豆瓣電影和Yelp 中GNNMSR 分別平均降低了0.03 和0.1 的絕對(duì)MAE 指標(biāo)值,主要原因是GNNMSR 利用社交信息的多樣性來改進(jìn)推薦。
Yelp 數(shù)據(jù)集的性能明顯弱于豆瓣電影,這是因?yàn)閅elp 數(shù)據(jù)集中物品得分的平均方差大于豆瓣電影,這導(dǎo)致得分預(yù)測(cè)值的高斯分布更加平緩。因此,RMSE 和MAE 指標(biāo)很大程度上取決于數(shù)據(jù)集本身。
訓(xùn)練集越大,預(yù)測(cè)效果越好。值得注意的是,當(dāng)訓(xùn)練集的比例等于50%時(shí),GNNMSR 達(dá)到了最佳性能。實(shí)驗(yàn)結(jié)果表明,GNNMSR 可以通過利用多個(gè)社交網(wǎng)絡(luò)來減少對(duì)評(píng)級(jí)先驗(yàn)的依賴。此外,當(dāng)特征維度k變大時(shí),精度并沒有明顯的提升,尤其是訓(xùn)練樣本比例較大時(shí),部分MAE 和RMSE 指標(biāo)反而在高維度k下較差,這說明特征維度并非越大越好,k=10已經(jīng)能取得較好的效果。
表3 Yelp測(cè)試數(shù)據(jù)上的性能比較Tab.3 Performance comparison on Yelp test data
圖神經(jīng)網(wǎng)絡(luò)(GNN)可以通過節(jié)點(diǎn)、邊及對(duì)應(yīng)的拓?fù)浣Y(jié)構(gòu)直接反映推薦系統(tǒng)中實(shí)體及其相互間的關(guān)系,計(jì)算復(fù)雜度低,適用歸納學(xué)習(xí)任務(wù)的特性,因此受到學(xué)術(shù)界和產(chǎn)業(yè)界的廣泛關(guān)注。本文將圖神經(jīng)網(wǎng)絡(luò)和多重網(wǎng)絡(luò)進(jìn)行嵌入,能充分利用歷史評(píng)價(jià)數(shù)據(jù)和用戶之間的多重關(guān)聯(lián)信息,有效地提升了推薦效果,說明了多重社交網(wǎng)絡(luò)對(duì)推薦精度的疊加效應(yīng)。然而,本文主要還是針對(duì)靜態(tài)數(shù)據(jù)的推薦,而實(shí)際上用戶關(guān)系、用戶評(píng)分?jǐn)?shù)據(jù)都是在實(shí)時(shí)變化的,所對(duì)應(yīng)的特征矩陣U和C也應(yīng)隨之變化,如何通過圖神經(jīng)網(wǎng)絡(luò)進(jìn)行動(dòng)態(tài)社會(huì)化推薦將是下一步研究的重點(diǎn)。