FTRL-Proximal

article/2025/9/27 11:29:14

Ad Click Prediction: a View from the Trenches

ABSTRACT

广告点击率预测是一个大规模的学习问题,对数十亿美元的在线广告行业至关重要。我们从部署的CTR预测系统的设置中提供了一些案例研究和从最近的实验中提取的话题,包括基于FTRL-Proximal在线学习算法(具有出色的稀疏性和收敛特性)以及使用每个坐标学习率的传统监督学习语境的改进。

我们也探讨了现实世界系统中出现的一些挑战,它们最初可能出现在传统机器学习研究领域之外,包括用于节省内存的有效技巧,用于评估和可视化性能的方法,用于提供预测概率的置信度估计的实用方法,校准方法以及自动管理特征的方法。最后,我们还详细介绍了几个对我们没有效果的方向,尽管文献中的其他方面都有其成果。本文目的是突出现在的工业环境中理论进展与实际工程之间的密切关系,并展示在复杂动态系统中应用传统机器学习方法时出现的挑战深度。

 

KEYWORDS

在线广告,数据挖掘,大规模学习

 

1、INTRODUCTION

在线广告是一个价值数十亿美元的行业,已成为机器学习的重要成功案例之一。赞助搜索广告,内容相关广告,展示广告和实时出价拍卖都严重依赖于学习模型准确,快速,可靠地预测广告点击率的能力。这个问题的设定也促使该领域解决了甚至十年前几乎不可想象的规模问题。典型的工业模型可以使用相应大小的特征空间提供每天数十亿事件的预测,然后从所得到的大量数据中学习。

在本文中,我们提供了一系列案例研究,这些案例研究来自最近的实验,用于设置Google使用的部署系统,以预测赞助搜索广告的广告点击率。由于此问题设置现已得到充分研究,因此我们选择关注一系列受到较少关注但在工作系统中同样重要的主题。因此,我们探讨了内存节省,性能分析,预测置信度,校准和特征管理等问题,这些问题与传统上设计有效学习算法的问题相同。本文的目的是让读者了解真实工业环境中出现的挑战深度,以及分享可能应用于其他大规模问题领域的技巧和见解。

 

2、BRIEF SYSTEM OVERVIEW

当用户进行搜索q时,基于广告商选择的关键字将初始候选广告集与查询q匹配。然后,拍卖机制确定是否向用户显示这些广告,他们显示的顺序以及广告商在点击广告时支付的价格。除了广告客户出价之外,对于每个广告a,拍卖的重要输入是P的估计(click| q,a),即该广告如果显示将被点击的概率。

我们系统中使用的特征来自各种来源,包括查询,广告创意文本和各种与广告相关的元数据。数据往往非常稀疏,每个示例通常只有很小一部分非零特征值。

正则化逻辑回归等方法非常适合此问题设置,每天需要进行数十亿次预测,并在观察到新点击和非点击时快速更新模型。当然,这个数据速率意味着训练数据集巨大,数据由基于Photon系统的流媒体服务提供并进行全面讨论。

由于近年来大规模学习已经得到了很好的研究,我们在本文中并未投入大量篇幅来详细描述我们的系统架构。然而我们注意到,训练方法与Google Brain团队描述的倾斜SGD方法相似,不同之处在于我们训练的是单层模型而不是多层的深层网络。这使我们能够处理比我们所知的更大数据集与模型,有数十亿个系数。由于训练好的模型被复制到许多数据中心进行服务,我们更关心的是在服务时而不是在训练期间进行稀疏化。

 

3、ONLINE LEARNING AND SPARSITY

对于大规模学习,用于广义线性模型的在线算法(例如逻辑回归)有许多优点,尽管特征向量x可能有多个维度,但通常每个实例只有几百个非零值,这可以通过磁盘或网络上的流式传输实现对大型数据集的高效训练,因为每个样本只需要被使用一次。

为准确描述算法,我们需要先定义一些符号。gt ∈ Rd中t表示当前训练实例的索引,gt,i表示向量gt的第i个输入,同时有

