本节摘要:Transformer 用自注意力机制同时关注序列所有位置,长程依赖建模能力与并行训练效率双双在线,是深度时序检测的"当红主力"。本节回顾自注意力与位置编码的核心机制,展开预测误差、重构误差、注意力权重分析三种检测玩法,客观对比其与 RNN 的取舍,并讲清数据量、算力、短序列三大挑战与实战建议。
阅读完本节,你应当能够:
一台大型离心机的振动数据,每秒采样 100 次。一次轴承早期故障,往往先从"几千个采样点之前"的某个轻微载荷变化开始,一路演化成剧烈振动。要抓住这种"因果链跨得很长"的异常,模型必须能同时看到序列里所有位置之间的关系——开头的一丝异常,可能会在结尾产生巨大影响。
RNN 家族(第 6.1 节)解决这个问题靠"逐步传递":信息一格一格往后带,链条多长就要传多少步。这个方案有两个天生短板:一是长链条上信息会衰减、甚至传丢;二是必须串行计算,无法并行,训练慢。
Transformer 换了一个思路:不搞"逐步传递",直接让每个位置"跳看"序列里所有其他位置,一步到位。 这就是自注意力机制——当前位置的表示,由它对所有其他位置"注意力分配"的加权和决定。开头和结尾的距离,在 Transformer 眼里和"相邻两步"没有区别。
这种"全局视野"让 Transformer 成为长序列时序任务的新宠。但天下没有免费午餐:全看所有位置意味着计算量随序列长度平方增长,数据需求也水涨船高。 短序列、小数据量场景,它反而打不过更轻的 RNN 甚至统计方法。这一节我们把这笔账算清楚。
自注意力机制的核心操作:序列里每个位置 x_i,先算出三个向量——查询 Q、键 K、值 V。然后:
一句话:每个位置的输出,是"所有位置的信息按关注度加权求和"的结果。 位置 i 和位置 j 相距多远,在注意力计算里一视同仁——这打破了 RNN 的"距离衰减"诅咒。
为了让模型知道"谁在前谁在后"(注意力本身是不分顺序的),要额外加位置编码:给每个位置注入一个与位置相关的信号,让模型"看到"先后顺序。
经典 Transformer 是"编码器-解码器"架构:编码器把输入序列变成一系列隐藏表示,解码器用这些表示生成输出序列。对时序检测,常见两种用法:编码器-解码器做预测/重构,或只用编码器做特征提取。多头注意力(多个注意力头并行,各看不同的关系维度)是它能力的关键来源。
和 RNN 家族一样,训练模型预测下一时刻值,比较预测与实际,残差超阈值即异常。Transformer 做预测的优势是长程依赖——预测所依据的"历史"可以追溯到很远。
用 Transformer 编码器-解码器做自编码器:压缩再还原,重构误差大即异常。Transformer 的"全局视野"让它重构出的序列比 RNN 版更忠实于长程结构。
这是 Transformer 独有的玩法。 注意力权重记录着"每个位置在关注哪些位置"。正常序列的注意力模式往往有规律(比如强周期序列里,每个位置主要关注"上一周期的同时刻");异常会打破这种关注模式——异常的注意力分配变得杂乱或集中到奇怪的位置。
分析注意力权重能给出"哪段时间的注意力异常"的定位,这在可解释性(第 7.3 节)上有独特价值——它告诉你模型"觉得哪里不对劲",而不只是"觉得不对劲"。
| 维度 | Transformer | RNN/LSTM/GRU |
|---|---|---|
| 长程依赖 | 强(一步全局看) | 中(逐步传递、有衰减) |
| 并行训练 | 强(无顺序依赖) | 弱(串行) |
| 数据需求 | 大(参数多) | 较小 |
| 计算复杂度 | 随序列长度平方增长 | 线性 |
| 短序列表现 | 相对浪费 | 更好 |
| 可解释性 | 注意力权重可用 | 隐藏状态较难解读 |
选型一句话:长序列、数据量大、要并行 → Transformer;序列中等、数据有限、要快 → RNN 或传统方法。
数据量:Transformer 参数量大,喂不饱就欠拟合,比 RNN 更吃数据。短序列别用——序列长度 100 以内的任务,Transformer 的全局注意力是杀鸡用牛刀,RNN 或统计方法更划算。
算力:注意力复杂度随长度平方增长,长序列(上万步)要切片或分层注意力。长度 1000 以上先算算显存够不够。
训练稳定性:Transformer 需要精心调学习率、用 warmup、加 LayerNorm——"照着图像任务的设置直接跑"多半不收敛。
适合:序列长(依赖跨很远)、数据量大、模式复杂——比如多传感器系统的长时间行为监控。不适合:短序列、小数据、毫秒级实时(Transformer 推理也不便宜)。工程上的常见角色:Transformer 是"重武器"梯队,前面先试统计和树模型。
⚠️ 常见坑:把"注意力权重"当"因果解释"过度解读。 注意力权重大 ≠ 因果贡献大——它只是"模型关注了这里",可能受噪声影响。做可解释性时(第 7.3 节),注意力可视化要配合 SHAP 等其他证据,别单凭注意力就下结论。
💡 关键直觉:Transformer 检测的本质是"全局长程模式的偏离检测"。 它的独门优势不是"比 RNN 准一点点",而是能建模"跨很远的协同模式"——开头和结尾之间的长程因果。如果你的异常正是这种长程模式破坏,Transformer 才有不可替代的价值。
现实工程里,Transformer 常和轻量方法配合:统计/树模型做第一道快速筛查,边缘样本送 Transformer 复核(第 3.4 节"统计初筛+深度复核"流水线)。这样既保住毫秒级响应和低算力,又在关键样本上享受长程建模的精度。
以某大型分布式存储系统的健康监测为例,走一遍 Transformer 检测的落地流程(概念层面):
这个案例的关键:Transformer 的"全局视野"适合"长程漂移型"异常——一个今天才显现的异常,成因可能在三五天的某次状态变化里,RNN 的逐步传递会衰减,Transformer 一步直达。
上 Transformer 前把成本算清楚:训练算力(GPU 显存随序列长度平方增长,72 小时×20 指标可能要切片);推理延迟(完整前向传播比树模型贵几个数量级,实时性要求高的场景要评估);重训频率(概念漂移下要定期重训,每次都是大成本);数据标注/清洗成本(Transformer 对训练数据质量要求高)。这四项成本加总,如果明显高于"用轻量方法多配几个模型"的替代方案,就该重新考虑是否值得。 Transformer 是时序检测的技术上限之一,但"能用得起"和"值得用"是两回事。
长序列(依赖跨很远)、数据量大、要并行训练 → Transformer;序列中等、数据有限、要快 → LSTM/GRU。短序列(<100 步)别用 Transformer——它的全局注意力在短序列上是浪费,RNN 或统计方法更划算。
谨慎。注意力权重大 ≠ 因果贡献大——它只是"模型关注了这里",可能受噪声影响。做可解释性时(第 7.3 节),注意力可视化要配合 SHAP 等其他证据,别单凭注意力就下结论。
三个务实替代:先降维(特征太多就 PCA 压维);用小型 Transformer 或卷积替代(参数少、数据需求低);或退回 LSTM/统计方法。数据不够时硬上大 Transformer,只会得到欠拟合的模型和漫长的时间浪费。
非常重要——注意力本身不分顺序,位置编码是模型"知道谁在前谁在后"的唯一渠道。时序数据建议用"可学习的位置编码"(而不是固定的正弦编码),因为真实时序的"位置语义"(比如"3 小时前")比文本的固定位置更灵活,让模型自己学更贴合数据。
下一章,检测跑通之后的另一半功夫——评估与解释。检测完了然后呢?用哪些指标客观评价模型,标签从哪来,异常结论怎么让人信服,三节给你补齐闭环。