为什么LR可以用来做CTR预估?
把被点击的样本当成正例,把未点击的样本当成负例,那么样本的ctr实际上就是样本为正例的概率,LR可以输出样本为正例的概率,所以可以用来解决这类问题,另外LR相比于其他模型有求解简单、可解释强的优点,这也是工业界所看重的。(思考未点击的样本一定是负样本吗?是否可以用PU learning求解。PU 学习,是一种半监督的二元分类模型,通过标注过的正样本和大量未标注的样本训练出一个二元分类器。)
CTR预测误差的影响
在曝光数很少的情况下,如何尽可能降低CTR预测不准带来的负面影响。那我们就分析一下把CTR估计高和估计低分别有哪些负面影响。如果把CTR估计的过高,那么ECPM也会被计算的偏高,所以这个广告就会出现在它原本无法占有的很好的广告位上,造成曝光数的浪费。但这种情况并不会持续很久,因为处于较好的广告位会让该广告短时间内积累更多的曝光,随着曝光数的增加对该广告的CTR估计会越来越准,直到之前预估的较高的CTR被慢慢修正趋近于其真实CTR。那么,如果把CTR估计的过低会有什么负面影响呢?很容易推断该广告的ECPM会偏低,它会被放在更差的位置上,导致起积累曝光数据的速度变慢,甚至无法出现在任何广告位上。因为广告是具有时效性的,在起步阶段对CTR较低的预估很可能会导致该条广告永久的沉溺,无法创造任何价值。综上所述,结论一目了然,在CTR无法准确预估的情况下,把CTR估计高的负面影响远小于把CTR估计低产生的负面影响。
注:
ECPM(effective cost per mille)指的是每一千次展示可以获得的广告收入
CTR预估是如何进行的?
至少有三个特征决定了一个广告的点击率——广告主行业、用户的年龄、用户的性别,事实上,在实际的广告系统中,有无数的因素决定了广告的点击率,我们把这些因素主要分成3类——
第一是广告主侧,比如广告创意、广告的表现形式、广告主行业等,一个劳斯莱斯的广告和一个可口可乐的广告点击率肯定有天壤之别。
第二是用户侧,如人群属性,以上的案例是年龄和性别,事实上,决定创意的因素人群属性极其多——年龄、性别、地域、手机型号、WiFi环境、兴趣…
第三是广告平台侧,比如不同的广告位、投放时间、流量分配机制、频次控制策略等。
这些决定因素在CTR预估中被称之为特征,而CTR预估的第一步就是“特征工程”,即把这些特征找到并数据化。
特征工程是一件复杂的工程,光判断不同特征能否对CTR产生影响就是一个浩大的工程,特征工程的攻城狮们第一步得列出来不同的特征可能对CTR产生影响,这有时候靠直觉,有时候靠经验,
确定了特征之后就需要对这些特征进行处理——即把特征数据化,比如把所有的特征变成0和1的二值化,把连续的特征离散化,把特征的值平滑化、把多个特征向量化…
以上这一段看不懂?看不懂没关系,你只需要明白,所有的这些特征都会被攻城狮们编码变成一串可计算的数组就行,特征工程是一项重要的基础工作,像今日头条、百度这样的广告平台都有一个庞大的团队来做特征工程的工作。
好,特征工程完成之后就开始建立模型了,很多同学看到“模型”二字就开始皱眉头了,没关系,你可以这样理解模型:
模型就是一个黑盒子,在盒子的一方我们输入一大堆参数,盒子的另一端就会输入一个CTR的值。
比如我们输入这样的参数:一个高跟鞋广告主、投放给北京地区、年龄20-30岁、对财经感兴趣的女性用户,在周末投放在微信的朋友圈第三位…请给出一个CTR的值。模型就会根据不同特征的值计算出一个值。
好,接下来的一个问题,如何评估CTR预估的效果?工程师们会有特定的指标去衡量效果,对于非技术同学,有人会直观地说,那当然是看CTR有没有变高啊:
正确预估CTR不就是为了把真正高CTR的广告挑出并展示出来么,错误地预估——把高的CTR低估或把低的CTR高估都会让高的CTR不会排在最前面,从而会降低CTR。
这个说法在推荐系统中是成立的,但在广告系统里是不准确的,因为广告的排序不仅仅是CTR排序,它还综合了出价进行排序,即ECPM进行排序,有时候CTR预估准确,反而(实际)CTR会降,