Hexo

凡事预则立,不预则废


  • Home

  • Tags

  • Archives

  • Navigation

  • Search

DL——CTR预估-STAR

文本介绍CTR预估模型STAR

  • 参考链接:
    • 原始论文:One Model to Serve All: Star Topology Adaptive Recommender for Multi-Domain CTR Prediction, CIKM 2021, Alibaba
    • 博客:CIKM 2021 | 多场景下的星型CTR预估模型STAR

Background

  • 随着业务场景的多样化,单一场景下的CTR预估模型已经不能满足需求,因此出现了针对多场景联合建模的需求。STAR(Star Topology Adaptive Recommender)模型正是为了解决这一问题而设计的

STAR 模型概述

  • STAR模型的设计目的是为了同时学习不同业务场景中的共性和差异性。它通过一种星形拓扑结构来实现这一点,这种结构允许模型在共享某些参数的同时,也为每个特定场景保留一些私有参数。这样做不仅能够利用跨场景的信息来提升长尾小场景的学习效果,同时也确保了对各个场景特性的精确捕捉

STAR 的核心组成部分

  • 模型结构
  • STAR模型主要包括三个核心部分:
    • 星型拓扑全连接网络(STAR Topology Fully-Connected Network) :这是STAR的核心架构,它由两大部分组成——一个所有业务场景共享的中心网络和每个业务场景独有的独立网络。对于每一层FC(Fully Connected),都有一个中心的共享参数和场景特有的私有参数。这些参数通过逐元素乘法(element-wise product)结合在一起,从而为每个场景生成最终的参数。这种方式使得共享参数可以被所有场景的数据更新,以学习到跨场景的共同特征;而场景私有参数则仅由该场景内的数据更新,以捕捉场景特有的特征
    • Partitioned Normalization (PN) :在多场景背景下,传统的Batch Normalization (BN)假设所有样本都是独立同分布的,并使用相同的统计量进行归一化处理。然而,在实际应用中,不同场景的数据分布往往存在显著差异,这就要求我们采用不同的归一化策略。为此,STAR引入了Partitioned Normalization,即对不同域(domain)的样本采用不同的归一化统计量,以更好地适应各场景的独特性
      • 普通BN的公式为:
        $$ \text{BN}(x) = \gamma \left( \frac{x - \mu}{\sqrt{\sigma^2 + \epsilon}} \right) + \beta $$
      • PN的公式为:
        $$ \text{PN}_d(x) = (\gamma \cdot \gamma_p) \left( \frac{x - \mu_{p}}{\sqrt{\sigma_{p}^2 + \epsilon}} \right) + (\beta+\beta_p) $$
    • 辅助网络 :
  • 关于STAR Topology Fully-Connected Network的说明 * 每个域的参数都是与通过中心共享参数和私有参数按照按位相乘的到的,其中权重和Bias参数的计算方式不同: $$ W_{p}^{\star} = W_{p} \otimes W, \quad b_{p}^{\star} = b_{p} + b $$ * \\(W_{p}^{\star}\\) :这是第 \\(p\\) 个领域的最终权重矩阵,通过将共享的中心网络的权重 \\(W\\) 和特定领域的权重 \\(W_{p}\\) 进行逐元素相乘( \\(\otimes\\) )得到 * \\(b_{p}^{\star}\\) :这是第 \\(p\\) 个领域的最终偏置向量,通过将共享的中心网络的偏置 \\(b\\) 和特定领域的偏置 \\(b_{p}\\) 进行相加得到 * \\(W\\) 和 \\(b\\) :这些是共享的中心网络的权重和偏置,它们从所有领域的数据中学习,捕捉跨领域的共性 * \\(W_{p}\\) 和 \\(b_{p}\\) :这些是特定领域的权重和偏置,它们只从第 \\(p\\) 个领域的数据中学习,捕捉该领域的特性 * 通过这种结合方式,STAR模型能够在共享的共性知识和特定领域的特性之间找到一个平衡,从而更好地适应多领域的CTR预测任务 * 最终输出: $$ out_{p} = \phi\(\(W_{p}^{\star}\)^{\top} in_{p} + b_{p}^{\star}\) $$ * \\(out_{p}\\) :这是第 \\(p\\) 个领域的输出,表示该领域的CTR预测结果 * \\(in_{p}\\) :这是第 \\(p\\) 个领域的输入特征向量 * \\(\phi\\) :这是激活函数,用于引入非线性 * \\(\(W_{p}^{\star}\)^{\top} in_{p}\\) :这是将输入特征 \\(in_{p}\\) 与最终权重矩阵 \\(W_{p}^{*}\\) 进行矩阵乘法操作,得到线性变换后的结果 * \\(b_{p}^{\star}\\) :这是最终偏置向量,加到线性变换的结果上 * \\(\phi\(\(W_{p}^{\star}\)^{\top} in_{p} + b_{p}^{\star}\)\\) :这是将线性变换后的结果加上偏置,并通过激活函数 \\(\phi\\) 进行非线性变换,得到最终的输出

