文/钟小勇
(携程计算机技术(上海)有限公司 上海市 200335)
众所周知,广告预期收益很大程度上取决于搜索广告排序准则,具体地讲,表现在广告质量度和广告竞价上。业界量化广告质量度最常用的办法是通过广告点击率。点击率(CTR,Click Through Rate)代表着人们点击广告的概率,CTR 预估是按照已有的广告信息以及对应的上下文来预估人们浏览该广告的可能性。因此,广告排序最主要的工序是预估点击率,因为它关系着搜索引擎业务收入以及是否可以给出更符合用户心理的信息,更进一步讲,CTR 还能够作为广告进一步投放的参考标准,总之广告投放效果很大程度上取决于CTR,是实时竞价算法(Real Time Bidding,RTB)的重要因素之一。
广告点击率预测模型经历了传统的机器学习模型与深度学习模型的演变。传统的机器学习方法主要分为单一模型预测与模型组合预测两部分。在单一模型中,逻辑回归、决策树等是较为常见的单一模型。相关文献使用广告特征、关键字与用户特征,并结合逻辑回归模型来预测广告点击率,并研究了不同关键字对广告点击状况的影响。有关文献基于充分的历史广告点击数据使用决策树等模型实现广告点击率预测。另外,还有其它一些机器学习模型比如:支持向量机模型等运用于广告点击率预测,而且效果较好。然而这些传统的机器学习模型更依赖人工对特征的处理,在模型使用前期需要大量的人工特征工程。
近期,伴随深度学习的热潮,越来越多的人们将深度学习应用于广告点击率预测中。百度公司研究人员将因子分解机与深度神经网络相结合用于预估广告点击率的FNN 模型。谷歌公司研究人员推出Wide&Deep 模型以处理点击率预估问题,在Wide&Deep 的Embedding 层后加入特征交叉功能形成的PNN 网络效果不错。
本文使用卷积神经网络提取广告数据中高影响力的特征,长短期记忆(LSTM,Long Short Term Memory)模型则用于分类,基于此提出了一种基于卷积-LSTM 结合的广告点击率预测模型与算法。
(1)第一步:特征提取,运用特征处理手段从原始数据中获取影响力高的特征,并划分为训练数据与测试数据两大部分。
(2)第二步:创建模型并输入训练集,使用优化方法训练模型。
(3)第三步:将测试数据输入训练完成的模型进行预测,平台按照预测得到的点击率来排序,从而得出广告展示区域。广告点击率预测流程如图1 所示。
逻辑回归作为一种典型的分类模型,非常适合处理分类问题,比如二分类甚至多分类,内部可能带有线性或非线性决策函数。线性逻辑回归为:
通过扩展x 将x2 包含进来,可以得到逻辑回归的非线性决策边界:
图1:点击率预测流程
图2:LSTM 单元模块内部结构
图3:卷积-LSTM 组合神经网络层组织
图4:参数对比实验结果
其中,w 表示权值向量;x 表示输入;b 表示偏置。
卷积神经网络(CNN,Convolutional Neural Networks)被认为是一个经典的前馈神经网络。除了输入层、输出层之间,大部分情况下卷积层可能作为它的隐藏层,甚至包括池化层与全连接层。一般情况下,会有多个卷积层和池化层,并且交替存在。在卷积神经网络中,特征图(feature map)由多个神经元构成,卷积核连接上一层神经元的输出,从而衍生下一个神经元。卷积核是一个由使用者自由定义大小的权重矩阵,通常作用于同一个图像差异区域的小范围感知域上,提取出每个小区域感知域的特征,以此构造出下一层神经元的输入。卷积层将输入特征进行卷积。池化层按照指定的池化规则对输入特征进行再次提取。
长短期记忆网络作为一个时间递归神经网络。输入门、输出门和自由状态等构成了LSTM 神经元,如图2 所示。
卷积-LSTM 混合神经网络一共有三层。输入层:将原始特征排重、数据清理后开始独立向量编码(One-Hot Encoder),让其映射到t 维空间中,t 表示编码后的向量维度,然后获取索引值生成新的特征。输出层的作用是将卷积网络的结果输入给LSTM,从而可以进行分类和得到预测值,如图3 所示。
然而,老百姓起初并不理解。甚至,“封禁令”一度引起不小的地震。科左后旗一位放了一辈子羊的羊倌,听到封禁消息时,气得把烟斗一扔,从炕上跳了起来,指着干部就骂:“你们这些当官的,全是吃饱了撑的。科尔沁草原自古就是放羊的地儿,不是圈羊的地儿。我爷爷那辈放羊,我爹爹那辈放羊,轮到我这辈怎么就成了不能放羊了呢?”
本文提出了一种模型训练算法,如表1 所示。
本文采用了Kaggle 比赛中Avazu 公司在2014年公开的开源数据集。从中选出了1 百万条数据作为训练集。每条数据都有20 个维度,包含10 个连续性特征,其中有9 个是已经脱敏处理的)和9 个类别特征。样本标签的离散值是0 或1,分别代表负向样本与正向样本。原始训练数据中,正样本比例与抽取数据中正样本比例较为接近,这样做的目的是不影响实验结果。
本文采用了两种算法指标来检验分析模型。
(1)AUC(Area Under Curve)。AUC 的大小与ROC(Receiver Operating Characteristics)曲线下的覆盖面大小有关,ROC 曲线的横轴表示假正率(False Positive Rate),纵轴表示真正率(True Positive Rate),按阈值的取值差异可得到不同的ROC 曲线。AUC 的取值在0 到1 之间,AUC 的值越大,分类效果越佳。
(2)对数损失(Logarithmic Loss)。对数损失的值与分类器效果成反比,对数损失值越小,分类器效果越好。
通常来说,特征空间的大小取决于神经网络的层数和计算图中神经元的多少,越多的层和越多的神经元,能够表达的特征空间也就越大,学习过程也就越复杂,但运行时间和内存消耗也会越大,而且有可能会出现过拟合的问题,因此最优结果很大程度上取决于参数选择是否合理。为了最优化模型结果,本文做了相当多的参数调节。结果发现,CNN 输出向量的维度大小、LSTM 层数、模型学习率的设置、选取的优化方法是否合适等是主要影响因素。输入不同的参数,反复迭代优化,最终计算得出最优的AUC 值,如图4 所示。
通过上述实验比对,卷积-LSTM 组合神经网络模型的核心参数如表2 所示。
表1:卷积-LSTM 组合算法
表2:卷积-LSTM 组合神经网络模型初始参数
表3:单一结构的CNN 模型与LSTM 模型参数设置
表4:实验环境配置
表5:实验运行结果
本文的机器配置如表4 所示。
在相同的特征处理环境下,将训练集和测试集按8:1 的比例切割,模型每从训练集中学习完一次,便将测试集输入做预测和分类,反复迭代30 次后取最优AUC 值和log loss 值,并统计迭代过程使用的总时间。
本文一共使用了6 种模型进行点击率预测,分别有深层和浅层模型。运行结果如表5 所示。其中逻辑回归模型用LR 表示;FM模型是以矩阵分解为核心的机器学习算法,它的特点是能够高效地学习特征之间的联系,擅长分析高维度稀疏数据;NN 是一种常规的神经网络模型;CNN 代表一种卷积神经网络;CNN+LSTM 代表本文提出的卷积-LSTM 组合的深度学习网络模型。
本文从几个方面分析了上述实验结果,分别如下:
(1)从模型层数来看,深层模型在预测方面的效果高于以往的浅层模型。浅层模型在第9 次迭代之后,AUC 值和log loss 值趋于收敛,FM 模型的预测准确度高于LR 模型;与普通NN 模型相比,CNN 与LSTM 的预测效果显然更好。
(2)比较AUC 值与log loss 值,卷积-LSTM 组合神经网络模型在这两方面的指标表现都比单一结构的CNN 模型与LSTM 模型要好。与CNN 模型对比,其AUC 值提高了1.38%,log loss 值降低了0.29%;与LSTM 模型对比,其AUC 值提高了2.61%,log loss 值降低了1.38%。
(3)从时间上看,由于卷积-LSTM 组合神经网络模型的层数相对多一点,复杂度比较高,其训练总共的时长相比单一层次结构的神经网络模型,会更多一些。
本文通过充分研究和比较现有的线上搜索广告集合,分析得出了互异特征之间相关性强,人工提取特征费时费力等不足,最后分析了若干种浅层预测模型与深层预测模型的优缺点,研究出了一种新的深度学习模型卷积-LSTM 混合神经网络模型。实验表明:与传统的广告点击率预测模型相比,卷积-LSTM 组合神经网络模型效果更明显。通过卷积核移动提取关键性特征,降低了人力开销,又较好地提升了模型效率;使用LSTM 神经网络预测广告点击率,提升了分类精度。接下来,本文将继续围绕特征、模型,从工程化方向做迭代,以期达到更好的提升。