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