论文阅读 - Few-shot Network Anomaly Detection via Cross-network Meta-learning

论文链接:https://arxiv.org/pdf/2102.11165.pdf

 

目录

摘要:

引言

问题定义

方法

Graph Deviation Networks

Cross-network Meta-learning


摘要:

        网络异常检测旨在找到与绝大多数行为显着不同的网络元素(例如节点、边、子图)。它对从金融、医疗保健到社交网络分析等各种应用产生了深远的影响。

        由于难以承受的标签成本,现有方法主要是以无监督的方式开发的。尽管如此,由于缺乏对感兴趣的异常的先验知识,他们识别的异常可能会变成数据噪声或无趣的数据实例。

        因此,研究和开发网络异常检测的小样本学习至关重要。在现实场景中,很少有标记的异常也很容易在与目标网络相同域的类似网络上访问,而大多数现有工作都忽略了利用它们,而仅仅关注单个网络。

        利用这一潜力,在这项工作中,我们通过(1)提出一个新的图神经网络系列——图偏差网络(GDN)来解决小样本网络异常检测的问题,它可以利用少量标记的异常来检测强制网络上异常节点和正常节点之间存在统计显着偏差; (2)为所提出的GDN配备了一种新的跨网络元学习算法,通过从多个辅助网络传输元知识来实现​​小样本网络异常检测。广泛的评估证明了所提出的方法在少量甚至一次性网络异常检测方面的有效性。

引言

        由于标记异常是高度劳动密集型的,并且需要专门的领域知识,现有的方法主要是以无监督的方式开发的。作为一种流行的范式,人们尝试用基于自动编码器的模型的重建误差[6, 18]或基于矩阵分解的方法的残差[2,17,34]来测量节点的异常。

        然而,由于缺乏对感兴趣的异常的先验知识,他们识别的异常可能会变成数据噪声或不感兴趣趣的数据实例。该问题的一个潜在解决方案是利用有限或很少的标记异常作为先验知识来学习异常通知模型,因为它在现实场景中成本相对较低 - 一小组标记异常可以来自已部署的检测系统或由用户反馈提供。与此同时,这些有价值的知识通常分散在目标网络同一域内的其他网络中,可以进一步利用这些网络来提取监督信号。

        可以将 ACM 和 DBLP 视为计算机科学领域中具有类似引文关系的引文网络。根据之前的研究[33,51,52],由于拓扑结构和节点属性的相似性,将有价值的知识从源网络转移到目标网络,从而提高目标网络的性能是可行的。因此,在这项工作中,我们建议研究跨网络设置下的少样本网络异常检测的新问题。

        尽管如此,解决这个尚未探索的问题仍然很重要,主要是由于以下原因:(1)从微观(网络内)的角度来看,由于我们对异常的了解有限,因此很难精确地描述异常模式。如果我们直接采用现有的半监督[37]或PU[40]学习技术,这些方法往往无法达到令人满意的结果,因为它们可能仍然需要相对较大比例的正例[23]。为了处理如图1(a)所示的这种不完全监督挑战[47],有必要探索如何利用尽可能少的标记异常来学习正常模式的高级抽象,而不是关注异常节点; (2)从宏观(网络间)的角度来看,虽然同一域内的网络总体上可能具有相似的特征,但不同网络中存在的异常可能来自非常不同的流形。先前关于跨网络学习的研究[29, 41]大多集中于仅从单个网络迁移知识,这可能会导致结果不稳定和负迁移的风险。由于从多个网络中学习可以提供有关异常特征的更全面的知识,因此非常需要一种能够适应这些知识的跨网络学习算法

 (图 1:由于异常通常具有不同的模式,(a) 现有方法可能很容易无法将它们与潜在表示空间中的正常节点区分开来,而标记的异常很少,(b) 虽然它们可以在异常得分空间中通过以下方式很好地分离:强制异常节点和正常节点之间存在统计显着偏差。)

        为了应对上述挑战,我们在这项工作中首先设计了一种新的 GNN 架构,即图形偏差网络(GDN),以便在标注数据有限的情况下进行网络异常检测。具体来说,给定一个任意网络,GDN 首先使用一个 GNN 骨干异常得分学习器为每个节点分配异常得分,然后根据先验概率定义异常得分的平均值,作为指导后续异常得分学习的参考得分。通过利用偏差损失[23],GDN 能够在异常得分空间中强制执行异常节点的异常得分与正常节点的异常得分在统计上的显著偏差(如图 1(b)所示)。为了进一步将这一能力从多个网络转移到目标网络,我们提出了一种跨网络元学习算法,从多个少量网络异常检测任务中学习通用性良好的 GDN 初始化。无缝集成的框架 Meta-GDN 能够提取用于检测多个网络异常的综合元知识,这在很大程度上缓解了从单一网络迁移的局限性。随后,初始化可以通过微调轻松适应目标网络,只需少量甚至一个标注异常点,就能在很大程度上提高目标网络的异常检测性能。总而言之,我们的主要贡献有三个方面:

        问题:据我们所知,我们是第一个研究小样本网络异常检测这一新问题的人。值得注意的是,我们建议通过跨多个网络转移知识来解决这个问题。

        算法:我们提出了一个原则框架 Meta-GDN,它集成了一系列新的图神经网络(即 GDN)和跨网络元学习,以检测带有少量标记实例的异常。

        评估:我们进行了大量的实验来证实我们方法的有效性。实验结果证明了 Meta-GNN 在网络异常检测方面优于最先进的方法。

