GNN编码器及基于图上下文学习的异常点检测方法与流程

文档序号:25734792发布日期:2021-07-06 18:43阅读:568来源:国知局
GNN编码器及基于图上下文学习的异常点检测方法与流程

本申请涉及计算机网络信息技术领域,尤其涉及gnn编码器及基于图上下文学习的异常点检测方法。



背景技术:

异常点检测对防止现实应用中的恶意活动有着深远的影响,如恶意评论的检测和错误信息检测等。因为图可以用来自然地建模数据背后的依赖关系,所以基于图的异常点检测方法成了发展主流。近来,随着图形神经网络(gnns)的发展,利用gnns来高效检测异常点的方法层出不穷。其主要思想是利用gnns学习节点的表示,随后基于分类器区分成正常或异常节点。



技术实现要素:

本申请旨在至少在一定程度上解决相关技术中的技术问题之一。

为此,本申请的第一个目的在于提出一种gnn编码器,与现有gnn模型不同,所述gnn编码器额外添加了边更新器来移除结点间的可疑链接,以及图更新器来更新图表示。

本申请的第二个目的在于提出一种基于图上下文学习的异常点检测方法,解决了现有异常点检测方法都集中在图结构特征工程或学习上,实现了利用图上下文对比学习来衡量异常与正常节点与图上下文的距离。

为达上述目的,本申请第一方面实施例提出了一种gnn编码器,包括:

边更新器,在每层gnn编码开始时,估算每条边的可疑概率,并根据所述每条边的可疑概率移除可疑链接,以实现对邻接矩阵的调整;

节点表示更新器,根据调整后的所述邻接矩阵聚合节点的邻居信息,对当前节点的向量表示进行更新,得到更新后的节点向量;

图表示更新器,根据更新后的所述节点向量以及上一层的图表示来更新当前的图表示。

可选地,在本申请实施例中,在所述边更新器中,对所述每条边进行更新的公式为:

al=fedge(h(l-1),a(l-1),q(l-1))

其中,al为更新后的邻接矩阵,a(l-1)为上一层的邻接矩阵,h(l-1)为上一层的结点向量表示矩阵,q(l-1)为图表示;

在所述节点表示更新器中,对节点表示进行更新的公式为:

hl=fnode(h(l-1),al)

其中,h(l-1)为上一次的结点向量表示矩阵,h(l)为更新后的本层的结点向量表示矩阵,al为本层的邻接矩阵,fnode为结点表示的更新函数;

在所述图表示更新器中,对图表示进行更新的公式为:

q(l)=fgraph(h(l),q(l-1))

其中,q(l-1)为上层的表示;q(l)为更新后的本层图表示。

可选地,在本申请实施例中,在所述边更新器中引入图的全局信息,所述图的全局信息为节点与图的距离;其中,

将所述节点与图的距离作为潜在的标签,通过所述潜在的标签辅助所述可疑链接的进行概率估算。

可选地,在本申请实施例中,所述对边更新器进行更新的方法,包括以下步骤:

首先,基于所述图上下文构建链接预测模块,所述链接预测模块通过下述公式构建:

其中,为向量连接操作符,mlp为全连接层,(hi(l-1)-q(l-1))为图的全局信息,hi(l-1)为第l-1层结点i的向量表示,为结合图全局信息后结点i的向量表示;

其次,计算所述每条边aij的可信度得分pij,

其中,relu为非线性激活函数并将得分映射到[0,1],为结点i与结点j之间的边的可信度得分,为结合图全局信息后结点i的向量表示;

再次,通过gumbel-softmax重参数化技巧使得离散化移除边的过程变得可微分;

其中,对于每一条边的可信度得分从gumbel分布中采样一个噪音ε∈gumbel(0,1),将其与相加并且对数,

最后,调用sigmoid激活函数将其映射到[0,1]之间,公式为:

其中,λ代表超参数,中括号代表向下取整,ε为从gumbel分布中采样一个噪音ε∈gumbel(0,1),λ为预先设置的超参数,为更新后的结点i与结点j之间的边,取值为0或者1,0代表删去该边,1代表保留该边,为结点i与结点j之间的边的可信度得分。

可选地,在本申请实施例中,在所述边更新器中引入链接预测的交叉熵损失函数,通过所述的交叉熵损失函数对所述边更新器的拟合进行加速处理;

其中,所述交叉熵损失函数的公式为:

