本文作者:悦怿、珞家、惊寒、寒戍、孟诸

1. 摘要

深度学习的应用极大地提升了推荐模型的效果和性能,然而业界对于推荐系统中深度模型的基础问题,例如过拟合现象,关注度依然较少。在本文中,我们将介绍阿里妈妈展示广告Rank团队对点击率(CTR)预估模型过拟合问题的研究。我们观察到CTR模型的过拟合现象非常特殊:在训练的第一个epoch结束,第二个epoch开始时,预估模型发生过拟合现象,并且在测试集上的效果急剧下降,我们称其为“one epoch现象”。为了解释该现象,我们在工业生产数据集上进行了大量实验。结果显示模型结构、模型的快速收敛(例如强优化器和较大学习率)以及特征ID的稀疏性是导致one epoch现象的关键因素。令人惊讶的是,深度模型往往在训练一个epoch后就可以达到最佳性能,这也解释了为什么许多工业推荐系统只对数据进行一次训练。我们进而提出了one epoch现象的一个可能假设,并佐以相关验证实验。希望该项工作可以使相关领域的同学关注并进一步研究深度推荐模型的过拟合现象,也期待后续研究者能够提出一种支持模型多次训练的可行方案,以期进一步提升模型效果。基于该项工作的论文已被CIKM 2022接收,欢迎阅读交流。

论文:Towards Understanding the Overfitting Phenomenon of Deep Click-Through Rate Models

论文下载:https://arxiv.org/abs/2209.06053

代码链接:https://github.com/Z-Y-Zhang/one_epoch_phenomenon

2. 背景

近年来,大规模深度学习算法不仅仅在计算机视觉、自然语言处理等诸多领域取得了不错的成果,也不断扩展到了其他领域。推荐模型也逐渐从以Logistic Regression(LR)为代表的浅度机器学习模型转变为基于深度神经网络Deep Neural Networks(DNN)的深度模型,并取得了极大的效果提升。然而,对于推荐系统中深度模型的一些基本问题,例如过模型拟合现象,不管是在学术界,还是在工业界的关注都相对较少。

相比于普通的深度学习模型而言,推荐系统中的深度模型在数据和模型结构上有其特殊性。以点击率预估为例,推荐系统的数据特征通常是是高维和稀疏的 [7],模型通常需要在具有数十亿特征的大规模数据集上进行训练,但大多数特征的出现频率非常低,呈现非常显著的长尾分布。考虑到推荐系统的数据特性,现在的深度CTR模型一般采用Embedding和MLP的模型结构,如下图所示:

Embedding and MLP模型结构

对于典型的CTR预估问题来说,模型的原始输入为一对用户和物品,并通常包含4类特征:用户特征(例如,用户ID、性别)、用户行为序列(例如,用户点击过的物品ID序列)、物品特征(例如,物品ID、物品类别)、上下文特征(例如时间、展示场景)。深度CTR模型首先将ID表示的离散特征通过Embedding层映射为低维向量,将用户行为序列通过pooling操作(例如取均值)转化为固定长度的向量。进而再把各个特征域的特征向量拼接到一起作为MLP层的输入,最终得到预测的点击率。

3. One-epoch现象

CV(计算机视觉)和NLP(自然语言处理)领域的深度学习模型通常需要训练几十个上百个epochs才能达到最优,如果发生过拟合现象,也往往是在训练过程中逐步发生。但在推荐系统中却并非如此,我们在阿里巴巴展示广告的生产环境下,将CTR模型训练3个epoch,得到的测试AUC曲线如下:

展示广告深度CTR预估模型的one-epoch现象

可以发现CTR预估模型的过拟合现象非常特殊:模型AUC在第一个epoch内逐步提升,但是从第二个epoch开始,AUC效果突然剧烈下降,我们把这个现象叫做one-epoch现象

