【GNN+异常检测】Deep Anomaly Detection on Attributed Networks

news2024/11/24 10:03:16

文章目录

  • 论文简介
    • 摘要
    • 属性网络相关介绍
    • 存在的问题
    • 论文贡献
      • 1. 提出的模型 - Dominant
      • 2. 实验

论文简介

原文题目:Deep Anomaly Detection on Attributed Networks
中文题目:基于属性网络的深度异常检测
发表会议:SIAM International Conference on Data Mining
发表年份:2019-05-06
作者:Kaize Ding Jundong Li Rohit Bhanushali Huan Liu
latex引用

@inproceedings{ding2019deep,
  title={Deep anomaly detection on attributed networks},
  author={Ding, Kaize and Li, Jundong and Bhanushali, Rohit and Liu, Huan},
  booktitle={Proceedings of the 2019 SIAM International Conference on Data Mining},
  pages={594--602},
  year={2019},
  organization={SIAM}
}

摘要

属性网络无处不在,是现代信息基础设施的重要组成部分,其中附加的节点属性在知识发现中补充了原始网络结构。近年来,在属性网络上检测异常节点已经引起了越来越多的研究关注,并在网络安全、金融和医疗保健等各种高影响领域得到了广泛的应用。然而,现有的大多数尝试都是通过自我网络或社区分析或通过子空间选择来解决浅层学习机制的问题。毫无疑问,这些模型不能完全解决属性网络的计算挑战。例如,它们经常受到网络稀疏性和数据非线性问题的困扰,并且无法捕获不同信息模式之间复杂的相互作用,从而影响异常检测的性能。为了解决上述问题,本文通过开发一种新的深度模型来研究属性网络的异常检测问题。特别是,我们提出的深度模型:

(1)明确地为节点嵌入学习与流行的图卷积网络(GCN)无缝地建模拓扑结构和节点属性;

(2)是定制的,以解决异常检测问题,通过深度自编码器利用学习到的嵌入来重建原始数据。

GCN和自编码器之间的协同作用使我们能够从结构和属性两个角度测量节点的重建误差,从而发现异常。在现实世界属性网络数据集上的大量实验证明了我们提出的算法的有效性。

属性网络相关介绍

由于属性网络在统一不同模态信息方面具有强大的建模能力,因此对属性网络中模式与其他多数节点显著偏离的异常节点的检测成为研究热点。一般来说,属性网络中节点的异常不仅取决于节点之间的相互作用(拓扑结构),还可以通过节点的内容不协调(节点属性)来衡量。

存在的问题

  1. 网络稀疏性——在现实世界的属性网络上,网络结构可能非常稀疏;因此,自我网络或社区分析很难执行,因为它们高度依赖于观察到的节点交互。

  2. 数据非线性——节点间的相互作用和节点属性是高度非线性的,而现有的基于子空间选择的异常检测器主要采用线性机制对属性网络进行建模。

  3. 复杂模态交互——由于两个信息源的组合令人困惑,属性网络非常难以处理,这就需要一个统一的特征空间来捕获它们的复杂交互以进行异常检测。

论文贡献

  1. 开发了一个有原则的图卷积自编码器Dominant,它无缝地建模属性网络并在联合框架中进行异常检测。特别地,该模型可以从结构和属性两个角度分析节点的重构误差,从而发现异常。
  2. 在来自不同领域的各种属性网络上评估我们提出的模型。实验结果表明,本文提出的框架具有良好的性能。

论文解决上述问题的方法:

  • 网络稀疏性、复杂模态交互:使用GCN。以拓扑结构和节点属性为输入,通过叠加多层线性单元和非线性激活函数来学习判别性节点嵌入。
  • 数据非线性:GCN可以从结构和属性两个角度分析节点的重构误差,从而发现异常
  • 异常检测:首先使用图卷积网络作为编码器函数,将输入属性网络压缩为简洁的低维嵌入表示;然后利用相应的解码器函数重构拓扑结构和节点属性。然后利用编码器和解码器阶段后节点的重建误差来发现属性网络上的异常节点。

1. 提出的模型 - Dominant

将属性网络上的异常检测任务表述为一个排序问题:

属性网络异常排序:给定一个属性网络G,邻接矩阵用A表示,属性信息矩阵用X表示,任务是根据异常程度对所有节点进行排序,与大多数参考节点不同的节点应该被排在较高的位置上。

Dominant的基本构建块是深度自编码器[11],它由三个基本组成部分组成

  1. 属性网络编码器——它在与GCN的节点嵌入表示学习的联合框架中无缝地建模网络结构和节点属性
  2. 结构重建解码器——目的是利用学习到的节点嵌入重构原始网络拓扑
  3. 属性重构解码器——尝试用获得的节点嵌入重构观察到的节点属性。然后,利用节点的重建误差来标记属性网络上的异常。

在这里插入图片描述

深度自编码器:

如[32,37,17]所示,原始数据与估计数据之间的差异(即重构误差)是显示数据集中实例异常的有力指标。具体来说,重构误差较大的数据实例更有可能被认为是异常,因为它们的模式与大多数数据有明显的偏差,无法从观测数据中准确地重构。在各种基于重构的异常检测方法中,深度自编码器达到了最先进的性能。

给定输入数据集X,首先应用编码器Enc(·)将数据映射到潜在的低维特征空间,然后解码器Dec(·)尝试基于潜在表征恢复原始数据。学习过程可以描述为最小化成本函数,如下所示:

m i n { E [ d i s t ( X , D e c ( E n c ( X ) ) ) ] } min\{ E[dist(X,Dec(Enc(X)))] \} min{E[dist(X,Dec(Enc(X)))]}

  1. 属性网络编码器

    GCN,获得新的节点嵌入矩阵Z,形状为(node_size, embedding_size)

  2. 结构重建解码器

    重构时,判定原图中节点i和节点j之间是否存在链接的方法:
    p ( A ^ i , j = 1 ∣ z i , z j ) = s i g m o i d ( z i , z j T ) p(\hat{A}_{i,j}=1|z_i,z_j) = sigmoid(z_i,z_j^T) p(A^i,j=1∣zi,zj)=sigmoid(zi,zjT)
    原理:判定两个向量在空间中的相似度,即两个向量进行内积运算即可。如果同向,则值最大。再用sigmoid函数将量纲控制在[0,1]之间,这样做获得的值也可以直接当成概率使用。
    应用到矩阵上,即为:
    A ^ = s i g m o i d ( Z Z T ) \hat A = sigmoid(ZZ^T) A^=sigmoid(ZZT)

    然后通过结构重构误差来确定网络上的结构异常:
    R S = A − A ^ R_S = A−\hat A RS=AA^

  3. 属性重建解码器

    属性重建解码器利用另一个图卷积层来预测原始节点属性,最终输出重构后的节点嵌入 X ^ \hat X X^,然后通过计算出的重构误差,我们可以从属性的角度发现属性网络上的异常:
    R A = X − X ^ R_A = X−\hat X RA=XX^

  • 异常检测

    为了共同学习重构误差,我们提出的深度图卷积自编码器的目标函数可以表示为:
    L = ( 1 − α ) R S + α R A = ( 1 − α ) ∣ ∣ A − A ^ ∣ ∣ F ′ 2 + α ∣ ∣ X − X ^ ∣ ∣ F ′ 2 L = (1-\alpha) R_S + \alpha R_A = (1-\alpha)||A-\hat A||^2_{F'}+ \alpha ||X-\hat X||^2_{F'} L=(1α)RS+αRA=(1α)∣∣AA^F2+α∣∣XX^F2
    这样一来,每个节点的异常分数就可以表示为:
    s c o r e ( v i ) = ( 1 − α ) ∣ ∣ a − a i ^ ∣ ∣ 2 + α ∣ ∣ x i − x i ^ ∣ ∣ 2 score(v_i) = (1-\alpha)||a-\hat{a_i}||_2 + \alpha||x_i-\hat{x_i}||_2 score(vi)=(1α)∣∣aai^2+α∣∣xixi^2

    具体来说,分数较高的实例更有可能被视为异常;这样我们就可以根据相应的异常分数来计算异常的等级。

