论文阅读 - ANEMONE: Graph Anomaly Detection with Multi-Scale Contrastive Learning

news2024/11/22 23:46:22

目录

摘要

1 简介

2 问题陈述

3 PROPOSED ANEMONE FRAMEWORK

3.1 多尺度对比学习模型

3.1.1 增强的自我网络生成

3.1.2 补丁级对比网络  

 3.1.3 上下文级对比网络

3.1.4 联合训练 

 3.2 统计异常估计器

4 EXPERIMENTS 

4.1 Experimental Setup 

 4.1.1 Datasets

 4.1.2 Baselines

 4.1.3 Metric

4.2 有效性评价

4.3 Ablation Study and Parameter Analysis


 

论文链接:https://shiruipan.github.io/publication/cikm-21-jin/cikm-21-jin.pdf

摘要

        图的异常检测在网络安全、电子商务和金融欺诈检测等各个领域都发挥着重要作用。然而,现有的图异常检测方法通常考虑单一尺度的图视图,这导致它们从不同角度捕获异常模式的能力有限。为此,我们引入了一种新颖的图形异常检测框架,即 ANEMONE,以同时识别多个图尺度中的异常

        具体来说,ANEMONE 首先利用具有多尺度对比学习目标的图神经网络主干编码器,通过同时学习补丁和上下文级别的实例之间的协议来捕获图数据的模式分布。然后,我们的方法采用统计异常估计器从多个角度根据一致程度评估每个节点的异常。在三个基准数据集上的实验证明了我们方法的优越性。 

异常检测,图形神经网络,对比学习

1 简介

        近年来,由于图结构数据在现实系统建模中的广泛应用,包括电子商务和金融[16],图上的异常检测在数据挖掘社区[9]中受到越来越多的关注。以电子商务欺诈检测为例,异常检测算法可以通过分析用户的属性(即属性)和连接(即结构)来帮助识别欺诈卖家。

        与仅考虑每个样本的属性信息而忽略其潜在相关性的传统异常检测方法不同,图异常检测另一方面将样本(即节点)属性以及拓扑信息(即节点邻接度)纳入同时考虑[5]。早期的方法利用自我网络分析 [11]、残差分析 [4] 或 CUR 分解 [10] 等浅层机制来检测异常节点,这些节点无法从高维属性中学习信息知识。最近提出的方法 [1、5] 利用深度图自动编码器进行异常检测并显着提高性能。最近,通过引入图自监督学习 [7],CoLA [6] 将对比学习集成到图神经网络 (GNN) [14] 中,以有效检测图异常。

        尽管取得了成功,但这些方法主要从单一尺度的角度检测异常,忽略了图形中的节点异常经常出现在不同尺度上的事实。例如,一些电子商务作弊者可能直接与少量不相关的物品/用户进行交易(即本地异常),而其他作弊者则倾向于隐藏在地下行业的大型社区中(即全球异常)。这种尺度的异质性导致现有方法的性能欠佳。

        为了弥合这一差距,我们提出了一个具有多尺度对比学习(缩写为 ANEMONE)的图异常检测框架来检测图中的异常节点。首先,为了捕获不同尺度的异常模式,我们提出的框架通过两个基于 GNN 的模型同时执行补丁级和上下文级对比学习。此外,ANEMONE 采用一种新颖的异常估计器,通过利用多轮对比分数的统计来预测每个节点的异常。这项工作的主要贡献总结如下:

        我们提出了一个多尺度对比学习框架 ANEMONE,用于图形异常检测,它捕获不同尺度的异常模式。

        我们设计了一种新颖的基于统计的算法,以使用所提出的对比模式来估计节点异常。

        我们对三个基准数据集进行了广泛的实验,以证明 ANEMONE 在检测图上的节点级异常方面的优越性。

