图异常检测
意义
- 数据不能总是被看作多维特征空间中的点来独立考察,它们往往存在内部的相互依赖。在很多领域,包括物理、生物(食物网络和蛋白质-蛋白质网络)、社会科学(恐怖袭击网络、邮件/电话网络、社交网络、零售网络等)、信息系统,数据之间都存在相互依赖性。图结构是捕获数据之间长距离的相互关系的有力工具。
- 图通过引入连接/边提供了强大的表示能力。对象之间不同的路径能够很好地捕捉它们之间的长距离关系。除此之外,图还通过节点和边的属性增强数据的表示能力。
- 异常的关联特性:异常往往不单独出现,异常的对象可能是异常的组织的个体。同时空的对象也可能由于环境因素导致的共同出现异常。
- 图异常检测的健壮性,将数据看作特征空间中独立的点进行异常检测,攻击者可以通过修改特定的特征躲避检测(登陆时间、登陆地点)。但是攻击者难以获得整个网络的结构信息,增加攻击者适应网络的难度。
异常和图异常的定义
outlier、anomaly、outbreak、event、change、fraud、noise
异常:某个观测值与其他观测值有极大差异,因此该观测值和其他观测值的生成机制应当不同。
图异常:图中的对象(节点、边、子结构)很罕见,与图中大部分的参照对象有较大差异。
异常即评估分数(稀有程度、出现概率、离群指数)超过了用户定义的阈值。换言之,即稀有的(包括种类和属性的组合)、孤立的(特征空间中的离群点)、出乎意料的(不能被统计模型描述的)、在MDL原则下需要过多的字节描述的数据实例。
应用场景:欺诈检测(购物模式)、医疗(体征异常)、公共健康(传染病)、网络入侵
挑战
数据(data-specific):数据量和数据产生速度(例:社交网络、信用卡交易记录、网络点击记录)、复杂性(异构数据源提供不同的信息,包括属性等)。(从数据的角度而言,能够扩展至大规模数据、动态调整评估、有效利用各种数据的方法基于图的异常检测很重要)。
针对问题(Problem-specific):标签的缺乏和噪声。现实中的数据不存在标签、人工标注耗费大,标注结果受标注者影响大存在噪声。数据不平衡以及不对称的分类错误代价。新型的异常。对输出结果的解释。
针对图(Graph-specific):针对数据点的异常检测将每个数据看作独立同分布的。但是图数据对象之间存在长距离的关系。需要考虑异常点与其他点和边的关系。图算法的时间消耗例如子结构的枚举,需要算法高效和良好的扩展性。
常见算法
-
PCA
参考链接
数据降维:维度诅咒&第二个思路
尽可能保留数据间的差异
尽可能减少信息的损失
PCA用于异常检测:
两种思路,一种是将数据映射到低维特征空间后在特征空间的各个维度查看每个数据与其他数据的偏差。二是映射到低维特征空间之后映射回原空间重构数据,通过重构误差判断数据是否异常。
对第一种思路,做特征值分解之后得到的特征向量反应了原始数据方差变化程度的不同方向,特征值为数据在对应方向上的方差大小。所以,最大特征值对应的特征向量为数据方差最大的方向,最小特征值对应的特征向量为数据方差最小的方向。原始数据在不同方向上的方差变化反应了其内在特点。如果单个数据样本跟整体数据样本表现出的特点不太一致,比如在某些方向上跟其它数据样本偏离较大,可能就表示该数据样本是一个异常点。计算数据样本在各个方向上的偏离程度得到综合得分来判断异常程度。
第二种思路,直观上理解,PCA提取了数据的主要特征,如果一个数据样本不容易被重构出来,表示这个数据样本的特征跟整体数据样本的特征不一致,那么它显然就是一个异常的样本。步骤、公式1;步骤、公式2
-
KNN
参考链接
有监督:通过样本点KNN节点的标签判断样本的标签;
规则:通过KNN确定影响空间,计算样本点的局部特征信息,设定阈值进行判断样本的标签。 -
基于集成的方法:孤立森林
参考链接
用统计学来解释,在数据空间里面,分布稀疏的区域表示数据发生在此区域的概率很低,因而可以认为落在这些区域里的数据是异常的。对于如何查找哪些点容易被孤立(isolated),iForest使用了一套非常高效的策略。在孤立森林中,递归地随机选择特征维度分割数据集,直到所有的样本点都是孤立的。重复进行(蒙特卡洛方法)之后,综合各个样本点的平均路径长度。在这种随机分割的策略下,异常点通常具有较短的路径。 -
OCSVM & SVDD
参考链接;参考链接
单类支持向量机,适用于当出现一个分类问题中,只有一种类型的样本,或有两种类型样本,但其中一类型样本数目远少于另一类型样本数目(如果此时采用二分类器,training set中正负样本不均衡,可能造成分类器过于偏向数目多的样本类别,使train出来的model有bias)。以异常检测为例,例如工厂设备数据等场景,正常状态下的数据比较容易收集,而异常状态的数据收集成本高。又或者银行恐怖活动,正常客户的行为模式比较容易收集,但是打斗、抢劫等异常行为的模式不易,无法有效度量。但是可以通过单类支持向量机,用正常模式训练分类平面,如果从待测样本提取到的特征与分类器所表达的特征不一致,就可以判定为非正常行为,可以发出警报。
原理都是训练一个紧凑的决策边界或超球体并最小化体积,将正常数据包围起来。边界以外的数据判断为异常数据。 -
LOF(Local Outlier Factor)
p的KNN到它们的KNN的平均可达距离 / p到KNN的可达距离 -
神经网络:AutoEncoder
静态图异常检测方法
图特征提取,应用多维特征空间的异常检测技术
· 多维特征空间中离群值检测方法
包括全局方法和局部方法,分别将参考集合设置为全部数据和部分数据。全局方法的参考集包括了离群点。方法输出包括二值输出或者异常分数。异常分数提供排序,可以通过设置阈值转换为二值输出。
基于模型(原理:正常数据点可以通过一个模型表示,离群点不符合模型)
- 基于统计模型的概率测试(低概率点)
- 基于深度(数据空间边界的点)
- 基于偏差(不符合参考集合典型特征的点)
- 子空间离群点检测方法
基于接近程度(原理:计算数据空间对象之间的空间相似度)
- 基于距离(距离邻居的距离,假设离群点远离邻居)
- 基于密度(比较点与邻居周围的密度)
- 子空间离群点检测方法
基于角度(原理:计算给定数据点与其他数据点的角度,在统计的谱上波动性强的点是异常点)
还有有可以针对类别特征和混合特征的方法
· 普通静态图异常检测
1. Structure-based Methods
(1) Feature-based approaches
Main Idea:利用图表示提取graph-centric特征(经常与额外的信息源中提取的特征一起使用,在构造的特征空间中检测离群值)。本质上,将图异常检测问题转化为已知的离群值检测问题。
- Graph-centric features:measures associated with nodes, dyads, triads, egonets, communities, the global graph structure.
- node-level features:
- 1)degrees;
- 2)centrality measures such as eigenvector, closeness, betweenness centralities, local clustering coefficient, radius, degree assortativity, roles.
(图的中心性)
- dyadic features:
- 1)reciprocity
- 2)edge betweenness
- 3)number of common neighbors
- 4)other local network overlap measures
- egonet features:
- 1)number of triangles
- 2)total weight of edges
- 3)principle eigenvalue
以egonet features为例,提取关于egonet-based features的大多数egonets的模式,从而发现异常的不符合正常模式的egonets。egonet即一个节点以及其邻居节点构成的网络。
然后egonet features被成对进行学习,得到成对强相关特征(例如邻居数和三角形数量)的符合幂律的几种模式。然后对一个给定的egonet计算它关于相关幂律分布的距离和偏差。最终每个egonet得到关于每种模式的异常分数。
成对学习关于特征的模式的好处:增强可视化、结果可解释性。即异常值可以解释为由于偏离了哪种模式导致的异常。
* node-group-level features: * 1)compactness measures such as density, modularity and conductance * global measures: * 1)number of connected components * 2)distribution of component sizes * 3)principal eigenvalue * 4)minimun spanning treeweight * 5)average node degree * 6)global clustering coefficient
- node-level features:
(2) Proximity-based approaches
Main Idea: 利用图结构度量图中的对象之间的近似程度。这些方法捕捉对象之间的相关性。因为相互接近的对象可能属于同一个类别。
方法:
1)度量节点的重要性:
PageRank算法:基于随机游走,图上随机游走的平稳分布可以看作对节点重要性排序的依据。游走在转移矩阵是随机的、非周期的、不可约的时是收敛的。无向图:在节点u的随机游走的平稳概率正比于节点的度,独立于起始节点。有向图:转移概率矩阵不可约的条件可能不满足,所以用重启随机游走算法来解决这个问题。PageRank的终止节点问题和陷阱问题。
重启随机游走算法:以一定的概率
α
\alpha
α重新开始随机游走,起始节点随机选择。其他的重启随机游走算法包括Personalized PageRank(指定重启节点q和重启概率
α
\alpha
α,个性化的pagerank的目标是要计算所有节点相对于用户u的相关度)。Biased PageRank(指定重启节点集合Q以及重启概率
α
\alpha
α) 重启随机游走。PPR可以度量图中节点的相似性,收敛后的概率表示了每个节点关于重启节点(们)的近似程度,存在到重启节点较多路径短、权值高的点概率值较高。
2)图相似度度量:用于量化两个节点之间的接近程度。SimRank算法(y13):基于图中对象与其他对象之间的关系,计算图中对象所处结构上下文之间的相似度,常被看作从测量两个节点开始相遇的时间。
3)链接预测方法:也常常被用于度量图中一对节点的相似度或接近程度。包括Jaccard proximity(两个节点共同邻居的标准化数值)、Katz指标(对两个节点之间的路径加权求和,对短路径赋予更大的权重)
2. Community-based approaches
Main Idea: 找到紧密联系的节点(社区),发现跨越社区相连的节点或边。这种方法定义的异常即不属于一个特定社区的“桥梁”节点/边。
主要问题一:找到给定节点的社区,即找到节点的邻居。可以通过PPR分数对给定节点外的其他节点排序,分数高的组成节点的邻居。
主要问题二:量化给定节点作为桥接结点的程度。同样可以通过给定节点的邻居节点的PPR分数平均值度量,平均值低的说明邻居处于不同的,分隔的社区,则节点作为社区之间的桥梁节点。
例:AUTOPART算法,基于聚类:,重新对邻接矩阵进行分块,块内节点联系更加紧密,连接多个社区的节点被认为不属于任一聚类,代表异常点。还有其他的一些基于社区的方法,主要关注网络的聚类,在过程中顺便发现hubs节点和离群值,例SCAN(具有很多相同邻居的节点被划分到一个聚类。连接很多聚类的节点被标记为hubs,无法归类到任一聚类的节点看作是异常点)
例:matrix factorization(y12),基于矩阵分解,可以用于降维和(图)聚类等。A=X x Y + R。传统的分解存在X/Y非负的约束,寻找异常的思想在于放弃其他约束,但是约束残差矩阵非负。方法在发现奇怪的连接很有效,例如端口扫描、ddos等活动。其他矩阵分解与异常检测
例:在计算机安全中,基于社区的异常检测是有效的,因为桥梁节点/边,可以看作是入侵者或跨社区边界的连接。例2:将入侵看作入侵者进入一个不属于入侵者的社区,即寻找违反边界的通信。
其他的基于社区的异常检测方法:集中在网络的聚类上,在过程中顺便发现hubs和离群值。SCAN利用节点的邻居。又有很多共同邻居的节点分组到一个聚类。连接很多聚类的节点标记为hubs,不属于任一社区的标记为离群值。
· 有属性静态图
包括包含用户兴趣的社交网络,带时间/地点/数额属性的交易网络,包含经过港口/金融信息/交易货物的货物运输网络。
检测方法利用图的结构和属性的一致性[知识图谱的一致性检测]寻找异常。
1. Structure-based methods
Main Idea:目的在于针对连接或属性识别稀有子结构。
Approaches:两个问题,一是寻找给定带属性的图中不寻常的子结构,二是寻找给定带属性子图集合中不寻常的子图。直观上就是寻找出现不频繁的结构,即与“最佳子结构”背道而驰的,最佳子结构是频繁出现并且能够很好地压缩图的子结构。寻找最佳子结构的方法基于信息论中的MDL原则,能够平衡子结构的大小和用子结构对图压缩的质量。
对于问题一,可以定义与对最佳子结构基于MDL的度量负相关的度量方法,来度量子结构的异常程度。对于问题二,类似地,定义惩罚包含较少最佳子结构的子图,来量化子图的异常程度。
例3:基于入侵者希望尽可能掩盖异常行为的想法,寻找与最佳子结构很相似但并不相同的子结构。基于图的修改,插入和删除异常,利用三个算法计算子结构的异常程度。以修改异常为例,度量指标选择与最佳子结构的编辑距离和子结构的出现频率的乘积,值越小越异常。
例4:以函数为节点(函数名为属性),函数调用为边,根据软件的运行情况建立行为图。以正常和异常行为图单独作为训练数据训练分类器模型,首先从一系列的行为图中提取频繁子图,然后用作训练分类器的特征。
以上都是基于模式(如频繁子图)异常检测方法,可以增强解释性,便于安全人员或领域专家进行事后分析追溯异常原因。另一方面,这些方法过于通用,虽然能够用于能够表示为属性图的不同数据类型,代价是高假阳性率,另外,作为异常和正常分界的度量的阈值难以确定。
2. Community-based methods
Main Idea:寻找社区离群点,即其属性与同一社区其他成员差异较大的点。这种方法需要定义社区并检测图中的通信。例如同时进行社区的划分和异常点的检测;或在进行属性图的聚类之后,进行离群点的检测。
Approach:
例5:划分了基于图的社区的异常检测相关的三个问题:全局离群值检测(只考虑节点属性)、结构离群值检测(只考虑链接)、局部离群值检测(只考虑直接相连的邻居的属性)。提出统一的概率模型同时寻找社区以及发现社区中的离群点。是无监督的方法(CODA),需要对聚类的合适的初始化,初始化方法是首先使用图聚类算法,可以加快收敛速度。
例6:提出异常节点排序的技术认为复杂的异常可能只体现在相关属性的子集(子空间),特别是在高维特征空间,每一对点的距离可能相似,导致不能较好地检测异常。
还有其他的一些方法,将注意力集中在图的聚类上。对于不能分配到一个足够大的社区中的点或者移除某个节点之后,社区的合适程度提高的点,就很可能属于异常。
3. Relational learning based methods
Main Idea:
依赖于图中节点及其邻居的信息融合,利用对象之间的关系分类,分为异常和正常两类。将异常检测看作是分类问题,例如对恶意网页的检测,通过网页中的词进行网页分类,寻找恶意网页和链接行为。根据有标签数据的规模分为有监督、半监督的分类问题。
传统的统计机器学习方法通常将实例视为独立同分布的,忽略了实例之间的依赖关系。关系分类方法,任务则是同时推理对象的网络的类标签。例如恶意网页常常相互链接,欺骗者往往和老实人交易。
Approach:通常关系分类方法利用的输入包括:邻居的标签;节点自身的属性;节点邻居的属性。
----------------------Local Method-------------------------
1)local algorithm:build local predictive models for the class of node in the network.
2)inference algorithm:use iterative inference procedures to collectively classify the unlabeled objects.
例:
用朴素贝叶斯模型/逻辑回归模型对节点和邻居节点的属性和标签进行建模,然后迭代推理无标签的数据。推理算法包括ICA、基于吉布斯采样的推理算法。
---------------------Global Method---------------------------
定义类依赖关系的全局形式,并使用推理算法来解决最大化联合概率分布的赋值问题
例:PRMs/RMNs建模,LBP算法推理;利用其他节点的标签用wv-RN分类器分类等;还有基于MLNs的全集公式。
方法需要考虑选取的特征(属性),需要考虑的邻居节点(所有还是top-k个最确信的标签),分类器的选择(朴素贝叶斯、逻辑回归、k-NN、SVM)。
文献
- SUBDUE7:文献从子结构和子图两个角度考虑,1)定义子结构异常程度的度量方法;2)包含越少共有子结构的子图越异常。文献还考虑了条件熵和数据的规则性
基于距离;基于深度;基于分布;基于聚类;基于分类;基于信息论;基于谱;基于子空间 ↩︎
Qi Ding, Natallia Katenka, Paul Barford, Eric D. Kolaczyk, and Mark Crovella. In- trusion as (anti)social communication: characterization and detection. In Proceed- ings ofthe 18th ACM International Conference on Knowledge Discovery and Data Mining (SIGKDD), Beijing, China, pages 886–894. ACM, 2012. ↩︎
William Eberle and Lawrence B. Holder. Discovering structural anomalies in graph- based data. In Proceedings ofthe International Workshop on Mining Graphs and Complex Structures at the 7th IEEE International Conference on Data Mining (ICDM), Omaha, NE, pages 393–398. IEEE Computer Society, 2007.
William Eberle and Lawrence B. Holder. Graph-based approaches to insider threat detection. In Proceedings ofthe 5th Annual Cyber Security and Information Intel- ligence Research Workshop (CSIIRW), page 44. ACM, 2009. ↩︎Chao Liu, Xifeng Yan, Hwanjo Yu, Jiawei Han, and Philip S. Yu. Mining behav- ior graphs for ”backtrace” of noncrashing bugs. In Proceedings of the 5th SIAM International Conference on Data Mining (SDM), Newport Beach, CA, 2005. ↩︎
Jing Gao, Feng Liang, Wei Fan, Chi Wang, Yizhou Sun, and Jiawei Han. On com- munity outliers and their efficient detection in information networks. In Proceed- ings ofthe 16th ACM International Conference on Knowledge Discovery and Data Mining (SIGKDD), Washington, DC, pages 813–822. ACM, 2010a. ↩︎
Emmanuel M¨uller, Patricia Iglesias, Yvonne M¨ulle, and B¨ohm Klemens. Ranking outlier nodes in subspaces of attributed graphs. In Proceedings ofthe 4th Interna- tional Workshop on Graph Data Management: Techniques and Applications, 2013. ↩︎
C.Nobleand D.Cook, Graph-Based AnomalyDetection. Proceedings ofthe9th ACMSIGKDDInternational Conference on Knowledge Discovery and Data Mining, 2003, 631–636. ↩︎