2. 实验

  • 数据集:

    • BlogCatalog: BlogCatalog是一个博客分享网站。blogcatalog中的博主可以互相关注,形成一个社交网络。用户与一组标签相关联,以描述他们自己和他们的博客,这些标签被视为节点属性。
    • Flickr: Flickr是一个图片托管和分享网站。类似于BlogCatalog,用户可以互相关注,形成一个社交网络。用户的节点属性由其指定的反映其兴趣的标签定义。
    • ACM: ACM是另一个来自学术领域的归属网络。它是一个引文网络,每一篇论文都被看作是网络上的一个节点,链接就是不同论文之间的引文关系。每篇论文的属性由论文摘要生成。
  • 基线模型:

    • LOF[4]在上下文层面检测异常,只考虑节点属性。
    • SCAN[34]是一种基于结构的检测方法,它能探测到结构层面的异常。
    • AMEN[24]同时使用属性和网络结构信息来检测异常邻域。具体来说,从自我网络的角度分析了各节点的异常情况。
    • Radar[17]是用于属性网络的最先进的无监督异常检测框架。它通过描述属性信息的残差及其与网络信息的一致性来检测异常行为。
    • ANOMALOUS[23]基于CUR分解和残差分析,进行联合异常检测和属性选择,检测属性网络上的异常。
  • 参数:

    • 优化算法:Adam
    • epoch:300
    • learning_rate:0.005
    • 三层卷积层embedding_size:64,32,16

在这里插入图片描述

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

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

相关文章

Java“魂牵”京东店铺所有商品数据接口,京东店铺所有商品API接口,京东API接口申请指南

要通过京东的API获取店铺所有商品数据,您可以使用京东开放平台提供的接口来实现。以下是一种使用Java编程语言实现的示例,展示如何通过京东开放平台API获取整店商品数据: 首先,确保您已注册成为京东开放平台的开发者,…

快速提升代码性能:FastAPI多线程的利用

在现代网络应用中,高性能和快速响应是至关重要的,Python 的 FastAPI 框架以其出色的性能和简单易用的特点,成为了许多开发者的首选。然而,在某些场景下,单线程运行可能无法满足需求,这时候就需要考虑使用多…

【AutoLayout案例08-基于AutoLayout的动画 Objective-C语言】

一、好,那么,再给大家说一个什么呢 1.再给大家说一个,这么一个东西, 我们之前,通过frame,是不是可以通过animateWithDuration,可以执行动画吧 通过直接设置frame的方式,可以执行动画, 我们这里,通过约束,的方式, 也可以执行动画, 通过约束,也可以执行动画, …

基于FlaUI自动化+chatGPT实现微信自动回复

先看效果图 本次主要介绍如何实现自动回复: 1.将文件传输助手置顶,模拟鼠标点击文件传输助手; 2.一直刷新会话列表,有新的消息就需要回复内容; 3.当刷新到新的消息时,模拟鼠标点击到对应的会话人&#x…

擦除信道(erasure channel)

