前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >推荐系统遇上深度学习(一零二)-[百度]展示广告中的样本优化

推荐系统遇上深度学习(一零二)-[百度]展示广告中的样本优化

作者头像
石晓文
发布2020-11-24 10:42:12
1.4K0
发布2020-11-24 10:42:12
举报
文章被收录于专栏:小小挖掘机小小挖掘机

本文介绍的是CIKM20上百度发表的一篇有关展示广告召回阶段样本优化的文章,论文名称是《Sample Optimization For Display Advertising》。文章提出了多种样本优化的方法,极大提升了线上广告收入,一起来学习一下。

1、背景

工业界广告排序系统大都至少包括两个阶段:候选生成阶段(召回阶段)和排序阶段,如下图所示:

本文我们主要关注召回阶段,在这一阶段,通常是多种策略并行,如协同过滤、基于上下文的召回等等。在百度的系统中,最广泛使用的召回的方式是双塔模型。从数据层面来看,训练一个合适的召回模型,面临如下几方面的挑战:

1)样本选择偏差:召回阶段模型训练的样本是经过排序阶段后最终展示给用户的,仅有一小部分的广告会展示给用户。但模型需要对整个广告队列进行预测,二者存在样本选择偏差。 2)真实的广告曝光分布通常是长尾的,一小部分广告占据了大部分的曝光,这些广告通常有更高的出价,具有更高的ecpm。但由于大部分曝光的广告没有被用户点击,这些高价值的广告通常多次被标记为负样本,其召回概率也降低,平台的收益也会随之下降。 3)曝光但未点击的广告,并不一定是真正的负样本。在广告系统中,一个广告未被点击通常出于多方面的原因,并不能直接认为这些广告与用户兴趣不匹配。 4)广告点击率低,导致样本中正分样本的数量差距较大,正样本比较稀疏。

对于以上几方面的问题,在召回阶段如何从数据层面进行优化呢?论文提出了多种策略,一起来看一下。

2、样本优化

本文提出的策略主要包括Weighted Random Negative Sampling、Real-Negative Subsampling、Sample refinement with PU Learning、Fuzzy Positive Sample Augmentation和Sampling with Noise Contrastive Estimation (NCE)。接下来分别进行简单的介绍。

2.1 Weighted Random Negative Sampling

第一种方法是使用负采样方式来丰富训练样本。由于广告曝光存在明显的长尾现象,因此论文提出了分片加权负采样的方式( piece-wise weighted negative sampling method)。

具体的做法是:首先基于广告的曝光频次对广告进行分组,曝光次数大于一定阈值的计作Ah,曝光次数小于一定阈值的计作Al。随后,产生一个(0,1)之间的随机数p,如果随机数p<pl,则从Al使用均匀采样的方式采样得到一个广告,否则从Ah中基于一元模型分布(unigram distribution)采样一个负样本广告(这里可以参考word2vec里面的negative sampling方式,本文不进行详述)。其中pl定义如下:

上式中f(ai)为广告ai的曝光频次。而Ah中每个广告的被选择概率为:

由于||Al||远大于||Ah||,相比于原始的负采样方式,存储和时间复杂度上也是明显有降低的。

2.2 Real-Negative Subsampling

在百度的广告平台,广告点击率大约只有0.03%,由于长尾分布的存在,一小部分头部的广告占据了大部分的曝光,这些广告可能同时出现在正样本集合(曝光点击)和负样本集合(曝光未点击)中。这些头部广告往往具有更高的商业价值,因此不希望这些样本在负样本集合中出现太多次,因此会对这部分广告的负样本进行降采样。

具体的,具有高曝光的广告的负样本,基于以下的概率进行抛弃:

上式中第二项的分母是归一化后的曝光频次,分子β为设定好的阈值。广告的曝光频次越高,第二项越小,则抛弃概率更高。

这样的降采样方法,极大保证了线上的CPM指标(广告收入指标),在后文的实验结果中可以看到。

2.3 Sample refinement with PU Learning

这一种方法主要针对曝光未点击样本。曝光未点击可能是出于多种原因,并不一定代表用户真的不感兴趣,因此这里采用了一种PU learning的方式。将收集到的数据分为正样本和未标记样本。通过"spy technique"从未标记样本中找到比较置信的负样本。

1)首先从正样本集合P中随机选取一部分spy set,计作S,并将S加入到未标记样本集合U中; 2)使用去除S后的正样本集合P\S,作为正样本,U和S的交集作为负样本,训练biased SVM classifer(可参考论文《Building Text Classi ers Using Positive and Unlabeled Examples》) 3)使用得到的分类器计算U中每个样本的点击概率 4)计算spy set中所有样本的平均点击概率 5)U中预测点击率小于4)中得到的平均点击概率的样本, 作为比较置信的负样本, 计作RN。

最后,可以使用正样本集合P和RN来训练得到召回模型。

2.4 Fuzzy Positive Sample Augmentation

为了缓解正样本稀疏的问题,这里采用了一种较为启发式的方式来扩充正样本。在最终返回的广告列表中,只有头部的广告曝光给了用户,还有很多没有得到曝光,虽然这些样本没有得到曝光,但是是经过召回阶段和排序阶段的广告,有更高的概率与用户的兴趣相匹配。因此,从这部分未曝光的样本中,选择CPM高于预先设定阈值的样本作为模糊正样本,加入到模型训练中,但这些样本的label并非为1,而是小于1的数。

2.5 Sampling with Noise Contrastive Estimation (NCE)

最后一种方法是在采样时使用Noise Contrastive Estimation (NCE)的方式。关于NCE,可以参考论文《Noise-contrastive estimation: A new estimation principle for unnormalized statistical models》,这里不在详述。

3、实验结果

最后来看下实验结果部分,先看下实验的设定,训练集使用所有的正样本以及1%采样的负样本,测试集包括两部分,一部分是不经过排序直接展示在头部的广告,称为Unbiased Test Set,另一部分是经过排序后展示给用户的广告,称为Biased Test Set。

离线评估指标包括AUC、click-recall和cost-recall,其中click-recall的计算方式如下:

上式中,Lu是召回模型得到的广告集合,Bu是用户有点击行为的广告集合,而cost-recall的计算方式与click-recall相似:

而线上的评估指标主要是广告收入。最终的结果如下:

可以看到,在不断叠加上述策略过程中,模型的AUC越来越低,这主要是因为上述策略增加了模型的泛化能力,而不仅仅是拟合过往的曝光数据。而随着策略的不断叠加,recall指标以及线上CPM都得到了明显的提升。

好了,本文就介绍到这里,感兴趣的同学可以阅读原文哟~

最后是轻松一刻,分享一下我家萌萌的狗子,嘻嘻~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-11-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小小挖掘机 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、背景
  • 2、样本优化
    • 2.1 Weighted Random Negative Sampling
      • 2.2 Real-Negative Subsampling
        • 2.3 Sample refinement with PU Learning
          • 2.4 Fuzzy Positive Sample Augmentation
            • 2.5 Sampling with Noise Contrastive Estimation (NCE)
            • 3、实验结果
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档