On the Factory Floor: ML Engineering for Industrial-Scale Ads Recommendation Models笔记

论文链接:https://arxiv.org/pdf/2209.05310.pdf

ABSTRACT

对于工业规模的广告系统来说,广告点击率(CTR)的预测是一个核心问题。广告点击率构成了用户参与的一个重要类别,并经常被用作广告对用户有用性的主要信号。此外,在按点击率收费的广告系统中,广告商按点击率收费,点击率预期直接反馈到价值评估中。因此,对于大多数互联网广告公司来说,点击率模型的开发是一项重大投资。针对这些问题的工程需要许多适合在线学习的机器学习(ML)技术,这些技术远远超出了传统的准确性改进,特别是关于效率、可重复性、校准和信用归属。我们提出了一个部署在谷歌搜索广告CTR模型中的实用技术的案例研究。本文提供了一个行业案例研究,强调了当前ML研究的重要领域,并说明了如何在大规模的工业环境中评估和使用有影响力的新ML方法。

1. INTRODUCTION

1.1 CTR for Search Ads Recommendations

对于给定的初始上下文,推荐问题从给定的语料库中显示一个结果或一组结果。初始的上下文可能是用户人口统计学、以前看过的视频、搜索查询query、或其他。搜索广告特别着眼于将一个query与一个广告相匹配。用于推荐的CTR模型特别旨在预测概率(click | x),其中输入 x 是广告查询对⟨ad, query⟩,可能会有影响CTR的额外因素,特别是与用户看到它的方式有关:广告将如何在结果页面上定位和呈现(第6节)。
除了给用户展示出最大限度的有用结果,广告推荐系统还有重要的额外校准(calibration)要求。实际的点击标签是随机的,反映了用户的嘈杂反应。对于任何给定的广告查询 x_i 和二进制标签 y_i ,我们通常希望在一些 instance (测试或训练中)上精确地实现𝑃(𝑐𝑙𝑖𝑐𝑘|𝑥𝑖) :=E⟨𝑥𝑖,𝑦𝑖⟩∼𝐷[𝑦𝑖=𝑐𝑙𝑖𝑐𝑘|𝑥𝑖]。虽然在监督训练中,典型的对数似然目标将导致整个验证集的总体校准偏差为零,但每个实例的偏差往往不是零。
广告的定价和分配问题产生了每个实例的计算要求。通常情况下,预测将流向一个拍卖机制,该机制结合出价来决定广告商的定价。拍卖定价方案(例如,VCG[63])依赖于各种潜在结果的相对价值。这就要求对所有潜在选择的预测都能很好地相互校准。此外,与简单的推荐者不同,广告系统经常选择不显示广告。这就需要估计单个广告相对于无广告的 "空集 "的价值,而不是简单地最大化广告的相关性。
考虑像“yarn for sale”这样的查询;来自“yarn-site-1.com”的广告的估计点击率可能为 15.3%。来自“yarn-site-2.com”的广告的估计 CTR 可能为 10.4%。尽管可以通过网站的语义相关性来进行此类估计,但对精度的要求超出了人们对通用语言模型的期望。此外,点击数据是高度非平稳的:点击预测本质上是一个在线推荐问题。 15.3% 的期望值与翻译或图像推荐等意义上的静态基本事实不同;随着时间的推移,它肯定更容易演变。

1.2 Outline

对于广告 CTR 预测器,模型质量的微小改进通常会转化为改进的用户体验和整体广告系统收益。这激发了对模型研究和开发的持续投资。来自 ML 文献的理论和基准改进很少直接转移到实际应用程序的问题相关设置。因此,模型研究必须主要是经验性和实验性的。因此,在评估新技术时,必须高度重视模型训练实验的机器成本。
在第 2 节我们会先概述模型和训练设置;然后第 3 节讨论了效率问题并详细介绍了几种成功部署的技术。在第 4 节中,我们调查了现代 ML 技术的应用,这些技术旨在提高准确性的衡量标准,并明确面向超大规模模型。 4.4 节总结了经验结果,粗略地描述了这些技术的相对影响。
深度神经网络 (DNN) 在包括大规模工业环境在内的许多应用中提供了对以前方法的实质性改进。然而,非凸优化揭示(并加剧了)预测的一个关键问题:不可重复性 [22, 26, 56-59]。两次训练相同的模型(相同的架构、超参数、训练数据)可能会导致第二个模型的指标与第一个模型非常不同。我们区分模型不可重现性(与固定数据的预测严格相关)和系统不可重现性(部署的不可重现模型会影响重要的系统指标)。第 5 节描述了该问题并描述了对模型不可再现性的改进。
一个有效的点击预测模型必须能够泛化不同的 UI 处理,包括:广告在页面上的显示位置以及广告格式的任何更改(例如,加粗特定文本或添加图像)。第 6 节描述了改进 UI 泛化性能的特定模型分解。最后,第 7 节详细介绍了一种向模型添加
偏差约束
的通用技术,该技术已应用于提高泛化性和系统不可再现性。
本文做出以下贡献:1) 我们从包括准确性、效率和可重复性在内的多个角度讨论了实际的 ML 考虑因素,2) 我们详细介绍了提高效率和准确性的技术的实际应用,在某些情况下描述特定于在线学习的适应,以及 3)我们描述了模型如何通过模型分解和偏差约束更好地概括 UI 处理。

2. MODEL AND TRAINING OVERVIEW

一个主要的设计选择是如何表示一个广告查询对。query 和广告标题中的语义信息是最关键的组成部分。在原始文本token之上使用注意力层可能会在当前文献 [64] 中生成最有用的语言嵌入,但我们发现,通过结合全连接DNN的变化和简单的特征生成,如子词单元上的bi-grams和n-grams,可以获得更好的准确性和效率折衷。用户查询和广告标题的简短性是一个促成因素。这些特征的数据非常稀疏,每个示例通常只有一小部分非零特征值。
所有的特征都被视为分类的,并被映射到稀疏的嵌入表。给定一个输入,我们将所有特征的嵌入值连接起来,形成一个向量,即我们的DNN的嵌入输入层。 E 表示几个 instance 的嵌入值e的mini-batch。
接下来,我们正式描述该模型的全连接神经网络架构的简化版本。后面的章节将介绍这个架构的变化,以提高准确性,效率,或可重复性。我们向一个全连接的隐藏层𝐻1=𝜎(𝐸𝑊1)馈入E,该层使用权重W1进行E的线性转换,然后进行 𝜎 非线性激活。隐层 𝐻𝑖=𝜎(𝐻𝑖−1𝑊𝑖) 被堆叠起来,第 i 层的输出被送入输出层 ˆ𝑦=sigmoid(𝐻𝑘𝑊𝑘+1) ,产生对应于点击估计 ˆy 的模型预测。模型权重按照min𝑊 L(𝑦𝑖,ˆ𝑦𝑖)进行优化。我们发现Re-LU是激活函数的一个好选择;第5节描述了使用平滑激活函数的改进。该模型是通过监督学习训练的,观察到的点击标签 y 相对于 ˆy 的逻辑损失。第4节和第7节描述了改进我们模型的额外损失。训练使用张量处理单元(TPU)上的同步小批量SGD[37]:在每个训练步骤中,计算一批 instance(范围多达数百万个instance)上的损失梯度,并使用自适应优化器优化权重。**我们发现AdaGrad[25, 46]在优化嵌入权重和密集网络权重方面效果不错。**此外,在第4.2节中,我们讨论了部署二阶优化器所带来的精度提高。Distributed Shampoo[5]用于训练密集网络权重,据我们所知,这是第一个已知的大规模部署在生产规模的神经网络训练系统。

2.1 Online Optimization

鉴于广告优化中数据的非平稳性,我们发现在线学习方法在实践中表现最好[45]。模型使用单一的顺序通过按时间顺序记录的 instance 来进行训练。随着数据的到来,每个模型继续处理新的 <query - ad> 实例[62]。对于评估,我们使用模型对每个 instance 的预测,从该 instance 被训练之前开始(即渐进验证)[12]。这种设置有许多实际的好处。由于所有的指标都是在对一个 instance 进行训练之前计算出来的,我们有一个反映我们的部署设置的即时的概括性措施。因为我们不需要维持一个保留的验证集,我们可以有效地使用所有的数据进行训练,从而获得更高的信心测量。这种设置使得整个学习平台可以作为一个单通道流算法来实现,有利于使用大型数据集。

3. ML EFFICIENCY

我们的点击率预测系统为向用户展示的所有广告提供预测,为每天数十亿次查询的大量合格广告打分,并需要支持推理的速率超过100,000 QPS。用于推理的计算量的任何增加都会直接转化为大量的额外部署成本。推理的延迟对于实时CTR预测和相关的拍卖也是至关重要的。当我们评估对我们模型的改进时,我们仔细权衡任何准确性的提高和推理成本的增加。
模型训练成本也同样需要考虑。对于有固定计算预算的连续研究,衡量成本的最重要的轴是带宽(可同时训练的模型数量)、延迟(新模型的端到端评估时间)和吞吐量(每单位时间可训练的模型)。
在推理和训练成本可能不同的情况下,可以使用几种 ML 技术进行权衡。特别是蒸馏可以用于控制推理成本或摊销训练成本(参见第 4.1.2 节)。与自适应网络增长相关的技术 [20] 可以控制相对于更大的最终模型(具有更大的推理成本)的训练成本。
在最小带宽和最大训练延迟的约束下,通过最大化模型吞吐量来实现对ML训练的计算资源的有效管理。我们发现,所需的带宽最常见的是由处理一个固定任务的研究人员的数量决定的。对于一个有影响力的广告模型来说,这可能代表了几十个工程师试图在一个单一的建模任务上取得渐进式的进展。训练中不同的并行性(即加速器芯片的数量)控制了开发延迟。在许多系统中,延迟的降低往往是以牺牲吞吐量为代价的。例如,使用两倍的芯片数量可以加快训练速度,但由于并行化的开销,往往是亚线性的(训练速度不到两倍)。
对于任何特定的ML进展,必须权衡眼前的收益和未来研发的长期成本。例如,天真地扩大一个大型DNN的规模可能会提供即时的准确性,但会给未来的训练增加令人望而却步的成本(表1包括技术的比较,并包括一个这样的天真扩展的基线)。
image.png
我们发现,文献中有许多技术和模型架构可以显着提高模型精度,但未能通过测试这些改进是否值得权衡取舍(例如,集成许多模型,或完全随机变分贝叶斯推理[13])。我们还发现,许多提高准确性的 ML 技术可以通过调整模型参数(尤其是权重总数)来改写为提高效率,以降低训练成本。因此,当我们评估一项技术时,我们通常对两个调整点感兴趣:1)当训练成本为中性时,准确度的提高是多少;2)如果模型容量降低直到准确度为中性,训练成本的提高是多少.在我们的设置中,一些技术在提高训练成本方面要好得多(例如,第 4.1.2 节中的蒸馏),而另一些则在提高准确性方面做得更好。图 1 说明了这两个调谐轴。
image.png
我们将在本节的其余部分调查一些成功上线的提高效率的技术。第 3.1 节详细介绍了使用矩阵分解瓶颈以降低成本来近似大矩阵乘法。第 3.2 节描述了 AutoML,这是一种基于 RL 的高效架构搜索,用于识别平衡成本和准确性的模型配置。第 3.3 节讨论了一组有效的采样策略,以减少用于训练的数据而不损害准确性。