定义 二进制擦除通道(BEC)是一种信道模型。发送端发送一个比特(0或1),接收端要么正确接收该比特(0或1),要么以概率 P e P_{e} Pe​接收到该比特没有被接收的信息(即“擦除…

公司电脑文件数据透明加密、防泄密系统

一套利用驱动层透明加密技术实现电子文件安全加密的防护产品,从源头上保障数据安全和使用安全的加密系统。该系统遵循基于文件生命周期安全防护的思想,集成了密码学、访问控制和审计跟踪等技术手段,对企事业单位电子文件的存储、访问、传播和…

【UE 材质】实现角度渐变材质、棋盘纹理材质

目标 步骤 一、角度渐变材质 1. 首先通过“Mask”节点将"Texture Coordinate" 节点的R、G通道分离 2. 通过“RemapValueRange”节点将0~1范围映射到-1~1 可以看到此时R通道效果: G通道效果: 继续补充如下节点 二、棋盘纹理材质 原视频链接&…

Docker(三) 创建Docker镜像

一、在Docker中拉取最基本的Ubuntu系统镜像 搜索Ubuntu镜像 Explore Dockers Container Image Repository | Docker Hub 下载镜像 docker pull ubuntu:22.04 二、在镜像中添加自己的内容 使用ubuntu镜像创建容器 docker run -it ubuntu:20.04 /bin/bash 在容器中创建了一个文…

成集云 | 多维表格自动化管理jira Server项目 | 解决方案

源系统成集云目标系统 方案介绍 基于成集云集成平台,在多维表格中的需求任务信息自动创建、更新同步至 Jira Server 的指定项目中,实现多维表格中一表管理 Jira Server 中的项目进度。 维格表是一种新一代的团队数据协作和项目管理工具&…

day-01 Docker

一、docker简介 Docker 是一种开源的容器化平台,它可以帮助开发人员将应用程序及其依赖项打包成一个独立的、可移植的容器,而无需担心环境差异和依赖问题。通过使用 Docker,您可以更轻松地创建、分发和运行应用程序,无论是在开发、…

Apipost: 开发者们的瑞士军刀

在当今的数字化时代,数据流通是推动社会进步的关键因素之一。其中,API(应用编程接口)已经成为跨平台数据交互的标准。然而,API开发和管理并非易事,Apipost一体化研发协作赋能平台,支持从API设计…

并发编程(四)---死锁 synchronized、volatile详解

一.关键字 1.synchronized关键字: a.重量级锁,功能完整的锁 b.修饰类、方法、静态方法、代码块,但不可以在声明的时候修饰 c.synchronized是实现同步的基础,Java中不管是对象还是方法,都可加上锁。synchronized分为三…

音频应用编程

目录 ALSA 概述alsa-lib 简介sound 设备节点alsa-lib 移植编写一个简单地alsa-lib 应用程序一些基本概念打开PCM 设备设置硬件参数 ALPHA I.MX6U 开发板支持音频,板上搭载了音频编解码芯片WM8960,支持播放以及录音功能! 本章我们来学习Linux …

探索散列表和哈希表:高效存储与快速检索的魔法

文章目录 散列函数的原理散列表和哈希表的概念与操作解决冲突的方法案例分析:电话簿的实现拓展:性能与碰撞结论 🎉欢迎来到数据结构学习专栏~探索散列表和哈希表:高效存储与快速检索的魔法 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#…

【模拟集成电路】反馈系统加载效应——基础到进阶(三)

【模拟集成电路】反馈系统加载效应——基础到进阶(三) -----------------------文末附往期文章链接-------------------- 1.概述2.二端口网络方法2.1二端口网络模型2.2电压-电压反馈的加载2.2电流-电压反馈的加载2.3电压-电流反馈的加载2.4电流-电流反馈…

一文速学-让神经网络不再神秘,一天速学神经网络基础-输出层(四)

前言 思索了很久到底要不要出深度学习内容,毕竟在数学建模专栏里边的机器学习内容还有一大半算法没有更新,很多坑都没有填满,而且现在深度学习的文章和学习课程都十分的多,我考虑了很久决定还是得出神经网络系列文章,不…

Flutter 混合开发调试

针对Flutter开发的同学来说,大部分的应用还是Native Flutter的混合开发,所以每次改完Flutter代码,运行整个项目无疑是很费时间的。所以Flutter官方也给我们提供了混合调试的方案【在混合开发模式下进行调试】,这里以Android Stud…

Python基础学习第四天:Python注释

创建注释 注释以 # 开头,Python 将忽略它们: 实例 #This is a comment print("Hello, World!")运行实例 注释可以放在一行的末尾,Python 将忽略该行的其余部分: 实例 print("Hello, World!")…

1-8 隐语小课|私有信息检索(PIR)及其应用场景

“隐语”是开源的可信隐私计算框架,内置 MPC、TEE、同态等多种密态计算虚拟设备供灵活选择,提供丰富的联邦学习算法和差分隐私机制 开源项目 github.com/secretflow gitee.com/secretflow 前言 欢迎来到小剧场全新系列节目「隐语小课」!本…