論文筆記:Rethinking Graph Neural Networks for Anomaly Detection

目錄

摘要

“右移”現象

beta分布及其小波

實驗


《Rethinking Graph Neural Networks for Anomaly Detection》,這是一篇關于圖(graph)上異常節點診斷的論文。

論文出處:ICML 2022

論文地址:Rethinking Graph Neural Networks for Anomaly Detectionhttps://arxiv.org/pdf/2205.15508https://arxiv.org/pdf/2205.15508https://arxiv.org/pdf/2205.15508https://arxiv.org/pdf/2205.15508https://arxiv.org/pdf/2205.15508https://arxiv.org/pdf/2205.15508

代碼地址:squareRoot3/Rethinking-Anomaly-Detection: "Rethinking Graph Neural Networks for Anomaly Detection" in ICML 2022https://github.com/squareRoot3/Rethinking-Anomaly-Detectionhttps://github.com/squareRoot3/Rethinking-Anomaly-Detectionhttps://github.com/squareRoot3/Rethinking-Anomaly-Detectionhttps://github.com/squareRoot3/Rethinking-Anomaly-Detectionhttps://github.com/squareRoot3/Rethinking-Anomaly-Detectionhttps://github.com/squareRoot3/Rethinking-Anomaly-Detection

摘要

圖神經網絡被廣泛應用于圖的異常檢測。選擇合適的譜濾波器是圖神經網絡設計的關鍵部分之一,我們從圖譜的視角邁出了異常分析的第一步。我們的一個重要發現是,異常的存在會導致“右移”的現象,即光譜能量分布在低頻的集中度降低,而在高頻上的集中度增加。這一事實激勵我們提出beta小波圖神經網絡(BWGNN)。BWGNN具有在圖譜和空間中局部化的帶通濾波器,以更好地處理異常中的“右移”現象。我們展示了BWGNN在四個大規模數據集上的有效性。

“右移”現象

最有意思的是本文提出的右移現象,這也是文章所述的motivation,那么右移現象到底是什么呢?

考慮一個圖\mathcal{G},有N個節點,編號從0到N-1,其拉普拉斯矩陣為L,很容易得到一般拉普拉斯的計算公式:

L=D-A

其中,D是圖的度矩陣,A是鄰接矩陣,這里我們只考慮無向無權圖,邊僅僅只反映圖的結構,不做他用,那么圖的度矩陣自然和圖的出度矩陣以及入度矩陣相等,并且還是個對角矩陣,此外,D和A都是對稱矩陣。

另外,上述的拉普拉斯矩陣的表達式是非規范化的,這導致其特征值的范圍不受控制,因此給出規范化的拉普拉斯矩陣計算方式:

L = I - D^{-1/2}AD^{-1/2}

規范化拉普拉斯矩陣能夠保證所有的特征值都在[0,2]內。

假設規范化拉普拉斯矩陣的特征值為0=\lambda_1\leq\cdots \leq \lambda_N,并且對應的正交的特征向量為U=(u_1, u_2, \cdots, u_N)。注意這里將所有特征值從小到大排列,并且對應的特征向量也要跟隨其對應的特征值排列。

假設圖\mathcal{G}上所有節點的某一個信號為x=(x_1, x_2, \cdots, x_L),其中x1,x2等等都為Nx1的向量,整個信號矩陣x為NxL的shape。那么定義\hat{x}=(\hat{x_1}, \hat{x_2}, \cdots, \hat{x_L}) = U^Tx為圖上針對x的傅里葉變換,注意變換之后的shape仍然為NxL。

