最近又在做异常检测方面,所以这里记录一下比较经典的基于transformer的时序异常检测文章。
这篇文章是2022年的,算是比较新的,目前时序检测的新文章并不多,一方面这个时序异常检测在模型和计算上都不算难,再怎么创新也没什么太大水花,另一方面异常检测中的时序检测已经比较成熟了,大家更关注异常检测中的图像和音频之类的。
这篇论文的创新点有两个:
- 借鉴了transformer结构,提出了Prior-Association和Series- Association,计算Association Discrepancy,用以评估异常
- Minimax Strategy,用来放大Association Discrepancy
关于第一个创新点在上图
右边的框架就是仿transformer的,输入序列, 表明框架的层数,N为序列长度,d表示输入维度,总体计算:
这里面区别于transformer的在于Anomaly-Attention(transformer用的是self-attention),这里的Anomaly-Attention就是上文提出的创新点1,由图左可看出,主要由以下计算:
-
prior-association
采用了一种可学习的方法高斯核计算相对时间距离的prior。受益于高斯核的单峰性,这种设计可以更加注意相邻层构象。我们还为高斯核使用了一个可学习的尺度参数σ,使prior-associations可以适应不同的时间序列模式,如不同的异常长度 -
series-association
这个是学习序列之间的关联性,这个和transformer的self-attention计算一样,各个点之间的依赖关系比点本身更有信息量 -
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无意义。
是的重建,表示范数,表示k-norm
的时候,optimizer就是扩大association discrepancy。但是直接最大化AssDis将极大地减小高斯核的尺度参数.
- 对于最小阶段,lambda为负数,最小化loss也就是最小化AssDis,差异变小意味着prior-association会和prior-association相似,优化prior-association,让prior-association从原始序列中学习series-association。这一过程将使prior-association适应不同的时间模式。
最小阶段是对prior-association进行优化,所以S(series-association)是不进行梯度反向传播的。
- 在最大阶段,lambda为正数,最小化loss也就是最大化AssDis,我们对series-association进行优化,扩大AssDis。这个过程迫使series-association更多地关注非相邻的点。
最大阶段是对series-association进行优化,所以P(prior-association)是不进行梯度反向传播的。
在最小阶段P(prior-association)近似于(series-association),因此最大阶段将对series-association进行更强的约束,迫使时间点更加关注非相邻区域。在重构损失下,异常比正常时间点更难达到这一点,从而放大了association discrepancy的正常-异常可分辨性。
Inference:
异常检测依据是用关联差异标准化重建误差: AssDis越小,异常分数越大。reconstruction error越大,异常分数越大。还是提醒一句:对于异常点,这两个关联有小的差异,对于正常点,这两个关联之间存在很大差异。