1.引言
第十章讨论的是连续时间序列中的异常检测。其中每个时间戳中的单个元素是离散值(即分类)。这种离散的时间序列也被称为序列。离散值时间场景出现在许多应用中,如系统诊断、入侵检测和生物应用中。
在入侵检测和系统诊断等领域中,离散序列是由时间排序引起的,而在生物数据等领域,离散序列是由物理排序引起的。
时间数据通常对实际场景中的分析有一个特定的方向(即时间上向前),而基于位置关系的数据可能不是这样。
以下是产生离散数据序列的一些应用实例:
1、系统诊断:许多自动化系统不断生成有关系统状态的数据。如Unix系统调用、机械系统或基于主机的入侵检测系统。
2、生物数据:生物数据通常包含氨基酸序列,其中异常子序列可以提供关于基因组序列不寻常性质及其对不同类型遗传条件的影响的有趣信息。
3、用户操作序列:这些序列是由不同应用程序域中的用户操作创建的:
web日志包含个人访问web站点的长序列。通常希望识别出指示异常或侵入性活动的有趣子序列。
客户交易可能包含购买行为序列。
经常记录网上银行网站等网站上的用户操作。这与web日志的情况相似,只是银行站点的日志通常更详细。
离散序列不同于连续时间序列数据。因此,在连续数据中常用的偏差检测回归建模方法不同意推广到这种情况。然而,异常值也可以用特定时间戳的值偏离预测值的方式来定义,也可以用序列值的异常连续组合来定义。关键是在离散情况下定义一个适当的预测或规律性模型,它类似于他的连续对应物。与连续数据的情况一样,异常值有两种类型,这取决于特定位置是否被视为异常值,或者符号的组合combinations of symbols(符号组合,即若干个单词或数据组合而成的集合)是否被视为异常值。
位置异常值(上下文异常):
在基于位置的异常值中,通过模型去预测特定位置的值。该预测用于确定预测值与模型的偏差。通常,马尔可夫方法可用于预测异常检测。这类似于使用回归模型在时间序列数据中发现的基于偏差的异常值。与回归模型不同,马尔可夫模型更适合于离散数据。这些对应于上下文异常值。
组合异常值(集体异常):
在组合异常值中,由于符号的组合combination of symbols,整个测试序列被认为时不寻常的。这是因为这种组合很少发生在序列数据库中(基于频率),或者他在大多数其他类似大小的子序列的距离(相似性)可能非常大。更复杂的模型,如隐马尔可夫模型,也可以用来建模存在的频率的生成概率。对于较长的测试序列,从其中提取较小的子序列进行测试,然后将整个序列的异常值分数预测为这些值的组合。这类似于时间序列数据中不寻常形状的确定。这些对应于集体异常。
值组合中的稀有性可以根据模型的具体选择以不同的方式定义。 最常用的模型如下:
基于距离:
在这种情况下,计算子序列与基础数据种其他候选子序列的最近邻距离。这位子序列提供了一个异常值分数。
基于频率:
在这种情况下,在测试实例和基本训练数据之间比较不同子序列值的发生频率。在测试序列和训练序列之间的子序列频率分布的异常差异被定义为异常值。
基于模型:
在这种情况下,构造了一个概率生成模型,即隐马尔可夫模型。由模型生成的概率较低的子序列被预测为异常值。这种方法类似于多维数据中异常检测的EM算法。
基于转换:
利用核方法将序列转换成一个新的空间。构造成对的对象与对象相似矩阵。核PCA核一类支持向量机等方法可以与得到的相似矩阵结合使用。
当标签可用是,可以合并监督,这需要对序列分类算法进行重组的设计。
2.单个位置的异常值(上下文异常)
在连续时间序列数据中,讨论了如何识别点异常作为时间戳与期望值的显著偏差。因此,这些方法将预测和偏差检测问题紧密结合起来。在连续数据的情况下,利用回归模型进行预测。类似的原理也适用于离散序列数据,其中可以预测特定位置的离散值。
主要区别在于选择用于预测离散值而不是连续值的模型。当一个位置由很低的概率匹配其预测值时,它被报告为异常值。
半监督:给定一组训练数据序列D=T1...Tn,一组测试序列V=a1...an,确定测试序列中的ai位置是否应该根据期望值而被视为异常。
无监督:给定一组长的序列V=a1...an,确定测试序列中的位置ai是否应该根据其期望值被视为异常值。
有些公式没有明确区分训练和测试序列,这是一位内一个序列可以用于构建和预测,特别是当它很长的时候,这就类似于无监督模型的情况,对应于上述无监督的定义。
通常,位置ai只能从ai之前的位置在时间域中预测,而在其他领域,如生物数据,这两个方向可能是相关的。
正如连续数据中的回归建模使用过去历史的小窗口一样,离散序列预测也可以使用符号的小窗口(若干个数据的集合)。其假设一个位置上的值的预测取决于这个短的历史。这被称为离散序列的短记忆特性。
离散序列的短记忆特性:对于符号V=a1...ai...的序列,对于大多数应用程序域中k的一些小值,概率P(ai|a1 ...a(i−1))的值通常可以精确地近似为P(ai|a(i−k) ...a(i−1))。
2.1 基于规则的模型
基于规则的模型的主要目标是从序列D的训练数据库中估计P(ai|a(i−k) ...a(i−1))的值。
2.2 马尔可夫模型
马尔可夫模型可以表示为一组表示状态的节点,以及一组表示事件的边,这些边导致从一个状态移动到另一个状态。每个状态对应于k阶马尔可夫模型中k个状态的前面序列。边的概率提供相应事件的条件概率。
2.3 效率问题:概率后缀树
3.组合异常值(集体异常)
在组合异常值中,目标是确定给定序列中符号symbol相对于其他序列的不寻常组合。比较序列大小对应的问题有几个版本,基础数据是否包含多个序列,是否由单个长序列组成。
4.复杂的序列和场景
在许多实际应用中,可用序列可能比本章迄今介绍的序列更复杂。 例如,在系统诊断应用中,不同类型的传感器可能会连续产生多个序列。 在其他情况下,序列的每个元素都可能是从大集合5.Σ中提取的集合,而不是孤立的符号。 在一些场景中,如在线应用程序,可能需要尽早通过只观察序列的早期部分来声明序列异常。 这些案例有时可能需要比目前讨论的更复杂的技术。
5.在序列中的监督异常
由于序列数据的复杂性,使用纯无监督的方法往往很难获得有意义的异常值。 作为异常值发现的许多模式可能对应于噪声,并且可能不代表真正的异常。 在不同的应用领域,如系统调用异常、财务欺诈和Web序列机器人检测,已经表明异常序列的性质是高度特定的,并受底层应用程序的控制。 因此,区分噪声和异常的能力只能通过将先前已知(和有趣的)示例的额外知识纳入异常值分析过程来获得。 这种学习方法可以显著提高实际应用场景中底层异常值的质量和相关性。
序列数据中的监督离群点检测问题等价于序列分类。 与所有监督的离群点分析方法一样,主要的区别在于类别不平衡和成本敏感性,这需要在分类过程中加以考虑。 这确保了可以有意义地发现罕见的类。
6.总结
离散序列在几乎所有的应用领域都非常常见,如生物数据、用户生成的数据、系统诊断数据和Web日志。 这提供了大量的时间数据来源,非常丰富,从离群点分析的角度来看也非常复杂。 序列数据的复杂性允许对序列异常值进行不同的定义。 广义模型类类似于连续时间序列数据,尽管由于不同数据类型的影响,模型的细节是不同的。 与时间序列数据的情况一样,单个位置可以被识别为上下文离群点,或者一组位置可以被识别为集体离群点。上下文离群点检测方法通常使用马尔可夫技术,计算复杂度要低得多。 当标签可用时,这些方法中的许多也可以推广到监督情况。