3.1 Bottlenecks

**实现准确性的一种实用方法是扩大网络中所有层的宽度。它们越宽,模型中的非线性就越多,实际上这会提高模型的准确性。**另一方面,损失和梯度计算中涉及的矩阵的大小增加,使得底层的 matmul 计算变慢。不幸的是,matmul 操作的成本在其输入的大小上呈二次增长。计算隐藏层的输出 𝐻𝑖=𝜎(𝐻𝑖−1𝑊𝑖) 其中 𝑊𝑖∈R𝑚×𝑛,我们对 𝐻𝑖−1 中的每个输入行执行 𝑚×𝑛 乘加运算。 “越广越好”的策略通常不具有成本效益 [23]。我们发现在非线性层之间小心地插入低秩矩阵的瓶颈层(bottleneck layers)大大降低了缩放成本,而相对精度只有很小的损失。
将奇异值分解应用于 𝑊𝑖’ 上,我们经常观察到奇异值的上半部分占奇异值范数的 90% 以上。这表明我们可以通过瓶颈层𝐻𝑖−1𝑈𝑖𝑉𝑖来近似𝐻𝑖−1𝑊𝑖,其中 𝑈𝑖∈R𝑚×𝑘, 𝑉𝑖∈R𝑘×𝑛。计算量减少到𝑚×𝑘+𝑘×𝑛,这对于足够小的 𝑘 是非常显著的。对于一个固定的 𝑘,如果我们按常数 𝑐 缩放 𝑚 和 𝑛 ,计算量也是仅与 𝑐 成线性关系。根据经验,我们发现这种近似的准确性损失确实很小。通过仔细平衡以下两个因素,我们能够在不增加计算成本的情况下利用瓶颈来实现更好的准确性:(1)以更多的计算为代价增加层大小以提高准确性,以及(2)插入瓶颈层以减少计算, 精度损失很小。可以手动或通过 AutoML 技术(在下一节中讨论)来平衡这两者。最近将该技术手动应用于模型(没有 AutoML 调整)将每个训练步骤的时间减少了 7%,而不会影响准确性(参见表 2 以了解效率技术的摘要)。

3.2 AutoML for Efficiency

为了开发一个具有最佳精度/成本权衡的广告点击率预测模型架构,我们通常必须调整几十个特征的嵌入宽度和DNN中每一层的宽度。假设每一种宽度的选项只是一个小的常数,组合搜索空间很快就会达到难以解决的规模。对于工业规模的模型来说,用多次迭代的方式进行传统的架构搜索是不符合成本效益的[50, 76]。我们已经成功地采用了基于权重共享的神经结构搜索[9]来有效地探索网络配置(例如,改变层的宽度,嵌入维度),以找到我们的模型的版本,提供中性精度,减少训练和服务成本。如图2所示,这是由三个部分实现的:一个分权网络、一个RL控制器和约束。
image.png
分权网络建立了一个超级网络,其中包含搜索空间中所有的候选架构作为子网络。通过这种方式,我们可以在一次迭代中同时训练所有的候选结构,并通过激活超级网络的一部分来选择一个特定的结构。这种设置大大减少了探索迭代的次数,从O(1000)到O(1)。
强化学习控制器在候选网络上保持一个抽样分布,即 𝜃𝑑𝑖𝑠𝑡。它对一组决定 (𝑑1,𝑑2, …) 进行采样,以便在每个训练步骤激活一个子网络。然后,我们对激活的子网络进行前向传递,以计算损失(模型使用的)和成本(强化学习使用的)。在此基础上,我们估计奖励值 𝑅(𝑑1,𝑑2, …) 并使用 REINFORCE 算法[68]进行策略梯度更新,具体如下:
image.png
其中 𝑅 表示奖励的移动平均值,𝛼0 是强化学习算法的学习率。
通过每个训练步骤的更新,更好的架构的采样率将逐渐增加,采样分布将最终收敛到一个有希望的架构。我们在训练结束时选择具有最大可能性的架构。约束条件规定了如何计算被激活的子网络的成本,这通常可以通过估计浮点运算的数量或运行预先建立的硬件感知的神经成本模型来完成。强化学习控制器将提供的成本估计纳入奖励,例如下式:

image.png

通过这种方法使得采样分布收敛到一个成本约束点。为了搜索具有较低训练成本和中性精度的架构,在我们的系统中,我们设置了多个具有不同约束目标的AutoML任务(例如基线成本的85%/90%/95%),并选择具有中性精度和最小训练成本的一个。最近在模型中应用这种架构搜索,使每个训练步骤的时间减少了16%,而没有降低准确率。

3.3 Data Sampling

搜索广告的历史点击日志构成了一个庞大的数据集,每天都在大幅增加。越来越大的数据集的收益递减,决定了保留所有的数据是没有好处的。提高模型质量的边际价值趋于零,最终不能证明训练计算和数据存储的任何额外机器成本是合理的。除了使用ML优化技术来提高ML效率外,我们还使用数据抽样来控制训练成本。鉴于训练是按时间顺序对数据进行的单次处理,有两种方法可以减少训练数据集:

  1. 限制所消耗数据的时间范围;
  2. 对该范围内的数据进行采样。

将训练数据限制在较近的时期是很直观的。当我们把日期范围进一步往前延伸时,数据与未来问题的相关性就会降低。
无论在任何时间范围内,点击行为都是稀缺的,对我们的学习任务更重要。所以我们对未点击的 instance 进行抽样,以达到大致的类别平衡。由于这主要是为了提高效率,准确的类平衡是不必要的。一个恒定的采样率(一个恒定的类不平衡先验)可以用一个简单的单通滤波器来实现。为了保持模型预测的无偏性,重要性加权被用来对负的 instance **按采样率的倒数进行加权。**另外两个已被证明有效的抽样策略如下。

  • 采样与低逻辑损失相关的 instance (通常是估计CTR低和没有点击的 instance )。
  • 根据用户在页面上的位置,取样的 instance 是非常不可能被用户看到的。

上述条件的阈值是手工调整的,选择的目的是在不损害模型准确性的情况下最大限度地减少数据。这些策略是通过对所有符合上述任何条件的 instance 应用一个小的、恒定的采样率来实现的。伪随机抽样决定了是否应该保留和重新加权的 instance ,或者干脆丢弃。这确保了所有的训练模型都在相同的数据上进行训练。这个方案可以看作是[28]的一个实用版本,适用于具有昂贵评估的大型问题实例。简单的随机抽样使我们能够通过简单的恒定重要性再加权来保持模型估计的无偏性。**重要的是,在这个方案中要避免非常小的采样率,随之而来的大加权会导致模型不稳定。**再加权对于保持校准尤为重要,因为这些抽样策略与标签直接相关。
某些抽样策略需要计算 instance 的 loss,而计算该损失就需要在训练 instance 上运行推理,从而消除大部分的性能收益。出于这个原因,我们使用一个基于 "教师模型 "预测的代理值。在这种两步走的方法中。我们首先在所有数据上训练一次,以计算损失和相关的采样率,然后在子采样数据上训练一次。第一道工序使用相同的教师模型进行蒸馏(第4.1.2节),只做一次。迭代研究就可以只在次级采样数据上进行。虽然后面的这些模型在每个 instance 中都会有不同的损失,但第一遍的损失估计仍然为训练 instance 的 "难度 "提供了一个很好的信号,并在实践中导致了良好的结果。总的来说,我们将类的重新平衡和基于损失的抽样策略结合起来,在任何给定的时期内都将数据减少到原始数据集的25%以下,而不会有明显的准确性损失。

4. ACCURACY

接下来我们详细介绍一组旨在提高系统准确性的技术。我们讨论了:

  1. 更好地将离线训练时间指标与重要业务指标保持一致的额外损失
  2. 蒸馏在我们的在线训练设置中的应用
  3. Shampoo 二阶优化器对我们的模型的适应
  4. Deep & Cross 网络。

4.1 Loss Engineering

损失工程在我们的系统中扮演着重要的角色。由于我们模型的目标是预测广告是否会被点击,我们的模型通常会针对逻辑损失进行优化,通常被认为是模型预测与每个示例的二进制任务(点击/不点击)标签之间的交叉熵.使用逻辑损失可以使模型预测无偏,从而可以将预测直接解释为校准概率。通过蒸馏方法引入软预测可以改进二进制预测[35]。除了估计每个广告的 CTR 之外,对特定查询的候选广告集进行正确排序也很重要(保证有点击的广告比没有点击的广告具有更高的点击率),因此结合适当的 rank loss 也很重要。在本节中,我们将讨论新的辅助损失,并介绍用于联合训练的多任务和多目标方法与这些损失。
**4.1.1 rank loss。**我们发现,每次查询的ROC曲线下的面积(PerQueryAUC)是一个与量化模型整体性能的商业指标有很好关联的指标。除了在评估过程中使用PerQueryAUC外,我们还使用这个指标的放松变体,即rank-loss,作为我们模型的第二个训练损失。在 LTR 相关方法中,有许多 rank loss[17, 48]。我们发现一个有效的近似值是Ranknet损失[16],它是一个成对的logistic损失。

image.png

其中 , s 是两个 instance 的 logit 分数。
rank loss 应与 logistic loss 共同训练;有几种潜在的优化设置。一种可能的方法是,创建一个多目标的优化问题[52]。