如果我们想要使用逻辑回归对问题建模,可以使用以下线上框架。在第t轮,我们要求使用特征为xt ∈ Rd的训练样本预测,给定参数wt,则预测值pt=σ(wt · xt),其中σ(a) = 1/(1 + exp(−a))是sigmoid函数。然后我们观察标签值yt ∈ {0, 1},得到损失函数

梯度用于优化

在线梯度下降(OGD)已证明对这类问题非常有效,以最少的计算资源准确的预测,然而实际需要考虑的另一个关键因素是最终模型的大小。由于模型可以稀疏存储,因此w中非零系数的数量是内存使用的决定因素。 不幸的是,OGD在稀疏模型方面效果一般。实际上,简单的对损失函数加上L1惩罚项的次梯度不会产生0值的参数。更复杂的如FOBOS和truncated gradient(截断的梯度,直接截断方法是每隔k次就不更新参数)等方法确实成功引入了稀疏性。与FOBOS相比,正则化双平均(RDA)算法以一定的稀疏性为代价得到更高的准确度[32]。然而,我们观察到梯度下降方法在我们的数据集上比RDA准确度更高,我们使用“Follow The (Proximally) Regularized Leader”算法(FTRL-Proximal)同时获得RDA提供的稀疏性和OGD的准确度。如果没有正则化,该算法与标准在线梯度下降算法等价,但由于它使用模型系数w的可选惰性表示,因此可以更有效地实现L1正则化。

 

给定一系列梯度gt∈Rd,OGD的参数更新如下:wt+1 = wt − ηtgt,其中ηt是非递增学习率,比如。

而FTRL-Proximal算法更新参数如下:

其中σs是学习率,因此σ1:t = 1/ηt。

λ1 = 0时,2个更新方式的等价;λ1 > 0时,FTRL-Proximal产生稀疏模型。

 

从公式来看,有人可能会觉得实现FTRL比实现OGD更难或者需要存储过去的所有参数,但实际上在整个过程中只需要存储一份参数,我们可以将argmin函数重写为

因此,如果我们已经存了,那么在第t轮更新的开始我们只要zt = zt-1+gt+,然后用闭包形式求得wt+1

FTRL-Proximal把z存起来,而OGD存的是w。Algorithm1是伪代码,还加入了per-coordinate学习率规划项并且加入了支持L2正则的参数λ2。我们也能直接存储−ηtzt而不是zt,此时当λ1 = 0时我们存的就是在线梯度参数,当ηt是一个常量并且λ1 = 0时,公式就等价于在线梯度下降,因为

实验结果

在小数据集上带有L1正则项的FTRL-Proximal在模型大小和精确度的tradeoff上明显优于RDA和FOBOS,见table1的第2、3行。在许多情况下,简单的启发式方法几乎与更多规则的方法一样,但这不是其中之一。我们的稻草人算法,OGD-Count仅仅保留了它看到一个特征的次数,直到该次数超过阈值k,系数固定为0,但是在计数k次之后,在线梯度下降(不带L1正则项)照常进行。为了测试FTRL-Proximal对这个更简单的启发式算法,我们实验了一个非常大的数据集。我们调整k以产生与FTRL-Proximal相同的精确度,使用更大的k导致更差的AucLoss,结果在table1第4行。 总的来说,这些结果表明FTRL-Proximal具有明显改善的稀疏性,具有相同或更好的预测准确性。

 

3.1 Per-Coordinate Learning Rates

在线梯度下降的标准理论建议使用全局学习率ηt=1/√t,对于所有坐标都相同,但是可能效果并不理想:假设我们使用逻辑回归估计10个硬币的Pr(heads | coini),每一轮t,单个硬币i被翻转,我们看到特征向量x∈R10,其中Xi = 1且xj =0,j ≠i,因此我们基本上将10个独立的逻辑回归问题打包成一个问题。 我们可以运行10个独立的在线梯度下降,其中问题i使用的学习率是,其中nt,i是硬币i至今被翻转的次数。如果硬币i比硬币j更频繁地翻转,那么硬币i的学习率将更快地下降,反映出我们有更多数据的事实,而硬币j的学习率将保持较高,因为我们对当前估计的置信度不足,因此需要对新数据做出更快的反应。

