图神经学习笔记

news2024/12/25 14:06:51

图神经网络基础
图神经网络用于挖掘事物的“普遍联系”,理解原理、应用技术。本文汇总图神经网络相关介绍和基础模型。

图及特性

图是由顶点和边组成的,如下图左所示。一般图中的顶点表示实体对象(比如一个用户、一件商品、一辆车、一张银行卡等都可以作为顶点),边代表事件或者实体之间的特殊关系(比如用户和商品之间的购买关系)。
在这里插入图片描述

在数学中一般使用邻接矩阵来表示图,如上图右所示。邻接矩阵中的值为 1 表示顶点之间有边,即有连接关系,所以邻接矩阵可将图的这种结构信息表达出来。

图数据类型的类别有:

  • 同构图(Homogeneous Graph):图中节点类型和关系类型都仅有一种。
  • 异构图(Heterogeneous Graph):图中节点类型和关系类型多于一种。
  • 属性图(Property Graph):在图数据上增加属性信息,节点和关系都有标签和属性。
  • 非显式图(Graph Constructed from Non-relational Data):数据之间没有显示定义出关系,需要依据某种规则或计算方式将数据关系表达出来。

关于属性图,图中的顶点和边都带有属性(这也是一种信息)。如下图所示:
在这里插入图片描述

这个图里的用户顶点有姓名、性别,而话题顶点有具体的话题类别,公司顶点有名称,注册时间等属性信息。边的属性信息,比如开始工作时间是边”工作于”的一种属性。所以,属性图就是顶点和边带有自己的属性信息,同时每个顶点又有自己的拓扑结构信息。这是工业界最常用的一种图表示方法,因为我们需要更丰富的信息。图神经网络将图数据和神经网络进行结合,在图数据上进行端对端的计算。

现实生活中的大量的业务数据都可以用图来表示。万事万物皆有联系,顶点+关系这样一种表示覆盖很广。比如人类的社交网络,个体作为顶点,人与人之间的各种关系作为边;电商业务中,用户和商品也可以构建成图网络;而物联网、电网、生物及化学分子这些是天然的顶点+关系结构;甚至,可以将实物物体抽象成 3D 点云,以图数据的形式来表示。

在这里插入图片描述

为什么需要图神经网络

在这里插入图片描述

图神经网络提出的目的是针对图这种非欧几里得数据来学习图网络中的实体、关系的向量表示以及构成它们的规则,保存结构化输入数据之间的拓扑关系,并通过对输入数据的节点处理来跟踪节点中的图结构。 在欧几里得数据类型上,神经网络已经取得了非常显著的效果,比如说二维图片上应用卷积神经网络,一维的语音 文字数据上应用RNN等, 而对于一般的graph或者说network来说,每个节点的邻居数量不固定,邻居排序也不固定,因此在graph上应用神经网络模型是比较困难的。

图数据的相关任务一般有:

  1. 节点层面(Node Level)任务:如在线社交网络中用户标签的分类、恶意账户检测等。
  2. 边层面(Link Level)任务:如社交用户的推荐等。
  3. 图层面(Graph Level)任务:如药物分子的分类、酶的分类等。

图神经网络的强大能力可以归纳为三点:对图数据进行端对端学习、擅长推理、可解释性强

支持端对端学习
深度学习带来了人脸识别、语音助手以及机器翻译的成功应用,这三类场景分别代表了三类数据:图像、语音和文本。深度学习在这三类场景中取得突破的关键是其端对端学习机制。端对端代表着高效,能够有效减少中间环节信息的不对称,一旦在终端发现问题,整个系统每一个环节都可以进行联动调节。既然端对端学习在图像、语音以及文本数据上的学习有效,那么将该学习机制推广到具有更广泛业务场景的图数据有所前途。

擅长推理
业界认为大规模图神经网络是认知智能计算强有力的推理方法。图神经网络将深度神经网络从处理传统非结构化数据(如图像、语音和文本序列)推广至更高层次的结构化数据(如图结构)。大规模的图数据可以表达丰富和蕴含逻辑关系的人类常识和专家规则,图节点定义了可理解的符号化知识,不规则图拓扑结构表达了图节点之间的依赖、从属、逻辑规则等推理关系。以保险和金融风险评估为例,一个完备的AI系统不仅需要基于个人的履历、行为习惯、健康程度等进行分析处理,还需要通过其亲友、同事、同学之间的来往数据和相互评价进一步进行信用评估和推断。基于图结构的学习系统能够利用用户之间、用户与产品之间的交互,做出因果和关联推理。

