Online learning系列:从RDAFOBOS到FTRL

Posted luchi007

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Online learning系列:从RDAFOBOS到FTRL相关的知识,希望对你有一定的参考价值。

前言

在一般的机器学习任务中,往往是通过batch的训练方法进行离线训练,然后线上进行预测,通常离线模型更新的时间在1天以上,这就使得模型不能及时学到实时的特征;另一方面,如果要进行实时训练的话,需要特征尽量稀疏,因为大规模的机器学习往往伴随着大量的参数,如果做不到特征计量稀疏的话,实时预估时延就会很大,这个时候就要用到online learning的一些方法,其目的是在提高训练参数稀疏性的同时,也提高训练精度。

梯度下降法

最原始的也是最简单的参数更新的方法是梯度下降法,即:
W ( t + 1 ) = W t − η t ∗ ℓ W ( W t , Z ) W_(t+1) = W_t - \\eta_t *\\ell_W(W_t,Z) W(t+1)=WtηtW(Wt,Z)
当然这里可以加batch进行梯度更新,这种更新方法存在的问题就是很难产生稀疏的特征,不适合online learning的场景。

l1正则

在机器学习任务中,我们知道,可以加l1正则来使得特征变的稀疏,如:
W ( t + 1 ) = W t − η t ∗ ( ℓ W ( W t , Z ) + λ s g n ( W t ) ) W_(t+1) = W_t - \\eta_t *(\\ell_W(W_t,Z) + \\lambda sgn(W_t)) W(t+1)=Wtηt(W(Wt,Z)+λsgn(Wt))这样能保持参数更新尽量趋近0,这种方法可以一定程度上增大稀疏性

截断梯度法TG

梯度截断法是在l1的正则基础上提出的一种变体,其更新方式是:
W t + 1 = T 1 ( W t , η t ∗ ( ℓ W ( W t , Z ) , η t ∗ λ s g n ( W t ) ) W_t+1 = T_1(W_t, \\eta_t *(\\ell_W(W_t,Z),\\eta_t* \\lambda sgn(W_t)) Wt+1=T1(Wt,ηt(W(Wt,Z),ηtλsgn(Wt))其中 T 1 T_1 T1的表达式是
T 1 ( v , a , θ ) = m a x ( 0 , v − a ) i f v ∈ [ 0 , θ ] m i n ( 0 , v + a ) i f v i n [ − θ , 0 ] v o t h e r w i s e T_1(v,a,\\theta)=\\left\\ \\beginaligned & max(0,v- a) \\quad if \\quad v \\in [0,\\theta]\\\\ & min(0,v+a) \\quad if \\quad v in [-\\theta,0] \\\\ & v \\quad otherwise \\endaligned \\right. T1(v,a,θ)=max(0,va)ifv[0,θ]min(0,v+a)ifvin[θ,0]votherwise
TG和L1正则的对比图:

可以看出的是,TG比L1正则更加柔和了一点,但是这两种方法还是非常的“武断”和“粗糙”

Regularized Dual Averaging Algorithm(RDA)

这里就有人提出了新的在线学习参数更新方法,特征权重更新方式是: W t + 1 = a r g m i n w 1 t ∑ i = 1 t g i ⋅ w + ψ ( w ) + β t t h ( w ) W_t+1 = argmin_w\\ \\frac1t\\sum_i=1^tg_i \\cdot w+\\psi(w)+\\frac\\beta_tth_(w) \\ Wt+1=argminwt1i=1tgiw+ψ(w)+tβth(w)
其中 ψ ( w ) \\psi(w) ψ(w)是正则项, h w h_w hw是一个严格凸函数。

RDA的l1正则化

这里我们讨论RDA的l1正则化,即更新方式为:
W t + 1 = a r g m i n w 1 t ∑ i = 1 t g i ⋅ w + λ ∣ w ∣ + γ 2 t ∣ w ∣ 2 2 W_t+1 = argmin_w\\ \\frac1t\\sum_i=1^tg_i \\cdot w+\\lambda|w|+\\frac\\gamma2\\sqrtt|w|_2^2 \\ Wt+1=argminwt1i=1tgiw+λw+2t γw22
现在我们去求解这个更新值
g 1 : t ˉ = 1 t ∑ i = 1 t g i \\barg_1:t=\\frac1t\\sum_i=1^tg_i g1:tˉ=t1i=1tgi
则原式变为:
W t + 1 = a r g m i n w g 1 : t ˉ ⋅ w + λ ∣ w ∣ + γ 2 t ∣ w ∣ 2 2 W_t+1 = argmin_w\\\\barg_1:t \\cdot w+\\lambda|w|+\\frac\\gamma2\\sqrtt|w|_2^2 \\ Wt+1=argminwg以上是关于Online learning系列:从RDAFOBOS到FTRL的主要内容,如果未能解决你的问题,请参考以下文章

Online learning in higher education

在 Scikit learn 中处理 Passive Aggressive Online Learning 中的类不平衡

在线学习--online learning

在线学习和在线凸优化(online learning and online convex optimization)—FTL算法5

论文阅读|DeepWalk: Online Learning of Social Representations

推荐系统rank模块-Online Learning