上干货!小红书“薯条”业务竞价策略及最优公式详解

2023-10-14 15:20

本文主要是介绍上干货!小红书“薯条”业务竞价策略及最优公式详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

薯条广告业务作为小红书商业化中重要的一部分,可以让内容创作者和企业商家轻松使用手机 app 进行笔记推广和广告投放。虽然从用户视角来看,薯条广告的投放方式简单便捷,但从平台视角来看却面临着很多挑战。如何在薯条广告和其他广告的竞争过程中,合理分配小红书的商业化流量,最大化广告主和平台的整体收益需要深入地思考和探索。对此,小红书商业技术团队从策略视角出发,对薯条竞价广告的投放进行建模,推导出理论最优解法,再结合业务实践,思考出简单有效的调控方案,让薯条广告业务快速达到了预期水准,推动了商业化平台的发展。

在小红书商业化矩阵中,薯条广告业务是重要一环。具体的业务形式如下图,一个用户(普通用户,KOL,甚至商家)可以通过薯条来推广自己的笔记,过程中只需要简单决定几个选项,如预期曝光量、投放时间、推广目标、人群,付款后就会自动推广了。因为薯条广告的投放过程是需要和商业化流量中其他广告进行竞争的,所以也会完整的涉及竞价广告的三个基本范式,召回、预估、拍卖(竞价)。从业务逻辑上来讲,召回、预估比较贴近业界主流的实践方式,而拍卖(竞价)过程受限于业务复杂性却存在非常多的挑战。

从客户(薯条推广者)的视角来看,薯条是一个比较傻瓜的推广方式,表达了目标、需求曝光量(投放时间)、人群,付款后就开始投放了。但事实上这里存在着诸多隐含的要求:

  • 这个投放是不是平滑的(投放时间内曝光比较均匀的分布)?

  • 最终投放的结果目标转化量如何(比如5k曝光后有多少阅读量)?

  • 最极端的,能不能保量(会不会出现小于预期曝光量的情况)?

当任意一个隐含要求出现问题(发生波动或者和认知发生较大差异时)便会引发客户的反弹(问询或投诉),造成较大的运营压力以及客户使用体感的问题。

从平台的视角来看,薯条是一个保量的业务,在客户付钱的那一刻便签订了一个合约,平台将代客户完成后续的投放。这个过程中有两个核心问题:

  • 如果缺量平台该如何处理?

  • 薯条广告投放过程中会不会出现亏本的情况?

这里平台的亏本可以理解成,每一个薯条订单都会有一个投放的 agent 在小红书的竞价系统中进行自动投放,当然展示薯条的广告就会相应减少其他广告的投放,也即会减少“本应该有的平台收入”;当减少的收入总和大于薯条订单的收入时,平台就出现了亏损,而亏损对于平台的发展而言也是非常严重的问题。

所以,在召回和预估都能正常工作的前提下,如何能从策略视角很好地满足客户与平台的诉求是有很大挑战的。我们从问题的建模出发,对该问题给出了理论的最优解法,再结合实践以及诸多业务考虑,给出了实践中简单有效的调控策略,让薯条业务快速地发展起来,同时也给技术后续的优化留出了足够的空间。

当下小红书主流的流量售卖机制是实时竞价,对于每次广告展示机会都会进行竞价拍卖,将流量分配给效用(utility)最大的广告主并收取一定的费用。在实时竞价过程中,如下图示例,每个薯条的订单作为一个独立的竞价者,由平台的智能 agent 接管竞价,在与其他参竞者竞争过程中还需同时兼顾客户和平台的诸多诉求。

接下来进行薯条竞价投放的建模(注:以下是一种典型业务诉求的建模,真实应用场景会有不同),我们设目标投放量为 D,订单收入为 B,薯条收入的流量 CPM 成本为 M(B/D),投放后的平均转化成本约束为 C(比如优化赞藏订单的赞藏成本)。定向覆盖的流量集合为\{pv_i,i=1,\dots, n\}  ,第 i 个参竞流量的价值设为v_i(比如优化赞藏,则价值定义为pctr_i\times pcvr_i,其中 pcvr_i 代表点击赞藏率)、竞价成本设为 c_i;用 x_i \in [0,1] 表示是否将该流量分配给当前薯条订单,即竞得时 x_i=1,未竞得时 x_i=0。则薯条的业务目标可以形式化为:

  