可解释性强
图具有很强的语义可视化能力,这种优势被所有的GNN模型所共享。比如在异常交易账户识别的场景中,GNN在将某个账户判断为异常账户之后,可以将该账户的局部子图可视化出来,如下图所示:

在这里插入图片描述

可以直观地从子图结构中发现一些异常模式,比如同一设备上有多个账户登录,或者同一账户在多个设备上有行为。还可以从特征的维度,比如该账户与其他有关联的账户行为模式非常相似(包括活跃时间集中,或者呈现周期性等),从而对模型的判断进行解释。

图神经网络的机制
在这里插入图片描述

首先从一种最简单的图结构,也就是如上图所示的链条结构开始,实际上这个结构可以看作是一种有向图。 这种结构很容易让我们联想到用循环神经网络来模拟图中节点信息的传递。例如RNN的传播模式是节点从它的上一个邻居节点中获得信息,把自身包含的信息融合进来,再传递给下一个节点。在每一步中,隐状态向量的更新不但考虑了上一步,或者在这里即上一个节点传递过来的信息,同时考虑了当前的节点特征。 从这个角度来看,针对序列输入的RNN模型完全可以视为一种特殊的图神经网络模型。
在这里插入图片描述

如果把刚才简单的链状数据结构扩展成连接更加复杂的图结构,此时在有向图中每个节点可能包含多个邻居,同样可以采用循环单元从邻居节点收集他们包含的信息,并和节点自身的信息进行融合,得到当前节点的新的特征向量。 图中NN1和NN2代表不同类型的边, 在图神经网络中,可以为不同类型的边设计不同的消息传递函数。
在这里插入图片描述

图神经网络的关键是步骤包含聚合和更新:根据节点的邻居来更新节点的特征向量表示,比如这张图上A是我们的目标节点,它的领域有B,C,D这三个节点,那么我们通过聚合操作融合BCD的信息来更新A的表示,实现信息在图结构数据上的传播。由此我们可以粗浅地给图神经网络模型下一个定义,针对图结构这一非欧几里得结构数据,利用神经网络来聚合邻域信息,从而更新节点或者边的表达的模型就可以称为是图神经网络。 它可以应用到各种问题中,比如节点分类,连边预测,或者在整张图的尺度上进行graph的分类回归等等任务。

在这里插入图片描述

图神经网络是直接在图上进行计算,整个计算的过程,沿着图的结构进行,这样处理的好处是能够很好的保留图的结构信息。而能够对结构信息进行学习,正是图神经网络的能力所在。

聚合操作
在这里插入图片描述

以graphsage中的mean-aggregator为例,该聚合操作包括两个步骤,step 1 是平均所有邻居的信息,也就是把它们的embedding vector进行平均操作得到一个新的vector; step 2 把聚合后的向量输入给神经网络进行特征的提取。

更新操作
聚合后的邻居节点信息通常是用一个向量表示的,GNN模型下一步需要做的事情就是将邻域节点向量和中心节点本身的表征进行结合,更新中心节点的表示,融入从图中传递过来的邻域信息。
在这里插入图片描述

这里我们以某个节点v为例,先看紫色的框,第0层节点的隐向量表示就是它的初始特征, 当我们需要获得它在第k层的表达时, 我们看红色的框的这部分,搜集了节点v的领域节点在当前的向量表达,并且求它们的平均向量,再经过可训练参数W_k的变换得到邻域信息表征, 黄色框的部分则是节点v当前的隐向量表达,乘上另外一个参数B_k, 该例中选取的更新操作是相加,最后通过激活函数获得非线性表达。 实际上整个公式和神经网络中的全连接层数学表达基本上一致的。 训练过程中我们要学习的实际上就是这两组参数W_k和B_k。
经过K层的图神经网络模型可以将k-hop的邻域信息传递给中心节点。

在这里插入图片描述

