李政學,李枝名,彭德中,陳杰
(四川大學計算機學院,四川 成都 610065)
社交網(wǎng)絡是一種基于互聯(lián)網(wǎng)的以人類社交為核心的網(wǎng)絡服務形式。隨著移動設備的普及和互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,社交網(wǎng)絡在人類生活中占據(jù)了重要地位[1]。人們可以通過社交網(wǎng)絡平臺上傳圖片、音頻等,也可以與社交網(wǎng)絡上的其他用戶分享感興趣的話題[2]。由于社交網(wǎng)絡的開放性和連接性,許多企業(yè)家也會通過社交網(wǎng)絡進行商業(yè)活動[3]。在這些社交網(wǎng)絡平臺中,了解用戶的興趣愛好、發(fā)現(xiàn)他們擅長的領域,然后將興趣相同的人互相推薦為好友或者給他們推薦類似的產(chǎn)品,這些都可以提升社交網(wǎng)絡平臺的用戶體驗[4]。由于確定用戶的愛好專長是社交網(wǎng)絡中的用戶分類任務,因此用戶分類一直是社交網(wǎng)絡的研究熱點之一。
社交網(wǎng)絡平臺通常包括以下功能:用戶分享與自己興趣愛好相關(guān)的內(nèi)容,社交平臺針對內(nèi)容的性質(zhì)創(chuàng)建對應的社區(qū),用戶根據(jù)自己的喜好關(guān)注不同的社區(qū),用戶訂閱其他用戶發(fā)布的內(nèi)容。因此,用戶分享的內(nèi)容是用戶的屬性之一,用戶根據(jù)他們的興趣愛好加入相應的社區(qū)。社交網(wǎng)絡用戶分類即通過用戶自身的屬性、關(guān)注關(guān)系,預測出他們的興趣愛好。例如,一個剛注冊的新用戶還未加入任何社區(qū),但他關(guān)注了另一個老用戶,社交平臺發(fā)現(xiàn)老用戶加入了旅行社區(qū),并且新老用戶發(fā)表了單車相關(guān)的內(nèi)容,于是平臺預測新用戶的愛好是單車旅行,便可以邀請他加入旅行社區(qū)或者推薦相關(guān)的產(chǎn)品,這樣便可以提高用戶的滿意度。
在社交網(wǎng)絡中的每個用戶都可以視為一個節(jié)點,用戶之間的關(guān)系可以視為節(jié)點之間的邊,因此社交網(wǎng)絡中的用戶分類即可視為圖中的節(jié)點分類[5]。由用戶和用戶之間的關(guān)系構(gòu)成的社交網(wǎng)絡數(shù)據(jù)結(jié)構(gòu)是一個典型的圖數(shù)據(jù)結(jié)構(gòu),如何有效地利用節(jié)點的屬性信息以及網(wǎng)絡的結(jié)構(gòu)信息對節(jié)點進行分類是一個關(guān)鍵的問題。另外,在社交網(wǎng)絡用戶分類的應用場景中,圖類數(shù)據(jù)集具有低同質(zhì)率的特點。圖中的同質(zhì)性指的是任意2個相鄰節(jié)點的相似性,即如果它們的標簽相同,則2個節(jié)點相似[6]。同質(zhì)率是標簽相同的鄰居節(jié)點對占所有鄰居節(jié)點對的比例,同質(zhì)率的高低決定了圖是同質(zhì)的還是異質(zhì)的。
基于隨機游走的方法在對圖類數(shù)據(jù)進行節(jié)點分類時取得了較好的效果[7]。PEROZZI等[8]提出的DeepWalk是一種學習網(wǎng)絡中節(jié)點隱表達式的算法,首先通過隨機游走獲取網(wǎng)絡中的節(jié)點序列,然后利用Word2Vec的思想將節(jié)點變?yōu)榈途S向量[9],最后用于分類。但是,DeepWalk存在以下不足:1)僅利用了圖的結(jié)構(gòu)信息,但沒有使用節(jié)點的屬性信息;2)游走是一種均勻的游走,不適合處理同質(zhì)率較低的圖數(shù)據(jù)集。為了解決DeepWalk只能隨機采樣的缺陷,GROVER等[10]提出在隨機游走時采用有偏策略的Node2Vec,通過p、q2個超參數(shù)來控制訪問節(jié)點的順序是偏向于深度優(yōu)先還是廣度優(yōu)先。該方法雖然能夠在一定程度上控制隨機游走的有偏性,但仍然存在沒有利用節(jié)點自身屬性信息的缺陷。
圖卷積神經(jīng)網(wǎng)絡(GCN)在處理圖這類非歐氏數(shù)據(jù)時具有明顯的優(yōu)勢。普通的卷積神經(jīng)網(wǎng)絡(CNN)在處理圖像這類歐氏數(shù)據(jù)時,利用它們的平移不變性,通過卷積核來提取原始數(shù)據(jù)的特征,但圖類數(shù)據(jù)具有不規(guī)則性,所以傳統(tǒng)的CNN無法處理這類非歐氏數(shù)據(jù)。GCN首先通過圖上的傅里葉變換和卷積定理定義了譜域上的卷積核,然后通過一階切比雪夫多項式近似來減少計算量,最后定義了圖卷積。GILMER等[11]提出的消息傳遞神經(jīng)網(wǎng)絡(MPNN)將圖神經(jīng)網(wǎng)絡分為消息傳遞和讀出2個階段。GCN針對節(jié)點級的任務主要包括消息傳遞階段的聚合鄰居和更新狀態(tài)2個步驟,將得到的信息進行非線性映射,增強模型的表達能力。相比于傳統(tǒng)的神經(jīng)網(wǎng)絡只能將節(jié)點屬性信息作為輸入[12],無法有效地處理圖類數(shù)據(jù)的結(jié)構(gòu)信息,GCN的優(yōu)勢在于同時考慮了節(jié)點的屬性信息和圖的結(jié)構(gòu)信息[13]。相比于傳統(tǒng)的卷積神經(jīng)網(wǎng)絡,GCN的優(yōu)勢在于能夠利用圖上的卷積算子對非歐氏的圖類數(shù)據(jù)進行特征提取。
GCN模型將卷積算子擴展到圖類數(shù)據(jù)上[14],使節(jié)點分類在同質(zhì)率高的圖數(shù)據(jù)集中取得了較好的效果。圖注意力(GAT)模型通過引入注意力機制[15],能夠?qū)W習更多的圖結(jié)構(gòu)信息,在節(jié)點分類任務中取得了更好的效果。但是上述方法都存在只適用于高同質(zhì)率圖數(shù)據(jù)集的缺陷,在處理低同質(zhì)率數(shù)據(jù)集時效果會變差。例如,GCN會將各鄰居節(jié)點的特征聚合,然后使鄰居節(jié)點的表達式變得相似。針對低同質(zhì)率即大多數(shù)鄰居節(jié)點與中心節(jié)點都不屬于同一類節(jié)點的情況,GCN會使異類節(jié)點的表達式也變得相似,導致分類效果較差。HE等[16]提出的塊建模引導的圖卷積神經(jīng)網(wǎng)絡(BMGCN)通過構(gòu)造塊矩陣來有區(qū)分地聚合同質(zhì)圖或異質(zhì)圖的特征信息,在處理低同質(zhì)率數(shù)據(jù)集時分類效果較好,但是該方法僅是從聚合信息的角度出發(fā),并沒有從節(jié)點表達式的角度考慮。
對比學習是一種自監(jiān)督的學習方式[17],在沒有標簽的情況下,使模型觀察數(shù)據(jù)的相似和差異來學習數(shù)據(jù)的高級特征。YOU等[18]通過最大化子圖的不同增廣版本的相似性來學習節(jié)點的表達式,但該方法未用節(jié)點級的樣本進行對比。XU等[19]提出的對比學習模型保證了多視圖公共特征的一致性,但多視圖的對比并不適用于單視圖的圖類數(shù)據(jù)集。
針對社交網(wǎng)絡中圖類數(shù)據(jù)集同質(zhì)率較低的問題,本文提出基于特征對比學習的圖卷積神經(jīng)網(wǎng)絡(CLGCN)模型。CLGCN的特征對比學習模塊從節(jié)點級的樣本出發(fā),將同類、異類的鄰居節(jié)點對分別定義為正、負樣本對,通過最小化特征對比的損失函數(shù),使得同類節(jié)點的特征相似性更高及異類節(jié)點的特征可區(qū)分性更強。
本節(jié)介紹圖卷積神經(jīng)網(wǎng)絡和對比學習的相關(guān)工作以及常見的相似性衡量方法。
近年來,由于圖神經(jīng)網(wǎng)絡模型具有能夠有效處理圖類數(shù)據(jù)的優(yōu)勢,因此它在處理圖類節(jié)點分類任務時也越來越受歡迎。KIPF等[14]在此基礎上提出了GCN,將拉普拉斯矩陣特征分解后進行的傅里葉變換定義為了圖上的卷積算子,并通過切比雪夫的一階近似減少了計算量。
經(jīng)典的GCN處理半監(jiān)督節(jié)點分類任務的過程如式(1)所示:
(1)
針對半監(jiān)督學習的節(jié)點分類任務,GCN的最后一層(K)如式(2)所示:
(2)
其中:Z為用于分類的節(jié)點表達式。
該節(jié)點分類任務采用交叉熵作為損失函數(shù)[20],如式(3)所示:
Lgcn=CrossEntropy(Yij,Zij)=
(3)
其中:Y表示訓練集的真實標簽矩陣;C表示類別的數(shù)量。
CLGCN模型受到BMGCN[16]的啟發(fā),具體過程如下:
1)通過多層感知機(MLP)獲取偽標簽,如式(4)所示:
L=Softmax(σ(MLP(X)))
(4)
其中:X表示節(jié)點特征。
2)為了增強偽標簽的可靠性,該模型用訓練集的真實標簽先對MLP進行預訓練,用交叉熵作為預訓練階段的損失函數(shù),如式(5)所示:
(5)
其中:Ttrain表示訓練集中所有節(jié)點的集合;Yi表示節(jié)點vi的真實標簽;Li表示節(jié)點vi的偽標簽。
3)在得到偽標簽L后,將偽標簽與真實標簽相結(jié)合得到Y(jié)c和塊矩陣M,分別如式(6)和式(7)所示:
Yc={Yi,Lj|?vi∈Ttrain,?vj?Ttrain}
(6)
(7)
其中:A是鄰接矩陣;E是與Yc形狀相同的全1矩陣;塊矩陣M反映了任意2個類別之間有邊連接的概率。
4)構(gòu)造塊相似性矩陣N,如式(8)所示。N衡量了M中類別之間的相似度,借助N構(gòu)造新的鄰接矩陣,如式(9)所示。利用塊矩陣引導圖卷積,如式(10)所示。
N=MMT
(8)
(9)
(10)
5)采用交叉熵作為損失函數(shù)。損失函數(shù)的計算公式如式(11)所示:
(11)
對比學習在無監(jiān)督學習中進行特征學習和數(shù)據(jù)增廣時發(fā)揮著重要的作用。例如,XU等[19]在多視圖聚類的任務中進行特征對比學習,將多視圖樣本中的任意2個不同視圖的相同特征對作為正樣本對,將其余的特征對作為負樣本對,該方法減少了不同視圖冗余信息的干擾,保證了公共特征的一致性。
在半監(jiān)督學習的節(jié)點分類任務中,由于只有有限的數(shù)據(jù)具有標簽,對比學習在圖卷積神經(jīng)網(wǎng)絡中也可以發(fā)揮更好的作用。例如:VELICKOVIC等[21]提出的深度圖信息最大化(DGI)將圖中局部和全局的表示式進行對比,豐富了節(jié)點的表達;SUN等[22]將DGI擴展到圖級別上,對圖進行分類;THAKOOR等[23]利用對比學習的思想隨機刪除圖中的邊來進行數(shù)據(jù)增廣。
常見的衡量向量相似性的方法有歐氏距離、集合距離、余弦相似性等。假設有2個向量a=(a1,a2)和b=(b1,b2),則它們之間歐氏距離的計算公式如下:
(12)
歐氏距離是用來衡量兩點之間的直線距離的方法,它只適用于歐氏數(shù)據(jù),并且在數(shù)據(jù)維度較高時容易造成維度災難的問題[24],圖類數(shù)據(jù)屬于非歐氏數(shù)據(jù),因此歐氏距離并不適用。
基于集合距離的方法有Jaccard指數(shù)、Dice指數(shù)等。Jaccard指數(shù)的計算公式如下:
(13)
其中:A、B分別表示2類向量的集合,這類方法適用于衡量集合之間的相似性。
本文是以單個向量為對象,衡量它們兩兩之間的相似性,因此基于集合距離的方法并不適用。
衡量a=(a1,a2)和b=(b1,b2)之間余弦相似性的計算公式如下:
(14)
其中:〈·,·〉表示內(nèi)積運算。
余弦相似性是計算向量之間夾角的余弦值,從方向的角度來衡量向量之間的相似性,因此適用于本文中的圖類數(shù)據(jù)。
本節(jié)首先給出社交網(wǎng)絡用戶分類的問題描述,然后介紹CLGCN模型。
一個社交網(wǎng)絡的圖可以用G=(V,E,X,A)來表示,其中,V表示社交網(wǎng)絡中的節(jié)點,即用戶集合,E表示節(jié)點之間的邊,即用戶之間的相互關(guān)注,X∈n×F表示節(jié)點特征向量構(gòu)成的矩陣,A∈{0,1}n×n表示社交網(wǎng)絡中所有節(jié)點之間關(guān)系的鄰接矩陣,n=|V|表示節(jié)點的數(shù)量,F表示節(jié)點特征向量的維度。通常地,將社交網(wǎng)絡中的用戶分類視為半監(jiān)督的節(jié)點分類問題。在訓練集中已知標簽的節(jié)點集合Ttrain表示已經(jīng)明確喜好的老用戶,對應的標簽集合用Y∈n×C表示。在測試集中未知標簽的節(jié)點集合Ttest表示未明確喜好、剛剛注冊的新用戶。社交網(wǎng)絡用戶分類即通過用戶之間的關(guān)注關(guān)系、用戶自身屬性,預測新用戶的興趣愛好。
CLGCN模型結(jié)構(gòu)如圖1所示,主要包括預訓練、圖卷積和對比學習3個部分:第1個部分先通過預訓練獲取未知標簽節(jié)點的偽標簽,再將偽標簽與真實標簽組合;第2個部分先通過結(jié)構(gòu)相似性矩陣構(gòu)造新的鄰接矩陣,再進行圖卷積;第3個部分有7個節(jié)點,其中,0號節(jié)點為中心節(jié)點,其余1~6號節(jié)點為鄰居節(jié)點,1號節(jié)點與0號節(jié)點為同類,其余節(jié)點與0號節(jié)點為異類,同類節(jié)點構(gòu)成的節(jié)點對作為正樣本,例如〈v0,v1〉,異類節(jié)點構(gòu)成的節(jié)點對作為負樣本,例如〈v0,v6〉,以此選取所有的正負樣本來構(gòu)造特征對比學習的損失函數(shù)??偟膿p失函數(shù)由3個部分的損失函數(shù)組成。
圖1 CLGCN模型結(jié)構(gòu)Fig.1 Structure of CLGCN model
2.2.1 基于相似性矩陣的圖卷積
1)通過預訓練得到的偽標簽矩陣L與真實矩陣Y組成組合標簽矩陣Yc,如式(15)所示。通過Yc∈n×C可以構(gòu)造一個塊矩陣M∈C×C,M在一定程度上描述了圖中各類的結(jié)構(gòu)特征,即M矩陣中每一行的向量表示了該類的結(jié)構(gòu)信息,如式(16)所示。
Yc={Li,Yj|?vi?Ttrain,?vj∈Ttrain}
(15)
(16)
其中:A∈n×n為鄰接矩陣;Mij表示第i類中的節(jié)點與第j類中的節(jié)點相連的邊數(shù)。
2)在得到塊矩陣M后,由于其每行反映了圖中各類的結(jié)構(gòu)信息,于是可以用它構(gòu)造一個類別相似性矩陣,用于衡量類與類之間結(jié)構(gòu)的相似性,本文采用余弦相似性來衡量圖中各類之間的相似度,如式(17)所示:
Nij=|cos(Mi,Mj)|
(17)
類別相似性矩陣N衡量了類與類之間的相似性,同類和結(jié)構(gòu)相似類之間的節(jié)點應當傳播更多的信息。首先用偽標簽L和類別相似性矩陣N計算權(quán)重矩陣LNLT,然后用該權(quán)重矩陣來構(gòu)造更完善的新鄰接矩陣,新鄰接矩陣的作用是指導節(jié)點利用自身和鄰居的特征信息來更新自身的特征表達。新鄰接矩陣的構(gòu)造方式如式(18)所示:
(18)
其中:β是一個超參數(shù);I∈n×n是一個單位矩陣。
(19)
4)最后一層節(jié)點的特征表示如式(20)所示:
(20)
5)圖卷積部分的損失函數(shù)如式(21)所示:
(21)
2.2.2 鄰居節(jié)點對的特征對比學習
2)將圖中每個節(jié)點與自身類別相同、不同的鄰居節(jié)點對分別作為正、負樣本對,目的是使同類樣本的表達式相似性更高,異類樣本的表達式可區(qū)分性更強。此處,采用余弦相似性來衡量樣本表達式的相似程度,如式(22)所示:
(22)
其中:Zi是節(jié)點vi的最終表達式;〈·,·〉是內(nèi)積運算。
3)定義節(jié)點vi的鄰居節(jié)點對中正樣本對的相似性的和如式(23)所示,節(jié)點vi的鄰居節(jié)點對中負樣本節(jié)點對的相似性的和如式(24)所示。由此得到節(jié)點vi的對比學習損失函數(shù)如式(25)所示。
(23)
(24)
(25)
4)總的對比學習損失函數(shù)如式(26)所示,通過最小化損失函數(shù)式(26),鄰居節(jié)點對中正樣本對的相似性會更高,負樣本對的可區(qū)分性會更強。
(26)
可見,特征對比學習的引入可以有效減輕社交網(wǎng)絡數(shù)據(jù)集同質(zhì)率較低的問題對GCN模型的限制。
2.2.3 訓練過程
1)通過預訓練獲取所有節(jié)點的偽標簽L,此部分的損失函數(shù)如式(27)所示:
(27)
2)將偽標簽L與真實標簽Y相結(jié)合得到組合標簽Yc。
3)通過組合標簽Yc構(gòu)造衡量類別之間結(jié)構(gòu)相似性的矩陣N。
6)模型總的損失函數(shù)如式(28)所示:
Ltotal=Lmlp+Lgcn+λLcontrastive
(28)
其中:λ是人為設定的超參數(shù)。
算法1CLGCN模型訓練算法
輸入特征矩陣X∈n×F,鄰接矩陣A∈n×n,標簽矩陣Y∈ntrain×C
輸出節(jié)點表達式Z∈n×C
1) 通過式(15)和式(27)預訓練多層感知機獲得組合標簽Yc。
2) 通過式(16)計算M。
3) 通過式(17)計算相似性矩陣N。
5) 通過式(19)和式(20)進行圖卷積。
6) 通過式(22)~式(25)進行正負樣本對的特征對比。
7) 通過式(21)、式(26)、式(27)分別計算Lgcn、Lcontrastive、Lmlp。
8) 通過式(28)最小化L更新整個網(wǎng)絡的參數(shù)。
將CLGCN模型在3個同質(zhì)率較低的社交網(wǎng)絡數(shù)據(jù)集上進行節(jié)點分類實驗,并與其他先進的模型進行性能對比。
采用3個公開的社交網(wǎng)絡數(shù)據(jù)集BlogCatalog、Flickr和Uai2010。這3個數(shù)據(jù)集的信息統(tǒng)計如表1所示。
表1 數(shù)據(jù)集信息統(tǒng)計Table 1 Dataset information statistics
1)BlogCatalog數(shù)據(jù)集。BlogCatalog是一個在線的社交網(wǎng)絡平臺,許多用戶用它上傳博文,并且博主之間可以相互關(guān)注,博主之間的關(guān)注關(guān)系形成了一個社交網(wǎng)絡。BlogCatalog數(shù)據(jù)集用每個用戶博客中的關(guān)鍵字作為用戶的屬性信息,標簽來自用戶的興趣愛好,共劃分了6類節(jié)點。
2)Flickr數(shù)據(jù)集。Flickr是一個存放圖像和視頻的網(wǎng)站,用戶之間可以通過分享圖片和視頻來相互交流。Flickr數(shù)據(jù)集將用戶對圖片、視頻的興趣愛好的關(guān)鍵字作為屬性信息,將用戶所在的分組作為標簽,共劃分了9類節(jié)點。
3)Uai2010數(shù)據(jù)集。Uai2010數(shù)據(jù)集是一個用于社區(qū)檢測的網(wǎng)絡數(shù)據(jù)集,共有3 067個節(jié)點和28 311條邊。
將CLGCN與以下6種先進的用于節(jié)點分類的模型進行比較:
1)DeepWalk[8]。該模型是一種隨機游走和Word2Vec相結(jié)合的模型,通過隨機游走獲取節(jié)點序列,再通過Word2Vec獲取向量表達式,僅利用了圖的結(jié)構(gòu)信息。
2)GCN[14]。該模型是一種經(jīng)典的圖卷積神經(jīng)網(wǎng)絡模型,將節(jié)點的屬性信息和網(wǎng)絡的結(jié)構(gòu)信息作為輸入,通過聚合鄰居節(jié)點的信息來學習節(jié)點的表達式。
3)GAT[15]。該模型將自然語言處理中的注意力機制引入圖數(shù)據(jù)結(jié)構(gòu),通過計算節(jié)點之間邊的重要性,使得信息傳播更加有效。
4)正交圖卷積神經(jīng)網(wǎng)絡(OrthGCN)[25]。該模型是一種用于解決標準GCN過平滑問題而提出的改進模型,利用一種新穎的正交特征變換方式,提升了模型訓練過程的穩(wěn)定性。
5)MixHop[26]。該模型是一種針對標準GCN只能聚合低階鄰居信息而提出的改進模型,通過混合不同階數(shù)鄰居節(jié)點的特征表達,使傳遞的信息更加豐富。
6)BMGCN[16]。該模型通過計算圖數(shù)據(jù)集中類別之間的結(jié)構(gòu)相似性來引出塊矩陣,然后通過塊矩陣引導的圖卷積方法能較好地處理低同質(zhì)率的數(shù)據(jù)。
實驗的主要任務是對圖數(shù)據(jù)集中的節(jié)點進行半監(jiān)督分類,采用準確率作為評價指標。
實驗對社交網(wǎng)絡數(shù)據(jù)集進行半監(jiān)督節(jié)點分類,因此數(shù)據(jù)集分為已知標簽的訓練集、未知標簽的驗證集和測試集。BlogCatalog和Flickr數(shù)據(jù)集采用與GAug[27]中相同的劃分,訓練集占10%、驗證集占20%、測試集占70%。Uai2010數(shù)據(jù)集來源于AM-GCN[28],也同樣按照半監(jiān)督節(jié)點分類的慣例將其劃分為訓練集占10%、驗證集占20%、測試集占70%。
CLGCN模型是在BMGCN上進行修改并且引入特征對比學習得到的改進模型。CLGCN和BMGCN對BlogCatalog數(shù)據(jù)集進行訓練時:共有的隱藏層單元數(shù)設置為16、32、64、128、256、512,學習率設置為0.050、0.030、0.010、0.001和丟棄率(dropout)設置為0、0.1、0.2、0.3、0.4、0.5,CLGCN獨有的參數(shù)λ設置為0、0.1、0.3、0.5、0.7、0.9;對Flickr數(shù)據(jù)集進行訓練時,共有的隱藏層單元數(shù)設置為16、32、64、128、256、512,學習率設置為0.001 0、0.000 9、0.000 8、0.000 7、0.000 6、0.000 5、0.000 4、0.000 3、0.000 2、0.000 1和dropout設置為0、0.1、0.2、0.3、0.4、0.5,CLGCN獨有的參數(shù)λ設置為0.1、0.2、0.3、0.4、0.5、0.6、0.7、0.8、0.9、1.0;對Uai2010數(shù)據(jù)集進行訓練時,共有的隱藏層單元數(shù)設置為32、64、128、256、512,學習率設置為0.001 0、0.000 9、0.000 7、0.000 5、0.000 3、0.000 1和dropout設置為0、0.1、0.2、0.3、0.4、0.5,CLGCN獨有的參數(shù)λ設置為0.1、0.2、0.3、0.4、0.5、0.6、0.7、0.8、0.9、1.0。其他模型則是在參考原文獻中最佳參數(shù)的基礎上,對學習率、隱藏層單元數(shù)、dropout進行微調(diào)。
3.5.1 節(jié)點分類分析
表2展示了在3個低同質(zhì)率社交網(wǎng)絡數(shù)據(jù)集上的半監(jiān)督節(jié)點分類的實驗結(jié)果,其中最優(yōu)指標值用加粗字體標示,下同。由表2可以看出,CLGCN模型在BlogCatalog、Flickr和Uai2010 3個數(shù)據(jù)集上的準確率分別達到了93.5%、81.4%和67.9%,高于對比模型,具體表現(xiàn)為:基于隨機游走的DeepWalk由于只考慮圖類數(shù)據(jù)的結(jié)構(gòu)信息而忽略了節(jié)點的屬性信息,因此準確率較低;GCN和GAT同時考慮了圖結(jié)構(gòu)信息和節(jié)點屬性信息,準確率要高于DeepWalk,但存在無法有效處理低同質(zhì)率數(shù)據(jù)集的缺陷;MixHop同時聚合了低階和高階鄰居的特征信息,使學習的特征表達式更加豐富,因此準確率更高,但同樣無法有效處理低同質(zhì)率數(shù)據(jù)集;BMGCN通過計算出的塊矩陣來引導圖卷積,能夠較好地處理低同質(zhì)率數(shù)據(jù)集,準確率要高于GCN、GAT和MixHop;CLGCN將同類鄰居節(jié)點對作為正樣本對、異類鄰居節(jié)點對作為負樣本對及運用特征對比來處理低同質(zhì)率數(shù)據(jù)集,在3個數(shù)據(jù)集上的準確率均高于BMGCN。
表2 社交網(wǎng)絡節(jié)點分類結(jié)果Table 2 Results of the node classification of social networks %
3.5.2 參數(shù)分析
在BlogCatalog、Flickr和Uai2010 3個數(shù)據(jù)集上,分析GCN卷積層數(shù)、隱藏層單元數(shù)對CLGCN模型性能的影響。
1)GCN卷積層數(shù)。在隱藏層單元數(shù)、丟棄率、學習率等超參數(shù)不變的情況下,測試CLGCN中GCN卷積層數(shù)分別為1、2、3、4、5、6的情況下節(jié)點分類的準確率,如表3所示。
表3 在不同卷積層數(shù)下的CLGCN分類結(jié)果Table 3 Classification results of CLGCN with different numbers of convolutional layers
由表3可知,隨著卷積層數(shù)的增加,模型準確率逐漸提升,當卷積層數(shù)為3時,模型性能最好,但隨著卷積層數(shù)繼續(xù)增加,模型準確率會逐漸變差。這是因為GCN實際上是一個低通濾波器,層數(shù)過高會導致過平滑問題。原始GCN模型超過2層性能就會急劇下降,而CLGCN在4層卷積層時仍能保持較好的性能,這是因為特征對比模塊使異類節(jié)點對的表達特征可區(qū)分性更強,在一定程度上緩解了CLGCN中的過平滑問題。
2)隱藏層單元數(shù)。在GCN卷積層數(shù)、丟棄率、學習率等超參數(shù)不變的情況下,測試CLGCN中隱藏層單元數(shù)分別為32、64、128、256、512的情況下節(jié)點分類準確率,如表4所示。
表4 在不同隱藏層單元數(shù)下的CLGCN分類結(jié)果Table 4 Classification results of CLGCN with different numbers of hidden layer units
由表4可知,當CLGCN隱藏層單元數(shù)為128、256、512時,CLGCN的節(jié)點分類效果較好,但在其他情況下CLGCN的性能也相對穩(wěn)定,說明了其對隱藏層單元數(shù)有較強的魯棒性。
3.5.3 可視化分析
為了更直觀地展示CLGCN模型的有效性,以同質(zhì)率最低的Flick數(shù)據(jù)集為例,用t-SNE對GAT、BMGCN和CLGCN最后一層輸出的節(jié)點表達式進行可視化。Flick數(shù)據(jù)集共分為9類,其節(jié)點分類的可視化結(jié)果如圖2所示,其中不同顏色和樣式的點表示不同標簽的節(jié)點。
圖2 在Flickr數(shù)據(jù)集上節(jié)點分類的可視化結(jié)果Fig.2 Visualization results of node classification on Flickr datasets
由圖2的可視化結(jié)果可知:GAT由于無法有效處理低同質(zhì)率的數(shù)據(jù)集,因此許多不同標簽的節(jié)點都混合在一起;BMGCN通過塊矩陣引導圖卷積,能在一定程度上處理低同質(zhì)率的數(shù)據(jù)集,可視化結(jié)果要比GAT好很多;CLGCN的特征對比學習模塊能夠從樣本表達式的角度有效處理低同質(zhì)率的數(shù)據(jù)集,因此可視化結(jié)果中可以清楚地看出節(jié)點分為9類,且其同類節(jié)點的分布更加密集??梢?CLGCN的可視化結(jié)果進一步證明了特征對比學習模塊的有效性。
3.5.4 消融實驗
為了進一步地驗證CLGCN特征對比學習模塊在低同質(zhì)率數(shù)據(jù)集中節(jié)點分類的有效性,進行消融實驗。將去掉特征對比學習模塊的CLGCN用CLGCN*表示,將CLGCN*和CLGCN在所有數(shù)據(jù)集上進行比較,結(jié)果如表5所示。
表5 對比學習模塊的消融實驗結(jié)果Table 5 Ablation experimental results of contrastive learning module %
消融實驗結(jié)果顯示,有特征對比學習模塊的CLGCN在3個數(shù)據(jù)集上的準確率均高于沒有特征對比學習模塊的CLGCN*。CLGCN的特征對比學習模塊從樣本表達式的角度構(gòu)造特征的對比損失函數(shù),使同類鄰居節(jié)點對的特征表達相似性更高及異類鄰居節(jié)點對的特征表達可區(qū)分性更強,最終在處理低同質(zhì)率數(shù)據(jù)集時節(jié)點分類的效果更好。該實驗證明了特征對比學習模塊的有效性。
3.5.5 相似性衡量方法對比
該實驗對樣本表達式的相似性衡量方法進行對比。由于基于集合的距離衡量方式不能較好地滿足本文的要求,因此對余弦相似性和歐氏距離2種衡量方法進行比較。
表6展示了相似性衡量方法的對比結(jié)果,在3個數(shù)據(jù)集上,基于余弦相似性的實驗結(jié)果遠好于基于歐氏距離的實驗結(jié)果,主要原因為:1)社交網(wǎng)絡的圖類數(shù)據(jù)屬于非歐氏數(shù)據(jù),歐氏距離無法有效衡量圖類數(shù)據(jù);2)在面對高維數(shù)據(jù)時,由于維度災難的原因,因此歐氏距離的測度會失去意義??梢?針對社交網(wǎng)絡數(shù)據(jù)集非歐氏及高維的特性,余弦相似性比歐氏距離更加合適。
表6 相似性衡量方法的對比結(jié)果Table 6 Comparison results of similarity measurement methods %
針對社交網(wǎng)絡數(shù)據(jù)集的低同質(zhì)率問題,本文提出一種基于特征對比學習的CLGCN模型,通過定義同類節(jié)點對為正樣本對、異類節(jié)點對為負樣本對,最小化特征對比的損失函數(shù),使得同類節(jié)點特征的相似性更高、異類節(jié)點特征的可區(qū)分性更強。實驗結(jié)果表明,CLGCN在社交網(wǎng)絡用戶分類時相比于其他模型效果更好。但由于不同的社交網(wǎng)絡數(shù)據(jù)集涉及的用戶自身屬性有所不同,因此未來將考慮根據(jù)不同情況采用不同的方法來衡量節(jié)點特征的相似性。