概述
GBDT算法是业界比较好用筛选特征的算法,在线学习考虑效率和数据量,经常用GBDT离线筛选特征,输入到在线模型进行实时训练,如今比较好用的方法是GBDT+LR,而FTRL是另外一种很高效的算法,与其类似的有OGD,FOBOS,RDA等,下面将逐一介绍原理以及应用的案例。
线上模型
点击率预估(CTR)问题是计算广告中非常重要的模块,通过预估用户对广告的点击概率来对广告进行排序,进而提升广告效果和收益效率。对于大规模的在线预测模型,不仅要考虑大的数据量带来的处理效率的问题,还要考虑数据的稀疏性对于模型拟合带来的影响。
经典的LR模型主要通过sigmoid函数,将线性拟合结果转化为概率,通过梯度下降(GD)对最大似然概率(loss函数)的求解最终得到参数的估计值。梯度下降法能够保证精度,要想预防过拟合问题一般会加上正则项,L1相对于L2正则能够产生更系数的参数(why?)
在线优化算法
在线学习算法的特点是:每来一个训练样本,就用该样本产生的loss和梯度对模型迭代一次,在线学习算法需要特殊关注模型鲁棒性和稀疏性,由于样本是一个一个到来,参数可能会因为训练样本不足导致过拟合,因此需要算法重点解决模型系数性的问题。对此,业界有以下几种算法从不同角度解决系数问题:
L1正则法
对于L1正则(正则推导),模型权重更新方式为
模型稀疏性控制参数 λ λ 会将接近0的参数趋近于0
简单截断法
相对于L1正则,属于简单粗暴的方法,直接将不满足阈值的系数设置为0,。以k为窗口,如果t/k不为整数时,采用标准的SGD进行优化,否则采用如下方法:
通过参数 θ θ 控制模型稀疏性( define)
梯度截断法TG
在简单截断法的基础上提出了改进: