目录:

· 前言

· 背景

· 问题定义

· 算法建模

· 总结

▐ 前言

品牌广告是阿里妈妈电商广告的重要组成部分,也是绝大部分品牌广告主用来树立产品形象、增强用户认知心智、提高市场占有率的一个重要手段。阿里妈妈展示广告平台需要给淘系、淘外、站外众多媒体资源,提供高效快速的在线决策机制。本文主要介绍,在淘外品牌合约广告的在线投放策略中,我们遇到的业务挑战、其中的思考和解决方案。

▐ 背景

品牌合约广告的基本模式,是通过担保式投放(Guaranteed Delivery,GD)的形式,让广告平台在规定的时间内,在符合定向要求的受众人群上释放合同约定好的曝光量,以触达广泛的目标受众(Target Audience,TA)。虽然效果广告更注重短期效果如点击、转化等,品牌广告以曝光计费,但是广告主对于品牌广告的效果诉求也日益强烈。综上,品牌合约广告在线决策算法的优化有两个目标:

  • 保量,按照合约完成曝光,最大化平台当前广告营收,尽量避免因订单缺量带来的赔偿
  • 提效,在完成合约曝光的基础上,最大化投放价值,提高广告主营销效果
▐ 问题定义

完成合约广告的预定量,并在此基础上提升投放效果,这个问题可以看做流量 supply 与保量订单 demand 之间的二部图匹配,如下图:



统一广告发布 架构_java

目前主流的流量分配和调控策略框架,主要分为两类:

  • 竞价类:近线启发式调整单组对偶 + 在线排序和过滤,这个策略不涉及离线模型求解,以类似出价的方式完成流量分配,经典算法如KDD'11原始对偶算法《Real-Time Bidding Algorithms for Performance-Based Display Ad Allocation》
  • 保量类:离线分配模型训练 + 在线实时分配排序 [+ 近线pacing阈值过滤],以最大合约释放方式进行分配,经典算法如KDD'12:《SHALE: An Efficient Algorithm for Allocation of Guaranteed Display Advertising》

并不是合约保量的订单就必须采用第二类框架,在流量供给十分充足,合约订单均没有缺量风险前提下,品牌合约广告也可以采用竞价类的框架最大程度提升投放效果,如售卖不充分的混合竞价场景,以及我们之前分享的《双11技术分享 | “喵糖”背后的商业化流量投放算法》。但是在淘外品牌合约广告投放的场景中,我们选择的是保量类框架,主要原因有两点:

  • 后者对保量对偶和pacing提效阈值两组变量进行解耦合,方便分开管理。淘外品牌资源位众多,售卖率较高,尤其大促期间保量压力较大,使用保量类框架可以随时下线pacing模块,切换成最大化保量模式。
  • 淘外品牌广告存在一些预定量极小调控难度较大的长尾订单,离线分配模型可以利用较长时间的日志,分配结果更稳定。
▐ 算法建模

基本离线模型

在合约保量的离线分配模型上,我们基于 SHALE 算法开发了支持10亿supply节点的超大规模的分布式训练平台。同时,在SHALE的优化目标上,加入投放效果收益,以达到保量提效的分配结果(感兴趣的同学可以了解我们之前的工作 ICDM'19《Large-scale personalized delivery for guaranteed display advertising with real-time pacing》):



统一广告发布 架构_java_02

其中, 表示流量节点 的供给量,表示订单j投放优先级,表示第 个订单的预订量,表示订单的初始均匀分配比例 , 表示第 个流量节点对第 个订单的分配概率, 表示节点 可以召回订单 , 指预估的投放效果,如CTR, 表示缺量惩罚超参数, 表示效果收益项超参数。我们分析上述带效果收益项的SHALE模型的分配结果,发现订单分配流量可能超过其预定量。引起这个现象的原因,是由于在SHALE模型中第一项约束是:分配量+缺量项≥预定量,而在实际的线上投放中,合约广告超投并不能带来任何额外的广告收入。

防超分模型

针对基本模型的问题,我们修改了目标函数和约束项,得到防超分的模型:

统一广告发布 架构_算法_03

模型的约束条件第一项,改为超投约束。在目标函数中,第一项是正则项,第二项是总释放量,第三项是效果收益项。通过KKT条件推导,得到投放概率的计算公式为:



统一广告发布 架构_广告_04

其中,α 和 β 分别是第一、二项约束对应的对偶变量,且必须满足α≥0 、 β≥0。

离线分布式求解

上面虽然给出了分配概率的表达式,但是如何求解对偶参数?主要思路是采用坐标下降法,交替优化α 和 β

  • 固定 α 求解 β :由于单个请求召回广告个数不多,利用【每个请求召回的所有广告分配概率之和=1】等式,可以快速直接求解得到 β
  • 固定 β 求解 α :由于每个订单对应的supply在千万级,利用【每个广告分配流量之和 = 预定量】等式,很难直接求解得到 α ,所以我们采用梯度下降的思路近似求解,同时采用分布式框架并行计算进行加速:

统一广告发布 架构_统一广告发布 架构_05

在线实时分配

上面描述了离线模型如何通过大规模训练得到 α 参数。在线分配阶段,通过当前请求召回的广告检索到对应的对偶参数,求解 ∑x=1 方程,就可以得到对偶变量 β 以及投放概率 x。最后通过轮盘赌或者倒排进行排序,决定线上透出广告的顺序。

自适应Pacing

Pacing模块往往都是用强化学习或者PID算法为每个订单维护一个调控阈值,如果当前请求效果预估分低于阈值,则本次请求不投放该广告,以把广告预算留给后面效果更好的流量,从而提升整体投放效果。

在我们的框架里,采用了基于投放概率的阈值调控,回顾之前订单投放概率的计算公式:



统一广告发布 架构_算法_06

假设离线模型没有更新情况下,同一个订单的 α 不变,投放概率变化由 c 和 β 共同决定。当请求召回的广告竞争激烈时,∑x=1,根据KKT条件可以知道此时 β > 0;当请求竞争不激烈甚至只召回一条广告时,此时可能会出现 ∑x<1,β = 0。假设这两次请求的预估效果分 c 相同,前者分配概率会小于后者。按照投放概率过滤会倾向于保留后者,以给竞争资源位腾挪出更多空间,在线上流量波动情况下,具有更强的保量能力。

实验效果

我们的方法(AUAF)和其他算法进行了分配结果的评测,其他方法包括:SHALE:雅虎 KDD'12、RAP:腾讯 KDD'20 、ALI:ICDM'19,评测结果包括总分配量、完成率、超投率、去掉超投部分的点击数、平均点击率,可以看到AUAF的完成率和SHALE持平,并且平均CTR最高:



统一广告发布 架构_人工智能_07

▐ 总结

在SHALE合约保量分配算法基础上,我们把效果指标纳入到分配的目标中去,同时为了防止超分加入订单分配量约束,大幅度的提高合约保量广告的投放效率。在线的分桶实验表明我们的算法可以在保量基础上,为广告主的品牌营销带来更好的效果。更多细节可以查看我们发表在 WSDM'22 上的论文《An Adaptive Unified Allocation Framework for Guaranteed Display Advertising》。

关于我们

我们是阿里妈妈展示品牌技术与策略算法团队,致力于为各类品牌广告主提供科学高效的淘内淘外商业化营销投放服务,我们的工作涉及广告领域的流量预测、库存分配、模型预估、机制策略、内容理解等众多方向,团队近年在KDD、IJCAI、ICDM、WSDM、ACM MM等顶级会议发表多篇论文,业务空间广阔,技术氛围浓厚,欢迎感兴趣的同学加入我们。