在线学习算法FTRL-Proximal原理

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的前身,每次找到让之前所有损失函数之和最小的参数
算法流程

  1. 随机初始化(实验证明随机初始化比直接赋值效果更好)
  2. 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正则(获得稀疏解),表示学习速率。

学习速率可以通过超参数自适应学习在线学习算法FTRL-Proximal原理_第1张图片

(2)进一步化简

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

最终可以化简为

令梯度为0,得到解析解

其中,

对于上面的迭代式,如果 = 0,同时学习率η取一个常数,这个迭代过程就跟SGD是一致的

(3)算法流程
注:此流程中将自适应学习速率中超参设为0
在线学习算法FTRL-Proximal原理_第2张图片

5.实际工程Tip

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

在线学习算法FTRL-Proximal原理_第3张图片

(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算法理论与实践》地址

你可能感兴趣的:(计算广告)