STAR与MMoE对比

  • 对比如下,图来自 CIKM 2021 | 多场景下的星型CTR预估模型STAR:

DL——CTR预估之One-Epoch现象

文本介绍CTR预估模型中的one-epoch现象

  • 参考链接:
    • 原始论文:Towards Understanding the Overfitting Phenomenon of Deep Click-Through Rate Models, CIKM 2022, Alibaba
    • 博客:深度点击率预估模型的one-epoch过拟合现象剖析

one-epoch现象是什么?

  • 在训练过程中,第二个 epoch 开始,每次 epoch 增加时,模型在测试集上的表现都会变差,即一个 epoch 结束时的模型就是最优模型:

整体说明

  • 原始论文并未给出改进机制或方案,只是基于作者的猜想,通过大量的实验大致验证了 one-epoch 过拟合现象的来源(非理论证明)
  • 为业内均使用 one-epoch 训练的方案提供了一些指导和解释

发生one-epoch的本质原因

  • 传统的CTR预估模型都是Embedding + MLP的

  • Embedding层:因为 id 类特征一般较为稀疏,一个 epoch 后就变得几乎不再更新了

    * 问题:为什么稀疏反而收敛快?甚至一个 epoch 就能收敛 * 回答:文章没有给出详细解释,但个人理解为稀疏和收敛快不一定是严格矛盾的,可能是 Embedding 层参数更容易学习,但从文章给的实验结果看,一个 epoch 后 Embedding 层参数分布确实几乎收敛了
  • MLP层:相当于输入是 Embedding 向量 + Dense 特征的监督学习模型, 第一个 epoch 时需要适配变化的 训练集 Embedding 向量,不会发生过拟合,在第二个 epoch 开始时,由于 Embedding 向量分布不怎么变化,MLP的参数会被突然大幅更新至过拟合当前批次的训练数据

    • 每个 epoch 开始的前半部分 MLP 参数都会剧烈变化一下,此时模型过拟合现象最严重,测试集上评估的效果是最差的

  • 在训练过程中,Embedding层学到了训练集的内容,训练集的分布在训练过程中会发生变化,使得训练集正负样本的 Embedding 距离越来越大,MLP模型要学习的东西越来越容易学习。但测试集正负样本的 Embedding 距离则始终差不多,所以MLP在一个 epoch 后继续训练才很容易进入过拟合

  • 一些其他证明:

    • 在一个 epoch 后,分别固定 MLP 和 Embedding 参数,embedding 出现 one-epoch 的状况更弱:

关键结论

  • 与 one-epoch 现象无关的模型设置:模型参数量、激活函数、batch-size、模型权重衰减(正则化项)、dropout

  • 与 one-epoch 现象有关的模型设置:

    • 学习率设置 :学习率较大时,也更容易导致 one-epoch 现象,但学习率太小不利于模型学习(理解:容易陷入局部最优)

    • 优化器的选择 :收敛速度越快的优化器越容易导致 one-epoch 现象

      from 深度点击率预估模型的one-epoch过拟合现象剖析
      模型优化器与one-epoch现象有紧密关联。在尝试了Adam、RMSprop、SGD等不同优化器后,我们发现Adam和RMSprop在大多数情况下都有更快的收敛速度,也更容易出现one-epoch现象。我们进一步观察到,学习率也与one-epoch现象也有一定关联。在极小的学习率下,one-epoch现象不太明显甚至完全消失,但模型的精度无法保障。 简言之,能使模型快速收敛的优化器算法也更容易导致one-epoch现象

    • Embedding+MLP结构 :这是发生 one-epoch 现象的本质原因(注LR等传统模型就没有 one-epoch 现象)

  • 即使 Embedding 向量维度为1也会存在 one-epoch 现象


是否有解决方法?

  • 虽然可以通过改变优化器和网络结构使得 one-epoch 现象消失,但这会影响最终模型效果:
  • 实际上,这个问题不需要解决,训练一个 epoch 就可以了(比如大部分大厂都是 online 训练的)
1…225226227…352
San Ye

San Ye

Stay Hungry. Stay Foolish.

704 posts
53 tags
© 2026 San Ye
Powered by Hexo
|
Theme — NexT.Gemini v5.1.4