ANOMALY TRANSFORMER: TIME SERIES ANOMALY DETECTION WITH ASSOCIATION DISCREPANCY 论文解读

最近又在做异常检测方面,所以这里记录一下比较经典的基于transformer的时序异常检测文章。

这篇文章是2022年的,算是比较新的,目前时序检测的新文章并不多,一方面这个时序异常检测在模型和计算上都不算难,再怎么创新也没什么太大水花,另一方面异常检测中的时序检测已经比较成熟了,大家更关注异常检测中的图像和音频之类的。

这篇论文的创新点有两个:

  1. 借鉴了transformer结构,提出了Prior-Association和Series- Association,计算Association Discrepancy,用以评估异常
  2. Minimax Strategy,用来放大Association Discrepancy

关于第一个创新点在上图

右边的框架就是仿transformer的,输入序列\chi \in R^{N\times d}l\in \left \{ 1,...,L \right \}表明框架的层数,N为序列长度,d表示输入维度,总体计算:

Z^{l} = LayerNorm(AnomalyAttention(\chi ^{l-1}) + \chi ^{l-1})

\chi ^{l} = LayerNorm(FeedForward(Z^{l}) + Z^{l})

这里面区别于transformer的在于Anomaly-Attention(transformer用的是self-attention),这里的Anomaly-Attention就是上文提出的创新点1,由图左可看出,主要由以下计算:

  1. prior-association

    采用了一种可学习的方法高斯核计算相对时间距离的prior。受益于高斯核的单峰性,这种设计可以更加注意相邻层构象。我们还为高斯核使用了一个可学习的尺度参数σ,使prior-associations可以适应不同的时间序列模式,如不同的异常长度

    P^{l} = Rescale([\frac{1}{\sqrt{2\pi }\sigma _{i}}exp(-\frac{|j-i|^{2}}{2\sigma _{i}^{2}})]_{i,j\in 1,...,N})

  2. series-association

    这个是学习序列之间的关联性,这个和transformer的self-attention计算一样,各个点之间的依赖关系比点本身更有信息量
    1. S_{l}=Softmax(\frac{QK^{T}}{\sqrt{d_{model}}})

    2. \widehat{Z}^{l} = S^{l}V

  3. association discrepancy

    将association discrepancy形式化为prior-association和series-association之间的对称KL散度, 它代表了这两个分布之间的信息增益。我们取多层关联差异的平均值,将多层特征的关联组合成一个更有信息量的度量,这里计算了每个时间点的AssDis值,值越小,表示越异常

        关于association discrepancy有一个较为难理解的点,KL散度度量的是两个association的差异性,在异常点,其周围临近点也极有可能发生异常,prior-association和series-association都关注局部异常信息,这两个association的差异较小,也就是AssDis的值较小,而对于正常点,series-association计算的是attention,关注全局特征,分布在非临近点,而prior-association依旧关注的是临近点,这两个的KL散度差异较大,也就是AssDis值较大。

另一个创新点就是Minimax Strategy

正常的重建损失应该就是前面的二范数,也就是最小平方差损失,再在后面加上AssDis,这么做是在最小化loss的时候需最大化AssDis,这样的话可以使正常的序列更加正常,增加正常和异常序列的区分度,但是另一方面,如果直接这么做,那么使得单峰高斯核的尺度参数急剧变小(sigma越小,高斯函数峰越急,尖峰越窄和集中,prior-association更关注单峰范围内的点,而series-association更关注整个序列,这样AssDis才会大),会导致prior-association无意义。

L_{Total}(\widehat{\chi },P,S,\lambda;\chi ) =\left \| \chi - \widehat{\chi }\right \|_{F}^{2} - \lambda \times \left \| AssDis(P,S;\chi ) \right \|_{1}

\widehat{\chi }\chi的重建,\left \| \cdot \right \|_{F}表示范数,\left \| \cdot \right \|_{k}表示k-norm

 \lambda >0的时候,optimizer就是扩大association discrepancy。但是直接最大化AssDis将极大地减小高斯核的尺度参数.

  • 对于最小阶段,lambda为负数,最小化loss也就是最小化AssDis,差异变小意味着prior-association会和prior-association相似,优化prior-association,让prior-association从原始序列中学习series-association。这一过程将使prior-association适应不同的时间模式。

                Minimize Phase: L_{Total}(\widehat{\chi }, P, S_{detach},-\lambda ;\chi )

        最小阶段是对prior-association进行优化,所以S(series-association)是不进行梯度反向传播的。

  • 在最大阶段,lambda为正数,最小化loss也就是最大化AssDis,我们对series-association进行优化,扩大AssDis。这个过程迫使series-association更多地关注非相邻的点。

                Maximize Phase: L_{Total}(\widehat{\chi }, P_{detach}, S,\lambda ;\chi )

        最大阶段是对series-association进行优化,所以P(prior-association)是不进行梯度反向传播的。

在最小阶段P(prior-association)近似于S_{detach}(series-association),因此最大阶段将对series-association进行更强的约束,迫使时间点更加关注非相邻区域。在重构损失下,异常比正常时间点更难达到这一点,从而放大了association discrepancy的正常-异常可分辨性。

Inference: 

 异常检测依据是用关联差异标准化重建误差: AssDis越小,异常分数越大。reconstruction error越大,异常分数越大。还是提醒一句:对于异常点,这两个关联有小的差异,对于正常点,这两个关联之间存在很大差异。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值