转载

广告点击率实时样本产生

实时样本

什么是样本

样本简单地讲就是用来机器学习的数据,本文所讲样本特指监督学习中的样本,即样本由特征和标签两部分组成。广告点击率预测中的特征主要有三部分,用户特征,广告特征,环境。举例说明,用户特征中有年龄,性别。广告特征中有广告 ID ,广告主 ID 。环境特征中有操作系统,联网类型,广告位等等。

什么是实时样本

实 时样本是相对批量样本的概念,批量样本一般是用来训练对实时性要求不高的模型,比如人脸识别,手写识别等。实时样本往往用在数据变化比较大的场景,点击率 预估就是一个场景,因为会不断有新广告等产生(因为现在的技术对于理解广告图片素材,并用来预估点击率还有一些距离,所以广告 ID 是一个重要特征),并且点击率也是随时间在变化的,比如双 11 ,电商广告的点击率就会高,休息日,游戏广告的点击率会高。使用实时样本的算法目标就是尽可能地掌握这些变化。

批量样本可能是一堆聚合的文件,而实时样本是一个个实时产生的数据,实时训练算法顺序取得这些样本,用来训练,更新模型。

标签

点击率预估问题中的标签是离散的,或是正例,即有广告曝光和点击行为,或负例,即只有曝光,没有点击行为。如果允许一次广告曝光有多次点击,那么标签就是连续的。在实际中,一次曝光的多次点击,最多只有一次会被视为有效点击,所以我们的标签是离散二值的。

曝光和点击会相距一段时间,也就是说只有等一段时间,才能知道样本是正例还是负例。一般来讲有两种选择。

1.        从曝光表中不断扫新数据,数据全部标为负例,从点击表中同时不断扫新数据,数据全部标为正例。这种方式追求速度,但数据的正确性有一定的问题,首先,很明显点击率是对不上了,本来应该是 CTR=Postive/(Positive+Negative) ,现在是 Positive/(Positive+Negative+Positive) ,这个问题倒不大,可以在预测时候修正( Calibration )回来,另一个问题却是无法消除的,这种方法最核心的假设就是各种特征组的点击率都差不多,我这里举一个例子来说明它带来影响,假设一个网页,只有在点了广告的情况下才能看内容,而且用户一般都会点广告后看内容,那这个广告位的点击率接近 100% ,但使用这种方法后这个广告位却是 50% 了,但可能这个广告位只占总流量很小的一部分且其它流量点击率很低,使用这种数据学习出来的模型对这个广告位预估点击率无法修正。

2.        关联正负例,通过曝光 ID 将曝光数据和点击数据关联起来(点击中也有曝光 ID ),等待一段时间后将关联的数据输出,这里的等待时间就是等待点击数据回流的时间。这种做法在实时性上有了一定的折扣,但更能保证数据的正确性。

等待时间

         有的点击可能在曝光几小时后才产生,如果要保证所有的点击都回流,会对实时性影响非常大。所以我们的实现的时候只会保证绝大部分点击回流就可以了。

         要确定等待时间需要多长,可以统计点击时间和对应的曝光时间的间隔,找到比如能回流 99% 点击的时间时隔,在广告点击率预估中,一般 X0 分钟就足够了。

容灾

         实 践中,会因为各种原因导致数据不正常,但最严重且很难监控的是点击数据或是曝光数据丢失。其实曝光和点击数据一起丢了,问题反而不太严重,最多就是模型不 更新。曝光或点击数据丢失往往是网络延时造成的,具体的现象就是曝光和点击丢了一部分,这会导致点击率高一些或是低一些,而对这种监控是比较难做的,因为 每天每小时的点击率都是在变化的,而且实时样本都是流式的,小样本上统计点击率波动很大,很难做到统一的监控。而通过上游进行监控也不太合适,比如曝光丢 了 0.1% ,影响其实不算大,要这些数据比不要还是会好一些。你可能会想:这丢数据总该是按比例丢的吧,如果没丢到 100% ,如果用 LR 算法那预测出来的值或是都偏高,或是都偏低,序是不变的,影响应该也不大。但在广告系统中不是点击率去排序的,而是按 eCPM ,它等于预估点击率 * 出价,简单地说就是预估出来的值不但要追求序的正确,而且要追求距的正确。

在 实践中我用了一种非常取巧的方法,先说一下背景,广点通排序分为两步,粗排序和精排序,这两步都会预估点击率,区别粗排序要预测的样本远多于精排序,所以 粗排序模型相对要简单一些。我们的数据主要用于粗排序,精排序没使用我们的数据,也就是我们的数据错了,不会影响精排序的结果。在从曝光和点击表中可以得 到精排序的结果,我通过统计精排序和样本点击率的差距,就可以发现是不是出问题了。你可能还会有疑问:如果那精排序如果也因为相同的原因错了呢?你怎么知 道他们用的是批量学习算法?这种情况虽然很少发生,但当然也不是不可能,为了防止这种情况发生,添加了对点击率绝对值的监控,如果明显高于是或低于同期点 击率,告警。

原文  http://quweiprotoss.blog.163.com/blog/static/40882883201611385422845
正文到此结束
Loading...