当前位置:网站首页>【广告系统】增量训练 & 特征准入/特征淘汰
【广告系统】增量训练 & 特征准入/特征淘汰
2022-07-05 10:37:00 【CC‘s World】
一、增量训练
有时候训练数据是很多的,几十万几百万也是常有的事。虽然几十万几百万只看记录数不算多,但是如果有几百个特征呢,那数据集是很恐怖的,如果存成numpy.float类型,那绝对是把内存吃爆。我就是在这种情况下,开始考虑增量模型的增量训练。
在超大数据集上,一般有这么几种方法:1. 对数据进行降维,2. 增量训练,使用流式或类似流式处理,3. 上大机器,高内存的,或者用spark集群。
增量训练,其实和在线学习是一个意思,在线学习的典型代表是用SGD优化的logistics regress,先用数据初始化参数,线上来一个数据更新一次参数,虽然时间的推移,效果越来越好。这样就避免了离线更新模型的问题。
增量训练主要有两个作用,一个是想办法利用全部的数据,另一个是想办法及时利用新的数据。可以提高模型的时效性、样本容量和节省集群资源。
推荐场景通常由于引入了大量的ID类特征从而导致存在海量稀疏参数,例如在经典YouTube DNN模型中,使用用户观看过的视频以及用户历史search tokens作为主要Embedded特征。根据论文中论述,YouTube DNN中candidate video以及search tokens均有百万之巨。在此基础上如果再使用交叉特征,就会使参数爆炸问题进一步加剧。
推荐场景低频的ID类特征同样会给系统带来过拟合的风险,针对这个问题,我们设计了特征准入/退出机制策略,方便根据具体模型预设的表达能力,调整低频稀疏参数对模型的影响。
二、特征准入
商业场景中,时时刻刻都会有新的样本产生,新的样本带来新的特征。有一些特征出现频次较低,如果全部加入到模型中,一方面对内存来说是个挑战,另外一方面,低频特征会带来过拟合。因此会制定一些特征准入机制,包括基于概率进行过滤,布隆过滤器等。
训练框架会对新特征设置特征准入的“门槛”来防止低频特征频繁的出入。我们提供了两种机制来限定新增特征准入:
- 概率新增,每次遇到新增特征时,根据预设分布生成概率,控制特征准入;
- 使用Counting Bloom Filter对新增特征出现次数进行统计,当次数超过阈值时,准入。
上图简要描述了CBF的原理,假设容量是16,两个hash函数用作Feature ID到Index的映射。查询特征频率时,Feature1经过Hash Function1和 Hash Function2分别得到Slot 3和 Slot 6,两个Slot值均为1,Feature出现次数可以认为是1。Feature2经过Hash Function1和 Hash Function2分别得到Slot 6和 Slot 15。两个Slot值分别为1和0,Feature2出现次数可以认为是0。即映射到所有Slot中 Value最小值。
三、特征淘汰
有一些特征长时间不更新会失效。为了缓解内存压力,提高模型的时效性,需要淘汰过时的特征,制定淘汰规则。
对于已经准入的特征,提供以下三种方式判断是否处于低频状态:
- 更新时间。如果一个特征长时间没有被更新,认为已经处于低频状态;
- L2范数。如果一个特征L2范数计算结果过小,认为已经处于低频状态;
- 统计值综合得分。支持用户提供自定义函数,通过特征统计值(曝光数,点击数,点赞数,评论数等)来计算特征综合分数,分数小于阈值认为处于低频状态。
被判定处于低频状态的特征会被淘汰屏蔽,下次再次出现时会被当做新特征对待。
使用特征准入&退出后,推荐模型普遍能够减少到未使用时四分之一大小,线上预测AUC在千分位保持持平。
参考资料
边栏推荐
- 微信核酸检测预约小程序系统毕业设计毕设(7)中期检查报告
- Bidirectional RNN and stacked bidirectional RNN
- DGL中异构图的一些理解以及异构图卷积HeteroGraphConv的用法
- NAS and San
- 函数///
- Do you really understand the things about "prototype"? [part I]
- 5g NR system architecture
- Some understandings of heterogeneous graphs in DGL and the usage of heterogeneous graph convolution heterographconv
- When using gbase 8C database, an error is reported: 80000502, cluster:%s is busy. What's going on?
- SAP ui5 objectpagelayout control usage sharing
猜你喜欢
Broyage · fusion | savoir que le site officiel de chuangyu mobile end est en ligne et commencer le voyage de sécurité numérique!
How can non-technical departments participate in Devops?
双向RNN与堆叠的双向RNN
Web3 Foundation grant program empowers developers to review four successful projects
Crawler (9) - scrape framework (1) | scrape asynchronous web crawler framework
微信核酸检测预约小程序系统毕业设计毕设(8)毕业设计论文模板
Ad20 make logo
Go language-1-development environment configuration
Comparative learning in the period of "arms race"
The first product of Sepp power battery was officially launched
随机推荐
Web Components
Go语言-1-开发环境配置
[vite] 1371 - develop vite plug-ins by hand
PWA (Progressive Web App)
The first product of Sepp power battery was officially launched
数据类型、
【JS】提取字符串中的分数,汇总后算出平均分,并与每个分数比较,输出
一个可以兼容各种数据库事务的使用范例
Explanation of message passing in DGL
【Vite】1371- 手把手开发 Vite 插件
风控模型启用前的最后一道工序,80%的童鞋在这都踩坑
2022年流动式起重机司机考试题库及模拟考试
SQL Server monitoring statistics blocking script information
How can non-technical departments participate in Devops?
Web3基金会「Grant计划」赋能开发者,盘点四大成功项目
AD20 制作 Logo
函数///
How can gbase 8C database view the login information of the login user, such as the date, time and IP of the last login authentication?
[可能没有默认的字体]Warning: imagettfbbox() [function.imagettfbbox]: Invalid font filename……
中职组网络安全2021年江苏省省赛题目5套题目环境+解析全有需要的私信我