在這里,由于拉普拉斯矩陣的特征值所對應的特征向量在一開始的特征向量矩陣U中的按列排布的,但在這里做圖傅里葉變換的時候對U做了轉置,因此可以視為從上至下,按行對應,即U^T的第一列對應最小的特征值\lambda_1,第二列對應倒數第二小的特征值\lambda_2,直到最后一行對應最大的特征值\lambda_N。對于做了傅里葉變換之后的\hat{x}也可以從上至下如此按行看待,并且對應地,\hat{x}每行也可以對應相應的特征值(畢竟是從U^T算過來的)(個人感覺論文里這種按列的表述有點問題,并且文章里面x的元素個數也是N,讓人難以區分單個節點上的特征向量的元素數目和圖上的節點數到底有沒有關系,有一定誤導性)。

那么接下來,注意文章中給出來的這個式子:

這個公式是論文給出用以計算圖譜能量的,聯系到之前摘要里說到異常的存在會導致圖譜能量分布在低頻減少高頻增加的說法,可以看出這是一個關鍵的量,那么他是如何反映“右移”的呢?

仔細看上面的公式,分為分母和分子兩個部分,分子指的是之前計算的圖傅里葉變換的結果\hat{x}中每個標量元素的平方之和,換言之,分母是\hat{x}中NxL個元素的平方和,最后得到的也是一個標量。

而分子,還記得我們之前提到的\hat{x}從上至下每行能夠對應規范化拉普拉斯矩陣從小到大的相應的特征值的說法嗎?分子自然就是單個行(N個元素)中元素的平方之和,這樣計算出來的整個分式,對應的是相應行所對應的特征值。例如,分母是之前所提到的\hat{x}所有元素平方和,而分子是\hat{x}第一行中所有元素的平方和,那么這樣計算出來的圖譜能量對應的是規范化拉普拉斯矩陣的最小的特征值。

然后將所有的特征值從小到大放到橫軸上,所有對應特征值的圖譜能量放到縱軸上,就可以畫出一個圖的圖譜能量分布了。

上圖就是文章中給出的,不同規模的異常分布下的圖譜能量分布,可以看到,隨著圖的異常規模的增大,其圖譜能量的分布往高頻方向(也即特征值更大的方向)發展。

beta分布及其小波

然后就輪到我們的主角的出場了,論文本身是借鑒了Hammond的圖小波理論,通過自己構造小波,從而做出一個濾波器,然后可以對圖本身進行濾波,考慮到濾波器實際上是由一組小波構成的,因此不同的帶通的濾波器能夠過濾不同的圖的頻段上的信息,而又根據前文所述的隨著異常規模的增大圖譜能量分布的右移,因此不同的帶通濾波器基本能夠找出所有情況下的異常能量分布部分,從而確定異常。

論文首先介紹了下Hammond的圖小波理論,有一個母小波\psi,并且這個母小波是后續一組小波的基礎,定義為\mathcal{W} = (\mathcal{W}_{\psi_1}, \mathcal{W}_{\psi_2}, \cdots),那么在一個圖信號x上應用對應的小波\mathcal{W}_{\psi_i}可以表示為:

\mathcal{W}_{\psi_i}(x) = U g_i(\Lambda)U^Tx

其中,\Lambda為圖的規范化拉普拉斯矩陣的特征值矩陣,是一個對角矩陣,并且對角線上的元素按大小排列,g_i(\cdot)是一個核函數,其定義域在[0, \lambda_N]之間,并且g_i(\Lambda) = diag(g_i(\lambda))。此外,Hammond的圖小波理論還要滿足兩個條件:

  • 根據Parseval定理,小波變換需要滿足有限性的條件:\int_0^{\infty} \frac{|g_i(w)|^2}{w} dw = C_g < \infty。這意味著g_i(0) = g_i(\infty) = 0,并且在頻域上表現得像個帶通濾波器。
  • 小波變換通過不同尺度的帶通濾波器\{g_1, g_2, \cdots\}覆蓋不同的頻段。

此外,為了避免圖拉普拉斯矩陣的特征值分解(以加快速度),核函數g_i(\cdot)必須是一個多項式函數,即在大多數文獻之中都有Ug_i(\Lambda)U^T = g_i(L)

介紹完了Hammond的圖小波理論,接下來看看文章里是如何使用beta分布來構造他自己的小波變換的。