展示广告Rank的生产模型采用了基于CAN [5]和STAR [6]的复杂模型结构,为了使得实验结论不局限于某一类特定的深度模型,我们进一步将模型结构和数据加以简化。具体说来,我们采用3层DNN(200X80X1)和7个简单的特征域(user_age、user_gender、history_item_IDs、history_item_categories、item_ID、item_category、scene_ID)加以实验。在这种情况下,我们同样也观察到了one-epoch现象。同时,我们在Amazon Book和Taobao这两个广泛使用的公共数据集上进行实验,同样也观察到了one-epoch现象。当然,之前的研究论文中,也有部分文献发现了相似的现象 [2, 3],但是此类现象并没有被重点探讨研究过。

上述实验以及相关调研发现,one-epoch现象在学术界和工业界都普遍存在。它有两个特点,(1) 恰好出现在第2个epoch开始;(2) 突然剧烈发生,导致模型精度迅速下降。针对于这两个特点,我们做了如下一系列分析。

4. One-epoch影响因素

为了进一步了解one-epoch现象,我们进行了大量的探索实验,整体结论如下:

  1. 我们发现Embedding+MLP结构能使模型快速收敛的优化器算法(例如学习率较大的Adam优化器)和 稀疏特征的使用(例如使用item_ID等细粒度特征)与one-epoch现象的产生都密切相关;

  2. 我们也验证了机器学习算法的一些核心要素,包括模型参数量、激活函数的选择、batch-size的大小、模型权重衰减(正则化项)和dropout等,但实验发现他们和one-epoch现象并没有直接的关联;

  3. 虽然可以通过改变结论1中的影响因素来缓解one-epoch现象,但我们也发现这些方式都不可避免会带来精度损失。深度CTR模型取得最好的表现仅仅需要训练一个epoch!工业界的深度CTR模型一般都采用流式训练,并且只训练一个epoch,我们的实验结论或许为这种做法提供了合理性依据。

接下来,我们将分别介绍模型相关因素和特征相关因素对one-epoch现象的影响。由于篇幅所限,我们只会详述重要的部分,完整的内容可以参考论文。

4.1 模型相关因素

在模型结构方面,我们发现基于DNN的深度CTR模型会产生one-epoch现象,而基于LR的CTR模型在各种超参数设置下都不会发生one-epoch现象,只表现为精度上升、平稳、再缓慢下降的传统过拟合现象。这说明one-epoch现象与不同的模型结构有着密切关系。

深度CTR预估模型存在one-epoch现象,而LR模型并没有

One-epoch现象是否与参数量有关呢?考虑到DNN模型的参数量比LR模型多,产生上述疑问也很自然。我们通过改变Embedding向量大小、隐藏层大小(即每层神经元数量)、MLP层数进行实验,发现不同参数设置下也都发生了one-epoch现象。值得一提的是,如下图中橙线所示,当Embedding维度为1时,也就是说每个特征用一个标量表示,深度CTR模型的参数量与LR模型的参数量差别不大,但深度模型依然发生了one-epoch现象,有理由相信与one-epoch有关的因素是深度模型采用的Embedding&MLP这种模型结构,而非模型参数量本身。

不同Embedding向量大小都发生了one-epoch现象

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

此外,我们也分析了batch-size大小和激活函数的影响,发现他们和one-epoch现象基本没有关联。同时,我们也尝试了多个缓解过拟合的技术,包括权重衰减和dropout,发现他们对于解决one-epoch问题几乎没有帮助。

4.2 特征相关因素

工业界CTR模型的训练数据通常具有高度稀疏性 [7]。关于特征稀疏性,我们在这里提供一个直观的理解,如果一个特征域拥有的不同ID数越多、每个ID的平均出现次数越少,那么该特征域的稀疏性就越大。例如,下表所示的生产数据集中,item_ID和history_item_IDs是两个稀疏最大的特征域。

为了说明one-epoch现象与特征稀疏性的关联,我们尝试降低特征稀疏性并加以实验。具体说来,我们采用三种简单而普遍的方法:(1) 过滤(filter),过滤掉出现频率最低的ID,将他们替换为默认值;(2) 哈希(hash),使用较小的哈希表来对每个ID做映射;(3) 不使用稀疏性强的特征域,例如不使用item_ID和history_item_IDs这两个特征域。篇幅所限,下图只展示哈希实验的结果,m为哈希表大小占原始ID数的比例,m越小则数据稀疏性越低。可以发现随着数据稀疏性降低,one-epoch现象逐渐减轻直至消失。