现在我们来概括一下图神经网络的基本流程。 第一步我们要定义邻域信息聚合时候采取的操作, 比如说mean-pooling/max-pooling/加或者循环神经网络等等,刚才我们介绍的了其中的一种,但是这里的可以定义的聚合函数其实是有很多选择的,如果能提出一种合理地效果好的聚合函数,就能发一篇好paper了。 第二步是定义好我们的损失函数, 这里可以根据有监督的方式比如具体的节点分类任务我们就可以把学习到的embedding当做特征进行分类,从而就可以采用交叉熵等损失函数,也可以用无监督的方式训练,比如定义两个相似节点的embedding距离作为损失函数,类似自编码器的方式,具体的选择要根据应用的场景考虑,总之必须要有一个合适的损失函数,我们才能对图神经网络里的权重参数进行更新。

图神经网络模型
GNN paper list: https://github.com/thunlp/GNNPapers

GNN model list: https://github.com/EdisonLeeeee/GraphGallery

GCN
GCN模型是将针对欧几里得结构数据的卷积神经网络模型扩展到非欧图结构数据上的模型,经过三代发展逐渐从谱域方法向空间域方法过渡。

傅立叶变换:

在这里插入图片描述

拉普拉斯算子:
在这里插入图片描述

拉普拉斯矩阵:
在这里插入图片描述

傅里叶变换可以将时域或者说空间域上的信号映射到谱域或者叫频域上,

在这里插入图片描述

被称为是傅里叶变换的基函数,它是

拉普拉斯算子的特征函数。傅里叶变换实际上就是时域信号与拉普拉斯算子特征函数的积分。 函数上的拉普拉斯算子我们可以简单理解成二阶导数。 在graph上用拉普拉斯矩阵来表示图上的拉普拉斯算子,具体的理论依据需要从图谱理论来解释。 拉普拉斯矩阵是图的度矩阵减去邻接矩阵,度矩阵是一个对角矩阵,第i行第i列的数值代表第i个节点有多少个邻居, 邻接矩阵是0-1矩阵,代表两个节点之间是否有连边。 一般用下面这个标准化的形式作为图的卡普拉斯矩阵,I_N为单位矩阵。

类比到图的拉普拉斯矩阵上,对拉普拉斯矩阵进行奇异值分解,得到特征向量矩阵U和由特征值构成的对角矩阵Λ, U的转置就是图拉普拉斯矩阵的对应的特征向量矩阵, 所以对于图节点的特征向量矩阵,只要乘以U的转置就可以映射到谱域上了,进行同样的操作我们可以把卷积核也映射到谱域中, 根据卷积定理,在谱域上进行乘法运算,通过反傅里叶变换后得到的结果就是空间域上的卷积操作了。

