谷歌点击率预估模型:FTRL算法小结

抽空拜读谷歌2013年发表的论文“Ad Click Prediction: a View from the Trenches”,进行一些简单的小结。

大型广告系统的成功需要很多相互协调的子系统和组件,而其中最基础的一个字系统,也是整个广告系统中最核心的功能之一,便是点击率预估系统。

根据环境和广告的类型没来估计用户有多大的可能性点击当前的广告。

2013年发表于KDD工业论文组

Google要处理的数据量很大,不管是样本数量还是样本的特征数量都是百亿级别的,所以选用什么样的算法至关重要。2013年,深度学习环境还没有完全成熟,Google科学家和工程师选用了LR这个传统而强大的线性算法

 

回顾:逻辑回归是要对二元分类问题进行建模,模型的核心是通过一组(可能是巨大的)特征以及所对应的参数来对目标的标签进行拟合。这个拟合过程是通过一个叫Sigmoid函数来完成的,使得线性特征以及参数的拟合能够非线性转换为二元标签。

普通逻辑回归不适应大规模广告点击率预估。原因有二:第一,数据量太大。传统的逻辑回归参数训练过程都依赖牛顿法或L-BFGS等算法。这些算法并不容易在大规模数据集上得以处理,第二,不容易得到稀疏解。

 

我们希望最终学习到的模型也是稀疏的,也就是对于单个数据点来说,仅有少量特征是被激活的。传统算法,甚至包括一些传统在线LR都并不能很好解决答案的稀疏性问题。

 

本文提出FTRL(Follow the Regularized Leader)的在线逻辑回归算法来解决上述问题。FTRL是一种在线算法,因此算法的核心就是模型的参数会在每一个数据点进行更新(类似SGD)。

 

FTRL对传统逻辑回归的目标函数进行了改写,分为三个部分:

  1. 用过去所有的剃度值来重新赋权所有参数值
  2. 当前最新的参数值尽可能并不偏差之前所有参数值
  3. 希望当前的参数值能够有稀疏的解(通过L1来直接约束)

从三部分目标函数来看,这个算法技能让参数变化符合数据规律(从梯度控制),又能让参数不至于偏离过去已有的数值,,从而整个参数不会随着一些异常的数据点而发生剧烈变化。

 

FTRL另一个新颖的地方,就是对每一个特征维度的学习速率都有一个动态的自动调整过程,传统的SGD算法或是简单在线LR都没有这个能力,,造成传统算法需要花很长时间来手工调节学习速率等参数

同时,每个特征维度上特征数值的差异,造成没法对所有特征选取统一的学习速率。而FTRL带来的则是对每一个维度特征的动态学习速率,一句解决了手动调整学习算法的学习速率问题。简单说来,学习速率是根据每一个维度目前所有梯度的平方和倒数进行调整,这个平方和越大,则学习速率越慢。

 

系统调优:

很明显,仅仅有一个比较优化的在线逻辑回归算法并不够,依然很难得到最好效果,还有很多细小的系统调优过程。

布隆过滤器:来动态决定某一个特征维度是否需要加入到模型中。虽然这个方法是概率性的,但是发生几率很小。通过加入布隆过滤器后,模型AUC仅仅降低了0.008%,但是内存消耗却减少了60%。可见大部分数据特征仅仅存在于少数数据中

文章还介绍了一系列方法来减少内存消耗。比如利用更加紧凑的存储格式么不是简单的32位或64位的浮点数存储。作者们利用了一种叫q2.13的格式,更加紧凑的存储节省了额外75%的内存空间

此外,FTRL原则上计算每一步更新时,,需要存储过去所有梯度信息以及梯度平方和信息。文章介绍了一种非常粗略的估计形式,使得信息可以不必完全存储,让内存进一步降低。

另外文章对样本不平衡问题也提出了注意事项,对负样本进行采样可能对系统参数估计带来偏差,同时文章也提出了需要对模型的最后预测进行调整,使得模型的输出可以和历史的真实点击率分布相近。这一点对于部分利用CPC计费的广告系统来说十分关键,因为可能因为系统性偏差,使得预测数值整体有偏,带来错误计费

失败的实验:

Hashing Trick: Google工程师们发现,特征经过Hashing之后并没有明显降低内存而且模型的精准度有所下降,同时哈希也让模型变得不可解释,于是Google工程师觉得没有必要对特征进行hash

Dropout:在Google实验数据上没有显著效果

对参数归一化:让参数能够在一定范围内不随便波动,但也没有太大作用,模型效果还经常降低

总结:

核心要点有:

  1. FTRL的模型创新
  2. 模型如何应用到工业界环境中,特别是如何对内存的消耗进行调优
  3. Google的一系列失败经验总结

本文是一篇难得一见的工业级科技论文分享,从KDD工业组的角度来说,十分有借鉴意义;从业界贡献来说,除了广告之外,FTRL也被广泛应用到推荐系统等领域。

 

猜你喜欢

转载自blog.csdn.net/lyx_yuxiong/article/details/81237272