您的位置:首页 > 其它

在线学习算法FTRL-Proximal原理

2016-04-23 17:25 543 查看
1.背景

Follow The Regularized Leader Proximal,简称FTRL,由Google公司提出。由于FTRL收敛速度快、能产生稀疏解等优势,FTRL在计算广告领域的重要性日益凸显。

2.回顾SGD

可以参考文章利用SGD方法训练FM模型 地址

定义:

模型参数:


第t个样本:


自定义Loss Function

然后可以利用随机梯度下降(SGD)得到参数更新值:


进行迭代:


其中,

是learning rate(学习速率,也就是步长)。

这种迭代方式够简单,但不够好,也不产生稀疏解。

3.Follow The Leader(FTR)

FTR是FTRL的前身,每次找到让之前所有损失函数之和最小的参数

算法流程

随机初始化

(实验证明随机初始化比直接赋值效果更好)

for t in 1,2,…,n

(1)得到损失函数


(2)更新


4.Follow The Regularized Leader(FTLR)

FTLR在FTR上加了一个正则项

Google的原文是这样描述的:“Like Stochastic Gradient Descent, but much sparser models.”

(1)推导



其中


式中第一项是对损失函数的贡献的一个估计,第二项是控制w(也就是model)在每次迭代中变化不要太大,第三项代表L1正则(获得稀疏解),

表示学习速率。

学习速率可以通过超参数自适应学习


(2)进一步化简

这个优化问题看起来比较难解,因为看起来要存储迭代过程产生过的所有model参数。实际上,经过巧妙的处理,只要为model参数x的每个系数存一个数就可以了。

最终可以化简为


令梯度为0,得到解析解



其中,


对于上面的迭代式,如果

= 0,同时学习率η取一个常数,这个迭代过程就跟SGD是一致的


(3)算法流程

注:此流程中将自适应学习速率中超参

设为0




5.实际工程Tip

(1)使用正负样本的数目来计算梯度的和(所有的model具有同样的N和P)



(2)Subsampling Training Data

    1)在实际中,CTR远小于50%,所以正样本更加有价值。通过对训练数据集进行subsampling,可以大大减小训练数据集的大小

    2)正样本全部采(至少有一个广告被点击的query数据),负样本使用一个比例r采样(完全没有广告被点击的query数据)。但是直接在这种采样上进行训练,会导致比较大的biased prediction

    3)解决办法:训练的时候,对样本再乘一个权重。权重直接乘到loss上面,从而梯度也会乘以这个权重。

    


    先采样减少负样本数目,在训练的时候再用权重弥补负样本,从而控制P(Y=1)的count。

参考

(1) Ad Click Prediction: a View from the Trenches.H. Brendan McMahan, Gary Holt, D. Sculley et al

(2)美团技术团队《Online Learning算法理论与实践》地址
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: