强化学习样本集_数据

图1 广告排序两阶段架构

简介

样本优化包括样本增强和样本提纯,是现代广告投放平台中一个重要但经常被忽视的组成部分。由于大量的候选广告,工业广告服务通常利用多层漏斗形结构(如图1所示),至少涉及两个阶段:候选样本生成和重新排序。在候选样本生成步骤中,通常根据过去的点击/转换数据训练离线神经网络匹配模型,得到用户特征向量和广告特征向量。然而,在用户观察到的广告和所有可能的广告之间存在一个协变量转移问题。因此,从点击/转换历史中训练出来的候选生成模型不能完全捕捉用户的潜在意图,也不能很好地推广到用户未看到的广告中。针对传统召回阶段负样本采样的缺点,百度团队提出几点改进策略,并在其广告投放平台中进行了实际的实验,表明改进的方法能够带来离线指标(如召回率)和业务指标(如CPM)的提升。

广告系统中的一些挑战

对于广告排序业务而言,排序阶段的负样本选择比较简单,可以直接选择曝光给用户但用户没有点击的广告作为负样本,但为什么召回阶段就不能选择“曝光而未点击”的广告作为负样本呢?主要有以下几点原因:

1、一些模型(如Youtobe的召回网络)采用ANN(近似K近邻)来快速选择一部分相关性较大的样本,然后再与其他特征一起送入到排序模型中。因此,只有少数广告幸存下来并展示给用户。按照上述步骤,最终用户观察到的数据(即点击或未点击)与完整的广告集有很大的不同。因此,排序模型不能完全捕捉用户的潜在意图,并不能很好地推广到不可见的样本。这个问题也被称为样本选择偏差或协变量转移。

2、真实场景下的广告曝光数据通常是有长尾分布的。虽然高频广告只占一小部分,但它们比其他广告更重要或出价更高。由于大多数曝光的广告没有被点击,许多高频广告被认为是负样本。在训练期间,这些广告可能会被抑制,导致商业收入下降。

3、曝光但未被点击的广告并不一定是真正的负样本。在广告投放服务系统中,大多数被曝光的广告由于各种原因没有被点击。因此,我们不能认为它们不符合用户的利益。这种不确定性对模型训练提出了挑战,因为很难区分哪些样本是真正的负样本。

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

负样本采样优化方法

Weighted Random Negative Sampling

假定\(A=A_{h}\cup A_{l}\)是所有的广告样本,其中\(A_{h}=\left\{ a:f(a)>\alpha \right\}\),\(A_{l}=\left\{ a:f(a)\leq \alpha \right\}\)。\(f(a)\)表示广告\(a\)的曝光频率,\(\alpha\)是预先定义的一个阈值。当我们在采样一个负样本时,首先从分布\(p\sim U(0,1)\)中随机采样一个数\(p\),如果\(p< p_{l}\),则从广告集合\(A_{l}\)随机均匀采样出一个样本,\(p_{l}=(\sum_{a_{i}\in A_{l}}^{}f(a_{i})^{t})/(\sum_{a_{j}\in A}^{}f(a_{j})^{t})\);否则,从广告集合\(A_{h}\)中采样出一个样本,集合中样本被采样到的概率为:\(P(a_{i})=f(a_{i})^{t}/(\sum_{a_{j}\in A_{h}}^{}f(a_{j})^{t})\)。

Real-Negative Subsampling

在百度广告投放平台中,整体CTR只有0.03%左右。由于曝光频率的长尾分布,一些头部广告占据主导地位,它们可能出现在正样本集中(曝光且点击)和真实的负样本集(曝光但未点击)中。我们不希望出现在负样本集的头部广告被过度抑制,因为它们通常有很高的商业价值。我们没有使用所有的负样本进行训练,而是执行类似于处理word2vec中频繁单词的子采样。具体地说,在训练集中每个具有高曝光频率的负样本,以一定的概率\(p(i)\)丢弃,\(p(i)=1-(\beta / \hat f(a_{i}))^{t}\)

Sample refinement with PU Learning

一般而言,曝光但没有被用户点击的广告会被视为负样本。然而,未被点击的广告并不一定与用户无关。因此,百度将历史数据视为正样本(点击)和未标记(可靠的负样本+潜在正样本)的组合,并将负样本集细化为只包括那些可靠的负样本。使用的方法是“spy technique”。

  • 从正样本集\(P\)中随机选取一个“spy set” \(S\),然后把\(S\)添加到未标记的样本集合\(U\)中;
  • 正样本集合\(P\)剔除\(S\)后的样本作为正样本,\(U \cup S\)的样本作为负样本,然后训练一个SVM分类模型;
  • 用训练好的SVM分类器给U中的样本打分,看看这些样本有多大的概率是正样本;
  • 利用公式\(\overline{p}=\sum_{(u,a)\in S}^{}p(y=1|u,a)/\left|S \right|\)计算“spy set”的平均概率;
  • 将\(U\)中点击率小于spy set平均点击率的样本的作为真正的负样本\(RN\)。

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

Fuzzy Positive Sample Augmentation

为了缓解数据稀缺问题,百度引入了模糊逻辑来增加正样本。 在最终广告列表中,仅向用户显示前几个广告,而其余的则可能不会显示。 尽管这些隐藏的广告不能直接用作训练样本,但它们已经通过了候选集生成和排序阶段,并且更有可能满足用户的兴趣。

为了增加正样本,我们解析未显示的事件日志,并在最终列表中收集所有三元组(用户,广告,CPM),并且CPM高于预定义的阈值。 我们将这些三元组(用户,广告,每千次展示费用/出价)称为“模糊的正样本”,并将其添加到正样本的训练集中。 值得注意的是,由于模糊正样本的标签不是单击记录,因此其标签小于1。

Sampling with Noise Contrastive Estimation (NCE)

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