3. 在线学习基础
在金融场景中,模型面对的是持续到达的行情、交易、舆情与客户行为数据。若每次更新都重新训练全量模型,成本高且响应慢。在线学习(Online Learning)提供了一条“来一条、学一条、用一条”的增量路径。理解它与批量学习的差异,是构建实时风控、智能投顾与高频信号系统的前提。
一、核心原理:批量学习与在线学习的本质差异
批量学习假设数据分布固定,先收集完整训练集,再一次性优化经验风险最小化目标。在线学习则假设数据以流式到达,模型在每一步接收一个样本,预测后立即获得损失,并据此更新参数。两者的关键区别不在数据量,而在更新时机、计算复杂度与 regret 目标。
| 维度 | 批量学习 | 在线学习 |
|---|---|---|
| 数据假设 | 独立同分布,分布固定 | 任意序列,可对抗性到达 |
| 更新方式 | 全量数据一次或多次迭代 | 每步单样本或小批量增量更新 |
| 计算复杂度 | 每轮 O(n·d) | 每步 O(d) |
| 内存需求 | 需保存全部训练数据 | 仅需当前模型与少量状态 |
| 目标函数 | 最小化经验风险 | 最小化累积后悔(Regret) |
| 典型算法 | 批量梯度下降、牛顿法 | OGD、FTRL、AdaGrad |
在线学习的理论基石是后悔界(Regret Bound)。定义累积损失与事后最优固定策略损失之差为后悔值 RT。若算法满足 RT = O(√T) 或 O(log T),则平均后悔随 T 增大趋于零,说明模型在长期意义上不劣于任何固定策略。金融场景中,这对应“策略长期跑赢基准”的理论保证。
二、方法流程:凸优化与随机梯度下降
在线学习通常建立在凸优化框架上。凸损失函数保证局部最优即全局最优,使增量更新不会陷入糟糕的局部极小。随机梯度下降(SGD)是最常用的在线优化器:每步用单样本梯度估计真实梯度,沿负方向更新参数。
# 在线 SGD 更新伪代码
初始化 w_1 = 0
for t = 1, 2, ..., T:
接收样本 x_t
预测 y_hat = w_t · x_t
观测损失 l_t(w_t) 与梯度 g_t = ∇l_t(w_t)
更新 w_{t+1} = w_t - η_t · g_t
可选:投影到凸约束集 K
学习率 ηt 的衰减策略直接影响收敛。常见选择包括 ηt = 1/√t 或 ηt = 1/t。金融数据噪声大、非平稳,通常采用自适应学习率(如 AdaGrad、Adam)或 FTRL 的 proximal 更新,以兼顾稀疏性与稳定性。
三、案例/场景:实时信用评分中的在线更新
假设某消费金融平台需要实时评估每笔申请的违约概率。批量模型每天训练一次,但欺诈模式可能在数小时内突变。采用在线逻辑回归后,每笔申请到达时:
- 提取用户特征 xt(收入、负债、设备指纹、行为序列);
- 用当前权重 wt 计算违约概率 pt;
- 放款后经过观察期获得真实标签 yt;
- 计算对数损失梯度 gt = (pt - yt)·xt;
- 更新 wt+1 = wt - ηt·gt,并写入模型存储。
该流程将模型更新延迟从“天级”压缩到“秒级”,同时内存占用仅与特征维度 d 相关,而非样本量 n。对于千万级用户平台,这意味着无需保存全量历史样本即可持续适应新风险。
四、误区与复盘:在线学习不是“万能增量”
误区二:忽略学习率与正则的耦合。在线学习中,学习率过大导致震荡,过小则适应缓慢;L1/L2 正则强度需随数据稀疏度动态调整。误区三:用在线学习替代离线评估。必须保留滑动窗口验证集,监控 regret 与业务指标(如 KS、AUC)的漂移。
复盘要点:
- 确认损失函数凸性与梯度有界性,否则后悔界不成立;
- 监控每步更新后的参数范数,防止梯度爆炸;
- 对类别极不平衡的金融风控,采用加权损失或重采样;
- 定期与批量模型对比,避免在线模型“跑偏”而不自知。