beta分布是個計算機視覺里用的挺多的分布,其概率密度函數如下所示:

其中,p,q \in \mathbb{R}^+并且B(p+1,q+1) = p! q! / (p+q+1)!是個常數。規范化拉普拉斯矩陣L的特征值滿足\lambda \in [0,2],和上面beta分布里的[0,1]不同,因此做點改造,文章里用\beta^*_{p,q}(w) = \frac{1}{2} \beta_{p,q} (\frac{w}{2})來覆蓋[0,2]的范圍,并且進一步添加約束p,q \in \mathbb{N}^+來確保\beta^*_{p,q}是個多項式。因此,所構建的beta小波變換\mathcal{W}_{p,q}可以表示為:

\mathcal{W}_{p,q} = U \beta^*_{p,q}(\Lambda) U^T = \beta^*_{p,q}(L) = \frac{(\frac{L}{2})^p (I - \frac{L}{2})^q}{2B(p+1,q+1)}

?令p+q=C為一個常數,那么所構造的beta小波變換一共就有C+1個beta小波:

\mathcal{W} = (\mathcal{W}_{0,C}, \mathcal{W}_{1,C-1}, \cdots, \mathcal{W}_{C,0})

其中,\mathcal{W}_{0,C}是個低通濾波器,其他的都是不同尺度的帶通濾波器。此外,當p>0的時候,核函數\beta^*_{p,q}滿足:

\int_0^{\infty} \frac{|\beta^*_{p,q}(w)|^2}{w} dw \leq \int_0^2 \frac{dw}{2B(p+1,q+1)} < \infty

因此也滿足前述的Hammond理論的條件。

最后整體講一下他的神經網絡結構吧,首先是圖上的特征進入到MLP簡單過一遍,然后送到之前說的beta小波變換里,用C+1個濾波器過一遍(注意這個地方其實不涉及到參數的訓練,諸如C等超參數是在訓練之前就確定好了的,換言之,beta小波變換實際上不涉及到神經網絡里參數的訓練),得到C+1個新的特征,將這些特征簡單的按列拼接到一起,然后送入MLP分類,輸出一個兩個元素的向量,做了softmax后可以視為概率,其中索引為1的元素為該節點為異常節點的概率。

最后,光有概率還不行,這種二分類問題需要一個閾值來判斷的,那么怎么找這個閾值呢,文章的代碼里面給的方法是,將數據集分為訓練集/驗證集/測試集三個部分,使用訓練集進行訓練,然后遍歷[0,1]里的元素,以一定的步長,這個遍歷的值作為當前的概率閾值,在驗證集上測試,當使用當前概率閾值的時候,算出來的F1指標如何,最終選擇F1指標最大的那個情況所對應的概率閾值作為最終的概率閾值,最后,在測試集上使用之前選好的概率閾值檢驗在測試集上的性能效果。

實驗

最后簡單看下實驗部分吧,其實這種文章發出來他自己的的性能效果肯定基本上都要好于他拿出來作比較的方法的(2333),下面是文章中給的性能對比表格。

順便看了下參數C對性能的影響。

最后還比較了下不同異常程度下的性能表現。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/895103.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/895103.shtml
英文地址,請注明出處:http://en.pswp.cn/news/895103.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

神經網絡常見激活函數 6-RReLU函數

文章目錄 RReLU函數導函數函數和導函數圖像優缺點pytorch中的RReLU函數tensorflow 中的RReLU函數 RReLU 隨機修正線性單元&#xff1a;Randomized Leaky ReLU 函數導函數 RReLU函數 R R e L U { x x ≥ 0 a x x < 0 \rm RReLU \left\{ \begin{array}{} x \quad x \ge 0…

Vue(6)

一.路由板塊封裝 &#xff08;1&#xff09;路由的封裝抽離 目標&#xff1a;將路由板塊抽離出來 好處&#xff1a;拆分板塊&#xff0c;利于維護 // 路由的使用步驟 5 2 // 5個基礎步驟 // 1. 下載 v3.6.5 // 2. 引入 // 3. 安裝注冊 Vue.use(Vue插件) // 4. 創建路由對象…

