周華平,周明
(安徽理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽 淮南 232001)
在當(dāng)前信息爆炸的時(shí)代,人們利用大數(shù)據(jù)這把雙刃劍,在掌握信息、豐富知識、開闊眼界的同時(shí),也被大量的“泡沫數(shù)據(jù)”所影響,被無效的信息所包圍,無從下手,無從關(guān)注。此外,用戶所關(guān)心的信息被嚴(yán)重封鎖,無法獲得。目前,緩解這些問題是當(dāng)務(wù)之急。正是在這種情況下,推薦系統(tǒng)應(yīng)運(yùn)而生,以處理“泡沫數(shù)據(jù)”對用戶的負(fù)面影響。社會推薦系統(tǒng)在幫助目標(biāo)用戶尋找潛在的感興趣的項(xiàng)目方面有著廣泛的應(yīng)用。在社交推薦領(lǐng)域,由項(xiàng)目與項(xiàng)目、項(xiàng)目與用戶、用戶與用戶組成的多方互動可以用圖形來表達(dá),項(xiàng)目和用戶是節(jié)點(diǎn),互動是邊。因此,推薦系統(tǒng)與更豐富的社會網(wǎng)絡(luò)相結(jié)合,利用它們之間傳播的信息提高推薦的相關(guān)性和有效性。
社會化推薦考慮通過采用用戶感興趣的內(nèi)容,即用戶關(guān)系鏈中的推薦內(nèi)容來進(jìn)行推薦。近年來,Guo等人[1]研究了物品特征之間的關(guān)聯(lián)性,并將用戶特征空間和物品特征空間抽象為兩個(gè)圖網(wǎng)絡(luò),以提高社交推薦的準(zhǔn)確性。Liu等人[2]提出了一個(gè)同時(shí)發(fā)現(xiàn)多種復(fù)雜關(guān)系的物品關(guān)系圖神經(jīng)網(wǎng)絡(luò)[3],并為不能直接獲得的物品或用戶信息提供了一個(gè)解決方案。關(guān)于關(guān)系,實(shí)體之間也存在高階關(guān)系。許多研究考慮整合知識圖譜和用戶-項(xiàng)目圖譜來捕捉這些高階關(guān)系。鑒于圖神經(jīng)網(wǎng)絡(luò)的力量,它們被納入了本文的框架。
自注意力機(jī)制被應(yīng)用于模擬行為之間的相互作用。Zhou等人[4]指出,在電子商務(wù)領(lǐng)域中,用戶可能會進(jìn)行多種行為,如瀏覽、購買和收藏產(chǎn)品,使用優(yōu)惠券,點(diǎn)擊廣告,搜索關(guān)鍵詞,撰寫評論或觀看商家提供的產(chǎn)品介紹視頻等,因而從一個(gè)更全面的角度了解用戶行為,能為我們提供不同的視角。然而,面對用戶行為的異質(zhì)性和多樣性,現(xiàn)有的推薦模型難以提供更準(zhǔn)確的推薦結(jié)果。具體而言,自注意力機(jī)制用于將用戶每個(gè)行為的客觀表示轉(zhuǎn)化為其內(nèi)部記憶中的表示??陀^表示是指當(dāng)用戶A和B執(zhí)行相同的行為時(shí),行為本身的表示可能是相同的,但在A和B的記憶中,該行為的重要程度和清晰度可能完全不同,因?yàn)锳和B的其他行為是不同的。
結(jié)合以上背景,本文提出了一種全新的圖神經(jīng)網(wǎng)絡(luò)社交推薦系統(tǒng)。
-在特征融合階段,為全局特征的融合引入了一個(gè)自我關(guān)注的機(jī)制。
-提出使用門控遞歸單元對用戶和項(xiàng)目的時(shí)間交互歷史進(jìn)行建模。
用U={u1,u2,…,um}和V={v1,v2,…,vn}分別表示用戶和項(xiàng)目的集合,其中m和n分別為用戶和項(xiàng)目的數(shù)量。L∈Li*j表示為用戶與項(xiàng)目的交互圖。用戶ui對相應(yīng)項(xiàng)目vj給出的評分值用來表示eij。如果用戶不對項(xiàng)目進(jìn)行評分或兩者沒有互動,則eij=0。一般來說,矩陣L是稀疏的。將用戶社交圖定義為PU=(U,QU),其中QU作為邊集連接用戶。
圖1 GFTI-Rec的總體框架
輸入層對原始數(shù)據(jù)進(jìn)行預(yù)處理,然后構(gòu)建項(xiàng)目關(guān)系圖,進(jìn)一步將預(yù)處理后的數(shù)據(jù)轉(zhuǎn)換為用戶和項(xiàng)目嵌入,之后通過本文新提出的門控遞歸單元網(wǎng)絡(luò)進(jìn)行聚合,獲得用戶的潛在因子偏差,項(xiàng)目建模被用來學(xué)習(xí)項(xiàng)目的潛在因子偏差。最后,潛在因素偏差通過輸出層輸出,最終得到預(yù)測分?jǐn)?shù)。
(1)
(2)
Rt=σ(wirxt+ht-1whr+br)
(3)
Zt=σ(wizxt+ht-1whz+bz)
(4)
接下來需要通過對神經(jīng)單元進(jìn)行門控來計(jì)算候選的隱藏狀態(tài)pt,以便計(jì)算隱藏狀態(tài)qt:
pt=tanh(wipxt+(Rt?ht-1)whp+bh)
(5)
qt=pt?(1-Zt)+ht-1?Zt
(6)
其中wip和Rt表示權(quán)重,bh表示偏差向量。
為了提高模型的性能,我們使用雙向門控遞歸單元,如圖2所示,輸出是由全連接層的激活函數(shù)sigmoid得到的:
圖2 雙向門控循環(huán)單元示意圖
由于縫合操作是由前向和后向傳播的結(jié)果結(jié)合表示,所以最終的節(jié)點(diǎn)表示為:
(7)
由于自注意機(jī)制可以有效地捕捉全局特征,它解決了一般注意力機(jī)制只能局部學(xué)習(xí)的殘缺問題。同時(shí),自注意機(jī)制不僅可以自動學(xué)習(xí)用戶自己的特征,還可以提供物品屬性的全面表述,見圖3。
使用的自注意機(jī)制的輸入由Q,K,V組成。這里Q,K,V的輸入由用戶和項(xiàng)目信息的嵌入向量組成,然后加權(quán)得到最終輸出:
(8)
(9)
(10)
其中,σ用于表示非線性激活函數(shù),w和b分別表示權(quán)重和偏差,X(i)表示聚合的用戶意見感知互動。
(11)
最終得到的聚合函數(shù)如下:
(12)
(13)
其中,γ用于表示非線性激活函數(shù),w和b分別表示權(quán)重和偏差,D(i)表示聚合的鄰居意見感知的相互作用。
(14)
其中g(shù)output是一個(gè)三層神經(jīng)網(wǎng)絡(luò)的多層感知器。
從評級預(yù)測的角度來評估我們提出的模型。讓α為數(shù)據(jù)集中的所有評級的集合,α={(i,j):eij≠0}。對于評級預(yù)測的任務(wù),有一個(gè)常用的目標(biāo)函數(shù):
(15)
3.1.1 數(shù)據(jù)集 我們將模型分別放在Ciao和Epinions數(shù)據(jù)集上進(jìn)行評估,這兩個(gè)數(shù)據(jù)集都取自流行的社交網(wǎng)站,都包含了用戶、項(xiàng)目、評分和社交關(guān)系等組成部分,每個(gè)社交數(shù)據(jù)項(xiàng)的 “關(guān)注者數(shù)據(jù)指數(shù)”和“關(guān)注者指數(shù)”都包括在內(nèi)(表1)。
表1 Ciao數(shù)據(jù)集和Epinions數(shù)據(jù)集的特點(diǎn)
3.1.2 評價(jià)指標(biāo) 在比較本模型與其他比較模型的評分預(yù)測性能時(shí),我們使用兩個(gè)指標(biāo)來評估推薦算法的預(yù)測準(zhǔn)確性,即MAE和RMSE。
(16)
(17)
其中,測試集中所有得分邊的權(quán)重用yi表示,測試集中每條得分邊的預(yù)測權(quán)重用xi表示。
3.1.3 基線模型 傳統(tǒng)的推薦算法:PMFcite[5],SocialMF[6],它只使用用戶和項(xiàng)目的潛在因素進(jìn)行建模。
基于傳統(tǒng)方法的社會推薦:SoReC[7],TrustMF[8],在原先評分信息之上使用社會信息,即同時(shí)使用評分信息和社會網(wǎng)絡(luò)信息。
基于深度學(xué)習(xí)的推薦算法:Deep-SoR[9],一種深度社交推薦。
基于圖神經(jīng)網(wǎng)絡(luò)的社交推薦算法: GraphRec[1],GDSRec[10]。
表2 對不同方法的預(yù)測性能進(jìn)行評級
3.1.4 參數(shù)設(shè)置 我們使用Python 3.8、PyTorch 1.7和Cuda 11作為算法構(gòu)建的環(huán)境。對于每個(gè)數(shù)據(jù)集的參數(shù)設(shè)置,0.8被用作學(xué)習(xí)參數(shù)的訓(xùn)練集,0.1被用作優(yōu)化的驗(yàn)證集,最后0.1被用作測試集。對于嵌入大小,我們測試了[8,16,32,64,128,256]的值,而學(xué)習(xí)率在[ 0.0005,0.001,0.005,0.01,0.05,0.1]之間。對于Bi-Gru來說,層數(shù)不僅決定了模型的復(fù)雜性,也決定了對模型誤差的影響,我們將其設(shè)置為[1,2,3]。
3.2.1 自注意力機(jī)制的影響 本文分析和比較了以下2個(gè)模型的變體,以證明所提方法的有效性。
3.2.1.1 GFTI-Rec 使用一個(gè)自我注意機(jī)制來學(xué)習(xí)不同層次的信息(本文中的模型)。
3.2.1.2 GFTI-Rec-1 本文中的自我注意機(jī)制被一個(gè)由單層神經(jīng)網(wǎng)絡(luò)組成的注意網(wǎng)絡(luò)取代,以證明本文中使用的注意機(jī)制的有效性。
3.2.1.3 GFTI-Rec-2 禁用注意層,直接輸入上下文信息,以證明第1層的注意機(jī)制對模型在信息過濾中的作用。
圖4 自注意力機(jī)制對獲得潛在因子偏差的影響
自我注意α,β,γ:消除了三種自我注意機(jī)制,即通過項(xiàng)目聚合、社會聚合和用戶聚合分別對用戶的潛在因子偏差進(jìn)行建模,通過基于均值的項(xiàng)目聚合函數(shù)對項(xiàng)目空間用戶的潛在因子偏差進(jìn)行建模,基于均值的社會聚合函數(shù)對用戶的潛在因子偏差進(jìn)行建模,通過基于均值的項(xiàng)目聚合函數(shù)對項(xiàng)目空間用戶的潛在因子偏差進(jìn)行建模,基于均值的社會聚合函數(shù)對社會用戶的潛在因子偏差進(jìn)行建模。
3.2.2 雙向門控單元的影響 我們猜想,模型的復(fù)雜性可能由GRU的類型和GRU層的數(shù)量決定。為了避免過度擬合,我們分別研究了單層GRU、Bi-GRU和LSTM對模型誤差的影響。
從圖5中可以看出,Bi-GRU對數(shù)據(jù)集有較好的推薦作用,而層數(shù)過多則有較嚴(yán)重的過擬合現(xiàn)象,層數(shù)過少則削弱了模型的學(xué)習(xí)能力,如果使用單層GRU或LSTM,我們無法達(dá)到模型的最佳學(xué)習(xí)能力。
圖5 雙向門控循環(huán)單元對交互建模的影響
我們還研究了不同的超參數(shù)設(shè)置對我們的推薦算法有效性的影響:
(a) 迭代次數(shù)的影響;
(b) 不同批次大小的影響;
(c) 不同丟棄率下Dropout的影響。
圖6(a) 迭代次數(shù)對模型性能的影響
(a)實(shí)驗(yàn)結(jié)果表明,模型的性能隨著迭代次數(shù)的增加而變化,隨著迭代次數(shù)的增加,模型性能先增加后減少。迭代次數(shù)為4時(shí),模型性能最佳。如果迭代次數(shù)太少,模型訓(xùn)練就不能收斂,出現(xiàn)欠擬合。
圖7(b) 不同的批次大小對Ciao和Epinions數(shù)據(jù)集的影響
圖8(c) 在Ciao和Epinions數(shù)據(jù)集上不同丟棄率的Dropout的影響
(b)隨著批處理量的增加,模型的性能并沒有變好,而相對較小的批處理量,再加上一點(diǎn)隨機(jī)性,就相當(dāng)于在學(xué)習(xí)過程中加入了噪聲,從某種意義上說,會有一些典范效應(yīng)。
(c)在大多數(shù)非線性激活單元的輸出和GRU層之間,通過增加一個(gè)輟學(xué)層和調(diào)整全局統(tǒng)一輟學(xué)概率,可以使模型在抑制過擬合方面有更好的表現(xiàn)。輟學(xué)概率的變化決定了模型的最佳預(yù)測誤差,當(dāng)輟學(xué)概率在0.5時(shí),模型將在預(yù)測誤差和過擬合之間達(dá)到良好的平衡當(dāng)輟學(xué)概率在0.5時(shí),模型將在預(yù)測誤差和過擬合之間達(dá)到良好的平衡。
可以看出,Epinions數(shù)據(jù)集比Ciao數(shù)據(jù)集有更多的用戶項(xiàng)目互動,而且用戶對特定項(xiàng)目的興趣往往會隨著時(shí)間而波動。因此,像PMF和NCF這樣僅僅利用評級信息的模型在Ciao數(shù)據(jù)集上的表現(xiàn)稍好,但像SoRec和Graphrec這樣利用數(shù)據(jù)集的社會關(guān)系的模型在Epinions數(shù)據(jù)集上的表現(xiàn)稍好。相對而言,我們的方法優(yōu)于以前的推薦模型,因?yàn)樗Y(jié)合了社會數(shù)據(jù),并更廣泛地利用了數(shù)據(jù)本身的全局特征。