2 问题陈述

        在本文中,我们关注属性图的异常检测问题。令 G = (A, X) 为节点集 V = {v_1, · · · ,v_n } 的属性图。 A ∈ R^{n*n} 表示二元邻接矩阵,其中 Ai,j = 1 表示存在链接,否则 Ai,j = 0。X ∈ R^{n*f} 表示属性矩阵,其中第 i- 行 X[i, :] ∈ R 表示的属性向量。使用上述符号,我们将图形异常检测问题形式化如下:

        定义 2.1(图形异常检测)。给定一个属性图 G = (A, X),目标是学习函数 Y (·) : R^{n*n} * R^{n*f}R^{n} ,它将图作为输入数据并输出异常分数向量 y 来衡量每个节点的异常程度。具体来说,输出评分向量y中的第i-个元素y^{(i)}表示v_i的异常程度,评分越大表示异常程度越高.

        值得注意的是,图形异常检测是在无监督的情况下进行的,这意味着在训练阶段无法访问groundtruth标签.

3 PROPOSED ANEMONE FRAMEWORK

        我们提出了一个框架,即 ANEMONE,它基于多尺度对比学习 [2] 用于图形异常检测。我们方法的整体流程如图 1 所示。对于选定的目标节点,ANEMONE 通过利用两个主要组件计算该节点的异常分数:多尺度对比学习模型和统计异常估计器

        在多尺度对比学习模型中,两个基于 GNN 的对比网络分别学习补丁级别(即节点与节点)一致性和上下文级别(即节点与自我网络)一致性。之后,统计异常估计器聚合多个增强自我网络获得的补丁和上下文级别分数,并通过统计估计计算目标节点的最终异常分数。我们将在以下部分介绍这两个组件。

3.1 多尺度对比学习模型

3.1.1 增强的自我网络生成

        在多尺度对比学习模型中,我们首先生成目标节点的两个自我网络,并将数据增强作为网络的输入。

        ego-nets 生成背后的动机是捕获目标节点周围的子结构(这被证明与节点的异常 [6, 8] 高度相关),以及为模型训练提供足够多样性的输入数据和统计估计。

        考虑到上述情况,我们采用基于随机游走的算法 RWR [12] 作为我们的数据扩充策略。具体来说,以目标节点为中心,我们采样两个具有固定大小的自我网络,表示为 。在每个自我网络中,我们将节点集中的第一个节点设置为中心(目标)节点

        为了防止在接下来的对比学习步骤中发生信息泄漏,在将自我网络馈送到对比网络之前,应该在自我网络中实施名为目标节点掩码的预处理。具体来说,我们将目标节点的属性向量替换为零向量:。 

3.1.2 补丁级对比网络  

         patch-level contrastive network 的目标是学习掩蔽目标节点在 ego-net  中的嵌入与原始目标节点嵌入之间的一致性。首先,通过 GNN 模块获得 ego-net 的节点嵌入

        其中\Theta 是 GNN 的参数集。为简单起见,这里我们直接采用一层GCN [3],其中 是加入自环的邻接矩阵,是ego-net 的度矩阵 ,  为GCN层的权重矩阵,为embedding的维数,\sigma(·)为ReLU激活函数。这里 GCN 可以替换为其他类型的 GNN。 

         对于补丁级对比学习,我们通过让  来选择掩码目标节点的嵌入。值得注意的是,虽然相应的输入 是零向量,但嵌入  通过 GNN 聚合 ego-net 中其他节点的属性来提供信息。

         然后,ANEMONE 通过 MLP 模块计算目标节点的嵌入。我们将 v_i的属性向量表示为 ,目标节点嵌入  给出如下

         这里的权重与等式 (1)中的 GNN 共享,这确保 和  被投影到相同的嵌入空间中。

         之后,构建了一个对比学习模块来学习 之间的一致性。具体来说,我们利用双线性层来计算它们的相似度分数:

         其中 Wp 是可训练矩阵,\sigma(·) 是 Sigmoid 函数。

         为了学习一个有区别的对比网络,我们引入了一种用于模型训练的负采样策略。也就是说,对于给定的分数 (为了区分,我们将其表示为“正分数”),我们通过以下方式计算负分数 

         其中  是从以另一个节点为中心的自我网络获取的,确保 i≠j 。在实践中,我们的对比学习模型以小批量方式进行训练。因此,可以很容易地从同一批次的其他目标节点中获取 。使用 ,补丁级对比网络使用 Jensen-Shannon 散度 [13] 目标函数进行训练:

 3.1.3 上下文级对比网络

         对称地,上下文级对比网络与补丁级对比网络具有相似的架构。首先,类似于Eq (1),带有参数集的孪生 GNN 模块从输入的自我网络  生成节点嵌入 ,其公式为: 

        请注意,上下文级对比网络与补丁级对比网络具有不同的参数集,因为两个尺度的对比应该在不同的嵌入空间中进行 。

         补丁级和上下文级对比的主要区别在于,后者试图学习目标节点嵌入和自我网络嵌入之间的一致性,这是通过读出模块获得的:

        在本文中,我们采用平均池化作为我们的读出函数。

        为了将目标节点的属性投影到相同的嵌入空间,利用带有参数的 MLP 模块(类似于等式(2))来计算 。随后,上下文级别的分数  由具有评分矩阵 W 的双线性函数估计。最后,上下文级网络由目标函数训练: 