【python】matplotlib(animation)

文章目錄 1、matplotlib.animation1.1、FuncAnimation1.2、修改 matplotlib 背景 2、matplotlib imageio2.1、折線圖2.2、條形圖2.3、散點圖 3、參考 1、matplotlib.animation 1.1、FuncAnimation matplotlib.animation.FuncAnimation 是 Matplotlib 庫中用于創建動畫的一個…

【東莞常平】戴爾R710服務器不開機維修分享

1&#xff1a;2025-02-06一位老客戶的朋友剛開工公司ERP服務器一臺戴爾老服務器故障無法開機&#xff0c;于是經老客戶介紹找到我們。 2&#xff1a;服務器型號是DELL PowerEdge R710 這個服務器至少也有15年以上的使用年限了。 3&#xff1a;客戶反饋的故障問題為&#xff1a;…

Spring AI -使用Spring快速開發ChatGPT應用

前言 Spring在Java生態中一直占據大半江山。最近我發現Spring社區推出了一個Spring AI項目&#xff0c;目前該項目還屬于Spring實驗性項目&#xff0c;但是我們可以通過該項目&#xff0c;可以非常快速的開發出GPT對話應用。 本篇文章將會對SpringAI進行簡單的介紹和使用&#…

經典排序算法復習----C語言

經典排序算法復習 分類 交換類 冒泡快排 分配類 計數排序基數排序 選擇類 選擇排序 堆排序 歸并類 歸并排序 插入類 直接插入排序 希爾排序 折半插入排序 冒泡排序 基于交換。每一輪找最大值放到數組尾部 //冒泡排序 void bubSort(int* arr,int size){bool sorte…

BFS解決拓撲排序(3題)

目錄 拓撲排序 1.如何排序&#xff1f; 2.如何形成拓撲排序 3.如何建圖 1.看數據稠密度 2. 根據算法流程靈活建圖 1.課程表 2.課程表2 3.火星詞典 拓撲排序 找到做事情的先后順序&#xff0c;拓撲排序的結果可能不是唯一的 1.如何排序&#xff1f; 1.找出圖中入度為…

kafka 3.5.0 raft協議安裝

前言 最近做項目&#xff0c;需要使用kafka進行通信&#xff0c;且只能使用kafka&#xff0c;筆者沒有測試集群&#xff0c;就自己搭建了kafka集群&#xff0c;實際上筆者在很早之前就搭建了&#xff0c;因為當時還是zookeeper&#xff08;簡稱ZK&#xff09;注冊元數據&#…

Unity項目接入xLua的一種流程

1. 導入xlua 首先導入xlua&#xff0c;這個不用多說 2. 編寫C#和Lua交互腳本 基礎版本&#xff0c;即xlua自帶的版本 using System.Collections; using System.Collections.Generic; using UnityEngine; using XLua; using System; using System.IO;[Serializable] public…

四次揮手詳解

文章目錄 一、四次揮手各狀態FIN_WAIT_1CLOSE_WAITFIN_WAIT_2LAST_ACKTIME_WAITCLOSE 二、雙方同時調用close()&#xff0c;FIN_WAIT_1狀態后進入CLOSING狀態CLOSING狀態 三、TIME_WAIT狀態詳解(1) TIME_WAIT狀態下的2MSL是什么MSL &#xff08;報文最大生存時間&#xff09;為…

【嵌入式 Linux 音視頻+ AI 實戰項目】瑞芯微 Rockchip 系列 RK3588-基于深度學習的人臉門禁+ IPC 智能安防監控系統

前言 本文主要介紹我最近開發的一個個人實戰項目&#xff0c;“基于深度學習的人臉門禁 IPC 智能安防監控系統”&#xff0c;全程滿幀流暢運行。這個項目我目前全網搜了一圈&#xff0c;還沒發現有相關類型的開源項目。這個項目只要稍微改進下&#xff0c;就可以變成市面上目前…

