【2019/SDM】Deep Anomaly Detection on Attributed Networks


原文链接:https://dreamhomes.github.io/posts/202012271139.html


文章链接:http://www.public.asu.edu/~kding9/pdf/SDM2019_Deep.pdf
源码链接:https://github.com/kaize0409/GCN_AnomalyDetection

TL;DR

目前属性网络中的异常检测方法都是使用浅层的学习机制或者子空间特征,但现实中属性网络非常稀疏并且数据是非线性的。论文中提出一种基于图自编码器的异常检测模型 DOMINANT (Deep Anomaly Detection on Attributed Networks),同时考虑了结构特征和属性特征,实验在真实网络中取得了较好的效果;

Problem Definition

  • Attributed Networks: 属性网络 G = ( V , E , X ) \mathcal{G}=(\mathcal{V}, \mathcal{E}, \mathbf{X}) G=(V,E,X), 节点集合 ∣ V ∣ = n |\mathcal{V}| =n V=n, 边集合 ∣ E ∣ = m |\mathcal{E}| =m E=m,节点属性 X ∈ R n × d \mathbf{X} \in \mathbf{R} ^{n×d} XRn×d,邻接矩阵 A \mathbf{A} A
  • Anomaly Ranking on Attributed Networks:属性网络中的异常检测形式化转化为 图中所有节点的异常度排序;

Model / Algorithm

整个模型的架构图如下所示,主要包含三部分:

  • attributed network encoder: 使用GCN架构来进行node embedding;
  • structure reconstruction decoder: 使用 node embedding 来重构图结构;
  • attribute reconstruction decoder:使用 node embedding 来重构图中节点属性;

综合考虑属性和结构的重构误差来判定节点的异常;

Attributed Network Encoder

采用 GCN 模型来embedding,每层的计算公式如下:
H ( l + 1 ) = f ( H ( l ) , A ∣ W ( l ) ) = σ ( D ~ − 1 2 A ~ D ~ − 1 2 H ( l ) W ( l ) ) \mathbf{H}^{(l+1)}=f\left(\mathbf{H}^{(l)}, \mathbf{A} \mid \mathbf{W}^{(l)}\right)=\sigma\left(\widetilde{\mathbf{D}}^{-\frac{1}{2}} \widetilde{\mathbf{A}} \tilde{\mathbf{D}}^{-\frac{1}{2}} \mathbf{H}^{(l)} \mathbf{W}^{(l)}\right) H(l+1)=f(H(l),AW(l))=σ(D 21A D~21H(l)W(l))
文章中采用了三层图卷积架构,
H ( 1 ) = f R e l u ( X , A ∣ W ( 0 ) ) H ( 2 ) = f R e l u ( H ( 1 ) , A ∣ W ( 1 ) ) Z = H ( 3 ) = f R e l u ( H ( 2 ) , A ∣ W ( 2 ) ) \begin{aligned} \mathbf{H}^{(1)} &=f_{R e l u}\left(\mathbf{X}, \mathbf{A} \mid \mathbf{W}^{(0)}\right) \\ \mathbf{H}^{(2)} &=f_{R e l u}\left(\mathbf{H}^{(1)}, \mathbf{A} \mid \mathbf{W}^{(1)}\right) \\ \mathbf{Z}=\mathbf{H}^{(3)} &=f_{R e l u}\left(\mathbf{H}^{(2)}, \mathbf{A} \mid \mathbf{W}^{(2)}\right) \end{aligned} H(1)H(2)Z=H(3)=fRelu(X,AW(0))=fRelu(H(1),AW(1))=fRelu(H(2),AW(2))

Structure Reconstruction Decoder

用于判定图结构异常: R S = A − A ^ \mathbf{R}_{S}=\mathbf{A}-\widehat{\mathbf{A}} RS=AA ,可以根据两个节点间是否存在边来计算 A ^ \widehat{\mathbf{A}} A ,类似于链路预测过程;所以添加了一个 link prediction layer:
p ( A ^ i , j = 1 ∣ z i , z j ) = sigmoid ⁡ ( z i , z j T ) p\left(\widehat{\mathbf{A}}_{i, j}=1 \mid \mathbf{z}_{i}, \mathbf{z}_{j}\right)=\operatorname{sigmoid}\left(\mathbf{z}_{i}, \mathbf{z}_{j}^{\mathrm{T}}\right) p(A i,j=1zi,zj)=sigmoid(zi,zjT)
对于所有节点转化为矩阵的形式为:
A ^ = sigmoid ⁡ ( Z Z T ) \widehat{\mathbf{A}}=\operatorname{sigmoid}\left(\mathbf{Z Z}^{\mathrm{T}}\right) A =sigmoid(ZZT)

Attribute Reconstruction Decoder

用于判定节点属性异常: R A = X − X ^ \mathbf{R}_{A}=\mathbf{X}-\widehat{\mathbf{X}} RA=XX ;根据节点embedding重构;
X ^ = f R e l u ( Z , A ∣ W ( 3 ) ) \widehat{\mathbf{X}}=f_{R e l u}\left(\mathbf{Z}, \mathbf{A} \mid \mathbf{W}^{(3)}\right) X =fRelu(Z,AW(3))

Anomaly detection

综上模型优化的目标函数是:
L = ( 1 − α ) R S + α R A = ( 1 − α ) ∥ A − A ^ ∥ F 2 , + α ∥ X − X ^ ∥ F 2 \begin{aligned} \mathcal{L} &=(1-\alpha) \mathbf{R}_{S}+\alpha \mathbf{R}_{A} \\ &=(1-\alpha)\|\mathbf{A}-\widehat{\mathbf{A}}\|_{F}^{2},+\alpha\|\mathbf{X}-\widehat{\mathbf{X}}\|_{F}^{2} \end{aligned} L=(1α)RS+αRA=(1α)AA F2,+αXX F2

模型训练收敛之后需要计算每个节点的异常分数,计算公式为
score ⁡ ( v i ) = ( 1 − α ) ∥ a − a ^ i ∥ 2 + α ∥ x i − x ^ i ∥ 2 \operatorname{score}\left(\mathbf{v}_{i}\right)=(1-\alpha)\left\|\mathbf{a}-\widehat{\mathbf{a}}_{i}\right\|_{2}+\alpha\left\|\mathbf{x}_{i}-\widehat{\mathbf{x}}_{i}\right\|_{2} score(vi)=(1α)aa i2+αxix i2

Experiments

数据集

实验结果对比;

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值