ftrl学习之路

来源:互联网 发布:淘宝客优惠券发送软件 编辑:程序博客网 时间:2024/04/27 20:02


统计学习方法有三要素:模型、策略、算法,下面就这三要素分别介绍以引出ftrl(自己学习琢磨的,如有错误,感谢您的指出!)算法。

1.       模型

首先介绍几个定义。

定义1 回归。所谓回归,就是根据已有的样本来估计待定的参数。

举例(来自网络):房价(Y)与面积(x1)、容积率(x2)、区域均价(x3)、小区绿化程度(x4)、距离地铁(x5)的关系。





根据已标记且抽取特征的训练样本,可以估算值。那么问题来了,如何确定值以使得估算ctr与实际值的误差达到最小,即如何判断LR模型的优劣?一般采用LogisticLoss来评判,即对第t个样本的概率求负对数。



我的推导过程如下:

 

2.       策略

实际的互联网广告应用需要的是快速地进行model的更新。为了保证model的快速更新,训练样本是一条一条的过来的,每来一条样本,则对model进行一次迭代,从而保证model的更新速度。这种方法称为OGD(online gradient descend)。

在应用时,前端引擎产生AS(advance search),然后将其分解成多个BS(base search),根据BS从广告库中获得广告列表,然后利用模型计算每条广告的点击率,将所有的广告依据rank=ctr*bid进行排名,选取topK进行展示。在线学习的任务就是学习model的各个维度。

那么如何根据第t个样本来更新model系数用以预估第t+1个样本的点击概率?原始的OGD使用下面的迭代公式来达到要求:



其中为非增的学习率,这种迭代方法比较简单,但是不够好,不产生稀疏解。

ftrl-proximal算法是将OGD的迭代方式改变成为一个优化问题,优化公式如下:



式(2.2)中的右边括号每一项都有各自的意义,第一项是对损失函数的一个估计,第二项是控制W在每一次迭代过程中不要变化太大,第三项代表L1正则。

式(2.2)看起来比较难解,感觉需要存储第1~t个样本迭代所产生model的系数。其实,经过巧妙的处理,只需要存储一个系数向量就行了。

上面的优化问题可转换为:




3.       算法

算法流程为:

 

参考:

[1] http://blog.csdn.net/mytestmy/article/details/18980163

[2] Ad ClickPrediction: a View from the Trenches.H. Brendan McMahan, Gary Holt, D. Sculleyet al.

 

0 0
原创粉丝点击