image.png

其中,s 是 instance 的 logit 分数,yrank 是 rank 标签,y 是二分类任务标签,𝛼1∈ (0,1) 是 rank loss 权重。
另一个解决方案是使用多任务学习[18, 51],其中模型对每个损失产生多个不同的估计。

image.png
其中 𝑊shared 是两个损失之间共享的权重,𝑊logistic 是控制 logistic 损失的输出,𝑊rank 控制 rank 损失的输出。在这种情况下, rank loss 通过 𝑊shared影响 "主要 "预测的slogistic,起到类似于"正则器"的作用。
由于 rank-loss 不是自然校准的点击概率预测指标(笔者认为,这里的校准的意思是预估出的分数不是有意义的概率估计,而只是一个没有物理意义的浮点数),模型的预测会有偏差。需要一个强大的偏差校正组件来确保模型的预测在每个 instance 中是无偏的。更多的细节可以在第7节找到。在模型中应用 rank loss ,使准确率提高了-0.81%,而训练成本却略微增加了1%。

4.1.2 Distillation。蒸馏法增加了一个额外的辅助损失,重新要求与高容量教师模型的预测相匹配,将教师的预测视为软标签[35]。在我们的模型中,我们使用了一个两段式的在线蒸馏设置。在第一遍中,教师模型在对样本进行训练之前逐步记录其预测结果。学生模型在第二轮训练中使用教师的预测。**因此,从单个教师那里产生预测的成本可以在许多学生中分摊(不需要教师重复推理以产生预测)。**除了提高准确性,蒸馏法还可以用来降低训练数据的成本。由于高容量的教师被训练过一次,它可以在更大的数据集上进行训练。学员隐含地从教师对更大的训练集的先前知识中受益,因此只需要训练较小和较新的数据。在模型中加入蒸馏法后,在不增加训练成本的情况下,学生模型提高了0.41%的准确率。

4.1.3 Curriculums of Losses。在机器学习中,课程学习[10]通常涉及到模型先学习简单的任务,然后逐渐转换到更难的任务。我们发现,在训练开始时对所有类别的损失进行训练会增加模型的不稳定性(表现为离群的梯度,导致质量偏离)。因此,我们采用了一种类似于课程学习的方法来提升损失,从二元逻辑损失开始,在训练过程中逐渐提升蒸馏和 rank loss 的权重。

4.2 Second-order Optimization

众所周知,与一阶方法相比,使用二阶导数或二阶统计的二阶优化方法具有更好的收敛性[47]。然而据我们所知,二阶方法很少被报道用于DNN的生产性ML系统中。最近关于 Distributed Shampoo 的工作[5, 32],通过利用TPU和主机-CPU提供的异构计算,以及采用额外的算法效率改进,使二阶优化在我们的模型中变得可行。
对于我们的模型,Distributed Shampoo 在训练步骤方面提供了更快的收敛,并且与标准的自适应优化技术(包括AdaGrad[25]、Adam[38]、Yogi[72]和LAMB[70] )相比产生了更好的精度。虽然二阶方法与文献中的一阶方法相比,已知能提供更快的收敛性–但由于优化器的计算开销,特别是在较小规模的基准上,它往往不能提供有竞争力的时间性能。对于我们的模型,二阶优化方法是理想的候选方法,这是因为在训练中使用了大的 batch size,从而减少了昂贵的更新规则的成本。训练时间只增加了大约10%,而对模型准确性的改进远远超过了训练时间的增加。我们接下来讨论我们的模型所特有的突出的实施细节。

学习率。在线优化的主要挑战之一是定义一个 learning rate schedule。与在静态数据集上的训练相比,一个在线模型所需的步骤数是未知的,而且可能是无限制的。因此,文献中流行的取决于固定时间范围的学习率计划,如余弦衰减或指数衰减,与AdaGrad[25]中隐含的依赖数据的自适应计划相比,表现较差。正如在文献[2]中所观察到的,我们也发现AdaGrad的隐式 schedule 在在线设置中工作得相当好;特别是在参数(初始累积器值)被调整之后。因此,我们通过嫁接 AdaGrad 的每层步长来引导 Distributed Shampoo 的 schedule。更确切地说,我们使用 Shampoo 的方向,同时使用 AdaGrad 的每层粒度的步长大小。这种引导的一个重要特点是,它允许我们从以前的AdaGrad调整中继承超参数,以寻找一个帕累托最优配置。

动量。另一个有效的实现选择是将 Nesterov 风格的动量与预设梯度相结合。我们的分析表明,动量在Shampoo的基础上增加了适度的收益,而没有增加计算开销,同时略微增加了内存开销。计算开销是通过[61]中描述的近似方法解决的。

稳定性和效率(Distributed Shampoo)。 每一步的计算复杂度较高,因为它涉及到大矩阵的矩阵乘法,用于预处理和统计/预处理的计算。在我们的部署中,我们用几种技术来解决这些开销。例如,[5]中建议的块对角化有效地降低了计算复杂性,同时也允许通过权重更新分片[69]在数据并行设置中实现每个块的并行更新。这种优化减少了整体的步骤时间。此外,优化器的开销与batch size无关;因此,我们使用大的 batch size 有助于减少整体计算开销。最后,我们发现,用于预判的统计量的条件数可以在范围内变化,达到1010以上。由于数值的稳定性和稳健性在生产中是最重要的,我们使用双精度数值。为了计算前置条件,我们使用连接在TPU上的CPU来运行inverse-𝑝th roots,并利用更快的算法;耦合牛顿迭代[31]来计算更大的前置条件,如图3所示。

