Facebook 广告系统背后的 Pacing 算法

简介:

Facebook 上个月公布亮瞎双眼的 2015年 第四季度财报,其中日活用户超过 10 亿,营收达到 58.41 亿美金,而广告就占了 56.37 亿美金,更恐怖的是来自于移动广告业务的营收占了 80%。笔者在 Facebook 上面也曾经创建过营销页面,其实是拿到内部朋友一定限额的广告 (Campaign) 推广费用,当时惊讶投放的高效(太快了,不到 1 小时几十刀都没了),由于自己也做过广告系统,也做过很多对比,从形式多样性,功能的完整性,定位用户,实时性,数据分析报告各项综合指标 Facebook 都是行业翘楚,下面就是它们内部对广告系统 Pacing 算法的剖析,也适合广告技术入门查看。

首先介绍一些在线广告术语

每个广告 (Ad) 有一个出价 (Bid), 并有其在某情形下实际的点击率 (Click-Through-Rate, CTR)

广告按点击收费 (Charge per Click, CPC), 策略有一价计费 (First-Price, FP, 即广告出价多少则一次点击计费多少) 和二价计费 (Second-Price, SP, 即广告按下一位出价来支付点击价格, 更普遍的是 GSP,Google,Yahoo, LinkedIn 都是用这一种)

千次展现收费 (Cost Per Mille, CPM, 或 RPM, R for Revenue), 即对点击付费广告其展示一千次情况下的收入 (一价计费下等价于 1000CTRBid), 或是展示广告的千次展现固定价格

预估点击率 (predict CTR, pCTR) 是指对某个广告将要在某个情形下展现前, 系统预估其可能的点击概率

Pacing 是 Facebook 广告系统中调节花费预算节奏的一个算法,一个类比就是竞跑的运动员:过早冲刺意味着在终点前就没劲了,但过晚冲刺也许你就没完成这次比赛。Pacing 保证对所有的广告主在竞争前提下自动分配不同的广告预算。Pacing 就是优化的核心组件让广告主获得最大的投资回报率(ROI)。

Facebook Pacing 算法是怎么工作的?

我们通过一个例子解释 Pacing 工作原理。下面会涉及到点击,同样的想法可以应用到浏览,转换,行为,到达率等。

一个广告主想对一个运动品牌做广告。每天预算 $10,以 CPC 计费,我们预先假定每次广告点击能产生 $5 的收益。

当他/她创建广告后,对 LINK_CLICKS (点击链接)做优化, bid_amount(出价)设置为 $5, billing_event(触发收费的事件)为 LINK_CLICKS, 基于这些为真的条件. 目标用户群为男性 25-35 岁。

广告主的利润是这些点击产生的价值减去花去的预算。

为了简化起见,我们假设这些机会(点击,展示等)的当天价格是提前知道的。这样我们能更清楚阐明点击价格和收入关系。这些假设是基于目标产生的机会进行建模。

下面我们通过三个例子去理解 Pacing 算法对广告主提供最大的价值。

情况一:没有 Pacing 算法的时候

没有 Pacing,广告主预算在一开始很短时间就被消耗干净(可能潜在的昂贵点击),前期竞争激烈,后期无竞争,形成一定的资源浪费。下面的图蓝色的点代表广告获得展示的机会,黄色的圈代表广告赢得展示,红线代表出价的价格。结果是平均成本会高些,但广告主会得到基于广告设置的最想要的投放。这叫做加速投放。

广告总花费 = $10

广告总点击价值 = 6 * $5 = $30

每次点击价值 = $5

预算 = $10

广告总收益 = $30 – $10 = $20

案例二:出价过低

这种情况下,追求最低的点击价格,但是广告主的预算最后没有能用完,最终的广告效果也最差。

广告总花费 = $4

广告总点击价值 = 4 * $5 = $20

每次点击价值 = $5

预算 = $10

广告总收益 = $20 – $4 = $16

案例三:Pacing 算法下的均衡状态

这时候,广告客户获得了最大的点击数,获取到了最大收益,同时也用完了每日预算。

广告总花费 = $10

广告总点击价值 =7* $5 = $35

每次点击价值 = $5

预算 = $10

广告总收益 = $35 – $10 = $25

简单的公式

从上面例子中,当我们在整段时间内使用稳定的出价(Pacing),广告主的价值相比没有 Pacing 或者出价过高过低,得到了最大化。为了实现目标,Pacing 期望通过学习其他的有同样目标用户的竞争广告,提出一个优化的竞价。这就是个简单公式。

最终竞价 (每次展示) = 优化竞价 (每次展示)* CTR where 优化竞价 <= max_bid

决定优化竞价的是 Pacing 算法的核心,包括反馈系统让 Pacing 记录下来。

CTR 是点击率。我们使用相同理念来看 查看率(VTR) 和转化率(CVR)。这些值的精确性会稳步提高,也受各种因素影响,比如广告类型,受众,时间点,广告上下文等。

Pacing 的重要性

Pacing 在给定预算下最大化广告主的利润。它让广告主更加真实,和 Vickrey–Clarke–Groves (VCG 通过计算一个广告主参加拍卖给别的广告者带来的损失之和来定价的) 拍卖,这里面欺骗价值没有任何好处,也没有必要去想最大竞价应该设多少。如此可以避免拍卖系统中的特殊机会。

Pacing 保证了可预测的投放。这种稳定投放让每日的价格稳定并帮助广告主公平获取他们目标用户的门槛。