问题定义

        在本节中,我们正式定义少样本跨网络异常检测问题。在整篇论文中,我们使用粗体大写字母表示矩阵(例如,A),粗体小写字母表示向量(例如,u),小写字母表示标量(例如,𝑠),并使用书法字体来表示集合(例如,V)。值得注意的是,在这项工作中,我们专注于属性网络以实现更通用的目的。给定一个属性网络 G = (V, E, X),其中 V 是节点集,即 {𝑣1, 𝑣2,…。 。 。 , 𝑣𝑛},E 表示边的集合,即 {𝑒1, 𝑒2, . 。 。 ,𝑒𝑚}。节点属性由 X = [x T 1 , x T 2 , · · · , x T 𝑛 ] ∈ R 𝑛×𝑑 表示,x𝑖 是节点 𝑣𝑖 的属性向量。更具体地说,我们将属性网络表示为 G = (A, X),其中 A = {0, 1} 𝑛×𝑛 是表示网络结构的邻接矩阵。具体来说,A𝑖,𝑗 = 1 表示节点 𝑣𝑖 和节点 𝑣𝑗 之间存在边;否则,A𝑖,𝑗 = 0

        一般来说,少样本跨网络异常检测旨在通过从辅助网络传输非常有限的ground truth异常监督知识来最大限度地提高目标网络的检测性能。除了目标网络 G𝑡 之外,在这项工作中,我们假设还存在 𝑃 辅助网络 G 𝑠 = {G𝑠 1 , G𝑠 2 , 。 。 。 , G𝑠 𝑃 } 与 G𝑡 共享相同或相似的域。对于属性网络,标记的异常节点的集合表示为 V𝐿,未标记的节点的集合表示为 V𝑈 。请注意 V = {V𝐿 , V𝑈 } 并且在我们的问题中 |V𝐿 |≪ |V𝑈 |因为只给出了少量的标记数据。由于网络异常检测通常被表述为排序问题[1],我们正式定义少样本跨网络异常检测问题如下:

        问题 1. 小样本跨网络异常检测:给定: 𝑃 辅助网络,即 G 𝑠 = {G𝑠 1 = (A 𝑠 1 , X 𝑠 1 ), G𝑠 2 = (A 𝑠 2 , X 𝑠 2 ), 。 。 。 , G𝑠 𝑃 = (A 𝑠 𝑃 , X 𝑠 𝑃 )} 和目标网络 G𝑡 = (A 𝑡 , X 𝑡 ),每个网络都包含一组少样本标记异常(即 V𝐿 1 , V𝐿 2 , . . . , V𝐿 𝑃 和 V𝐿 𝑡 )

        目标:学习一个异常检测模型,该模型能够利用来自多个辅助网络的真实异常知识,即 {G𝑠 1 , G𝑠 2 , . 。 。 , G𝑠 𝑃 },检测目标网络 G𝑡 中的异常节点。理想情况下,检测到的异常应该比正常节点具有更高的排名分数。

