GADBench Revisiting and Benchmarking Supervised Graph Anomaly Detection
Neurips 23
推荐指数: #paper/⭐⭐⭐
领域:图异常检测
胡言乱语:
neurips 的benchmark模块的文章总能给人一些启发性的理解,这篇的insight真有意思。个人感兴趣的地方会加粗。此外,这篇文章和腾讯AIlab合作,有腾讯背书
文章的背景
缺陷
- 缺乏有监督GAD benchmark
-
- 缺乏树集成与GNN之间的比较研究
-
- 缺乏对大数据集的探索
-
发现
-
- 有邻居聚合的数集成比大部分模型的性能都好
-
- 大部分的标准数据集都不适合GAD task
-
- 针对GAD进行针对性设计的GNN需要超参微调才能取得满意的性能
-
我们的贡献
-
- 提出了GADBench
10.2. 使用公平和严格的比较方法
- 提出了GADBench
相关工作
GAD的简介
GAD其实可以视为二分类问题。但是,仍然有下列的挑战:
- 异常节点通常是整个数据集的一小部分,这会导致数据的不平衡问题。
-
- 异常节点通常展现强异配性,这就需要对于传播函数的改造
-
- 异常节点倾向于掩盖其特征和链接,通过模仿图中的正常模式来无缝混合
-
本文涉及的方法:
- 标准GNN即常见的GNN,
-
specializedGNN
- specialized GNN通常需要专门的设计。
- 重点提及一下光谱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(l−1)∣vi∈Neighbor(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个具有低相关性的不同特征类型(例如,性别和年龄信息)的数据集中,具有邻居聚集的树集成通常表现出更好的性能。
相关文章:

GADBench Revisiting and Benchmarking Supervised Graph Anomaly Detection
Neurips 23 推荐指数: #paper/⭐⭐⭐ 领域:图异常检测 胡言乱语: neurips 的benchmark模块的文章总能给人一些启发性的理解,这篇的insight真有意思。个人感兴趣的地方会加粗。此外,这篇文章和腾讯AIlab合作ÿ…...

某象异形滑块99%准确率方案
注意,本文只提供学习的思路,严禁违反法律以及破坏信息系统等行为,本文只提供思路 如有侵犯,请联系作者下架 该文章模型已经上线ocr识别网站,欢迎测试!!,地址:https://yxlocr.windy-rain.cn/ocr/slider/6 所谓的顶象异形滑块,是指没有采用常规的缺口,使用各种形状的…...

CDN绕过学习
1.什么是CDN? CDN就是分布在各个地区的服务器,这些服务器储存着数据的副本。 哪些服务器比较接近你,当你发起请求时,提前就会快速为你提供服务。 总结来说就是: 其实就是用来加速访问的,以及缓解压力&a…...

SpringBoot日常:redission的接入使用和源码解析
文章目录 一、简介二、集成redissionpom文件redission 配置文件application.yml文件启动类 三、JAVA 操作案例字符串操作哈希操作列表操作集合操作有序集合操作布隆过滤器操作分布式锁操作 四、源码解析 一、简介 Redisson 是一个在 Redis 的基础上实现的 Java 驻内存数据网格…...

npm包管理深度探索:从基础到进阶全面教程!
目录 一、npm概述1、npm简介(1)什么是npm?(2)npm的核心功能(3)npm的工作原理(4)npm的优势(5)npm的局限性(6)总结 2、npm的…...

最新免费GPT4O和Midjourney
一、什么是GPT4O? GPT-4 是 OpenAI 研发的大型语言模型。它具有强大的语言理解和生成能力,在自然语言处理等诸多领域有着广泛的应用和表现。 二、什么是Midjourney? Midjourney 是一款人工智能图像生成工具。它可以根据用户输入的描述或提…...

python操作OpenAI教程
python操作OpenAI pip install -U openai代码: from openai import OpenAI# 解决请求超时问题 import os os.environ["http_proxy"] "http://localhost:7890" os.environ["https_proxy"] "http://localhost:7890"# 需要…...

如何版本REST API:综合指南
目录 总则什么是REST API版本控制?为什么API版本控制很重要?如何对REST API进行版本控制 理解API契约评估需求选择版本控制策略沟通变化保持向后兼容性详细文档记录REST API版本控制最佳实践REST API版本控制常见问题:REST API版本控制总则 版本化REST API对于确保软件应用…...

Docker 环境下 Nginx 监控实战:使用 Prometheus 实现 Nginx 性能监控的完整部署指南
Docker 环境下 Nginx 监控实战:使用 Prometheus 实现 Nginx 性能监控的完整部署指南 文章目录 Docker 环境下 Nginx 监控实战:使用 Prometheus 实现 Nginx 性能监控的完整部署指南一 查看模块是否安装二 配置 status 访问端点三 Docker 部署 nginx-prome…...

网络安全-IPv4和IPv6的区别
1. 2409:8c20:6:1135:0:ff:b027:210d。 这是一个IPv6地址。IPv6(互联网协议版本6)是用于标识网络中的设备的一种协议,它可以提供比IPv4更大的地址空间。这个地址由八组十六进制数字组成,每组之间用冒号分隔。IPv6地址通常用于替代…...

【移动端】事件基础
一、移动端事件分类 移动端事件主要分为以下几类: 1. 触摸事件(Touch Events) 触摸事件是移动设备特有的事件,用来处理用户通过触摸屏幕进行的操作。主要的触摸事件有: touchstart:手指触摸屏幕时触发。…...

软件测试比赛-学习
一、环境配置 二、浏览器适配 //1.设置浏览器的位置,google浏览器位置是默认且固定在电脑里的//2.设置浏览器驱动的位置,C:\Users\27743\AppData\Local\Google\Chrome\ApplicationSystem.setProperty("webdriver.chrome.driver", "C:\\Users\\27743\\AppData\\…...

力扣LeetCode-链表中的循环与递归使用
标题做题的时候发现循环与递归的使用差别: 看两道题: 两道题都是不知道链表有多长,所以需要用到循环,用到循环就可以把整个过程分成多个循环体,就是每一次循环要执行的内容。 反转链表: 把null–>1…...

AFSim仿真系统 --- 系统简解_08 传感器与特征
传感器与特征 传感器是平台的一部分,为拥有该平台提供了探测其他平台及其组成部分的能力。 特征是平台的一种属性,用于确定特定传感器是否能够探测到特征所拥有的平台。 以下是用于探测平台的一些特征属性列表: 声学红外光学雷达 AFSIM …...

已经安装了qt,想添加mingw组件,包含gcc等
1、已经安装了qt,想添加mingw组件, 步骤1 双击打开MaintenanceTool.exe, 步骤2: 选择清华大学开源软件镜像网站,选择相应QT版本添加网址https://mirrors.tuna.tsinghua.edu.cn/qt/online/qtsdkrepository/windows_x8…...

数据库管理-第250期 深入浅出多主多活数据库技术- Cantian存储引擎(一)(20241009)
数据库管理250期 2024-10-09 数据库管理-第250期 深入浅出多主多活数据库技术- Cantian存储引擎(一)(20241009)1 简介2 引擎构成3 引擎架构4 文件分布5 分布式MVCC6 限制/要求总结 数据库管理-第250期 深入浅出多主多活数据库技术…...

信号用wire类型还是reg类型定义
wire类型就是一根线,线有两端,一端发生改变,经过线传递的信号当然也会发生改变,reg类型则不同,可以把reg类型理解为存储数据的寄存器,当满足一定条件时,数值才被激活发生改变。 那么࿰…...

与鸿蒙同行,Java Solon v3.0 正式发布(向下兼容)
与 HarmonyOS NEXT 10月8日公测同行。Solon (开放原子开源基金会,孵化项目) v3.0 正式发布, 且将在 2025 年启动华为编程语言 “仓颉” 版开发(届时会有 Solon-Java 和 Solon-CJ 两大版本)。本次大版本更新…...

数据驱动投资:AI在股票市场的应用
当ChatGPT首次亮相时,其卓越的语言处理能力立刻引起了许多行业的广泛关注,投资界也不例外。关于ChatGPT是否能应用于投资决策的问题,迅速成为热门讨论的焦点。 近期,加拿大多伦多大学和印度孟买理工学院的研究人员联合开展了一项…...

Tita使用小技巧:项目类型自定义,业务管理个性化
应用场景 某互联网企业,企业内部有研发部,有销售部 研发部通常需要管理各种技术研发类型项目,因此需要管理「研发型」项目,该类型项目需要明确「所属产品」、「级别管理:国家级/省市级」、「项目类别:创新…...

国药准字:您购药的可靠指南
益安宁丸为同溢堂药业有限公司所独家生产的一款中成药,在内地市场和港澳地区均有上市。 益安宁丸真品的唯一标准:无论港版还是内地版,包装盒必然有国药准字Z20063087标识,但凡没有国药准字标识的必为假药。...

Python类学习(2)——未完待续
函数和类的参数传递 实例方法 class House:# 类构造方法,也是实例方法def __init__(self, area, price):self.area areaself.price pricedef cls_func(self, arg):print(arg)my_house House(America, 330) # 实例化类对象,需要传入init中的两个参数 print(f…...

微前端框架 qiankun 全面解析到源码实现
微前端(Micro Frontends)是一种将大型前端应用拆分为多个独立模块的架构设计思想,旨在解决复杂应用开发与维护的难题。qiankun 是目前流行的微前端解决方案之一,基于 single-spa 进行封装,提供了一种简单且完整的微前端…...

初始化数据的正确方式?
关于这篇文章 https://proandroiddev.com/loading-initial-data-in-launchedeffect-vs-viewmodel-f1747c20ce62 pl的视频解读 当在viewmodel中需要进行数据的初始化的时候 viewmodel.initData() 放在哪里合适呢,大部分情况下可以放在 viewmodel的init{}模块&…...

Flutter平台嵌入器
When you build a Flutter app, it’s not just about the code you write in Dart and the Flutter framework. There’s also a crucial piece called the platform embedders that enable your Flutter app to run on different operating systems like Android, iOS, and s…...

微信小程序——婚礼邀请函
一、界面设计 首页: 精美的婚礼主题背景图,可能是新人的婚纱照或浪漫的插画。温馨的欢迎语,如 “欢迎参加我们的婚礼”。一个 “打开邀请函” 的按钮,引导用户进入邀请函详情页面。 邀请函详情页面: 顶部展示新人的照片…...

WebRTC Connection Negotiate解决
最近有个项目 ,部署之后一直显示,查了一些资料还是没有解决,无奈只有自己研究解决?经过排查,应该是内网穿透的问题 什么是内网穿透? 我们访问我们自己的官网产品页面,我们的服务器是一个单独…...

Redis面试篇1
1、为什么要用缓存? 使用缓存的目的就是提升读写性能。在实际的业务场景下,更多的是为了提升读性能,带来更好的性能和并发量。Redis的读写性能比MySQL好的多,我们就可以把MySQL中的热点数据缓存到Redis,提升读取性能&…...

Debezium系列之:Debezium 3.0.0.Final发布
Debezium系列之:Debezium 3.0.0.Final发布 Debezium 核心的变化需要 Java 17基于Kafka 3.8 构建废弃的增量信号字段的删除每个表的详细指标MariaDB连接器的更改版本 11.4.3 支持MongoDB连接器的更改MongoDB sink connectorMySQL连接器的改变MySQL 9MySQL向量数据类型Oracle连接…...

一文解决jQuery表格插件DataTable导出PDF中文乱码问题
原因是默认字体不支持中文,需要更换字体。 详情官网:pdfmake 官网的大致意思是,下载pdfmake后,自行生成可用的字体js文件 以下是详细操作: 重要前提:电脑上需要已安装nodejs 点击进入官网下载安装即可&a…...