李鵬輝,翟正利,馮 舒
青島理工大學 信息與控制工程學院,山東 青島 266525
在現實系統中,從基因序列到社交網絡、從化學分子到通信網絡都可以被抽象為圖數據,因此對于圖數據的研究一直受到廣泛的關注。圖神經網絡(graph neural networks,GNN)[1-3]由于同時考慮了圖中節點的屬性信息和節點間的拓撲信息,對于描述圖數據中節點間的關聯性存在天然的優勢,在節點分類[4]、鏈路預測[5]、社團探測[6]等領域表現出優于其他方法的效果,在實踐中也得到了大規模的部署應用[7]。
盡管GNN 在圖建模任務中表現出色,但與其他深度學習一樣,易受到微小擾動的誤導而致使模型的性能嚴重下降[8-9],僅通過添加或刪除少量的節點或邊就能夠使模型產生完全錯誤的結果。具體而言,圖對抗攻擊是指通過在圖中添加微小擾動(通常擾動量限制在一定的預算范圍內)來降低模型性能。按照攻擊算法在圖中添加擾動的不同階段,攻擊算法可以分為“逃逸攻擊”和“投毒攻擊”兩類,其中逃逸攻擊指攻擊者構造對抗樣本在模型測試階段欺騙目標模型,而投毒攻擊指攻擊者在模型訓練階段向訓練集中注入對抗樣本使得訓練后的模型具有誤導性;也可以根據攻擊目標的不同將攻擊算法分為“定向攻擊”和“非定向攻擊”,定向攻擊的攻擊目標是預先設定的,而非定向攻擊只需要令攻擊后的模型產生錯誤的預測結果。
經典圖對抗攻擊算法主要包括:Nettack[10]是對屬性圖進行攻擊的算法,其利用圖卷積網絡(graph convolutional network,GCN)的梯度信息修改圖數據,使得目標節點被錯誤分類為指定類別;metattack[11]利用元學習將圖作為優化目標產生用于攻擊的圖數據;RL-S2V[12]將強化學習引入圖對抗攻擊,把攻擊過程抽象為馬爾可夫決策過程(Markov decision process,MDP);Q-Attack[13]是一種利用遺傳算法攻擊鏈路預測模型的攻擊方法。以上攻擊算法已經成為多數防御算法評估防御性能的基準,圖對抗攻擊引發的安全性擔憂阻礙了GNN 在更廣泛領域的應用。
雖然深度學習模型的高精確性和高效性近年來在各個領域都發揮出令人矚目的表現,但為了使GNN 模型在遭受對抗攻擊的情況下,仍然能夠得到正確的結果,增強模型的魯棒性已經成為深度學習充分發揮潛力的另一個關鍵點,因此對于圖對抗防御算法的研究亟待更多的關注。
深入研究圖對抗防御理論,設計出行之有效的防御策略,不僅可以增強GNN 模型在受到攻擊時的魯棒性,同時對于提高模型的可解釋性和泛化能力也有著重要的推動作用。本文介紹了圖對抗防御的基本概念及研究進展,根據防御算法的不同防御策略將其分為攻擊檢測、對抗訓練、可認證魯棒性和免疫防御四類,并系統地介紹和對比了不同算法采用的防御方法、目標任務及其優缺點等;最后對防御模型進行總結,探討圖對抗防御面臨的挑戰并對未來的研究方向進行展望。
圖是一種關系型數據結構,本文使用G=(V,E)表示包含節點集合V={v1,v2,…,vN}和邊集合E={e1,e2,…,eM}的圖,其中N和M分別表示圖中節點和邊的數量;圖中節點間的連接使用鄰接矩陣A∈RN×N表示,當節點vi和vj之間存在邊的連接時Aij=1,否則Aij=0;使用特征矩陣X∈RN×d表示圖中節點的特征或屬性,如果將其表示為向量形式X=[X1,X2,…,XN],則其中每個元素Xi∈Rd表示節點vi的d維特征向量。
在圖對抗學習領域,通常將未被攻擊的圖數據稱為原始圖,而采用某種攻擊算法后被成功攻擊的圖稱為對抗樣本或擾動圖G′。攻擊算法添加或刪除的邊稱為擾動邊,修改圖中的邊等價于改變了圖的鄰接矩陣,擾動圖的鄰接矩陣表示為A′,改變鄰接矩陣的攻擊算法也稱為拓撲攻擊;而如果攻擊算法修改了圖的特征矩陣,則擾動圖中的特征矩陣使用X′表示,改變特征矩陣的攻擊算法也稱為特征攻擊,fθ表示參數為θ的GNN 模型,本文常用符號及其含義在表1 中列出。
隨著圖對抗攻擊引發的擔憂,提高GNN 的魯棒性顯得愈加重要,圖對抗防御工作已經開始得到關注和研究,縱觀現有圖對抗防御相關文獻,可以總結定義圖對抗防御如下:

Table 1 Symbols and descriptions表1 符號及含義
圖對抗防御是指通過一定的策略,使GNN 模型即使受到對抗攻擊,依舊能夠得到正確的輸出結果,從而保證模型魯棒性:

其中,fθ*表示具有防御策略的模型,表示GNN 的輸入可以是擾動圖也可以是原始圖。
當前,圖對抗攻擊算法可以分為逃逸攻擊和投毒攻擊[10],已經研究出多種防御算法用于提高GNN模型的魯棒性。針對逃逸攻擊,增強GNN 魯棒性的方法主要包括攻擊檢測和對抗訓練,其中攻擊檢測通過檢測并消除圖數據中的惡意節點和邊,從而恢復近似原始圖的數據來提高GNN 模型的魯棒性[14-20];對抗訓練則是通過在訓練數據集中添加擾動樣本進行訓練以增強模型的泛化能力[21-23];除此之外,也有部分算法從其他角度出發,通過驗證GNN 或節點的魯棒性來了解圖數據的攻擊容忍度,此類算法稱為可認證魯棒性[24-26],但是這類方法并沒有直接提高GNN 的魯棒性。
而針對投毒攻擊,目前多數防御算法采用修改模型的策略,具體而言包括在模型中添加注意力機制懲罰擾動節點和邊的權重以區分惡意邊和節點與正常邊和節點[27-28],修改模型架構以獲取更強的魯棒性[29-31],修改圖卷積算子取代GNN 模型中的經典拉普拉斯算子[32]等;也有部分算法利用凈化數據的策略提高模型性能[33],由于投毒攻擊將擾動樣本添加到訓練數據中,凈化數據方法首先修改訓練數據消除訓練數據集中對抗樣本的影響,然后在凈化后的數據集上訓練GNN 模型。這幾種策略由于可以防御針對模型訓練階段的攻擊,統稱為免疫防御。
綜上,根據現有模型采用的不同防御策略,將圖對抗防御分為算法攻擊檢測、對抗訓練、可認證魯棒性和免疫防御四類,如圖1 所示。

Fig.1 Classification of graph adversarial defense algorithms圖1 圖對抗防御算法分類
攻擊檢測通過在模型中添加獨立檢測器[14-17]或集成檢測器[18-20]來檢測輸入的測試圖中是否含有對抗性擾動。攻擊檢測方法的比較如表2 所示。
Zhang 等[17]深入研究了隨機攻擊與Nettack 對圖深度學習模型的影響,提出針對Nettack 攻擊的檢測器。GraphSAC[19]是一種通過隨機子圖抽樣和共識機制來檢測大規模圖中異常節點的算法,通過限制隨機抽樣的次數來保證算法的高效性。
攻擊檢測可以針對不同應用特點,對檢測策略進行特定設計。Pezeshkpour 等[34]分析了應用于知識圖譜鏈路預測模型的魯棒性和可解釋性,基于梯度算法識別知識圖譜中改變目標預測的“擾動事實”,同時為了提高算法的效率,構造解碼器還原知識圖譜嵌入的拓撲信息和特征信息。為了檢測系統中注入的惡意軟件,Hou 等[18]研究了針對惡意軟件檢測系統的對抗攻擊的特征。在社交網絡中,與檢測長期存在的虛假用戶[35]不同,SybilEdge[16]通過利用新用戶與其他用戶之間的交互來檢測其是否為虛假用戶。