其中,为损失函数,为上层(第l-1层)的边,为结点i与结点j之间的边的可信度得分,i,j分别表示结点i,j。

可选地,在本申请实施例中,所述对节点表示更新器进行更新中,聚合所述邻居信息的公式为:

其中,为结点i聚合后的邻居向量,aggregation为邻居向量的聚合函数。

通过特征函数对当前节点的向量表示进行更新,得到更新后的节点向量,所述节点向量的表示公式为:

其中,combine为聚合函数,为更新后的结点i的向量表示。

可选地,在本申请实施例中,在所述图表示更新器中引入记忆缓存,通过所述记忆缓存记录上一层的图表示,并用所述记忆缓存作为指导计算这层每个节点向量的重要性;

所述通过所述记忆缓存记录上一层的图表示,并用所述记忆缓存作为指导计算这层每个节点向量的重要性,包括以下步骤:

使用上一层的图表示q(l-1)作为记忆m,通过下述公式来计算每一个节点向量的重要度:

随后,新的图表示为其中,将所述新的图表示加入记忆缓存m=q(l)用于下一层的计算;

其中,表示第l层第i个结点的重要度得分,为结点i重要度得分的归一化表示,为结点i的向量表示,m表示上一层图表示q(l-1)记忆,q(l)为第l层的图表示;n为结点数量。

为达上述目的,本申请第一方面实施例提出了一种基于图上下文学习的异常点检测方法,包括:

获取带节点标签的图网络g=(v,x,a,y),其中,v为节点的集合,x为对应的节点特征矩阵,a为邻接矩阵,且a∈rn×n,y为节点的标签;

通过cogcl异常点检测框架学习所述图网络中节点与图上下文的距离,当所述节点与图上下文的距离大于预设值时,所述节点为异常节点,否则为正常节点;其中,

所述异常点检测框架包括所述的gnn编码器和对比损失函数,通过所述gnn编码器获取所述每个节点的节点向量和图向量,通过所述对比损失函数对所述每个节点的节点向量和图向量进行图对比学习。

可选地,在本申请实施例中,所述异常节点与正常节点之间的边为可疑链接。

可选地,在本申请实施例中,所述通过所述对比损失函数对所述每个节点的节点向量和图向量进行图对比学习的公式为:

其中,hi为每个节点的向量表示,τ为超参数,q为图表示,x为是对应的节点特征矩阵,a为结点邻接矩阵,为图对比学习的损失函数。

可选地,在本申请实施例中,所述cogcl异常点检测框架,还包括异常点预测,计算所述的节点向量和图向量的余弦相似度得分,通过所述的余弦相似度得分判断节点是否为异常节点。

可选地,在本申请实施例中,在框架cogcl的基础上加上图扰动策略,即可得到一种无需自监督预训练框架cogcl-pre,包括:

所述无需自监督预训练框架cogcl-pre,通过在cogcl异常点检测框架的基础上加入一种图扰动策略,将原始图之外的节点注入到原始图中当做扰动,将这些扰动充当当前原始图上下文的伪异常节点,从而获得伪标签数据用来预训练;

所述cogcl异常点检测框架包括所述的异常点检测方法,通过所述cogcl异常点检测框架将所述伪异常节点视为所述异常节点;

所述异常点检测框架包括所述的gnn编码器和对比损失函数,通过所述gnn编码器获取所述每个节点的节点向量和图向量,通过所述对比损失函数对所述每个节点的节点向量和图向量进行图对比学习。

可选地,在本申请实施例中,在所述cogcl异常点检测框架中注入伪异常节点,通过所述伪异常节点破坏原始图的上下文构建伪标签。

可选地,在本申请实施例中,在图扰乱策略中,分割图的方法有很多种,包括:

当有多个图需要进行异常点检测,此时就天然有了多图的分割,多图之间可以互相扰动;

当在一个大图上做分割,调用图聚类方法将一个大图聚成多个子图,此时各个子图之间可以互相扰动。

可选地,在本申请实施例中,所述将原始图之外的节点注入到原始图中当做扰动,包括:

给定图g=(v,x,a),我们使用某种策略将其分成几个子图

对于每一个子图gi,我们向其注入属于其它子图的节点集从而得到一个新的扰动后的图

其中的节点邻接矩阵为总体邻接矩阵a的切片。

本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

附图说明

本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为本申请实施例使用t-sne方法将每篇论文的初始向量映射到二维向量空间的可视化表示;

