文章具體介紹了圖神經網絡的基本機制,以及圖上無監督節點異常值檢測的概念和方法。同時他還分享了在這方面的一些發現和想法。最后,我們將介紹一個基于 GNN 的圖異常值檢測庫 (PyGOD) 及其與 TigerGraph機器學習工作臺的集成。
圖神經網絡 (GNN)
我們先簡單了解一下現在熱門的圖神經網絡 (GNN),這已經成為圖數據挖掘的一種主導且強大的工具。與圖像數據的 CNN 相似,GNN 是一種神經網絡,旨在對圖結構進行編碼并通過迭代聚合其鄰居的嵌入來學習節點的嵌入 (見圖 1)。大多數 GNN 都持有同源性假設,即相連的節點是相似的;因此,聚合鄰居的信息將有助于學習信息量更大的中心節點表示。中心節點表示可用于節點分類、鏈接預測和異常值檢測 (OD) 等下游任務。
圖1:圖神經網絡
圖上的異常值
異常值是與其余數據顯著不同的樣本。作為數據挖掘研究的主流方向,異常值檢測在行業中也至關重要。現實世界數據中的異常值通常表示欺詐行為、系統錯誤、網絡入侵或網絡故障。這些異常值可能導致重大的財務損失和安全問題。
除了傳統表格數據中的異常值外,圖模型還可以提高異常值檢測的性能,特別是當數據實例具有共同的屬性和接近性時。社交平臺的機器人賬戶單個看可能沒什么問題(如圖 2 所示),但它的轉發行為密集相連,從圖的角度來看容易發現其中的異常。
圖2:圖上的異常值
在圖異常值檢測中,以前的文獻已經定義并研究了兩種典型的異常值類型。(1) 結構異常值是指密集相連的節點,相反則是稀疏連接的常規節點,例如前面提到的社交網絡問題(圖 2 所示)。(2) 上下文異常值是其屬性與相鄰節點明顯不同的節點。它的定義與經典的基于接近度的異常值檢測方法中的異常值假設相似。上下文異常值描繪了與圖中鄰居不同的節點,例如計算機網絡中的受損設備。
圖3:兩種典型的異常值類型
基于 GNN 的節點異常值檢測
在 GNN 取得進展之前,大家就已經利用矩陣分解、密度聚類和關系學習方法來編碼圖信息并識別異常值。其他異常值檢測方法大家可以參考文中鏈接(https://arxiv.org/abs/1404.4679)。
回到 GNN,在獲得節點表示之后,GNN 會使用不同的損失函數(目標函數)進行優化,用于不同的任務。例如,使用交叉熵損失來優化 GNN 用于節點分類任務。
對于節點異常值檢測,常規做法是將 GNNs 集成到自動編碼器中,將 GNN 用作編碼器和解碼器。這種神經網絡架構稱為圖自動編碼器(簡稱:GAE)。與香草自編碼器一樣,GAE 通過重建圖數據來編碼圖信息,即重建節點特征和邊。在異常值檢測方面,GAE 可用于編碼正常圖信息,具有高重構誤差的節點將表明其異常程度。圖4就是使用 GAE 進行節點異常值檢測的第一種模型。
圖4:The OD framework of DOMINANT (SDM’ 19)
需要注意的是,使用 GAE 進行異常值檢測對圖數據有兩個隱含假設:(1)異常值僅占據少量數據,而大部分數據是正常的;(2)正常數據具有共同的屬性和結構特征。在此假設下,GAE 可以用來檢測結構和上下文異常值,近兩年來也已經有了許多 GAE 的變體。
基準測試的發現
接下來,跟大家分享一些基于 GNN 的節點異常值檢測方法進行基準測試的一些發現:
1. 許多現有的基于 GNN 的異常值檢測方法都是基于合成異常值的相對樸素的假設來開發的;因此,許多方法在檢測有機異常值時效果并不理想。有機異常值通常非常復雜,其分布也可能多種多樣。但是,我們的基準測試表明,如果有機異常值遵循預定義的異常類型,則基于 GNN 的異常值檢測方法將是有效的。
2. 和大多數深度學習方法一樣,基于 GNN 的異常值檢測方法在小圖中效果都不是最優的。與此同時,大多數基于 GNN 的異常值檢測方法在擁有數千萬個節點的大圖中都不具有可伸縮性。
3. 無監督的基于 GNN 的異常值檢測方法的性能嚴重依賴于超參數,而在無監督學習中的超參數調整仍然是機器學習研究和實踐中的挑戰。
4. 大多數基于 GNN 的異常值檢測方法更傾向于特定類型的異常值。平衡和優化每種異常值類型的檢測性能并不容易。同時,在預期中沒有方法具有一致的性能或者在不同的數據集上優于其他方法。
基于圖的異常值檢測指南
基于上述發現,由于其可擴展性約束,我們認為基于 GNN 的異常值檢測與工業應用之間仍存在差距。開發基于 GNN 的自動化、可擴展和任務導向的異常值檢測方法將是一個具有發展潛力的方向。至于到底是應用基于 GNN 的異常值檢測或基于圖的異常值檢測,作者也給出了應用指南(圖5),以方便從業者參考。我們簡單跟大家分享幾點,例如,是否采用圖?可以看異常實體是否具有共同的特性,異常實體是否具有集群行為,還有就是成本與效益之間的權衡。而是否采用GNN?則需要考慮基礎設施,功能可用性和功能類型,還有與其他模塊和任務集成。具體指南圖大家可以關注我們的微信公眾號查看正文。
圖5:基于圖的異常值檢測指南
從上述指南中,作者強調了數據探索分析和精確問題定義對于應用基于圖的異常值檢測是至關重要的。
PyGOD 和TigerGraph ML Workbench
最后,作者還跟大家介紹了 PyGOD,這是一個與圖異常值檢測基準測試一起開發的 Python 庫。該庫基于 PyTorch 和 PyTorch Geometric (PyG) 開發,其 API 樣式遵循流行的機器學習庫 scikit-learn,可以很容易地使用五行代碼檢測圖中的異常點:
PyGOD是一個不斷發展的Python庫,旨在涵蓋更多的檢測功能和更高的可擴展性。TigerGraph ML Workbench能夠將圖數據從TigerGraph DB轉換為PyG數據對象,因此PyGOD可以在TigerGraph中輕松安裝和測試。
審核編輯:郭婷
-
神經網絡
+關注
關注
42文章
4762瀏覽量
100537 -
機器學習
+關注
關注
66文章
8377瀏覽量
132407
原文標題:Vol. 38 基于圖神經網絡的圖異常值檢測:簡介
文章出處:【微信號:TigerGraph,微信公眾號:TigerGraph】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論