一、广告业务介绍
1.1 广告的业务逻辑
1.2 广告的系统架构
1.3 业务背景
1.4 目标及计划
二、OCPC产品项目面临的挑战
三、OCPC产品策略的实现方案
3.1 问题建模
3.2 如何求解后验数据的优解及优参数
3.4 参数控制-pid 反馈控制系统
3.5 离线流程及线上部署
四、总结
五、参考资料
一、广告业务介绍
1.1 广告的业务逻辑
广告系统中的业务逻辑用一句话来表示:广告主通过付费在媒体对目标用户进行营销信息传达,达成营销目的的过程。抽取出三个主体,广告主、媒体和用户,他们的关系如下:其中,广告主和媒体之间是买卖付费关系。媒体有很多流量,可以按点击售卖也可以按曝光售卖,媒体根据自有流量制定了售卖机制。广告主则通过售卖机制提供的投放方式,建立广告投放计划,并付费给媒体。媒体和用户之间是有访问展示关系的,媒体在什么时间什么场景以什么样的方式的让用户看到什么样的广告,这是投放策略决定的。本次主要介绍的是转转商业广告OCPC产品实现的一种投放策略。
1.2 广告的系统架构
转转搜索广告系统架构图如下,平台的投放策略由ZZADECPM模块(红框圈定)来承载。本文介绍的投放策略也在这个模块实现。
1.3 业务背景
随着转转广告业务的发展,商家的营销需求也不断丰富起来。既要有托管的流量包产品去平衡平台收益和实现小微商家利益大化[1],也要有满足中大型广告主对成本、收益、流量的有更多把控的优店通产品。为了不影响大盘推广的效果,团队业务同学聚焦二手平台蓝海品类,围绕流量充足,物料不够的现象,综合产研、运营和销售的能力和经验,积极探索和制定了OCPC的拉新投放策略,为业务发展打开新局面,给予商家表达需求的机会,助力商家进行合理的成本控制,让商家参与进来,盘活更多新商家。
1.4 目标及计划
OCPC产品策略的目标有两个,通过AB实验的方式验证目标是否达成。
1、大盘收入不降的情况下提升ROI; 2、提升有效填充(相关性)的ASN、收入和ROI;
各团队合作完成该项目,具体动作:
1、产品同学负责设计产品方案、运营模式及后期迭代维护逻辑;
2、销售和运营同学针对新产品进行售卖及运营话术设计和人员培训;
3、技术同学负责调研合适的算法模型,设计合理可实现的优化目标,选择匹配的策略方案:多重约束下的pid线性拟合控制方案[2],也是本文要介绍的重点。
二、OCPC产品项目面临的挑战
下图是广告业务迭代的历史脉络。从2018年开始,在售卖机制/投放方式上,从朴素的CPM/CPC类的广告到衍生出来的基于流量预估价值去调整广告的竞价策略,即OCPM/OCPC这样的平台能力。为了满足广告主进一步对成本和预算控制的需求,本次是BCB(Budget Constrained Bidding)的又一次升级,MCB(Multi-Constrained Bidding)多约束下的竞价策略。本次项目环环相扣,需要打通产品、研发、运行和销售各个环节,各方合力才能保障项目的正常运行。在具体实时过程中面临的挑战主要有以下几个方面:
1)满足广告主成本需求及预算需求的同时需要考虑冷启动期间要给予广告主的优惠扶持策略;
2)配合产品同学,设计合理的算法逻辑,助力产品实现;
3)理解销售和运营同学的话术,能够用算法策略去进行保障;
4)算法策略要优先考虑大盘商家ROI,同时能严格把控平台让利规模;
5)优化目标中指标多约束多,算法策略设计及参数调整都有挑战。
三、OCPC产品策略的实现方案
3.1 问题建模
OCPC项目目标抽象出来就是一个带约束的线性规划求优解的问题。广告主诉求:预算不超过B,cpc的成本不超过C的情况下,大化GMV。原始问题 LP1建模如下:写出对偶问题 LP2(大同小异,互颠倒)如下:根据互补松弛定理,得到两个等式然后,论文作者精心设计了出价公式,带入公式 8 转化公式 10:根据等式(10),如果竞价赢得了展示机会,则并且推导得到如果竞价输掉了这次展示机会,结合公式 9 和公式 7,推导得到说明优解的公式设计巧妙且合理。至此,线性规划问题 LP1 优解的形式就求解出来了。
3.2 如何求解后验数据的优解及优参数
这里会用到GNU Linear Programming Kit (GLPK)工具包,专门用来解线性规划问题的。一开始使用的是开源工具包 pyomo+python[3],对于小规模的问题,可以做到分钟级别解出。简单验算完成后确认求解优。但是当问题规模变大时,解答时间接近指数级增长。如下图所示:小规模问题编码较为简单,求解时间也可以接受。下图是具体实现的伪代码,索引集合、决策变量、参数、目标及约束条件,后只需要调用 Objective 函数,输入目标即可。但是当问题规模变大时,耗时问题会严重影响进度,因此尝试使用商业级软件 GUROBI[4]。无论是原问题还是对偶问题,即使问题规模在10w以上,依然能够在分钟级解决问题。不由得感叹,GUROBI 背后的算法优化的真是强大。具体安装过程:配置好环境后,就可以使用了。注意!!!这里我使用的是商业版的,只有2个月的试用期。如果有持续性需求建议购买正版商业化产品。
下面是部分具体实现,求解对偶问题的代码。跟PYOMO的编程语言风格较为类似。广告主不同诉求对应的约束不同:其中alpha和beta分别对应 p* 和 q*。通过后验数据获得的优参数,后面会作为我们优解公式的初始化参数。
3.3 优出价参数分析
接下来,我们继续讲优解的使用。式中p和q对应的优参数,可以根据后验数据计算得到(3.2.3 节介绍),但是此时是对过去历史数据的一个优参数组合。对于未来的优参数,需要我们自己去探索如何获得;下面我们来分析优出价公式中的 p 和 q 两个参数对预算和点击成本的影响。
当固定 q 时,从图中可以看到,减小 p 时,cpc 出价整体提升,反之出价下降;p=0 时,表示没有了 budget 这个约束。当固定 p 时,从图中可以看到,减小 q 时,cpc 出价随之变化,cvr>C * p 时,高价值流量出价进一步提升,反之出价下降;增加 q 时,则正好相反,用高出价获得了更多低 cvr 的流量,丢失了高 cvr 的流量。p=0 时,表示没有了点击成本这个约束。分析以后,发现p 和 q 参数本身之间无法做到完全独立。例如:当出价升高时,预算也会相应提高;如何调控 p 和 q 去优化我们的算法,目前主要有两种解法:
强化学习的思路,通过设计状态、动作及合理 reward 函数,进行参数控制,例如[5]; 反馈控制方法,也就是本文所采用多pid线性拟合控制方法。更有效的控制耦合效应的方法是MPC[6]方法,由于系统耗时等因素,未选该方案,本次介绍不涉及。
3.4 参数控制-pid 反馈控制系统
下图介绍了两种 pid 控制系统,对于独立控制变量可以选用图 6,本次主要介绍图 7 的实现。下面公式是标准 pid 的控制逻辑,公式 13、14、15 依次表示误差,控制变量及系统输入;下图是对 p 和 q 进行线性拟合的公式:
3.5 离线流程及线上部署
总结一下,3.1介绍了问题建模,3.2介绍了如何用工具求解优解,3.3分析优参数的意义,选择合适的参数控制方法-pid反馈控制,3.4 pid控制系统介绍及使用
离线关键动作:
1、利用训练数据及商用线性规划优化器gurobi对原问题和对偶问题求解,得到对偶问题优解p和q。
2、利用训练数据进行优参数寻找,模拟实时竞价过程,p i d参数和拟合系数alpha、beta通过grid-search 进行找寻。
线上参数部署:
3、用1中参数初始化线上q和p,2中参数固定为线上参数;4、按小时级收集竞价日志,计算预算和点击/成交成本误差,通过pid调控参数p和q;
整个流程基本就是这样,具体细节不再这里展开。
四、总结
期间调研了拼多多 ocpc 的业务模式,案例,总结理解他们的目标设计思路。为了保障项目成功,还与相关领域的专家技术进行了深入探讨和交流,系统地整理了业界发展进程和新研究,深入地了解了其他家 ocpc 项目的思路方法。为团队技术赋能打下坚实的基础。
OCPC 模式在二手商业广告领域不断扩展着自己的应用领域。本此项目是产品、研发、运营和销售团队通力配合的一个项目,算法策略肩负了核心逻辑实现的重任,是整个项目中顺畅运行的润滑剂。
终结果,产品顺利上线全量,并拿到预期的收益:针对有效填充部分的收益,收入、ASN 和 ROI 都有符合预期的提升: COST +4.61% CASH +4.58% ASN +8.64% TRUE_SHOW +12.16% GMV +23.73% ROI +17.86%;针对大盘的收益,收入持平,GMV 和 ROI 增长:收入持平,TRUE_SHOW +2.41% GMV +10.79% ROI +10.24%;
五、参考资料
[1] Zhu H. et al. 2017. Optimized Cost per Click in Taobao Display Advertising Proceedings of the 23rd International Conference on Knowledge Discovery and Data Mining. ACM, 2191--2200.
[2] Xun Yang, Yasong Li, Hao Wang, Di Wu, Qing Tan, Jian Xu, and Kun Gai. 2019. Bid optimization by multivariable control in display advertising. In Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 1966–1974.
[3] Hart W E, Laird C D, Watson J P, et al. Pyomo-optimization modeling in python[M]. Berlin: Springer, 2017.
[4] https://www.gurobi.com/documentation/9.5/refman/py_python_api_details.html
[5] Di Wu, Xiujun Chen, Xun Yang, Hao Wang, Qing Tan, Xiaoxun Zhang, Jian Xu, and Kun Gai. 2018. Budget constrained bidding by model-free reinforcement learning in display advertising. In Proceedings of the 27th ACM International Conference on Information and Knowledge Management. 1443–1451.
[6] James B Rawlings and David Q Mayne. 2009. Model predictive control: Theory and design. (2009).