Table 2 Comparison of attack detection methods表2 攻擊檢測方法比較
而在推薦系統中,為了防御潛在對抗攻擊的威脅,Fang等[14]設計了基于用戶行為進行檢測的二元分類器來阻止虛假用戶的干擾;Zhang 等提出的GraphRFI[20]是由GCN 和神經隨機森林組成的端到端系統,其中GCN 模塊利用用戶信息和評價信息來捕獲用戶的愛好信息,隨機森林模塊用于檢測惡意用戶。
對抗訓練本質上是一種對模型進行正則化的方法,通過將動態生成的對抗樣本添加到訓練集中,使訓練后的模型具有更強大的魯棒性和泛化能力,優化目標可以表述為:

其中,Φε表示擾動空間,可以將上述min-max問題表述為最小化含有最佳擾動效果的對抗樣本的預測損失。
Feng 等[21]通過實驗證明了對抗訓練本質上是降低了連接節點間的差異。與全局正則化的對抗訓練方法[36]不同,Dai 等[37]采用局部正則化來提高圖嵌入模型的泛化能力,同時還通過限制嵌入的擾動方向來提供可解釋性;文獻[26,38-40]從多個角度研究了拓撲攻擊,并提出了在輸入層注入擾動進行對抗訓練的其他幾種變體。
與添加離散空間擾動[12,39-40]進行對抗訓練不同,Wang 等[22]提出通過添加連續空間的擾動來獲得對抗樣本用于對抗訓練,并且證明了擾動特征矩陣和擾動鄰接矩陣進行對抗訓練的效果是等價的;LATGCN(latent adversarial training GCN)[23]通過對模型第一隱藏層的輸出添加連續擾動進行對抗訓練:

其中,H1表示模型第一隱藏層的輸出,δ∈D表示擾動是在連續空間進行的,可以同時進行特征擾動和結構擾動。圖2顯示了對抗訓練中注入擾動的不同方式。

Fig.2 Different methods of injecting perturbations in adversarial training圖2 對抗訓練中注入擾動的不同方式
Sun 等[41]和Feng 等[21]將虛擬對抗訓練引入GCN中用于半監督節點分類,提高GNN 分類器的平滑度,從而增強模型的泛化性能。Deng 等[42]認為直接將虛擬對抗訓練用于圖數據,會導致對某一節點產生的全局擾動并非最壞情況下的虛擬對抗擾動,降低虛擬對抗訓練的效果。為了解決這一問題,提出了批虛擬對抗訓練(batch virtual adversarial training,BVAT),其利用隨機采樣彼此距離較遠的節點子集或設計更有效的優化算法獲得虛擬對抗擾動,從而平滑分類器模型的輸出。對抗訓練防御算法的比較如表3所示。
在鏈路預測問題中,Zhou 等[43]將攻擊與防御問題建模為Bayesian Stackelberg 博弈,其中防御者選擇要保證預測準確性的目標鏈路集,攻擊者則刪除圖中邊集合的子集;Minervini等[44]將訓練目標定義為零和博弈問題,其中鏈路預測模型目標為最小化包含對抗樣本數據集上的預測損失和不一致性損失,而攻擊者則通過改變輸入集最大化不一致性損失。
可認證魯棒性并不針對特定攻擊方法,而是對不同學習模型計算輸入圖數據最壞情況下的攻擊容忍度。
在計算機視覺領域,可認證魯棒性已經得到了深入的研究[45],Zügner 等[24]首次在圖數據建模中進行了可認證魯棒性的數學驗證。節點上的可認證魯棒性表示在所有允許的攻擊下模型關于節點t的預測都不會改變,具體而講,其目標是為節點t提供一個魯棒性證書,該證書可以確保在任何允許的擾動下模型對于該節點的預測都是可靠的。為了實現這一目標,需要驗證是否存在可以改變目標節點t的允許擾動X′,假定節點t的類別為y*,最壞情況裕度定義為:

Table 3 Comparison of adversarial training methods表3 對抗訓練方法比較

其中,X 表示所有允許的節點特征擾動集合,當對于任何y≠y*,都有ht(y*,y)>0,則此模型fθ關于節點t和X 具有可認證魯棒性。換句話說,在定義的擾動內,不存在改變模型預測類別的對抗樣本。
與針對節點特征擾動提供魯棒性證書[24-25]不同,Bojchevski等[26]對拓撲攻擊下的可認證魯棒性進行了研究,同時擾動需要滿足全局和局部預算,全局預算限制擾動邊的總數量,局部預算限制單個節點上的擾動邊的數量,最壞情況裕度可以通過簡單修改式得到,將尋找最壞情況下的對抗樣本過程建模為MDP,其中圖中每個節點對應一個狀態,動作定義為選擇包含容易被成功攻擊的邊的集合,獎勵函數設計為:

Bojchevski 等[46]同時考慮了拓撲攻擊和特征攻擊,提出了基于隨機平滑的離散數據稀疏性感知認證,并且魯棒性證書的計算復雜度與輸入圖數據的大小無關,從而提高了可認證魯棒性防御方法的可擴展性。除了GNN 的節點分類任務外,Jia 等[47]提出了針對社團探測任務的可認證魯棒性算法以防御拓撲攻擊。可認證魯棒性防御算法的比較如表4 所示。
以上三類防御策略都是針對逃逸攻擊設計的,而免疫防御是一類防御投毒攻擊的策略,通過刪除訓練圖中的擾動、修改模型結構或添加注意力機制等達到防御目的。免疫防御算法的比較如表5 所示。
Wu 等[48]基于觀察到攻擊的特征:(1)修改邊的有效性高于修改特征,且增加邊的攻擊性高于刪除邊;(2)度越高的節點攻擊難度越大;(3)攻擊傾向于在目標節點和具有不同特征和標簽的節點間構建連接。提出在訓練前刪除圖中相似度較低的節點間的邊,在有效提高GCN 魯棒性的同時幾乎不會增加模型的訓練時間。
針對Nettack 攻擊模型,Entezari 等[49]研究了其攻擊特性,表明Nettack 生成的不易察覺的擾動會改變鄰接矩陣的小奇異值,因此通過奇異值分解得到鄰接矩陣和特征矩陣的低秩近似用于訓練GCN;Miller等[50]提出了修改分類器和改變訓練集兩種方法防御Nettack 攻擊。Jin 等[33]通過研究Nettack 和Metattack攻擊,發現攻擊破壞了原始圖的低秩、稀疏性和特征平滑度,因此提出Pro-GNN 同時學習原始圖拓撲結構和魯棒性的GNN 模型,其模型架構如圖3 所示。

Table 4 Comparison of robustness certification methods表4 可認證魯棒性方法比較

Table 5 Comparison of immunologic defense methods表5 免疫防御方法比較

Fig.3 Framework of Pro-GNN圖3 Pro-GNN 架構
PTDNet[51]通過參數化網絡過濾掉與任務無關的邊,限制了輸入圖中邊的數量,同時應用正則化方法對得到的稀疏圖施加低秩約束,避免擾動在GNN 中的聚集與傳遞。
GNNGUARD[29]通過修改圖神經網絡的消息傳遞結構使模型能夠防御對抗攻擊,利用重要性估計動態調整節點局部鄰域的相關性,對于可能的擾動邊,將其丟棄或分配較低的權重,利用分層圖存儲器保存圖神經網絡每層的前一層網絡信息。DefNet[30]利用雙層聚合和瓶頸感知器來解決GNN 中聚合層和感知層的漏洞,其中雙層聚合借鑒了DenseNet[31]架構聚合來自不同階的鄰居信息,瓶頸感知器利用神經網絡模型的脆弱性隨著輸入數據維度的增加而增加這一事實將輸入數據映射到低維空間,同時為了防止在訓練集中生成無效的對抗樣本導致模型受攻擊時魯棒性被削弱,利用條件GAN 進行對比學習解決訓練數據集較少的問題,DefNet 的架構如圖4。文獻[52-53]對于GCN 聚合層中存在的漏洞進行了深入研究,并提出了不同的聚合函數,用來解決現有GCN 使用求和函數作為聚合函數容易被惡意構造的單個異常值擾亂消息傳遞的問題。