对该问题进行求解,可以得到最优的出价公式如下: 

\begin{aligned} bid^* = \frac{1}{\beta^*}(v_i + \gamma^* \cdot C(v_i-\frac{M}{C})-\alpha^*) \end{aligned}

其中 \alpha^*,\beta^*,\gamma^* 是需要求解的最优参数,也即当最优参数确定后,按照最优的 bid^* 对每个 pv 进行报价,即可得到 (LP1) 对等的最优解(满足上述若干约束下的目标价值量最大化)。

如果感兴趣可以看下面的最优公式推导过程,也可以直接略过看策略部分的公式解读&实战优化。

上述线性问题,用其对偶问题表示为,设未知数 \alpha,\beta,\gamma 和 r_i, \forall i=1,2,\dots,n :

 设原问题最优解为\{x*| i=1,.., n\}  ,对偶问题最优解为 \alpha^*, \beta^*, \gamma^*,\{r_i^*|i=1,\dots,n\} ,根据互补松弛定理可得: 

 x_i^* \cdot ( v_i - \alpha^*-\beta^* \cdot c_i - (M-C \cdot v_i )\cdot \gamma^* - r_i^* )=0

(x_i^*-1)\cdot r_i^*=0, \forall i=1,\dots,n

此处我们记 bid_i^* 为计划对 pv_i 的最优出价,在 RTB 下(这里假定 second-price auction),薯条和竞价广告混竞,竞得  的必要条件是出价不低于该流量的竞价成本,则:

1. 若竞得该pv,即 x_i^*=1,可推出

bid^*_i \ge c_i= \frac{1}{\beta}(v_i + \gamma \cdot C(v_i-\frac{M}{C})-\alpha-r_i)

2. 若未竞得该pv,即 x_i^*=0,可推出 

r^*_i=0,bid^*_i \leq c_i= \frac{1}{\beta}(v_i + \gamma \cdot C(v_i-\frac{M}{C})-\alpha-r_i)

 

在实时广告竞价中,出价与流量价值的比较决定了竞得结果,因此在最优解下,最优出价公式为:

\begin{aligned} bid^* = \frac{1}{\beta^*}(v_i + \gamma^* \cdot C(v_i-\frac{M}{C})-\alpha^*) \end{aligned}

假设每天的流量集合已知,则薯条的最优出价参数 \alpha^*,\beta^*,\gamma^* 可以在流量集合已知的前提下求解得到,但实际应用过程中线上流量是未知且波动的,在线应用的方式是根据实时的投放情况对当下使用的参数进行反馈调控,尽可能逼近潜在的最优。

为方便分析,我们令 

a^*=\frac{1}{\beta^*}(1+\gamma^* \cdot C),b^*=\frac{1}{\beta^*}(\gamma^* \cdot M+\alpha^*)

(1)

则原最优出价公式可以转变为:

\begin{aligned} bid^* &= \frac{1}{\beta^*}(v_i + \gamma^* \cdot C(v_i-\frac{M}{C})-\alpha^*) \\ &=a^*v_i-b^* \end{aligned}

这样,我们将三参数调控问题,化简成双参调控。我们将某个薯条订单可参竞的流量按照价值 v_i 和成本 c_i 画出分布图(每一个点代表一个可竞得的流量),那么出价公式是该分布下的线性函数(自变量是 v_i ,因变量是 bid_i ),通过调控函数的斜率 a 和截距 b,对当前的流量进行划分,函数之下的流量均可竞得,函数之上的流量不竞得。通过对 a, b 的上调或下调,可以控制竞得流量的集合,最优公式下方的所有流量即为原问题最优的竞得流量集合。如下图所示。

然而,从最优公式推导可以知道,\alpha,\beta,\gamma  三个参数分别对应着展现量、利润率和转化成本约束,化简为双参数调控后,由公式(1)可知,每次 a 和 b 的调控都会同时影响多个约束。所以对于调控策略而言,需要有一个面向终极目标调控 \alpha,\beta,\gamma 三个参数(也即 a 和 b)的 policy,也即能够很好地平衡参数调整后对于不同约束的影响。这里面的难点可以用下面的例子说明:

 如果当前的流量获取速度低于预期需要提升出价,降低 \alpha 、降低 \beta 、提升 \gamma 都可以做到,就会有非常多种组合来达到提升拿量的预期,但不同的组合又会对利润率、转化成本造成侧面的影响;所以简单的单目标调控(一般的 PID 锚定单一目标进行控制)会让最终结果距离最优结果有很大空间。

