GADBench Revisiting and Benchmarking Supervised Graph Anomaly Detection

news2024/10/11 21:50:24

Neurips 23
推荐指数: #paper/⭐⭐⭐
领域:图异常检测

胡言乱语:

neurips 的benchmark模块的文章总能给人一些启发性的理解,这篇的insight真有意思。个人感兴趣的地方会加粗。此外,这篇文章和腾讯AIlab合作,有腾讯背书

文章的背景

缺陷

  1. 缺乏有监督GAD benchmark
    1. 缺乏树集成与GNN之间的比较研究
    1. 缺乏对大数据集的探索
  2. 发现

    1. 有邻居聚合的数集成比大部分模型的性能都好
    1. 大部分的标准数据集都不适合GAD task
    1. 针对GAD进行针对性设计的GNN需要超参微调才能取得满意的性能
  3. 我们的贡献

    1. 提出了GADBench
      10.2. 使用公平和严格的比较方法

相关工作

GAD的简介

GAD其实可以视为二分类问题。但是,仍然有下列的挑战:

  1. 异常节点通常是整个数据集的一小部分,这会导致数据的不平衡问题。
    1. 异常节点通常展现强异配性,这就需要对于传播函数的改造
    1. 异常节点倾向于掩盖其特征和链接,通过模仿图中的正常模式来无缝混合
  2. 本文涉及的方法:

  3. 文章配图
  4. 标准GNN即常见的GNN,
  5. specializedGNN

  6. specialized GNN通常需要专门的设计。
  7. 重点提及一下光谱GNN,光谱GNN提供了一个新的观点,将图形异常与高频频谱分布联系起来例如,BWGNN 应用Beta内核通过灵活且局部化的带通过滤器来管理较高频率的异常。AMNet 捕获低频和高频信号,自适应地积分不同频率的信号。
    10.### 有邻居集合的树集成
    h v i ( l ) = Aggregate { h v j ( l − 1 ) ∣ v i ∈ Neighbor ( v j ) } Score ⁡ ( v i ) = TreeEnsemble ( [ h v i 0 ∣ ∣ h v i 1 ∣ ∣ ⋯ ∣ ∣ h v i L ] ) . \begin{aligned} \boldsymbol{h}_{v_i}^{(l)}& =\text{Aggregate}\{\boldsymbol{h}_{v_j}^{(l-1)}|v_i\in\text{Neighbor}(v_j)\} \\ \operatorname{Score}(v_i)& =\text{TreeEnsemble}([\boldsymbol{h}_{v_i}^0||\boldsymbol{h}_{v_i}^1||\cdots||\boldsymbol{h}_{v_i}^L]). \end{aligned} hvi(l)Score(vi)=Aggregate{hvj(l1)viNeighbor(vj)}=TreeEnsemble([hvi0∣∣hvi1∣∣∣∣hviL]).
    AGGRATE可以是任何聚合函数,比如mean,max,polling。
    在GADBench中,我们利用Random Forest和XGboost实例化两个具有邻居聚合的新树集成基线,称为RF-Shape和XGB-Shape。

数据集介绍

文章配图

分割

全监督场景,我们一般使用4/2/4的划分,具体的划分见数据集介绍。对于半监督场景,在先前的研究中,经常采取1%或者5%,然而,因为图数目的变化,固定碧梨的训练模型可能导致训练集规模的据他差异。因此我们队所有的训练集进行标准化:一共100个标签,20异常标签,80正常节点。

Insight

文章配图

带有邻居聚合的树聚集成有着超强的性能

大部分标准GNN都不适合GAD