3.1.4 联合训练 

         在训练阶段,我们共同学习两个对比网络。总体目标函数为:         

        其中 \alpha∈ [0, 1] 是一个权衡参数,用于平衡两个组件之间的重要性 

 3.2 统计异常估计器

         在多尺度对比学习模型训练好后,ANEMONE 利用统计异常估计器计算推理阶段每个节点的异常分数。

         首先,对于一个给定目标节点,我们分别为补丁级和上下文级对比网络生成R个自我网络。同时,对负样本进行数量相等的采样。将它们送入对应的对比网络,我们一共得到4个分数,分别是:

        我们假设异常节点与其相邻结构和上下文的一致性较小。因此,我们将基本分数表示为负分数和正分数之间的差值:  

         其中下标“view”表示“p”或“c”,并且j∈[1,····,R]。

         然后,我们考虑一种用于异常估计的统计方法。背后的直觉是:1)异常节点具有相对较大的基础分数; 2)异常节点在多次自我网络采样下基础分数不稳定。因此,我们将统计异常分数  和 定义为基本分数的均值和标准差之和

         其中下标“view”代表“p”或“c”。最后,我们将  和 组合成最终的异常分数 v_i,其中方程式(9) 中的参数 作为权衡项:

 

4 EXPERIMENTS 

4.1 Experimental Setup 

 4.1.1 Datasets

         我们对三个著名的引文网络数据集进行了广泛的实验,即 Cora、CiteSeer 和 PubMed。表 1 总结了数据集的统计数据。由于默认情况下这些引文数据集没有异常,并且为了评估我们检测不同类型异常的方法,我们按照之前的工作 [1、6] 手动注入相同数量的属性和结构异常节点

 4.1.2 Baselines

        我们将 ANEMONE 与以下方法进行比较:AMEN [11]、Radar [4]、ANOMALOUS [10]、DOMINANT [1] 和 CoLA [6]。我们添加了 CoLA 的一个变体,CoLA,它将所提出的统计异常估计器集成到 CoLA 中。我们的代码在 GitHub 1 上可用,包括超参数设置。 

 4.1.3 Metric

        采用广泛应用的指标 ROC-AUC 来评估异常检测的性能。 ROC 曲线表示真阳性率与假阳性率的关系图,而 AUC 是 ROC 曲线下的面积。 AUC的值在[0, 1]之间,越大表示性能越好

4.2 有效性评价

        ROC 曲线如图 2(a)-(c) 所示,而 AUC 的比较在表 2 中给出。我们做出以下观察:

        一般来说,ANEMONE 在三个基准数据集上总是优于所有基线方法,这说明多尺度对比学习技术和统计异常估计器的结合显着有利于节点级异常检测。

        基于深度学习的方法,即 DOMINANT、CoLA 和 ANEMONE,明显优于浅层方法,表明浅层机制无法从高维属性和复杂的底层图结构中捕获异常模式。

        CoLA 显示出优于 CoLA 的性能增益,验证了所提议的统计异常估计器的有效性。 

