360 展示广告智能化演进
分享嘉宾:刘斌 360 资深算法工程师
编辑整理:赵勇
出品平台:DataFunTalk
导读: 360展示广告平台始终关注广告投放效果,围绕广告后续优化问题先后开发了多款产品。 随着产品规模的不断扩张,有关效果优化的新需求新问题不断产生。本文主要介绍了效果优化系统随业务发展的演进过程,聚焦如何使用算法解决客户痛点,实现广告投放智能化。使大家了解到展示广告算法团队如何分析业务,如何选择算法,如何优化系统的过程。
01背景介绍
1. 展示广告业务介绍
市场上有很多媒体,用户访问媒体 ( 比如PC端的搜狐、网易、新浪,移动端的头条等 ) 时页面会出广告,媒体会将用户当前流量相关信息发送给Ad Exchange ( 流量拍卖平台 ),该流量会由Ad Exchange发送给与其对接的多家DSP ( 广告投放系统 ),DSP会根据当前流量选择合适的广告返回给Exchange,响应时间要求在100ms以内,这些广告一般是由客户或者广告主 ( 比如电商类广告主京东、唯品会、苏宁,旅游类广告主携程等 ) 在DSP平台按照流量筛选条件 ( 用户、媒体、时间、地点 ) 设置,Exchange将各个DSP平台返回的结果进行整理,选择出价最高的广告返回给媒体,媒体最终将出价最高的广告展示给用户。
2. 常见展示广告
常见的展示广告有:
- 场景橱窗广告,购物tab栏里出现的购物商品广告,有价格、商品名称;
- 开屏广告,打开媒体产品时展示由设计师精心设计的广告素材;
- 信息流广告,用户在阅读信息流内容时,像正常信息流形式一样出现的广告,有标题有图片有内容,这样的信息形式不会特别破坏用户的阅读体验。
3. 展示广告架构
展示广告技术架构,可以分为线上系统和线下系统。线上系统以DSP Server切入,Ad Exchange会将流量发送给DSP Server,DSP Server会将信息传递给Ad Search,Ad Search是广告的检索召回系统,海量广告中粗召回匹配的几百个甚至上千个广告投放,Ad Search会将信息发送给Ad Selector,Selector会在几百个广告中选择当前最合理的一个返回给DSP,DSP再返回给Ad Exchange。整个过程的数据都会被记录,以消息的形式发送给Kafka,最后存储在hdfs上。线下系统,ETL会将数据转成标准的训练样本,这些训练样本会提供给CVR、CTR等模型训练,训练好的模型在由线下推送到线上,交给Ad Search、Ad Selector作为广告召回和排序使用。
4. CPC广告投放设置
广告有按照点击扣费,有按照曝光扣费,CPC广告是广告主与DSP平台按照点击结算。右图是典型的CPC广告投放设置页面,广告主在设置页面主要需要进行如下操作:
- 上传素材(图片、文案);
- 筛选流量(用户、媒体、时间、地点);
- 设置出价(CPC为一次点击的出价)
本文主要介绍CPC广告的效果优化。
02 效果优化
1. 一切选项皆可优化
- 转化:用户看到广告,点击广告之后后续产生的一系列广告主认为有商业价值的行为称为转化。
- 广告效果优化:获取更多的转化,提高转化的概率,降低获取转化的成本称为广告效果优化。
360效果优化产品设计的基本理念是一切选项皆可优化。可以将效果优化产品分为两大类,一类是广告主主动开启使用,一类是后端策略优化自动生效。产品的核心是点击到转化的概率预估问题,结合广告主需求去拓展可以做效果优化的场景。
2. 流量分层处理
对广告来说,流量是海量的,能够产生转化的流量是极少的,那么流量按照转化的效果自下而上来看,呈现的是一个金字塔结构。针对塔底的低质流量可以采取预算分配和分流量调价两个方案。预算分配是针对点击率低的流量,设置在这类低质流量上的花费上限,如计划的10%或20%,其他主要花费重点用在高质流量上。分流量调价是从出价的角度,对于低质流量的出价是按照正常流量出价打折。塔顶的流量可以采用优选人群方案。根据用户的广告行为训练模型预测其是否会发生转化,模型输出值高的人群被归为优选人群。广告主给这类优选人群更高的出价,这样在竞价过程中更有可能胜出,得到曝光转化机会。
3. 智能点击出价
智能点击出价是一款约束了广告主平均点击成本,尽可能优化后续效果的一款广告主主动开启的产品。出价按照转化率分段处理,高段做溢价处理,低段做减价处理。线上策略可以从三个维度进行实现:
- 广告已经积累了大量样本数据,可以单独为广告实现一个转化率模型,并根据模型设计分段出价;
- 新广告投放,可以根据广告主的以前的广告数据分布,设计一个模型指导分段出价;
- 新广告主投放,可以根据同行业的其他广告主的广告数据分布设计模型进行分段出价。
4. 智能创意组合
广告主在创建广告单元上传素材时,有很多的素材(图片文案)组合选择,但是不清楚哪种组合转化效果最好,所以广告主会在投放过程中,根据实际的投放效果,选择最佳的素材组合,关闭其他组合。智能创意组合,就是为了解决广告主的这个需求而设计的产品。上图展示的是广告主上传素材的界面,允许广告主上传多个图片和多个文案,算法会根据当前流量选择最佳的图片和最佳的文案组合展现给用户。
5. 创意组合生成网络
智能创意组合算法通过强化学习思路实现,打分模型为转化率预估模型,根据当前流量信息和生成网络得到的图片文案的组合作为输入,得到转化率;转化率越高,创意组合越有价值。创意组合生成网络是根据Attention机制实现的,生成网络的输入为图片、文案、上下文信息。在生成网络结构中,以image1为例,将其作为query,与整个图片素材库的关系以及与整个文案库的关系使用Attention建模,得到图片信息经过一个前向网络得到输出分数,如果是多图片,使用Softmax得到多图片的概率分布。组合的结果可以直接选择图片和文案概率最大的,或者是概率分布做采样。在迭代过程中,这两种方式都会有所选择来训练。
03 广告投放智能化演进
1. oCPC:智能化广告投放产品
o是optimize,oCPC是针对CPC的广告优化。右图展示的是oCPC的广告设置界面。oCPC的特点如下:
- 相比于正常的CPC广告界面,该界面简化了设置内容,不需要设置点击出价;
- 量化了广告主的目标——转化类型和目标转化成本;
- 效量兼顾,既考虑实际转化成本接近目标转化成本,又兼顾扩量的优化,给广告主带来更多未投流量的转化。
2. 出价逻辑
普通CPC的出价逻辑,从DSP角度来说,通过点击率预估建立与广告主目标的桥梁,即CPC * PCTR。对于oCPC的出价逻辑:一阶段基于实时反馈,广告投放初期数据少,由系统给出CPC,根据线上实际转化成本的情况来调整出价。二阶段基于模型,当数据积累到一定阶段,训练转化率模型得到PCVR,用客户给出的目标出价CPA*PCVR来模拟CPC出价,即CPA * PCVR * PCTR。
3. 多模型→单模型
oCPC的核心是转化率模型:
- 产品上线初期,客户较少,可以采用分客户训练,针对使用该产品的客户专门优化,避免影响其他正常的客户;
- 随着数据的积累和效果稳定,在前期投放过程中,出于谨慎考虑,对于客户的投放都是精细化的流量,流量之间相互之间没有重叠;
- 随着客户对投放量需求的增加,模型需要对之前没有见过的流量做转化率预估,利用同行业客户的相似性,分行业训练模型可以让客户共享投放信息来解决这个问题;
- 随着产品的成熟,分行业和分客户的多模型维护成本过高,使用单一模型就能满足所有客户需求。
4. 简单模型→复杂模型
随着产品的迭代,模型从简单模型发展到复杂模型。产品初期,仅在精细流量上做投放,采用GBDT就可以满足需求。随着可投流量和特征数量增加,GBDT的树深度和棵数有限无法满足需求,采用LR模型解决可投流量扩展问题。随着业务发展拥有海量数据,传统模型存在瓶颈,最终采用了DNN模型解决海量数据问题。
5. oCPC模型结构
oCPC模型结构采用PNN架构,将特征分为多个group——广告、媒体、用户、其他上下文;每个group学习一个embedding表示,然后使用embedding相乘得到特征交叉。考虑到神经网络的复杂性,线上计算做了性能优化,预测时广告无关的部分只会计算一次,只有不同的广告特征才会被多次计算。
6. 单任务→多任务
转化率模型初期只考虑了点击到转化的样本,训练出一个单任务的转化率模型。随着ESMM和ESM2的出现,360的转化率模型从单任务向多任务模型发展。单任务模型考虑的是点击后到转化的样本,只考虑了曝光的子集样本。如何保持线上线下一致,将曝光无点击的样本加入训练,这就是多任务模型解决的问题。完整的样本空间,子模块CTR PNN模型是曝光样本的点击概率,LOSS1是pctr的loss,子模块CVR PNN模型是点击后转化的概率模型,pcvr表示该曝光样本如果点击,点击到转化的概率。实际需要对于每个曝光样本做曝光转化预估,那么将pctr * pcvr就得到了曝光转化概率pctcvr,而LOSS2就是该曝光转化的loss。曝光到转化之间还存在其他链路,可以使用更多的任务和loss来表示。另外,多任务模型会共享group embedding输入。
7. 单目标出价→多目标出价
随着业务发展,客户会有更多的转化要求。在注册目标成本已经满足需求的情况下,考虑付费的优化。参考智能点击出价,训练一个付费模型,在注册率一定的情况下,付费率如果在金字塔顶层,就增加出价,在低层,就减少出价,来满足客户付费优化的需求。付费模型采用MMOE实现,注册是任务A,付费是任务B,Gata A仅作为任务A的输入,Gata B仅作为任务B的输入。对于该模型的任一任务来说,可以由几个固定的专家打分得到。那么专家的输出与Gata A 输出的概率分布作为任务A的输入,专家的输出与Gata B输出的概率分布作为任务B的输入。这个模型在同时拥有多个转化的场景中得到效果验证。
8. 高延迟→低延迟
知识蒸馏解决线上高延迟问题。知识蒸馏存在Student模型参数减少过多,导致效果Teacher模型差很多,以下是两个优化方法:
- 提高Teacher模型复杂度
- Teacher模型加入点击后转化前的特征
刘斌 360 资深算法工程师 20152017年负责展示广告商品库和人群库系统。20182020年专注广告效果优化,作为项目主要负责人先后开发了预算分配系统和oCPC系统。