但是,有一个例外:GraphSage展现了优越的性能,甚至有时可以和专门设计的GNN比较。个人认为,GraphSAGE可以捕获自己和邻居的不同(GraphSAGE在聚合中将自身节点和邻居节点拼接在一起,这就意味着可以收货自己与周围节点的异同信息,这是其他标准GNN所不具备得

专门设计的GNN需要复杂的调参才可以取得满意的性能

异构图的增强可能只在部分数据集上起作用

文章配图
如图所示,异构图只在Yelp上有增强效果,在Amazon上比不过同配图

聚合层数对于数集成的影响

文章配图

为什么决策树的性能会更好?

文章配图
异常实例往往会形成多个分散的集群,并与正常实例相结合,这些实例属于RF-Shape和XGB-Shape的感性偏差类别,有利于复杂且不相交的决策边界。相比之下,由于GNN通常使用MLP作为最终层,因此它们往往会生成简单且连续的决策边界,这使得GNN在一些具有挑战性的GAD数据集上表现不佳。其实就是insights:用简单的MLP不行,得设计的更复杂。但是,异常检测脱胎与图神经网络,其比较本质上就是比较嵌入的良好程度,个人觉得GNN后接更复杂的分类损失,也可以取得像树集成类似的效果

分析数据集的影响

如数据集简介所示,所示,在GADB的10个数据集中,有3个数据集纯粹使用文本嵌入作为节点特征,而在其余7个数据集中,节点特征包含各种信息,例如数字、分类和时间特征的组合。值得注意的是,对于依赖于基于文本的特征的数据集–即Reddit、weibo和Question–GNN展示了与包括树集成在内的其他方法相比具有竞争力的性能。这可以归因于文本嵌入的性质:它们通常表示高维特征空间中的低维流形,其中维度往往高度相关。GNN可以同时处理所有这些维度,而单个决策树可能只考虑功能列的有限子集。相反,在其他7个具有低相关性的不同特征类型(例如,性别和年龄信息)的数据集中,具有邻居聚集的树集成通常表现出更好的性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2205959.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

嵌入式基本知识

文章目录 调试接口仿真器MCU实际的调试接口 调试接口 调试接口用于对MCU进行编程和调试,这里的编程指将源代码编译后的.hex文件写入MCU闪存特定地址中,调试指MCU运行代码debug的过程。 不同的接口协议有不同的接口类型。SWD协议调试接口的引脚主要有&a…

卡码网C++基础课 |20. 排队取奶茶

目录 前言 一、题目描述 二、解题思路 1.队列 2.队列的操作 三、完整代码 总结 前言 仅个人记录所用 源自卡码网的C基础课 “这门C基础课 帮助 编程零基础学员快速学习刷算法题所需要的基础语法知识,学完之后,再来刷代码随想录,或者自己去…

CentOS 7.9 局域网配置指定同步时间服务器

在 CentOS 7.9 中,默认的时间同步工具是 chrony。以下是如何配置 NTP 服务器地址并使用 chrony 进行时间同步的步骤: 1. 安装 chrony(通常已经预装可忽略) 通过systemctl status chronyd检查是否已经安装启动 如果没网可以直接…

npm安装依赖报错npm ERR! Unexpected token ‘.

电脑是windows的,因为有多个项目做开发,每个项目需要的node版本不一样,所以使用了nvm做node管理。 电脑的nvm是1.1.7版本的。 新项目在安装依赖时突然报错如下: npm ERR! Unexpected token .在网上查了很多都说是nvm版本太低了&…

【MLP-Mixer】核心方法解读

abstract: 我们提出MLP-Mixer架构(或简称“Mixer”),这是一个具有竞争力但在概念和技术上都很简单的替代方案,它不使用卷积或自关注。相反,Mixer的架构完全基于多层感知器(mlp),这些感知器可以在空间位置或特征通道上…

渗透测试 之 域渗透手法【域内用户枚举】手法 Kerbrute msf pyKerbrute 工具使用详解

说明一下: 域内用户枚举工具使用说说: Kerbrute pyKerbrute MSF模块的使用 域内用户名枚举原理分析: 域内用户枚举攻击防御: 流量检测: 日志层面: 说明一下: 域环境或者内网环境下,可以在没有域环…

深入理解Transformer的笔记记录(精简版本)---- ELMO->GPT->BERT

1、ELMO word embedding无法区分多义词的不同语义,其本质上是个静态的方式,所谓静态指的是训练好之后每个单词的表达就固定住了,以后使用的时候,不论新句子上下文单词是什么,这个单词的Word Embedding不会跟着上下文场景的变化而改变 ELMO根据当前上下文对Word Embed…

有趣的python库:用 difflib 实现文本差异的可视化

一,介绍 difflib 模块是Python标准库的一部分,提供了一系列用于比较序列的类和函数,特别适用于文本比较任务。这个模块可以帮助用户发现两个文本文件或字符串序列之间的差异,并以多种格式展示这些差异,比如这样&#…

400行程序写一个实时操作系统RTOS(开篇)

笔者之前突发奇想,准备写一个极其微小的实时操作系统内核,在经过数天的努力后,这个RTOS诞生了。令读者比较意外的是,它的程序只有400行左右。但就是这短短的400行,完成了动态内存管理、多线程、优先级、低功耗管理、调…

深度学习--------------------------------使用注意力机制的seq2seq

目录 动机加入注意力Bahdanau注意力的架构 总结Bahdanau注意力代码带有注意力机制的解码器基本接口实现带有Bahdanau注意力的循环神经网络解码器测试Bahdanau注意力解码器该部分总代码 训练从零实现总代码简洁实现代码 将几个英语句子翻译成法语该部分总代码 将注意力权重序列进…

BUG修复(不断整理想起什么就整理什么)

声明:此篇博文是记录本人从开始学习计算机过程中遇到的各种类型的报错以解决办法,希望给同道中人提供一点绵薄的帮助,也欢迎大家在评论区讨论或私信我交流问题 共同进步! 一、FPGA系列 1.Synthesis failed 错误:综合失败&#…

Python | Leetcode Python题解之第468题验证IP地址

题目: 题解: class Solution:def validIPAddress(self, queryIP: str) -> str:if queryIP.find(".") ! -1:# IPv4last -1for i in range(4):cur (len(queryIP) if i 3 else queryIP.find(".", last 1))if cur -1:return &q…

测试工作能干到退休!从会写一份成长型测试周报开始

测试周报则是反映团队工作进展和专业态度的一扇窗口。通过周报,我们不仅可以展示一周内的工作成果,更可以体现团队的工作心态——是积极进取、不断学习的成长型心态,还是仅仅满足于现状、缺乏动力的躺平型心态。本文将带您深入了解这两种不同…

Vue 项目文件大小优化

优化逻辑 任何优化需求,都有一个前提,即可衡量。 那 Vue 加载速度的优化需求,本质上是要降低加载静态资源的大小。 所以,优化前,需要有一个了解项目现状的资源加载大小情况。 主要分 3 步走: 找到方法测…

k8s jenkins 动态创建slave

k8s jenkins 动态创建slave 简述使用jenkins动态slave的优势:配置jenkins动态slave配置 Pod Template配置容器模板挂载卷 测试 简述 持续构建与发布是我们日常工作中必不可少的一个步骤,目前大多公司都采用 Jenkins 集群来搭建符合需求的 CI/CD 流程&am…

8. 多态、匿名内部类、权限修饰符、Object类

文章目录 一、多态 -- 花木兰替父从军1. 情境2. 小结 二、匿名内部类三、权限修饰符四、Object -- 所有类的父类(包括我们自己定义的类)五、内容出处 一、多态 – 花木兰替父从军 1. 情境 我们现在新建两个类HuaMuLan和HuaHu。HuMuLan是HuaHu的女儿,所以她会有她父…

利用编程思维做题之链表内指定区间反转

牛客网题目 1. 理解问题 给定一个单链表和两个整数 m 和 n,要求反转链表中从位置 m 到位置 n 的节点,最后返回反转后的链表头节点。 示例: 输入:链表 1 -> 2 -> 3 -> 4 -> 5 -> NULL,m 2,…

《市场营销学》PPT课件.ppt

网盘:https://pan.notestore.cn/s.html?id29https://pan.notestore.cn/s.html?id29

山西农业大学20241011

03-JAVASCRIPT 一.数组二.BOM1. window对象2. location对象3. history对象4. navigator对象5. screen对象6. cookie对象 三.DOM操作1. 概述2. 查找元素2.1 id方式2.2 标签名方式2.3 class名方式2.4 css选择器方式 一.数组 <script>// 1. 创建数组, 通过数组字面量// …

不卷且创新idea:KAN+特征提取!10篇高分套路拆解,快来抄作业!

今天和大家分享一种创新的深度学习技术&#xff1a;KAN特征提取。 这种技术通过引入KAN来增强模型的特征处理能力&#xff0c;借由KAN的自适应激活函数&#xff0c;动态调整数据特性&#xff0c;从而有效提取更加准确的特征&#xff0c;实现更高性能的模型表现。 这种优势让K…