点击率预测
从广告索引中我们得到很多的广告候选,这些广告从逻辑上都满足广告主的定向条件,即广告主定向条件的DNF范式,在竞价广告系统中,我们要选择一个最优的方案,最优的广告投送出来,一般最优的广告是通过eCpm进行排序,用广义第二高价进行排序,进行收费的模式。在CPC环境中eCpm=bid * ctr,那么对CTR的预测就是竞价广告系统中最重要的一个部分。
每个公司都对点击率预测有不同的做法,做法也非常多,这里只描述一下人人对这个问题的理解和看法。
广告点击预测概率模型:
点击的概率可以很自然地用条件概率来表达,given a(广告),u(用户), c(页面),p of click。我们可以用统计来预测点击率,我个人计为Regression比Ranking的方法更合适,我们知道在搜索中,Ranking的方法被广泛地研究,利用机器学习的方法得到更好的排序结果。但我们知道广告的排序是根据eCPM,所以,广告的排序并不能仅考虑CTR,因为eCPM还要考虑Bid,换言之,对广告网络而言,竞价广告系统需要准确地估计CTR。,如果是对DSP而言,对点击率的预测要求就更高了,因为DSP需要同时估计CTR和点击价值,CTR 和点击价值决定了DSP出价,即是向Exchange报的出价。
新广告的Cold-Start问题也是一个比较困难的问题,Cold-Start在推荐系统中研究的比较多。新的广告在竞价广告系统中非常多,在合约式广告中新广告数量不大,因为一个广告的投放时间区间都比较长,所以在合约式广告中可以通过统计可以比较好的解决新广告的问题。而在竞价广告中,时时刻刻都有新的广告主,新的广告产生,对于这些新的广告,并没有太多的历史数据来估计其效果,但我们可以用广告层级结构(creative, solution, campaign, advertise),以及广告标签对新广告点击率做估计。但这种方式也有其弱点,比如google有像amazon这种广告主,amazon对它所有的商品都进行广告投放,所以这种情况下,一个广告的点击率对另一个广告的点击率并没有指导价值。
竞价广告系统还要捕获点击率的动态特征,因为一个用户是否愿意对某个广告产生点击行为,这件事情是快速变化的,是根据他购物的阶段,和他瞬时的兴趣。这一点对显示广告比对搜索广告更为挑战,显示广告完全是需要捕获用户的兴趣,对他推送广告,而在搜索广告中,搜索词已经表明了用户的兴趣,挑战就少的多了。从动态特征上讲,我们要快速地调整特征,从特征上捕获用户兴趣,在模型上,我们通过在线学习,快速地调整模型,即学习新的参数。特征和模型,这两者是对偶的,比如,如果特征不变,那么模型就要变化。
逻辑回归(Logistic Regression)
Click的概率是服从Bi-nominal分布的,它的取值只能是0或1,我们很自然的想法就是用Logistic Regression模型。虽然有很多其它更Fancy的算法,但工程中常常使用的恰是这种简单的模型。
其中x是广告的n维特征矢量,w是最后模型学习到的参数,可以认为wTx是一个线性函数。一般选择Sigmoid函数进行挤压。
我下面分享两个视角,视角1,Logistic Regression它是属于Generalized linear model(广义线性模型),我们知道线性模型在数学中被研究最多的模型,但实际中因变量不一定是线性的,而Logistic Regression是广义线性模型在Binomial error情形的特例。视角2:Logistic Regression为Maximum entropy model在类数目等于2情形的特例。