参考业内的一些方法 [1] ,可以使用强化学习来建模,端到端的学习最优的调控策略(policy)来优化投放结果,但方法本身比较难在短时间内落成(训练环境、在线推理)。所以我们这里对问题进行进一步分析,希望能得到一种简单有效的调控方案,快速达到业务预期。

当前形式化的投放场景有两个明显的先验知识:

  • 竞价过程中,出价过高会导致利润率风险,而薯条场景下有非常好的一个出价上限标的,即流量成本 M(M=B/D)。考虑到二价率,设置按照 M 做一定上浮作为每个 pv 的出价上限是个不错的实践,可以很好的规避竞得成本过高的流量(实际应用中预估 v_i 过高也会导致过高的出价)。

  • 因为薯条是保量逻辑(竞得流量和需求基本对等),所以竞得的流量平均转化率 \overline{v} 是有个下限的,过低会导致最终的转化成本过高(参考 LP1 的第三个约束)。所以在竞价过程中过滤掉转化率 v_i 过低的流量是个很好的实践,能够进一步简化竞价的难度。

所以,我们如果考虑以 v=M/C(也即临界流量价值) 和出价函数的交点 R 为中心,将流量集合划分为四个区域,分别对应成本和价值叉乘的四部分。不难想到我们不希望竞得成本高但价值低的流量以及成本低价值低的流量。所以作为一个简单有效的实践,可以对流量集合进行初步的过滤(v 小于 M/C 的过滤掉,并且成本高于 B/D 的过滤掉),此时我们的原问题就变得很简单了。

在这样的设置下,公式(1)的 a 和 b 的选择容错性会更好,直观的理解就是硬性地规避了上图蓝色流量。同时,通过我们离线的观测,公式(1)中的 a 天与天之间的变化并不显著,所以我们为了进一步简化调控,将 a 设置成历史上的最优 a(固定住),然后通过调整 b 来控制一天的拿量速率(见上图右图),这样简单的 PID 策略(比例误差定义为单位时间内的竞得流量与期望流量的 diff,期望流量通常使用大盘流量潮汐的 pattern 计算)即可让我们逼近最优解。

再回头看看客户侧和平台侧的诸多挑战:

  • 投放平滑:从最终的出价策略来看,整体竞得流量会和大盘的流量潮汐 pattern 匹配,本身就是符合 pacing 目标的。

  • 不保量:目前的实践过程中,不保量的情况非常少,但极端情况下可以通过平台赔付或补量来解决。

  • 客户转化量、转化成本、平台利润率:都能通过策略很好地解决。

对于薯条问题的形式化已经比较完备,上述的方案较多的权衡了落地时间与业务效果。从终态上来讲,对于多参调控(多约束 MCB)问题,还是需要强化学习的方法(亦或是 MPC 的方法,本质是相通的)。我们也在积极推进中,期待新的方法的落地能够赋能业务继续快速增长。

[1] A Unified Solution to Constrained Bidding in Online Display Advertising 

猿飞(吴笛) 小红书搜索广告算法部

最早一批实时竞价广告机制策略方向从业者,拍卖机制、自动出价领域专家,Budget Constrained Bidding(BCB)、Multi-Constrained Bidding(MCB)提出者与工业界践行者,在 CIKM、KDD、ICDM 等顶级会议有多篇论文发表。

川岛(何悦) 小红书搜索广告算法部

小红书机制与广告主工具算法工程师,硕士毕业于清华大学软件学院,在 KDD、AAAI 等顶级会议在计算机视觉和计算广告领域有多篇论文发表,现专注于实时竞价广告机制策略方向的研究。

暖暖(潘琰) 小红书搜索广告算法部

小红书机制与广告主工具算法工程师。硕士毕业于香港中文大学(深圳),曾在 CVPR 等会议发表多篇计算机视觉与三维生成相关论文,现专注于搜索广告智能出价策略迭代与优化。