图2为本申请实施例的原始输入特征;

图3为本申请实施例的经过gcns模型处理后的节点向量与图上下文的距离分布;

图4为本申请实施例的经过cogcl模型处理后的节点向量与图上下文的距离分布;

图5为本申请实施例的cogcl模型框架;

图6为本申请实施例的预训练实验结果。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。

下面参考附图描述本申请实施例的燃料电池堆多片膜电极多参数同步检测方法和装置。

本申请的第一个目的在于提出一种gnn编码器,与现有gnn模型不同,所述gnn编码器额外添加了边更新器来移除结点间的可疑链接,以及图更新器来更新图表示。

本申请的第二个目的在于提出一种基于图上下文学习的异常点检测方法,解决了现有异常点检测方法都集中在图结构特征工程或学习上,实现了利用图上下文对比学习来衡量异常与正常节点与图上下文的距离。

为达上述目的,本申请第一方面实施例提出了一种gnn编码器,包括:

边更新器,在每层gnn编码开始时,估算每条边的可疑概率,并根据所述每条边的可疑概率移除可疑链接,以实现对邻接矩阵的调整;

节点表示更新器,根据调整后的所述邻接矩阵聚合节点的邻居信息,对当前节点的向量表示进行更新,得到更新后的节点向量;

图表示更新器,根据更新后的所述节点向量以及上一层的图表示来更新当前的图表示。可选地,在本申请实施例中,在所述边更新器中,对所述每条边进行更新的公式为:

al=fedge(h(l-1),a(l-1),q(l-1))

其中,al为更新后的邻接矩阵,a(l-1)为上一层的邻接矩阵,h(l-1)为上一层的结点向量表示矩阵,q(l-1)为图表示;

在所述节点表示更新器中,对节点表示进行更新的公式为:

hl=fnode(h(l-1),al)

其中,h(l-1)为上一次的结点向量表示矩阵,h(l)为更新后的本层的结点向量表示矩阵,al为本层的邻接矩阵,fnode为结点表示的更新函数;

在所述图表示更新器中,对图表示进行更新的公式为:

q(l)=fgraph(h(l),q(l-1))

其中,q(l-1)为上层的表示;q(l)为更新后的本层图表示。

可选地,在本申请实施例中,在所述边更新器中引入图的全局信息,所述图的全局信息为节点与图的距离;其中,

将所述节点与图的距离作为潜在的标签,通过所述潜在的标签辅助所述可疑链接的进行概率估算。

可选地,在本申请实施例中,所述对边更新器进行更新的方法,包括以下步骤:

首先,基于所述图上下文构建链接预测模块,所述链接预测模块通过下述公式构建:

其中,为向量连接操作符,mlp为全连接层,(hi(l-1)-q(l-1))为图的全局信息,hi(l-1)为第l-1层结点i的向量表示,为结合图全局信息后结点i的向量表示;

其次,计算所述每条边aij的可信度得分pij,

其中,relu为非线性激活函数并将得分映射到[0,1],为结点i与结点j之间的边的可信度得分,为结合图全局信息后结点i的向量表示;

再次,通过gumbel-softmax重参数化技巧使得离散化移除边的过程变得可微分;

其中,对于每一条边的可信度得分从gumbel分布中采样一个噪音ε∈gumbel(0,1),将其与相加并且对数,

最后,调用sigmoid激活函数将其映射到[0,1]之间,公式为:

其中,λ代表超参数,中括号代表向下取整,ε为从gumbel分布中采样一个噪音ε∈gumbel(0,1),λ为预先设置的超参数,为更新后的结点i与结点j之间的边,取值为0或者1,0代表删去该边,1代表保留该边,为结点i与结点j之间的边的可信度得分。

可选地,在本申请实施例中,在所述边更新器中引入链接预测的交叉熵损失函数,通过所述的交叉熵损失函数对所述边更新器的拟合进行加速处理;

其中,所述交叉熵损失函数的公式为:

其中,为损失函数,为上层(第l-1层)的边,为结点i与结点j之间的边的可信度得分,i,j分别表示结点i,j。

可选地,在本申请实施例中,所述对节点表示更新器进行更新中,聚合所述邻居信息的公式为:

其中,为结点i聚合后的邻居向量,aggregation为邻居向量的聚合函数;

