FTRL(Follow The Regularized Leader)优化方法
1. 背景与核心思想
FTRL 是一种基于在线学习(Online Learning)的优化算法,最初由 Google 提出并应用于大规模稀疏场景(如推荐系统、广告点击率预测)。其核心思想是:
- 结合自适应学习率:根据历史梯度调整不同参数的学习率,类似 RMSprop/Adam 的二阶矩机制。
- 显式正则化:同时支持 L1 正则化(促进稀疏性)和 L2 正则化(控制模型复杂度),尤其适合高维稀疏数据(如特征维度达百万级的场景)。
- 在线学习特性:每次仅处理一个样本(或小批量),适合数据流式更新的场景。
2. 权重更新公式与数学推导
假设当前参数为 \(\theta_t\),当前梯度为 \(g_t = \nabla_{\theta} J(\theta_t)\),FTRL 的更新过程分为以下步骤:
2.1 累积梯度平方(二阶矩)\[ n_t = n_{t-1} + g_t^2 \]
- 作用:跟踪梯度平方的累积和,用于自适应调整学习率(类似 RMSprop 的 \(s_t\))。
2.2 计算学习率变化量\[ \sigma_t = \frac{1}{\sqrt{n_t + \epsilon}} - \frac{1}{\sqrt{n_{t-1} + \epsilon}} \]
- 作用:\(\sigma_t\) 表示从 \(t-1\) 到 \(t\) 时刻学习率的变化步长,其中 \(\epsilon\) 是平滑项(防止除零,通常取 \(10^{-8}\))。
2.3 正则化项 :FTRL 同时包含 L1 正则化和 L2 正则化,总正则化项为: \[ \text{Reg}(\theta) = \lambda_1 \|\theta\|_1 + \lambda_2 \frac{1}{2} \|\theta\|_2^2 \]
- \(\lambda_1\):L1 正则化系数(控制稀疏性)。
- \(\lambda_2\):L2 正则化系数(控制权重衰减)。
2.4 权重更新公式\[ \theta_{t+1} = \theta_t - \frac{\eta}{1 + \eta \lambda_2 \sqrt{n_t + \epsilon}} \left( g_t + \lambda_1 \cdot \text{sign}(\theta_t) \right) - \lambda_2 \eta \theta_t \]
- 梯度项:\(-\frac{\eta g_t}{1 + \eta \lambda_2 \sqrt{n_t}}\),通过二阶矩 \(n_t\) 实现自适应学习率。
- L1 正则项:\(-\frac{\eta \lambda_1 \cdot \text{sign}(\theta_t)}{1 + \eta \lambda_2 \sqrt{n_t}}\),促使参数向零收缩,产生稀疏解。
- L2 正则项:\(-\lambda_2 \eta \theta_t\),直接对参数进行衰减(类似权重衰减)。
3. 优缺点
- 优点
- 强稀疏性: L1 正则化迫使大量参数变为零,减少模型参数量,提升内存效率,尤其适合高维稀疏特征(如 one-hot 编码的文本特征)。
- 自适应学习率: 通过梯度平方累积 \(n_t\) 自动调整学习率,对稀疏特征(低频出现的特征)赋予更大学习率,对高频特征赋予更小学习率。
- 内存高效: 仅存储非零参数的梯度信息,适合处理特征维度高达千万级的场景(如推荐系统)。
- 在线学习友好: 支持流式数据更新,每次更新仅依赖当前梯度和历史二阶矩,无需存储完整梯度序列。
- 缺点
- 参数调优复杂: 需手动调整 \(\eta\)(学习率)、\(\lambda_1\)(L1 强度)、\(\lambda_2\)(L2 强度),超参数敏感度较高。
- 计算复杂度较高: 每次更新需计算正则化项和二阶矩,在非稀疏场景下效率低于 SGD/Adam。
- 缺乏动量项: 收敛速度可能慢于结合动量的优化器(如 Adam),在非稀疏场景中泛化能力较弱。

浙公网安备 33010602011771号