`$g * x = U(U^Tg\cdot U^Tx) \ g_{\theta}(\Lambda) = U^Tg $’

作为图卷积的filter函数 ,我们希望它具有很好的局部性。就像CNN模型里的filter一样,只影响到一个像素附近的像素。那么我们可以把卷积核g定义成一个laplacian矩阵的函数 g(L).作用一次laplacian矩阵相当于在图上传播了一次邻居节点。进一步可以把 g的傅里叶变换结果看做是一个拉普拉斯特征值的函数,参数为θ。到这里实际上已经完成了谱域上的图卷积,称之为第一代的图卷积,但是我们很容易发现整个流程下来计算的复杂度非常高。为了提高效率和空间局部性,2016年nips上发表chebnet提出使用切比雪夫多项式来构造卷积核函数:
在这里插入图片描述

微信截图_e2c8def2-474c-4fa7-b0f5-977a6acb2371.png
如果把 g_θ写成Λ矩阵的多项式形式,并且结合特征分解的性质,再代回刚才介绍过的卷积公式,最终可以得到一个只和参数θ, 图拉普拉斯矩阵和节点信号相关的公式。 另外原论文提出用切比雪夫多项式展开,用T_k来代替Lk,应该是为了在数值计算的时候的能够用切比雪夫多项式递推公式来加速计算。 Chebnet的时间复杂度降低到了O(KE),而且从数学上证明了卷积时只考虑K-hop的领域,使得图卷积的k空间局部性得到了理论保证。

之后提出的GCN中实际上是对Chebnet的修改,特别地限定了K等于1,也就是只考虑1-hop的领域,并且把A^定义为A+I_N, D为对应的度矩阵,再加上激活层就可以写出GCN每个卷积层的公式了。 实际上在GCN中我们训练过程中对kernel的更新是体现在参数矩阵W的学习上的。
在这里插入图片描述

尽管GCN的形式非常简单,直观地体现了每一层GCN实现1-hop邻居节点信息的传播,但它背后是复杂完整的图谱理论的支撑。

GraphSage
在这里插入图片描述

Graphsage方法主要有三个特点,第一是引入采样技术,通过对中心节点的邻居均匀采样,得到一个包含中心节点和它的邻居节点的子图,对这个子图进行节点信息聚合操作。采样技术的引入,一定程度上缓解了计算和内存压力,使模型可以在大规模图数据上训练;第二是抽象出一个 aggregate architectures,在卷积阶段聚合传递过来的邻居节点的特征。原始GCN中对passing message累计加权平均是aggregate architecture的一种形式。实际中可以根据需要选择不同的aggregate function。第三是聚合邻域信息的时候采取concat中心节点本身的特征和aggregate的到的邻居节点表达的方式,达到了在神经网络不同层之间skip-connection的效果。

GAT

在这里插入图片描述

由于需要对邻居节点的信息聚合成一个向量,常见的做法是对节点的n个邻居节点向量表示计算平均向量。考虑到对于一个节点而言,它的邻域节点对它的影响可能是不同的,有些节点对它的影响力比较大,有些节点虽然是它的邻居,但是可能和它的关联性不大。 所以直接将邻域的信息简单加和不是一种理想的聚合操作。
在这里插入图片描述

在GAT中, 对于节点v的邻居节点u, 设置了一个注意力权重α_u,v,相当于是对v的邻居节点采用了加权平均的操作,使得那些和v关联性大的节点的向量表示在聚合时有更大的权重。

注意力机制可以通过多种方式实现, 原论文的方式是将当前节点i和邻居节点j的隐向量经过线性变换后拼接在一起,再训练一组参数a, 这个结果用softmax归一化得到注意力权重,这种注意力权重训练的方式其实也是我们常用的,只不过将它迁移到了图神经网络中用于邻域节点隐向量的加权求和,GAT在2018年的多个benchmarks上达到了state of the art的效果。
在这里插入图片描述

GAE
在这里插入图片描述

GAE(Graph Autoencoder)模型的原理很简单,对于输入的图和节点,使用GCN作为encoder得到节点的embedding矩阵Z,decoder则使用简单的inner-product,因为Z是一个N*f的矩阵,所以decoder变换回来之后得到的是一个N×N的矩阵,将之视为重构后的邻接矩阵,网络拟合的目标是重构后的邻接矩阵和原始输入的邻接矩阵尽可能相似。

GAE的作用是通过无监督的方式学习图中的结构信息和邻域节点的特征信息,帮助生成更加具有表达能力的节点表征。 该节点表征可以作为特征输入给下游的预测任务。

在上述基础模型之上扩展的应用模型有:

PinSage

用户在Pinterest中 自己感兴趣的东西用图钉(pin)钉在钉板(broad),包扩10亿pin ,10亿board 以及180亿边(若pin在broad中,则它们之间存在一条边)。目标是利用pin-broard二分图结构和属性(如描述文本、图片特征),生成pin的高质量的embedding用于推荐任务,如相关pin推荐,或者作为机器学习系统的输入特征。
在这里插入图片描述

模型每次进行卷积时,得到一个节点新的表示,可以通过将卷积层堆叠起来,以聚合节点K跳邻居内的特征。

  1. 初始化:设置二跳内任意节点的输入层为自身特征:S(1)
  2. 进行两层卷积及叠加操作:
  3. 第一次卷积,生成S(1)中节点embeddinng,作为第二层卷积的输入。(这个操作等价为一次传播:将二跳邻居信息传播到一跳邻居上,以及将一跳邻居原有信息传播到自身节点。 不传播到二跳邻居原因是接下来不会用到二跳邻居信息了)
    第二次卷积:以第一层卷积的输出作为输入,生成S(1)中节点embedding (这个操作等价继续做一次传播)
  4. 全连接:将卷积结果输入到全连接层。

Danser

DANSER由两个双重GAT组成:一个针对用户的双重GAT(包括用于捕获社会同质性的GAT和用于捕获社会影响力的GAT),另一个用于商品的双重GAT。具体来说,在用户域中,一个用于捕获社交同质性的GAT会集中地聚集相邻用户的嵌入内容,以反映他们的偏好,并输出静态用户偏好的表示形式。另一个捕获社会影响力的 GAT 旨在卷积相邻用户的上下文感知偏好,以表征用户的评分项目与候选项目的相关性,并输出动态用户偏好的表示形式。在项目域中,设计了两个类似的GAT作为双重体系结构,分别在物料之间的同质性和相关物料之间的影响下,对物料的静态和动态属性进行建模。这种双重机制具有两个优点:i)捕获同质性的GAT,并且影响可以通过利用全局视图和局部视图来调查用户项交互而共同建模两个社会效应。 ii)项目域中的两个GAT合并了相关项目的信息,这可以进一步缓解数据稀疏性问题。

在这里插入图片描述

SocialGCN

大多数的社交推荐模型利用用户局部邻居(应该指的是直接信任的用户)的偏好去缓解数据稀疏性的问题。然而,他们只考虑了每个用户的局部邻居,忽略了用户偏好受信息在社交网络传播的影响过程。图卷积网络利用图结构和节点特征信息对图中的信息扩散过程进行建模。为此,本文提出了一种有效的基于图卷积神经网络的社会推荐模型。基于一个经典的CF模型,提出的模型的核心思想是利用GCNs的优势来捕捉用户的偏好如何受到社交网络中社交扩散过程的影响。用户偏好的扩散建立在分层扩散的基础上,初始化用户嵌入由当前用户特征和不包含用户特征的潜在向量进行函数处理得到的,初始化项嵌入也类似。

在这里插入图片描述

item embeddinig:

vi 由两部分组成:项的特征嵌入 yi 和 来自潜在矩阵Q ∈ RL×N 的潜在向量 qi,通过一个全连接神经网络层计算得到:

user embedding:

给定一个社交网络 S, GCN 的目标是用分层的多层结构对来自其社交邻居的每个节点嵌入进行建模。

对于每个用户 a,让hk_a表示 a 在第 k 层的潜在嵌入,给定他的社交邻居在这一层的潜在嵌入,图卷积运算定义了 a 在 k+1 层的潜在嵌入hk+1_a

GraphRec

基于GNN建立社交推荐系统有很多的挑战,因此作者提出了GraphRec框架。提供了一种有原则的方法来联合捕获用户-项目图中的交互和意见,并提出了框架GraphRec,该框架连贯地对两个图和异构优势进行建模。整个框架包含三个部分: user modeling包含两个部分 item aggregation:利用用户与item的联系生成一个embedding Social aggregation:利用用户与用户之间的关系生成一个embedding user modeling部分的输出由上述两个embedding连接成的向量 item modeling利用用户对物品的关系与意见产生一个embedding rating prediction部分利用上述两部分的向量,对用户对某个item的打分进行预估。
在这里插入图片描述

DiffNet
A Neural Influence Diffusion Model for Social Recommendation 社交推荐系统利用每个用户的局部邻居偏好(local neighbors’ preferences)来缓解数据稀疏性,从而更好地进行用户emb建模。对于每一个社交平台的用户,其潜在的嵌入是受他信任的用户影响的,而这些他信任的用户也被他们自己的社交联系所影响。随着社交影响在社交网络中递归传播和扩散(diffuse),每个用户的兴趣在递归过程中发生变化。然而,目前的社交推荐模型只是利用每个用户的局部邻居来构建静态模型,没有模拟全局社交网络中的递归扩散,导致推荐性能不理想。 本文提出了一个deep influence propagation model。对于每个用户,扩散过程(diffusion)用融合了相关特征和一个caputure了latent behavior preference的free的用户隐向量。本文的key idea是,设计了一个layer-wise的influence propagation结构,可以随着social diffusion process的进行,对用户emb进行演化。

diffnet.png

图表示学习的模型有:

Deepwalk: https://arxiv.org/pdf/1403.6652.pdf LINE: https://arxiv.org/pdf/1503.03578.pdf Node2vec: https://arxiv.org/pdf/1607.00653.pdf Metapath2vec: https://dl.acm.org/doi/10.1145/3097983.3098036 BANE: https://ieeexplore.ieee.org/document/8626170 Node2vec+: https://arxiv.org/pdf/2109.08031.pdf
其中阿里的一篇对大规模物品的图表示学习论文:

Billion-scale Commodity Embedding

本文提出根据用户历史行为构建一个item graph,然后使用DeepWalk学习每个item的embedding,即Base Graph Embedding(BGE)。BGE优于CF,因为基于CF的方法只考虑了在用户行为历史上的items的共现率。但是对于少量或者没有交互行为的item,仍然难以得到准确的embedding。为了减轻该问题,本文提出使用side information来增强embedding过程,提出了Graph Embedding with Side information (GES)。例如,属于相似类别或品牌的item的embedding应该相近。在这种方式下,即使item只有少量交互或没有交互,也可以得到准确的item embedding。在淘宝场景下,side information包括:category,brand,price等。不同的side information对于最终表示的贡献应该不同,于是本文进一步提出一种加权机制用于学习embedding with side information,称为Enhanced Graph Embedding with Side information (EGES)。

在这里插入图片描述

side information embedding

在训练deepwalk的同时,利用商品的side information来训练不同边界信息的表达,并且得到不同边界信息的权重矩阵
Av×(n+1),v是不同的节点,n是商品信息的维度。
在这里插入图片描述

图神经网络的应用

图数据的结构普遍存在,所以图神经网络的应用场景丰富多样。

在这里插入图片描述

**推荐
可解释推荐
可解释性推荐,就是不仅要预测推荐的商品,还要给出推荐的理由。**推荐中有一个概念叫元路径。在电影推荐的场景里,如下图所示。用 U 表示用户,用 M 表示电影,那么 UUM 是一条元路径。它表示一位用户关注了另一位用户,那么我们可以将用户看过的电影,推荐给关注他的人。

当然,还有比如 UMUM 表示与你看过相同电影的人还在看什么电影这条路径;UMTM 表示与你看过同一类型电影的路径…元路径有很多,不同元路径对于不同的业务语义。在这个场景中,图神经网络模型有两个任务,一个是推荐影片给用户,二是给出哪条元路径的权重更高。而这正式 GNN 可解释性的体现。
在这里插入图片描述

基于社交网络的推荐
利用用户之间的关注关系,我们也可以实现推荐。**用户的购买行为首先会受到其在线社交圈中朋友的影响。**如果用户 A 的朋友是体育迷,经常发布关于体育赛事、体育明星等信息,用户 A 很可能也会去了解相关体育主题的资讯。

其次,社交网络对用户兴趣的影响并非是固定或恒定的,而是根据用户处境(Context)动态变化的。举例来说,用户在听音乐时更会受到平时爱好音乐的朋友影响,在购买电子产品时更会受到电子发烧友的朋友影响。目前有许多的电商平台,包括像京东、蘑菇街、小红书等都在尝试做基于社交的推荐。
在这里插入图片描述

基于知识图谱的推荐
要推荐的商品、内容或者产品,依据既有的属性或者业务经验,可以得到他们之间很多的关联信息,这些关联信息即是我们通常说的知识图谱。知识图谱可以非常自然地融合进已有的用户-商品网络构成一张更大、且包含更加丰富信息的图。

在这里插入图片描述

其实不管是社交网络推荐,还是知识图谱,都是拿额外的信息补充到图网络中。既能有聚合关系网络中复杂的结构信息,又能囊括丰富的属性信息,这就是图神经网络强大的地方。

国外图片社交媒体 Pinterest 发表了利用图神经网络做推荐的模型 PinSage,参考Pinterest:将GCN应用于图像推荐

风控
风控的业务场景,尤其是在高QPS的网络请求下,需要实时判断每个请求是真实用户流量还是机器流量。一个简单的模型,使用的数据包括设备ID、IP、用户以及他们的行为数据,如下图:

在这里插入图片描述

一个案例,如全网一天有将近十亿次网络请求,全部日志构成一张图,包括 1.6 亿节点、12亿边。相较于之前的深度学习方法,AUC 指标提升1.2倍,上线测试该模型的稳定性指标最优,提升 1.5 倍。另一个案例是对 2800 万的网站业务(包括 IP、UA、域名、访问时间等等)以及第三方的威胁情报库数据。该场景下的任务是预测网络请求是否为恶意请求。比如说黑产可能通过 POST 端注入一些恶意代码,操作数据库。解决方案使用了 4 个字段。某个请求在某个IP哪个域名注入了某种脚本,以及 POST 特征码。前三个字段(请求事件ID,IP,域名)构成了一个图,是模型的输入。最后一个 POST 特征码是网络需要预测的或者说在预测时候的监督信号。模型结果的输出首先是攻击语言的识别,2800 万的流量里面有 70% 的是异常流量,分别来自于六个不同的攻击语言,并且识别出相应的作案手段。攻击目标的识别,输出了对应被攻击的域名列表 2000 条。仅仅用了4个字段,就完成了异常流量、攻击目的以及攻击语言的识别。

在很多互联网营销场景里存在着大量薅羊毛的恶意账户。识别恶意账户就是对图中的用户节点进行分类**。薅羊毛用户有一个非常本质的特点,就是他们的行为模式非常相似。由于恶意账户的资源不是无限的,会共用一些设备账号,包括手机号等。所以数据上会有非常多的关联和相似性。另一个特点是在短时间内活跃,薅羊毛用户往往是在做活动的时间段行为非常活跃,而在其他的业务场景里面,活跃度很低,具有短时高频的特点。**所以,要识别这样的恶意账户,主要用了两份信息,第一个是资源的关联信息,另一个就是时间上的行为信息, 这些用户和正常用户在时间上的行为模式是不太一样的。GNN 可以端对端的去学习这两类信息。这个场景阿里发了一篇论文去讲,恶意账户的识别,最后相比较其他的方法,比如像图分区去挖掘这种团伙,包括像 GBDT 这种浅层的机器学习模型,效果是比较突出的。

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

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

相关文章

Spring RestTemplate 升级 WebClient 导致 OutOfMemoryError

Spring Boot是 Java 企业应用程序的一个非常流行的框架。与内部或外部应用程序集成的一种常见方法是通过 HTTP REST 连接。我们正在从RestTemplate升级到基于 Java NIO 的WebClient,它可以通过允许在调用 REST 服务端点时进行并发来显著提高应用程序性能。WebClient…

Windows环境部署Oracle 11g

Windows环境部署Oracle 11g 1.安装包下载2. 解压安装包3. 数据库安装3.1 执行安装脚本3.2 电子邮件设置3.3 配置安装选项3.4 配置系统类3.5 选择数据库安装类型3.6 选择安装类型3.7 数据库配置3.8 确认安装信息3.9 设置口令 Oracle常用命令 2023年10月中旬就弄出大致的文章&…

【Linux学习】【Ubuntu入门】2-1-1 vim编辑器设置

设置TAB键为4字节及显示行号 VIM编辑器默认TAB键为8空格,改为4空格 输入命令sudo vi /etc/vim/vimrc回车后输入密码按键盘下键到最后,按下“a”进入编辑模式,输入set ts4设置为4空格下一行输入set nu显示行号

华为HarmonyOS灵活高效的消息推送服务(Push Kit) -- 7 推送卡片刷新消息

场景介绍 如今衣食住行娱乐影音应用占据了大多数人的手机,一部手机可以满足日常大多需求,但对需要经常查看或进行简单操作的应用来说,总需要用户点开应用体验较繁琐。针对此种场景,HarmonyOS提供了Form Kit(卡片开发服…

Harbor安装笔记

下载离线安装包 wget https://github.com/goharbor/harbor/releases/download/v2.11.1/harbor-offline-installer-v2.11.1.tgz 解压 tar -zxvf harbor-offline-installer-v2.11.1.tgz 复制一份配置文件出来,修改配置 cp harbor.yml.tmpl harbor.yml vim harbor…

You are not allowed to push code to this project

原因1 用户权限不够。 具体查看用户权限路径: 原因2 vscode之前都能提交代码,但是突然就提交不上了。 表现为:前端代码能拉取,但是不能提交。使用idea进行前端代码的提交,完全没问题。 解决方案:修改TortoiseG…

【MySQL】常见的SQL优化方式

目录 1、插入数据 (1)批量插入 (2)手动提交事务 (3)主键顺序插入 2、主键优化 (1)页分裂 (2)页合并 3、order by 优化 (1)排…

探索有向图深度优先搜索的路径与时间的猜想:反例研究

探索有向图深度优先搜索的路径与时间的猜想:反例研究 引言深度优先搜索(DFS)猜想描述反例构造图结构提供一个DFS遍历顺序伪代码具体的DFS遍历时间戳记录分析C语言实现代码解释运行结果结论引言 在图论中,深度优先搜索(DFS)是一种重要的图遍历算法,被广泛应用于寻找路径…

VMware ESXi 8.0U3b macOS Unlocker OEM BIOS 2.7 标准版和厂商定制版

VMware ESXi 8.0U3b macOS Unlocker & OEM BIOS 2.7 标准版和厂商定制版 ESXi 8.0U3 标准版,Dell (戴尔)、HPE (慧与)、Lenovo (联想)、Inspur (浪潮)、Cisco (思科)、Hitachi (日立)、Fujitsu (富士通)、NEC (日电) 定制版、Huawei (华为) OEM 定制版 请访问…

【讲解+样例】使用opencv对aruco Markers识别

aruco标记与传统棋盘格功能相似,但是更快更便捷。棋盘格使用移步:【鱼眼+普通相机】相机标定 一、 aruco简介 aruco又称为aruco标记、aruco标签、aruco二维码。ArUco 标记通常是正方形的黑白图案。由黑色边框和内部的二进制矩阵组成。内部矩…

63.HDMI显示器驱动设计与验证-彩条实验

(1)常见的视频传输接口有三种: VGA 接口、 DVI 接口和 HDMI 接口,目前的显示设备都配有这三种视频传输接口。三类视频接口的发展历程为 VGA→DVI→HDMI。其中 VGA 接口出现最早,只能传输模拟图像信号; 随后…

CSS 背景属性概览:颜色、图像、位置、组合及透明

目录 非 VIP 用户可前往公众号回复“css”进行免费阅读 background - color background - image background - repeat background - position background - attachment background组合 背景透明 非 VIP 用户可前往公众号回复“css”进行免费阅读 background - color …

Stable Diffusion绘画 | SDXL模型的优缺点及模型推荐

现在 SD 已经开始全面进入 SDXL 的高分辨率时代。 SDXL 模型的优点 学习参数最多的模型:参数总量超过100亿,可对标 Midjourney 分辨率提升4倍:底模分辨率直接为 1024 x 1024 多出 Refiner 采样重构器:能增加更多的细节 更强的提示…

2024上海工博会,正运动展位新品与应用方案(二)

上海,9月26日,上海工博会已成功开展三天。正运动展位(6.1H-E261)依然人气高涨,吸引了众多专业观众和行业同仁的关注。精彩仍在继续~ 展会现场 01 多元工业应用场景方案展示 DEMO应用演示在本次展会上&…

云打包p12苹果证书和profile文件在线制作流程

使用hbuilderx的uniapp框架,除了开发小程序外,还可以打包出原生的安卓或苹果应用。 假如是打包安卓应用个,则需要安卓证书。 而假如打包ios应用,则需要p12格式的苹果证书和苹果证书的profile文件。其中苹果证书可以理解为基于非…

c++----继承(初阶)

大家好呀,今天我们也是多久没有更新博客了,今天来讲讲我们c加加中的一个比较重要的知识点继承。首先关于继承呢,大家从字面意思看,是不是像我们平常日常生活中很容易出现的,比如说电视剧里面什么富豪啊,去了…

CDF 累积分布函数图 怎么看

以上图为例,图中有五个数据集,每条曲线代表每个数据集中流的数量,然后我以蓝色的线条为例去解释怎么看这个图。 红色的方框的点说明,dataset-1中流数量少于500的app占全部app的20%;紫色的方框的点说明,da…

win10下NAT 端口转发及ssh VMware ubuntu24虚拟机

问题:win10无法访问VMware ubuntu24虚拟机。ping不通,ssh不通。 现象: 无法设置网桥模式。原因不明。win10 网络连接 中没有vmnet0 网桥模式。win10 网络连接 中,有vmnet8的NAT模式,有vmnet1的仅主机模式。VMware ub…

【Redis】Linux下安装配置及通过C++访问Redis

文章目录 一、Linux Centos 7.0版本下的安装及配置二、通过C访问Redis 一、Linux Centos 7.0版本下的安装及配置 通过源来安装,此次安装的版本为 redis 5.0 的,要通过其他源进行安装,首先安装 scl 源 yum install centos-release-scl-rh再安…

【LeetCode】每日一题 2024_9_26 数组元素和与数字和的绝对差(模拟)

前言 每天和你一起刷 LeetCode 每日一题~ LeetCode 启动! 题目:数组元素和与数字和的绝对差 代码与解题思路 func differenceOfSum(nums []int) int {sum1, sum2 : 0, 0for _, v : range nums {sum1 vfor v > 0 {sum2 v%10v / 10}}return sum1-s…