公众号:数据拾光者

本篇主要调研了一篇2020年的论文《Sample Optimization For Display Advertising》,论文下载地址如下:

https://dl.acm.org/doi/10.1145/3340531.3412162


广告行业中那些趣事系列85:论文《Sample Optimization For Display Advertising》调研_召回率

01 摘要

样本优化,包括样本增强和样本精细化,在展示广告中是一个重要但常常被忽略的部分。由于广告候选项的数量庞大,工业广告服务通常利用至少两个阶段的多层漏斗形结构:召回和精排。

在召回中,通常会基于过去的点击/转化数据训练离线神经网络匹配模型,以获取用户特征向量和广告特征向量。然而,用户观察到的广告和所有可能的广告之间存在协变量漂移问题。

在本文中,我们利用几种样本优化策略来缓解召回模型的样本偏差问题。我们已经在百度广告平台上推出了这些策略,在离线指标(包括离线点击召回率、成本召回率以及在线ecpm)上取得了相当大的改进。

02 简介

展示广告是像百度和谷歌这样的在线广告发布商的主要收入来源,它们将广告空间出售给广告主并向最终用户展示广告。出版商预期的收入通常是通过“每千次展示成本”(CPM)来衡量的,它的计算方法是出价和点击率(CTR)或转化率(CVR)的乘积。



广告行业中那些趣事系列85:论文《Sample Optimization For Display Advertising》调研_数据_02

由于广告语料库的数量巨大,工业广告排名系统通常利用至少两个阶段的多层漏斗形结构[3]:(i)召回;和(ii)精排,如上图所示。使用用户特征向量对用户特征和上下文进行编码,召回阶段将语料库的大小从数百万减少到数千或数百。精排采用一些复杂模型和额外特征来生成最终的广告列表并向用户展示。由于需要从大的语料库中高效地生成一个小但适当的子集,因此召回过程至关重要。在真实的展示广告系统中,通常有多个生成策略在召回阶段并行运行,以确保足够的召回率。这些策略包括但不限于双塔网络、基于用户和基于项目的协同过滤、基于上下文的排名等。在我们的广告系统中,我们广泛采用基于神经网络的模型,特别是所谓的“双塔表示学习模型”(或简称“双塔模型”)。早期流行的双塔模型设计是DSSM。对于本文,由于我们关注样本优化,我们将简单地使用术语“双塔模型”,而不在我们的系统中给出其详细描述。

从数据角度来看,为了训练一个合适的召回模型,存在几个挑战:

• 训练集和推理集的分布差异很大。在实际的展示广告系统中,通常使用近似最近邻搜索(ANN) 从数百万广告中获取近似的前几百个候选项。这些结果最初与其他召回支路合并,然后进行精排。因此,只有少数广告幸存下来并展示给用户。按照上述程序,最终用户观察到的数据(曝光)与推理集(即全部广告集)非常不同。导致无法充分捕捉用户的潜在意图,并且对未见样本的泛化能力有限。这个问题也称为样本选择(存活)偏差或协变量漂移。

• 实际世界中的广告展示数据通常具有长尾分布。尽管高频广告只覆盖了一小部分人群,但它们比其他广告更重要或具有更高的出价。由于大多数展示的广告都没有被点击,许多高频广告都包含在负面训练集中。在训练过程中,这些广告可能会被抑制,导致收入下降。

• 被展示但未被点击的广告不一定是真正的负样本。在展示广告服务系统中,大多数展示的广告由于各种原因都没有被点击。因此,我们无法断言它们不符合用户的兴趣。这种不确定性挑战了模型训练,因为很难区分哪些样本是真正的负样本。

• 由于大多数广告都没有被点击,训练数据非常稀疏。特别是正面训练样本严重不足。

许多工作侧重于设计更好的排名模型[4、8、15],但很少有研究从数据角度如何训练更好的召回模型。在本文中,我们设计并研究了几种样本优化策略,包括加权随机负采样、真负子采样、PU学习的样本细化、模糊正样本增强和噪声对比估计的采样。这些策略分别旨在解决或缓解上述挑战。我们在百度展示广告平台上启动了这些策略,并在离线指标(包括离线点击率、成本召回率和在线指标每千次展示成本(CPM))方面取得了相当大的改进。

本文的贡献如下:

• 为了解决协变量转移问题,我们首先研究了各种样本优化策略,以训练更好的召回模型。尽管本文侧重于展示广告,但大多数策略也适用于一般的个性化搜索和推荐系统。

• 我们进行了广泛的离线和在线实验,以评估这些策略,并总结了每种策略对整体结果的贡献。

03 采样方法

3.1 负样本逻辑的baseline

论文中没完整描述,根据其他采样方法的描述推测出来,

为每个正样本随机从所有广告中选择k个广告作为负样本。其中所有广告是指所有曝光广告,并且按照曝光频次进行采样。

3.2 加权随机负采样

为每个正样本随机从所有广告中选择k个广告作为负样本。

因为广告的曝光是长尾分布,论文采用piece-wise weighted negative sampling。

方法是:

  • 1.首先,根据广告的曝光频次对广告进行分组:将大于阈值的记为Ah, 小于阈值的为Al, f(a)为广告a的曝光频次。
  • 2.然后,生成一个(0,1)之间的随机数p。

如果p小于Pl,则从Al使用均匀采样的方法得到一个广告;

否则从Ah中基于unigram distribution分布采样得到一个广告。



广告行业中那些趣事系列85:论文《Sample Optimization For Display Advertising》调研_离线_03

其中Pl的定义:



广告行业中那些趣事系列85:论文《Sample Optimization For Display Advertising》调研_离线_04

unigram定义:x取值越大,打压程度就越大



广告行业中那些趣事系列85:论文《Sample Optimization For Display Advertising》调研_召回率_05

核心思想就是,进行负样本采样时,只有对高频广告进行打压,低频广告不打压。

3.3 高价值负样本降采样

百度广告展示系统整体的广告点击率只有0.03%。而且曝光频次是长尾分布的,所以少数的广告占据了大部分曝光。

这些广告可能同时出现在正样本和负样本中。我们不希望这些广告出现在负样本中被压制,因为他们通常具有很高的商业价值。因此会对这部分广告进行降采样。

采用的方法是:训练集中具有较高曝光频率的广告的负样本三元组,以这个概率丢弃:



广告行业中那些趣事系列85:论文《Sample Optimization For Display Advertising》调研_数据_06

其中, f(ai)是归一化后的曝光频次。beta 为设定好的阈值通常在10^-5左右,t2在0到1之间。广告的曝光频次越高,丢弃的概率越大。

实验表明,这样显著提高了离线的召回率和线上的CPM指标。

3.3 PU学习中的样本细化

一般而言,曝光但没有被用户点击的广告会被视为负样本。然而,未被点击的广告并不一定与用户无关,比如说信息流中因为没有下拉导致虽然可能有兴趣但是没有曝光的样本。因此,百度将历史数据视为正样本(点击)和未标记(可靠的负样本+潜在正样本)的组合,并将负样本集细化为只包括那些可靠的负样本。使用的方法是“spy technique”。从正样本集P中随机选取一个“spy set” S,然后把S添加到未标记的样本集合U中;正样本集合P剔除S后的样本作为正样本,U∪S的样本作为负样本,然后训练一个SVM分类模型;用训练好的SVM分类器给U中的样本打分,看看这些样本有多大的概率是正样本;利用公式:



广告行业中那些趣事系列85:论文《Sample Optimization For Display Advertising》调研_离线_07

计算“spy set”的平均概率。将U中点击率小于spy set平均点击率的样本的作为真正的负样本RN。

最后用RN和P来训练召回模型。

3.4 模糊正样本增强

为了缓解正样本稀疏的问题,这里采用一种模糊逻辑来扩充正样本。在最终返回的广告列表中,有很多广告没有得到曝光。虽然这些没有曝光的隐藏广告不能直接作为训练样本,但他们也是经过召回步骤得到候选集和排序步骤后留下的广告,有更高的概率与用户的兴趣相匹配。

为了扩充正样本,我们从未展示的日志中收集有比预先设定阈值更高CPM的广告。将这部分广告作为模糊正样本,加入到模型训练中,但这些样本的label并非为1,而是小于1的数。

3.5 使用噪声对比估计进行采样

NCE是一种生成模型,能生成负样本,百度用这种方法扩大负样本集。

04 实验

我们从我们的展示广告平台上收集了2020年1月11日的曝光日志。由于点击样本很少,我们将所有点击样本保留为正样本。我们还随机抽取了1%的未点击样本,总样本量3亿,用于训练双塔模型。

为了评估我们的样本优化策略,我们从2020年1月12日的展示日志中收集了两种类型的测试数据:

• 一种测试数据是跳过精排阶段,直接显示来自我们召回模型的前几个广告。跳过精排的目的是消除排名模型对用户展示顺序的影响。我们将此测试集称为无偏测试集。

• 收集另一个类似于无偏测试集的测试集,不同之处在于我们保留了精排的顺序,并将排名后的广告展示给用户。我们将此测试集称为有偏测试集。

由于无偏在线实验只涵盖了一小组用户,因此我们在无偏测试集中收集了270万个样本,而在有偏测试集中收集了2亿个样本。下表总结了三个数据集的统计信息。



广告行业中那些趣事系列85:论文《Sample Optimization For Display Advertising》调研_离线_08

4.1 评估指标

我们进行线上和线下两种评估。由于我们的重点是改进召回模型,因此召回率是我们评估返回的广告候选项的相关性的主要指标。对于测试集中的用户,我们使用训练好的双塔模型构建用户emb,并应用ANN搜索其前N=240个广告候选项。

然后,我们将返回的前N个候选项与用户实际点击的广告进行比较。对于离线指标,我们计算点击召回率和成本召回率,它们分别衡量返回的前N个候选项中相关广告的百分比和相关广告在总成本中的占比。

点击召回指标计算方式:



广告行业中那些趣事系列85:论文《Sample Optimization For Display Advertising》调研_数据_09

消耗召回指标计算方式:



广告行业中那些趣事系列85:论文《Sample Optimization For Display Advertising》调研_数据_10

4.2 五种样本优化策略

我们将点击广告视为正样本,未点击广告视为负样本。然后,我们提出了五种样本优化策略:

  • (a)加权随机负采样,
  • (b)真实负样本子采样,
  • (c)PU学习的样本细化,
  • (d)模糊正样本增强,
  • (e)带噪声对比估计的采样。

4.3 评估效果

下表总结了使用上面五种样本优化策略的效果:



广告行业中那些趣事系列85:论文《Sample Optimization For Display Advertising》调研_离线_11

我们的第一个观察是,对于两个测试集,AUC并没有提高。原因是我们的策略使召回模型能够探索更多用户偏好,而不是纯粹地适应历史曝光数据。尽管牺牲了一定的AUC,我们显著提高了离线召回率和在线CPM,并保持了一致的趋势,这表明我们的策略可以召回更多相关广告。

由于候选广告生成模型是在排序和曝光数据上训练的,因此无偏测试集上的召回率小于有偏测试集上的召回率。

总之,当组合五种策略时,取了最佳的离线和在线结果,这对两个测试集都是一致的。

4.4 消融实验结果

为了研究每种策略对整个模型的贡献,下表统计了消融实验结果:



广告行业中那些趣事系列85:论文《Sample Optimization For Display Advertising》调研_召回率_12

无偏测试和有偏测试的离线结果是一致的。对于在线CPM改善指标,(a)、(b)和(e)的贡献最大,在离线和在线实验中趋势相似,而PU学习的贡献最小。

模糊正样本(d)在点击召回率和在线CPM↑方面产生了相反的结果。一个可能的原因是,点击召回率(忽略出价)和在线CPM(考虑出价)具有不同的目标,这可能会导致结果不一致。

05 结论

在这篇论文中,我们利用了几种样本优化策略来缓解召回模型中的生存偏差问题。在真实的离线数据集上进行的实验证明了所提出策略的实用性。我们已经在我们的展示广告产品线中推出了这些策略,并在在线的千次展示成本(CPM)方面取得了显著的改进。