20240317-2-推荐算法FTRL

FTRL

FTRL(Follow the Regularized Leader) 由Google的H. Berendan McMahan 等人于2010年提出【4】,FTRL是一种在线最优化求解算法,结合L1-FOBOS和L1-RDA算法,用于解决在线学习中,权重参数不能产生较好的稀疏性的问题。

由于在线学习涉及内容较多,本文从提升模型稀疏性的角度入手,简单介绍经典的TG, L1-FOBOS, L1-RDA 和 FTRL 算法的原理。

模型稀疏性

众所周知,Lasso对权重参数(W)引入L1正则项使得模型的训练结果具有稀疏性,稀疏的模型不仅有变量选择的功能,同时在模型线上进行预测时,可以大大减小运算量。但是在在线学习的场景下,利用SGD的方式进行权重参数(W)的更新,每次只使用一个样本,权重参数的更新具有很大的随机性,无法将权重参数准确地更新为0。为解决这一问题,TG, L1-FOBOS, L1-RDA,FTRL 等一系列算法被提出。

TG(Truncated Gradient)

为了得到具有稀疏性的权重参数(W),最简单的方法就是引入一个阈值,当某个权重参数的值小于该阈值就将其置0。TG方法就是在这个想法的基础上,稍加改进,使用如下式的梯度更新方式。
W ( t + 1 ) = T 1 ( W ( t ) − η ( t ) G ( t ) , η ( t ) λ ( t ) , θ ) W^{(t+1)}=T_{1}\left(W^{(t)}-\eta^{(t)} G^{(t)}, \eta^{(t)} \lambda^{(t)}, \theta\right) W(t+1)=T1(W(t)−η(t)G(t),η(t)λ(t),θ)
T 1 ( v i , α , θ ) = { max ⁡ ( 0 , v i − α ) if v i ∈ [ 0 , θ ] min ⁡ ( 0 , v i + α ) if v i ∈ [ − θ , 0 ] v i otherwise T_{1}\left(v_{i}, \alpha, \theta\right)=\left\{\begin{array}{ll} \max \left(0, v_{i}-\alpha\right) & \text { if } v_{i} \in[0, \theta] \\ \min \left(0, v_{i}+\alpha\right) & \text { if } v_{i} \in[-\theta, 0] \\ v_{i} & \text { otherwise } \end{array}\right. T1(vi,α,θ)=⎩ ⎨ ⎧max(0,vi−α)min(0,vi+α)vi if vi∈[0,θ] if vi∈[−θ,0] otherwise

其中 G ( t ) G^{(t)} G(t)是当前参数的梯度, η ( t ) \eta^{(t)} η(t)是学习率, λ ( t ) \lambda^{(t)} λ(t)控制梯度阶段发生的频次,每k次进行一次梯度截断。 θ \theta θ为梯度截断时设置的阈值。通过调节 λ , θ \lambda,\theta λ,θ可以权重参数的稀疏性。

λ ( t ) = { k λ , t m o d k = 0 0 , o t h e r w i s e \lambda^{(t)}=\left\{ \begin{aligned} k\lambda & , & t\ mod\ k = 0 \\ 0 & , & otherwise \end{aligned} \right. λ(t)={kλ0,,t mod k=0otherwise

L1-FOBOS

FOBOS(Forward-Backward Splitting)分两步更新权重。
W ( t + 1 2 ) = W ( t ) − η ( t ) G ( t ) W^{\left(t+\frac{1}{2}\right)}=W^{(t)}-\eta^{(t)} G^{(t)} W(t+21)=W(t)−η(t)G(t)
W ( t + 1 ) = arg ⁡ min ⁡ W { 1 2 ∥ W − W ( t + 1 2 ) ∥ 2 + η ( t + 1 2 ) Ψ ( W ) } W^{(t+1)}=\arg \min _{W}\left\{\frac{1}{2}\left\|W-W^{\left(t+\frac{1}{2}\right)}\right\|^{2}+\eta^{\left(t+\frac{1}{2}\right)} \Psi(W)\right\} W(t+1)=argWmin{21 W−W(t+21) 2+η(t+21)Ψ(W)}

FOBOS的第一步就是正常的梯度下降算法,第二部对W进行调整,引入正则项使得参数具有稀疏性。将以上两部转换为一步,可以有如下表达。
W ( t + 1 ) = argmin ⁡ W { 1 2 ∥ W − W ( t ) + η ( t ) G ( t ) ∥ 2 + η ( t + 1 2 ) Ψ ( W ) } W^{(t+1)}=\operatorname{argmin}_{W}\left\{\frac{1}{2}\left\|W-W^{(t)}+\eta^{(t)} G^{(t)}\right\|^{2}+\eta^{\left(t+\frac{1}{2}\right)} \Psi(W)\right\} W(t+1)=argminW{21 W−W(t)+η(t)G(t) 2+η(t+21)Ψ(W)}

实际使用中,将FOBOS中的正则算子 Ψ ( W ) \Psi(W) Ψ(W)替换成 λ ∥ W ∥ 1 \lambda\Vert W\Vert_{1} λ∥W∥1,通过数学推导,最终可以获得如下的梯度新公式。
w i ( t ) = s g n w i ( t ) − η ( t ) g i ( t ) ) max ⁡ ( 0 , ∣ w i ( t ) − η ( t ) g i ( t ) ∣ − η ( t + 1 2 ) λ ) w_i^{(t)}=sgnw_{i}^{(t)}-\eta^{(t)}g_i^{(t)})\max(0, \vert w_{i}^{(t)}-\eta^{(t)}g_i^{(t)}\vert - \eta^{(t+\frac{1}{2})}\lambda) wi(t)=sgnwi(t)−η(t)gi(t))max(0,∣wi(t)−η(t)gi(t)∣−η(t+21)λ)

从公式中可以发现,一旦权重参数更新后的值 ∣ w i ( t ) − η ( t ) g i ( t ) ∣ \vert w_{i}^{(t)}-\eta^{(t)}g_i^{(t)}\vert ∣wi(t)−η(t)gi(t)∣小于 η ( t + 1 2 ) λ \eta^{(t+\frac{1}{2})}\lambda η(t+21)λ就将改权重参数置0。

L1-RDA

RDA(Regularized Dual Average)是牺牲一定精度,进一步提升权重参数稀疏性的方法,如下是L1-RDA使用的权重参数更新公式。
W ( t + 1 ) = arg ⁡ min ⁡ W { 1 t Σ r = 1 t G ( r ) ⋅ W + λ ∥ W ∥ 1 + γ 2 t ∥ W ∥ 2 2 } W^{(t+1)}=\underset{W}{\arg\min}\{\frac{1}{t}\Sigma_{r=1}^t G^{(r)}\cdot W+\lambda\Vert W\Vert_1 + \frac{\gamma}{2\sqrt t}\Vert W\Vert_{2}^2\} W(t+1)=Wargmin{t1Σr=1tG(r)⋅W+λ∥W∥1+2t γ∥W∥22}

其中 Σ r = 1 t G ( r ) \Sigma_{r=1}^t G^{(r)} Σr=1tG(r)是历史的梯度的平均值。

通过数学推导L1-RDA有如下等价的参数更新公式。
w i ( t + 1 ) = { 0 , i f ∣ g ˉ i ( t ) < λ − t γ ( g ˉ i ( t ) − λ s g n ( g ˉ i ( t ) ) ) , o t h e r w i s e w_i^{(t+1)}=\left\{ \begin{matrix} 0 \ & , & if \vert \bar{g}_i^{(t)} < \lambda \\ -\frac{\sqrt{t}}{\gamma}(\bar g _i ^{(t)}-\lambda sgn(\bar g_i^{(t)})) & , & otherwise \end{matrix} \right. wi(t+1)={0 −γt (gˉi(t)−λsgn(gˉi(t))),,if∣gˉi(t)<λotherwise

从公式中可以发现,一旦权重参数的历史平均梯度小于阈值 λ \lambda λ就将该权重参数置0。

FTRL

通常情况下,L1-FOBOS在计算最优解的精度上较高,而L1-RDA在损失一定精度的前提下可以获得更加稀疏的权重参数(W)。FTRL结合L1-FOBOS和L1-RDA的优点而产生的算法。

通过数学推导,L1-FOBOS可以写为:
W ( t + 1 ) = arg ⁡ min ⁡ W { G ( t ) ⋅ W + λ ∥ W ∥ 1 + 1 2 η ( t ) ∥ W − W ( t ) ∥ 2 2 } W^{(t+1)}=\arg \min {W}\left\{G^{(t)} \cdot W+\lambda\|W\|{1}+\frac{1}{2 \eta^{(t)}}\left\|W-W^{(t)}\right\|_{2}^{2}\right\} W(t+1)=argWmin{G(t)⋅W+λ∥W∥1+2η(t)1 W−W(t) 22}

L1-RDA可以写为:
W ( t + 1 ) = arg ⁡ min ⁡ W { G ( 1 : t ) ⋅ W + t λ ∥ W ∥ 1 + 1 2 η ( t ) ∥ W − 0 ∥ 2 2 } W^{(t+1)}=\arg \min {W}\left\{G^{(1: t)} \cdot W+t \lambda\|W\|{1}+\frac{1}{2 \eta^{(t)}}\|W-0\|_{2}^{2}\right\} W(t+1)=argWmin{G(1:t)⋅W+tλ∥W∥1+2η(t)1∥W−0∥22}
其中 G ( 1 : t ) = Σ i t G ( i ) 其中G^{(1: t)}=\Sigma_i^t G^{(i)} 其中G(1:t)=ΣitG(i)

FTRL结合上两时,可以写作:
W ( t + 1 ) = arg ⁡ min ⁡ W { G ( 1 : t ) ⋅ W + λ 1 ∥ W ∥ 1 + λ 2 1 2 ∥ W ∥ 2 2 + 1 2 ∑ s = 1 σ ( s ) ∥ W − W ( s ) ∥ 2 2 } W^{(t+1)}=\arg \min {W}\left\{G^{(1: t)} \cdot W+\lambda{1}\|W\|{1}+\lambda{2} \frac{1}{2}\|W\|{2}^{2}+\frac{1}{2} \sum{\mathrm{s}=1} \sigma^{(s)}\left\|W-W^{(s)}\right\|_{2}^{2}\right\} W(t+1)=argWmin{G(1:t)⋅W+λ1∥W∥1+λ221∥W∥22+21s=1∑σ(s) W−W(s) 22}
其中引入 ∥ W ∥ 2 2 不会影响稀疏性,同时会使解更加"光滑"。 其中引入\Vert W\Vert_2^2不会影响稀疏性,同时会使解更加"光滑"。 其中引入∥W∥22不会影响稀疏性,同时会使解更加"光滑"。

通过数学推导,FTRL有如下表达形式:
w i ( t + 1 ) = { 0 if ∣ z i ( t ) ∣ < λ 1 − ( λ 2 + ∑ s = 1 t σ ( s ) ) − 1 ( z i ( t ) − λ 1 sgn ⁡ ( z i ( t ) ) ) otherwise w_{i}^{(t+1)}=\left\{\begin{array}{ll} 0 & \text { if }\left|z_{i}^{(t)}\right|<\lambda_{1} \\ -\left(\lambda_{2}+\sum_{s=1}^{t} \sigma^{(s)}\right)^{-1}\left(z_{i}^{(t)}-\lambda_{1} \operatorname{sgn}\left(z_{i}^{(t)}\right)\right) & \text { otherwise } \end{array}\right. wi(t+1)=⎩ ⎨ ⎧0−(λ2+∑s=1tσ(s))−1(zi(t)−λ1sgn(zi(t))) if zi(t) <λ1 otherwise
Z ( t ) = G ( 1 : t ) − ∑ s = 1 t σ ( s ) W ( s ) Z^{(t)}=G^{(1: t)}-\sum_{s=1}^{t} \sigma^{(s)} W^{(s)} Z(t)=G(1:t)−s=1∑tσ(s)W(s)

##总结

本文简单梳理了在线学习中提升权重参数稀疏性的算法的思想,公式较为繁多。对其中的基础知识和公式推导感兴趣的小伙伴可以参考冯扬的《在线最优化求解》【1】,对于FTRL的工程实现感兴趣的小伙伴可以参阅H. Brendan McMahan 等人于2013发表的论文【2】 ,【3】是2011年发表的一篇关于FTRL和FOBOS, RDA比较的论文。

相关推荐
阿利同学1 分钟前
yolov8多任务模型-目标检测+车道线检测+可行驶区域检测-yolo多检测头代码+教程
人工智能·yolo·目标检测·计算机视觉·联系 qq1309399183·yolo多任务检测·多检测头检测
CV-King1 分钟前
计算机视觉硬件知识点整理(三):镜头
图像处理·人工智能·python·opencv·计算机视觉
AI大模型知识分享17 分钟前
Prompt最佳实践|指定输出的长度
人工智能·gpt·机器学习·语言模型·chatgpt·prompt·gpt-3
十有久诚29 分钟前
TaskRes: Task Residual for Tuning Vision-Language Models
人工智能·深度学习·提示学习·视觉语言模型
全云在线allcloudonline43 分钟前
微软 Azure AI 服务免费试用及申请:语音识别、文本转语音、基于视觉、语言处理、文档分析等10大场景
人工智能·microsoft·azure
Filotimo_43 分钟前
【自然语言处理】实验三:新冠病毒的FAQ问答系统
人工智能·经验分享·笔记·python·学习·自然语言处理·pycharm
标贝科技1 小时前
ChatGPT对话训练数据采集渠道有哪些
数据库·人工智能·机器学习·chatgpt
zhangfeng11331 小时前
rnn input_size hidden_size 分别是什么意思 ,人工智能 Python
人工智能·rnn·自然语言处理
PD我是你的真爱粉1 小时前
GPTo1论文详解
人工智能·深度学习
说私域1 小时前
构建有温度的用户关系:开源 AI 智能名片、链动 2+1 模式与 S2B2C 商城小程序的作用
人工智能·小程序