另一方面,如果我们将其看成一个单独的学习问题,标准学习率框架下ηt=1/√t会应用在每个坐标维度,此时即使硬币i没有被翻转,我们的学习率也下降了,显然不行。事实上有人证明了标准算法的性能渐渐比分成独立问题差得多,因此至少对于某些问题,每个坐标不同的学习率可以提供实质性的优势。假设gs,i 是梯度gs =▽ls(ws)的第i个坐标,以下公式使结果接近最优。

 

在实验中,我们使用α和β以在渐进验证中性能最好的学习率,还尝试在nt,i上使用指数,而不是0.5。 α的最佳值可以根据特征和数据集而变化,β= 1通常够好,这可以保证刚开始的学习率不会太高。如上所述,该算法要求我们跟踪每个特征的梯度之和和梯度的平方和,4.5节介绍了一种节约内存的公式,其中梯度的平方和在许多模型上摊销。

 

实验结果

我们通过测试两个相同的模型来评估单坐标学习率的影响,一个使用全局学习率,一个使用单坐标学习率。基本参数α针对每个模型单独调整。我们使用了代表性数据集,并使用AucLoss作为评估指标(参见第5节)。结果显示,与全球学习率基线相比,使用每坐标学习率可将AucLoss降低11.2%。为了将这个结果放在上下文中,在我们的设置中,AucLoss减少1%被认为是大的。

 


http://chatgpt.dhexx.cn/article/PEGCuPiC.shtml

相关文章

FTRL

一、算法原理 二、算法逻辑 三、个人理解 从loss function的形式来看:FTRL就是将RDA-L1的“梯度累加”思想应用在FOBOS-L1上,并施加一个L2正则项。【PS:paper上是没有加L2正则项的】 这样达到的效果是: 累积加和限定了新的迭代结果W**不要离“已迭代过的解”太远**; 因为…

在线学习算法FTRL基本原理

文章目录 相关介绍SGD: Stochastic Gradient DescentTG简单加入L1范数简单截断法梯度截断法 FOBOS: Forward Backward Splitting[^4]RDA: Regularized dual averaging[^5] FTRL: Follow-the-Regularized-Leader总结 相关介绍 SGD: Stochastic Gradient Descent 由于批量梯度下…

Lr

二、 逻辑回归 言归正传,因为广告大部分是按照CPC计费的,而我们手里的流量是固定的,因此对每条广告请求我们就需要保证这条广告的展示收益更大。而广告收益是可以根据点击率、广告计费价格、广告质量度均衡决定的,所以我们就需要评…

在线学习FTRL介绍及基于Flink实现在线学习流程

背景 目前互联网已经进入了AI驱动业务发展的阶段,传统的机器学习开发流程基本是以下步骤: 数据收集->特征工程->训练模型->评估模型效果->保存模型,并在线上使用训练的有效模型进行预测。 这种方式主要存在两个瓶颈&#xff1…

FTRL的理解

个人理解:FTRL是针对LR学习器,设计了一种独特的梯度下降更新方法 从Logistic Regression到FTRL Logistic Regression在Linear Regression的基础上,使用sigmoid函数将yθxb的输出值映射到0到1之间,且log(P(y1)/P(y0)) θxb。并且…

2021-09-08FTRL 跟随正确的领导者

2.2.3 FTRL FTRL(Follow the Regularized Leader)是一种优化算法,在处理诸如逻辑回归 之类的带非光滑正则化项的凸优化问题上性能出色,自 2013 年谷歌发表 FTRL 算 法的工程性实现论文后[17],业界纷纷上线该算法&…

python编程之np.argmin()用法解析

疑惑 np.argmin()究竟是干嘛用的? 解惑 给出水平方向最小值的下标; list最小的值是3,对应的下标是2; list1展平是9,8,7,66,23,55,4,23,33;最小的值是4,对应的下标是6

