CTR预估背景介绍
点击率预测是对每次广告的点击情况做出预测,可以判定这次为点击或不点击,也可以给出点击的概率,有时也称作pClick。广告中点击率预估需要给出精准的点击概率,A点击率0.3% , B点击率0.13%等,需要结合出价用于排序使用;推荐算法很多时候只需要得出一个最优的次序A>B>C即可。

在线学习
通过线上实时处理数据而进行模型训练,而不是传统模式,把所有数据都放到一起处理(Batch Learning),得到离线的最优解。LR-FTRL (Follow-the-regularized-Leader),Google在10年就提出了一些理论基础,在13年给出了Paper,并且带有FTRL的实现伪代码,在此之后,FTRL才大规模应用在工业界。
在线学习背后的理念是每个人的兴趣是 non-stationary 的,离线训练的模型在线上可能不能快速对用户最新的行为作出反应。为了解决这个问题,一种做法是加快模型的频率,比如原来一天更新一次,现在一个小时更新一次,这种做法有很明显的瓶颈,比如如果我们的时间窗设置的比较长,用一个月或者两个月数据来跑模型,则可能导致模型在更新间隙内完不成训练;另一种是增量训练模型,则增量时间窗的设置是个技术活,太短,很多曝光对应的点击还没有上来,导致训练数据的无效曝光比例偏高,如果太长,可能跟不上节奏;这也是在线学习的一个难点,在线学习一般也不会每一个回流数据立马更新模型,这会导致模型震荡频繁,攒一小段时间是个不错的选择,为此 facebook 的系统里有一个 online joiner 的组件来做曝光和点击的归约。
在线学习另外一个要重点解决的问题是学习率;离线训练的时候 sgd 往往使用一个公用的学习率η,但是在线学习这样做会带来问题的;因为样本分布不均衡,某些覆盖不是很高的特征对应的权重因为样本少得到的更新次数比较少,如果使用相同的学习率,则这些权重的收敛势必落后于覆盖率高的样本的特征对应的权重,尤其是有做学习率衰减的情况下;因此我们需要针对不同的权重来设置不同的学习率,做法也比较简单,基本思路是统计该维度样本数,多的衰减快点,少的衰减慢点以期能做到基本持平。

网友评论