电商搜索广告出价系统

plus2047 于 2022-12-31 发布

初次接触广告系统时,很容易被广告系统的一大堆缩写术语搞糊涂:CTR, pCTR, CVR, pCVR, CR, CIR, eCPM, CPC … 本文将会梳理一下对技术侧比较重要的一些概念、搜索广告常见的产品形态以及计费方式。

关键词人工出价

商家购买搜索广告时,一种比较传统的形式是为每件商品购买一些关键词 (keyword),并提供一个出价 (bidding price),然后按照点击付费。比如,商品是一件水杯,绑定关键词「水杯」,并出价一角钱。用户搜索文本含有「水杯」关键词时,将会在所有购买了该关键词的广告中进行竞价,出价更高的广告更容易排在靠前的位置。用户确实点击了该广告,则会按照点击次数进行付费,这就是 CPC (cost per click) 付费形式。CPC 搜索广告最常见的付费形式。这种用户直接给出 bidding price 的情景下,CPC 就等于 bidding price.

对于平台而言,排序时应该考虑广告质量,如果一个广告质量很差,用户不可能点击,即使它的 bidding price 较高,也不应该将其排在太靠前的位置。对广告质量的一个很好的衡量方式是点击率 CTR, 顾名思义,就是这个广告展示给用户(一般称为曝光 Impression)后得到点击(Click) 的概率。一个广告真实的 CTR 是个理论值,是不可知的。一般会使用一个机器学习模型产生一个预测值,就是 pCTR. 于是,展示一个广告,平台预期能够得到的收益就是,

\[\text{eCPM} = 1000 \cdot \text{pCTR} \cdot \text{Bidding}\]

CPM (Cost per mille) 代表千次点击收费,eCPM 则代表使用模型估计的 (estimated) 千次点击收费。eCPM 排序是当前广泛使用的一种排序公式。

使用 CPM 这个术语是一种约定俗成的习惯。mille 是拉丁语 thousand。

这些术语中,p 开头的缩写一般是借助机器学习模型预测的 (predicted) 值,比如 pCTR. 而不带 p 的 CTR 代表的一般是理论值、真实值。或者有时用不带 p 的 CTR 表示泛指。带 e 的值一般指使用模型预测值推导计算的 (estimated) 值。

对于这样一个系统,其最关键的部分将会是 pCTR 模型。一般会使用深度学习技术来构建该模型。

CIR 自动出价方案

人工出价方案将一个困难问题留给了商家:该如何为单次点击出价呢?设置太低,则无法获得曝光,设置太高,则广告费可能比利润还高,商家将会亏损。因此,我们需要某种自动出价方案,协助商户进行竞价。

相对于单次点击的付费预算,商家其实更容易确定单个订单 (Order) 的预算。这是因为,商品的价格和成本都是固定的,商家可以更好地计划以收入的多大比例投放广告。CIR (Cost Income Ratio) 即广告费占 GMV(Gross Merchandise Value, 也即总收入,不仅是利润)的比例。CIR 自动出价也即,用户只需要设置 CIR, 广告平台将会自动进行出价、竞价。

eCPM 排序中需要的是 bidding price, 于是广告平台需要根据 CIR 给出一个 price. 现在已知,

\[\text{CIR} = \frac{\text{Bidding}}{\text{GMV}}\]

而在 CPC 付费模式下,对于一次付费,我们只能保证一次点击,并不能保证用户会下单。于是,我们需要一个模型预测用户下单的概率。这就是 pCR 模型(转换率模型,也常常称为 pCVR 模型,CR or CVR = Conversion). 当商品的价格是 Price, 一次曝光之中,商户期望得到的 GMV 就是 $\text{Price} \cdot \text{pCR}$. 带入到上一个公式,我们得到 Bidding 的计算公式,

\[\text{Bidding} = \text{Price} \cdot \text{pCR} \cdot \text{CIR}\]

这样,我们就借助 pCTR 和 pCR 两个模型,实现了商品的自动出价。于是,最终的 Ranking 公式就是,

\[\text{eCPM} = 1000 \cdot \text{pCTR} \cdot \text{pCR} \cdot \text{CIR}\cdot \text{Price}\]

实际使用时当然可以忽略掉常数 $1000$,

\[\text{Rank Score} = \text{pCTR} \cdot \text{pCR} \cdot \text{CIR} \cdot \text{Price}\]

值得一提的是,在搜索场景中,用户的点击率 CTR、转换率 CR 是跟关键词高度相关的。即使是在推荐场景中,根据上下文的不同,用户的 CTR, CR 也会有很大的不同,因此试图统计得到这些值是不可行的,需要使用机器学习模型,根据商品名字、价格等信息,以及搜索关键词等信息,对 CTR, CR 进行预测。

利益权衡

广告问题的复杂之处就在于,这是一个三方参与的问题,广告平台、商户、消费者,三方的利益都需要得到考虑。很显然,作为平台方,如果过度牺牲商户或者消费者利益,会导致商户和消费者流失,从而不利于平台长期发展。当然,也需要保护广告平台本身的利益。

表征消费者体验的重要指标是 CTR, 较高的 CTR 通常意味着用户更感兴趣的商品。非广告的搜索排序公式基本就是 pCTR 一项,因此其 CTR 会比广告结果更高。

表征商户利益的重要指标就是 CIR. CIR 过高意味着商户在广告上投入过大,可能导致商户流失。10% - 20% 的 CIR 可能已经是一个较大的数值。当然,由于并非所有的商品都会开启广告,全平台的 CIR 会显著低于这个值。

为了妥善协调三方利益,有两个做法可供参考。

其一,在 AB Test 和 Live Monitor 中持续追踪平台收入 Revenue, CTR, CR, CIR, 下单总数 Order 以及商户总收入 GMV 等指标的统计值(统计值是用真实用户行为计算的,而非模型预测的,因此可以视为真实值)。广告系统的 AB Test 等优化过程,一般需要保证 CIR 在合理范围内(保证商户利益),追求 Order/GMV 提升(商户利益提升),或 CTR, CR 提升(用户体验提升,一般也会导致 Order 提升),或 Revenue 提升(平台自身收入提升)。

其二,可以在 Ranking 公式中加上一些给 pCTR 或者 CTCVR (CTR*CR) 提权的项,比如,

\[\text{Rank Score} = \text{eCPM} + \alpha \cdot \text{pCTR}\]

以此,可以通过调节常数 $\alpha$ 实现权衡 CTR, Order 与平台 Revenue.

另外,也可以实现更复杂的 Bidding logic, 根据 Query 热门程度、商品热门程度、是否为新商品、用户特征等等,给出多样化的 Bidding 策略,从而实现各种业务目标。

由于广告系统中 pCTR 和 pCR 模型承担着精确预测 CTR 和 CR 数值的任务,难以在这两个模型上施加复杂的业务目标。因此,业务目标(比如,某段时间内想要提升 GMV)可以通过调整 Bidding 策略和 Ranking Score 公式实现。

推荐系统和搜索系统的 Ranking 模型实际上只需要给出一个序,并不需要无偏的预测 CTR 数值(也即,如果该模型预测的所有的候选 item 分数翻倍,并没有任何问题)。但广告系统的 pCTR 模型的特殊之处在于,排序公式需要一个无偏的 pCTR 预测值。如果 pCTR 预测值过低,会导致广告系统总体出价低下,反之亦然。pCR 同理,需要无偏的 pCR 数值。无偏是指,pCTR 平均值与 CTR 真实值应该相等。因此,广告系统的 pCTR 模型和 pCR 模型需要一个校正 (Calibration) 步骤。我们将会在 Ranking 一节中继续介绍。