【广告系统】增量训练 & 特征准入/特征淘汰

一、增量训练

有时候训练数据是很多的,几十万几百万也是常有的事。虽然几十万几百万只看记录数不算多,但是如果有几百个特征呢,那数据集是很恐怖的,如果存成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最小值。

请添加图片描述

三、特征淘汰

有一些特征长时间不更新会失效。为了缓解内存压力,提高模型的时效性,需要淘汰过时的特征,制定淘汰规则。

对于已经准入的特征,提供以下三种方式判断是否处于低频状态:

  1. 更新时间。如果一个特征长时间没有被更新,认为已经处于低频状态;
  2. L2范数。如果一个特征L2范数计算结果过小,认为已经处于低频状态;
  3. 统计值综合得分。支持用户提供自定义函数,通过特征统计值(曝光数,点击数,点赞数,评论数等)来计算特征综合分数,分数小于阈值认为处于低频状态。

被判定处于低频状态的特征会被淘汰屏蔽,下次再次出现时会被当做新特征对待。

在这里插入图片描述

使用特征准入&退出后,推荐模型普遍能够减少到未使用时四分之一大小,线上预测AUC在千分位保持持平。

参考资料

  1. 机器学习-增量训练方法
  2. BIGO技术 | 万亿模型参数的训练
  3. 增量学习实践
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
增量容量法(Incremental Capacity Analysis)是一种常用的方法,用于从电池的充放电曲线中提取特征。以下是基于增量容量法提取IC曲线特征的步骤: 1. 数据采集:首先,需要采集电池在充放电过程中的电流和电压数据。这些数据可以通过电池管理系统或专用的测试设备进行采集。 2. 数据处理:对采集到的电流和电压数据进行预处理,如去除噪声、滤波等。确保数据的准确性和可靠性。 3. 计算容量:根据采集到的电流和电压数据,计算每个时间点上的容量值。可以通过积分电流来计算容量,或者利用已知的放电容量曲线进行插值计算。 4. 计算增量容量:计算每个时间点上的增量容量值,即相邻时间点上的容量差值。增量容量可以通过以下公式计算: IC(t) = ΔQ(t) / ΔV(t) 其中,IC(t)表示时间点t上的增量容量,ΔQ(t)表示时间点t与t-1之间的容量差值,ΔV(t)表示时间点t与t-1之间的电压差值。 5. 特征提取:从增量容量曲线中提取特征。常用的特征包括: - 峰值特征:提取增量容量曲线中的峰值容量和对应的电压值。 - 斜率特征:计算增量容量曲线的斜率,可以用于判断电池的容量变化速率。 - 曲线形状特征:通过拟合增量容量曲线,提取曲线的形状特征,如指数、多项式等。 - 面积特征:计算增量容量曲线与时间轴之间的面积,可以表示电池的总容量变化情况。 6. 特征分析和应用:对提取的特征进行分析和应用。可以使用统计方法、机器学习等进行特征分析,进一步判断电池的状态和性能。 通过增量容量法提取IC曲线特征,可以帮助理解电池的容量变化规律和性能特征。这些特征可以用于电池状态估计、故障诊断、性能评估等应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值