通过特征函数对当前节点的向量表示进行更新,得到更新后的节点向量,所述节点向量的表示公式为:

其中,combine为聚合函数,为更新后的结点i的向量表示。

可选地,在本申请实施例中,在所述图表示更新器中引入记忆缓存,通过所述记忆缓存记录上一层的图表示,并用所述记忆缓存作为指导计算这层每个节点向量的重要性;

所述通过所述记忆缓存记录上一层的图表示,并用所述记忆缓存作为指导计算这层每个节点向量的重要性,包括以下步骤:

使用上一层的图表示q(l-1)作为记忆m,通过下述公式来计算每一个节点向量的重要度:

随后,新的图表示为其中,将所述新的图表示加入记忆缓存m=q(l)用于下一层的计算;

其中,表示第l层第i个结点的重要度得分,为结点i重要度得分的归一化表示,为结点i的向量表示,m表示上一层图表示q(l-1)记忆,q(l)为第l层的图表示;n为结点数量。

为达上述目的,本申请第二方面实施例提出了一种基于图上下文学习的异常点检测方法,包括:

获取带节点标签的图网络g=(v,x,a,y),其中,v为节点的集合,x为对应的节点特征矩阵,a为邻接矩阵,且a∈rn×n,y为节点的标签;

通过cogcl异常点检测框架学习所述图网络中节点与图上下文的距离,当所述节点与图上下文的距离大于预设值时,所述节点为异常节点,否则为正常节点;其中,

所述异常点检测框架包括所述的gnn编码器和对比损失函数,通过所述gnn编码器获取所述每个节点的节点向量和图向量,通过所述对比损失函数对所述每个节点的节点向量和图向量进行图对比学习。

可选地,在本申请实施例中,所述异常节点与正常节点之间的边为可疑链接。

可选地,在本申请实施例中,所述通过所述对比损失函数对所述每个节点的节点向量

和图向量进行图对比学习的公式为:

其中,hi为每个节点的向量表示,τ为超参数,q为图表示,x为是对应的节点特征矩阵,a为结点邻接矩阵,为图对比学习的损失函数。

可选地,在本申请实施例中,所述cogcl异常点检测框架,还包括异常点预测,计算所述的节点向量和图向量的余弦相似度得分,通过所述的余弦相似度得分判断节点是否为异常节点。

可选地,在本申请实施例中,在框架cogcl的基础上加上图扰动策略,即可得到一种无需自监督预训练框架cogcl-pre,包括:

所述无需自监督预训练框架cogcl-pre,通过在cogcl异常点检测框架的基础上加入一种图扰动策略,将原始图之外的节点注入到原始图中当做扰动,将这些扰动充当当前原始图上下文的伪异常节点,从而获得伪标签数据用来预训练;

所述cogcl异常点检测框架包括所述的异常点检测方法,通过所述cogcl异常点检测框架将所述伪异常节点视为所述异常节点;

所述异常点检测框架包括所述的gnn编码器和对比损失函数,通过所述gnn编码器获取所述每个节点的节点向量和图向量,通过所述对比损失函数对所述每个节点的节点向量和图向量进行图对比学习。

可选地,在本申请实施例中,在所述cogcl异常点检测框架中注入伪异常节点,通过所述伪异常节点破坏原始图的上下文构建伪标签。

可选地,在本申请实施例中,在图扰乱策略中,分割图的方法有很多种,包括:

当有多个图需要进行异常点检测,此时就天然有了多图的分割,多图之间可以互相扰动;

当在一个大图上做分割,调用图聚类方法将一个大图聚成多个子图,此时各个子图之间可以互相扰动。

可选地,在本申请实施例中,所述将原始图之外的节点注入到原始图中当做扰动,包括:

给定图g=(v,x,a),我们使用某种策略将其分成几个子图

对于每一个子图gi,我们向其注入属于其它子图的节点集从而得到一个新的扰动后的图

其中的节点邻接矩阵为总体邻接矩阵a的切片。

为了使本领域技术人员更好的理解本申请,现以一种基于图上下文学习的异常点检测方法为例;

下面参考附图描述本申请实施例的方法:

在本申请实施例中,为了进一步理解异常点的行为,我们利用来自耶鲁大学的学者“junlu”的googlescholar论文集来做可视化分析。如果两篇论文拥有同样的合作者或者发表在同一个会议上,则该论文对拥有一条边。在下面几幅图中,我们探索了如何将异常(错误分配)论文与正常论文区分开。