当与广告点击预测模型相结合时,该优化器将我们衡量准确性的主要标准,即每次查询计算的ROC曲线下的面积(PerQueryAuc)提高了0.44%。准确性的提高超过0.1%被认为是非常重要的。作为比较:粗暴的讲深度网络参数量扩大2倍产生了0.13%的PerQueryAUC改进。准确率技术结果的总结见表1。

image.png

4.3 Deep & Cross Network

学习有效的特征交叉是推荐系统的关键[65, 74]。我们采用了DCNv2[65]的一个高效变体,使用瓶颈。这是在第2节中描述的嵌入层和DNN之间添加的。我们接下来描述深度和交叉网络的架构及其嵌入层的输入。我们使用一个标准的嵌入投影层来处理稀疏的分类特征。我们使用 ̃𝑒𝑖=𝑊𝑖𝑥𝑖 将分类特征从高维稀疏空间投射到低维密集空间,其中 𝑥𝑖∈ {0,1}𝑣𝑖;𝑊𝑖∈R𝑚𝑖×𝑣𝑖 是学习的投影矩阵;𝑒𝑖 是密集嵌入表示;𝑣𝑖 和 𝑚𝑖 分别代表词汇量和密集嵌入大小。对于多价特征,我们使用嵌入向量的池化。嵌入尺寸{𝑚𝑖}使用AutoML(第3.2节)对效率和精度的权衡进行调整。嵌入层的输出是一个宽的连接向量 𝑒0=concat( ̃𝑒1, ̃𝑒2. . . ̃𝑒𝐹) ∈R𝑚,对于F个特征。
对于交叉,我们采用了[65]的有效变体,直接应用于嵌入层之上,明确地学习特征交叉 𝑒𝑖=𝛼2(𝑒0 ⊙ 𝑈𝑖𝑉𝑖𝑒𝑖−1)+𝑒𝑖−1,其中, 𝑒𝑖,𝑒𝑖−1∈R分别代表第 i 个交叉层的输出和输入;𝑈𝑖 ∈ R𝑚×𝑘 和 𝑉𝑖 ∈ R𝑘×𝑚是学习的权重矩阵,利用瓶颈(3.1节)以提高效率;𝛼2 是一个标量,在初始训练期间从 0→1 升温,允许模型首先学习 embedding,然后以课程学习的方式在循序渐进的进行交叉。此外,这种 ReZero 初始化[7]也提高了模型的稳定性和可重复性(第5节)。在实践中,将深度和交叉网络加入到模型中产生了0.18%的准确性改进,而训练成本只增加了3%。

4.4 Summary of Efficiency and Accuracy Results

下面我们分享前面讨论过的应用于生产模型的效率和精度技术的相对影响的测量。我们的目标是对这些技术的影响和它们的精度与效率的权衡给出一个非常粗略的感觉。虽然在一个特定的模型上精确测量精度的提高不一定有意义,但我们相信技术的粗略排名和结果的粗略程度是有趣的(并且与我们的一般经验一致)。

5. IRREPRODUCIBILITY(不可复现性)

第1节中提到的不可重复性,可能不容易发现,因为它可能出现在部署后的系统指标中,而不是逐步验证的质量指标中。一对重复的模型可能会收敛到高度非凸目标的两个不同的最优值,给出相同的平均精度,但不同的个体预测,并产生不同的下游系统/拍卖/排序结果。模型部署会导致进一步的分歧,因为被部署的模型所选择的广告会成为后续训练实例的一部分[62]。这可能会严重影响研发:实验模型可能看起来很有好处,但当它们被重新训练并部署到生产中时,收益可能会消失。理论分析是复杂的,即使是在简单的凸情况下,也只是在最近的工作中考虑[3]。许多因素导致了不可预测性[29, 30, 54, 59, 60, 75],包括随机初始化、高度并行化和高度分布式训练管道导致的训练的非确定性、数值错误、硬件等等。训练早期的轻微偏差可能会导致非常不同的模型[1]。
虽然标准训练指标不会暴露系统的不可再现性,但我们可以使用对单个示例的预测偏差作为廉价代理,从而使我们能够在部署时的评估之前快速失败。可以使用常见的统计指标(标准偏差、各种差异)[21, 71],但它们需要训练更多的模型,这在我们的规模上是不可取的。相反,我们使用相对预测差 (PD) [56, 58] 指标:

image.png
测量一对模型(下标 1 和 2)的模型预测的绝对 pointwise 差异,由该对的平均预测归一化。计算 PD 需要训练一对模型而不是一个,但我们观察到减少 PD 足以提高重要系统指标的可复现性。在本节中,我们将重点介绍改进 PD 的方法;第 7 节侧重于直接改进系统指标。
深度模型的 PD 可能高达 20%。也许令人惊讶的是,固定初始化、正则化、dropout、数据增强等标准方法,以及施加约束的新方法 [11, 55] 要么未能改善 PD,要么以降低精度为代价提高了 PD。像热启动模型权重到先前训练的模型的值这样的技术可能并不可取,因为它们可以将模型锚定到一个可能不好的解决方案空间,并且无助于没有锚的更新的、更可重复的模型的开发周期。
其他技术已显示出不同程度的成功。集成 [24],特别是自集成 [4],我们对多个模型副本(每个模型的初始化不同)的预测进行平均,可以减少预测方差和 PD。然而,在具有多个组件的生产系统中维护集成会积累大量技术债务 [53]。虽然一些文献 [39、43、67] 描述了集成的精度优势,但在我们的体系中,相对于相同成本训练的单一网络,集成降低了精度。我们认为这是因为,与基准图像模型不同,在线 CTR 系统中的示例只访问一次,更重要的是,学习的模型参数主要由稀疏嵌入决定。相关地,基于集成和约束的更复杂的技术也可以改善 PD [6、56、57]。
上述技术以准确性和复杂性为代价换取更好的可重复性,需要集成或约束。进一步的研究和实验表明,整流线性单元 (ReLU) 激活的广泛使用可能导致增加 PD。ReLU 在 0 处的梯度不连续性导致高度非凸的loss landscope。另一方面,更平滑的激活会减少非凸性的数量,并且可以产生更多可重现的模型 [58]。各种平滑激活的经验评估 [8, 34, 49, 73] 不仅显示出比 ReLU 更好的重现性,而且还显示出更好的准确性。通过[58]中提出的简单平滑版的 reLU (SmeLU) 激活实现了我们系统中最好的再现性-准确性权衡

函数形式为:
image.png

在我们的系统中,3-component ensembles 将 PD 从 17% 降低到 12%,并且反蒸馏(anti-distillation)将 PD 进一步降低到 10%,并且没有精度损失。 SmeLU 允许启动 PD 小于 10% 的非集成模型,这也将精度提高了 0.1%。与 ReLU 单组件模型的不可接受水平相比,系统再现性指标也提高到可接受的水平。

6. GENERALIZING ACROSS UI TREATMENTS(归纳不同的UI处理方法)

广告的点击率的主要影响因素之一是它的用户界面处理,包括定位、相对于页面上的其他结果的位置,以及特定的呈现方式,如加粗的文本或内嵌的图像。一个复杂的拍卖会不仅要探索要显示的结果集,还要探索它们相对于其他内容应该如何定位,以及它们应该如何被单独呈现[19]。这种探索必须在可能的处理方法的巨大的组合空间内有效地进行。
我们通过模型分解来解决这个问题,用 𝜏(𝑄·𝑈) 代替估计的CTR,由一个传递函数 𝜏 组成,其中 ,𝑄, 𝑈是可分离的模型,分别输出质量和用户界面的矢量表示,并使用内积进行组合。虽然 Q 由大型DNN和各种特征嵌入组成,是一个昂贵的模型,但它只需要对每个广告进行一次评估,而不考虑UI处理的数量。相比之下,U 是一个更轻的模型,每个广告可以被评估数百次。此外,由于 UI 模型的特征空间相对较小,输出可以被缓存,以吸收很大一部分的查找成本(如图4所示)。

image.png

除了模型性能要求之外,考虑 UI 处理对 CTR 的影响也是模型质量的一个关键因素。拍卖动态有意在单个广告和特定 UI 处理之间建立强烈的相关性。页面下方的结果可能具有较低的点击率,无论它们与查询的相关性如何。未能正确解开这些相关性会在概括 UI 处理时造成不准确(例如,如果同一广告在页面上显示得更高,则CTR给出同样的估计显然是不对的)。定价和资格决定关键取决于对在野外很少发生的次优 UI 的 CTR 估计。例如,我们的系统不应显示不相关的广告,因此此类场景不会出现在训练语料库中,因此对其不相关性(低点击率)的估计将超出分布。但需要这些估算来确保广告不会展示。即使是相关的广告,也存在类似的问题。很少出现在首位的广告的效果仍可用于设置那些经常出现在首位的广告的价格。这会产生一个与 UI 相关的特定泛化问题,在第 7 节中解决。

校准是大规模广告推荐的一个重要特征。我们将校准偏差定义为标签减去预测,并希望每个广告接近零。校准后的模型允许我们使用估计的 CTR 来确定展示和不展示广告之间以及展示一个广告与另一个广告之间的权衡;这两种计算都可以用于下游任务,例如 UI 处理选择、拍卖定价或了解广告可见度。
信用归因的相关概念类似于反事实推理 [15] 或隐式反馈中的偏差 [36]。模型权重中的特定不可识别性可能导致不可再现性(第 5 节)。考虑一个例子来说明 UI 效果(第 6 节):假设模型 A 已经看到许多高点击率广告在高位置的训练示例,并且(错误地)了解到广告位置对点击率的影响最大。模型 B 的定义与 A 类似,它首先对高 CTR 广告出现在低位置的几个示例进行训练,然后(正确地)了解到其他因素(例如,广告与查询的相关性)导致了高 CTR。两种模型都为这些广告产生相同的估计点击率,但出于不同的原因,并且在部署它们时,模型 A 可能会显示较少的广告,因为它不会考虑较低位置的其他有用广告;这些模型将显示系统的不可再现性。