通过哈希降低数据稀疏性可以缓解深度CTR模型的one-epoch现象

事实上,上述三种方法都可以缓解甚至消除one-epoch现象,但都会存在一定的精度损失。这表明特征稀疏性与one-epoch现象密切相关,同时这也可以解释为什么部分场景训练的CTR模型不会遇到one-epoch现象——如果只用粗粒度特征或者采用过滤/哈希的方式降低了数据稀疏性,模型是可以训练多个epoch的。

5. One-epoch现象解释

上述实验仅仅揭示了一些和one-epoch相关的算法/数据因素,但是没有回答one-epoch现象产生的根本原因。接下来,我们给出一个假设,试图解答其产生的原因。

首先介绍一下符号。我们把样本经过Embedding层以后的稠密向量记为,那么MLP层可以看做是在联合概率分布上进行训练的分类器。我们把模型已经训练过的样本记作,把没有训练过的样本记作(为了方便理解,这里我们不对样本的训练次数进行区分)。下图中,训练样本在第一个epoch学习之前是,而对其计算损失模型更新之后,它就变为,因此训练样本在第二个epoch就变成了。测试样本自始至终都是。

One-epoch现象的原因解释

基于以上符号,我们提出了如下假设:与有显著不同。在第二个epoch开始时,MLP迅速适配到,进而导致了one-epoch现象。

上图为该假设提供了形式化描述。在第一个epoch训练时,MLP拟合的是(白色三角形),此时训练数据与测试数据(白色圆形)分布一致,模型正常训练。但是在第二个epoch开始时,MLP快速适配到由蓝色三角形表示的,训练数据和测试数据的分布差异性使得过拟合快速发生,导致one-epoch现象。下面我们给出验证实验。

5.1 的变化

我们首先验证是否在第二个Epoch开始时发生了较大变化。为了量化分布的变化,我们将采用-distance指标来衡量和之间的差异 [4]。-distance是量化两个分布之间差异的指标,在我们的实验中,更大的-distance对应着着更大的Embedding分布的差异,从而正负样本更容易被MLP分类器所分开,MLP拟合更容易。

如下图所示,在训练过程中我们分别在训练集和测试集上计算-distance,可以发现其在第二个epoch开始时突然增大,这一现象也验证了的变化,同时说明第二个epoch时,MLP的拟合任务要容易得多。对于测试集,所有样本从头到尾都是未经训练的,对应的-distance也没有明显变化。

训练集和测试集上的A-distance,值越大表示分布差异越大,也越容易被区分

我们进一步分析了与稀疏特征之间的关系。发现在第二个epoch开始时,稀疏特征域(item_ID、history_item_IDs)的-distance突然增加,而其他特征域(如age)则没有明显变化,这也说明了的变化主要是由稀疏特征主导,这与我们之前观察到的特征稀疏性的影响是一致的。进一步,我们还发现当one-epoch现象不发生时,没有明显变化,这说明的改变是发生one-epoch现象的必要条件 [论文Fig 12]。

5.2 MLP迅速拟合

我们接下来验证MLP层在第二个epoch开始时,是否可以快速拟合。在训练过程中,我们通过计算每层参数更新量的范数来监测模型的参数更新。如下图所示,MLP的参数更新量(图b, c, d)在第二个epoch开始时突然变大,而Embedding层的变化相对较小(图a),这就验证了我们之前提出的假设:MLP在第二个epoch刚开始时,通过参数的大量更新迅速适配到。

模型参数更新量,MLP更新在第2个epoch有突变

与此同时,我们还进行了另一个实验来验证我们的假设。在第一个epoch训练结束后,对于MLP层和Embedding层而言,我们fine-tune其中一个而冻结另一个。实验发现fine-tune Embedding冻结MLP层没有one-epoch现象,而fine-tune MLP冻结Embedding则会导致one-epoch现象。也说明one-epoch现象与MLP在第二个epoch快速变化有关。

6. 总结与展望

与CV和NLP等深度学习模型的应用不同,深度CTR模型的过拟合呈现出one-epoch现象,即模型在训练的第二个epoch开始时,精度突然急剧下降。这个现象广泛存在于学术界和工业界的CTR模型中。通过大量实验,我们观察到one-epoch现象与模型结构、使模型快速收敛的优化器算法、稀疏特征的使用均有关联。同时,我们也提供了一个合理的假设用于解释one-epoch现象。