图1展示了使用t-sne方法将每篇论文的初始向量映射到二维向量空间的可视化表示;

其中,小点代表正常论文,大点代表异常论文。

进一步地,论文的初始向量是通过将论文的标题和关键词输入bert模型而得到。从图中我们可以看出,无论是正常论文还是异常论文,它们绝对的特征分布都有着很大的差异性,而且异常论文的差异性更大。这使得先前基于节点分类的优化方法不能很好的解决特征分布的差异性问题。随后,我们通过计算每个节点和图上下文(所有节点特征的平均值)之间的距离(余弦相似度)来量化这个观察结果。图2清楚地说明,尽管正常论文与异常论文与图上下文的距离分布非常相似(y∈[0.97,1]),但正常论文和异常论文还是能够被清晰地区分。基于这个观察,我们可以得到更一般性的假设,即异常点相对于正常点来说,跟整个图的分布差异更大。基于此假设,我们提出了cogcl模型,使用图对比学习作为优化目标,来比对异常与正常节点与图上下文的距离。图3和图4分别代表经过gcns以及cogcl模型处理后的节点向量与图上下文的距离分布,体现出cogcl相对于传统基于gcns的分类模型在区分异常节点与正常节点的强大能力。

进一步地,先前的方法都是基于监督学习,所以它们都会受到标注数据稀缺性的影响。尤其在某些领域,获得足够有效的标注数据往往是不可能的。故我们在cogcl的基础上提出cogcl-pre框架,该框架通过一种图上下文扰动的策略,即在原始图中注入外来节点(异常点)来破坏原始图的上下文,以此来构建伪标签和自监督训练任务,从而一定程度上摆脱对监督数据的依赖。

具体地,本申请实施例中提出了一种基于图上下文对比学习的异常点检测框架cogcl,相对于传统基于gnns的分类方法能够更好地解决数据分布的差异性问题;同时提出了一种自监督学习的方法cogcl-pre,一定程度上解决了模型对标注数据的依赖性问题。

进一步地,异常点检测问题可以定义为,输入一个带节点标签的图网络g=(v,x,a,y),其中v表示n个节点的集合,a∈rn×n代表邻接矩阵。不失一般性,我们将g定义为无向,无权,以及单一节点关系的图,即如果节点vi和vj间有边,则aij=1,否则aij=0。x是对应的节点特征矩阵,其中xi∈rd代表节点vi拥有d维的特征向量。y表示各个节点的标签,其中yi=1代表节点vi是异常节点,否则为正常节点。异常点检测的目的就是学习函数g:rd→{0,1}来预测给定节点为正常节点(0)还是异常节点(1)。

进一步地,为了准确地检测出异常点,本专利提出了cogcl,一种基于图上下文对比的异常点检测框架,cogcl是基于一种对实际情况的观察,即正常节点和异常节点与图上下文的距离存在显著差异,故若一个节点与特征空间中大多数节点的距离越远,该节点就越有可能为异常节点。故图上下文对比学习的优化策略定义为,给定图g,我们首先用一个特征的gnn编码器获得每个节点vi的向量表示hi以及图表示q,即(h,q)=fgnn(x,a),其中随后,我们将q看成一种查询,把所有正常节点的向量看成正例值,将异常节点看成负例,使用infonce损失函数来实现图对比学习,具体定义如下:

其中,该损失函数拉近了正常节点与图上下文表示的距离的同时推远异常节点与上下文的距离,从而达到识别异常点的作用。

其中,hi为每个节点的向量表示,τ为超参数,q为图表示,x为是对应的节点特征矩阵,a为结点邻接矩阵,为图对比学习的损失函数。

在本申请实施例中,为了实现我们定义了gnn编码器fgnn。与普通gnn模型不同,我们额外添加了设计了节点边更新器来移除可疑链接,即异常节点与正常节点的连边,以及图表示更新器来实时更新图上下文表示,具体定义如下:

边更新器:在每层gnn编码开始时估算每条边的可疑概率,并以此为依据调整邻接矩阵以达到尽可能移除可疑链接的目的,即

al=fedge(h(l-1),a(l-1),q(l-1))

其中,al为更新后的邻接矩阵,a(l-1)为上一层的邻接矩阵,h(l-1)为上一层的结点向量表示矩阵,q(l-1)为图表示;