在我们的系统中,我们使用了一种新的、通用的技术,即**偏见约束(bias constraints)**来解决校准和信用归属问题。我们在我们的目标函数中加入了校准偏置约束,在训练集或单独的标记数据集的相关片断上强制执行。这使我们能够通过将模型损失调整到解决方案空间的一个理想部分(例如,满足校准的部分)来减少不可识别性(图5a)。推而广之,我们通过将重新训练的模型锚定在相同的解决方案上来减少不可复现性。

我们的技术比其他用于大规模在线训练的方法(反事实推理[15],反倾向评分的变化[36,41])更加轻便:在实践中,需要调整的参数较少,我们只是在我们的目标中增加一个附加项,而不是改变模型结构。为了解决校准问题,[14]在一个单独的校准步骤中使用等值回归,一种非参数方法来调整模型的预测。我们的技术是将校准与估计结合在一起,并且与考虑有效优化复杂模型的方法更加相似。在目标上使用额外的约束条件使我们能够解决广泛的校准和信用归属问题。

image.png

7. BIAS CONSTRAINTS

7.1 Online Optimization of Bias Constraints

现在,我们使用 ∀𝑘∀𝑖∈𝑆𝑘,(𝑦𝑖−ˆ𝑦𝑖)=0 的约束来优化我们的原始目标函数。这里,𝑆𝑘是我们想要校准的训练集的子集(例如,代表性不足的数据类),或者我们可能会或不会对原始模型权重进行优化的新的训练数据(例如,从随机干预或探索清扫中收集的分布外或非政策性数据[36, 40, 66])。为了帮助优化,我们首先将其转化为一个无约束的优化问题,为每个约束条件引入一个对偶变量 ,并使相对于对偶变量的拉格朗日最大化。接下来,我们不要求每个 instance 的偏差为零,而是要求整个平均偏差的平方为零。这就把对偶变量的数量减少到{𝜆𝑘} ,并且相当于在平均偏差为零的约束条件下增加了一个L2正则化。对于一个控制正则化的常数3,并通过典型的超参数调整技术(如网格搜索)进行调整,我们的新优化是:

image.png

任何降低的准确性或稳定性都可以通过以下调整的组合来缓解,按影响排序:

  1. 增加偏差约束项;
  2. 降低 {𝜆𝑘} 上的学习率;
  3. 增加 𝛼3;
  4. 或添加更多或更细粒度的约束(分解Sk,并配置不同的 𝜆𝑘)。

我们相信前两个可以帮助 normalize 对偶变量和其他权重的大小之间的任何差异,而后两个则有助于减轻偏差项的强度(如果 Sk 不是最佳选择的话)。

7.2 Bias Constraints for General Calibration

如果我们在有趣的变量桶中绘制校准偏差,如估计的CTR或其他系统指标,我们希望校准的模型有均匀的偏差。(模型可解释性中也提到过类似的方法)。然而,对于几个感兴趣的轴,我们的系统在范围的两端显示出较高的偏差(图5b)。我们通过定义每个桶中的 instance ,例如,估计的CTR,来对这个问题进行偏倚约束。由于我们在推理过程中不使用双重变量,我们可以将估计的CTR纳入我们的训练目标。有了偏差约束,各兴趣桶的偏差变得更加均匀:方差减少了一半以上。这反过来可以提高估计CTR的下游消费者的准确性。

7.3 Exploratory Data and Bias Constraints

我们还可以使用偏见约束来解决用户界面处理的信用归属问题。我们通过关注那些代表了竞争性查询中不常见的用户界面展示的 instance 类别来进行挑选 Sk,在这些 instance 中,所展示的广告可能是相当不同的。例如,𝑆1 可能是高点击率广告显示在页面底部的 instance ,𝑆2 可能是高点击率广告显示在页面倒数第二个位置的 instance ,等等。根据模型训练的实施方式,用现有的模型特征 𝑆𝑘 来定义可能更容易(例如,对于一个二进制特征 f 来表示是否属于 Sk)。我们选择 {𝑓} 来包括那些产生的部分大到不影响收敛,但小到我们期望每个单独的 instance 的偏差将被驱动到零的特征(例如,如果我们认为query影响广告投放,我们将把它包括在 {𝑓} 中)。对于表3中的模型,我们看到在几个与分布外广告投放有关的数据子集上有了次大的偏差改进,并且在增加偏差约束时,有了更多的可复现性,对准确性的影响也最小。
将偏差约束视为锚定损失而不是改变损失格局(图 5a),我们发现该技术并不能修复模型的不可再现性,而是减轻系统的不可再现性:我们能够减少模型集成中的模型数量减半并达到相同水平的再现性。

image.png

8. CONCLUSION

我们详细介绍了一套用于大规模CTR预测的技术,这些技术已被证明在 "生产 "中是真正有效的:平衡准确性的提高、训练和部署成本、系统的可重复性和模型的复杂性,同时描述了跨UI处理的通用方法。我们希望这次对工厂车间的简短访问能引起CTR预测系统、推荐系统、在线培训系统的ML从业者的兴趣,以及对大型工业环境感兴趣的人的兴趣。

2209.05310.pdf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值