方法

        在本节中,我们将介绍所提出的框架 - 用于小样本网络异常检测的 Meta-GDN 的详细信息。具体来说,Meta-GDN 通过以下两个关键贡献解决了所讨论的挑战:(1)图偏差网络(GDN),一个新的图神经网络系列,可以使用有限的标记数据对任意单个网络进行异常检测; (2) 跨网络元学习算法,使 GDN 能够跨多个辅助网络传输元知识,以实现对目标网络的小样本异常检测。图 2 概述了拟议的 Meta-GDN。

Graph Deviation Networks

         为了能够在具有少量标记数据的任意网络上进行异常检测,我们首先提出了一个新的图神经网络系列,称为图偏差网络(GDN)。

        由三个关键构建块组成,包括(1)用于学习节点表示的网络编码器; (2)异常评估器,用于评估每个节点的异常得分; (3) 用于优化带有少量标记异常的模型的偏差损失。详情如下所示:

        网络编码器。为了从输入网络学习表达节点表示,我们首先构建网络编码器模块。具体来说,它由多个 GNN 层构建,将每个节点编码为低维潜在表示。一般来说,GNN 遵循邻域消息传递机制,并通过以迭代方式聚合局部邻域的特征来计算节点表示。形式上,通用 GNN 层使用两个关键函数计算节点表示:

         为了捕获网络中的远程节点依赖性,我们在网络编码器中堆叠多个 GNN 层。因此,网络编码器可以表示为:

         异常评估器。然后,从网络编码器学习到的节点表示将被传递给异常评估器𝑓𝜽𝑠(·),以进一步估计每个节点的异常情况。具体来说,异常评估器由两个前馈层构建,将中间节​​点表示转换为标量异常分数:

         偏差损失。本质上,GDN 的目标是根据计算出的带有少样本标签的异常分数来区分正常节点和异常节点。在这里,我们建议采用偏差损失[23]来强制模型为那些特征显着偏离正常节点的节点分配较大的异常分数。为了指导模型学习,我们首先定义一个参考分数(即𝜇𝑟)作为一组随机选择的正常节点的异常分数的平均值。它可以作为量化异常节点的分数与正常节点的偏差程度的参考。

        根据之前的研究 [15, 23],高斯分布通常是拟合各种数据集的异常分数的稳健选择。基于这个假设,我们首先从高斯先验分布中采样一组 𝑘 异常分数,即 R = {𝑟1, 𝑟2, 。 。 。 , 𝑟𝑘 } ∼ N(𝜇, 𝜎2 ),其中每一个表示随机正常节点的异常。参考分数计算为所有采样分数的平均值:

         有了参考分数𝜇𝑟,节点𝑣𝑖的异常分数与参考分数之间的偏差可以用标准分数的形式定义:

         其中 𝜎𝑟 是采样异常分数集的标准差 R = {𝑟1, . 。 。 ,𝑟𝑘}。然后,通过将距离函数替换为式(6)中的偏差,可以从对比损失[11]中导出最终的目标函数:

         其中 𝑦𝑖 是输入节点 𝑣𝑖 的真实标签。如果节点 𝑣𝑖 是异常节点,则 𝑦𝑖 = 1,否则,𝑦𝑖 = 0。请注意,𝑚 是定义偏差周围半径的置信边际

        通过最小化上述损失函数,GDN 会将正常节点的异常分数尽可能接近 𝜇𝑟,同时强制 𝜇𝑟 与异常节点的异常分数之间至少有 𝑚 的较大正偏差。这样,GDN 就能够学习正常模式的高级抽象,而标记的异常要少得多,并使节点表示学习能够区分正常节点和罕见异常。因此,如果节点的模式显着偏离学习到的正常模式的抽象,则将向该节点分配较大的异常分数

        我们的初步结果表明,只要 𝜎 不太大,GDN 对 𝜇 和 𝜎 的选择并不敏感。具体来说,我们在实验中设置𝜇=0和𝜎=1,这有助于GDN在不同数据集上实现稳定的检测性能。还值得一提的是,由于我们无法访问正常节点的标签,因此我们简单地将 V𝑈 中未标记的节点视为正常节点。请注意,这样剩余的未标记异常和所有正常节点将被视为正常,从而将污染引入到训练集中(即未标记异常与总未标记训练数据 V𝑈 的比率)。值得注意的是,GDN 通过使用这种简单的策略表现非常好,并且对不同的污染水平具有鲁棒性。第 2 节评估了不同污染水平对模型性能的影响。 5.4.