节点表示更新器:根据调整后的邻接矩阵,聚合节点的邻居信息以更新当前节点的向量表示。该模块可替换成任意gnn编码器,即

hl=fnode(h(l-1),al)

其中,h(l-1)为上一次的结点向量表示矩阵,h(l)为更新后的本层的结点向量表示矩阵,al为本层的邻接矩阵,fnode为结点表示的更新函数;

图表示更新器:根据更新后的节点向量以及上一层的图表示来更新得到当前的图表示,即

q(l)=fgraph(h(l),q(l-1))

其中,q(l-1)为上层的表示;q(l)为更新后的本层图表示。

进一步地,整体的cogcl框架示意图如图2所示,在每一层,边更新器,节点表示更新器以及图表示更新器都会顺序作用在图上。经过l层卷积后,损失函数会作用在最终得出的图表示和节点表示上以计算损失,随后调用梯度下降算法优化整体模块。

异常点预测:在得到节点向量表示和图向量表示后,与传统的直接通过节点向量预测节点的标签方法不同。cogcl计算节点向量与图向量的余弦相似度得分,得分越低则代表该节点更有可能是异常节点。这种得分机制更加能够灵活的应用在不同的场景中。

在本申请实施例中,为了实现基于自监督学习的cogcl,具体而言,基于监督学习的异常点检测模型效果受标签数据质量的影响较大,想要获得理想的检测效果需要大规模高质量的监督数据,而异常点的标签数据在某些领域往往是难以获得的。近年来,基于图的自监督学习方法在图预训练上取得了良好的效果,例如,gae通过重建邻接矩阵来保存图的结构信息;gpt-gnn通过预测节点的属性来额外的保存节点的属性关系;dgi通过最大化图上下文以及节点向量的互信息来保存图信息;graphcl通过最大化一个图的两个增强视图来保存图信息.因此,我们提出了一种无需标签的自监督预训练策略来解决图中的异常检测问题。受图对比学习的启发,我们提出通过破坏原始图来构造伪标签,具体来说,我们将原始图之外的节点注入到原始图中当做扰动,所以这些扰动可以充当当前原始图上下文的伪异常节点,即,

原始图扰动:给定图g=(v,x,a),我们使用某种策略将其分成几个子图对于每一个子图gi,我们向其注入属于其它子图的节点集从而得到一个新的扰动后的图其中的节点邻接矩阵为总体邻接矩阵a的切片。图扰动的示意图如图5所示。

在本申请实施例中,下面将详细介绍cogcl的实现细节。我们首先介绍拥有三个更新器的gnn编码器的实现方式,

边更新器:可疑链接为正常节点和异常节点之间的边,这种边违反了传统gnn编码器的同质性假设,即相邻的邻居节点拥有相似的属性表示。所以这些可疑链接直接影响gnn编码器的效果。之前的方法大多直接基于一条边相连的节点对本身的向量表示来估算该边为可疑链接的可能性,而我们额外的引入了图的全局信息,即节点与图的距离,这样可以把距离信息当成潜在的标签从而辅助可疑链接的概率估算,即若有边相连的两个节点与图上下文的距离差距越大,则该边为可疑链接的可能性比较大。具体来说,我们首先定义了基于图上下文的链接预测模块,

其中,为向量连接操作符,mlp为全连接层。(hi(l-1)-q(l-1))为添加的图的全局信息,hi(l-1)为第l-1层结点i的向量表示,为结合图全局信息后结点i的向量表示。

随后我们计算边aij的可信度得分pij,

其中,relu为非线性激活函数并将得分映射到[0,1],为结点i与结点j之间的边的可信度得分,为结合图全局信息后结点i的向量表示;

进一步地,我们通过gumbel-softmax重参数化技巧使得离散化删除边的过程变得可微分。

具体而言,对于每一条边的可信度得分我们从gumbel分布中采样一个噪音ε∈gumbel(0,1),将其与相加并且对数,最后调用sigmoid激活函数将其映射到[0,1]之间,公式如下:

其中,λ代表超参数,中括号代表向下取整,ε为从gumbel分布中采样一个噪音ε∈gumbel(0,1),λ为预先设置的超参数,为更新后的结点i与结点j之间的边,取值为0或者1,0代表删去该边,1代表保留该边,为结点i与结点j之间的边的可信度得分。

我们额外施加了一个链接预测的交叉熵损失函数,从而加速边更新器的拟合,