关于argmin和argmax的一点说明

一、定义 首先我们应该知道,arg是元素(变元)argument的英文缩写。 在数学中,arg max的参数是指使函数值最大化的某个函数域的点。与全局最大值相反,其指的是函数的最大输出 ,同理,arg min指的是…

clickhouse的argMin()和argMax()函数

1.语法规则 函数语法argMin(arg,val)计算最小值的arg值。如果val的最小值有几个不同的arg值,则遇到的第一个值是输出。argMax(arg,val)计算最大值的参数值。如果存在多个不同的arg值来表示val的最大值,则遇到的第一个…

LaTeX 书写 argmax and argmin 公式

LaTeX 书写 argmax and argmin 公式 1. arg max or argmax For a real-valued function f f f with domain S S S, arg ⁡ max ⁡ f ( x ) x ∈ S \underset{x\in S}{{\arg\max} \, f(x)} x∈Sargmaxf(x)​ is the set of elements in S S S that achieve the global maxi…

torch.argmin()的使用举例

参考链接: argmin(dimNone, keepdimFalse) → LongTensor 参考链接: torch.argmin() 代码实验举例: Microsoft Windows [版本 10.0.18363.1256] (c) 2019 Microsoft Corporation。保留所有权利。C:\Users\chenxuqi>conda activate ssd4pytorch1_2_0(ssd4pytorch1_2_0) C:\U…

numpy.argmin()||argmax()结构及用法||详解axis

numpy.argmin(a, axisNone, outNone)官方文档 参数详解 a : array_like 输入数组 axis : int, optional 默认输入数组展平,否则,按照指定的axis方向 按照指定轴,可以理解为将数据投影到这个轴上。 out : array, optional如果设置了某个数…

ARG MIN的含义是什么?

ARG MIN的含义是什么? 最通俗的理解:表示使目标函数取最小值时的变量值 From Wikipedia In mathematics, arg max (or argmax) stands for the argument of the maximum, that is to say, the set of points of the given argument for which the value…

Matlab中关于argmax、argmin函数的使用

1、在matlab的现有函数中,并没有argmax,argmin函数可以直接调用,要根据这两个函数的实际意义,自己编写程序进行计算 2、我要求解的函数是下式: 其中mad(theta)和amd(theta)两个均为1 * 11的double型向量 括号里得到一…

argmax和argmin的理解

1、符号 :argmax: 2、符号 :argmin:

argmin ,argmax函数

在数学中,ARG MAX(或ARGMAX)代表最大值,即给定参数的点集,给定表达式的值达到其最大值: 换一种说法, 是f(x)具有最大值M的x的值的集合。例如,如果f&#xff0…

全网最详细numpy的argmin与argmax解析(一次性理解np.argmin)

本文以np.argmin()进行讲解,np.argmax()与之类似,np.argmin()求最小值对应的索引,np.argmax()求最大值对应的索引 首先看一下官方注释 def argmin(a, axisNone, outNone):"""Returns the indices of the minimum values alo…

矩阵的内积和外积,三向量混合积

矩阵的内积指的是矩阵点乘,即矩阵的对应元素相乘;矩阵的外积指的是矩阵的叉乘,即矩阵相乘,比如CA*B,则A的列数要与B的行数一致,例如A为[m,n], B 为[n,k], 则C为 [m,k].三向量混合积的…

矩阵与向量的乘积

下面是定义: Ax的结果会让我们想起之前的线性系统和多元一次方程组 也就是说,向量x在经过矩阵A的变换后,得到了向量B 下面以两种观点来看矩阵与向量的乘积。 row aspect 矩阵的第n行与向量做内积,然后将结果放在第n行 2.colum…

【矩阵论】内积空间与等距变换(2)

内积空间与等距变换之正交补空间与等距变换 一. 正交补空间的定义及概念 1. 正交关系的定义 (1)向量正交于子空间 若某空间V中的向量α垂直于V的子空间W中的任意一个向量,就说该向量α垂直于子空间W。 (2)子空间正交…