预测得准,为什么仍可能找错异常
用正常历史预测未来,再把偏离预测的部分标记为异常,是一条直观的思路。但这里其实有两个问题:怎样预测,以及怎样把误差转化成异常判断。
预测只是第一步
2022 年的这篇合著论文比较了神经网络和梯度提升等预测方法,并在时间序列异常检测任务中分析其表现。研究使用的基准由多个独立单变量序列组成,每条序列包含一个异常区段。公开论文全文
论文不仅比较预测器,还讨论了用窗口内累计偏差定位异常。这样的设计提醒我:异常分数的构造,本身就是方法的一部分,不能隐藏在预测模型之后。
中间目标与最终目标会不一致
论文结果显示,预测能力较强的模型不一定具有更好的异常识别表现。过于灵活的预测器可能削弱异常的残差信号;预测不足又可能让正常变化产生大量误差。这个观察限于论文的任务和样本,不能据此认定某种模型家族普遍不适合检测异常。
我的理解是,异常检测关心的是“正常与异常能否被分开”,而不是无差别地逼近所有观测。即使两种方法的平均误差相近,它们在关键异常区段上的行为也可能不同。
一个容易被基准设置掩盖的问题
如果预先知道每条序列恰有一个异常区段,就可以把问题处理成定位任务。实际监测中,异常可能不存在,也可能反复出现,此时还需要考虑阈值、误报和检测延迟。论文基准的结果,不能直接证明系统已具备连续在线告警能力。
这一区别是我从早期工作中保留下来的重要提醒:先检查基准给了哪些先验,再讨论结果能否迁移。
为什么今天仍然值得讨论
在代码评测和其他机器学习任务中,也存在类似的中间指标问题。一个方便优化的数字,很容易逐渐替代真正关心的目标。对我而言,这项研究的持续价值在于形成一种习惯:从最终决策倒推评价方式,再选择模型,而不是先选模型再寻找能展示优势的指标。
依据文献
利用预测方法检测时间序列异常
Н. Э. Девришев, Ю. Хэ, О. Л. Петросян. Обнаружение аномалий во временных рядах с помощью методов прогнозирования. Процессы управления и устойчивость, 9(25), 2022.