oCPC:智能化广告投放产品
o是optimize,oCPC是针对CPC的广告优化。如图展示的是oCPC的广告设置界面。
oCPC的特点如下:
相比于正常的CPC广告界面,该界面简化了设置内容,不需要设置点击出价;
量化了广告主的目标——转化类型和目标转化成本;
效量兼顾,既考虑实际转化成本接近目标转化成本,又兼顾扩量的优化,给广告主带来更多未投流量的转化。
出价逻辑
360广告推广平台普通CPC的出价逻辑,从DSP角度来说,通过点击率预估建立与广告主目标的桥梁,即CPC * PCTR。对于oCPC的出价逻辑:一阶段基于实时反馈,360广告投放初期数据少,由系统给出CPC,根据线上实际转化成本的情况来调整出价。二阶段基于模型,当数据积累到一定阶段,训练转化率模型得到PCVR,用客户给出的目标出价CPA*PCVR来模拟CPC出价,即CPA * PCVR * PCTR。
多模型→单模型
oCPC的核心是转化率模型:
产品上线初期,客户较少,可以采用分客户训练,针对使用该产品的客户专门优化,避免影响其他正常的客户;
随着数据的积累和效果稳定,在前期投放过程中,出于谨慎考虑,对于客户的投放都是精细化的流量,流量之间相互之间没有重叠;
随着客户对投放量需求的增加,模型需要对之前没有见过的流量做转化率预估,利用同行业客户的相似性,分行业训练模型可以让客户共享投放信息来解决这个问题;
随着产品的成熟,分行业和分客户的多模型维护成本过高,使用单一模型就能满足所有客户需求。
简单模型→复杂模型
随着产品的迭代,模型从简单模型发展到复杂模型。产品初期,仅在精细流量上做投放,采用GBDT就可以满足需求。随着可投流量和特征数量增加,GBDT的树深度和棵数有限无法满足需求,采用LR模型解决可投流量扩展问题。随着业务发展拥有海量数据,传统模型存在瓶颈,最终采用了DNN模型解决海量数据问题。
oCPC模型结构
oCPC模型结构采用PNN架构,将特征分为多个group——广告、媒体、用户、其他上下文;每个group学习一个embedding表示,然后使用embedding相乘得到特征交叉。考虑到神经网络的复杂性,线上计算做了性能优化,预测时广告无关的部分只会计算一次,只有不同的360广告特征才会被多次计算。
单任务→多任务
转化率模型初期只考虑了点击到转化的样本,训练出一个单任务的转化率模型。随着ESMM和ESM2的出现,360的转化率模型从单任务向多任务模型发展。单任务模型考虑的是点击后到转化的样本,只考虑了曝光的子集样本。如何保持线上线下一致,将曝光无点击的样本加入训练,这就是多任务模型解决的问题。完整的样本空间,子模块CTR PNN模型是曝光样本的点击概率,LOSS1是pctr的loss,子模块CVR PNN模型是点击后转化的概率模型,pcvr表示该曝光样本如果点击,点击到转化的概率。实际需要对于每个曝光样本做曝光转化预估,那么将pctr * pcvr就得到了曝光转化概率pctcvr,而LOSS2就是该曝光转化的loss。曝光到转化之间还存在其他链路,可以使用更多的任务和loss来表示。另外,多任务模型会共享group embedding输入。