前言
广告CTR预估,也就是点击率预估,是广告系统中十分重要的一个环节,对广告的排序效果和收入有着直接的影响。
如果想要深入一些了解CTR预估,可以参考这里:机器知道你会点广告:写给普通人的CTR预估科普。
CTR预估系统的实现
1、最简单的方式是统计一个广告的历史点击率,并把这个值当作预估点击率,显而易见,这种方式有效但是也有很大的局限性。
2、更进一步,我们可以统计广告相关的统计量,并通过一定的规则运算得出一个数值作为预估点击率,这种方式也有着明显的缺点。
3、机器学习,这是现在最有效,应用最为广泛的一种方式,其原理是使用历史请求训练模型,并通过模型预估点击率,而利用深度学习搭建CTR预估系统,是当前的诸多方向中效果最好,最有发展前景的。
一个典型的机器学习系统架构如下:
基于深度学习的CTR预估系统
深度学习也是机器学习的一种,基于深度学习的模型实际上是一个大的神经网络,称作DNN,参考图1,这个模型输入的特征需要通过某种方式转为向量,我们把这个过程叫做Embedding,由于计算量和模型效果等因素,基于深度学习的CTR预估,其关键就在于Embedding。
Embedding算法简介
FM与FNN
FM是一种机器学习算法,这个算法的核心正是将特征转为向量,在深度学习兴起之后,有人将FM与DNN结合起来,形成了FNN的结构。
Word2Vec
Word2Vec是一个用于产生词向量的模型,在自然语言处理中应用广泛,我们将Word2Vec迁移应用到CTR预估模型中,也取得了良好的效果。
下面简单介绍我们搭建的CTR预估系统,分为算法和工程两部分。
算法架构
总体架构
可以看出,总体架构与FNN相似,在此基础上我们对Embedding的方式做了一些更多的探索,从而提取到更多的特征,并且可以在更多的场景下使用。
两种Embedding的方式
使用FM进行Embedding是FNN的核心思想,我们在此基础上引入了Word2Vec与LDA,并将FM输出的隐向量与Word2Vec输出的词向量进行全连接。
一些实践经验
1、单品广告可以通过Item2Vec,也就是Word2Vec的一个特例进行Embedding。
2、搜索广告可以提取中心词,并将多个中心词对应的词向量计算平均值。
工程架构
在工程设计上,我们尽可能保持了整体架构上的简单,多处复用了相同的特征库和编码器,减少了开发的成本,并且避免了多种实现导致的一致性问题。
小结
通过对算法和架构上的改进,我们在算法和工程上都获得了良好的扩展性。
算法上可以方便地引入更多的Embedding方式,例如应用CNN与RNN。
工程上可以方便地将CTR预估扩展到多种场景,也可以更进一步,应用于更多指标的预测。