Fig.4 Framework of DefNet圖4 DefNet架構
RGCN(robust graph convolutional networks)[27]是用于增強GCN 魯棒性的模型,由于受攻擊節點在傳播其影響時通常其方差較大而權重較小,將隱藏層中的輸出表示為高斯分布會吸收擾動圖中高斯分布方差的變化:


其中,γ是超參數,表示第l層中節點vi的注意力權重,根據卷積運算中節點鄰域的方差為節點鄰域分配不同的權重。
PA-GNN(penalized aggregation GNN)[28]首先利用Metattack[11]在圖中注入擾動邊,然后使用獲得的擾動圖訓練具有懲罰性聚合機制的模型,懲罰性聚合機制通過分配低注意力系數限制擾動邊對模型的影響。通過元學習將這種懲罰機制轉移到目標擾動圖,構造M個初始狀態不同的模型,通過目標函數進行元優化:

其中,α表示學習率,通過隨機梯度下降更新模型參數θ,經過元優化,PA-GNN 成功地利用對抗樣本進行訓練來懲罰擾動,并可以轉移懲罰目標圖數據中的不同擾動,從而提高魯棒性。
除了從架構上修改模型外,Jin 等[32]認為經典的圖拉普拉斯算子能夠聚合的鄰域信息有限,因此提出了可變冪算子來增強GCN 的表達能力,r階可變冪算子定義如下:

其中,A[k]表示k階鄰接矩陣,當且僅當原始圖中節點vi和vi間的最短距離為k時=1,參數θk表示全局影響因子,當冪r>1 時可以在卷積操作中增加鄰域信息聚合的范圍。
針對鏈路預測問題中存在的隱私泄露問題,Yu等[54]利用啟發算法和遺傳算法來保護目標隱私鏈接不被泄露,對于大規模圖算法的效率不高;相反,Lim等[55]通過強化學習重建被惡意隱藏的鏈接。
縱觀現有圖對抗防御算法,大部分算法是針對節點分類任務的防御,在鏈路級別和圖級別任務上的對抗防御研究仍寥寥無幾,缺乏在動態圖和異構圖上防御機制的研究,且只有少數算法考慮大規模圖上的擴展性[20,26]。
與針對特定攻擊算法進行防御的研究[17,50]相比,獨立于特定攻擊算法設計的防御模型[32,37,40,43]具有更加廣泛的適用性。多數防御算法,當測試圖數據未被攻擊時,模型的性能反而不如原始模型,即以犧牲模型性能的方式換取魯棒性,只有少數算法考慮了此缺陷[26,30,32,42],因此亟待設計更多不會將降低模型性能作為提高魯棒性的代價的算法,同時提高在原始圖和擾動圖上的模型性能。已經有研究考慮理論上對模型的魯棒性進行證明[24-25,32,56],但是魯棒性認證只是節點魯棒性的評估方法,下一步應當研究提高GNN 可認證魯棒性[57];或者提出多角度評估標準度量模型的魯棒性[58];但是大多數防御算法仍然是通過基于原始模型的修改達到防御效果,這種修改缺乏可解釋性,同時容易被攻擊者設計新的針對性攻擊。除了在安全性方面,防御算法也應當關注數據的隱私保護問題[54,59]。
總體而言,防御算法在多樣性任務、可擴展性、隱私保護等方面仍存在諸多限制,針對目前圖對抗防御存在的問題和挑戰,需要在以下方向進行重點研究和突破:
(1)理論研究:盡管GNN 已經得到了廣泛的應用,但是對于圖濾波器的穩定性分析仍然缺乏關注,這對于設計魯棒的GNN 模型至關重要,雖然文獻[56]彌補了這一空白,但其嚴格假設擾動不會改變節點的度,對于更加復雜的擾動下的圖濾波器穩定性分析仍然有待研究;同時,GNN 容易受到對抗攻擊的原因仍沒有得到全面的分析,文獻[52-53,60]指出非魯棒性的聚合函數導致GCN 在面對拓撲攻擊時的脆弱性,而更加復雜攻擊背后的原理有待深入挖掘;最后,當前大多數圖對抗防御算法僅利用實驗來說明其有效性,或者通過總結圖對抗攻擊算法的缺陷設計防御模型,而從理論上證明防御算法的有效性仍缺乏深入的研究,若可以從理論上闡述防御算法有效性的依據[32],將極大地推動防御算法在更廣泛的圖分析、學習模型中得到應用。
(2)可擴展性:防御算法的可擴展性包含三方面,首先是在動態圖和大規模圖上的擴展性,由于現實世界的圖通常具有較大規模且會隨時間不斷擴大,因此降低算法的時空復雜度以提高其可擴展性是圖對抗防御的發展趨勢;然后是在不同攻擊算法中的可擴展性,針對特定攻擊算法設計的防御由于具有更廣泛的攻擊假設,相較于與具體攻擊算法無關的防御通常具有更高的適用性;最后是在不同任務中的可擴展性,目前防御算法集中于研究在節點分類任務中的應用,在鏈路預測、社團探測和推薦系統等方面的研究仍然較少,同時由于多數防御算法是針對不同應用設計的,開發可應用于多種任務中的防御算法應當是未來研究工作的重點。
(3)數據純化:在現實世界的圖數據中,除了可能受到對抗攻擊導致圖中拓撲結構與特征信息發生變化外,圖數據中的信息也可能因噪聲等原因存在標注錯誤或缺失的情況[61],隨著GNN 對鄰域信息的聚合,網絡將逐漸適應這類異常的數據,導致性能和泛化能力較差,未來的研究可能通過圖對比學習[62]等自監督學習模型來捕獲圖數據中對任務影響最主要的信息,移除冗余和異常信息,得到近似純凈的圖數據用于下游任務。
(4)正則化:除了對抗訓練外,其他正則化技術在防御算法中的應用也有待研究。在GNN 模型中施加正則化本質上是為了限制擾動在網絡中的傳播,可以通過懲罰梯度,或者強制約束權重范數與梯度范數來實施正則化;文獻[63]指出對抗性攻擊的存在源于模型對弱相關特征的利用,因此可以通過稀疏性減少弱相關特征的影響達到類似Dropout 正則化的效果。
(5)隱私保護:隨著GNN 優異擬合能力的展現,其強大的鄰域聚合能力也向希望獲取節點敏感屬性的使用者暴露了一些附加的危害,例如社交平臺可以根據用戶在社交網絡中的顯式內容進行推斷,得到用戶的隱式信息;或者攻擊者也可以根據用戶信息或者用戶在網絡中好友的信息獲取目標用戶的敏感信息[59]。在隱私保護日益重要的今天,幫助用戶保護隱私是研究者應該持續關注的問題,在保持GNN 模型性能的同時保護用戶的敏感信息免受惡意預測攻擊。
(6)模型魯棒性與泛化能力的權衡:當前的防御算法研究中,多數更注重實現模型的魯棒性,而忽略了泛化的影響,針對目前多數算法以犧牲模型性能來提高其魯棒性的問題,需要防御算法能夠保證無論模型是否受到攻擊其性能均能得到保持甚至提高,例如設計新的損失函數來訓練神經網絡,用以同時提高模型的魯棒性和泛化能力,或者根據實際應用場景在兩者之間取舍。
圖對抗防御致力于解決圖對抗攻擊導致的模型性能下降問題,提高模型的魯棒性和泛化能力,增強GNN 應用的安全性。本文首先介紹了圖對抗防御的研究背景和目的,并通過對現有相關文獻的歸納,總結出圖對抗防御的統一表述;然后根據現有防御算法采用的不同類型的防御策略,對其進行分類,分別為攻擊檢測、對抗訓練、可認證魯棒性和免疫防御。然后全面、系統地總結了現有圖對抗防御算法的核心思想和實現策略,對典型算法進行了比較分析。最后,從對抗防御算法的理論證明、可擴展性、數據純化以及隱私保護等方面出發,分析了圖對抗防御領域目前存在的問題以及未來可能的發展方向。