⎛αi,iWxi(t)+j∈N(i)∑αi,jWxj(t)⎠⎞这种模式太熟悉了就不再介绍每个参数代表的含义。注意力系数计算方法如下
gi(t)π(i,j)αi,j=vi⊕Wxi(t)= LeakyReLU (a⊤(gi(t)⊕gj(t)))=∑k∈N(i)∪{i}exp(π(i,k))exp(π(i,j))
其中⊕ 表示链接操作,a 是注意力机制学习到的系数向量。
以上特征融合的过程就可以得到N 个节点的特征表示{z1(t),⋯,zN(t)}。对于每个zi(t), 论文中又 element-wise 乘特征表示vi ,再经过 FC 得到输出维度N 的向量来预测t 时刻 sensor 的值s(t)
s^(t)=fθ([v1∘z1(t),⋯,vN∘zN(t)])
对于数值型就直接采用 MSE 作为损失函数,
LMSE=Ttrain −w1t=w+1∑Ttrain ∥∥∥∥s^(t)−s(t)∥∥∥∥22
图偏差评分
为了检测和解释 sensor 的异常,论文中的模型首先针对每个 sensor 计算一个异常值,然后再合并得到一个组合分数。
对于t 时刻 sensori 的异常值为
Erri(t)=∣∣∣∣si(t)−s^i(t)∣∣∣∣
由于不同 sensor 的偏差值有不同的量纲,因此需要标准化
ai(t)=σiErri(t)−μi
其中μi 和σi 表示中位数和四分位数,至于为什么不用均值和标准差作者认为这种方式对于异常检测更加 robust。🤔
取所有 sensor 最大的异常值为异常分数
A(t)=imaxai(t)
由于模型难以预测到突刺,因此作者使用 SMA (simple moving average) 来生成平滑分数As(t),最后得到的值如果超过设定的阈值那么该时刻被标记为异常。
Experiments
实验部分采用了两个真实数据集来测试 GDN 及其 baselines 的性能对比。
实验中考虑的问题非常齐全,包括准确率测试、消融实验、模型解释性、异常定位等。👍
每个部分的实验结果如下所示
Thoughts
- 论文整体思路简洁明了,尤其是实验部分比较 solid 符合对模型的认知 👍
- 需要改进的点在于模型的设计及其采用的方法:
- 图结构学习部分采用有向图是非常合理的,但是采用了相似度计算和 top-k 的构图方法,相似度计算是对称的明显达不到想要的有向图效果。
- 最后的 output layer 采用了 embedding 和 feature 进行 element-wise multiply,有点硬。
- 异常评分模块给人感觉是 tricks 堆叠,🐂 啊 🐂。
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 梦家博客! 打赏
wechat
alipay