百度推广DAP:解析海外广告平台技术策略

近几年,移动互联网在全世界范围内呈爆发式增长,人们在移动设备上的停留时间越来越长,应用也越来越丰富,随之而来的就是移动广告市场的快速持续增长。

在广告主和用户均较少的情况下,运营人工挑选或者通过热度排序即可达到较好的效果。但是随着广告主与用户的增长,在简单排序不能很好的匹配用户和广告的时候,如何能为用户匹配最佳广告就成了广告平台提升变现效率的关键问题,而机器学习算法与变现策略就成了解决这个关键问题的核心引擎。在移动广告领域,我们能获得相比与PC端更丰富的用户信息,例如用户的位置、行为、习惯等,这些用户信息都能帮助机器学习算法更好的刻画一个用户,并且更加精准的为用户推荐适合用户当前场景的广告,从而大幅提高用户点击、转化的意愿。

算法策略架构

广告策略算法本质上是一个转化率预估的系统,需要预估用户从看到广告到真正产生收益所需要的一系列转化行为,可以使用LR、GBDT等多种类型的算法。

上图显示了一个广告平台算法策略的核心模块架构。下面会详细阐述流程中的各个节点。

·数据样本:

样本主要来源于用户手机端对于广告的展示和点击等的反馈数据。一般用户反馈的数据中都会有一部分噪音,噪音数据并不能代表用户的真实意图,需要剔除,避免异常点对模型产生影响。数据源对于整体框架的主要影响因素就是实时性,数据源的实时性越高,模型对于用户反馈的调整就越及时,效果也就越好。机器学习算法的训练样本需要从数据源中抽取,通常用户对于广告的反馈数据中,正负样本比例相差悬殊,这样不利于模型逼近最优解,需要对正负样本进行一定的选择。

·特征:

在机器学习算法架构中,特征是非常重要的一环。在移动广告领域,常用的特征有3类:第一类是广告本身的包体大小、配图、广告类型、Google Play评分等广告特征;第二类是 DMP提供的用户年龄、性别、喜好等用户画像特征;第三类是时间段、网络环境、手机型号等场景特征。这些特征的抽取、挑选与组合调优对于提升模型效果非常明显,通常可以选用GBDT等算法进行一层特征的挑选组合以后,再交给后续的LR等简单模型进行使用。目前比较火的深度学习算法,也主要是解决了让算法自动抽取隐藏层特征组合的问题,能够从特征中检测复杂的互相作用关系。

·模型训练:

模型训练主要使用的是百度内部的大规模分布式机器学习平台BML,进行多种模型(LR、GBDT、DNN等)选择和分布式训练。开源的工具中也有很多效果较好的,同样能达到模型训练的目的。

·评估与测试:

线下评估模型或者特征效果可以有多种评估标准:准确率、召回率、RMSE、MAE、MSE、AUC等等,可以适当选择一种或几种综合来评估。但是线下的评估不能完全代表线上的效果,最终的标准还是线上的检验,需要方便的线上AB-TEST测试模块进行效果验证。

·线上应用:

有了模型以后,需要有线上的server服务,对SSP端过来的用户请求,进行广告的实时预估打分,针对广告打分进行排序,返回给客户端进行广告展现。

上面介绍了算法策略平台的流程与各个节点,其中一些节点例如数据样本筛选、特征工程等方向的优化,会对最终线上广告的转化率变化产生显著的影响。百度DAP平台也在算法策略的调优上积累了一些经验,下面就跟大家分享一些百度DAP平台在算法策略调优方面的经验与收获。

算法策略优化

1、样本选择优化

当正负样本差距过大时,需要进行样本选择。一般的情况都是负样本占比过大,如果不进行样本选择,那么训练出来的模型就会倾向于将所有的样本判负。样本选择通常的做法是负样本随机抽样,但是百度DAP平台在做模型的样本选择的优化实践的过程中发现对有收益用户的负样本进行抽样效果更好,即对有收益用户所产生的负样本均保留或者按比例保留,例如只保留有过点击的用户的展示行为,剔除其他负样本,这样可以还原一个用户本身的行为过程,数据也表明这种样本选择方式效果更好。

2、连续特征离散化

对于逻辑回归这种简单算法模型连续特征的表达能力有限,非常依赖于特征的离散化与组合,以常见的连续特征广告的历史CTR为例,CTR的概率密度曲线一般均符合高斯分布。如下图:

如图所示,CTR作为一个连续特征,在不同位置的概率密度相差是非常大的,0.2%和0.25%之间的差别和1.6%和1.65%之间的差别完全不在一个数量级上,所以需要把CTR这个连续特征给离散化了。离散化的方式可以使用等频离散化或者根据经验做离散的划分。

3、广告反馈数据贝叶斯平滑

在预估广告的转化效果时常会用到广告CTR、转化率等连续数据,目前常用的获取方式是直接计算每条广告的历史CTR,这样会存在一个问题,就是当有一些广告反馈数据较少时,统计出来的历史CTR是不准确的。产生这种问题的原因是投放量太少,数据有偏,所以需要通过先验数据来平滑不准确的条件概率才能得到较为准确的后验数据,这种方法叫做贝叶斯平滑。常用的方法是在展示数和点击数上面各加一个合适的常数,降低低投放量带来的不准确性,使其接近其真实的CTR。常数值的确定可以根据两个假设来迭代:假设一,所有的广告有一个自身的CTR,这些CTR服从一个Beta分布;假设二,对于某一广告,给定展示次数和它自身的CTR时,它的点击次数服从一个伯努利分布 Binomial (I, CTR)。根据假设可以写出广告的似然函数,计算对数似然得到梯度来迭代。

4、广告质量探索

在飞速发展的移动广告领域,广告数量也在不断增长,目前百度DAP移动广告平台的广告库中,在线广告数量已经突破了10W,并仍在持续增长。如此多的广告,其中大部分对于我们的推广位而言都是新广告,即没有评估过转化效果的广告,这样就无法获得这些广告在不同推广告位上的历史反馈数据,很难准确预估这些新广告的转化效率。所以需要有一些流量专门用来探索这些新广告的转化效率,帮助模型获得更多的无偏数据。

在挑选新广告进入探索流量时,同样会遇到排序的问题,应该挑选变现潜力高的广告优先进入探索池。这里可以通过广告offer在Google Play上的表现以及自身的属性特征,对广告的转化效率进行线性回归预估。排名靠前的广告会优先进入探索池。

未来方向

随着百度DAP和百度国际化业务的高速发展,DAP算法策略平台也面临着越来越多的挑战。更加丰富的用户群体、变现场景以及广告形式都会对算法策略提出更高的要求。随着变现场景的丰富,对于特征的处理也会变得更加复杂,海量的复杂特征已经超出人的经验能够处理的范畴。百度DAP会不断探索使用深度学习模型来解决这个问题,多个隐藏层的神经网络算法能够帮助我们通过机器学习的力量,更好地对用户的意愿进行表达,用算法的力量帮助开发者与广告主实现收益的最大化。