LUNAR:基于图神经网络的统一局部离群点异常检测方法

一、摘要

现有的“局部异常检测方法”由于缺乏可训练的参数,导致其无法学会适应特定的数据集。在这篇论文中,我们首先统一局部异常值检测方法,通过显示其是用于图神经网络的更通用的消息传递框架的特例。提出LUNAR一种新颖的基于图神经网络的异常检测方法。LUNAR以可训练的方式学习使用邻居信息去发现每个节点的异常。这种方法比现有的“局部异常检测方法”体现出更好的性能,这种方法也更能适用于不同局部领域的设置。

二、简介

许多成熟的无监督方法通过测量一个点到其最近点的距离来检测异常邻近点。并且研究发现局部异常检测方法的性能也优于基于深度学习的方法。后者必须完全在它们的网络参数中嵌入正常和异常数据区域的知识。它们更多是为高结构化、高维数据,例如:图像而设计的。但是它们的性能经常因为结构较为简单、基于特征的数据而不稳定。但是这些数据也往往是被普遍应用的。因此,局部异常值方法仍然是许多领域的默认选择。
目前已经有一系列的局部异常值方法,每一种方法都有自己的特点和方法,但是,它们相互之间也有普遍的特征。此篇论文就是展示:在一个简单、通用的框架下统一局部异常值方法,基于图神经网络的消息传递方案。局部异常值方法缺乏学习优化或者适应特定数据集的能力。除此之外,在无监督设置中,没有直接的方法来找到最佳超参数设置,比如,最邻近的邻居的数量。这是非常重要的并且极大地影响着性能。此论文还提出了一种名为LUNAR(可学习的、基于领域的统一异常排名),基于局部异常检测方法的相同的信息传递框架,但是通过基于图神经网络的可学习能力规避了它们的缺点。

总结:

  • 提出目前流行的局部异常检测方法可以被一个基于图神经网络的单框架所统一。
  • 使用这个框架来开发一种新颖的、基于GNN的异常检测方法(LUNAR),由于其可训练的参数,此方法比局部异常检测方法更加灵活并且更加适应于给定的数据集。
  • 证明其方法比目前流行的局部异常值检测方法和基于深度学习的异常检测有更好的性能。其性能对不同设置的稳健程度都要比局部异常值检测方法好。此论文提出的方法尽管使用了GNN,但是此方法不是为了图而设计的,而是为了非结构化、基于特征的数据而设计的。

三、问题定义

假定有m个正常训练样本和n个测试样本,其中每一个样本都有可能是正常的或者是异常的,对于一个测试样本,文章中的算法应该输出一个异常分数,分数越高,测试样本的异常值越高。

四、LUNAR的可学习性

局部异常值检测方法缺乏可训练的参数,这些参数会影响方法的准确性。在下面的例子中,在从四个高斯分布采样了1000个样本点简单训练数据集上,将LOF的性能与LUNAR的性能进行比较。

LUNAR:基于图神经网络的统一局部离群点异常检测方法_第1张图片
LUNAR:基于图神经网络的统一局部离群点异常检测方法_第2张图片
当k较小时,LOF的分数在四个集群周围较低,但是远离这些集群的稀疏区域或者没有邻近点的区域分数也很低。由于该区域极少数点的相对稀疏性的强烈影响,中心外围区域显得正常。相反,当k变大时,左下角的小集群的分数就会错误地变高。由于左下角的集群中点的数量小于k,LOF就无法识别集群的存在,而是预测所有附近的点都是异常点。这些问题就是因为局部异常检测法缺乏直接从数据中学习优化评分机制的能力。相比较之下,LUNAR的可学习性使其能够在不同的k上,表现的更加稳定。标记的区域更接近拟合训练数据,对稀疏的中心区域点的异常评分更准确。

五、LUNAR方法概述(重点)

方法概述:使用单层GNN的消息传递框架。该方法将一组数据表示为一个图。其中,节点对应每个样本数据,有向边将目标节点连接到一组源节点,这些源节点是样本的最近邻居。对于给定的目标节点,网络利用其邻居节点的信息来学习计算其异常分数。它与GNN实现的不同之处在于:

  • 使用任何基于特征的表格数据集来构建k-NN图,而不受限于图数据集。
  • 使用一个节点到它的k个最近邻居的距离作为输入,这比使用特征向量更为通用。
  • 使用可学习的消息聚合函数,而大多数GNN使用固定聚合函数。

5.1 模型设计

Nearest Neighbourhood Graph: 对于一个样本数据 xi,我们将他定义为一个目标节点,并使用边(j, i)将目标节点xi连接到源节点j, 这里的j是xi的一组k个最近邻居节点,边的特征向量等于欧几里得空间中xi到j的两点之间的距离。
向量
因为所有的训练样本被假定是正常的,我们只需要在训练样本中寻找最近的邻居,所以,异常不会影响邻域。
因此,我们如此定义消息函数、聚合函数、更新函数:
**Message:**通过边(j, i)从源节点j传递到目标节点i的消息就是边(j, i)的特征向量。也就是两点间的距离。
消息函数
**Aggregation:**我们使用一种可学习的聚合方法,适用于处理固定大小(k)的邻居节点。而不是使用一个固定的平均值或者最大池。消息聚合涉及连接它们以给出一个k维向量e(i),其中每个条目表示xi到其相应邻居节点的距离。
向量
这个向量通过神经网络被映射到表示节点i异常性的单个标量值:
神经网络映射

Computational Runtime: LUNAR避免在输入时直接对高维特征数据进行训练,而是使用点之间的距离,所以LUNAR比其他深度方法更快。

**Limitations:**和所有局部异常值方法相同,LUNAR的限制,在于寻找k个邻居,尤其是在高维空间中。

个人理解

总而言之,对于LUNAR这篇论文而言,我初读一遍的理解就是。LUNAR就是利用图神经网络,将数据集构造成一张图。把单个样本数据看作图中的一个点,将其中的样本点定义为目标节点,与之最近的邻居节点定义为源节点。将它们之间边的距离当作信息(特征值)。一个目标节点要用k个源节点进行描述。然后LUNAR使用一种可学习的聚合方法用于处理固定大小(k)的邻居节点,这个可学习的聚合方法就消弱了k的影响。这个向量又被神经网络映射成一个可以表示节点异常值的标量。

你可能感兴趣的:(异常检测,神经网络)