FAQ

问:我的广告没有被 pacing 算法正确的优化,可能是什么原因?

答:如果广告显示正常,有两个原因,一个是最优化的价格太低,保证你的竞价在建议价格范围内这样你才有机会赢得席位。对于竞争力的受众,你需要把价格调高到建议价格之上。

另外一个原因是目标受众过于狭窄。

如果这个广告投放过度,你可能有个很大的受众但快速消耗你的预算。

问: 当我改变了我的预算的时候,Pacing 会受到什么影响?

答:Pacing 会去计算新的最优出价,但这个过程会需要一定的时间,这段时间内的出价不是最优的,所以建议不要频繁的修改出价和预算的设置。

总结:Pacing 就是通过学习同一受众目标内的广告竞争环境来决定最优化出价。

本文转自d1net(转载)

相关文章
|
23天前
|
机器学习/深度学习 算法 TensorFlow
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
动物识别系统。本项目以Python作为主要编程语言,并基于TensorFlow搭建ResNet50卷积神经网络算法模型,通过收集4种常见的动物图像数据集(猫、狗、鸡、马)然后进行模型训练,得到一个识别精度较高的模型文件,然后保存为本地格式的H5格式文件。再基于Django开发Web网页端操作界面,实现用户上传一张动物图片,识别其名称。
53 1
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
|
22天前
|
机器学习/深度学习 人工智能 算法
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
植物病害识别系统。本系统使用Python作为主要编程语言,通过收集水稻常见的四种叶片病害图片('细菌性叶枯病', '稻瘟病', '褐斑病', '稻瘟条纹病毒病')作为后面模型训练用到的数据集。然后使用TensorFlow搭建卷积神经网络算法模型,并进行多轮迭代训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地模型文件。再使用Django搭建Web网页平台操作界面,实现用户上传一张测试图片识别其名称。
73 21
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
|
22天前
|
机器学习/深度学习 人工智能 算法
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
鸟类识别系统。本系统采用Python作为主要开发语言,通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型,然后进行模型的迭代训练,得到一个识别精度较高的模型,然后在保存为本地的H5格式文件。在使用Django开发Web网页端操作界面,实现用户上传一张鸟类图像,识别其名称。
71 12
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
|
22天前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
47 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
18天前
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
42 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
1天前
|
算法
基于最小二乘递推算法的系统参数辨识matlab仿真
该程序基于最小二乘递推(RLS)算法实现系统参数辨识,对参数a1、b1、a2、b2进行估计并计算误差及收敛曲线,对比不同信噪比下的估计误差。在MATLAB 2022a环境下运行,结果显示了四组误差曲线。RLS算法适用于实时、连续数据流中的动态参数辨识,通过递推方式快速调整参数估计,保持较低计算复杂度。
|
2天前
|
机器学习/深度学习 人工智能 开发框架
【AI系统】AI 学习方法与算法现状
在人工智能的历史长河中,我们见证了从规则驱动系统到现代机器学习模型的转变。AI的学习方法基于深度神经网络,通过前向传播、反向传播和梯度更新不断优化权重,实现从训练到推理的过程。当前,AI算法如CNN、RNN、GNN和GAN等在各自领域取得突破,推动技术进步的同时也带来了更大的挑战,要求算法工程师与系统设计师紧密合作,共同拓展AI技术的边界。
20 1
|
2月前
|
存储 人工智能 自然语言处理
算法、系统和应用,三个视角全面读懂混合专家(MoE)
【8月更文挑战第17天】在AI领域,混合专家(MoE)模型以其独特结构成为推动大型语言模型发展的关键技术。MoE通过动态选择专家网络处理输入,实现条件计算。稀疏型MoE仅激活部分专家以减少计算负担;软MoE则加权合并专家输出提升模型稳定性。系统层面,MoE优化计算、通信与存储,利用并行化策略提高效率。在NLP、CV、推荐系统等领域展现强大应用潜力,但仍面临训练稳定性、可解释性等挑战。[论文链接: https://arxiv.org/pdf/2407.06204]
189 63
|
1月前
|
前端开发 搜索推荐 算法
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
中草药管理与推荐系统。本系统使用Python作为主要开发语言,前端使用HTML,CSS,BootStrap等技术和框架搭建前端界面,后端使用Django框架处理应用请求,使用Ajax等技术实现前后端的数据通信。实现了一个综合性的中草药管理与推荐平台。具体功能如下: - 系统分为普通用户和管理员两个角色 - 普通用户可以登录,注册、查看物品信息、收藏物品、发布评论、编辑个人信息、柱状图饼状图可视化物品信息、并依据用户注册时选择的标签进行推荐 和 根据用户对物品的评分 使用协同过滤推荐算法进行推荐 - 管理员可以在后台对用户和物品信息进行管理编辑
58 12
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
|
18天前
|
机器学习/深度学习 人工智能 算法
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台。果蔬识别系统,本系统使用Python作为主要开发语言,通过收集了12种常见的水果和蔬菜('土豆', '圣女果', '大白菜', '大葱', '梨', '胡萝卜', '芒果', '苹果', '西红柿', '韭菜', '香蕉', '黄瓜'),然后基于TensorFlow库搭建CNN卷积神经网络算法模型,然后对数据集进行训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地文件方便后期调用。再使用Django框架搭建Web网页平台操作界面,实现用户上传一张果蔬图片识别其名称。
37 0
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台