作为中国线上线下最大的零售商,京东拥有超过 3 亿的活跃用户,数十亿的商品。因此海量数据的高效处理和用户数据的深度洞察是京东面临的重要课题。“用户分层、交叉营销、人群定向是我们在数据应用领域的三个重要场景”,郑瑞峰在演讲时表示:“首先在用户分层上,京东结合互联网时代营销学理论与京东多渠道海量数据自身特点,首创了用户 4A 成长模型,将用户划分为Awareness、Appeal、Action 和 Advocacy 四种状态,通过我们打造的智赢服务,更好地帮助广告主进行效果分析和人群资产沉淀;其次京东基于 Spark 的模式挖掘算法,分析出最佳的交叉营销建议,并且针对现有算法的缺点,增强了 Lift 指标的计算和通用规则模式的挖掘;最后基于京东海量数据进行消费者购买预测,详细描述了召回 - 排序 - 投放的数据流程”。
在不断实践的同时,JDIAL 还对 Spark 做出了诸多深度改进,总结了一系列有价值的经验。主要包括:重构了诸多已有算法以支持 Multi-Column Parallelization,在输入列较多的情况下,运行效率提升了 10 倍以上,这些改进已被社区采纳;另外通过全面比较 RDD 和 DataFrame/Dataset,首次明确指出 DataFrame/Dataset 并不是 Silver Bullet,在某些场景下其效率反而弱于 RDD,并进一步详细分析了两者各自的适用场景。
与此同时,郑瑞峰指出了 MLlib 机器学习算法库三个亟待改进的方面:
第一,算法需要支持 Warm Start,这将大大提高 Convergence Ratio,支持 Continuous Training,并将增强解的稳定性(特别是在非凸问题中);
第二,算法需要支持 Callback,这可支持 Model Checkpointing 从而减小非可预见性 Crush 对长时间训练的影响,并支持 Early Stopping 从而避免过拟合和发散时浪费的计算开销;
第三,算法需要支持 Compact Numeric Format,机器学习算法的容错性在大部分情况并不需要以双精度形式存储数据和模型,单精度甚至半精度往往足以满足需求,这将大大减少算法的内存开销并提高计算效率。
据郑瑞峰介绍,在 ALS 算法上,JDIAL 自主研发了支持 Warm Start 的版本,将训练效率提升 40% 左右,并通过支持 Model checkpointing 提升了运行的稳定性。在机器学习的核心算法 -GBM 算法上,JDIAL 创建并开源了新项目 SparkGBM,其完全兼容 MLlib Pipeline,融合了 Spark-GBT、XGBoost 和 LightGBM 各家之长。SparkGBM 采用原生 Spark 作为底层计算引擎,有效避免了 XGboost 和 LightGBM 等异构 ML 框架带来的数据在不同框架下的 Double Caching 问题、难以对异构框架进行资源监控、需要额外的部署维护成本等一系列问题。SparkGBM 同时也包含了一系列效率优化的努力,如针对海量数据设计了 Partition-Based Sampling 以提升采样效率,根据数据情况自动选择最佳的 Histogram 存储格式,采用 Histogram Subtraction 技术减少通信开销等,通过这一系列的优化,使 SparkGBM 的训练效率达到 Spark-GBT 的 2~4 倍。
京东智能广告实验室 (JDIAL) 隶属京东商业提升事业部,主要从事智能广告相关的基础研究和应用研究,研究范畴涵盖视频图像、NLP、大规模机器学习、深度学习、推荐技术、广告机制等多个领域。实验室成员包括有学术能力的硕士、博士研究生,以及经由实验室招募的优秀学者、在行业内和学术圈内有技术影响力的科学家。目前京东智能广告实验室累计拥有研究成果几十项,其中多个项目荣获京东集团技术创新奖项,多篇论文被国内外知名学术机构收录。