You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LSTM自编码器用于以太坊交易异常检测效果极差,求优化建议

问题分析与解决方案

核心问题明确:模型全预测负样本,本质是训练数据类别严重不平衡(负样本占比约78%),同时模型未学到区分异常的有效特征,或异常判定逻辑失效。

代码检查要点

  • 验证数据生成器样本分布:检查生成器输出的batch中是否包含正样本(异常交易),是否存在采样逻辑错误(如仅抽取负样本);确认标签映射是否正确(异常是否标记为1,正常为0)。
  • 检查重构误差阈值逻辑:如果基于重构误差判定异常,确认阈值是否基于验证集正常样本的重构误差分布(如95/99分位数)计算,而非使用固定值。
  • 正则化强度验证:查看kernel_regularizer/recurrent_regularizer的系数(如L2设为1e-2可能过强),过度正则化会导致模型退化,只能输出多数类。
  • 序列构造合理性:确认LSTM输入的时序序列是否按用户地址+时间窗口分组,区块链交易异常通常和单用户行为时序相关,随机拼接的序列无法让模型捕捉有效模式。
  • 训练集标签占比统计:打印训练集中正/负样本数量,确认正样本占比是否极低(如<1%),这种情况下模型天然倾向于预测多数类。

优化方向

数据层面

  • 类别重采样:
    • 过采样:对正样本序列进行复制,或用时序生成方法(如GAN)合成异常交易序列;避免直接使用针对非时序数据的SMOTE。
    • 欠采样:对负样本进行随机欠采样,或保留代表性负样本(如按用户交易频率分层采样),缩小正负样本数量差距。
  • 类别加权:在模型编译时设置class_weight={0:1, 1: N}(N为负样本/正样本的比值),或自定义加权损失函数,让模型对正样本的重构误差给予更高权重。

模型层面

  • 调整自编码器结构:
    • 增加LSTM单元数或层数(如从64升至128,新增1层LSTM),增强特征提取能力;加入注意力层(如AdditiveAttention),让模型聚焦时序中的异常片段。
    • 尝试变分自编码器(VAE):VAE能学习数据的潜在分布,异常样本的潜在分布会偏离正常样本,更容易区分。
  • 调整损失函数:
    • 用MAE代替MSE:MAE对异常值的敏感度更高,不会被大误差样本主导训练。
    • 采用对比损失:让正常样本的重构误差尽可能小,异常样本的重构误差尽可能大,强化类别差异。
  • 优化正则化:降低L1/L2系数(如从1e-2调至1e-4),或替换为循环Dropout(recurrent_dropout=0.2),避免过度抑制模型学习。

后处理与特征工程

  • 优化异常判定阈值:用验证集的正常样本重构误差计算分位数(如99分位数),超过该阈值的样本判定为异常,而非使用固定值。
  • 加入时序衍生特征:预处理阶段,对每个时间窗口计算交易金额的均值、方差、交易频率、连续交易间隔等特征,补充原始数值列的信息。
  • 集成学习:结合LSTM自编码器与传统异常检测模型(如Isolation Forest、XGBoost),将自编码器的重构误差作为特征输入到其他模型,提升整体效果。

内容的提问来源于stack exchange,提问作者Patryk Rossa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 00:12:34