1.FTRL原理 1.1. 公式推导 1.2 学习率推导 2. FTRL实现 2.1 scala代码实现(主要部分) 2.2 工程实现中的memory saving策略 FTRL(Follow the Regularized Leader)是在线学习 (Online Learning) ,代表了一系列机器学习算法,特点是每来一个样本就能训练,能够根据线上反馈数据,实时快速地进行模型调整,使得模型及时反映线...
在深度学习模型中,如果我们仍然要基于L1获得稀疏性,直接套用FTRL就不太合适了。因为FTRL是适配LR模型,每个模型参数对应一个特征。而深度学习中,如果要达到类似的特征级别稀疏性,那么至少需要按照embedding为单位做稀疏,因为默认做法就是将特征表示为embedding。因此在GFTRL中就针对这个情况做了改进以达到在深度模型中适用。
现在做在线学习和CTR常常会用到逻辑回归( Logistic Regression),google先后三年时间(2010年-2013年)从理论研究到实际工程化实现的FTRL(Follow-the-regularized-Leader)算法,在处理诸如逻辑回归之类的带非光滑正则化项(例如1范数,做模型复杂度控制和稀疏化)的凸优化问题上性能非常出色。 FTRL及工程实现 FTRL介绍 FTR是FT...
第三项:这个累积加和限定了新的迭代结果x不要离已迭代过的解太远(也即FTRL-Proximal中proximal的含义),或者离0太远(central),这一项其实也是low regret的需求。 【工程实现】 大家对上面那一大坨前因后果和公式都不感兴趣,ok,没关系,google非常贴心地在13年给出了一篇工程性很强的paper,其实大部分公司使用FTRL的...
FTRL本质上是一种优化方法,最早由google提出并用于CTR预估。常被用于逻辑回归的优化,因此先简单介绍一下逻辑回归的内容。 1.1 sigmoid函数 由于二分类结果是1或者0,这与数学的阶跃函数很类似,但是阶跃函数在x=0的位置会发生突变,这个突变在数学上很难处理。所以一般使用sigmoid函数来拟合: ...
FTRL算法通过迭代的方式更新特征的权重。在每一次迭代中,算法根据当前的特征权重计算梯度,并根据梯度来更新特征的权重。 具体而言,FTRL算法的权重更新公式如下: 其中, 为第 次迭代中特征 的权重, 为特征 的梯度, 为特征 的二阶导数, 为正则化参数, 为学习率。 FTRL算法的核心思想是,对于梯度较大的特征,更新权重...
FTRL参数设置分为学习率、正则化和稀疏度三个方面。1. 学习率:FTRL算法中的学习率需要根据具体的数据集和问题进行选择。如果数据集稀疏性较高,可以选择较大的学习率,以便更好地利用数据的稀疏性;如果数据集稠密性较高,可以选择较小的学习率,以避免过拟合。2. 正则化:FTRL算法中的正则化参数可以...
本文探讨FTRL公式的推导,旨在为在线学习算法领域提供清晰的理解。首先,FTL(Follow-the-Leader)算法的基本思想是每次选择使得所有过去样本损失之和最小的参数。然而,FTRL算法在优化目标的基础上加入了正则化项,以防止过拟合问题,公式为:其中,R(w)是正则化项。在实际应用中,FTRL的损失函数通常难以...
FTRL代码实现 FTRL(Follow The Regularized Leader)是一种优化方法,就如同SGD(Stochastic Gradient Descent)一样。这里直接给出用FTRL优化LR(Logistic Regression)的步骤: 其中$p_t=\sigma(X_t\cdot w)$是LR的预测函数,求出$p_t$的唯一目的是为了求出目标函数(在LR中采用交叉熵损失函数作为目标函数)对参数$w$...
FTRL综合考虑了FOBOS和RDA的优点,兼具FOBOS的精确性和RDA优良的稀疏性,Google 2013年发布在KDD的《Ad Click Prediction: a View from the Trenches》给出了详细的工程实践。 思想及实现 特征权重更新公式为: 第一部分为累计梯度和,代表损失函数下降的方向;第二部分表示新的结果不要偏离已有结果太远;第三部分是正则...