小红书商业化搜索广告算法团队诚聘英才

职位名称:

广告机制算法工程师

职位描述:

1. 从事机制策略方向的工作,站在竞价广告的最终端,以最贴近业务的方式理解竞价广告,通过策略的研发、推荐技术的优化、自动化客户的服务,体系化的提升商业化变现效率。

2. 具体方向包括智能出价优化、实时竞价广告拍卖机制优化、搜索广告智能推词算法以及相关的策略研发。相关技术业界领先,拥有巨大的业务空间。

3. 相关技术在内外循环、生态内容、搜推一体的竞价广告业务中直接应用,推动业务快速发展。

职位要求:

1. 计算机相关专业,本科以上学历, 2年以上工作经验;

2. 在机器学习,数据挖掘,自然语言处理,推荐系统等一个或多个算法领域有扎实的理论基础和丰富的研发经验,对算法原理及应用有较深入的理解;

3. 具有很强的编程能力,至少熟练 java/python/golang/c++其中一种开发语言,有大数据处理经验者更优;

4. 良好的逻辑思维能力,善于发现和推理不同事物之间的关系和影响;

5. 具备优秀的分析和解决问题的能力,对解决具有挑战的问题充满激情,具备良好的主动性和求知欲,具备良好的沟通协作和抗压能力;

6. 在互联网效果和品牌广告、自然搜索、自然推荐中某一领域有工作经验则更佳。

投递方式:

欢迎感兴趣的朋友投递简历至:

REDtech@xiaohongshu.com

并抄送至下方邮箱以获得最快速响应:

yuanfei@xiaohongshu.com

chuandao@xiaohongshu.com

nuannuan1@xiaohongshu.com

咨询更多活动信息请添加小助手微信:REDtech01

这篇关于上干货!小红书“薯条”业务竞价策略及最优公式详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/211380

相关文章

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

6.1.数据结构-c/c++堆详解下篇(堆排序,TopK问题)

上篇:6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)-CSDN博客 本章重点 1.使用堆来完成堆排序 2.使用堆解决TopK问题 目录 一.堆排序 1.1 思路 1.2 代码 1.3 简单测试 二.TopK问题 2.1 思路(求最小): 2.2 C语言代码(手写堆) 2.3 C++代码(使用优先级队列 priority_queue)

hdu 4565 推倒公式+矩阵快速幂

题意 求下式的值: Sn=⌈ (a+b√)n⌉%m S_n = \lceil\ (a + \sqrt{b}) ^ n \rceil\% m 其中: 0<a,m<215 0< a, m < 2^{15} 0<b,n<231 0 < b, n < 2^{31} (a−1)2<b<a2 (a-1)^2< b < a^2 解析 令: An=(a+b√)n A_n = (a +

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

业务协同平台--简介

一、使用场景         1.多个系统统一在业务协同平台定义协同策略,由业务协同平台代替人工完成一系列的单据录入         2.同时业务协同平台将执行任务推送给pda、pad等执行终端,通知各人员、设备进行作业执行         3.作业过程中,可设置完成时间预警、作业节点通知,时刻了解作业进程         4.做完再给你做过程分析,给出优化建议         就问你这一套下

嵌入式Openharmony系统构建与启动详解

大家好,今天主要给大家分享一下,如何构建Openharmony子系统以及系统的启动过程分解。 第一:OpenHarmony系统构建      首先熟悉一下,构建系统是一种自动化处理工具的集合,通过将源代码文件进行一系列处理,最终生成和用户可以使用的目标文件。这里的目标文件包括静态链接库文件、动态链接库文件、可执行文件、脚本文件、配置文件等。      我们在编写hellowor

LabVIEW FIFO详解

在LabVIEW的FPGA开发中,FIFO(先入先出队列)是常用的数据传输机制。通过配置FIFO的属性,工程师可以在FPGA和主机之间,或不同FPGA VIs之间进行高效的数据传输。根据具体需求,FIFO有多种类型与实现方式,包括目标范围内FIFO(Target-Scoped)、DMA FIFO以及点对点流(Peer-to-Peer)。 FIFO类型 **目标范围FIFO(Target-Sc