4.3 Ablation Study and Parameter Analysis

        我们进一步比较了 ANEMONE 及其变体的结果,即 ANEMONE_mean 和 ANEMONE_std,它们在估计异常分数时仅考虑平均值或标准差

        正如我们在表 2 中看到的那样,异常估计器中的两个组件都对检测异常做出了贡献,并且基本分数的平均值与节点级异常具有更大的相关性。此外,将这两个术语结合在一起的 ANEMONE 实现了最佳性能。两个对比量表的有效性分析结果如图 2(d) 所示。我们观察到,当 Cora 等于 0.8,CiteSeer 等于 0.6,PubMed 等于 0.8 时,可以获得最佳性能。较大或较小的值都会导致性能下降。我们得出结论,补丁级别和上下文级别的对比性都可以暴露相应规模的排他性异常。综合考虑两个角度,我们可以获得最好的结果。

 

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

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

相关文章

Ethercat学习-QT添加SOEM主站

文章目录简介环境搭建1.QT安装2.VS安装3.Win10 Debuggers4.QT配置SOEM移植1.lib库生成2.文件移植1.文件整理2.添加文件至QT工程测试简介 QT版本5.14.2 VS版本2017 系统Win10 环境搭建 环境搭建很简单,就是安装几个软件就好了,没有特殊的…

快速排序及优化

快速排序及优化 概要 关于快速排序的原理不赘述,可以查看912. 排序数组 - 力扣(Leetcode) 本篇文章旨在提供快速排序的C#实现,并通过随机pivot,三数取中,小区间使用插入排序,栈实现&#xff…

Makefile学习

什么是Makefile 使用 GCC 编译器在 Linux 进行 C 语言编译,通过在终端执行 gcc 命 令来完成 C 文件的编译,如果我们的工程只有一两个 C 文件还好,需要输入的命令不多,当文件有几十、上百甚至上万个的时候用终端输入 GCC 命令的方…

NIFI大数据进阶_实时同步MySql的数据到Hive中去_可增量同步_实时监控MySql数据库变化_操作方法说明_01---大数据之Nifi工作笔记0033

然后我们来看如何把mysql数据实时同步到hive中去 可以看到,其实就是使用 CaptureChangeMySql来获取mysql中变化的数据,具体就是增删改数据 然后再用RouteOnAttribute通过属性,也就是根据是增删改的话,根据这个属性进行路由 把数据路由到不同的位置 然后再用EvaluateJsonPa…

创客匠人人物访谈:客户,如何反推创业发展? |

古语有云:“君者,舟也;庶人者,水也;水则载舟,水则覆舟”。 从创业的角度来看,客户,就是创业这艘小船在市场的海洋里能够安稳航行的必要条件。 在创业的过程中,一定是先有…

STC89C52串口通信当中的UART

1.串口介绍 串口是一种应用十分广泛的通讯接口,串口成本低、容易使用、通信线路简单,可实现两个设备的互相通信。 单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信,极大的扩展了单片机的应用范围&#xf…

Vue 也能复用模板了

文章目录Vue 也能复用模板了1. 怎么用1.1 基本使用1.2 传递参数2. 怎么实现的3. 注意事项4. 未来发展Vue 也能复用模板了 相信很多使用 Vue 的同学会遇到这样一个问题: “组件里有几个部分的模板(html 结构)是相同的,要想复用的…

使用线性回归构建波士顿房价预测模型

使用线性回归构建波士顿房价预测模型 描述 波士顿房价数据集统计了波士顿地区506套房屋的特征以及它们的成交价格,这些特征包括周边犯罪率、房间数量、房屋是否靠河、交通便利性、空气质量、房产税率、社区师生比例(即教育水平)、周边低收入…

前馈PID控制(热交换器/反应釜温度控制)

如何利用PID进行温度控制请参看下面博客文章: 博途PID 1200/1500PLC PID_Compact比例作用权重b微分作用权重c解读(PI-D控制器 I-PD控制器)_RXXW_Dor的博客-CSDN博客很多人会问PLC自带的PID指令和我们自己设计的PID有什么区别,这个问题要看你和什么PID控制器作对比,PID负反…

python真的如此好吗?

作为一名合格的(准)程序员,必做的一件事是关注编程语言的热度,编程榜代表了编程语言的市场占比变化,它的变化更预示着未来的科技风向和机会! Python霸占榜首 只因它真的很强 Python,年龄可能比…

2023年的深度学习入门指南(5) - HuggingFace Transformers库

2023年的深度学习入门指南(5) - HuggingFace Transformers库 这一节我们来学习下预训练模型的封装库,Hugging Face的Transformers库的使用。Hugging Face的库非常活跃,比如支持LLaDA大规型的类,是在本文开始写作的前一天发布的。 库新到这种…

JavaWeb——锁策略, cas和synchronized优化过程

目录 一、锁策略 1、悲观锁和乐观锁 2、轻量级锁和重量级锁 3、自旋锁和挂起等待锁 4、互斥锁和读写锁 5、可重入锁和不可重入锁 6、公平锁和非公平锁 二、cas和synchronized 优化过程 1、CAS(compare and swap) (1)、原…

企业网站架构部署与优化

系列文章目录 文章目录系列文章目录一、LAMP概述与简介1.LAMP2.各组件的主要作用如下:二、1.编译安装Apache http服务2.编译安装 Mysql 服务3.编译安装 PHP 解析环境总结一、LAMP概述与简介 1.LAMP LAMP架构是目前成熟的企业网站应用模式之一,指的是协…

如何高效建立知识库?

建立知识库是为了更好地管理和传承知识,提高团队的效率和成果。在建立知识库的过程中,需要注意一些关键点,以确保知识库的高效性和可持续性。本文将介绍如何高效建立知识库以及需要注意的事项。 一、建立知识库的步骤 1.明确知识库的目的和…

SpringBoot 默认数据库连接池 HikariCP

目录 引言 1、问题描述 2、SpringBoot默认的数据库连接池 3、HikariCP是什么 4、测试依赖 5、配置文件 5.1、数据库连接参数 5.2、连接池数据基本参数 5.3、连接检查参数 5.4、事务相关参数 5.5、JMX参数 6、HikariCP源码浅析 6.1、HikariConfig--连接池配置的加载…

Observability:使用 OpenTelemetry 和 Elastic 监控 OpenAI API 和 GPT 模型

作者:David Hope ChatGPT 现在很火,它打破了互联网。 作为 ChatGPT 的狂热用户和 ChatGPT 应用程序的开发者,我对这项技术的可能性感到无比兴奋。 我看到的情况是,基于 ChatGPT 的解决方案将呈指数级增长,人们将需要监…

Shiro概述

文章目录1.权限的管理1.1 什么是权限管理1.2 什么是身份认证1.3 什么是授权2.Shiro概述2.1 什么是Shiro2.2 Shiro 与 SpringSecurity 的对比2.3 基本功能3.shiro的核心架构4.shiro中的认证4.1 认证4.2 shiro中认证的关键对象4.3 身份认证流程4.4.登录认证实例4.5 自定义Realm5.…

Python标记数组的连通域

文章目录连通域标记structure参数操作连通域定位连通域连通域标记 通过label函数,可以对数组中的连通区域进行标注,效果如下 from scipy.ndimage import label import numpy as np a np.array([[0,0,1,1,0,0],[0,0,0,1,0,0],[1,1,0,0,1,0],[0,0,0,1,0…

虚拟机里安装ubuntu-23.04-beta-desktop-amd64,开启SSH(换源、备份),配置中文以及中文输入法

一、下载 官网 清华镜像站(推荐) 二、配置虚拟机 【自定义】 点击“下一步”,此处【默认】,再点击“下一步”。 点击“稍后安装操作系统”,再点击“下一步”。 点击“Linux(L)”,版本选择【Ubuntu 64 位】,再点击…

轻量级网页RSS阅读器selfoss

什么是 selfoss ? selfoss 是一个多用途的 RSS 阅读器和提要聚合 Web 应用程序。它使您可以在一个地方轻松关注来自不同网站、社交网络和其他平台的更新。它是用 PHP 编写的,基本上可以让您在任何地方运行它。 安装 在群晖上以 Docker 方式安装。 在注…