Cross-network Meta-learning

        有了所提出的图偏差网络(GDN),我们能够有效地检测具有有限标记数据的任意网络上的异常。当来自目标网络同一域的辅助网络可用时,如何传递这些有价值的知识是在目标网络上实现少样本异常检测的关键。尽管它具有可行性,但如果我们直接借用现有跨网络学习方法的思想,性能将相当有限。主要原因是这些方法仅仅专注于从单个网络转移知识[29, 41],这可能会由于不同网络上的异常特征不同而导致负转移。为此,我们转而利用多个辅助网络来提取异常的全面知识。

        作为提取和转移知识的有效范式,元学习由于在各种高影响力领域的广泛应用,最近受到越来越多的研究关注[8,19,20,27,36,38]。本质上,元学习的目标是在各种学习任务上训练模型,使得学习到的模型能够有效地适应很少甚至只有一个标记数据的新任务[13]。特别是,芬恩等人 [10]提出了一种与模型无关的元学习算法来显式地学习模型参数,使得模型可以通过少量的梯度步骤和有限的标记数据实现对新任务的良好泛化。受这项工作的启发,我们建议学习一个元学习器(即 Meta-GDN)作为来自多个辅助网络的 GDN 的初始化,它具有有效识别新目标网络上异常节点的泛化能力。具体来说,Meta-GDN 在训练阶段从辅助网络上的不同小样本网络异常检测任务中提取真实异常的元知识,并将针对目标网络上的新任务进行进一步微调,使得模型可以做出快速有效的适应

        我们将每个学习任务定义为在单个网络上执行少量异常检测,其目标是强制将大异常分数分配给等式(7)中定义的异常。 令 T𝑖 表示由网络 G𝑠 𝑖 构建的少样本网络异常检测任务,那么每个时期我们都有 𝑃 学习任务。我们考虑由带有参数 𝜽 的参数化函数 𝑓𝜽 表示的 GDN 模型。给定 𝑃 任务,优化算法首先针对每个学习任务 T𝑖 独立调整初始模型参数 𝜽 至 𝜽 ′ 𝑖。具体来说,更新的参数 𝜽 ′ 𝑖 是使用 LT𝑖 对从 G𝑠 𝑖 中的 V𝐿 𝑖 和 V𝑈 𝑖 采样的一批训练数据计算的。形式上,一步梯度的参数更新可以表示为:

         通过在所有学习任务中优化 𝑓𝜽 相对于 𝜽 的最佳性能来训练模型参数。更具体地,元目标函数定义如下:

         通过优化 GDN 的目标,更新后的模型参数可以保留检测每个网络异常的能力。由于元优化是在参数𝜽上执行的,目标是使用所有任务的更新参数计算的,相应地,模型参数被优化,使得目标任务(网络)上的一个或少量梯度步骤将产生巨大的效果。

        形式上,我们利用随机梯度下降(SGD)来更新所有任务的模型参数𝜽,使得模型参数𝜽更新如下:

         其中 𝛽 是元步长。完整的算法总结在算法 1 中。具体来说,对于每个批次,我们从未标记数据(即 V𝑈 )和标记异常数据(即 V𝐿 )中随机采样相同数量的节点,分别表示正常和异常节点(步骤- 4).

 

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

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