对于深度CTR模型而言,我们能否通过训练多个epoch以提升模型精度?为此,我们也尝试了一些方法,例如学习率衰减、在第二个epoch时仅仅fine-tune部分模型参数等。生产数据集上的实验显示,这些方法均无法带来明显的性能提升,最优模型通常在只训练一个epoch时得到。这也解释了为什么工业界深度CTR模型一般只过一遍数据。

虽然本文只关注CTR模型,但本文的研究方法同样也适用于转化率/收藏加购等其他用户行为预估的模型。我们相信one-epoch现象是推荐系统领域一个有趣而基础的问题,也希望未来的研究能够为解决此问题提供更多思路。

References

  1. Zhao-Yu Zhang, Xiang-Rong Sheng, Yujing Zhang, Biye Jiang, Shuguang Han, Hongbo Deng, and Bo Zheng. Towards understanding the overfitting phenomenon of deep click-through rate models. In CIKM 2022. https://arxiv.org/abs/2209.06053

  2. Guorui Zhou, Xiaoqiang Zhu, Chenru Song, Ying Fan, Han Zhu, Xiao Ma, Yanghui Yan, Junqi Jin, Han Li, and Kun Gai. 2018. Deep interest network for click-through rate prediction. In SIGKDD 2018.

  3. Jieming Zhu, Jinyang Liu, Shuai Yang, Qi Zhang, and Xiuqiang He. 2021. Open benchmarking for click-through rate prediction. In CIKM 2021.

  4. Shai Ben-David, John Blitzer, Koby Crammer, Fernando Pereira, et al. 2006. Analysis of representations for domain adaptation. In NeurIPS 2006

  5. Weijie Bian, Kailun Wu, Lejian Ren, Qi Pi, Yujing Zhang, Can Xiao, Xiang-Rong Sheng, Yong-Nan Zhu, Zhangming Chan, Na Mou, Xinchen Luo, Shiming Xiang, Guorui Zhou, Xiaoqiang Zhu, and Hongbo Deng. 2022. CAN: Feature Co-Action Network for Click-Through Rate Prediction. In WSDM 2022

  6. Xiang-Rong Sheng,Liqin Zhao, Guorui Zhou, Xinyao Ding, Binding Dai, Qiang Luo, Siran Yang, Jingshan Lv, Chi Zhang, Hongbo Deng, and Xiaoqiang Zhu. One Model to Serve All: Star Topology Adaptive Recommender for Multi- Domain CTR Prediction. In CIKM 2021

  7. Biye Jiang, Chao Deng, Huimin Yi, Zelin Hu, Guorui Zhou, Yang Zheng, Sui Huang, Xinyang Guo, Dongyue Wang, Yue Song, et al. 2019. XDL: An Industrial Deep Learning Framework for High-Dimensional Sparse Data. DLP-KDD.

END

也许你还想看

点击率模型特征交叉方向的发展及CAN模型介绍

EXTR:面向外部性的工业级广告点击率预估框架

多场景下的星型CTR预估模型STAR

关注「阿里妈妈技术」,了解更多~

喜欢要“分享”,好看要“点赞”ღ~

↓欢迎留言参与讨论↓