java: framework from BLL、DAL、IDAL、MODEL、Factory using oracle

oracel 21c sql: -- 創建 School 表 CREATE TABLE School (SchoolId CHAR(5) NOT NULL,SchoolName NVARCHAR2(500) NOT NULL,SchoolTelNo VARCHAR2(8) NULL,PRIMARY KEY (SchoolId) );CREATE OR REPLACE PROCEDURE addschool(p_school_id IN CHAR,p_school_name IN NVARCHAR2,p…

解決錯誤:CondaHTTPError: HTTP 000 CONNECTION FAILED for url

解決錯誤&#xff1a;CondaHTTPError: HTTP 000 CONNECTION FAILED for url 查看channels:vim ~/.condarcshow_channel_urls: true channels:- http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/- http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/…

Apache APISIX 快速入門

文章目錄 apisix 快速入門什么是apisix有了 NGINX 和 Kong&#xff0c;為什么還需要 Apache APISIX&#xff1f;軟件架構基于 Nginx 開源版本&#xff0c;而 Nginx 并不支持動態配置&#xff0c;為什么 Apache APISIX 聲稱自己可以實現動態配置&#xff1f; 安裝配置 APISIX配置…

2025嵌入式高頻面試題解析

一、概述 到了年初&#xff0c;是求職者最活躍的時間。本文梳理了嵌入式高頻面試題&#xff0c;幫助求職者更好地準備面試&#xff0c;同時也為技術愛好者提供深入學習嵌入式知識的參考。 二、C 語言基礎 2.1 指針與數組 問題 1&#xff1a;指針和數組的區別是什么&#xf…

1.攻防世界 baby_web

題目描述這里有提示&#xff0c;初始頁面 進入題目頁面如下 很簡潔的頁面只有一行HELLO WORLD ctrlu查看了源碼也沒有信息 用burp suite抓包&#xff0c;并發送到重放器 根據提示&#xff08;初始頁面&#xff09;修改訪問index.php文件 index.php index.php 是一種常見的…

什么是三層交換技術?與二層有什么區別?

什么是三層交換技術&#xff1f;讓你的網絡飛起來&#xff01; 一. 什么是三層交換技術&#xff1f;二. 工作原理三. 優點四. 應用場景五. 總結 前言 點個免費的贊和關注&#xff0c;有錯誤的地方請指出&#xff0c;看個人主頁有驚喜。 作者&#xff1a;神的孩子都在歌唱 大家好…

【機器學習】數據預處理之數據歸一化

數據預處理之數據歸一化 一、摘要二、數據歸一化概念三、數據歸一化實現方法3.1 最值歸一化方法3.2 均值方差歸一化方法 一、摘要 本文主要講述了數據歸一化&#xff08;Feature Scaling&#xff09;的重要性及其方法。首先通過腫瘤大小和發現時間的例子&#xff0c;說明了不同…

【AIGC】語言模型的發展歷程:從統計方法到大規模預訓練模型的演化

博客主頁&#xff1a; [小????????] 本文專欄: AIGC | ChatGPT 文章目錄 &#x1f4af;前言&#x1f4af;語言模型的發展歷程&#xff1a;從統計方法到大規模預訓練模型的演化1 統計語言模型&#xff08;Statistical Language Model, SLM&#xff09;&#xff1a;統…

高效知識管理與分類優化指南:從目錄設計到實踐應用

摘要 本文旨在幫助讀者在信息爆炸時代構建高效的知識管理體系&#xff0c;提供了知識收藏目錄、瀏覽器書簽和電腦文件夾的優化分類方案。知識收藏目錄方案包括工作與項目、記錄與日常、知識管理等八大類&#xff0c;具有邊界清晰、擴展靈活、貼合實際場景等優勢。瀏覽器書簽分類…