相关文章

【BASH】回顾与知识点梳理(二)

【BASH】回顾与知识点梳理 二 二. Shell 的变量功能2.1 什么是变量?2.2 变量的取用与设定: echo, 变量设定规则: set/unset2.3 环境变量的功能用 set 观察所有变量 (含环境变量与自定义变量)export: 自定义变量转成环境变量那如何将环境变量转成自定义变…

Tomcat 创建https

打开CMD,按下列输入 keytool -genkeypair -alias www.bo.org -keyalg RSA -keystore d:\ambition.keystore -storetype pkcs12 输入密钥库口令:123456 再次输入新口令:123456 您的名字与姓氏是什么? [Unknown]: www.ambition.com 您的组织单位名称是什么? [Unknown…

PostgreSQL Patroni_exporter 监控 patroni高可用工具

Patroni是Cybertec公司基于python语言开发的,可用于使用流复制来创建,管理,维护和监视高可用性PostgreSQL集群设置的工具。 目前,PatroniEtcd 是最为推荐的PostgreSQL数据库高可用方案之一。 PostgreSQL有postgres_exporter监控采…

ssl单向证书和双向证书校验测试及搭建流程

零、前提准备 说明: 50.50.1.118作为服务端,系统是 linux,openssl版本是:OpenSSL 1.1.1f 31 Mar 2020。 50.50.1.116是客户端,系统是Windows,openssl版本是:OpenSSL 3.0.5 5 Jul 2022 (Library…

BES 平台 SDK之LED的配置

本文章是基于BES2700 芯片,其他BESxxx 芯片可做参考,如有不当之处,欢迎评论区留言指出。仅供参考学习用! BES 平台 SDK之代码架构讲解二_谢文浩的博客-CSDN博客 关于SDK 系统框架简介可参考上一篇文章。链接如上所示&#xff01…

CSS font-family 等宽字体

CSS font-family 等宽字体 font-family: "Lucida Console", Consolas, "Courier New", Courier, monospace; font-family: Courier New, Courier, Lucida Console, Consolas, monospace; font-family: Courier, Lucida Console, Consolas, Courier New,…

JavaWeb(8)——前端综合案例2(节流和防抖)

目录 一、节流和防抖概念 二、实例演示 三、需要注意的 一、节流和防抖概念 二、实例演示 Lodash 简介 | Lodash中文文档 | Lodash中文网 (lodashjs.com) <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><m…

【Redis】内存数据库Redis进阶(搭建各种集群)

目录 单机安装Redis搭建Redis主从集群搭建Redis哨兵集群 基于 CentOS 7 的 Redis 集群 单机安装Redis 安装 Redis 所需要的依赖&#xff1a; yum install -y gcc tcl将 Redis 安装包&#xff08;redis-6.2.4.tar.gz&#xff09;上传到任意目录 解压缩&#xff1a; tar -xzf …

Java NIO 详解

Java 从1.4开始引入NIO&#xff08;New IO&#xff09;&#xff0c;是一种基于块&#xff08;Block&#xff09;的IO机制&#xff0c;也称为非阻塞IO。相比于传统的Java IO&#xff08;IO流&#xff09;方式&#xff0c;Java NIO提供了更快速、高效、灵活的IO操作。 Java NIO的…

Aduino中eps环境搭建

这里只记录Arduino2.0以后版本&#xff1a;如果有外网环境&#xff0c;那么可以轻松搜到ESP32开发板环境并安装&#xff0c;如果没有&#xff0c;那就见下面操作&#xff1a; 进入首选项&#xff0c;将esp8266的国内镜像地址填入&#xff0c;然后保存&#xff0c;在开发板中查…

代码随想录算法训练营第二十九天 | Leetcode随机抽题检测

Leetcode随机抽题检测 160 相交链表未看解答自己编写的青春版重点题解的代码206 反转链表 一段用于复制的标题未看解答自己编写的青春版重点题解的代码日后再次复习重新写 234 回文链表未看解答自己编写的青春版重点综上&#xff0c;利用快慢指针找寻链表中间&#xff0c;就按加…

牛客网Verilog刷题——VL51

牛客网Verilog刷题——VL51 题目答案 题目 请编写一个十六进制计数器模块&#xff0c;计数器输出信号递增每次到达0&#xff0c;给出指示信号zero&#xff0c;当置位信号set 有效时&#xff0c;将当前输出置为输入的数值set_num。模块的接口信号图如下&#xff1a; 模块的时序图…

JVM基础篇-方法区与运行时常量池

JVM基础篇-方法区与运行时常量池 方法区 Java 虚拟机有一个在所有 Java 虚拟机线程之间共享的方法区。方法区类似于传统语言的编译代码的存储区或者类似于操作系统进程中的“文本”段。它存储每个类的结构&#xff0c;例如运行时常量池、字段和方法数据&#xff0c;以及方法和…

Hadoop 集群如何升级?

前言 本文隶属于专栏《大数据技术体系》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和参考文献请见大数据技术体系 正文 升级 Hadoop 集群需要细致的规划&#xff0c;特…

使用docker部署Wordpress

文章目录 1.创建网络2.创建volume存储3.拉取镜像4.创建mysql容器mysql修改密码 5.创建wordpress容器6.访问localhost:80就可以直接使用啦 1.创建网络 docker network create --subnet172.18.0.0/24 pro-net2.创建volume存储 # mysql 存储 docker volume create volume_mysql…

vscode 前端开发插件 2023

自己记录 安装vscode后必装插件 chinesegit 必装没啥可说 随时更新 1.CSS Navigation CTRL点击类名可跳转到对应样式位置。 如果是scss less的话。css peak插件无法生效 2.GitLens — Git supercharged 可以看到每一行的git提交记录。 3.Auto Rename Tag 可以同步更新…

winform学习(3)-----Windows窗体应用和Windows窗体应用(.Net Framework)有啥区别?

1.模板选择 在学习winform的时候总是会对这两个应用不知道选择哪个&#xff1f;而且在学习的时候也没有具体的说明 首先说一下我是在添加控件的时候出现了以下问题 对于使用了Windows窗体应用这个模板的文件在工具箱中死活不见控件。 在转换使用了Windows窗体应用(.NET Fram…

Linux学习之一次性计划任务at

计划任务&#xff1a; 让计算机在指定的时间运行程序的任务 计划任务的分类&#xff1a; 1&#xff09;一次性计划任务 2&#xff09;周期性计划任务 先来讲讲一次性执行任务at。执行at 18:32报错-bash: at: command not found。 yum install -y at安装at。 at 18:32后边按下…

【C++】二叉搜索树

二叉搜索树 前言正式开始模拟实现树节点以及树框架增中序遍历查找删除 递归实现增删查查插删 析构拷贝构造赋值重载时间复杂度分析应用场景两道题 前言 本来想先把搁置了一个月的Linux讲讲的&#xff0c;但是里面有些内容需要用到一些比较高级的数据结构&#xff0c;用C写的话…

【业务功能篇61】SpringBoot项目流水线 dependencyManagement 标签整改依赖包版本漏洞问题

业务场景&#xff1a;当前我们项目引入了公司自研的一些公共框架组件&#xff0c;比如SSO单点登录jar包&#xff0c;文件上传服务jar包等公共组件&#xff0c;开发新功能&#xff0c;本地验证好之后&#xff0c;部署流水线&#xff0c;报出一些jar包版本的整改漏洞问题&#xf…