作者:宛雨万青惠雯 | 来源:互联网 | 2024-12-07 11:58
2011年,我加入百度,负责凤巢平台的广告点击预测工作。当时,最令人印象深刻的是数据量的迅速膨胀,以及业界对特征工程的极大关注。每次引入新特征都能显著提升AUC值和收入,这让大家坚信特征的重要性。基于这样的信念,我们预测数据量在未来两年将至少增加十倍,并据此规划了所有相关工作。
然而,数据的快速增长给模型训练带来了巨大压力。早在2011年,模型训练已成为新特征上线的主要瓶颈。出于对分布式系统和数值算法优化的兴趣,我启动了一个名为‘darlin’的项目,旨在设计一个新的模型训练系统,使其能在相同的资源条件下处理比当前多十倍的数据。该项目不仅成为了百度内部最常用的机器学习训练系统之一,而且其性能和稳定性也得到了验证。
随着项目的推进,我们发现最初设定的目标并未完全实现。一方面,新特征的获取变得越来越困难;另一方面,尽管数据量持续增长,但这种增长速度远低于预期。这背后的原因在于,人工特征工程所能挖掘的有效特征类型有限,且随着特征数量的增加,模型性能的提升逐渐放缓。
例如,在广告点击预测领域,可提取的特征类型相对固定,主要包括广告内容、广告主信息及用户属性等。即便通过不断努力寻找新的数据源,特征类型的上限依然难以突破。同样地,Google在其数据集中每个样本的特征数量也控制在100以内,表明特征种类的限制是普遍存在的。
在这样的背景下,机器学习的效益增长开始放缓,甚至停滞。例如,IBM的Watson项目,尽管每次性能的提升都依赖于新数据和新特征的引入,但这些提升的效果越来越微弱。这反映出,随着特征工程的深化,投入与产出之间的边际效应正在递减。
针对模型训练,我们以Google的Sibyl系统为例进行了分析。Sibyl是一个高效的线性分类器,支持多种损失函数和正则化技术,广泛应用于Google的搜索、Gmail和YouTube等产品中。为了保证模型的高精度和稳定性,Sibyl采用了并行增强技术,并在大规模数据集上实现了快速收敛。即使在在线或增量学习模式下,也能大幅缩短训练时间。
从工程实现的角度看,构建高效的模型训练系统并非不可能。通过合理的数据格式设计、计算优化和网络通信策略,可以有效提升系统的性能。当前,最先进的系统能够在几小时内处理PB级数据,这得益于硬件性能的不断提升。
然而,随着数据增长放缓和硬件性能的提升,人工特征工程与线性模型的发展模式已进入成熟阶段。为了突破这一瓶颈,我们需要探索新的技术路径。例如,利用自动特征组合或深度学习技术,从原始数据中提取更丰富的特征;或者采用更复杂的模型结构,如张量分解和学习排序,以更好地捕捉数据中的潜在关联。
总之,虽然人工特征工程和线性模型将继续在大数据应用中发挥重要作用,但它们已不再是唯一的选择。随着技术的进步,我们应当寻求更高效、更具创新性的解决方案,以应对未来的挑战。