深度点击率预估模型的One-Epoch过拟合现象剖析相关推荐

  1. 从零开始用Python搭建超级简单的点击率预估模型

    全文共2080个字,24张图,预计阅读时间14分钟. 点击率预估模型 前言 本篇是一个基础机器学习入门篇文章,帮助我们熟悉机器学习中的神经网络结构与使用. 日常中习惯于使用Python各种成熟的机器学 ...

  2. 京东最新点击率预估模型论文学习和分享

    最近看了京东算法团队最新发表的一篇点击率预估模型的paper Telepath: Understanding Users from a Human Vision Perspective in Larg ...

  3. 点击率预估模型汇总_CIKM20MiNet:阿里|跨域点击率预估混合兴趣模型

    " 本文介绍了阿里提出的一种利用跨域信息的CTR预估模型,基于UC头条的应用场景,将新闻feed流作为源域,广告作为目标域.跨域点击率预估的最大优势在于通过使用跨域数据,目标域中的数据稀疏和 ...

  4. 阿里最新论文解读:考虑时空域影响的点击率预估模型DSTN

    作者 | 石晓文 转载自小小挖掘机(ID: wAIsjwj) [导语]:在本文中,阿里的算法人员同时考虑空间域信息和时间域信息,来进行广告的点击率预估. 什么是时空域?我们可以分解为空间域(spati ...

  5. 推荐搜索炼丹笔记:SIM 用户行为序列点击率预估模型

    作者:十方,公众号:炼丹笔记 Search-based User Interest Modeling with Lifelong Sequential Behavior Data for Click- ...

  6. AutoInt 广告点击率预估模型

    AutoInt模型 代码请参考:autoint 内容 模型简介 数据准备 运行环境 快速开始 模型组网 效果复现 进阶使用 FAQ 模型简介 CTR(Click Through Rate),即点击率, ...

  7. 【推荐算法】点击率预估模型(CTR) 快速入门(赋源码)

    CTR 快速入门 本项目主要使用 DeepCTR 进行CTR模型训练. 开源本项目,方便初学者快速进行CTR模型训练. [项目说明] 配置化运行,无需修改代码. 仅需提供训练数据,并通过简单的配置,即 ...

  8. 2018阿里广告点击率预估模型---DIN,Tensorflow2.0代码实践,并附上github

    前言 最近看了2018年阿里在KDD上发表的论文<Deep Interest Network for Click-Through Rate Prediction>,想复现下,看了文章给出的 ...

  9. 关于点击率模型,你知道这三点就够了 点击率预估的几个经典模型简介

    关于点击率模型,你知道这三点就够了 德川 2015年11月24日 阅读 2091 快速评论 说到广告,或者运营,关注的最多的就是点击率了.我们经常能听说某某科学家通过建立更好的点击率预测模型,为公司带 ...

  10. 效果广告点击率预估实践:在线学习

    效果广告点击率预估实践:在线学习 原创 2016-03-24 腾讯大数据 腾讯大数据 1.引言 技术钻研如逆水行舟,不进则退.公司的广告业务发展非常迅猛,有目共睹,激烈的外部竞争和客户越来越高的期望, ...

最新文章

  1. 数据库打开报错: 值不能为空
  2. mysql卸载后root还在_TMD终于把MySQL卸载掉了
  3. ElasticSearch IK分词器安装
  4. Markdown的常用语法
  5. classes maven 为空 打包_Maven打包:将classes打成Jar,之后打到War中(或打成jar),过滤指定目录。...
  6. 计算机原理试题b,计算机组成原理试题B答案
  7. django+bootstrap_Django自学教程PDF高清文档下载
  8. MYSQL获取同时关注了某两个(或者N个)用户的用户
  9. CSS-四种引入方式
  10. 4.16访问日志不记录静态文件,访问日志切割以及静态元素过期时间
  11. ef core 批量update 非id_Entity Framework (EF) Core
  12. 新上手的Mac怎么开始盘?
  13. sql插入时返回插入主键id(id位自动增长)
  14. PHP___过期header expires
  15. Packet Tracer 思科模拟器入门教程
  16. 什么是平面设计,平面设计主要做什么?
  17. 2020年12月电子学会Python等级考试试卷(一级)考题解析
  18. 中国跨境电商现状及发展前景
  19. 【Java】import org.junit.Test 和@Test报错
  20. node.js 从入门到?

热门文章

  1. [系统安全] 逆向工程进阶篇之对抗逆向分析
  2. Routh-Hurwitz Criterion 劳斯稳定判据
  3. 取消调试停止时自动关闭控制台,取消webapi调试时关闭浏览器自动关闭程序
  4. word公式大括号内容对齐
  5. Eclipse常用插件推荐
  6. 是香蕉还是芭蕉,芭蕉和香蕉的区别
  7. 二进制的加减乘除实现
  8. 头条号小程序制作分享
  9. 锚具ovm是什么意思_OVM锚具
  10. hnust Snowman