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),在非稀疏场景中泛化能力较弱。

 

posted @ 2021-07-16 21:12  AI_Engineer  阅读(197)  评论(0)    收藏  举报