其中,为损失函数,为上层(第l-1层)的边,为结点i与结点j之间的边的可信度得分,i,j分别表示结点i,j。

在本申请实施例中,节点表示更新器:更新当前节点的向量表示具体可以分为如下两个步骤,首先我们根据修改后的邻接矩阵聚合邻居的信息,即

其中,为结点i聚合后的邻居向量,aggregation为邻居向量的聚合函数;

进一步地,我们将聚合后的邻居信息与节点本身的向量表示通过结合函数,得到新的向量表示,

在实现过程中,我们使用了gin[xu,2018]的聚合和结合的函数。

其中,combine为聚合函数,为更新后的结点i的向量表示。

在本申请实施例中,图表示更新器:在得到更新后的节点向量后,我们可以调用传统的求和,求平均以及求最值等池化方法更新图的表示。但是传统的池化方法没有区分正常节点和异常节点,为了解决这一问题,我们引入记忆缓存来记录上一层的图表示,并用它作为指导计算这层每个节点向量的重要性,具体来说,我们首先使用上一层的图表示q(l-1)作为记忆m,来计算每一个节点向量的重要度,

进一步地,新的图表示为同时将其加入记忆缓存m=q(l)用于下一层的计算。

其中,表示第l层第i个结点的重要度得分,为结点i重要度得分的归一化表示,为结点i的向量表示,m表示上一层图表示q(l-1)记忆,q(l)为第l层的图表示;n为结点数量。

在本申请实施例中,在图扰乱策略中,分割图的方法有很多种,在本专利中,如果本来就有多个图需要进行异常点检测,此时就天然有了多图的分割,例如在学术知识系统中,每个作者的论文即可看成一个图,所以检测异常论文就需要在不同的学者图上做检测,从而对于每个学者来说,另一个学者的论文即是扰动;如果在一个大图上做分割,我们调用图聚类方法将一个大图聚成多个子图,此时各个子图之间可以互相扰动。

在本申请实施例中,本申请在学术知识图谱的数据集aminer上做了充分的实验。

数据集aminer1:是一个免费的在线学术搜索和挖掘系统,已收集了超过1亿专家学者和2.6亿论文集。我们从aminer中提取了1,104位专家所拥有的论文,并将每篇论文看成图中的一个节点,且任意两篇论文间若有相同的合作者,工作机构或者发表在同一会议时,为这两篇论文添加一条边。每个专家档案中关于错误论文的真实标签是由人工标注的。

评测指标:我们采用areaunderroccurve(auc)以及meanaverageprecision(map)两个指标来全面评测异常点检测的效果:auc是一种广泛应用在异常点检测领域的综合分类指标;map是一种排序的指标,用在异常点检测领域则更多地强调异常点的相对排序。

进一步地,在监督情景下cogcl的评测:

训练设置:在aminer的1,104位专家所拥有的论文中,我们选取约70%的专家作为训练集,用剩下的30%作为测试集。论文的初始化向量是通过将论文的标题以及关键词输入bert中得到。

比对方法:我们比对了两种经典的图神经网络模型,gcn和gin;此外还对比了最先进的两种基于gnn的异常点检测模型,graphconsis和care-gnn。

实验结果:实验结果如表1所示,在aminer数据集上,cogcl的异常点检测的效果远远地优于最先进的比对方法:在auc指标上高出11.70-20.45%,在map指标上高出19.58-28.19%。实验结果充分体现出基于图上下文对比学习的优化框架的优越性。

下表为异常点检测实验结果:

进一步地,在无监督情景下cogcl-pre的评测:

训练设置:在aminer系统中,我们额外抽出4,800的专家论文,并使用图扰动策略扰动原始的专家论文图,从而获得伪标签数据用来预训练。同时使用与cogcl相同的测试集来评测cogcl-pre的效果。

比对方法:我们比对了四种最先进的图自监督预训练框架模型,gae,gpt-gnn,dgi以及graphcl。

实验结果:实验结果如图6所示,从图中可以得到以下三个观察结果:1.cogcl-pre在不使用监督数据的情景下都能达到与基于监督学习的cogcl的效果;2.当cogcl-pre在使用全部监督数据微调后,其效果在map指标上超过cogcl大约1.96%;3.cogcl-pre在给定任意百分比监督数据的效果都显著地比其余的比对方法好。以上三个实验结果充分体现出了我们提出的自监督预训练模型框架的有效性。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1