侧边栏壁纸
  • 累计撰写 62 篇文章
  • 累计创建 35 个标签
  • 累计收到 8 条评论

目 录CONTENT

文章目录

【论文阅读笔记】Dual-discriminative Graph Neural Network for Imbalanced Graph-level Anomaly Detection

生榆
2023-11-01 / 0 评论 / 0 点赞 / 70 阅读 / 5703 字
温馨提示:
本文最后更新于 2023-11-01,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

Dual-discriminative Graph Neural Network for Imbalanced Graph-level Anomaly Detection

https://www.craft.me/s/3BSooGwXHxSQ7L

Motivation & Contributions

  • 由于异常问题的不平衡性,异常信息会被海量的正常图所稀释→提出PMI

  • 节点异常属性、图异常子结构会影响到图的性质(以分子结构为例)→ 异常属性/结构感知方法(GCN、RWK)

观点:图异常的来源(通过什么东西体现的):

  1. 特定节点。它们的某些属性,可能是额外的属性,也可能就是拓扑结构有关的属性

  2. 图属性和子结构——关键因素。异常属性、异常结构的存在是直接原因

(个人理解:这些东西在各自所属的范畴都是服从一个特殊的分布,与大部队不同。比如图属性,模型学到的正常属性服从某种分布,遇到差别大的,就能够认为是异常属性)

方法

![Image.png](https://res.craft.do/user/full/7a2d2171-d557-44e7-ed2b-9bee01f09b4d/doc/8645D020-19AF-43BA-92F8-3B87B20AB105/EA956BB3-8DBF-4945-9BFC-C83CB3CC1E63_2/qItyL2WD3CKRSlqjgQAwxX2wPF94GmajYjdEgvJxgJEz/Image.png)Image.png

如何获得图向量

  1. anomalous attribute-aware GCN,把节点u本身的embedding和k跳内邻居节点的embedding进行拼接,得到节点u最终的embedding。这里的k跳是形成层级关系的

![Image.png](https://res.craft.do/user/full/7a2d2171-d557-44e7-ed2b-9bee01f09b4d/doc/8645D020-19AF-43BA-92F8-3B87B20AB105/336955F0-83FF-4F81-AA19-A223F574A411_2/FaRGhfPHRxxHAFOJV9L9GvUxp6s6DS2ZfkxAX9wZFmEz/Image.png)Image.png

对于节点u而言,其中第0层h0(也就是自己)直接把xu经过MLP得到,后面几层的计算则是第二个式子;(A、H应该分别是NN、NM的,假设N是节点数量,M是属性embedding维数),那W就应当为M*?的。此外,K取几,就需要几个W。拼接完了之后做readout得到最终的h_G

  1. anomalous substructure-aware Deep RWK。现有的GNN的聚合方式会导致在区分子结构的时候存在不足,于是采用RWK(随机游走核)。随机游走核大致做的事情是通过同时随机游走两个图,可以得到两段游走序列,以此衡量两个图的相似程度。本文预定义了几种异常子结构,将每个图都跟每个异常子结构计算核:【核的计算应该调包即可?】

然后,对于图G_i来说,可以组合出下面的向量:

经由一个MLP的到这部分的h_G。

至此,iGAD模型表示为f(G;Θ)​,将上面获得的两部分向量拼接起来作为最后的h_GN

PMI Loss

数据量的不平衡会导致训练的问题,于是提出了一个新的损失函数PMI Point Mutual Information,可以建模输入图之间的PMI及其异常/正常性质。

其中log后面的式子如下(norm以后):

对PMI的疑问:

  1. 该式子的设计过程不是很明白

  2. 感觉log(P_i) 像是一个定值,原文P (yi) is the proportion of anomalous graphs or normal graphs in the training set T。那这个应该是针对数据集而言的一个常数?

  3. 假如先去掉norm,把P代入L,是否就是L的最终用于计算的形状?但是并未看出有将y预测与y真实交叉的痕迹,直接是预测结果+log P(P_i)。---看了作者的代码后感觉他是不是写漏了??应该是:

补充:因为label定义的是1/0,所以0的部分省略了

实验

本文用了这几个数据集(全部都是化学领域的,分子结构之类的)

  • SW-620

  • MOLT-4

  • PC-3

  • MCF-7

对比方法:

![Image.png](https://res.craft.do/user/full/7a2d2171-d557-44e7-ed2b-9bee01f09b4d/doc/8645D020-19AF-43BA-92F8-3B87B20AB105/113E50F7-6669-4963-9906-349026CEB65C_2/iVxhY037xl6ZzJ5VQlBETuz50XPsMxSoPSTo0Ixinlsz/Image.png)Image.png

简介:

评价指标:

  • AUC

  • RECALL

  • RECALL (A)

  • F-SCORE

实验结果略(四个数据集,四个指标共16项只有3项非最优)

几个RQ

  1. 性能如何

  2. PMI是否有益:作者将baseline加入了PMI,每个结果均有提升,故有益

  3. 属性异常感知的GCN性能如何

  4. 如果使用预定义的异常子结构,性能如何

  5. 异常结构感知的RWK是否学习到了异常子结构

  6. 随机游走序列最大长度对iGAD有何影响:需要取决于数据集(异常子结构的节点数量)。

(2-4——消融实验均给出了回复且正面)


0

评论区