当前位置:   article > 正文

论文阅读 (98):Learning from Positive and Unlabeled Multi-Instance Bags in Anomaly Detection (2023KDD)

learning from positive and unlabeled multi-instance bags in anomaly detectio

1 概述

1.1 要点

题目在异常检测中从正和未标记的多示例包中学习 (Learning from positive and unlabeled multi-instance bags in anomaly detection)

背景

  1. 在多示例 (MIL) 中,实例被封装为多个包。标签仅提供给包而非单个实例。一个正包意味包中至少包含一个正实例,而负包中的实例均为负;
  2. MIL数据能够与很多应用相匹配,例如异常检测,其标签很少且成本昂贵,通常只会为一组实例注释;
  3. 在很多实际异常检测任务中,仅有正标签被收集,因为它们代表着关键事件;
  4. 无标签数据中仅有正标签被提供,被称为正和无 (PU) 学习

动机MIL中没有基于PU学习进行异常检测的工作

策略:提出首次在异常检测中从PU包学习的方法:

  1. 使用自编码器作为潜在异常检测器
  2. 提出一个新的损失以从PU包中学习;

1.2 代码

https://github.com/Lorenzo-Perini/PU-MIL-AD

1.3 引用

@inproceedings{Perini:2023:18971906,
author		=	{Perini, Lorenzo and Vercruyssen, Vincent and Davis, Jesse},
title		=	{Learning from positive and unlabeled multi-instance bags in anomaly detection},
booktitle	=	{{SIGKDD}},
pages		=	{1897--1906},
year		=	{2023},
url			=	{https://dl.acm.org/doi/abs/10.1145/3580305.3599409}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

2 基础知识

2.1 MIL

一些重要的符号如下。当应用到异常检测时,MIL的任务是通过概率函数为包或者实例分配标签。本文将同时完成这两个任务。

符号含义
X = { x 1 , … , x N } X=\{x_1,\dots,x_N\} X={x1,,xN}数据集
x i ∈ R d x_i\in\mathbb{R}^d xiRd实例
N N N实例数
B = { x 1 , … , x k } B=\{x_1,\dots,x_k\} B={x1,,xk}
M M M包的数量
k k k包的大小 ( k × M = N k\times M=N k×M=N)
Y B Y_B YB包标签
y x y_x yx实例标签

2.2 PU学习

在PU学习中,模型只能访问正实例和未标记实例。基于该设置,我们假设无标签数据集中仅有正包的标签被提供,即 Y B = 1 , B ∈ P Y_B=1,B\in P YB=1,BP,以及 B ∈ U B\in U BU Y B Y_B YB未知,其中 P P P U U U分别是有标记包和无标记包。因为本文假设标签是完全随机选择 (SCAR),每个正包有常数概率 c c c被标记。然而,目前仅有少数文献关注PU包下的MIL,其它的则更多关注半监督MIL。

2.3 异常检测

异常检测是为实例分配一个判断其异常程度得分的算法。本文使用一个自编码器 (AE) 作为异常检测器。AE是一个包含将实例 x x x映射到低维隐空间的编码器和一个将其映射回原始空间的编码器的神经网络,其目标是找到一个能够准确重构输入的低维表示。

在异常检测中,一个分配异常得分的通用方式是使用其重构损失 a θ = ∥ x − AE θ ( x ) ∥ 2 a_\theta=\|x-\text{AE}_\theta(x)\|^2 aθ=xAEθ(x)2,其中 ∥ ⋅ ∥ \|\cdot\| 是欧式正则, AE θ ( x ) \text{AE}_\theta(x) AEθ(x)是重构后的输入。因为AE在训练集上最小化 a θ ( x ) a_\theta(x) aθ(x),在测试集上的重构损失越高,则越可能是异常实例。在本文中,我们将异常类别定义为正实例或者正包。有工作引入不确切AUC并使用自动编码器从包标签中学习。 然而,他们假设有一个完全标记的环境,且正包中恰好包含一种异常现象。

3 PU多示例异常检测框架

本文主要处理以下问题:
输入:一个正包 (异常) 的集合 P P P,一个无标签集合 U U U
目的:分别找到一个包概率函数 F F F和实例概率函数 f f f,以判断包和实例异常的概率。

从PU包中学习以进行异常检测有以下四个挑战:

  1. 半监督异常检测器假设标签与实例对应,而输入中只包含包级别的正标签。从这些标签中导出实例标签是具有挑战性的
  2. 模型缺乏负包的引导,其将自然地偏向拟合正类别;
  3. 异常的模式不可知,因此,正包中的异常实例并不能完全表征正类别;
  4. 实际应用中需要同时在包和实例级别预测。然而已有的方法大都关注于最能促发包标签的实例,例如使用得分中的最大值,并将其它实例作为负。这将损害实例级的性能,因为包中可能包含多个正实例。

本文引入正和无MIL异常检测器 (PUMA),其在全新的损失引导下同时在实例级和包级分配正类 (异常) 概率。特别地,PUMA训练一个包含两部分损失函数 L = L u + L p L=L_u+L_p L=Lu+Lp的AE:

  • L u L_u Lu:使用无标记包作为输入,以对实例的分布建模,从而在测试阶段检测不遵循任何模型 (例如新奇事物) 的异常情况;
  • L p L_p Lp:使用正包作为输入,以区分正实例和负实例;

3.1 无标签损失 L u L_u Lu

在本文的设置下,数据集中仅有少量甚至没有标签,异常检测器需要利用大量的无标签数据。对此,我们选择AE作为关键技术,理由如下:

  1. AE可以准确检测新实例,使得模型可以捕捉不遵循任何模式的异常;
  2. 对包含细微污染数据 (即训练集包含无标记异常) 健壮,特别是当期结构仅限于少数层和神经元时。

因为网络的输入是包的集合,本文将按包重构损失 R θ ( B ) = 1 k ∑ j = 1 k a θ ( x j ) \mathcal{R}_\theta(B)=\frac{1}{k}\sum_{j=1}^ka_\theta(x_j) Rθ(B)=k1j=1kaθ(xj)用于无标记包 B B B L u L_u Lu则计算为所有无标记包的按包重构损失的平均:
L u : = 1 ∣ U ∣ ∑ B ∈ U R θ ( B ) = 1 k ∣ U ∣ ∑ B ∈ U ∑ x j ∈ B a θ ( x j ) (1) \tag{1} L_u:=\frac{1}{|U|}\sum_{B\in U}\mathcal{R}_\theta(B)=\frac{1}{k|U|}\sum_{B\in U}\sum_{x_j\in B}a_\theta(x_j) Lu:=U1BURθ(B)=kU1BUxjBaθ(xj)(1)

3.2 有标签损失 L p L_p Lp

构建使用正包标签的损失函数需要设置一个学习方法,其中:

  1. 参数化实例概率函数 f f f
  2. f f f链接到包概率函数 F F F
  3. 收集负包标签;
  4. 使用包标签来度量 F F F的准确性。

3.2.1 实例得分映射为概率

因为AE的实例异常得分的区间为 [ 0 , + ∞ ) [0,+\infty) [0,+),这无法保证不同包之间具有可比较的缩放比例。通过应用Platt缩放,我们将实例重构损失 a θ ( x ) a_\theta(x) aθ(x)转换为校准概率
f ( x ) = P ( y x = 1 ) ^ = 1 1 + exp ⁡ ( − α a θ ( x ) − β ) (2) \tag{2} f(x)=\widehat{\mathbb{P}(y_x=1)}=\frac{1}{1+\exp(-\alpha a_\theta(x)-\beta)} f(x)=P(yx=1) =1+exp(αaθ(x)β)1(2)其中 f f f依赖于AE的参数 θ \theta θ α , β ∈ R \alpha,\beta\in\mathbb{R} α,βR是校准参数。注意该准则不受 f f f特定选择的约束,但可以将任意变换转换到 [ 0 , 1 ] [0,1] [0,1]

3.2.2 实例概率转换为包概率

通过最大概率实例来计算包概率的方式意味着模型仅根据最能促发包标签的实例更新,从而忽略包中其它实例的信息。另一方面,对实例概率未加权平均会使包含少量异常的包看起来比正常包更正常。一个策略是使用Noisy-OR方法,其将正包为正的概率计算为1减所有实例为负的概率。然而,这在 k k k较大时,该方法将是病态的。因此,本文提出了一个加权Noisy-OR方法。

该方法的关键启发是,具有最大和最低正概率的实例应当有更大的权重,因为它们对包标签的贡献更大:
F ( B ) = P ( Y B = 1 ) ^ = 1 − ∏ x j ∈ B ( 1 − f ( x j ) ) w j (3) \tag{3} F(B)=\widehat{\mathbb{P}(Y_B=1)}=1-\prod_{x_j\in B}(1-f(x_j))^{w_j} F(B)=P(YB=1) =1xjB(1f(xj))wj(3)其中 F F F依赖于 θ \theta θ w j w_j wj是实例 x j x_j xj的权重。注意如果使用 1 − f ( x j ) w j 1-f(x_j)^{w_j} 1f(xj)wj而非 ( 1 − f ( x j ) ) w j (1-f(x_j))^{w_j} (1f(xj))wj,将导致实例的概率被修改且变为等权重汇聚,这将违背方法的初衷。

权重的选择应该反应包概率,其主要由包中最高概率和最低概率 f ( x j ) f(x_j) f(xj)决定。因此:

  1. 使用排序映射 ρ f : R k → { 0 , … , k − 1 } \rho_f:\mathbf{R}^k\to\{0,\dots,k-1\} ρf:Rk{0,,k1}根据实例的概率对其升序排序,即为实例分配所属的顺序 r r r
    ρ f ( x j ) = r ∈ { 0 , … , k − 1 } ⇔ { ∣ { x ∈ { x 1 , … , x k } : f ( x ) < r } ∣ = r ∣ { x ∈ { x 1 , … , x k } : f ( x ) > r } ∣ = k − r − 1 \rho_f(x_j)=r\in\{0,\dots,k-1\}\Leftrightarrow\left\{
    |{x{x1,,xk}:f(x)<r}|=r|{x{x1,,xk}:f(x)>r}|=kr1
    \right.
    ρf(xj)=r{0,,k1}{{x{x1,,xk}:f(x)<r}=r{x{x1,,xk}:f(x)>r}=kr1
    然后通过除 k − 1 k-1 k1将其标准化到 [ 0 , 1 ] [0,1] [0,1]
  2. 引入权重函数 S : [ 0 , 1 ] → R S:[0,1]\to\mathbb{R} S:[0,1]R,其给最高和最低排序的实例分配高权重。理由是最高排序的实例可以指示包标签正的程度,而低排序实例则相反。为了方便理解,可以详细一个有两个峰值的函数,在0和1分别指示低排序和高排序,函数之间则相对平缓,几乎为null。 S S S的一个选择是 N 0 + N 1 \mathcal{N}_0+\mathcal{N}_1 N0+N1 (被约束到 [ 0 , 1 ] [0,1] [0,1]),其中 N a \mathcal{N}_a Na是均值 a a a标准差 0.1 0.1 0.1高斯密度函数
    S ( ρ f ( x j ) k − 1 ) = N 0 ( ρ f ( x j ) k − 1 ) + N 1 ( ρ f ( x j ) k − 1 ) S\left(\frac{\rho_f(x_j)}{k-1}\right)=\mathcal{N}_0\left(\frac{\rho_f(x_j)}{k-1}\right)+\mathcal{N}_1\left(\frac{\rho_f(x_j)}{k-1}\right) S(k1ρf(xj))=N0(k1ρf(xj))+N1(k1ρf(xj))
  3. 应用 S S S获取实例的标准化权重:
    w j = S ( ρ f ( x j ) k − 1 ) / ∑ q ≤ k S ( ρ f ( x q ) k − 1 ) w_j=S\left(\frac{\rho_f(x_j)}{k-1}\right)/\sum_{q\leq k}S\left(\frac{\rho_f(x_q)}{k-1}\right) wj=S(k1ρf(xj))/qkS(k1ρf(xq))

3.2.3 选择可信负包 R R R

仅从正包中学习将使得模型怼正类过拟合。因此,我们选择 ∣ R ∣ = ∣ P ∣ |R|=|P| R=P个负包,以将问题转换为类别平衡分类任务。PUMA选择具有最低正概率 F ( B ) F(B) F(B) ∣ R ∣ |R| R个包。这需要假设正负包之间有足够的差距。这在异常检测中似乎是可行的,因为异常通常与正样本有足够的距离。然而,这也的选择规则将引入偏差,因为负包不是以独立同分布的方式选择。我们尝试通过让模型在训练的每次迭代中重新选择不同的 R R R来限制偏差。以这种方式,PUMA将逐步完善其对负类别的学习定义。

3.2.4 从PU包中学习 f f f F F F

包概率函数 F F F的评估需要将其输出与真实标签相比较。因此, L p L_p Lp的构建需要考虑正包和所选择的负包标签的对数似然:
L p = − log ⁡ ( ∏ B ∈ P F ( B ) ∏ B ∈ R ( 1 − F ( B ) ) ) + λ ( α 2 + β 2 ) (4) \tag{4} L_p=-\log\left( \prod_{B\in P} F(B) \prod_{B\in R} (1-F(B)) \right)+\lambda\left( \alpha^2 + \beta^2 \right) Lp=log(BPF(B)BR(1F(B)))+λ(α2+β2)(4)其中 λ ( α 2 + β 2 ) \lambda(\alpha^2+\beta^2) λ(α2+β2用于避免过拟合,这里设置 λ = 0.01 \lambda=0.01 λ=0.01

对于最终的损失函数 L = L u + L p L=L_u+L_p L=Lu+Lp中没有加缩放因子,理由如下:

  1. 正包很少,需要尽可能对其探索;
  2. 正标签越多,它们就越有可能代表整个正类,并且越不需要检测新事物。

4 理论分析

标准Noisy-OR算法广泛应用于MIL中,本节主要回答以下问题:为什么加权Noisy-OR相较于不加权是必要的?

4.1 标准Noisy-OR的缺点

给定一个包 B B B,标准Noisy-OR计算为:
( Noisy-OR ) R ( Y B = 1 ) ^ = 1 − ∏ j ≤ k ( 1 − f ( x j ) ) . (\text{Noisy-OR})\qquad\widehat{\mathbb{R}(Y_B=1)}=1-\prod_{j\leq k}(1-f(x_j)). (Noisy-OR)R(YB=1) =1jk(1f(xj)).然而,当 k k k较大时,该概率值酱收敛到1。

4.2 加权Noisy-OR收敛到 ( 0 , 1 ) (0,1) (0,1)

最大和最小实例概率对包概率有最大的影响,加权Noisy-OR不受 k k k的影响。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/656646
推荐阅读
相关标签
  

闽ICP备14008679号