5.数据新鲜度freshness
CTR 预估模型通常部署在数据分布随时间变化的动态环境中。训练数据和测试数据的时间距离越近,二者的数据分布差距越小,效果也越好。
论文用某一天的样本数据训练一个模型,然后用该模型评估当天、一天后、两天后、... 六天后的测试数据。结果表明:模型需要每天根据最新的样本进行重新训练。与每周训练一个模型相比,每天训练一个模型可以提升模型效果大约 1%(以 NE 为指标)。
考虑数据新鲜度,我们需要用最新的样本更新模型。有两种更新策略:
每天用最新的数据重新训练模型。当模型比较大时,可能要花费几个小时甚至24个小时以上来训练。
每天或者每隔几天来训练特征提取器 BDT ,但是用最新的数据在线训练 LR 线性分类器。
6.学习率
当通过mini-batch 梯度下降法来训练在线 LR 分类器时,学习率的设定非常关键。有几种学习率设定方式:
(1)per-coordinate 基于特征的学习率
在第t次迭代特征i的学习率为:$\eta_{t, i}=\frac{\alpha}{\beta+\sqrt{\sum_{j=1}^{t}\left(\overrightarrow{\mathbf{g}}_{j}\right)_{i}^{2}}}$,其中:$\alpha , \beta$为模型的超参数;$\overrightarrow{\mathbf{g}}_{j}$为第$j$词迭代的梯度在特征$i$的分量。
特征$i$的梯度越大,说明该特征方向波动较大,则学习率越小,学习速度放慢。
特征$i$的梯度越小,说明该特征方向波动较小,则学习率越大,学习速度加快。
(2)per-weight 维度加权学习率
在第$t$次迭代特征$i$的学习率为:$\eta_{t, i}=\frac{\alpha}{n_{t,i}}$,其中:$\alpha$为模型的超参数,$n_{t,i}$为截止到第$t$次迭代特征$i$上有取值的所有样本数量。在特征上有取值表示:one-hot之后的取值为1。
对于广义线性模型:$\hat{y}=f(z),z=\sum _{i=1} ^ n x_i \times w_i$
设损失函数为$L(y,\hat{y})$,则有:
$\begin{aligned} \frac{d L}{d w_{i}}=& \frac{d L}{d \hat{y}} \times \frac{d \hat{y}}{d z} \times x_{i} \\ \text { update: } w_{i} & \leftarrow w_{i}-\eta_{t, i} \times \frac{d L}{d w_{i}} \end{aligned}$
因此可以看到,对于罕见特征由于大多数情况下特征取值$x_i=0$ ,因此特征权重$w_i$几乎很难有更新的机会。
特征$i$上有取值的样本越多,则可供学习的样本也多,则学习率越小,学习速度放慢。
特征$i$上有取值的样本越少,则可用学习的样本也少,则学习率越大,学习速度加快。
(3)per-weight square root 基于权重开方的学习率
在第$t$次迭代所有特征的学习率为:$\eta_{t, i}=\frac{\alpha}{\sqrt{n_{t,i}}}$
(4)global 全局学习率
在第$t$次迭代所有特征的学习率为:$\eta_{t, i}=\frac{\alpha}{\sqrt{t}}$
(5)constant 常量学习率
在第$t$次迭代所有特征的学习率为:$\eta_{t, i}=\alpha$
论文验证了这几种学习率的效果,其中超参数 通过grid search 来得到。
结果表明:per-coordinate 方法获得最好的表现,而 per-weight 效果最差。
全局学习率表现不佳,其主要原因是:每个特征上训练样本数量不平衡。 一些常见特征上(如:“是否男性” 特征)的样本数量较多,而另一些罕见特征(如:“是否明星” )上的样本数量较少。在全局学习率策略下,罕见特征学习率太快降低到很小的值,使得最优化难以收敛到最优点。