1.前言
写这篇文章的目的是记录一下自己的学习历程,如文中存在不当之处,敬请各位读者不吝赐教,给予宝贵意见和指正!
今天要分享的文献是《TranAD:Deep Transformer Networks for Anomaly Detection in Multivariate Time Series》,2022年发表。
论文链接:https://arxiv.org/pdf/2201.07284v6.pdf
代码地址:https://github.com/imperial-qore/tranad
相关内容较多,计划分成三部分。
2.研究背景
多变量时间序列数据中的有效异常检测和诊断对于现代工业应用具有重要意义。然而,构建一个能够快速准确地查明异常数据的系统是一个具有挑战性的问题。这是由于缺乏异常标签、高数据波动性以及现代应用程序中对超低推理时间的需求。尽管很多出现了用于异常检测的深度学习方法,但其中只有少数能够解决所有这些挑战。
3.主要内容
该文提出了一个新的多变量时间序列异常检测模型TranAD,该模型基于深度Transformer模型,使用基于注意力机制的序列编码器,利用数据中更广泛的时间趋势快速推断。TranAD使用基于焦点分数的自适应来实现稳健的多模态特征提取,以及通过对抗性训练以获得稳定性。此外,模型引入元学习(MAML)允许研究人员使用有限的数据来训练模型。文章还强调了TranAD在处理缺乏异常标签、数据波动性和极低推理时间等方面的优势,通过实验证明其在多个公开数据集上表现优异,超越了现有的异常检测方法。
4.方法原理
因TranAD模型是基于Transformer模型,而Transformer是基于Encoder-Decoder框架,此外Self-Attention是 Transformer模型的重点内容,因此先详细了解一下Encoder-Decoder框架和Self-Attention的原理,然后再介绍Transformer模型,最后介绍TranAD模型。
4.1 Encoder-Decoder框架
大部分attention模型都是依附于Encoder-Decoder框架进行实现,在NLP(自然语言处理)中Encoder-Decoder框架主要被用来处理序列-序列问题。也就是输入一个序列,生成一个序列的问题。这两个序列可以分别是任意长度。
Encoder-Decoder框架可以看作是一种深度学习领域的研究模式,应用场景异常广泛。下图是文本处理领域里常用的Encoder-Decoder框架最抽象的一种表示。
图 1 抽象的文本处理领域的Encoder-Decoder框架
文本处理领域的Encoder-Decoder框架可以这样去理解:可以把它看作适合处理由一个句子(或篇章)生成另外一个句子(或篇章)的通用处理模型。对于句子对<Source,Target>,我们的目标是给定输入句子Source,期待通过Encoder-Decoder框架来生成目标句子Target。Source和Target可以是同一种语言,也可以是两种不同的语言。而Source和Target分别由各自的单词序列构成:
Encoder的作用就是对输入句子Source进行编码,将输入句子通过非线性变换转化为中间语义表示C:
Decoder的任务是根据句子Source的中间语义表示C和之前已经生成的历史信息来生成i时刻要生成的单词
:
每个都依次这么产生,看起来就是整个系统根据输入句子Source生成了目标句子Target。如果Source是中文句子,Target是英文句子,那么这就是解决机器翻译问题的Encoder-Decoder框架。
4.2 Self-Attention
Self-Attention(自注意力机制)是Transformer的核心模块,它允许模型在处理输入序列时考虑全局依赖关系,而不像循环神经网络(RNN)那样局限于局部上下文信息。通过Self-Attention,模型能够在同一序列的不同位置之间直接建立联系,从而显著提升了处理长序列数据的效率和性能。
4.2.1 Attention
注意力机制(Attention Mechanism)是一种在深度学习中广泛应用的技术,特别是在自然语言处理(NLP)、图像识别和语音识别等领域。它的核心思想是模仿人类的视觉和认知系统,使模型能够自动地集中在输入数据的重要部分,从而提高性能和泛化能力。
图 2 Attention机制示意图
Attention机制的原理如上图:Source中的构成元素是一系列的数据对<Key,Value>,给定某个元素Query,计算Query与每个Key的相似性或相关性,得到每个Key对应Value的权重系数,然后对Value进行加权求和,即得到了最终的Attention数值。
Attention机制本质上是对Source中元素的Value值进行加权求和,而Query和Key则是用来计算对应Value的权重系数,公式如下:
其中,代表Source的长度。
从概念上,Attention可以理解为从大量信息中有选择地筛选出少量重要信息并聚焦到这些重要信息上,忽略大多不重要的信息。聚焦的过程体现在权重系数的计算上,权重越大越聚焦于其对应的Value值上,即权重代表了信息的重要性,而Value是其对应的信息。
Attention机制的具体计算过程,可以归纳为两个过程:第一个过程是根据Query和Key计算权重系数,第二个过程根据权重系数对Value进行加权求和。而第一个过程又可以细分为两个阶段:第一个阶段根据Query和Key计算两者的相似性或相关性;第二个阶段对第一阶段的原始分值进行归一化处理;这样,可以将Attention的计算过程抽象为如下图所示的三个阶段。
图 3 三阶段计算Attention过程
在阶段1,可以引入不同的函数和计算机制,根据Query和Keyi,计算二者的相似性或相关性。最常见的方法有:求两者的向量点积、求两者的向量Cosine相似性或者通过再引入额外的神经网络来求值。公式如下:
向量点积:
Cosine相似性:
MLP网络:
阶段1产生的分值根据具体产生的方法不同其数值取值范围也不一样,在阶段2引入类似SoftMax的计算方式对阶段1的得分进行数值转换,一方面可以进行归一化,将原始计算分值整理成所有元素权重之和为1的概率分布;另一方面也可以通过SoftMax的内在机制更加突出重要元素的权重。即一般采用如下公式计算:
阶段2的计算结果即为
对应的权重系数,然后进行加权求和即可得到Attention数值:
通过如上三个阶段的计算,即可求出针对Query的Attention数值,目前绝大多数具体的注意力机制计算方法都符合上述的三阶段抽象计算过程。
4.2.2 Self-Attention
在一般任务的Encoder-Decoder框架中,输入Source和输出Target内容是不一样的,比如对于英-中机器翻译来说,Source是英文句子,Target是对应的翻译出的中文句子,Attention机制发生在Target的元素Query和Source中的所有元素之间。而Self -Attention指的不是Target和Source之间的Attention机制,而是Source内部元素之间或者Target内部元素之间发生的Attention机制,也可以理解为Target=Source这种特殊情况下的注意力计算机制。其具体计算过程是一样的,只是计算对象发生了变化而已。
如果是常规的Target不等于Source情形下的注意力计算,比如对于机器翻译来说,本质上是目标语单词和源语单词之间的一种单词对齐机制。那么如果是Self-Attention机制,一个很自然的问题是:通过Self-Attention到底学到了哪些规律或者抽取出了哪些特征呢?或者说引入Self-Attention有什么增益或者好处?以机器翻译中的Self-Attention来说明,下面两图是可视化地表示Self-Attention在同一个英语句子内单词间产生的联系。
图 4 可视化Self Attention实例
从上图可以看出,Self-Attention可以捕获同一个句子中单词之间的一些句法特征(比如左图展示的有一定距离的短语结构)或者语义特征(比如右图展示的its的指代对象Law)。
很明显,引入Self-Attention后会更容易捕获句子中长距离的相互依赖的特征,因为如果是RNN或者LSTM,需要依次序序列计算,对于远距离的相互依赖的特征,要经过若干时间步步骤的信息累积才能将两者联系起来,而距离越远,有效捕获的可能性越小。
但是Self-Attention在计算过程中会直接将句子中任意两个单词的联系通过一个计算步骤直接联系起来,所以远距离依赖特征之间的距离被极大缩短,有利于有效地利用这些特征。此外,Self-Attention对于增加计算的并行性也有直接帮助作用。这也是为何Self-Attention逐渐被广泛使用的主要原因。
参考资料
- 2022最新!基于深度transformer的时间序列异常检测模型,https://mp.weixin.qq.com/s/oIG87toA1IkLyEVjFsJldw
- 深度学习中的注意力机制(2017版),https://blog.csdn.net/malefactor/article/details/78767781
- 史上最小白之Attention详解,https://blog.csdn.net/Tink1995/article/details/105012972
- Tuli S , Casale G , Jennings N R .TranAD: Deep Transformer Networks for Anomaly Detection in Multivariate Time Series Data[J]. 2022.DOI:10.48550/arXiv.2201.07284.
未完待续……